Repository navigation
[Phase 3] Default-off regression guard + operator docs for the downstream-impact pass #732
Copy link
Copy link
Closed
Labels
initiativeEpic / initiative tracking issueEpic / initiative tracking issue
Description
Story
As a pr-review maintainer,
I want lock in that the downstream-impact pass is a byte-for-byte no-op when its manifest is absent, and document how to enable, populate, and operate it,
so that existing adopters are provably unaffected until they opt in, and operators know how to turn it on and extend the consumer manifest safely.
Acceptance Criteria
- An end-to-end regression test asserts that with NO
consumer-manifest.jsonpresent, the assembled triage prompt and the cascade's outward behavior are identical to the pre-feature baseline (the block renders(none)and no cross-repoghcalls are issued). - A test asserts the enabled path: with a fixture manifest and a fixture changed-file set touching a shared surface, the
DOWNSTREAM_IMPACTblock is populated and names the expected consumer(s). - Operator docs (under
docs/pr-review-agent/ordocs/initiatives/) explain: what the pass does, how to enable it (commit/populate the manifest), how to add a consumer/surface, the cross-repo read-access requirement, and its graceful-degradation guarantees. - All new tests are registered in
.github/workflows/lint.yml'sRun testslist and pass undershellcheck --severity=warning -xandbats.
Tasks / Subtasks
- Add
tests/fixtures/entries for a sample manifest + a sample changed-file set, and a bats test asserting the default-off no-op baseline (manifest absent ->(none), zero cross-repo calls). (AC: test issue from agent #1, Optimize review: small-PR and incremental fast paths #4) - Add a bats test for the enabled path (fixture manifest + changed files -> populated block naming expected consumers). (AC: Go-live improvements for PR review agent #2, Optimize review: small-PR and incremental fast paths #4)
- Write operator docs covering purpose, enablement, manifest maintenance, cross-repo read-access requirement, and degradation guarantees. (AC: Add @claude delegation, auto-merge, and rebase handling #3)
- Register the new bats file(s) in
.github/workflows/lint.ymland confirm green under shellcheck + bats. (AC: Optimize review: small-PR and incremental fast paths #4)
Dev Notes
- Default-off guarantee is the headline: the pass must be byte-for-byte behavior-preserving when the manifest is absent — the same discipline the
REVIEW_MCP_CONFIGconvention uses inengine.sh(unset -> no new flags, behavior unchanged). The regression test is the proof. - Fixtures live under
tests/fixtures/(already present in the repo). Model bats structure aftertests/test_oversized_pr.bats/tests/test_review_cycle.bats. - Docs home:
docs/pr-review-agent/holds operator-facing pr-review docs (e.g.bot-setup.md,status.md); add the downstream-impact operator guide there, and/or cross-link fromdocs/initiatives/. - Re-state the cross-repo read-access requirement and the degradation behavior so operators understand why a missing token scope silently yields
(none)rather than an error. - CRITICAL: new
.batsfiles run in CI ONLY if added to the explicit list in.github/workflows/lint.yml'sRun testsstep — there is no glob. A test that is written but not registered is a silent no-op.
Project Structure Notes
Adds tests + fixtures + docs only; no production-code changes beyond what Stories 1-4 introduced. Consolidates the safety/regression story so the feature ships provably default-off.
References
- scripts/engine.sh#REVIEW_MCP_CONFIG
- tests/test_oversized_pr.bats
- docs/pr-review-agent/bot-setup.md
- .github/workflows/lint.yml#Run-tests
Likely target surface
tests/test_downstream_impact_e2e.batstests/fixtures/docs/pr-review-agent/downstream-impact.md.github/workflows/lint.yml
Story prepared by the BMAD Scrum Master (Bob) for epic #727. Status: ready-for-dev.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
initiativeEpic / initiative tracking issueEpic / initiative tracking issue
Activity
github-actions commentedon Jun 15, 2026
Superseded by the re-planned initiative epic #748 (re-planned from idea discussion #653).