Skip to content

Epic: Squad review gate for agent-authored pull requests #1729

Open
6 of 7 issues completed
Open

Description

@bradygaster

Problem

The gh-aw SDLC lifecycle has no independent post-implementation review phase. /squad implement dispatches squad-implement-worker, which self-reviews its own diff and opens a PR. The only gates after that are human review and CI. A worker that misreads acceptance criteria produces a PR that no other agent inspects, and the epic merge-relay advances the next child regardless.

Goal

Add a /squad review capability that reviews both Squad-authored and Copilot-authored PRs, with reviewer independence enforced structurally (no edit: authority, no dispatch, no issue creation) rather than by prompt instruction.

Phases

Phase Scope Issues Status
0 Hardening — router concurrency, actor authorization, PR provenance markers, relay correctness, compile/budget CI gates, behavioral tests #1730, #1731, #1732 ✅ Complete (#1732 closed; #1730, #1731 closed)
1 /squad review MVP, advisory only #1733 ✅ Complete (#1733 closed)
2 Enforcement — required check, epic relay gated on review verdict #1734 🔲 Remaining — blocked on advisory soak (#1733) and Tier 1 false-green fixes; see #1828 as architecture/decision blocker
3 Optional human-initiated remediation worker #1735 🔲 Remaining — optional; wait for #1734 verdict/override semantics
4 Distribution and documentation #1736 ✅ Complete (#1736 closed)

📋 Current sequencing plan is in the Procedures triage comment below. Earlier Flight backlog sequencing remains historical context, but the required-check phase now explicitly waits for the Tier 1 false-green cluster because a permanently red or blind gate is equivalent to no gate.

Phase 0 is a prerequisite: a review gate is only meaningful if dispatch is trusted, PRs are machine-identifiable, and gh aw compile actually runs in CI. Phase 2 adds a second prerequisite: the broader gh-aw false-green cluster must land first so /squad review does not become a required check backed by blind instrumentation.

Design invariants

  • Reviewer independence is structural. The review workflow gets no edit: tool, no dispatch_workflow, no create-issue.
  • Verdicts are COMMENT or REQUEST_CHANGES only. The default GITHUB_TOKEN cannot APPROVE. Human approval stays mandatory in every phase.
  • Provenance detection is author-agnostic — marker first, branch prefix second, bot login third.
  • Automatic remediation is deliberately out of scope for the MVP. An auto-fixing reviewer stops being an independent reviewer.

Open decisions

Decision Recommendation
Auto-review default-on or opt-in? On for agent PRs, off for human PRs
Advisory or blocking at MVP? Advisory; blocking in Phase 2 only after Tier 1 false-green fixes land
Manual /squad review on any PR? Yes
Automatic remediation? No — Phase 3, human-initiated only
Human approval still required? Yes, always

Context

Derived from an end-to-end review of /squad implement and a decomposition assessment of workflows/squad.md. Conclusion of that assessment: keep the monolithic /squad router and the cohesive planning state machine intact; extract workers only at real authority/trigger boundaries. Implementation is one such boundary today; review is the next one.

