Skip to content

feat: persist review artifacts and cross-session handoff#60

Open
gregario wants to merge 1 commit intogarrytan:mainfrom
gregario:feat/session-artifacts
Open

feat: persist review artifacts and cross-session handoff#60
gregario wants to merge 1 commit intogarrytan:mainfrom
gregario:feat/session-artifacts

Conversation

@gregario
Copy link

Summary

  • /plan-ceo-review, /plan-eng-review, and /review now save their structured outputs (completion summary, error maps, failure modes, scope exclusions, diagrams, user decisions) to .gstack/reviews/ after each run
  • A rolling HANDOFF.md aggregates the most recent review of each type into a single session-bridging document
  • /ship reads HANDOFF.md (if present) and adds a "Planning Context" section to the PR body

Closes #6

Design decisions

What's saved: The Required Outputs each skill already defines — decisions and structured deliverables, not the review process or conversation. This matches the retro pattern (saves structured metrics, not the narrative) and QA pattern (saves the report, not the exploration).

Archive format: Dual-track MD + JSON per review, date-sequenced (plan-ceo-2026-03-15-1.{md,json}). The JSON enables programmatic HANDOFF.md regeneration. This is more structured than QA (which has no per-report JSON) but the JSON is load-bearing — without it, regenerating the handoff from markdown would require parsing prose.

HANDOFF.md is transient: Overwritten on each review run, like QA's baseline.json. It's a "latest pointer," not an archive. The individual review files in .gstack/reviews/ accumulate and persist — following the museum model established by retro snapshots and QA reports ("Never delete output files... accumulate — that's intentional").

/ship integration is explicit: Called out as a separate enhancement. Ship reads HANDOFF.md during pre-flight and surfaces planning context in the PR body. If no HANDOFF.md exists, the step is skipped silently.

Skills without existing save state are omitted: plan-ceo-review and plan-eng-review had no persistence at all (only TODOS.md). /review persisted findings indirectly via /ship's PR body. This PR adds direct persistence to all three.

Test plan

  • bun run gen:skill-docs --dry-run — all SKILL.md files FRESH
  • bun test — 66/66 skill validation tests pass
  • Manual: run /plan-ceo-review, verify .gstack/reviews/ populated
  • Manual: run /ship, verify "Planning Context" in PR body when HANDOFF.md exists

🤖 Generated with Claude Code

plan-ceo-review, plan-eng-review, and review now save their structured
outputs to .gstack/reviews/ after each run. A rolling HANDOFF.md
aggregates the most recent review of each type into a session-bridging
document. ship reads HANDOFF.md during pre-flight and surfaces planning
context in the PR body.

Closes garrytan#6

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@sheila2011
Copy link

i dont understand this

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature request: saving all the reports, or generating some kind of artifact/hand-off file to persist the information between the sessions

2 participants