Operating-layer release: AGENTS.md front door, freeform intake, mid-flight amend, release-hygiene guard (v1.6.0)#8
Merged
Conversation
AGENTS.md operating-layer cycle planning artifacts: - SPEC-024 drafted and validated via /user:spec-validate (5 lenses); revisions DEC-004 corrected + DEC-005..008 added (four-zone contract, install.sh jq ownership, WORKFLOW dedup, edge-case tip model, doc-map file-trigger row). - ADR-0013 flipped proposed -> accepted with the After-state addendum. - BACKLOG: ID-015 (this work), plus ID-016/017 from the SPEC-025 retro. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Tool-agnostic front door carrying the four portable operate-contract zones (read-in-order list, task loop, done-definition, Pause-if list) that commands/assign.md projects into the six-section /goal. States plainly that enforcement is Claude-Code-only (the hooks); under other runtimes AGENTS.md is advisory only. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
AGENTS.md is the canonical operate-contract front door. Remove the restated ordered read-order and core done-definition from WORKFLOW.md (now pointers to AGENTS.md zone 1 and zone 3) and add the AGENTS.md front-door pointer to CLAUDE.md. WORKFLOW.md required-reading now names AGENTS.md first; kit-specific completeness clauses are kept. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Mirror the kit-root AGENTS.md four-zone shape (Read in this order, Task loop, Done means, Pause if) as a downstream template for projects consuming dwarves-kit, voiced for the spm sample CLI rather than copied verbatim. Keeps the CC-only enforcement caveat and the goal-composition note. Reference it from the hello-spec README (front-of-reading-order). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
TASK-001..003 (Phase 1) passed task-verifier; SPEC-024 checklist updated. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Brownfield lane: review an existing codebase and write the operating-layer docs (AGENTS.md / CLAUDE.md / specs) without changing application behavior. Doc-output only, no app-code edits, /spec optional. Consistent with the lanes list in AGENTS.md zone 2. The lane explicitly forbids app-behavior change, which the "backfill lane silently edits app code" failure-mode row depends on. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replace the four-field contract-goal shape in Step 3 (Objective / Scope fence / Termination-on-blocker / Verification) with a six-section operating directive, each section projecting from an AGENTS.md zone or the active spec, matching AGENTS.md's "How a goal is composed" table: Context-to-read <- AGENTS.md zone 1 (Read in this order) Constraints <- AGENTS.md / CLAUDE.md rules + scope fence Operating rules <- AGENTS.md zone 2 (Task loop) Validation loop <- the active spec's ## Verification Done-when <- AGENTS.md zone 3 + the spec's ## After state Pause-if <- AGENTS.md zone 4 (Pause if) Done-when quotes the spec's observable ## After state bullets (falls back to AGENTS.md "Done means" when a spec lacks the section). Scope fence folds into Constraints; termination-on-blocker folds into Pause-if. Step 4 now points at the six-section directive. Spec-first opening move kept. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Insert an observable definition-of-done section between ## Solution and ## Acceptance Criteria in the commands/spec.md template block. Each bullet is false-now/true-after and checkable by a human or a command. The inline rule states observable, not narrated, or it is fluff and gets cut, anchored to PHILOSOPHY's every-file-justifies-itself honesty rule. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
TASK-004 backfill lane, TASK-005 six-section projection, TASK-006 After-state template: all passed task-verifier. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Extend the WORKFLOW.md doc-impact map for the operating-layer docs: - Add a "new top-level file under the kit root" trigger row, mirroring the existing top-level-dir row, so a top-level file like AGENTS.md no longer slips through the self-maintaining net. - Add an AGENTS.md companion-doc row (CLAUDE.md/WORKFLOW.md pointers, examples/hello-spec/AGENTS.md, commands/assign.md, tests/test-meta.sh). - Note that the backfill lane produces operating-layer docs, so a backfill run knows which docs it writes. - Widen the self-maintaining note to cover both dirs and files. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
README "Project structure" now lists AGENTS.md (the tool-agnostic operate-contract front door) and WORKFLOW.md, and notes CLAUDE.md is the Claude-Code layer on top. README Workflow section names the backfill lane. docs/architecture.md data-flow intro cross-references AGENTS.md as the front door that CLAUDE.md and WORKFLOW.md point at, and names the backfill lane. These are structure listings and cross-references; the operate-contract itself stays in AGENTS.md (not restated here). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Pin the cycle's structural outputs so a wording flip fails CI: - kit-root AGENTS.md: the four portable zones, the literal "Pause if", and the Claude-Code-only-enforcement statement. - commands/assign.md: the six-section /goal projection (writer side). - low-cost guards for hello-spec AGENTS.md and spec.md "## After state". Add the install merge-with-existing-hooks regression: seed a HOME whose settings.json already carries a third-party hook, run install.sh through the jq clean+merge path, and assert the hook survives, the JSON stays valid, and a dwarves-kit hook is merged in. The test passes against the current install.sh, so no jq fix was needed (DEC-004: bug not present). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bump VERSION, plugin.json, and tool.toml 1.6.0 -> 1.7.0 for the SPEC-024 feature release. Add the 1.7.0 CHANGELOG entry (AGENTS.md front door, backfill lane, assign goal projection, spec After-state section, doc-impact-map rows, downstream AGENTS.md template, and the added install settings-merge regression coverage framed as a guard, not a fix). Add a copy-if-absent AGENTS.md tip to install.sh. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
TASK-007..010 (doc-impact map, README/architecture cross-refs, test asserts + install-merge guard, v1.7.0 release) passed task-verifier. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Addresses /review-team findings on the SPEC-024 build: - WORKFLOW.md Required-reading no longer restates the AGENTS.md-owned ordered list (the spec's primary drift failure mode, realized in output); it now points only. - tests/test-meta.sh: negative anti-drift assertions (WORKFLOW.md + CLAUDE.md carry no numbered read-order restatement); pin all four hello-spec AGENTS.md zones; pin assign.md Done-when references the spec After-state. - backfill lane now has a routing line in the spine. - SPEC-024 bookkeeping: TASK-003 + global AC + After-state boxes checked; TASK-010 wording corrected to no-fix reality. - BACKLOG: ID-018 (install tip cp -n) and ID-019 (demo SPEC After-state) logged as deferred LOW findings. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
doc-impact-map companions the build missed: MANUAL /user:assign now lists the AGENTS.md/spec projection source + the six-section output; CLAUDE downstream-template note names examples/hello-spec/AGENTS.md as the front door. doc-verifier PASS (9 claims). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Flip SPEC-024 Status VALIDATED -> SHIPPED; drop ID-015 from the BACKLOG active queue (v1.7.0; CHANGELOG is the canonical shipped record). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Captures the spec-validate phantom-fix catch, the execute/integration-checker presence-not-absence blind spot that missed the WORKFLOW restatement, and recurring worker shell/hook friction. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ID-020 verifier absence-checks (the replace-task blind spot both verifiers missed), ID-021 reduce execute-worker shell/hook friction + investigate the heredoc commit mis-parse. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The 1.6.0 -> 1.7.0 bump went against the kit convention (accumulate under CHANGELOG [Unreleased], cut versions separately) and had clobbered the prior ## [1.6.0] heading. Revert all three version surfaces to 1.6.0; restore the [1.6.0] release section; move the SPEC-024 notes into [Unreleased]. DEC-009. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
New docs/ORCHESTRATION.md: the flow/loop view of the kit's orchestration layer. Catalogs 1 spine, 5 lanes, 3 bounded loops, 7 alt/branch flows, 8 opt-in side-flows, and the 4 hard stops; per-flow trigger/steps/stop/enforcer/branches; 6 ASCII diagrams (master lifecycle + per-loop). Cross-linked from WORKFLOW.md + README. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
New docs/PLAYBOOK.md: scenario -> trigger -> response -> orchestration hook for the 5 entry scenarios (what's-next, apply-SDD, autonomous-full-flow, iteration-heavy phase, vague brief). Leads with the hooks-vs-commands-vs-skills layering (only hooks auto-fire) and the BACKLOG-ID-first gap + the freeform->ID bridge. Includes an autonomy-dial and a triggers cheat-sheet. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
SPEC-026 (DRAFT) + BACKLOG ID-022: extend /user:assign to accept freeform intent (not only ID-NNN), auto-allocating an ID + BACKLOG row so freeform intake is native. Unparks the SPEC-024-deferred griller entry; preserves ID-first traceability via an approve-before-allocate + row-before-draft invariant. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Design-first north-star for the natural-language operating layer: vision, the SDLC modeled as a formal state machine (states, guarded transitions, terminals, hard-stops-as-guards, 2 sub-machines), the full 15-scenario catalog (your 5 + 10 new), and a gap analysis. New backlog rows ID-023 (mid-flight spec amend), ID-024 (context-switch + abandon terminal), ID-025 (re-open-shipped) trace here; SPEC-026 is the first implementing spec. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
spec-validate (5 lenses): NEEDS REVISION -> revised. Delegate crystallize to /user:think (keep /assign a light mutator, DEC-003); sanitize freeform input (pipe-escape + slug hardening, DEC-004); atomic ID allocation + collision check (DEC-005); dedup-by-slug + concurrency edge cases. Status DRAFT -> VALIDATED; ID-022 -> validated. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Widen /user:assign so $ARGUMENTS is either an ID-NNN (matches ^ID-[0-9]+$, the unchanged ID-first path) or freeform intent text. The freeform path delegates the interview to /user:think, gates on human approval of the crystallized objective before allocating an ID (approve-before-allocate), sanitizes input (escape | and newlines in BACKLOG cells; reduce the slug to [a-z0-9-]+ so it cannot traverse out of .claude/goals/), atomically allocates the next ID by re-reading max in the write step with a loud post-write collision check, writes the BACKLOG row before the goal draft (row-before-draft), then rejoins the existing Steps 4-6 tail. /assign stays a light mutator-dispatcher: it does not embed the interview. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add a SPEC-026 assertion block to tests/test-meta.sh that pins the freeform front door contract in commands/assign.md so a wording flip on any of the documented intake paths, the /user:think delegation, or the four invariants fails CI. Pins (grep -qF): - the two-shape resolver: ^ID-[0-9]+$ and freeform - the delegation: /user:think (interview delegated, not embedded; DEC-003) - the four invariants: row-before-draft, approve-before-allocate, sanitize, atomic-allocate (plus the collision guard wording) - the slug hardening: [a-z0-9-] (sanitized slug charset; DEC-004) Total assert count rises from 241 to 250. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PLAYBOOK S2/S5/S8 and the layer-2 intro now describe /user:assign's native freeform path (delegate crystallize to /user:think, approve, sanitize, atomic-allocate the ID + BACKLOG row, then route) instead of a hand-run bridge. Section 8 no longer calls it "manual today"; it is the native path /assign runs internally. Section 11 marks SPEC-026 / ID-022 shipped and drops the "until that ships, use the bridge" line. The 3-layer model and the honest "invoked command, not an auto-keyword" point are kept. WORKFLOW.md ## The spine gains a Freeform-front-door note (no numbered AGENTS/CLAUDE read-order restatement). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
TASK-001..005 passed task-verifier; SPEC-026 checklist updated. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Doc-impact drift caught in a follow-up audit: SPEC-026 changed commands/assign.md but TASK-005 only updated PLAYBOOK + WORKFLOW; MANUAL.md (the commands/* companion per the doc-impact map) and ORCHESTRATION.md (the flow view) still described /assign as ID-only. Both now document the freeform path (delegate to /think, approve-before-allocate, sanitize, allocate ID + row). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Declares the BUILDING -> SPECIFYING -> BUILDING amend micro-loop (operating-layer-vision Scenario 7 / ID-023). Approach A: convention + recorded ## Amendments checkpoint, no new command or hook. spec-validate passed after fixing the resume claim (lead with /next, not /execute; DEC-006) and documenting the un-recorded-amend limitation (DEC-007). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add the BUILDING -> SPECIFYING amend row and the SPECIFYING -> BUILDING (resume) return row to the §3.3 transition table, distinct from the existing validation/review revision paths. Mark the §5 gap-analysis row "Mid-flight spec amend" closed, referencing the now-validated implementing spec, mirroring how the freeform front door row references its spec. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add a `## Mid-flight amend` section to WORKFLOW.md as the single source of truth for the BUILDING -> SPECIFYING -> BUILDING amend path. Names the four invariants: no lane restart (Status stays VALIDATED, delta-only re-validation), completed work frozen (add-only, `- [x]` rows unchanged), recorded at a checkpoint via the `## Amendments` entry, and resume via `/user:next` (not a fresh `/user:execute`). Other docs point here rather than restating the rule. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Reword the "do NOT modify the spec" anti-pattern and the ambiguity / oversize error-handling branches so they point at the declared mid-flight amend path (pause at a checkpoint, append tasks, record ## Amendments, resume with /user:next) instead of only "stop and ask". Keeps the no-silent-mutation guard: an amend is a deliberate, recorded, checkpoint action, not a silent edit; a silent rewrite of done (- [x]) tasks stays forbidden. Points at WORKFLOW.md "## Mid-flight amend" (canonical); does not restate the rule. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add an optional, on-demand `## Amendments` section to the spec template in commands/spec.md, modeled on the `## Failure modes` optional-section convention (never an empty scaffold in a fresh spec). Includes the AMEND-NNN entry shape and points at WORKFLOW.md as the owner of the amend rule. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add Scenario 7 ("also do Y" mid-build) as an operator card in
docs/PLAYBOOK.md and as an amend micro-loop view in
docs/ORCHESTRATION.md. Both projections point at WORKFLOW.md
"## Mid-flight amend" as canonical and do not restate the four
invariants, per DEC-005 (avoid source-of-truth duplication).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add a "Mid-flight amend convention" section to tests/test-meta.sh with four assertions guarding the BUILDING -> SPECIFYING -> BUILDING amend convention across its four surfaces: execute.md (amend + checkpoint), WORKFLOW.md (the canonical "Mid-flight amend" rule), spec.md (the optional "## Amendments" section), and operating-layer-vision.md (the BUILDING -> SPECIFYING transition row in the table). Total assertions 250 -> 254. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
All six tasks passed the verification pipeline (task-verifier PASS each). test-meta 254/254, test-hooks 92/92. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Review (HIGH) found the amend path had no human-approval gate in the canonical WORKFLOW rule or the autonomous /execute orchestrator, while the PLAYBOOK card already promised one. An autonomous loop could self-expand scope, contradicting AGENTS.md zone-4 Pause-if and the kit's anti-scope-drift stance. Folded operator-approval into invariant #3 (kept four invariants, no fifth) and added "confirm the added scope with the user" to execute.md's two amend branches. Recorded as SPEC-027 DEC-008. test-meta 254/254, test-hooks 92/92. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
MANUAL: note the optional ## Amendments section under /user:spec, the operator-approved amend path under /user:execute, and that /user:next is the resume door after an amend. CHANGELOG [Unreleased]: the SPEC-027 entry. doc-verifier PASS (14/14 claims). test-meta 254/254, test-hooks 92/92. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Local ship (no version bump / tag / PR per the maintainer's call; the branch stacks on unmerged PR #7 and 1.6.0 is cut-but-untagged). SPEC-027 -> SHIPPED; ID-023 -> shipped in CHANGELOG [Unreleased]. CHANGELOG is the shipped record. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signal: spec-validate caught a correctness defect pre-build; review caught a missing approval-gate the verifiers passed (ID-020 pattern recurs); release hygiene is a two-cycle recurrence (SPEC-018 + SPEC-027) and the top finding. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ID-026 release-hygiene guard (recurring, top signal), ID-027 spec-validate autonomy-gate lens, ID-028 execute.md disjoint-file parallel-dispatch note. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
A warn-only guard (ship Step 4 + a kit-health line) for the phantom cut: VERSION/plugin.json naming a version with no matching git tag, with [Unreleased] piling on top (the SPEC-018 + SPEC-027 recurrence). Approach A (warn, no hook, no hard test); normal lane. spec-validate passed; folded the whitespace-strip + identical-shape-across-surfaces anti-drift note (DEC-005). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add a repo-scoped release-hygiene check to kit-health Step 1: warn when VERSION names a version with no matching git tag (a phantom cut), with a soft note when CHANGELOG [Unreleased] is accumulating above it. Degrades to a no-op outside a git repo, without VERSION, or without git; never errors and never exits non-zero. Shape matches the ship.md surface (whitespace-strip, git tag -l "v$VER", graceful degrade). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add a Step 4a release-hygiene warn to commands/ship.md. It detects the phantom cut (VERSION names a version with no matching git tag), warns the maintainer, and adds an accumulation note when CHANGELOG [Unreleased] is non-empty. Warn-only, never blocks; degrades silently outside a git repo or without VERSION. Shares the exact check shape with kit-health per DEC-005 so the two inlined copies cannot drift. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ship.md used `[ -d .git ]` which is false in a git worktree (where .git is a file). Replace with `git rev-parse --git-dir` to match kit-health check 11 exactly, per DEC-005. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add a "Release-hygiene guard" section to tests/test-meta.sh with two assertions that pin the PRESENCE of the phantom-cut warn on its two surfaces (ship.md, kit-health.md), not that the working tree is currently tag-clean (DEC-004: a runtime tag-state assertion would go red on the legitimate untagged-transient and on shallow CI clones). Total 254 -> 256, all green. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3/3 tasks passed the pipeline (TASK-001 needed 1 fix-agent retry to align the degrade guard with kit-health per DEC-005). test-meta 256/256, test-hooks 92/92. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Inner condition was missing the [ -n "$VER" ] guard, causing ship.md to run `git tag -l "v"` and spuriously fire the phantom-cut warn when VERSION is empty or whitespace-only. Brings the condition into exact parity with kit-health.md check 11 (SPEC-028 DEC-005). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Review (MEDIUM) found the soft accumulation-context signal had drifted: kit-health used grep heading-exists (over-fires) while ship.md used the spec's awk non-empty test. Aligned kit-health to the same awk; the line is now byte-identical across both surfaces. Recorded as SPEC-028 DEC-006. Smoke: WARNs correctly, exit 0. meta 256/256. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
MANUAL: the Step-4a release-hygiene warn under /user:ship, and the phantom-cut check under /user:kit-health's Reads. CHANGELOG [Unreleased]: the SPEC-028 entry. doc-verifier PASS (16/16). meta 256/256, hooks 92/92. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Local ship (no version bump / tag / PR; same call as the SPEC-027 cycle, and the new guard itself warns the release state is a phantom cut). SPEC-028 -> SHIPPED; ID-026 -> shipped in CHANGELOG [Unreleased]. The guard self-fired on this ship. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signal: three verification layers caught three distinct drifts of one DEC-005 invariant (the guard's own two inlined copies); the guard self-fired on its own ship. Tension surfaced: "no premature abstraction (3x)" is wrong for identical-by-contract logic. The phantom cut + 3-deep stack remain to be resolved. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ID-029 carve out identical-by-contract from the no-premature-abstraction rule (DEC-003's two copies drifted three times in one cycle); ID-030 worker-prompt symmetry for identical-output tasks. The release-state cleanup stays a maintainer decision (recorded in the retro), not a backlog row. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Finalize [Unreleased] -> [1.6.0] - 2026-05-22 (VERSION/plugin.json already 1.6.0). Resolves the phantom-cut content; the SPEC-028 guard's warn clears once v1.6.0 is tagged on master after this PR merges. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
What
The accumulated operating-layer work since v1.5.1, cut as v1.6.0. Carries four specs (the linear stack tip contains all of them):
AGENTS.md, the tool-agnostic operate-contract front door + thebackfillbrownfield lane + six-section goal projection + the observable## After statespec section. (This is what PR AGENTS.md tool-agnostic operating layer + backfill lane #7 covered; this PR supersedes it.)/user:assign(accept freeform intent, delegate crystallize to/user:think, approve-before-allocate, then route ID-first).BUILDING -> SPECIFYING -> BUILDINGpath to add scope to a building spec without restarting the lane (canonical rule inWORKFLOW.md, operator-approved at a checkpoint, resume with/user:next).VERSION/plugin.jsonnaming a version with no matching git tag) at/user:shipStep 4a + akit-healthline.Plus the
[Unreleased] -> [1.6.0] - 2026-05-22CHANGELOG cut.VERSION/plugin.jsonare already 1.6.0; taggingv1.6.0on master after merge clears the very phantom cut SPEC-028 now warns about.Why
SPEC-027 and SPEC-028 were dogfooded end to end through the kit's own lifecycle (
/user:assign -> spec -> spec-validate -> execute -> review -> docs -> ship -> retro). They trace todocs/operating-layer-vision.md(the SDLC state-machine gap analysis) and the SPEC-018/SPEC-027 retros (the recurring release-hygiene tangle this PR also resolves).Review
Each cycle passed the full verification pipeline. Notable catches:
/user:review(HIGH) added the operator-approval gate the canonical amend rule had omitted (would have let an autonomous loop self-expand scope)./user:review(the accumulation signal). The guard then self-fired on its own ship.Testing
bash tests/test-meta.sh(256/256) andbash tests/test-hooks.sh(92/92), green on this branch. CI runs the macOS + Ubuntu matrix.Checklist
🤖 Generated with Claude Code