Skip to content

[Phase 3] Default-off regression guard + operator docs for the downstream-impact pass #732

Closed

Description

@github-actions

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

  1. An end-to-end regression test asserts that with NO consumer-manifest.json present, the assembled triage prompt and the cascade's outward behavior are identical to the pre-feature baseline (the block renders (none) and no cross-repo gh calls are issued).
  2. A test asserts the enabled path: with a fixture manifest and a fixture changed-file set touching a shared surface, the DOWNSTREAM_IMPACT block is populated and names the expected consumer(s).
  3. Operator docs (under docs/pr-review-agent/ or docs/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.
  4. All new tests are registered in .github/workflows/lint.yml's Run tests list and pass under shellcheck --severity=warning -x and bats.

Tasks / Subtasks

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_CONFIG convention uses in engine.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 after tests/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 from docs/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 .bats files run in CI ONLY if added to the explicit list in .github/workflows/lint.yml's Run tests step — 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.bats
  • tests/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.

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

    initiativeEpic / initiative tracking issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions