Context
[2026-05-05 RESHAPE — operator challenge: PR-body text refs are post-merge-invisible.]
Original framing of this ticket assumed PR-body Follow-ups block as the durable surface. @tobiu sharply caught the anti-pattern: "once a PR gets closed, will anyone ever look at PR body hints for new tickets?" PR bodies become invisible after merge; follow-up tickets surfaced only in PR-body text get buried.
The actual gap is post-merge discoverability via native graph relationships. A PR-body Follow-ups block can still serve as a pre-merge operator-visibility surface (helps the merger see follow-ups before merge), but the durable substrate is filed tickets + native parent_child / blocked_by relationships via update_issue_relationship.
Empirical anchor: I filed 10 follow-up tickets earlier in the same session (2026-05-05); audit revealed 9 of 10 had NO parent_child link. Only the retroactive #10774 had a parent. Post-merge those 9 tickets would have orphaned in the backlog without graph-discoverability, even though I'd named them in PR-body text. @tobiu's challenge produced the audit.
The Problem (revised)
pr-review-guide §9 Strategic-Fit Step-Back enumerates verdicts including Approve+Follow-Up, but pull-request-workflow doesn't have a corresponding Pre-Flight that requires authors to:
- File the follow-ups as actual tickets (not just text references)
- Link them via
update_issue_relationship to a discoverable parent (epic OR close-target OR sibling-ticket-anchor)
- (optionally surface in PR body for pre-merge operator-visibility)
Without #1 + #2, follow-ups orphan post-merge. The PR-body block (#3) is a surface but not the durable substrate.
The Fix (revised)
Add to pull-request-workflow.md a new Pre-Flight section: "Post-Review Follow-up Surfacing". Triggers when a reviewer's verdict is Approve+Follow-Up (or any verdict with explicit follow-up items in the [KB_GAP] / [TOOLING_GAP] / [RETROSPECTIVE] tags). The author MUST:
- File each follow-up as an actual ticket via
create_issue with full Fat Ticket Body Structure
- Link each filed ticket to a discoverable parent via
update_issue_relationship — typically the close-target's parent epic, or a sibling-anchor-ticket from the review's substrate
- (Optionally) add a
## Follow-ups block to the PR body LISTING the filed tickets — this serves as PRE-MERGE operator-visibility but is NOT the durable substrate. Block at TOP for at-a-glance merge-time visibility.
The order matters: file-and-link FIRST (durable substrate), surface-in-PR-body OPTIONALLY (pre-merge surface). The PR body block alone, without filed-and-linked tickets, is the anti-pattern this Pre-Flight prevents.
Contract Ledger
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback |
Docs |
Evidence |
pull-request-workflow.md Post-Review Follow-up Surfacing |
#10776 + related review-follow-up lineage |
Authors file follow-up tickets and link them via native relationships before relying on PR-body visibility |
If a follow-up is intentionally not filed, require explicit rationale in review-response / PR body |
Workflow section + reviewer cross-reference |
PR body / review lint or manual review evidence |
pr-review-guide.md Approve+Follow-Up reviewer handoff |
#10776 + pr-review Strategic-Fit Step-Back |
Reviewers who emit follow-ups make the author file/link obligation visible |
If no durable follow-up is needed, verdict should avoid Approve+Follow-Up wording |
Review guide cross-reference |
Review template / follow-up template evidence |
Existing Enforcement Sufficiency Audit
| Layer |
Current Enforcement |
Gap |
| Layer 4 CI checks |
PR body / review-body lint validate template shape and graph-ingestion tags |
They do not prove follow-up tickets were filed or linked via parent_child / blocked_by relationships |
Layer 1 AGENTS.md invariants |
Mandatory lifecycle A2A and no-merge discipline create visibility |
They do not bind Approve+Follow-Up to durable filed-and-linked ticket substrate |
Existing pr-review skill logic |
Approve+Follow-Up exists as a Strategic-Fit verdict |
It does not make the author's file-and-link obligation explicit at the review handoff |
Existing pull-request skill logic |
PR bodies can surface follow-ups for merge-time visibility |
It does not require filed tickets + native relationships before relying on PR-body text |
Conclusion: existing enforcement is insufficient. The minimal positive-ROI substrate change is to add a narrow author-side pre-flight plus reviewer-side cross-reference, not a new global rule or CI gate.
Acceptance Criteria
Out of Scope
- Mechanical hook that grep-blocks
gh pr merge if follow-ups aren't filed-and-linked — file as scope-extension if discipline alone insufficient
- Auto-creating follow-up tickets from review-comment text — heavier scope; author still owns ticket-creation discipline
- Native GitHub feature requests (e.g. Action-required check for unfiled follow-ups) — out of repo scope
Avoided Traps
- Conflating PR-body text refs with durable substrate: PR bodies are post-merge-invisible. Native graph relationships (parent_child / blocked_by) are the durable surface. The original framing of this ticket conflated the two; reshape addresses it.
- Auto-filing tickets without intake-discipline: the author still runs full
ticket-create §1a Content Sweep + Five-Stage Challenge Chain on each follow-up, not auto-spawning from review-comment text.
- Forgetting to link as parent_child: even with tickets filed, missing
update_issue_relationship is the same orphan-pattern. Both file AND link required.
Related
- Empirical anchor: session 2026-05-05 — audit revealed 9 of 10 follow-up tickets I filed today had no parent_child link until @tobiu surfaced the discoverability gap
- Sibling substrate: #10164 (cross-PR collision Pre-Flight), #10755 (Resolves keyword Pre-Flight), #10775 (evaluation metrics Pre-Flight)
- Parent epic: #10757 (cycle-2 cognitive-load — substrate-improvement family)
- Reference:
pr-review-guide §9 Strategic-Fit Step-Back
Origin Session ID: 23b9cbcd-4938-4a46-b21a-0d48dd12e7e7
Retrieval Hint: query_raw_memories(query="approve+follow-up native graph relationships post-merge discoverability parent_child filed tickets vs PR body text")
Context
[2026-05-05 RESHAPE — operator challenge: PR-body text refs are post-merge-invisible.]
Original framing of this ticket assumed PR-body Follow-ups block as the durable surface. @tobiu sharply caught the anti-pattern: "once a PR gets closed, will anyone ever look at PR body hints for new tickets?" PR bodies become invisible after merge; follow-up tickets surfaced only in PR-body text get buried.
The actual gap is post-merge discoverability via native graph relationships. A PR-body Follow-ups block can still serve as a pre-merge operator-visibility surface (helps the merger see follow-ups before merge), but the durable substrate is filed tickets + native parent_child / blocked_by relationships via
update_issue_relationship.Empirical anchor: I filed 10 follow-up tickets earlier in the same session (2026-05-05); audit revealed 9 of 10 had NO parent_child link. Only the retroactive #10774 had a parent. Post-merge those 9 tickets would have orphaned in the backlog without graph-discoverability, even though I'd named them in PR-body text. @tobiu's challenge produced the audit.
The Problem (revised)
pr-review-guide §9Strategic-Fit Step-Back enumerates verdicts includingApprove+Follow-Up, butpull-request-workflowdoesn't have a corresponding Pre-Flight that requires authors to:update_issue_relationshipto a discoverable parent (epic OR close-target OR sibling-ticket-anchor)Without #1 + #2, follow-ups orphan post-merge. The PR-body block (#3) is a surface but not the durable substrate.
The Fix (revised)
Add to
pull-request-workflow.mda new Pre-Flight section: "Post-Review Follow-up Surfacing". Triggers when a reviewer's verdict isApprove+Follow-Up(or any verdict with explicit follow-up items in the[KB_GAP]/[TOOLING_GAP]/[RETROSPECTIVE]tags). The author MUST:create_issuewith full Fat Ticket Body Structureupdate_issue_relationship— typically the close-target's parent epic, or a sibling-anchor-ticket from the review's substrate## Follow-upsblock to the PR body LISTING the filed tickets — this serves as PRE-MERGE operator-visibility but is NOT the durable substrate. Block at TOP for at-a-glance merge-time visibility.The order matters: file-and-link FIRST (durable substrate), surface-in-PR-body OPTIONALLY (pre-merge surface). The PR body block alone, without filed-and-linked tickets, is the anti-pattern this Pre-Flight prevents.
Contract Ledger
pull-request-workflow.mdPost-Review Follow-up Surfacingpr-review-guide.mdApprove+Follow-Upreviewer handoffpr-reviewStrategic-Fit Step-BackApprove+Follow-UpwordingExisting Enforcement Sufficiency Audit
parent_child/blocked_byrelationshipsAGENTS.mdinvariantsApprove+Follow-Upto durable filed-and-linked ticket substratepr-reviewskill logicApprove+Follow-Upexists as a Strategic-Fit verdictpull-requestskill logicConclusion: existing enforcement is insufficient. The minimal positive-ROI substrate change is to add a narrow author-side pre-flight plus reviewer-side cross-reference, not a new global rule or CI gate.
Acceptance Criteria
pull-request-workflow.mdadds "Post-Review Follow-up Surfacing" Pre-Flight sectionupdate_issue_relationshipBEFORE merge (mechanical-or-discipline check)pr-review-guide §9cross-references the new Pre-Flight — reviewer who landsApprove+Follow-Upknows the author has a file-and-link obligationfeedback_post_merge_discoverability_via_graph.md(filing alongside this ticket)Out of Scope
gh pr mergeif follow-ups aren't filed-and-linked — file as scope-extension if discipline alone insufficientAvoided Traps
ticket-create §1aContent Sweep + Five-Stage Challenge Chain on each follow-up, not auto-spawning from review-comment text.update_issue_relationshipis the same orphan-pattern. Both file AND link required.Related
pr-review-guide §9Strategic-Fit Step-BackOrigin Session ID: 23b9cbcd-4938-4a46-b21a-0d48dd12e7e7
Retrieval Hint:
query_raw_memories(query="approve+follow-up native graph relationships post-merge discoverability parent_child filed tickets vs PR body text")