Repository navigation
Expand file tree
/
Copy pathCODEOWNERS
More file actions
52 lines (50 loc) · 2.87 KB
/
Copy pathCODEOWNERS
File metadata and controls
52 lines (50 loc) · 2.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# .github/CODEOWNERS — governance routing: every Tier H governed surface to
# every authorized approver.
#
# The ruling this file helps enforce (maintainer, verbatim):
# 「adr 只能由维护者自己确认,人工合并,ai 不得擅自合并。」
#
# The owner list on EVERY row mirrors `GOVERNED_APPROVERS` in
# scripts/pm/check-governed-queue-guard.mjs — the one list of accounts whose
# APPROVED review lands a Tier H surface (「os-zhuang hotlong 批准算数」). The
# rows mirror the Tier H rows of `GOVERNED_SURFACES` in
# scripts/pm/check-governed-merges.mjs. This file is static and can import
# neither, so the two stay in step the only way a static file can:
# `node scripts/pm/check-governed-queue-guard.mjs --self-test` reads this file
# (`codeownersMirrorVerdict`) and reds when a Tier H row has no line here, when
# any line names fewer or other owners than that constant, or when a Tier S row
# (`.claude/**`, which lands on a seat's review of record) is routed here.
# Change the constant or the register first; this file follows in the same PR.
#
# What routing buys, and what it does not: GitHub requests a code owner's
# review when a pull is opened READY or marked ready for review. A DRAFT open
# requests nobody — measured on this repository's own Tier H pulls, where the
# request arrived at `ready_for_review` and never at the draft create. Every
# seat-driven Tier H pull is opened draft and stays draft until the approval,
# so the fleet relay requests the same accounts itself at `pr_create` and
# `pr_ready` (scripts/pm/fleet-write/ops.mjs, "The governed-review follow-up");
# this file is the platform half — for a pull opened ready or readied by hand —
# and the entry a ruleset's "require review from Code Owners" can bind to. A
# code owner without write access is ignored by GitHub without a word:
# `GET /repos/{owner}/{repo}/codeowners/errors` reads this file's own verdict.
#
# Both logins are verified, not assumed: `hotlong` authors the bulk of main's
# history as 50353452+hotlong@users.noreply.github.com (GitHub's {id}+{login}
# noreply form ties the login to the account); `os-zhuang` is named by the
# ruling above and has readied and reviewed this repository's pulls.
#
# The enforcement chain is routed the same way, deliberately: a PR that edits
# the audit script, the approver constant or this file is a governance change —
# without these entries the rule could be lifted by editing the enforcers
# instead of the surfaces.
# Tier H governed surfaces — the register's rows with tier H
/docs/adr/ @os-zhuang @hotlong
/skills/ @os-zhuang @hotlong
/AGENTS.md @os-zhuang @hotlong
/CLAUDE.md @os-zhuang @hotlong
/docs/NORTH-STAR.md @os-zhuang @hotlong
/.github/workflows/ @os-zhuang @hotlong
# The enforcement chain
/.github/CODEOWNERS @os-zhuang @hotlong
/scripts/pm/check-governed-merges.mjs @os-zhuang @hotlong
/scripts/pm/check-governed-queue-guard.mjs @os-zhuang @hotlong