Files
odysseus/docs/maintainers/changes-and-review.md
T
Alexandre Teixeira a0137b47d1 docs(maintainers): publish governance handbook draft and review playbook
Adapt the agreed maintainer responsibilities and risk-based review policy for the public repository. Add evidence-driven security review, CodeQL triage, release guidance and a discoverable contributing link.
2026-10-15 11:16:52 +01:00

63 lines
4.0 KiB
Markdown

# Changes and review
Review is **risk-based**. Trusted maintainers should be able to ship ordinary work without creating a queue of ceremonial approvals.
## Required review
| Change | Minimum review rule |
|---|---|
| Ordinary, reversible maintainer change | Independent approval optional; self-merge permitted after appropriate validation |
| External contribution | Maintainer review required |
| High-risk change | At least one independent, qualified maintainer review required |
Repository branch protection and required checks also apply. Never treat this document as permission to bypass a live protection rule.
## Ordinary maintainer changes
1. Open a PR against `dev`, scoped to one coherent change.
2. Explain intent, expected behavior, validation, and rollback if relevant.
3. Run suitable tests and inspect the actual result.
4. Ensure applicable required checks pass, address feedback, and merge when ready.
Self-merge is allowed for ordinary reversible work. The author remains responsible for follow-up, correction, and rollback.
## External contributions and small corrections
External contributions receive maintainer review.
A maintainer may directly fix a **small, obvious** problem in a contributor PR when the intended behavior is clear and the repair is faster than a separate round trip. Document what changed, preserve contributor attribution and history, avoid force-pushing, and re-run affected checks.
Substantive or ambiguous corrections require discussion with the contributor or a separately scoped correction. A maintainer must not silently turn a contributor's PR into unrelated work. Any corrective commit changes the SHA being reviewed; update validation and audit evidence accordingly.
## High-risk changes
High-risk work requires **at least one independent qualified review**. The author cannot be the only approver. Examples:
- Authentication, authorization, tenancy, sandboxing, agent tool permissions, or secrets.
- Outbound network and SSRF defenses, sensitive integrations, and deployment access.
- Destructive operations, deletion, filesystem ownership, and data migrations.
- Persistence and concurrency invariants with possible data loss.
- Major architectural contracts, release infrastructure, or changes hard to roll back.
A high-risk review should verify the threat or failure model, exact final commit, reproducer or regression evidence, failure and rollback behavior, and the relevant CI/security findings. Use the [review playbook](review-playbook.md).
## Cross-area changes and CODEOWNERS
Touching multiple areas does **not** automatically require multiple approvals. Consult domain expertise when needed. CODEOWNERS helps identify reviewers and accountable contacts; it is not a blanket approval requirement by itself. See [issue #593](https://github.com/odysseus-dev/odysseus/issues/593) for the ongoing ownership map discussion.
## Validation and UI evidence
Automated tests count as runtime evidence when they truly exercise the changed behavior. Use manual validation when coverage is insufficient.
For any change to visible UI behavior, follow the current [contributor UI checklist](../../CONTRIBUTING.md#style-and-visual-changes) and the repository PR template. Screenshots or clips are expected when they materially demonstrate the rendered result; screenshots alone do not replace behavioral tests.
## Disagreement and escalation
The maintainer doing the work owns ordinary implementation decisions within approved product direction and existing technical contracts. For substantive disagreements:
1. Involve a qualified maintainer with relevant expertise.
2. Escalate unresolved cross-cutting technical issues to trusted project-wide maintainers.
3. Refer product-direction disagreements to the Product Owner.
Security findings should be handled via [SECURITY.md](../../SECURITY.md), without disclosing exploit details in public issues. Repository protection rules should support these risk-based policies and should not accidentally force independent approval for every ordinary maintainer PR.