|
98 | 98 | {"id":"ge-hch.4","title":"M1.5 — Content iteration tooling \u0026 replay regression","description":"M1.5 — Content iteration tooling \u0026 replay regression\\n\\nProvide tooling and workflows to rapidly swap stories, run replay tests (golden path), and enable fast content iteration for authors and AI content generation.\\n\\n## Success Criteria\\n- Tooling exists to replace demo story and load new stories without code changes.\\n- Automated replay harness can run and validate golden-path story completion for at least one story.\\n- Documentation for content-iteration workflow and example commands.","status":"in_progress","priority":1,"issue_type":"epic","assignee":"Build","created_at":"2026-01-07T17:24:07.829287373-08:00","created_by":"rgardler","updated_at":"2026-01-13T22:13:32.399224453-08:00","labels":["milestone"],"dependencies":[{"issue_id":"ge-hch.4","depends_on_id":"ge-hch.3","type":"blocks","created_at":"2026-01-07T17:24:30.333029896-08:00","created_by":"rgardler"}],"comments":[{"id":80,"issue_id":"ge-hch.4","author":"rgardler","text":"Created subtasks for M1.5 (content-iteration \u0026 replay)\n\nSummary of actions\n- Broke ge-hch.4 into concrete bd issues and assigned owners.\n\nIssues created (IDs \u0026 titles):\n- ge-hch.4.2 — Feature: story-swap CLI \u0026 manifest (assignee: patch)\n- ge-hch.4.3 — Feature: CI: replay gate \u0026 artifacts (assignee: ship)\n- ge-hch.4.4 — Task: golden-path automation tests (replay) (assignee: probe)\n- ge-hch.4.5 — Docs: content-iteration workflow \u0026 examples (assignee: scribbler)\n- ge-hch.4.6 — Task: sample golden-path scripts \u0026 example stories (assignee: patch)\n\nCommands executed\n- bd create \"Feature: story-swap CLI \u0026 manifest\" --parent ge-hch.4 -t feature -p 1 --assignee patch\n- bd create \"Feature: CI: replay gate \u0026 artifacts\" --parent ge-hch.4 -t feature -p 2 --assignee ship\n- bd create \"Task: golden-path automation tests (replay)\" --parent ge-hch.4 -t task -p 2 --assignee probe\n- bd create \"Docs: content-iteration workflow \u0026 examples\" --parent ge-hch.4 -t task -p 2 --assignee scribbler\n- bd create \"Task: sample golden-path scripts \u0026 example stories\" --parent ge-hch.4 -t task -p 2 --assignee patch\n\nFiles / paths referenced or expected\n- .beads/issues.jsonl (updated by bd)\n- runtime hook: scripts/replay.js (target for ge-hch.4.1)\n- scripts/validate-story.js (existing validate utility)\n- web/stories/manifest.json (proposed manifest location)\n- web/stories/golden.demo.json (golden-path choice script)\n- docs/content-iteration.md or docs/InkJS_README.md (target for docs)\n\nNotes / Risks / Follow-ups\n- Risk: CI secrets / permissions may be required for replay artifacts or hosted runners; Ship should list required secrets in ge-hch.4.3.\n- Risk: Story-swap runtime hook must remain backward-compatible; Patch should coordinate small runtime lookup change with existing dev server and validate-story script.\n- Risk: Golden-path determinism — stories must include deterministic choice indices or identifiers; Probe should design tests to be tolerant of non-deterministic content where necessary.\n\nNext steps\n- Owners (Patch/Ship/Probe/Scribbler) should comment on their assigned bd issue with an implementation plan and estimated timebox.\n- I will not mark the epic in_progress until owners confirm; please update ge-hch.4 when ready to start.\n\nActor: Build\n","created_at":"2026-01-14T05:24:33Z"},{"id":81,"issue_id":"ge-hch.4","author":"rgardler","text":"Rationale:\nWe need a headless replay harness to drive stories to completion for golden-path regression. Implementing scripts/replay.js and example golden-path scripts is the critical first step to enable automated validation and CI gating.\n\nRelated bd issues:\n- ge-hch.4 (epic)\n- ge-hch.4.1 (Tool: replay harness)\n- ge-hch.4.2 (story-swap CLI \u0026 manifest)\n- ge-hch.4.6 (sample golden-path scripts \u0026 example stories)\n\nAcceptance criteria (definition of done):\n1. scripts/replay.js exists and provides a CLI program that accepts:\n - --story \u003cpath-to-ink-file\u003e\n - --script \u003cpath-to-golden-json\u003e\n - returns exit code 0 on success (story reached terminal node per script) and non-zero on failure.\n2. Format for golden JSON is documented in the script help and matches expectations used by tests (an array of choice indices or IDs).\n3. Example golden script web/stories/golden.demo.json present and demonstrates running to completion on web/stories/demo.ink.\n4. Unit or integration test(s) calling scripts/replay.js and asserting success are added (tests/replay/replay.spec.js or similar).\n5. README or docs note showing example command to run the replay harness locally.\n6. Files to create/modify are listed in the PR and linked in a bd comment.\n\nConstraints / timebox:\n- Priority: high (P1 for epic). Timebox: 48 hours recommended.\n- Keep implementation minimal and language-consistent with repo (Node.js). Avoid large refactors.\n\nDeliverables:\n- scripts/replay.js\n- web/stories/golden.demo.json\n- tests/replay/replay.spec.js\n- docs snippet (docs/content-iteration.md or README note)\n\nIf any blocking items (CI secrets, runtime API gaps) are discovered, record them on ge-hch.4.1 and notify Build.\n\nActor: Build\n","created_at":"2026-01-14T05:27:32Z"},{"id":142,"issue_id":"ge-hch.4","author":"rgardler","text":"Action: Started work on story-swap CLI \u0026 manifest (ge-hch.4.2).\\n\\nI moved ge-hch.4.2 to in_progress and assigned it to @patch. Patch, please respond on ge-hch.4.2 with an implementation plan and estimate. Suggested plan:\\n1) Define manifest schema: web/stories/manifest.json (list stable story path, optional aliases, metadata).\\n2) Implement story-swap CLI (scripts/story-swap.js) with flags: --manifest, --story \u003cpath\u003e, --dry-run, --rotate (safe swap). Keep minimal and Node.js-native.\\n3) Ensure validate-story integration: story-swap should optionally invoke scripts/validate-story.js or provide instructions to run validate-story after swap.\\n4) Add example command and minimal docs update (docs/content-iteration.md or docs/InkJS_README.md).\\n5) List files to be created/modified and open a PR with those files; link the PR in a bd comment.\\n\\nTimebox: 1-2 days recommended. If any runtime API gaps or permissions are required (dev server lookup change, path rotation, CI runner access), record them in ge-hch.4.2 and notify Build.\\n\\nDelegation: @delegate(to: patch)\\n\\nCommands executed in this session:\\n- bd show ge-hch.4 --json\\n- bd ready --json\\n- bd update ge-hch.4.2 --status in_progress --assignee patch --json\\n\\nFiles / paths referenced or expected:\\n- web/stories/manifest.json (new)\\n- scripts/story-swap.js (new)\\n- scripts/validate-story.js (existing)\\n- web/stories/demo.ink (existing stable story)\\n- docs/content-iteration.md or docs/InkJS_README.md (docs update)\\n- .beads/issues.jsonl (bd state)\\n\\nRisks / follow-ups:\\n- Backward compatibility: ensure runtime still loads demo story if manifest absent.\\n- File permissions/CI runner access for swaps in CI.\\n- Coordination required with ge-hch.4.3 (CI replay gate) and validate-story docs.\\n- Story determinism: use IDs or deterministic choice indices in golden scripts.\\n\\nBuild (acting),","created_at":"2026-01-15T05:03:26Z"}]} |
99 | 99 | {"id":"ge-hch.4.1","title":"Tool: replay harness (golden-path)","description":"Add a headless replay harness that can drive a story to completion using scripted choices and record results.\\n\\n## Acceptance Criteria\\n- scripts/replay.js exists and can be fed a story + choice sequence and returns success/failure.\\n- Example golden-path script present for stable demo.\\n","status":"closed","priority":2,"issue_type":"task","assignee":"patch","created_at":"2026-01-07T19:42:36.286010273-08:00","created_by":"rgardler","updated_at":"2026-01-14T01:32:46.187009973-08:00","closed_at":"2026-01-14T01:32:46.187017034-08:00","external_ref":"https://github.com/TheWizardsCode/GEngine/pull/129","labels":["Status: PR Created"],"dependencies":[{"issue_id":"ge-hch.4.1","depends_on_id":"ge-hch.4","type":"parent-child","created_at":"2026-01-07T19:42:36.28684834-08:00","created_by":"rgardler"},{"issue_id":"ge-hch.4.1","depends_on_id":"ge-hch.3.5","type":"blocks","created_at":"2026-01-07T19:45:52.014164579-08:00","created_by":"rgardler"},{"issue_id":"ge-hch.4.1","depends_on_id":"ge-hch.3.4","type":"blocks","created_at":"2026-01-07T19:45:54.159316111-08:00","created_by":"rgardler"}],"comments":[{"id":82,"issue_id":"ge-hch.4.1","author":"rgardler","text":"@patch — Build requests you implement the replay harness per the attached delegation body (also attached on the parent epic). Summary: implement scripts/replay.js CLI (--story, --script) + example golden/demo script, tests (tests/replay/replay.spec.js), and a short docs snippet. Timebox: 48h. Please reply here with 'Accepted' and mark ge-hch.4.1 in_progress when you start; open a PR and add a bd comment linking the PR when ready. If you need clarifications or CI permissions, note blockers in this thread. --Actor: Build","created_at":"2026-01-14T05:28:25Z"},{"id":112,"issue_id":"ge-hch.4.1","author":"rgardler","text":"PR #129 (https://github.com/TheWizardsCode/GEngine/pull/129) has been merged. The merged PR provides scripts/replay.js and an example golden-path script; acceptance criteria verified in PR. Removing 'Status: PR Created' label and closing this bead as completed. -- Actor: Build","created_at":"2026-01-14T09:32:44Z"}]} |
100 | 100 | {"id":"ge-hch.4.2","title":"Feature: story-swap CLI \u0026 manifest","status":"closed","priority":1,"issue_type":"feature","assignee":"patch","created_at":"2026-01-13T21:23:40.905924671-08:00","created_by":"rgardler","updated_at":"2026-01-14T21:59:26.662102905-08:00","closed_at":"2026-01-14T21:59:26.662102905-08:00","close_reason":"Cancelled","dependencies":[{"issue_id":"ge-hch.4.2","depends_on_id":"ge-hch.4","type":"parent-child","created_at":"2026-01-13T21:23:40.90727509-08:00","created_by":"rgardler"}],"comments":[{"id":145,"issue_id":"ge-hch.4.2","author":"rgardler","text":"Please post a short (1-3 step) implementation plan and an estimated timebox for this task, and note any blockers or required CI/permissions. If you're ready to start, please set the issue status to 'in_progress' and reply here. Thanks!","created_at":"2026-01-16T06:21:28Z"}]} |
101 | | -{"id":"ge-hch.4.3","title":"Feature: CI: replay gate \u0026 artifacts","status":"in_progress","priority":2,"issue_type":"feature","assignee":"ship","created_at":"2026-01-13T21:23:40.963315998-08:00","created_by":"rgardler","updated_at":"2026-01-15T22:26:42.495612177-08:00","dependencies":[{"issue_id":"ge-hch.4.3","depends_on_id":"ge-hch.4","type":"parent-child","created_at":"2026-01-13T21:23:40.964300013-08:00","created_by":"rgardler"}],"comments":[{"id":146,"issue_id":"ge-hch.4.3","author":"rgardler","text":"Please post a short (1-3 step) implementation plan and an estimated timebox for this task, and note any blockers or required CI/permissions. If you're ready to start, please set the issue status to 'in_progress' and reply here. Thanks!","created_at":"2026-01-16T06:21:28Z"}]} |
| 101 | +{"id":"ge-hch.4.3","title":"Feature: CI: replay gate \u0026 artifacts","status":"in_progress","priority":2,"issue_type":"feature","assignee":"ship","created_at":"2026-01-13T21:23:40.963315998-08:00","created_by":"rgardler","updated_at":"2026-01-15T22:26:42.495612177-08:00","dependencies":[{"issue_id":"ge-hch.4.3","depends_on_id":"ge-hch.4","type":"parent-child","created_at":"2026-01-13T21:23:40.964300013-08:00","created_by":"rgardler"}],"comments":[{"id":146,"issue_id":"ge-hch.4.3","author":"rgardler","text":"Please post a short (1-3 step) implementation plan and an estimated timebox for this task, and note any blockers or required CI/permissions. If you're ready to start, please set the issue status to 'in_progress' and reply here. Thanks!","created_at":"2026-01-16T06:21:28Z"},{"id":149,"issue_id":"ge-hch.4.3","author":"rgardler","text":"Implemented replay CI improvements: updated .github/workflows/replay.yml to add cancel-in-progress, per-node cache key, failure JSON artifacts, and placeholder archives; added --result-out to scripts/replay.js so the runner writes JSON result files directly. Commits: 7efd228 (workflow), c0ab6bf (script). Files changed: .github/workflows/replay.yml, scripts/replay.js","created_at":"2026-01-16T07:41:59Z"}]} |
102 | 102 | {"id":"ge-hch.4.3.1","title":"Pre-check: validate golden scripts \u0026 stories","description":"Add a pre-check step to the replay CI that verifies at least one web/stories/golden.*.json exists and that each has a corresponding web/stories/\u003cname\u003e.ink (or acceptable compiled fallback). Failure should exit CI with a helpful message and not run the harness. Files: .github/workflows/replay.yml (modified).","status":"in_progress","priority":1,"issue_type":"task","assignee":"ship","created_at":"2026-01-15T22:46:26.100407605-08:00","created_by":"rgardler","updated_at":"2026-01-15T22:46:59.008345675-08:00","dependencies":[{"issue_id":"ge-hch.4.3.1","depends_on_id":"ge-hch.4.3","type":"parent-child","created_at":"2026-01-15T22:46:26.102226088-08:00","created_by":"rgardler"}]} |
103 | 103 | {"id":"ge-hch.4.3.2","title":"CI: job timeout \u0026 stable job name (replay-gate)","description":"Set an explicit job timeout and stable job name matching branch-protection requirement (e.g., 'replay-gate'). Files: .github/workflows/replay.yml (modified).","status":"in_progress","priority":1,"issue_type":"task","assignee":"ship","created_at":"2026-01-15T22:46:26.145823211-08:00","created_by":"rgardler","updated_at":"2026-01-15T22:46:59.067280738-08:00","dependencies":[{"issue_id":"ge-hch.4.3.2","depends_on_id":"ge-hch.4.3","type":"parent-child","created_at":"2026-01-15T22:46:26.146471477-08:00","created_by":"rgardler"}]} |
104 | 104 | {"id":"ge-hch.4.3.3","title":"CI: upload failures + failure artifact capture","description":"Ensure CI copies per-failure JSON/logs into artifacts/results and always uploads logs; failing replay should produce actionable artifacts. Files: .github/workflows/replay.yml (modified).","status":"in_progress","priority":2,"issue_type":"task","assignee":"ship","created_at":"2026-01-15T22:46:26.179527392-08:00","created_by":"rgardler","updated_at":"2026-01-15T22:46:59.110820752-08:00","dependencies":[{"issue_id":"ge-hch.4.3.3","depends_on_id":"ge-hch.4.3","type":"parent-child","created_at":"2026-01-15T22:46:26.18018235-08:00","created_by":"rgardler"}]} |
|
0 commit comments