When gsd-tools init output exceeds 50KB, core.cjs writes to a temp file
and outputs @file:<path>. No workflow handled this prefix, causing agents
to hallucinate /tmp paths that fail on Windows (C:\tmp doesn't exist).
Add @file: resolution line after every INIT=$(node ...) call across all
32 workflow, agent, and reference files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Claude Code subagents sometimes rewrite ~/. paths to relative paths,
causing MODULE_NOT_FOUND when CWD is the project directory. $HOME is a
shell variable resolved at runtime, immune to model path rewriting.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Records test generation in project state via state-snapshot call,
keeping add-tests consistent with other GSD workflows that track
their operations.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New command that generates unit and E2E tests for completed phases:
- Analyzes implementation files and classifies into TDD/E2E/Skip
- Enforces RED-GREEN gates for both unit and E2E tests
- Uses phase SUMMARY.md, CONTEXT.md, and VERIFICATION.md as test specs
- Presents test plan for user approval before generating
Test classification rules:
- TDD: pure functions where expect(fn(input)).toBe(output) is writable
- E2E: UI behavior verifiable by Playwright (keyboard, navigation, forms)
- Skip: styling, config, glue code, migrations, simple CRUD
Ref: Issue #302