Skip to content

Kit sync is 11 commits behind, and the sync will silently drop the four design-state -Skip: guards #365

Description

@The-Running-Dev

Symptom — this repository is 11 commits behind the agent kit, and the sync that would close the gap will silently re-break the CI fix recorded on 2026-08-21. The drift is routine; the hazard attached to it is not, which is why this is an issue rather than "run /kit-sync".

Observed on main @ 24641e0.

The drift

Repository Kit commit Installed
SubZeroDev.GameEngine 811bc96 2026-08-21
SubZeroDev.GameOfLife 9911712 2026-08-23

Ten shared tools/*.ps1 files differ between the two checkouts. Most of that is the companion being ahead rather than this repository being customised: Test-DesignState.Tests.ps1 (431 changed lines), Update-WorkMirror.Tests.ps1 (66), Test-DesignDrift.ps1 (64), Test-DesignDrift.Tests.ps1 (60), Update-WorkMirror.ps1 (48), Test-CIWorkflow.Tests.ps1 (47), Update-DesignProjection.Tests.ps1 (24), Read-DesignState.Tests.ps1 (10), Measure-Session.ps1 (8), Test-DesignState.ps1 (4).

The hazard — verified, not predicted

design/90-decisions.md § 2026-08-21 — The same kit sync's design-state self-tests are skipped, not satisfied records four -Skip: guards added here so the kit's self-referential test blocks do not evaluate against a repository with no design/state/. Without them, verify.yml's "Run Pester tests" step goes red with 12 failures plus a BeforeAll/AfterAll abort — none of which is a defect in this repository's content. That entry states plainly that the fix was not applied upstream, so an unmodified /kit-sync overwrites it.

Guard counts, counted just now:

File Here GameOfLife
Test-DesignState.Tests.ps1 3 0
Update-DesignProjection.Tests.ps1 1 0
Test-CIWorkflow.Tests.ps1 1 0
Read-DesignState.Tests.ps1 1 1

The companion dropped three of the four legitimately — it adopted design/state/ in its S8–S11, so those blocks now have real content to assert against there. This repository did not, and by that same 2026-08-21 decision deliberately did not ("turns a CI fix into an unscoped feature adoption the user did not ask for"). So the two repositories correctly want different copies of the same four files, and a naive sync resolves that difference the wrong way.

Reproduce

  1. git -C ~/.agent-kit log --oneline 811bc96..9911712 — 11 commits.
  2. Run /kit-sync without preserving the guards.
  3. cd src/engine is unaffected; the failure is in the Pester step. Expect 12 failures plus one abort from Remove-Item design/state against a tree that has none.

Done when

  • Kit synced to current HEAD, .claude/kit.json updated.
  • The four -Skip: guards survive the sync, or the reason each is no longer needed is stated per file. A guard silently lost is the failure this issue exists to prevent.
  • verify.yml's Pester step is green, with the skip count reported — skipped and unevaluated, not a false pass.
  • Any command-surface changes in the 11 commits are reconciled against the *-local.md companions, which this repository has and the kit does not.
  • The three required checks pass on the sync PR.
  • If the guards are re-lost on a future sync, that is the third occurrence — raise the underlying kit defect with the maintainer rather than re-patching locally a third time. The 2026-08-21 entry already flags this as worth doing and not yet done.

Explicitly not in scope

Adopting design/state/ here to make the self-tests pass honestly. That was considered and rejected on 2026-08-21 and is not reopened by this issue; reopening it needs new evidence, named.


Agent instructions

This issue is the specification.

  • Authority: design/90-decisions.md § 2026-08-21 — The same kit sync's design-state self-tests are skipped, not satisfied. Read it in full before syncing; it names what each guard protects and why adoption was rejected.
  • Out of scope: adopting design-state. Porting GameOfLife's Read-SpecSet.ps1/Test-SpecSet.ps1 — those are scoped to that repository's corpus by recorded decision and are forbidden from reading this one.
  • Stop if: a kit change requires a contract or public-interface change here. That is an amendment.
  • Verify by running the Pester suite and reporting the skip count alongside the pass count. "Green" without the skip count does not distinguish a working guard from a deleted test.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions