{
  "sourceWorkflow": ".day-shift/workflows/00-your-first-project-with-day-shift.md",
  "fixture": "fresh synthetic git repository",
  "verifiedCommands": [
    "day-shift init",
    "day-shift ignore install --yes",
    "day-shift doctor",
    "day-shift spec add --entry-file .day-shift/specs/spec-entry.tic-tac-toe-demo.json",
    "day-shift slice new --spec-id tic-tac-toe-demo",
    "day-shift phase new --slice-overview .day-shift/planning/01-tic-tac-toe-demo/slice-overview.md --phase-slug 01-build-game",
    "day-shift milestone new --phase-overview .day-shift/planning/01-tic-tac-toe-demo/phases/01-build-game/phase-overview.md --milestone-slug 01-playable-game",
    "day-shift task new --milestone-overview .day-shift/planning/01-tic-tac-toe-demo/phases/01-build-game/milestones/01-playable-game/milestone-overview.md --full-set",
    "npm test",
    "day-shift reconciliation build --milestone-overview .day-shift/planning/01-tic-tac-toe-demo/phases/01-build-game/milestones/01-playable-game/milestone-overview.md",
    "day-shift validation smoke --scope planning --artifact .day-shift/planning/01-tic-tac-toe-demo/slice-overview.md"
  ],
  "startingState": ["empty git repository", "root-spec.md", "no .day-shift workspace"],
  "completedState": [
    "initialized healthy workspace",
    "registered tic-tac-toe-demo spec",
    "slice, phase, milestone, and two current-CLI declared tasks",
    "two completed implementation summaries",
    "completed milestone reconciliation",
    "passing executable game-rule test"
  ],
  "runtimeResult": "1 test passed; 0 failed",
  "currentContractNote": "The current CLI expands the milestone's declared full set into a contract task and a focused coverage task; this supersedes the walkthrough's older singular illustrative task slug.",
  "terminalReplay": [
    { "command": "day-shift init", "output": "Created .day-shift workspace\nNext: run day-shift doctor" },
    {
      "command": "day-shift spec add --entry-file .day-shift/specs/spec-entry.tic-tac-toe-demo.json",
      "output": "Registered specification: tic-tac-toe-demo"
    },
    { "command": "day-shift slice new --spec-id tic-tac-toe-demo", "output": "Created slice: 01-tic-tac-toe-demo" },
    {
      "command": "day-shift phase new --slice-overview .day-shift/planning/01-tic-tac-toe-demo/slice-overview.md --phase-slug 01-build-game",
      "output": "Created phase: 01-build-game"
    },
    {
      "command": "day-shift milestone new --phase-overview .day-shift/planning/01-tic-tac-toe-demo/phases/01-build-game/phase-overview.md --milestone-slug 01-playable-game",
      "output": "Created milestone overview and reconciliation"
    },
    {
      "command": "day-shift task new --milestone-overview .day-shift/planning/01-tic-tac-toe-demo/phases/01-build-game/milestones/01-playable-game/milestone-overview.md --full-set",
      "output": "Created 2 declared tasks and implementation summaries"
    },
    { "command": "npm test", "output": "1 test passed; 0 failed" },
    {
      "command": "day-shift reconciliation build --milestone-overview .day-shift/planning/01-tic-tac-toe-demo/phases/01-build-game/milestones/01-playable-game/milestone-overview.md",
      "output": "reconciliation_status: completed"
    }
  ],
  "artifacts": [
    {
      "id": "workspace",
      "label": "Workspace config",
      "path": ".day-shift/config.toml",
      "visibleFromStep": 0,
      "purpose": "Marks the repository as an initialized Day Shift workspace.",
      "content": "schema_version = 1\nworkspace = \"tic-tac-toe-demo\""
    },
    {
      "id": "spec",
      "label": "Specification",
      "path": ".day-shift/specs/tic-tac-toe-demo/specification.md",
      "visibleFromStep": 1,
      "purpose": "Freezes the desired game behavior before implementation begins.",
      "content": "# Playable Tic-Tac-Toe\n\n## Desired Outcome\nA local two-player game enforces turns, detects wins and draws, locks a completed board, and can reset cleanly.\n\n## Constraints\n- No network dependency\n- Executable rule coverage\n- Repository-visible implementation evidence"
    },
    {
      "id": "slice",
      "label": "Slice overview",
      "path": ".day-shift/planning/01-tic-tac-toe-demo/slice-overview.md",
      "visibleFromStep": 2,
      "purpose": "Connects the registered specification to the ordered implementation plan.",
      "content": "# Tic-Tac-Toe Demo\n\n## Purpose\nBuild and verify a playable local Tic-Tac-Toe game.\n\n## Phases\n- `01-build-game`"
    },
    {
      "id": "phase",
      "label": "Phase overview",
      "path": ".day-shift/planning/01-tic-tac-toe-demo/phases/01-build-game/phase-overview.md",
      "visibleFromStep": 3,
      "purpose": "Defines the game-building phase and its acceptance boundary.",
      "content": "# Build Game\n\n## Milestones\n- `01-playable-game`\n\n## Acceptance Criteria\n- The game can be played through a win or draw\n- Completed games lock until reset"
    },
    {
      "id": "milestone",
      "label": "Milestone overview",
      "path": ".day-shift/planning/01-tic-tac-toe-demo/phases/01-build-game/milestones/01-playable-game/milestone-overview.md",
      "visibleFromStep": 4,
      "purpose": "Turns the outcome into an ordered, reviewable implementation boundary.",
      "content": "# Playable Game\n\n## Tasks\n- `01-derive-playable-game-contract`\n- `02-cover-playable-game-behavior`\n\n## Acceptance Criteria\n- Alternating X and O turns\n- Win and draw detection\n- Completed-board lock\n- Reset to a clean game"
    },
    {
      "id": "task",
      "label": "Task definition",
      "path": ".day-shift/planning/01-tic-tac-toe-demo/phases/01-build-game/milestones/01-playable-game/tasks/01-derive-playable-game-contract/task-definition.md",
      "visibleFromStep": 5,
      "purpose": "Gives the coding agent a bounded target, behavior contract, and validation command.",
      "content": "# Derive Playable Game Contract\n\n## Objective\nImplement the game-state transition contract.\n\n## Implementation Target Paths\n- src/game.js\n- src/game.test.js\n\n## Validation\n- `npm test`"
    },
    {
      "id": "summary",
      "label": "Implementation summary",
      "path": ".day-shift/planning/01-tic-tac-toe-demo/phases/01-build-game/milestones/01-playable-game/tasks/01-derive-playable-game-contract/implementation-summary.md",
      "visibleFromStep": 5,
      "completeFromStep": 6,
      "purpose": "Records what actually changed and the executable evidence that passed.",
      "pendingContent": "# Implementation Summary\n\n## Implementation Status\nPending implementation.",
      "content": "# Implementation Summary\n\n## Completed Work\nImplemented immutable turns, wins, draws, board locking, and reset behavior.\n\n## Changed Paths\n- src/game.js\n- src/game.test.js\n\n## Validation\n- `npm test` - passed"
    },
    {
      "id": "game",
      "label": "Game implementation",
      "path": "src/game.js",
      "visibleFromStep": 6,
      "purpose": "Contains the executable game-state transitions produced by the implementation task.",
      "content": "export const newGame = () => ({\n  board: Array(9).fill(null),\n  next: \"X\",\n  winner: null,\n  draw: false\n});\n\nexport function play(game, index) {\n  // validate the move, alternate turns, and detect completion\n}"
    },
    {
      "id": "game-test",
      "label": "Game test",
      "path": "src/game.test.js",
      "visibleFromStep": 6,
      "purpose": "Executes the turn, win, board-lock, and reset acceptance behavior.",
      "content": "test(\"turns, wins, board lock, and reset\", () => {\n  let game = newGame();\n  for (const move of [0, 3, 1, 4, 2]) game = play(game, move);\n  assert.equal(game.winner, \"X\");\n});"
    },
    {
      "id": "reconciliation",
      "label": "Reconciliation",
      "path": ".day-shift/planning/01-tic-tac-toe-demo/phases/01-build-game/milestones/01-playable-game/reconciliation.md",
      "visibleFromStep": 4,
      "completeFromStep": 7,
      "purpose": "Rolls completed task evidence back up against the milestone acceptance criteria.",
      "pendingContent": "# Playable Game Reconciliation\n\n## Review Status\nPending task implementation summaries.",
      "content": "# Playable Game Reconciliation\n\n## Review Status\nCompleted.\n\n## Acceptance Criteria Review\n- Met: alternating turns\n- Met: wins and draws\n- Met: completed-board lock\n- Met: clean reset\n\n## Final Notes\nVerdict: accepted."
    }
  ]
}
