Repository navigation
refactor(tools): consolidate skill lint registries and checks - #203
Conversation
|
Verdict: FAIL Round 1 swarm at this head: gates + independent mutation proof + merge simulation (sonnet@high), structure review and test-quality review (opus@xhigh each; work model sonnet@high). Gates: lint 5/5, skill-ci 0 failed, ledger audit 0 problems; only known host noise. Mutations: every removed or moved check still fails on its defect (self-load, stale passage, policy flip, wrong count, unlisted playbook, missing README row); the count and README-row checks are new coverage. Differential: on the real tree the head scanner classifies all 155 hits exactly as base. AUTO_INVOCABLE's rule is enforced by skill-ci on every PR. Merges clean with main and with #198, #201, #202, #205. Fix-forward (in scope):
Notes (no change): the playbook count fails loudly on some harmless rewordings; principle rows in README stay unchecked (pre-existing); |
361e7c3 to
10ce30b
Compare
|
Verdict: PASS+NOTES Round 2 swarm at this head: gates + mutations + scanner differential + merges (sonnet@high), fix review and sync-instruction review (opus@xhigh each; work model sonnet@high). Gates pass (only known host noise). Every round-1 mutation still fails on its defect; the four round-1 findings now behave as intended (body Notes (follow-ups, not blocking): #212 (principle exclusion wording in the sync bullet and test message; three lists step 3 does not name; untracked-file lint order; a hard-coded count in the workflow). Merge order: after #201, so PORTING's arena row lands together with the text it describes. |
…violations() A skill's own /name is exempt only on its frontmatter description line, which replaces 13 of the 17 self-reference passages. The CLI prints what the test fails and drops the ignored --sigils flag.
skill-ci already fails when a skill's implicit_allowed row disagrees with its agents/openai.yaml, so the set repeated the trigger file.
… README rows The playbook list existed twice and the spelled count was unchecked. Every non-principle skill now needs a README row.
…a differences Reword the sibling-skill load row, drop AUTO_INVOCABLE from the notes and the sync prompt, and add substitution rows for todolist to worklist and arena Phase C's capability tier.
…ue and close three test gaps The sigil lint exempted any line that began with description:, so a body line passed and a folded description failed. It now exempts a skill's own /name only inside the frontmatter description value. stale_exemptions() gets its own test, the playbook count reads digits, PORTING.md records the todo list and todolist substitutions, and the sync workflow lists the README all-skills table.
10ce30b to
99f9417
Compare
What Changed
tools/skill-references.py; make the command fail on violations and stale exemptions, and recognize a skill's own slash name in frontmatter descriptions.Validation
Risk Assessment
✅ Low: This is a refactor of lint and test registries. On the real tree, violations() and stale_exemptions() both still return empty. The 15 own-name description hits that the removed "Use for /x" passages used to cover are now exempt only when they appear inside the parsed frontmatter description value. Every intent item is present: the description scoping including folded continuations, a stale_exemptions test, digit and word playbook counts, the PORTING row fixes, and the README row in the workflow list.
Testing
Inspected the change and configured tasks, passed the focused count-parser unit test, and confirmed a clean worktree. No scenarios were driven live and no product evidence artifacts were produced; previously declined restrictions remain in effect.
Pipeline
Updates from git push no-mistakes
✅ **Intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
✅ **Review** - passed
✅ No issues found.
Inspectedgit diff 33d6cd05eca66ff8be64aaa9909871ac6236f7f1 99f9417293619a83a7fb75c05e272e609f0c3812and repository task configuration.PYTHONDONTWRITEBYTECODE=1 python3 -m unittest -v evals.promises.test_static.TestStaticPromises.test_a_stated_playbook_count_reads_digits_and_wordscompleted successfully with one test executed; failure signal was a nonzero exit or unittest failure.git status --shortconfirmed no transient worktree changes.✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.