Repository navigation
Release v7.2.2
Closes #450
Fixed
- Top-level key rejected by other validators. Skill path-hint triggers (#446) declared
cratis-hint-pathsas a top-levelSKILL.mdfrontmatter key. Agent Skills allows onlyname,description,license,compatibility,metadataandallowed-toolsat the top level, and Cratis/Strategy's validator rejected the corpus-update PR (Cratis/Strategy#310). The triggers now live atmetadata.cratis-hint-pathsas one quoted string of whitespace-separated globs. The globs themselves are unchanged. - The path-guidance extension reads the hints from
metadata. Its frontmatter reader stays dependency-free and reads only the one supported form, so an unsupported spelling gives no triggers rather than a bogus glob.
Changed
- Verify checks skill frontmatter against a real YAML parser. It uses
yaml, a devDependency ofSource/Verificationonly, which does not reach@cratis/pi. Verify now checks four things:- The frontmatter is valid YAML with no duplicate keys, and errors are reported at the
SKILL.mdline. - Top-level keys are within the Agent Skills set.
metadatamaps strings to strings.- The runtime reader's globs equal the YAML value for every skill. This cross-check means a spelling the runtime reads differently can't silently lose a hint.
- The frontmatter is valid YAML with no duplicate keys, and errors are reported at the
- Messages name the actual cause. Unsupported forms get a specific message (block scalar, unquoted, trailing comment, list, flow map, wrong indentation, and so on), chosen from the YAML parse when the YAML is valid. For invalid YAML, the parser error comes first.
Verification
- Local gate (CI's
verifyjob):yarn install --immutable, the threecheckscripts,verify,test(168 tests, 167 pass, 1 unrelated skip),yarn pack --dry-runandgit diff --check. - Strategy's validator (
tools/lib/validate-agent-setup.rb) reports no skill errors on the new corpus. It flags the seven skills onmain. - A real pi subagent still receives the
cratis-specifications-csharphint. - Review workflow: 9 rounds, with a final
passed: trueand no findings. It was Anthropic-only: two independent Opus 5.5 reviewers, each cross-checking the other. Earlier rounds found parser gaps that could lose hints silently; the YAML cross-check now closes them.