Skip to content

Commit 6c18bae

Browse files
committed
docs: make maintainer policy project-oriented
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
1 parent 6ccf81d commit 6c18bae

2 files changed

Lines changed: 29 additions & 22 deletions

File tree

.github/CODEOWNERS

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
# This repository is user-owned, so ownership is expressed with individual
44
# GitHub handles rather than organization teams.
55
#
6-
# IMPORTANT: CODEOWNERS is a merge gate, not a reviewer directory. Do not add
7-
# delegated reviewers here unless they are allowed to satisfy the binding
8-
# code-owner approval requirement. Add advisory area reviewers to
9-
# MAINTAINERS.md first.
6+
# CODEOWNERS is the binding merge gate, not the reviewer directory.
7+
# Advisory area reviewers are recorded in MAINTAINERS.md. A handle appears in
8+
# this file only when that person is authorized to satisfy binding code-owner
9+
# approval for the matching path.
1010

11-
# Default owner gate: every pull request must cross the project owner's desk.
11+
# Default owner gate: every pull request crosses the project owner's desk.
1212
* @DeusData
1313

1414
# Security-sensitive and authority-sensitive surfaces.

MAINTAINERS.md

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
# Maintainers
22

3-
This document separates advisory review responsibility from binding merge
4-
authority.
3+
This document defines how maintainer responsibility, review routing, and
4+
operational authority work in this project.
55

66
codebase-memory-mcp is currently a user-owned repository. Because GitHub teams
77
are not available here, all delegated ownership is expressed with individual
88
GitHub handles.
99

1010
## Authority Model
1111

12-
| Role | Scope | Authority |
12+
| Role | Scope | Authority in this project |
1313
| --- | --- | --- |
1414
| Project owner | Entire repository | Final roadmap, security, release, workflow, and merge authority. |
15-
| Release operator | Dry-run and release preparation | May prepare release notes, run checklists, and request dry runs when explicitly delegated. May not publish without owner approval. |
16-
| Area reviewer | One technical area | May review, test, reproduce, and recommend merge for that area. Approval is advisory until the project owner approves. |
17-
| Triage collaborator | Issues and discussions | May label, deduplicate, reproduce, and request information. No merge or release authority. |
15+
| Release operator | Dry-run and release preparation | Prepares release notes, runs checklists, and operates delegated dry runs. Release publication remains owner-gated. |
16+
| Area reviewer | One technical area | Reviews, tests, reproduces, and recommends merge for that area. Approval is advisory until the project owner approves. |
17+
| Triage collaborator | Issues and discussions | Labels, deduplicates, reproduces, and requests information. This role has no merge or release authority. |
1818

1919
The binding rule is intentionally simple: all pull requests require
2020
`@DeusData` approval before merge. `MAINTAINERS.md` routes review; it does not
@@ -28,8 +28,8 @@ override `.github/CODEOWNERS`.
2828

2929
## Area Review Map
3030

31-
Use this map to request informed review. Entries marked `TBD` are open slots
32-
for future co-maintainers.
31+
Review requests follow this map. Entries marked `TBD` are currently unassigned
32+
review areas for future co-maintainers.
3333

3434
| Area | Paths | Advisory reviewers | Owner gate |
3535
| --- | --- | --- | --- |
@@ -50,25 +50,29 @@ for future co-maintainers.
5050

5151
Operational authority is stricter than code review authority.
5252

53-
| Operation | Current authority | Delegation rule |
53+
| Operation | Current authority | Project rule |
5454
| --- | --- | --- |
5555
| PR validation (`pr.yml`, DCO, CodeQL) | Automatic | Anyone may trigger it by opening or updating a PR. Required checks must pass. |
56-
| Dry run (`dry-run.yml`) | `@DeusData` | May be delegated to release operators after trust is established. Dry-run delegation does not imply release authority. |
57-
| Smoke/soak/repro manual runs | `@DeusData` | May be delegated to area reviewers for diagnosis, but results are advisory. |
56+
| Dry run (`dry-run.yml`) | `@DeusData` | Delegated release operators may run dry runs after promotion. Dry-run delegation does not imply release authority. |
57+
| Smoke/soak/repro manual runs | `@DeusData` | Area reviewers may operate these runs when delegated for diagnosis. Results are advisory. |
5858
| Release workflow (`release.yml`) | `@DeusData` only | Owner-only until a release operator is explicitly promoted. Publishing, replacing releases, and tag movement remain owner-gated. |
5959
| Package registry publishing | `@DeusData` only | Owner-only initially because registry credentials and public packages are irreversible operational surfaces. |
6060
| Security advisory handling | `@DeusData` only | Do not delegate across advisories. Keep private reports isolated. |
6161
| Workflow, ruleset, CODEOWNERS, and branch protection changes | `@DeusData` only | Owner-only because these define authority itself. |
6262

63-
Before granting a collaborator `Write` access, verify that they should be able
64-
to run manual GitHub Actions workflows in this user-owned repository. Prefer
65-
`Triage` for issue-only delegation. If `Write` becomes necessary, use protected
66-
branches, required code-owner review, and protected release environments where
67-
available so release jobs still require `@DeusData` approval.
63+
Repository access follows the same authority model:
64+
65+
- `Triage` is the default collaborator role for issue-only delegation.
66+
- `Write` access is reserved for collaborators whose operational access has
67+
been approved by `@DeusData`.
68+
- Release authority is separate from code review authority.
69+
- Protected branches, required code-owner review, required status checks, and
70+
protected release environments are part of the project control model where
71+
GitHub supports them.
6872

6973
## Promotion Path
7074

71-
Promotion is gradual and reversible.
75+
Promotion is gradual, explicit, and reversible.
7276

7377
| Stage | Requirements | Capabilities |
7478
| --- | --- | --- |
@@ -78,6 +82,9 @@ Promotion is gradual and reversible.
7882
| Release operator | Proven reliability on dry runs, packaging, and release checklists. | May run delegated dry runs and prepare releases. |
7983
| Full maintainer | Long-term trust across code, security, release, and governance. | Only after explicit owner decision and updated policy. |
8084

85+
Maintainer promotions are recorded in this file. Binding authority changes are
86+
recorded in `.github/CODEOWNERS` and repository settings.
87+
8188
## High-Risk Change Rules
8289

8390
These changes always require project-owner review, even if an area reviewer

0 commit comments

Comments
 (0)