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:
+17
-22
@@ -36,8 +36,8 @@ May be skipped when:
|
||||
|
||||
- The work is a bug fix where the RED test from `debug` IS
|
||||
the plan (handoff goes straight to `implement` mini-mode).
|
||||
- The work is a trivial mechanical edit (one file, ≤30 LOC,
|
||||
no design judgement).
|
||||
- The work is a trivial mechanical edit (per the project's
|
||||
CLAUDE.md "trivial mechanical edits" carve-out).
|
||||
|
||||
**Never skipped** for a standard iteration within an active
|
||||
cycle. "I know the cycle, plan from memory" is exactly the
|
||||
@@ -221,26 +221,21 @@ Before handing the plan off, run this checklist inline:
|
||||
so "nothing ran" cannot masquerade as "nothing
|
||||
regressed". This is a recurring defect family — scrub
|
||||
every Run step whose assertion lives in a filter string.
|
||||
9. **Parse-the-bytes-you-inline gate.** If the project profile
|
||||
declares `spec_validation.parsers`, every verbatim code body
|
||||
the plan inlines into a task step whose fence label has a
|
||||
`parsers` entry must be parsed clean against the live tool
|
||||
before hand-off. For each such block: write it to a temp file
|
||||
with the entry's `ext`, run the entry's `cmd` with `{file}`
|
||||
substituted, require exit 0. A non-zero exit is a plan failure
|
||||
— the plan would hand the implementer bytes that do not parse,
|
||||
the last defensive line before dispatch — fix the plan, do not
|
||||
hand off. The parse-trace goes into the planner's self-review
|
||||
activity (the session) as the attestation the gate fired. The
|
||||
target is the surface-language snippets the plan lifts verbatim
|
||||
(example programs, fixtures); the project's source-language
|
||||
test / implementation bodies are NOT the target — the
|
||||
`implement` compile gate catches those. A block whose fence
|
||||
label has no entry is skipped and the skip 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.
|
||||
9. **Parse-the-bytes-you-inline gate.** Every verbatim code body
|
||||
the plan inlines into a task step must be run 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`) before
|
||||
hand-off. The target is the surface-language snippets the plan
|
||||
lifts verbatim (example programs, fixtures); the project's
|
||||
source-language test / implementation bodies are NOT the
|
||||
target — the `implement` compile gate catches those. A parse
|
||||
failure is a plan failure — the plan would hand the
|
||||
implementer bytes that do not parse, the last defensive line
|
||||
before dispatch — fix the plan, do not hand off. The
|
||||
parse-trace goes into the planner's self-review activity (the
|
||||
session) as the attestation the gate fired.
|
||||
|
||||
Fix issues inline.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user