-
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