#668 - Branch-based planning pipeline and ai-workflow label#669
#668 - Branch-based planning pipeline and ai-workflow label#669bracyw wants to merge 15 commits into
Conversation
Move the AI issue-authoring flow onto a branch gated by PR review: research ticket opens the work, the grilling session commits its artifacts (CONTEXT.md, ADRs, PRD) to the branch, reviewed as a draft PR before implementation issues are broken out. Adds ADR 0003, docs/agents/research-pipeline.md, docs/research/ home with the #668 PRD as the prototype instance, the ai-workflow label in the palette, glossary terms, and pipeline guidance in grill-with-docs and to-prd. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B4jsfko5DsXeEQh6erhHrT
The flow spans terminology, ADRs, and PRD authoring through issue breakout, not just research. Renames the docs page, ADR, docs/planning/ artifact folder, glossary terms (planning pipeline / planning ticket), and all references in issue-tracker.md, grill-with-docs, to-prd, and CLAUDE.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B4jsfko5DsXeEQh6erhHrT
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B4jsfko5DsXeEQh6erhHrT
It is the normal way to plan a feature with grill-with-docs/to-prd: do it on a branch off develop so the work is saved, recorded, and reviewed rather than lost to chat or committed straight to develop. Reframes the pipeline doc, issue-tracker, glossary, CLAUDE.md, and both skills; makes pipeline the default path in to-prd with standalone as the exception. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B4jsfko5DsXeEQh6erhHrT
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B4jsfko5DsXeEQh6erhHrT
…itle shape, on-develop guard, drop stale label notes
| | Difficulty | `straightforward`, `medium`, `difficult` | | ||
| | Workflow | `ai-workflow` | | ||
|
|
||
| Apply `ai-workflow` when the ticket's subject is the AI dev workflow itself — the skills, docs/agents, or the issue pipeline — not product code. Orthogonal to the area labels (a ticket is about the workflow or a product component, not both). Created via `gh label create`, like the triage roles. |
There was a problem hiding this comment.
Instead of just one area label, maybe also a type and difficulty label
There was a problem hiding this comment.
Talked this through and decided to keep ai-workflow as a single label for this issue type (used in place of an area label), and not attach type/difficulty to it.
It also surfaced a broader question we don't want to settle inside this PR: whether preset difficulty labels (straightforward/medium/difficult) earn their keep at all, vs. having the assignee estimate effort when they pick up a ticket. That's out of scope here — parked as its own planning ticket rather than expanding this one. So no label changes beyond adding ai-workflow.
Generated by Claude Code
| 3. Write the PRD using the template below, then publish it to the project issue tracker. Apply the `ready-for-agent` triage label - no need for additional triage. | ||
| 3. Write the PRD using the template below. | ||
|
|
||
| By default, work through the planning pipeline (docs/agents/planning-pipeline.md): on a branch off develop, write the PRD to docs/planning/<ticket>/prd.md and commit it — reviewed in a draft PR, then broken into issues with `to-issues` after merge. <ticket> is the planning ticket's number and kebab-title, the same as the branch name. |
There was a problem hiding this comment.
Description up top still says publish to the issue tracker, skill selection only reads the description so it might skip this skill
There was a problem hiding this comment.
Fixed. The frontmatter description now leads with the pipeline — a PRD's home is a GitHub issue that parents the implementation tickets, staged as a temporary file on a branch for review then published as that issue. So skill selection reads the pipeline default, not just "publish to the tracker."
Generated by Claude Code
|
|
||
| ## Planning tickets | ||
|
|
||
| Plan features with grill-with-docs or to-prd through the branch-based planning pipeline: the session runs on a branch off develop, its artifacts are committed and reviewed as a draft PR, and implementation issues are broken out after merge — not filed from chat or committed to develop. The normal path, not a special case. See planning-pipeline.md. |
There was a problem hiding this comment.
Line 3 still says PRDs live as GitHub issues, contradicts the planning-pipeline default
There was a problem hiding this comment.
Resolved — we went back and forth on this one. Landing point: PRDs do live as GitHub issues — a PRD issue that parents the implementation tickets (it stays a PRD, not relabeled to an epic). docs/prd// is only temporary staging so the PRD is reviewable in the diff before it's published, then deleted. Line 3 now says that, so the contradiction's gone.
Generated by Claude Code
|
|
||
| Publish issues in dependency order (blockers first) so you can reference real issue identifiers in the "Blocked by" field. | ||
|
|
||
| When breaking out a planning-pipeline PRD (docs/planning/<ticket>/prd.md), set the Parent of every spawned issue to the planning ticket the branch is named for, even though the immediate source is the PRD file, so the issues link back to it. |
There was a problem hiding this comment.
Branch is deleted after merge, maybe say the folder name instead
There was a problem hiding this comment.
Fixed — to-issues points at the docs/prd// folder as the source instead of the branch, since the branch is recreated per phase. Sub-tickets are drafted there as one kebab-named file each, and their Parent is set to the PRD issue (the PRD is what links back to the planning ticket).
Generated by Claude Code
- issue-tracker: PRDs live under docs/planning by default, not as issues - ai-workflow tickets still take type/difficulty labels - to-prd description mentions the branch/pipeline default so skill selection picks it - to-issues reads the merged PRD from docs/planning/<ticket>/ (branch is deleted on merge); define <ticket> as the folder name, not branch Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B4jsfko5DsXeEQh6erhHrT
|
Addressed all four review comments in 7dcaba8:
Generated by Claude Code |
Correct the model: a PRD's durable home is the tracker, not docs. The pipeline only stages it as a temporary file on the branch for PR review; on merge it graduates (published as an issue, broken into implementation tickets) and the file is deleted. ADRs and CONTEXT.md edits still persist. Drops the earlier "retained as durable history" framing. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B4jsfko5DsXeEQh6erhHrT
…nual - Hierarchy: planning ticket -> PRD (epic issue, links to planning ticket) -> implementation tickets (Parent = the PRD). Only the PRD links to the planning ticket. - Three phased PRs: PRD under the planning ticket, issue drafts under the PRD, cleanup under the PRD. Branch reused off develop per phase. - Issue creation is a manual skill step; no merge automation, no reopening the planning ticket (automation deliberately rejected). - Updates planning-pipeline.md, ADR 0003, to-prd, to-issues, glossary, issue-tracker, README, and the #668 PRD. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B4jsfko5DsXeEQh6erhHrT
…develop The example prd.md contradicted the model (PRD files are temporary staging, deleted in phase 3). Drop it; README documents the folder convention with a generic layout instead. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B4jsfko5DsXeEQh6erhHrT
Keep difficulty/type label scope unchanged in this PR. ai-workflow is the one label for the new issue type, used in place of an area label. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B4jsfko5DsXeEQh6erhHrT
The PRD is published as a plain issue that parents the implementation tickets; drop the "epic" framing across planning-pipeline.md, ADR 0003, to-prd, to-issues, glossary, issue-tracker, and README. The pre-existing epic Type label is untouched. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B4jsfko5DsXeEQh6erhHrT
Rename the old issues/ subfolder to tickets/ and make explicit it sits under the folder named for the PRD. Updates README, planning-pipeline.md, to-issues, and ADR 0003. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B4jsfko5DsXeEQh6erhHrT
… files Rename docs/planning -> docs/prd. Proposed implementation tickets are one kebab-named file each directly in the PRD folder (no tickets/ subfolder), alongside prd.md. Updates README, planning-pipeline.md, ADR 0003, to-prd, and to-issues. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B4jsfko5DsXeEQh6erhHrT
|
Superseding my earlier summary — the design moved a lot since then, so that comment is stale. Final state:
All four review threads addressed and replied to individually. Generated by Claude Code |
Closes #668 (stages 1-3).
Moves the AI issue-authoring flow onto a branch gated by PR review: a planning ticket opens the work, the grilling session commits its artifacts (CONTEXT.md edits, ADRs, PRD) to the branch, and the branch is reviewed before implementation issues are broken out. Named "planning pipeline" since it spans research, terminology, ADRs, and PRD authoring — not just research.
Changes
Out of scope
🤖 Generated with Claude Code