-
released this
2026-08-17 14:24:23 +00:00 | 140 commits to main since this releaseCut against the merge commit of #105.
External
.pre-commit-hooks.yamlconsumers: nothing to doNo hook-relevant file changed since
v2.0.0. All three exported hooks —kyberforge-vale-audit-skill,kyberforge-vale-audit-agent,kyberforge-skill-size-check— are byte-identical tov2.0.1, as are both bundledassets/trees.scripts/check-release-needed.sh, run againstmain, exits 0.Under ADR-0014 a tag is cut when hook-relevant files change, so this release is outside that cadence: it is a checkpoint marking the documentation restructure, not a contract change. Bumping your
rev:fromv2.0.0tov2.0.1is safe and changes nothing about what the hooks accept or reject. Staying onv2.0.0is equally fine.The behavioural changes described in the
v2.0.0notes still stand — the gates ship hot with no baseline, and the retrofit tracked in #99 is still open.What is in it
The every-session context set is 74% smaller
AGENTS.mdis preloaded throughCLAUDE.md's@AGENTS.mdimport, and instructed readingCONTEXT.mdanddocs/VISION.md. Every word was a tax paid whether or not the session needed it.File Before After AGENTS.md(preloaded)24,219 B 6,808 B −72% CONTEXT.md(instructed read)33,799 B 9,762 B −71% docs/VISION.md(instructed read)4,671 B — demoted to on-demand Total ~15,700 tok ~4,140 tok −74% Nothing was deleted that was not either relocated or verified as already carried elsewhere.
Two new documents
README.md— did not previously exist. One-time setup, prerequisites and test commands, moved off the preloaded path.docs/spec/gates.md— gate forensics: what each pre-commit and pre-push hook enforces, why it is shaped that way, and what was tried and rejected. Every constant, hook ID, error string and verification number is preserved, including the Vale prefilter mechanics that had been a 1,444-wordCONTEXT.mdglossary entry.
CONTEXT.mdwas restructured to conform togrill-with-docs's ownCONTEXT-FORMAT.mdtemplate, which it had never followed — 23 glossary entries averaging 190 words against a documented "one sentence max".Published plugin metadata corrected — ADR-0021
gitea's marketplace description advertised wikis, for which no skill exists, while omittinggitea-branchesandgitea-files;git's advertised pull requests, which belong to gitea, while omittingpc-author/pc-run. This was the third occurrence of one defect, so ADR-0021 gives the two sources distinct jobs: published descriptions enumerate,architecture.md's table states routing boundaries only. They are supposed to differ, and nobody should be diffing them.Package versions:
bin1.1.3 → 1.1.5,git1.3.3 → 1.3.5,gitea1.3.4 → 1.3.6, marketplace 0.4.2 → 0.4.5. All PATCH for metadata under theper_packagestrategy. apm consumers resolve unpinned against the default branch and already had these at merge.Restored guard-rails and re-anchored citations
A four-way review of the trim found 15 defects, all fixed before merge. Two were real content drops — the
apm packmirror-refresh warning and the plugin self-containment constraint. Both were guard-rails that fired from preloaded context, so each was placed by when it needs to fire: the first in the DRIFT failure message of the hook that catches that exact mistake, the second inarchitecture.mdbeside the mechanism.Eleven dangling references across eight files were re-anchored to ADR-0013 where it owns the fact, or had the citation dropped where no ADR does. ADR-0007 and ADR-0015 gained dated amendments.
Known trade, recorded deliberately
AGENTS.mdsays "14 repo-defined hooks" while the command it hands you prints 16. The reconciliation — pre-commit's twometahooks declare nostages:— now lives ingates.md. Same shape for thepretty-format-jsonguard. Both previously fired from preloaded context and now require openinggates.mdfirst. That is the cost of the trim.Verification
bash tests/run-tests.sh --strict— 24 suites passed, 0 skipped, 0 failedpre-commit run --hook-stage pre-push --all-files— 16/16 Passedscripts/check-release-needed.shagainstmain— exit 0
Downloads
-
released this
2026-08-16 21:20:02 +00:00 | 157 commits to main since this releaseCut against the merge commit of #103. Implements ADR-0020.
Breaking — read before bumping your
rev:This is a major bump because all three hooks exported through
.pre-commit-hooks.yamlcan now fail a file that passed atv1.0.0, on three independent axes. A consumer who bumps the pin without reading this will get a red build on unchanged files.1.
kyberforge-skill-size-checkgained a whole new gate familyThe agentskills.io spec backstop is unchanged — still 500 lines and 2,770 words, still counted over the whole file including frontmatter. Alongside it, a context budget measured differently:
Gate SUGGESTION FAIL Measured over description250 chars 400 chars the YAML-folded value body 600 words 900 words body only, after the closing ---A file can sit well inside one family and fail the other. Also newly enforced:
- a missing, valueless or
nulldescription:is a hard FAIL, not a skip — a gate that declines to measure the one preloaded field reports green; - every boundary-clause routing target must resolve to a real skill or agent;
- every
references/<file>.mda body names must exist.
Three further checks are SUGGESTION-only and never fail: a description with no boundary clause, a
## Gotchassection over five entries, and one over 25% of the body.2. Both Vale prefilters gained error-level rules
kyberforge-vale-audit-skillandkyberforge-vale-audit-agentpick upKyberforge.CompositionNote, which bans composition and architecture prose from a description. Every rule in these styles islevel: errorwith no ignorable tier.3. PyYAML is now a hard requirement
The hand-rolled fallback frontmatter reader has been removed, deliberately. It disagreed with PyYAML across the 400-character FAIL boundary, so the same file passed on one machine and failed on another; worse, a reader that mis-parses an unfamiliar scalar shape reports a clean pass on a file it never measured.
pip install pyyamlif the hook reports it missing.python3itself was already required.Fixed since v1.0.0
Defects that passed a fully green gate — each was live while all hooks and all tests reported success:
- A UTF-8 BOM silently disabled every check. A
SKILL.mdwith a 550-character description and a 1,000-word body exited 0 with zero output. A leading blank line, trailing space after the opening---, or a missing closing---did the same. - An indented
---inside a block scalar truncated the frontmatter, reclassifying the rest of the description as body — an 815-char description and a dangling target both passed. - A non-string
descriptionwasstr()-coerced, sodescription: truemeasured as the 4-character"True". - An agent file with a valueless
description:passed with no output at all —\s*crossed the newline and captured the following key. - The gate gave different answers on different machines. Boundary-target resolution ran through the gitignored
.claude/skills/tree, so the same commit measured 2 dangling targets on a developer machine and 6 on a fresh clone. Resolution now walks up from the file being checked to an authoring root, and consults deployed trees only in the genuine consumer case. - Whole-file line and word counts disagreed with the audit validators on Unicode whitespace, and their exit status was discarded — a read failure recorded a silent pass on both ceilings.
Also in this release
Boundary-target resolution is narrowed so it cannot block a commit on prose. A hyphenated token used as a compound modifier (
pre-commit hooks) is confirm-only, and a prose-form target earns a hard error only when its own sentence names another target that resolves; route notation (/name,-> name) is exempt and always blocks. Uncorroborated targets are still reported at SUGGESTION tier on every run — only the power to block is withdrawn.kyberforge's own four author/audit skills are retrofitted to the contract: descriptions down 72% (3,364 → 938 chars) and bodies down 70% (8,306 → 2,487 words), all four now using the dispatch pattern.
Upgrading
Bump the pin and run the hooks over your existing corpus before committing:
- repo: https://git.dev.rkdr.net/Defame1297/holocron rev: v2.0.0pre-commit run --all-filesExpect findings on descriptions and bodies that were never measured before. The gates ship hot with no baseline file and no suppression mechanism, so plan the retrofit rather than bumping mid-feature.
Downloads
- a missing, valueless or
-
v1.0.0 Stable
released this
2026-08-10 16:48:35 +00:00 | 261 commits to main since this releaseFirst tagged release.
PR #85 added
.pre-commit-hooks.yaml, exposingkyberforge-vale-audit-skill,kyberforge-vale-audit-agent, andkyberforge-skill-size-checkfor external repos to consume viarepo: <this-repo-url>, rev: v1.0.0in their own.pre-commit-config.yaml(see ADR-0014).Closes #87.
Downloads