chore(openspec): archive generator-payload-alignment - #246
Conversation
|
@claude /review |
|
Claude finished @thecodedrift's task in 3m 41s —— View job Review:
|
Both inline findings were real and are fixed in a63d101, with wider scope than flagged: three layout schemes were live in the standing specs at once, and The framing in the review is the part worth keeping. This PR is the step that makes the requirements official, so promoting one that contradicts an adjacent standing requirement is the wrong moment to defer — a follow-up would ship a self-contradictory spec in the meantime.
— AI Coding Agent |
The last open task was waiting on the generator sending `ruleId` on a reconcile entry, which landed in #242: `unsafe`, `unknown` and `missing` all carry it, and `ruleIdFromCheckPath` is deleted. N4 is confirmed both sides — the engine tier stays defined and unused, since G2 means a Vale rule cannot be delivered without its `.vale.ini` and so the middle rung has no future occupant. The directory move is the smaller half. Archiving promotes the change's spec deltas into the standing specs, which is what makes the contract official: `cli-generated-rule-delivery` and `cli-layout-export` become capabilities, and `cli-rule-reconciliation`, `cli-rules` and `cli-runtime-rule-execution` take the requirements the slices implemented. Eight requirements added, two modified. No code changes. The changeset was grown as the stack drained and already carries every slice.
Archiving promoted requirements naming `.taskless/rules/runtime/<id>/` into capabilities whose untouched neighbours still named older paths, so the official spec contradicted itself about where a runtime rule's check.ts lives. Three schemes were in the standing specs at once: `.taskless/runtime-rules/` (pre-0004), `.taskless/runtime/rules/` (post-0004, pre-0005), and the current `.taskless/rules/runtime/<id>/`. The check dispatch requirement carried the 0004-era spelling for all three engines, not just runtime. Corrected the statements describing current behaviour, in cli-check, cli-rule-reconciliation and cli-runtime-rule-execution. Left cli-rule-format alone deliberately. Its references describe what migration 0004 does, and 0004 still maps `runtime-rules/` to `runtime/rules/` today (0004-rule-directories.ts:112), so they are accurate history rather than stale current-behaviour. Rewriting them would falsify the migration they document. Task 1.5 claimed this was handled and it was not: the delta corrected only the requirement it touched and left `Blessed runtime rules execute from the materialized run directory` in the same file naming the old path. Its text now says what it actually did.
a63d101 to
01333c4
Compare
Closes out the
generator-payload-alignmentchange. The stack it tracked has fully landed; this is the tip step that was never taken, since the last slice merged without one.Why now
The final open task was waiting on the generator sending
ruleIdon a reconcile entry. That landed in #242 —unsafe,unknownandmissingentries all carry it, andruleIdFromCheckPathis deleted. Verified onmainrather than assumed.N4is confirmed both sides in the cross-team document: theenginetier stays defined and unused, becauseG2means a Vale rule cannot be delivered without its.vale.ini, so the middle rung has no future occupant either.The changeset was grown as the stack drained and already carries every slice, including #242's via
lucky-pans-repeat.md. No second changeset is added here.What is actually in the diff
The directory move is the smaller half. Archiving promotes the change's spec deltas into the standing specs, which is what makes the contract official rather than proposed:
cli-generated-rule-deliverycli-layout-exportcli-rule-reconciliationcli-rulescli-runtime-rule-executionEight requirements added, two modified.
openspec validate --specs --strictpasses across all 26 specs.Scope
No code. Every path is under
openspec/.Worth noting for anyone reading the check list: there is no OpenSpec archive gate any more, in either direction. A PR-time gate had to guess at stack position, and the
main-only replacement turnedmainred for as long as a forward-merging stack took to drain — a red that means "work in progress" is not a signal. Archiving is a step performed on the tip, which is what this is.Refs #240