Result file
skill-be.result.json is meant to be committed. It records the skill-be version and, per skill, the date of its last run, its verdict, the blocking reasons, the models and the grader, and a fingerprint (sample).
The fingerprint is a SHA-256 over the skill’s SKILL.md, its eval file and the config file. For a skill with code tests it also covers the skill’s files under the tests folder, the _shared folder there, and the package list the skill uses (the list file, not the packages it names). Line endings are normalized to LF first, so a Windows run matches a Linux verify. The skill-be version is recorded but is not part of the match. Neither the library nor the prelude files are part of it; verify re-runs the typecheck itself. Since it covers the config file, any edit to skill-be.yaml (a comment included) makes every skill stale. skill-be run <skill> re-runs one skill and replaces only its entry.
verify fails when:
- the result file is missing;
- a skill that has an eval file has no entry in it (a skill folder without an eval file is skipped with a warning);
- a skill’s
SKILL.md, its eval file or the config changed since its entry was written, or, for a skill with code tests, its tests or its package list; - an entry records a NOT READY verdict;
- a blocking check fails. By default that is the typecheck, so install
typescriptand your library whereverifyruns (npm ciwith both as dev dependencies). Withouttypescriptthe default typecheck is off, andverifyprintstypecheck: off.