You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
W103.7 — Kit sync to 36f0a7a: reconcile agent-kit tools and commands (#442)
Fast-forwards ~/.agent-kit from 5095a55 (44 commits behind) and reconciles
tools/*.ps1 and the two divergent command cores (reconcile.md, track.md) via
Sync-Kit.ps1. Four files flagged Divergent-Skipped: kept this repository's
W-vocabulary drift checker (Test-DesignDrift.ps1/.Tests.ps1) and design-state
work-mirror skip guard (Read-DesignState.Tests.ps1) as deliberate, and took
the kit's Measure-Session.ps1 (subagent usage accounting, worktree-safe
cost-log path) since this repository's copy was merely stale, not overridden.
tools/ Pester: 324 passed, 0 failed, 35 intentional skips (up from 263/0/22
before the sync pulled in new coverage). Test-Companion.ps1: Valid, 23 cores,
14 companions, 9 absent.
Copy file name to clipboardExpand all lines: .claude/commands/reconcile.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,6 +39,11 @@ Places where the implemented structure differs from `10-design.md` — module bo
39
39
## Undocumented decisions
40
40
Choices made during implementation that are not in `90-decisions.md`. These are the ones that silently become load-bearing.
41
41
42
+
## LiveAlreadyStated
43
+
For each active unit, compare every decision named in its `Live` against the artifact that unit is live on — its own `Anchor`, or a record one hop from it (`design/20-contract.md` § *The divergence classes*). Where a decision's terms already stand at a heading there with no site naming it, report the apparent match under the name `LiveAlreadyStated`. The payload is three parts: the unit id, the decision id, and the candidate site in `StatedIn`'s own `<id> § <heading>` form.
44
+
45
+
This is a reading — `tools/Test-DesignState.ps1` declares the id and never raises it itself, for the same reason `SemanticDisagreement` cannot: judging whether a section states a decision's terms is a model reading prose, not a check a script can run. **This pass reports and never absorbs.** Acting on a match is the caller's own step 4 of `AGENTS.md` § *Writing a design-state record* — copying the payload into the record and dropping the id from `Live` — or stating in the pull request why the terms do not stand there. That sign-off happens below, at *Then ask*, the same as every other divergence this command finds; absorbing it here instead would be running that step unattended.
46
+
42
47
## Invalidated assumptions
43
48
Anything the design assumed that implementation showed to be false.
Copy file name to clipboardExpand all lines: .claude/commands/track.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -108,6 +108,22 @@ Where the script is unavailable — no `pwsh`, or `gh` unauthenticated — say s
108
108
109
109
`design/30-slices.md` stays authoritative for what a slice *is*. The issue tracks whether it is *done*.
110
110
111
+
### Landed slices → retired
112
+
113
+
`design/30-slices.md` § *How this document is kept* says a slice's full body lives under `## Outstanding` only until its issue closes, at which point it retires to a row under `## Landed`. Nothing else in this command writes to that document's body — the sync above only opens and closes issues — so run the retirement in the same breath, after the issue sync above:
114
+
115
+
```powershell
116
+
pwsh ./tools/Update-SlicesDocument.ps1
117
+
```
118
+
119
+
Mechanical only, on the same ground as `Test-DesignDrift.ps1` above (`AGENTS.md`, *What should stop being model work* — moving a slice's body and reading an id range is set arithmetic over one file). It never opens, closes, or edits an issue — read-only against the tracker (I13) — and it never touches this document's hand-authored prose: the overview blockquote, a slice's own narrative preamble, and the "What each delivered" list are all judgement, not derivable from the tracker.
120
+
121
+
- Exit 0 with nothing retired — say so; this is the ordinary no-op case, not a finding.
122
+
- Exit 0 with slices retired — say which ones, by number, issue, and criteria range.
123
+
- Exit 2 — `gh` missing or unauthenticated, or the document's `## Outstanding`/`## Landed` markers are missing or malformed. Say what could not be read and do not report the retirement as having run.
124
+
-**Read what retirement left behind.** A slice's own narrative preamble — a top-of-document overview naming it as outstanding, an `## Outstanding` section paragraph describing a set that just emptied — can go stale the moment its body is retired. That is descriptive drift, corrected on the spot in the same commit (`AGENTS.md`, *Descriptive drift is corrected where it is found*), not a decision to bring back to the user.
125
+
-**This is not the mirror-refresh carve-out.**`design/30-slices.md` is not `design/state/work/` or `design/state-index.md`, so a retirement (and any prose correction alongside it) goes on a branch with a pull request, per the ordinary delegation (`AGENTS.md`, *Git and delivery*) — never committed straight to the default branch.
126
+
111
127
### Open items → issues
112
128
113
129
For each bullet under `## Open` in `design/90-decisions.md`:
Copy file name to clipboardExpand all lines: design/90-decisions.md
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1412,3 +1412,10 @@ Context: `/track`'s final step runs `tools/Update-DesignProjection.ps1` to regen
1412
1412
Chosen: record the absence as intended. This repository adopts the work mirror and not the projection over it. `Update-DesignProjection.ps1` reporting `DocumentMissing` is the expected outcome of a `/track` run here, not a gate failure, and `ProjectionStale` cannot fire against a projection that does not exist.
1413
1413
Rejected: **Creating `design/state-index.md` so the script has a target** — rejected because a projection document is a canonical `design/` artifact, and inventing one as a side effect of a tracker sync is precisely the authoring `/track` is not allowed to do; it belongs to `/design` or `/contract` if it is wanted. **Leaving it unrecorded** — rejected because the step then reports as not-run on every future invocation with nothing saying whether that is a gap or a decision, which is the rediscovery cost this register exists to stop.
1414
1414
Reversibility: cheap. Adopting the projection later means writing the document with its named regions and re-running the script; nothing here forecloses it, and no committed record changes shape.
1415
+
1416
+
### 2026-09-05 — W103.7 kit sync to `36f0a7a`: `Measure-Session.ps1` taken from the kit, three drift-checker files kept as this repository's
1417
+
1418
+
Context: `~/.agent-kit` was 44 commits behind `origin/main` (last synced `5095a55`). `tools/Sync-Kit.ps1 -DryRun` reported four `Divergent-Skipped` files against the kit's current copies: `tools/Measure-Session.ps1`, `tools/Read-DesignState.Tests.ps1`, `tools/Test-DesignDrift.ps1`, and `tools/Test-DesignDrift.Tests.ps1`. The last three carry deliberate, already-decided repository content — the `W`-vocabulary drift checker (`80d374b`, `582c914`, and this run's own `10e566a` parser-defect fix) and the design-state work-mirror skip guard (`68ec922`) — and were left untouched. `Measure-Session.ps1` was different: its divergence traced to `bb97138` (Slice W50-W60, 2026-08-05), predating two kit improvements with no repository-specific override in between — per-subagent usage accounting (`36650a2`) and a worktree-safe cost-log path (`84ce80d`, resolving the exact failure this repository's own `/clean` causes by deleting worktrees after merge).
1419
+
Chosen: overwrite `tools/Measure-Session.ps1` with the kit's copy; keep the other three as this repository's. Verified with a full `tools/` Pester run before and after (324/324 passing, 35 intentional skips, 0 regressions) and `tools/Test-Companion.ps1` (23 cores, 14 companions, 9 absent, `Valid`, exit 0).
1420
+
Rejected: **Keep this repository's `Measure-Session.ps1` as-is** — the recommended default for a `Divergent-Skipped` file, declined here because nothing in the divergence was a deliberate override to protect; it was staleness with a real cost (silently under-reporting subagent spend, and losing cost-log rows to worktree deletion). **Take the kit's `Test-DesignDrift.ps1`/`.Tests.ps1` or `Read-DesignState.Tests.ps1`** — would silently drop the `W`-vocabulary parsing this repository's slices depend on, or reintroduce the design-state self-test false-positive `68ec922` fixed.
1421
+
Reversibility: cheap — four files, each fully covered by the existing Pester suite; no schema or contract surface changed.
0 commit comments