Skip to content

fix(scripts): reconcile the evals gate with the warrant policy's explicit skips #3135

Description

@kyle-sexton

Context

Split out of #3127 item 4. The documentation half landed in #3127's PR (docs/MIGRATION-PLAYBOOK.md § "Evals — warrant policy and consumer-verify recipe"); the script-side decision is deliberately left here because scripts/ was outside that PR's fence.

The disagreement

docs/MIGRATION-PLAYBOOK.md:303-310 states evals are warranted, not mandatory, and names two explicit skip classes: a pure-reference skill (playbooks:fable-5, tdd, …) and a skill in a hook plugin.

The gate disagrees, unconditionally:

  • scripts/check-changed-skills.sh:69-72 adds --require-evals for every skill whose SKILL.md is new or modified.
  • plugins/skill-quality/scripts/check-skill.sh:690-696 (Check 14) then hard-FAILs on a missing evals/evals.json — for any skill shape. Its own header (:15-17) says so explicitly.
  • There is no allowlist file, frontmatter opt-out, plugin-type detection, or hook-plugin awareness in either script. Neither script has any notion of "hook plugin".
  • One CI caller: .github/workflows/ci.yml:1328, which does not pass the flag — the wrapper adds it internally, so it cannot be overridden.

Consequence: a "skip" verdict in the playbook survives only until someone touches that SKILL.md. In #3115, 9 of 13 new eval sets exist for exactly this reason — the gate won by construction, not by argument.

#3127's doc half narrowed the hook-plugin skip (its own parenthetical rationale, "no model-invoked skill", is false for a hook plugin that ships a setup skill) and recorded the gate as operative. The pure-reference skip is still a live contradiction.

Two exits, pick one deliberately

  1. The gate learns a recorded skip. The repo's established idiom is an exemptions file carrying the verdict — scripts/skill-count-claim-exemptions.txt is the model. A skip becomes a reviewed, diffable line rather than an implicit absence. Recommended: it preserves the warrant policy's reasoning while keeping CI fail-closed for anything unrecorded.
  2. The policy drops "skip". Evals become mandatory for every skill; docs/MIGRATION-PLAYBOOK.md's warrant rule is rewritten as an authoring-quality guide rather than a ship/skip test.

Whichever wins, the losing surface changes in the same PR so the two stop disagreeing.

Related

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: mediumReal value, no hard deadline; normal backlog flow.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions