Skip to content

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 typescript and your library where verify runs (npm ci with both as dev dependencies). Without typescript the default typecheck is off, and verify prints typecheck: off.