Skip to content

W103 — Companion Contracts and Ownership Reconciliation #391

Description

@The-Running-Dev

W103 — Companion Contracts and Ownership Reconciliation

Ecosystem maintainers get one consistent account of simulation lifecycles, hosted
operations, fixture ownership, package visibility, and the proof that replaces the retired browser.

Done when

  • W103.1 GameOfLife S7 is landed and its Test-SpecSet.ps1 reports zero concept findings;
    every lifecycle it added is mirrored here with both creation and retirement paths. A
    contradiction with shipped simulation code is reported and stops the mirror rather
    than being silently reconciled.
  • W103.2 Platform's hosted MCP contract includes preview_action and every W98/W99 operation
    with the same arguments/results and one-operation/one-tool mapping; immutable links name
    the companion commits or PRs that carry each row.
  • W103.3 The service-contract package is regenerated from the final store surface and its
    missing/extra-operation gate passes; Adventures consumes that version without reaching
    through SessionStore or persistence for catalog, save, branch, or delete behaviour.
  • W103.4 Every campaign source and exported JSON snapshot retained in this repository says
    within its owning file that it is a test fixture, names the external Content repository
    as the publication authority, and leaves fixture behaviour/tests unchanged.
  • W103.5 The package-visibility decision is recorded once and package.json, plans 39/40,
    release documentation, and consumer access all agree on public or private; no document
    retains the rejected answer.
  • W103.6 The no-engine-API browser proof is either assigned to a named replacement owner with
    an executable check or retired by a recorded decision that updates both design 13 and
    15; the deleted /play/ surface is not recreated to satisfy it.
  • W103.7 The current agent kit is reconciled without losing repository-specific -Skip:
    guards or command companions; the Pester run reports both pass and intentional skip
    counts, and any third recurrence is raised upstream as the existing issue requires.
  • W103.8 Canonical docs are regenerated, companion/engine checks pass, and every external
    dependency is cited by immutable commit or merged PR rather than an unversioned branch.

Agent instructions

Run /slice W103.

  • Scope and criteria: design/30-slices.md § W103 @ c2e427d
  • Signatures: 10 §2.3
    and §15;
    09 §4;
    13 §6, and
    15 §6.
  • Out of scope here: authoring GameOfLife lifecycles in this repository, implementing
    Presentation's scene layer, republishing external packages, moving fixture content back
    from Content, or adopting a companion's design-state corpus wholesale.

Stop conditions and procedure: .claude/commands/slice.md. Not restated here.

2026-09-05 update. PR #436
resolves W103.6: the no-engine-API browser smoke retires rather than reassigns — Adventures is
deliberately a hosted API with persistence, so the "no backend, same-origin only" property has no
surviving host to assert over. Recorded in design/90-decisions.md; closes #273. W103.4 and
W103.5 were independently re-checked this run and are already satisfied in the tree (every
retained campaign source already names SubZeroDev.Adventures.Content as publication authority;
world-graph-mvp.ts is exempt as 20-contract.md §19's third category, a kind's own reference
campaign, not a fixture; the visibility decision is already recorded once in
design/90-decisions.md and agrees everywhere) — checked above accordingly. W103.7 is un-ticked
here
pending an environment that can actually run the kit's Pester suite: this run had no
PowerShell Gallery access to install Pester, and a full /kit-sync is its own workflow with its
own PR delivery, out of proportion to fold into this session's diff. W103.1's checkbox above
predates this run and was not independently re-verified against SubZeroDev.GameOfLife's
Test-SpecSet.ps1 this time; design/30-slices.md still shows it unticked, which is a tracker
sync question for /track, not a re-litigation of #429's fix.

Implemented in part by PR #424, PR #427, PR #429, PR #431, and PR #436.

2026-09-05 follow-up. PR #438
independently re-verifies W103.1: SubZeroDev.GameOfLife S6/S7 are landed (its issues #13, #14),
and adds design/20-contract.md §15.1, mapping all twelve of S7's lifecycle- concepts onto this
kind's own shape — five onto envelope-owned fields already named in §2's table, one
(HistoryEntry) staying the open decision §2/90-decisions.md §2 already record, and the
remaining six getting explicit creation/retirement statements. No contradiction with shipped
simulation code surfaced. W103.4, W103.5 and W103.6 were independently re-checked again this run
and still hold. W103.7 remains un-ticked, for a different reason than before: this environment
does have Pester (5.5.0), and the kit's own suite passes clean from tools/ — 263 passed, 0
failed, 22 skipped, every skip traced to this repository's known design/state-index.md absence
or a CI-only guard. What is still outstanding is the actual kit reconciliation: ~/.agent-kit is
behind origin/main, and bringing it forward is /kit-sync's own workflow with its own branch and
pull request — the same disproportion the prior update named, now confirmed rather than assumed.

Implemented in part by PR #438, in addition to the PRs already listed below.

2026-09-05 W103.7 closed. PR #442
runs /kit-sync: fast-forwards ~/.agent-kit from 5095a55 to 36f0a7a (44 commits) and
reconciles tools/*.ps1 and the two divergent command cores (reconcile.md, track.md) via
tools/Sync-Kit.ps1. Four files came back Divergent-Skipped; decided one at a time and recorded
in design/90-decisions.md: 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, took the kit's Measure-Session.ps1 (per-subagent
usage accounting, worktree-safe cost-log path) since this repository's copy was merely stale, not
overridden. tools/ Pester now reports 324 passed, 0 failed, 35 intentional skips (up from
263/0/22 pre-sync); Test-Companion.ps1 reports Valid. All eight W103 criteria are now met.

Implemented in part by PR #442, in addition to the PRs already listed above.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    sliceA W-numbered vertical delivery slice from design/30-slices.md

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions