skills: resolve cross-skill drift in trivial carve-out and parse-gate
Two consistency fixes across the skill suite, both found by a prose-audit agent swarm. Trivial-mechanical-edit carve-out: brainstorm and planner each invented their own bound (≤30 LOC, single file) that contradicts the canonical definition in the project's CLAUDE.md (which allows a rename across N files and sets no LOC ceiling) and disagreed with implement. Both now reference that carve-out instead of restating a divergent shape. Parse-block gate: brainstorm Step 7 and planner Step 5 spelled out the parser-invocation protocol near-verbatim. Both now defer to docs/profile-schema.md, which owns the protocol, and keep only their skill-specific parts (target artefacts, failure semantics, where the parse-trace goes) — matching the single-sourcing the carrier contracts already use. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+10
-17
@@ -32,8 +32,8 @@ Triggers:
|
||||
|
||||
- A bug-fix iteration (use `debug` directly).
|
||||
- A tidy iteration (use `audit` directly).
|
||||
- A trivial mechanical edit (≤1 file, ≤30 LOC, no design
|
||||
judgement).
|
||||
- A trivial mechanical edit (per the project's CLAUDE.md
|
||||
"trivial mechanical edits" carve-out).
|
||||
|
||||
**Skipping is not permitted** for:
|
||||
|
||||
@@ -242,24 +242,17 @@ Inline checklist (not a subagent dispatch):
|
||||
change (plus the worked user-facing example for a surface
|
||||
cycle)? A load-bearing change described only in prose is
|
||||
a self-review failure to fix, exactly like a placeholder.
|
||||
6. **Parse-every-block gate.** If the project profile declares
|
||||
`spec_validation.parsers`, extract every fenced code block
|
||||
from the spec. For each block whose fence label has a
|
||||
`parsers` entry: write the block to a temp file with the
|
||||
entry's `ext`, run the entry's `cmd` with `{file}`
|
||||
substituted, and require exit 0. A non-zero exit is a
|
||||
6. **Parse-every-block gate.** Extract every fenced code block
|
||||
from the spec and run it through the `spec_validation` gate
|
||||
defined in `docs/profile-schema.md` (which owns the
|
||||
parser-invocation protocol, the noted no-parser skip, the
|
||||
malformed-entry failure, and the no-op when the profile
|
||||
declares no `spec_validation`). A parse failure here is a
|
||||
self-review failure — the spec inlines code that does not
|
||||
parse against the live tool — fix the spec before proceeding;
|
||||
do not pass the unparsed bytes downstream. Paste the
|
||||
parse-trace (the Run block and its output) into the
|
||||
brainstorm chat: a visible trace is what attests the gate
|
||||
fired, and its absence means the gate was skipped. A block
|
||||
whose fence label has no `parsers` entry is skipped and the
|
||||
skip is noted ("no parser for fence label X"); never a silent
|
||||
pass. A malformed entry (`cmd` without `{file}`, or `ext` /
|
||||
`cmd` missing) is a profile error to surface, not a skip. If
|
||||
the profile declares no `spec_validation`, this check is a
|
||||
documented no-op.
|
||||
parse-trace into the brainstorm chat: a visible trace attests
|
||||
the gate fired; its absence means it was skipped.
|
||||
|
||||
Fix issues inline. No need to re-review — fix and commit.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user