Activity

  1. added
    type:epicParent issue that decomposes into sub-issues
    gh-awGitHub Agentic Workflows integration
    on Aug 17, 2026
  2. added
    squadSquad triage inbox — Lead will assign to a member
    on Aug 17, 2026
  3. bradygaster commented on Aug 20, 2026

    @bradygaster
    CollaboratorAuthor

    🏗️ Flight — gh-aw backlog triage + dependency-ordered execution plan

    All gh-aw issues are now fully labeled (gh-aw + one type: + one priority: + one squad:{owner} + triaged + wave:). This comment is the execution plan. Tables, not prose.

    Priority rule (this backlog)

    Level Meaning
    p0 The advertised end-to-end path is broken today — fix first.
    p1 Committed this cycle: review-gate Phase 0/1/2 + correctness fixes to load-bearing plan/research paths + adoption blockers.
    p2 Enhancements, RFC, later epic phases, non-urgent hygiene/decisions.

    Waves = sequencing: wave:1-next start now · wave:2-soon next · wave:3-later later.

    Wave 1 — start now (parallel)

    # P Owner What Depends on
    #1772 p0 EECOM Fix merge-continuation dispatch (empty-schema probe) — fix first
    #1758 p0 EECOM Repair long program path (3 interlocking defects, fix together) —
    #1759 p1 Procedures Cast-name plan owners (not generic roles) —
    #1730 p1 EECOM Phase 0a: router concurrency + actor auth —
    #1731 p1 EECOM Phase 0b: PR provenance + tighten merge relay #1772 (same relay path)
    #1732 p1 FIDO Phase 0c: non-skippable gh aw compile + prompt-budget gate + behavioral tests —
    #1768 p2 Sims Regenerate honest e2e fixtures ⚠️ bradygaster call
    #1761 p2 PAO gh-aw guide fixes (good first issue) —

    Wave 2 — after Phase 0 lands

    # P Owner What Depends on
    #1733 p1 EECOM Phase 1: /squad review (advisory) Phase 0 (0a/0b/0c)
    #1734 p1 Flight Phase 2: enforce review as required check, gate relay on verdict #1733
    #1757 p1 Procedures plan validate adversarial teeth (invoke Fact Checker DA pass) #1759 (soft)
    #1756 p1 Procedures Research → real spec artifact —
    #1762 p1 Flight Decision (Finding E): Actions PR-creation preflight vs docs ⚠️ bradygaster call
    #1748 p1 Booster Dependency-add without bypassing protected-files (Finding F) #1762 (shared surface)
    #1605 p2 EECOM squad health — candidate home for the #1762/#1748 preflight co-design w/ #1762
    #1763 p2 Booster Decision (Finding D): drop bots: from squad.md ⚠️ bradygaster + Booster verify

    Wave 3 — later

    # P Owner What
    #1735 p2 EECOM Phase 3: optional human-initiated remediation worker
    #1736 p2 PAO Phase 4: ship /squad review in gh aw add + guide
    #1738 p2 Flight RFC: /squad SDLC commands in Copilot app chat
    #1609 / #1608 / #1606 / #1604 p2 EECOM/Procedures backlog enhancements
    #1764 p2 Flight Decision: fate of three copilot/* branches

    Sequencing resolutions (the hard questions)

    1. Do live-run defects block Phase 0? No. Merge-continuation dispatch destroyed by empty schema probe; #1766's prompt guard is insufficient #1772 / Repair the long program path so it runs end to end #1758 / Plan owners use generic roles instead of cast names #1759 run in parallel with Phase 0a/0c. Only Phase 0b: Add PR provenance marker and tighten implement-worker merge relay #1731 (0b) must sequence after Merge-continuation dispatch destroyed by empty schema probe; #1766's prompt guard is insufficient #1772 — both touch the implement-worker merge relay.
    2. Merge-continuation dispatch destroyed by empty schema probe; #1766's prompt guard is insufficient #1772 vs Phase 0b: Add PR provenance marker and tighten implement-worker merge relay #1731 (same class as merged Prevent dispatch_workflow schema probes #1766)? Overlap is real but they are not duplicates. Merge-continuation dispatch destroyed by empty schema probe; #1766's prompt guard is insufficient #1772 is a reproduced p0 production defect (e2e run 32394811753); the Prevent dispatch_workflow schema probes #1766 prompt guard proved insufficient, so Merge-continuation dispatch destroyed by empty schema probe; #1766's prompt guard is insufficient #1772 needs the structural static dispatch-payload gate (per Booster's 2026-08-20 "Merge continuation dispatch inputs" decision). Phase 0b: Add PR provenance marker and tighten implement-worker merge relay #1731 then builds the provenance marker on the fixed relay. Keep both, cross-reference, fix Merge-continuation dispatch destroyed by empty schema probe; #1766's prompt guard is insufficient #1772 first.
    3. Decide: document vs preflight-check the Actions PR-creation repo setting #1762 (E) + Allow dependency additions without bypassing protected-file safety #1748 (F)? Link as one shared adoption-time preflight/config surface (Finding F says so explicitly). E = repo setting (Actions PR permission); F = workflow policy (protected-files). Different mechanisms, one surface — likely homed on squad health (squad health readiness check command #1605). Allow dependency additions without bypassing protected-file safety #1748 is blocked on Decide: document vs preflight-check the Actions PR-creation repo setting #1762's decision. Not a closure.

    Decisions that need @bradygaster (each with my recommendation — just say yes)

    # Question Flight's recommendation Urgency
    #1762 (E) Docs vs preflight for the Actions PR-creation setting Preflight-probe it in connect/adopt (or squad health #1605); keep docs. Every new adopter hits the false default. High — gates #1748 + clean adoption
    #1768 Fate of hand-authored fixture issues Delete dishonest fixtures (squad-test #9/#10/#11 and squad-e2e #12/#14) and regenerate via a real epic decomposition. High — gates trustworthy e2e used to validate the p0 fixes
    #1763 (D) Drop bots: from squad.md Verify then drop. Booster confirms merge-continuation no longer depends on bot-comment triggers (2026-08-20 decision points continuation at the parent epic), then remove bots: to clear the per-gh aw add warning. Low
    #1764 Fate of three copilot/* branches Salvage-review the two gh-aw branches (copilot/1592-review-fixes @71ff779, copilot/agentic-workflows-review @e3a83bf) — if nothing beyond #1730–1736, delete. Third branch (sub-agent-charters-loading) is non-gh-aw, out of scope. Low

    — Flight 🏗️

  4. 21 remaining items

  5. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  6. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  7. github-actions commented on Sep 13, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: architect
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  8. added
    squad:agentic-workflows-devAssigned to agentic-workflows-dev (Agentic Workflows Engineer)
    and removed
    squad:architectAssigned to architect (Lead Architect)
    on Sep 24, 2026
  9. github-actions commented on Sep 24, 2026

    @github-actions
    Contributor

    📋 Assigned to agentic-workflows-dev (Agentic Workflows Engineer)

    Issue: #1729 — Epic: Squad review gate for agent-authored pull requests

    agentic-workflows-dev will pick this up in the next Copilot session.

    For Copilot coding agent: If enabled, this issue will be worked automatically.
    Otherwise, start a Copilot session and say:
    agentic-workflows-dev, work on issue #1729

  10. bradygaster commented on Sep 28, 2026

    @bradygaster
    CollaboratorAuthor

    Current delivery map (2026-09-28):

    Keep this epic open until #2096 is merged, hosted evidence is durable, rollout/soak is complete, and optional #1735 is explicitly dispositioned.

  11. bradygaster commented on Sep 28, 2026

    @bradygaster
    CollaboratorAuthor

    Follow-up disposition complete: #1735 remains open as a shelved/deferred human-initiated remediation worker and explicitly does not gate #2096, #1734, hosted review-check validation, or this epic. The remaining epic gates are therefore #2096 merge, durable consumer evidence, and the documented rollout/soak.

  12. bradygaster commented on Sep 29, 2026

    @bradygaster
    CollaboratorAuthor

    Final implementation stack pin: da7861d (#2096). Hosted consumer acceptance is now running in the three private fixtures. This epic remains open for durable consumer evidence and review-check rollout/soak; deferred #1735 does not gate it.

  13. bradygaster commented on Sep 29, 2026

    @bradygaster
    CollaboratorAuthor

    Post-#2105 reconciliation

    The independent-review implementation is merged through 29e69f53, including exact-head relay enforcement, first-install hardening, and the dedicated GitHub App publisher boundary. This epic remains blocked, not complete: squad-review-authority and the reviewer App are not provisioned, the three private fixtures have not been rerun at the final SHA, and dev activation/soak evidence is absent. Track provisioning and reruns in #2103; keep this issue open for rollout acceptance.

  14. added
    wave:1-nextWave 1 — immediate next sprint
    wave1:P8Wave 1 PR group P8
    and removed
    wave:3-laterWave 3 — backlog, future
    on Nov 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    gh-awGitHub Agentic Workflows integrationpriority:p1This sprintsquadSquad triage inbox — Lead will assign to a membersquad:agentic-workflows-devAssigned to agentic-workflows-dev (Agentic Workflows Engineer)triagedIssue has been triagedtype:epicParent issue that decomposes into sub-issueswave1:P8Wave 1 PR group P8wave:1-nextWave 1 — immediate next sprint

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions