-
-
Notifications
You must be signed in to change notification settings - Fork 288
14 Contributor Promotion
How CODEOWNERS is decided for mcp-memory-service. This page exists so the process is transparent, predictable, and reviewable — both for the maintainer and for community members wondering how trust is earned here.
TL;DR: Three-plus merged PRs of consistent quality in a focused area earns auto-tag (FYI) ownership of that area. No merge rights granted via CODEOWNERS — this is review-pings, not gatekeeping.
The project has one full-time maintainer (@doobidoo) and a growing pool of contributors. Without a written rule of thumb:
- Promotion decisions feel arbitrary
- Contributors don't know how to earn ownership
- Owners can go inactive without anyone noticing
This page sets the bar and the cadence for keeping CODEOWNERS aligned with reality.
A contributor is considered for CODEOWNERS entry when all of the following are true within a focused area (one subsystem, one file, or one closely-related path group):
| Signal | Bar |
|---|---|
| Merged PRs | ≥3 in that area, over ≥4 weeks |
| Quality | Reproducer-backed, tests included, low rework rate |
| Self-direction | Surfaces issues themselves; doesn't only react to maintainer prompts |
| Communication | Responsive in PR threads; comments are useful, not noise |
| Scope discipline | PRs stay scoped; doesn't smuggle unrelated changes |
Areas already mapped (see .github/CODEOWNERS):
| Area | Owner | Why |
|---|---|---|
storage/milvus.py, docs/milvus-backend.md
|
@zc277584121 | Built the Milvus backend (PR #721) |
storage/milvus_graph.py |
@henry201605 | Owns Milvus graph + BM25 (PRs #762, #775) |
tests/storage/test_milvus.py |
@zc277584121, @henry201605 | Joint test ownership |
quality/, server/handlers/quality.py, services/memory_service.py, tests/quality/
|
@filhocf | RRF (#773), mistake notes (#786), stale_days (#796), maintain orchestrator (#802) |
Does: GitHub auto-requests review from the listed owner when a PR touches their path. Owners get a notification ping.
Doesn't: Block merges. Branch protection has require_code_owner_reviews: false — owner approval is informational, never required. Maintainer can still merge without owner review (e.g., when owner is unavailable, or for trivial fixes the owner already pre-approved).
This is intentional. CODEOWNERS = "second pair of eyes nudge", not "gatekeeper".
An owner entry is removed (without prejudice) when:
- No reviews/responses on requested PRs in 90 days, and
- No commits in their owned area in 90 days
Demotion is not punishment — it keeps notifications useful. Re-promotion follows the same path as the initial criteria.
CODEOWNERS is reviewed quarterly by an automated routine that:
- Pulls the last 90 days of PR/issue activity
- Identifies new contributors who cleared the promotion bar
- Identifies current owners who went silent
- Posts recommendations as a comment on the daily-triage tracking issue (or a dedicated quarterly issue)
The maintainer reviews recommendations and applies (or rejects) them in a single chore(codeowners) PR. No auto-edits.
You don't need to wait for the quarterly review. Either:
- Open a Discussion in General with the area you'd like to own, your relevant PR numbers, and a one-line case
- Or comment on an open PR you authored, mentioning the maintainer
Self-nominations are fine. Nominating someone else is also fine. The maintainer evaluates against the criteria above.
- Cross-cutting PRs (e.g., touching all storage backends in one sweep): single-PR contributions don't earn ownership — the bar is sustained focus on an area.
- One-off documentation fixes: appreciated, but no path to ownership unless the contributor returns to the area.
- Joint ownership (e.g., two people on one path): allowed. GitHub requests review from any one of them.
- Self-ownership by the maintainer: implicit, not listed. CODEOWNERS only documents external trust assignments.
-
.github/CODEOWNERS— the live ownership map - Daily Triage Digest — automated maintainer cockpit
- Development Roadmap