pstack: maintain-verification-skill ends in a coverage table; add lint-skills.py - #334
Open
0xquinto wants to merge 3 commits into
Open
pstack: maintain-verification-skill ends in a coverage table; add lint-skills.py#3340xquinto wants to merge 3 commits into
0xquinto wants to merge 3 commits into
Conversation
Checks every skill's frontmatter, that name matches its directory, that relative links and backticked paths under the skill resolve, and that bold principle references name a skill that exists. Counts dashes and arrows per skill as a prose signal without blocking. --self-test plants six defects and requires each to be caught. The authoring-a-skill playbook now points at it.
…harness gaps block The pass now ends in a coverage table with closed vocabularies per column (source, live, evidence, disposition) and derives clean, changed, or blocked from it. A harness gap left open makes the pass blocked instead of a footnote. Locate searches .claude, .cursor and .agents skill homes by frontmatter name and features/README.md instead of one path. A map check the skill ships runs before hand hygiene. Readers get file paths, not contents, run on the swarm workers model, and return the prerequisites their recipe needs, which is what makes an unreachable feature reportable with its cause. The live pass runs on the runtime the repo pins, uses a recipe driver when the skill ships one, and reruns the map check and doctor after the last edit. Run notes route to a show-me-your-work log. Dashes and arrows in the body go from 16 to 0. Shaped by a real run on a nine-feature map: the previous report format let a pass claim every feature was exercised without per-feature proof and park a harness false negative as a footnote.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.
Reviewed by Cursor Bugbot for commit 1687f77. Configure here.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Why
maintain-verification-skilllets a pass end with "all features exercised" and nothing per feature to check, and lets a harness defect ride along as a footnote. Both happened on a real nine-feature map maintained with this skill four times in six days. The report is now a table the pass has to fill, and an open harness gap blocks the pass. A small structural lint for skills comes with it, because the authoring playbook asked for a validation step that nothing ran.Scope
pstack/skills/maintain-verification-skill/SKILL.md: the pass ends in a coverage table (feature, source, live, evidence, disposition) with closed vocabularies and derives clean, changed or blocked from it. Locate searches.claude/skills,.cursor/skillsand.agents/skillsby frontmatternameandfeatures/README.md. A map check the verification skill ships runs before hand hygiene. Readers get paths, not contents, run on theswarm workersmodel, and return the prerequisites their recipe needs. The live pass runs on the runtime the repo pins, uses a recipe driver when one ships, and reruns the map check and doctor after the last edit. Run notes route to a show-me-your-work log. Em dashes and arrows in the body go from 16 to 0.pstack/skills/poteto-mode/scripts/lint-skills.py: frontmatter hasnameanddescription, the slugifiednamematches the directory, relative links and backticked paths under the skill resolve, boldprinciple-*references name a skill. Dashes and arrows are counted, never blocking.--self-testplants six defects and requires each to be caught.pstack/skills/poteto-mode/playbooks/authoring-a-skill.md: step 2 points at the lint.Blast Radius
Only agents that invoke
/maintain-verification-skillor read the authoring playbook. No runtime code, no plugin manifest change. The lint is opt-in and reports 47 skills clean on this branch.Verification
python3 pstack/skills/poteto-mode/scripts/lint-skills.py --self-test: 6 planted defects caught, 3 clean fixtures pass.python3 pstack/skills/poteto-mode/scripts/lint-skills.py pstack/skills: 47 skills clean.changedwith the table in the PR body.Note
Low Risk
Documentation and agent-skill workflow only; no product runtime or CI wiring unless teams opt into running the lint script.
Overview
maintain-verification-skillno longer allows vague “all features exercised” wrap-ups. The pass must produce a per-feature coverage table (source, live, evidence, disposition) with fixed column vocabularies, and clean / changed / blocked are derived from that table—e.g. an open harness-gap or missing live result forces blocked, not a PR footnote. The workflow is expanded into seven explicit steps: broader skill discovery under.claude/.cursor/.agents, optional map-check before hygiene, source readers on the swarm workers model with prerequisite reporting for unreachable, pinned-runtime live driving with doctor/evidence/cleanup invariants, and post-edit map check + doctor before shipping. Run notes move to an uncommitted.audit/maintain-<skill>.tsvlog.Skill authoring now validates via new
pstack/skills/poteto-mode/scripts/lint-skills.py: frontmatter name/description, slug match to directory, resolvable links and backticked paths under the skill, andprinciple-*skill references; dash/arrow counts are informational (--dashes). The authoring-a-skill playbook’s step 2 points at this script instead of a manual checklist.Reviewed by Cursor Bugbot for commit f4588ce. Bugbot is set up for automated code reviews on this repo. Configure here.