pr-review-community-overlay
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePR Review — Community Overlay (ArcKit)
PR审核 — 社区覆盖层(ArcKit)
Reviews ArcKit community-overlay PRs ( jurisdictional command bundles) against the integration checklist that catches the recurring failure classes. Encodes the checklist used on PR #441 (au-federal) which surfaced 4 blockers and 6 important issues that the author had missed.
xx-*针对ArcKit社区覆盖层PR(司法管辖区命令包),对照集成检查清单进行审核,该清单可识别反复出现的故障类型。此流程基于PR #441(au-federal)中使用的检查清单,该PR曾发现作者遗漏的4个阻塞问题和6个重要问题。
xx-*When to Use
使用场景
- PR adds new community overlay (e.g. ,
au-federal, futureca-federal-fitaa)au-vic-* - PR extends an existing overlay (new command, new recipe target)
xx-* - PR ships a new build recipe alongside commands
xx-* - Author is contributor (not maintainer) and PR is large (10+ files, 5K+ lines)
Skip for: official-baseline command changes, plugin infrastructure, hooks, agents — these have their own review surfaces.
- PR新增社区覆盖层(如、
au-federal,未来的ca-federal-fitaa)au-vic-* - PR扩展现有覆盖层(新增命令、新增构建目标)
xx-* - PR随命令发布新的构建方案
xx-* - 提交者为贡献者(非维护者)且PR规模较大(10个以上文件、5000行以上代码)
以下情况无需使用:官方基线命令变更、插件基础设施、钩子、Agent——这些有各自的审核流程。
Output shape (always)
输出格式(固定)
markdown
undefinedmarkdown
undefinedCode Review
代码审核
Verdict: [one-line conclusion]
结论: [一句话总结]
BLOCKERS (must fix before merge)
阻塞问题(合并前必须修复)
[numbered, file:line, fix instruction, comparison to working precedent]
[编号,文件:行号,修复说明,与可用范例对比]
IMPORTANT (should fix)
重要问题(建议修复)
MINOR (nits)
次要问题(优化点)
POSITIVE (worth calling out)
正面亮点(值得肯定)
Recommended pre-merge sequence
建议的合并前修复步骤
[ordered fix steps]
End with: `gh pr comment <N> --body "$(cat <<'EOF'...EOF)"` to post.[有序修复步骤]
结尾使用:`gh pr comment <N> --body "$(cat <<'EOF'...EOF)"` 发布审核结果。The 5 recurring blocker classes
5类反复出现的阻塞问题
These are the failure modes that recur across overlay PRs. Check each, in order:
这些是覆盖层PR中反复出现的故障模式,请按顺序逐一检查:
B1 — Templates lack ## Document Control
heading
## Document ControlB1 — 模板缺少## Document Control
标题
## Document ControlSymptom: Templates have directly under the blockquote with no heading above.
<!-- DOC-CONTROL-HEADER -->> **Template Origin**…## Document ControlWhy it matters: The partial ( / ) is just the table — it has no heading. After inlining, artefact has a Document Control table with no section heading.
document-control-uk.mddocument-control-uae.mdVerification:
bash
for f in arckit-claude/templates/<prefix>-*-template.md; do
head -10 "$f" | grep -q "^## Document Control" || echo "MISSING heading: $f"
doneWorking precedent: and both have .
arckit-claude/templates/ca-pia-template.md:5-7uae-pdpl-template.md:5-7## Document Control\n\n<!-- DOC-CONTROL-HEADER -->\n<!-- Resolved at command-execution time per _partials/RENDERING.md. -->症状: 模板在块引用下直接使用,上方无标题。
> **Template Origin**…<!-- DOC-CONTROL-HEADER -->## Document Control影响: 部分文件( / )仅包含表格,无标题。嵌入后,生成的文档会出现无章节标题的文档控制表格。
document-control-uk.mddocument-control-uae.md验证方式:
bash
for f in arckit-claude/templates/<prefix>-*-template.md; do
head -10 "$f" | grep -q "^## Document Control" || echo "MISSING heading: $f"
done可用范例: 和 均包含 。
arckit-claude/templates/ca-pia-template.md:5-7uae-pdpl-template.md:5-7## Document Control\n\n<!-- DOC-CONTROL-HEADER -->\n<!-- Resolved at command-execution time per _partials/RENDERING.md. -->B2 — Commands don't override the UK classification line
B2 — 命令未覆盖英国分类行
Symptom: Overlay introduces a non-UK classification scheme (Canadian Protected/A/B/C, AU UNOFFICIAL/PROTECTED, etc.) but commands say only — no instruction to substitute the classification line.
Resolve the <!-- DOC-CONTROL-HEADER --> marker per RENDERING.md.Why it matters: only routes or to a non-UK partial. Everything else falls back to which renders . Without an explicit override, the body content (which references the AU/CA/etc. ladder) becomes inconsistent with the header.
arckit-claude/templates/_partials/RENDERING.mdgovernance_framework: UAE Federalclassification_scheme: UAE Smart Datadocument-control-uk.md[PUBLIC / OFFICIAL / OFFICIAL-SENSITIVE / SECRET]Verification:
bash
grep -L "classification scheme\|UK line in the header" arckit-<prefix>/commands/<prefix>-*.md症状: 覆盖层引入非英国分类体系(加拿大Protected/A/B/C、澳大利亚UNOFFICIAL/PROTECTED等),但命令仅说明,未提及替换分类行的指令。
Resolve the <!-- DOC-CONTROL-HEADER --> marker per RENDERING.md.影响: 仅将或路由到非英国部分文件,其他情况均回退到,该文件会渲染。若无显式覆盖,正文内容(引用澳/加等分类体系)将与表头不一致。
arckit-claude/templates/_partials/RENDERING.mdgovernance_framework: UAE Federalclassification_scheme: UAE Smart Datadocument-control-uk.md[PUBLIC / OFFICIAL / OFFICIAL-SENSITIVE / SECRET]验证方式:
bash
grep -L "classification scheme\|UK line in the header" arckit-<prefix>/commands/<prefix>-*.mdFiles printed = files MISSING the override
输出的文件 = 缺少覆盖指令的文件
**Working precedent:** `arckit-ca/commands/ca-pia.md:32`:
> Use the Canadian classification scheme (UNCLASSIFIED / Protected A / Protected B / Protected C / CONFIDENTIAL / SECRET / TOP SECRET) — replace the standard UK line in the header.
**Proper long-term fix (separate PR):** ship a `document-control-<regime>.md` partial, extend RENDERING.md routing, extend `plugin.json` userConfig to accept the regime governance framework value.
**可用范例:** `arckit-ca/commands/ca-pia.md:32`:
> 使用加拿大分类体系(UNCLASSIFIED / Protected A / Protected B / Protected C / CONFIDENTIAL / SECRET / TOP SECRET)——替换表头中的标准英国分类行。
**长期修复方案(单独PR):** 发布`document-control-<regime>.md`部分文件,扩展RENDERING.md路由逻辑,扩展`plugin.json`的userConfig以接受regime治理框架值。B3 — generate-document-id.sh
mis-invocation
generate-document-id.shB3 — generate-document-id.sh
调用错误
generate-document-id.shSymptom: Commands write (single positional arg).
scripts/bash/generate-document-id.sh <TYPECODE> --filenameWhy it matters: Script signature is . With one positional arg, TYPECODE is read as PROJECT_ID and DOC_TYPE is empty.
PROJECT_ID DOC_TYPE [VERSION] [OPTIONS]Verification:
bash
grep -n "generate-document-id.sh" arckit-<prefix>/commands/<prefix>-*.md | grep -v "<PROJECT_ID>\|{P}"Working precedent: :
arckit-ca/commands/ca-pia.md:32scripts/bash/generate-document-id.sh <PROJECT_ID> PIA --filename
Note: commands share this bug. Worth fixing in the same sweep.
uae-*症状: 命令中写为(单个位置参数)。
scripts/bash/generate-document-id.sh <TYPECODE> --filename影响: 脚本签名为。若仅传入一个位置参数,TYPECODE会被当作PROJECT_ID,而DOC_TYPE为空。
PROJECT_ID DOC_TYPE [VERSION] [OPTIONS]验证方式:
bash
grep -n "generate-document-id.sh" arckit-<prefix>/commands/<prefix>-*.md | grep -v "<PROJECT_ID>\|{P}"可用范例: :
arckit-ca/commands/ca-pia.md:32scripts/bash/generate-document-id.sh <PROJECT_ID> PIA --filename
注意: 命令存在相同问题,建议同步修复。
uae-*B4 — Converter outputs are stale
B4 — 转换器输出过时
Symptom: Re-running on the PR branch produces drift on files that were not the focus of the PR (commonly variants).
python scripts/converter.pyarckit-pagesWhy it matters: Author may have run the converter at branch creation and not re-run after rebasing main. Result: variants regress to an older version of canonical commands.
Verification:
bash
git checkout pr-<N>
python scripts/converter.py
git status --porcelain | grep -v "memory/"症状: 在PR分支上重新运行后,非PR重点文件(通常为变体)出现差异。
python scripts/converter.pyarckit-pages影响: 作者可能在分支创建时运行过转换器,但在合并主分支后未重新运行,导致变体退回到旧版标准命令。
验证方式:
bash
git checkout pr-<N>
python scripts/converter.py
git status --porcelain | grep -v "memory/"Should be empty. Anything printed = stale converter output in the PR.
应无输出。任何输出 = PR中存在过时的转换器输出。
**Cross-check:** Run the same on `main` first to confirm `main` itself is clean (otherwise the drift isn't the PR's fault).
**Fix:** ask author to rebase on main, re-run converter, and amend.
**交叉验证:** 先在`main`分支上运行相同命令,确认`main`分支本身无问题(否则差异并非PR导致)。
**修复:** 要求作者基于main分支重新合并,重新运行转换器并提交修改。B5 — Regime not registered in REGIMES
/ REGIME_LABELS
REGIMESREGIME_LABELSB5 — 未在REGIMES
/ REGIME_LABELS
中注册Regime
REGIMESREGIME_LABELSSymptom: New declared on each new doc-type entry in , but the code is missing from the exported array and/or object.
regime: '<XX>'arckit-claude/config/doc-types.mjs<XX>REGIMESREGIME_LABELSWhy it matters: Per-record controls which bucket each artefact falls into, but consumers iterating (dashboards, group headers, navigator UI) silently skip the unregistered jurisdiction. The derivation has a fallback so the local file still works — but downstream consumers don't. Symptom is invisible in unit tests.
regime:REGIMESHIGH_SEVERITY_BY_REGIMEVerification:
bash
undefined症状: 在的每个新文档类型条目上声明了,但代码未出现在导出的数组和/或对象中。
arckit-claude/config/doc-types.mjsregime: '<XX>'<XX>REGIMESREGIME_LABELS影响: 每条记录的控制每个产物所属的分组,但遍历的消费者(仪表板、分组标题、导航UI)会静默跳过未注册的司法管辖区。推导有回退逻辑,本地文件仍可正常工作,但下游消费者无法识别。此问题在单元测试中不可见。
regime:REGIMESHIGH_SEVERITY_BY_REGIME验证方式:
bash
undefinedConfirm the new regime code appears in BOTH the array and the labels object.
确认新regime代码同时出现在数组和标签对象中。
Anchor on the export blocks (avoids matching every doc-type entry as noise).
锚定到导出块(避免匹配每个文档类型条目产生干扰)。
grep -nA 1 "^export const REGIMES" arckit-claude/config/doc-types.mjs
grep -nA 12 "^export const REGIME_LABELS" arckit-claude/config/doc-types.mjs
grep -nA 1 "^export const REGIMES" arckit-claude/config/doc-types.mjs
grep -nA 12 "^export const REGIME_LABELS" arckit-claude/config/doc-types.mjs
Then cross-check against the regime values declared on new doc-types
然后与新文档类型中声明的regime值交叉验证
grep -oE "regime: '[A-Z]+'" arckit-claude/config/doc-types.mjs | sort -u
**Working precedent:** PR #441 (au-federal) added both `'AU'` and `'CA'` (the latter a corrective for an earlier omission), e.g. `arckit-claude/config/doc-types.mjs:165-179`. Note the `REGIME_LABELS` ordering convention is officially-maintained-first then community alphabetical.
**Discovered in:** Test review of merged PR #432 (ca-federal-fitaa) where 12 doc-types declared `regime: 'CA'` but the `REGIMES` array shipped without `'CA'`. Bug shipped and was only fixed retroactively in #441.grep -oE "regime: '[A-Z]+'" arckit-claude/config/doc-types.mjs | sort -u
**可用范例:** PR #441(au-federal)新增了`'AU'`和`'CA'`(后者为修复之前的遗漏),例如`arckit-claude/config/doc-types.mjs:165-179`。注意`REGIME_LABELS`的排序惯例是官方维护的条目优先,然后按社区条目字母顺序排列。
**发现案例:** 对已合并的PR #432(ca-federal-fitaa)进行测试审核时发现,12个文档类型声明了`regime: 'CA'`,但`REGIMES`数组中未包含`'CA'`。该问题已在#441中修复。Integration checklist
集成检查清单
Beyond the 4 blockers, verify:
| Check | Where | What to verify |
|---|---|---|
| Doc-types registered | | All new type codes present, correct |
| Pages allow-list | | Every new type code listed under correct section header, mirrors |
| Templates dual-located | | |
| Recipe schema | | Run author's verbatim Python snippet (deps resolution check). Manually verify wave shape, flagship target's deps. |
| SKILL.md recipes table | | New recipe row added. |
| README overlay section | | New |
| CHANGELOG entry | | Unreleased entry. Verify command count math: |
| Overlay guide | | Exists. Check that the |
| Citation traceability | | Inline |
除上述4个阻塞问题外,还需验证以下内容:
| 检查项 | 检查位置 | 验证内容 |
|---|---|---|
| 文档类型已注册 | | 所有新类型代码已存在, |
| 页面白名单 | | 每个新类型代码都列在正确的章节标题下,与 |
| 模板双位置存储 | | |
| 方案 schema | | 运行作者提供的Python代码片段(依赖解析检查)。手动验证波形、旗舰目标的依赖。 |
| SKILL.md方案表格 | | 已添加新方案行。 |
| README覆盖层章节 | | 新增 |
| CHANGELOG条目 | | 未发布条目。验证命令数量: |
| 覆盖层指南 | | 已存在。检查指南中告知用户设置的 |
| 引用可追溯性 | 每个命令中引用 | 阅读外部文档/MCP/网页时需内嵌 |
Per-command checklist
单命令检查清单
For each new command file:
xx-*-
Frontmatter:present. No invalid fields (
description,name:,color:,permissionMode:are NOT valid plugin command frontmatter —tools:in particular is a common contributor mistake; filename is source of truth).name: -
placeholder present in body —
$ARGUMENTSchecks this. Existingtests/plugin/test_commands_structure.py::test_arguments_placeholder_present/ca-*commands fail this test (32 known failures); new overlay commands should pass.uae-* -
lookup — only required for project-bootstrapping commands (
create-project.sh,principles, the first command someone runs). Most overlay commands assume the project already exists and skip this; that matches the FR/AT/EU/CA precedent. Not a defect when absent.requirements -
invoked correctly (B3).
generate-document-id.sh -
resolution instruction (B2 — should override classification when not UK/UAE).
<!-- DOC-CONTROL-HEADER --> -
Write tool used to save artefact (32K output token limit otherwise).
-
Handoffs: everyvalue resolves to a real file in
handoffs.command. Common bug: pluralisation (arckit-claude/commands/vsrisks); deps on commands shipping in sibling PRs. Validation needs YAML parsing (handoffs are nested under YAML frontmatter — raw grep misses), e.g.:riskpythonimport yaml, glob, pathlib cmds = {pathlib.Path(p).stem for p in glob.glob('arckit-claude/commands/*.md')} for f in glob.glob('arckit-<prefix>/commands/<prefix>-*.md'): fm = yaml.safe_load(open(f).read().split('---')[1]) for h in (fm or {}).get('handoffs', []): if h['command'] not in cmds: print(f, '→', h['command']) -
Template path referenceswith
${CLAUDE_PLUGIN_ROOT}/templates/<name>-template.mdthentemplates-customfallback..arckit/templates/ -
Per-template footer:,
**Generated by**,**Generated on**,**ArcKit Version**,**Project**all present.**Model**
针对每个新的命令文件:
xx-*-
前置元数据: 存在字段。无无效字段(
description、name:、color:、permissionMode:不是有效的插件命令前置元数据——tools:是贡献者常见错误;文件名是唯一可信来源)。name: -
占位符 存在于正文中——
$ARGUMENTS会检查此项。现有tests/plugin/test_commands_structure.py::test_arguments_placeholder_present/ca-*命令未通过此测试(已知32个失败案例);新覆盖层命令应通过。uae-* -
查找 ——仅项目初始化命令(
create-project.sh、principles,用户运行的第一个命令)需要此项。大多数覆盖层命令假设项目已存在,因此会跳过此项;这与FR/AT/EU/CA的先例一致。不存在不属于缺陷。requirements -
调用正确(对应B3)。
generate-document-id.sh -
解析 指令(对应B2——非英国/阿联酋覆盖层应覆盖分类)。
<!-- DOC-CONTROL-HEADER --> -
使用Write工具保存产物(否则存在32K输出令牌限制)。
-
交接: 每个值对应
handoffs.command中的真实文件。常见错误:复数形式(arckit-claude/commands/vsrisks);依赖于兄弟PR中发布的命令。验证需要YAML解析(交接嵌套在YAML前置元数据下——原始grep会遗漏),例如:riskpythonimport yaml, glob, pathlib cmds = {pathlib.Path(p).stem for p in glob.glob('arckit-claude/commands/*.md')} for f in glob.glob('arckit-<prefix>/commands/<prefix>-*.md'): fm = yaml.safe_load(open(f).read().split('---')[1]) for h in (fm or {}).get('handoffs', []): if h['command'] not in cmds: print(f, '→', h['command']) -
模板路径 引用,并优先使用
${CLAUDE_PLUGIN_ROOT}/templates/<name>-template.md,其次是templates-custom作为回退。.arckit/templates/ -
单模板页脚:、
**Generated by**、**Generated on**、**ArcKit Version**、**Project**均已存在。**Model**
UK leakage check
英国术语泄漏检查
For non-UK overlays, grep for unintended UK terminology:
bash
grep -rE '\b(NCSC|ICO|Cyber Essentials|GovS|UK GDPR|GDS|Cabinet Office|DPA 2018|DPIA)\b' arckit-<prefix>/commands/<prefix>-*.md arckit-claude/templates/<prefix>-*.mdA small number of intentional comparison references is fine (PR #441 had 2 in + ) — author should call them out in the PR body. Anything else is leakage.
au-dss.mdau-pia.md针对非英国覆盖层,搜索意外出现的英国术语:
bash
grep -rE '\b(NCSC|ICO|Cyber Essentials|GovS|UK GDPR|GDS|Cabinet Office|DPA 2018|DPIA)\b' arckit-<prefix>/commands/<prefix>-*.md arckit-claude/templates/<prefix>-*.md少量有意的对比引用是允许的(PR #441在 + 中有2处)——作者应在PR正文中说明。其他情况均属于术语泄漏。
au-dss.mdau-pia.mdTests + CI
测试与CI
- Run and check for new failures specific to this PR's files.
pytest tests/plugin/ - If PR adds (first-time CI), run the full suite locally and report pre-existing failure count to the author.
.github/workflows/* - If PR adds a recipe-validation test, verify it codifies the headline scorecard claims (target count, deps, doc-types registration, regime registration, pages allow-list).
- 运行,检查是否存在与PR文件相关的新失败案例。
pytest tests/plugin/ - 若PR新增(首次添加CI),在本地运行完整套件,并向作者报告预先存在的失败数量。
.github/workflows/* - 若PR新增方案验证测试,验证其是否明确了关键指标(目标数量、依赖、文档类型注册、regime注册、页面白名单)。
Verification commands (one-shot)
一键验证命令
bash
undefinedbash
undefinedSetup
准备工作
git fetch origin pull/<N>/head:pr-<N>
git checkout pr-<N>
git fetch origin pull/<N>/head:pr-<N>
git checkout pr-<N>
B1: missing Document Control heading
B1: 缺少Document Control标题
for f in arckit-claude/templates/*-template.md; do
head -10 "$f" | grep -q "^## Document Control" || echo "B1 missing: $f"
done | grep -E "<prefix>-"
for f in arckit-claude/templates/*-template.md; do
head -10 "$f" | grep -q "^## Document Control" || echo "B1 missing: $f"
done | grep -E "<prefix>-"
B2: missing classification override
B2: 缺少分类覆盖指令
grep -L "classification scheme|UK line in the header" arckit-<prefix>/commands/<prefix>-*.md
grep -L "classification scheme|UK line in the header" arckit-<prefix>/commands/<prefix>-*.md
B3: generate-document-id.sh mis-invocation
B3: generate-document-id.sh调用错误
grep -n "generate-document-id.sh [A-Z]+ --filename" arckit-<prefix>/commands/<prefix>-*.md
grep -n "generate-document-id.sh [A-Z]+ --filename" arckit-<prefix>/commands/<prefix>-*.md
B4: converter drift
B4: 转换器差异
python scripts/converter.py && git status --porcelain | grep -v "memory/"
python scripts/converter.py && git status --porcelain | grep -v "memory/"
B5: regime registration (anchored on export blocks to avoid doc-type noise)
B5: regime注册(锚定到导出块以避免文档类型干扰)
grep -nA 1 "^export const REGIMES" arckit-claude/config/doc-types.mjs
grep -nA 12 "^export const REGIME_LABELS" arckit-claude/config/doc-types.mjs
grep -oE "regime: '[A-Z]+'" arckit-claude/config/doc-types.mjs | sort -u
grep -nA 1 "^export const REGIMES" arckit-claude/config/doc-types.mjs
grep -nA 12 "^export const REGIME_LABELS" arckit-claude/config/doc-types.mjs
grep -oE "regime: '[A-Z]+'" arckit-claude/config/doc-types.mjs | sort -u
Recipe schema
方案schema
python3 -c "
import yaml
r = yaml.safe_load(open('arckit-claude/skills/arckit-build/recipes/<recipe>.yaml'))
ids = {t['id'] for t in r['targets']}
for t in r['targets']:
for d in t.get('deps', []):
d_clean = d.rstrip('*')
if d_clean not in {i.rstrip('-') for i in ids} and not any(i.startswith(d_clean) for i in ids):
print(f'BROKEN: {t["id"]} -> {d}')
"
python3 -c "
import yaml
r = yaml.safe_load(open('arckit-claude/skills/arckit-build/recipes/<recipe>.yaml'))
ids = {t['id'] for t in r['targets']}
for t in r['targets']:
for d in t.get('deps', []):
d_clean = d.rstrip('*')
if d_clean not in {i.rstrip('-') for i in ids} and not any(i.startswith(d_clean) for i in ids):
print(f'BROKEN: {t["id"]} -> {d}')
"
Dual-template parity
双模板一致性
diff -rq arckit-claude/templates/ .arckit/templates/ | grep -E "<prefix>-"
diff -rq arckit-claude/templates/ .arckit/templates/ | grep -E "<prefix>-"
Tests
测试
pytest tests/plugin/ --tb=line -q 2>&1 | tail -10
pytest tests/plugin/ --tb=line -q 2>&1 | tail -10
Command count check vs CHANGELOG
CHANGELOG命令数量检查
ls arckit-claude/commands/*.md | wc -l
undefinedls arckit-claude/commands/*.md | wc -l
undefinedPosting the review
发布审核结果
Use the heredoc form so the markdown renders correctly:
bash
gh pr comment <N> --body "$(cat <<'EOF'使用 heredoc 格式确保markdown正确渲染:
bash
gh pr comment <N> --body "$(cat <<'EOF'Code Review
代码审核
Verdict: ...
EOF
)"
Verify with the URL the command returns.结论: ...
EOF
)"
通过命令返回的URL验证渲染效果。Reference test cases
参考测试案例
- PR #441 (au-federal, 2026-05-05) — canonical fixture for B1–B4. Exhibited all four (template heading, classification override, doc-id invocation, converter drift) plus 6 important issues. Posted review: https://github.com/tractorjuice/arc-kit/pull/441#issuecomment-4386152326
- PR #432 (ca-federal-fitaa, merged 2026-05-05) — fixture for B5 (regime registration). Shipped 12 doc-types with while
regime: 'CA'was missing from the'CA'array. Bug only surfaced retroactively in #441. Validates the skill against an already-merged overlay where B1–B4 all PASS but a different blocker class exists.REGIMES
- PR #441 (au-federal, 2026-05-05) —— B1–B4的标准案例。包含全部4类问题(模板标题、分类覆盖、文档ID调用、转换器差异)及6个重要问题。发布的审核结果:https://github.com/tractorjuice/arc-kit/pull/441#issuecomment-4386152326
- PR #432 (ca-federal-fitaa, 2026-05-05合并) —— B5(regime注册)的案例。发布了12个声明的文档类型,但
regime: 'CA'数组中缺少REGIMES。该问题仅在#441中被追溯修复。验证了该流程对已合并覆盖层的适用性,其中B1–B4均通过,但存在其他阻塞问题。'CA'
Common mistakes by reviewers (self-checks)
审核者常见错误(自我检查)
| Mistake | Fix |
|---|---|
| Trusting the PR body's "regenerated converter outputs" claim | Always re-run |
| Trusting headline test count claims | Run |
| Reviewing only the canonical files, not converter outputs | Diff |
| Missing the dual-template requirement | |
| Missing classification rendering issue (B2) | Read |
| Verifying CHANGELOG count from prose, not file count | |
| 错误 | 修复方式 |
|---|---|
| 信任PR正文中的"已重新生成转换器输出"声明 | 始终重新运行 |
| 信任测试数量的标题声明 | 运行 |
| 仅审核标准文件,未审核转换器输出 | 对比 |
| 忽略双模板要求 | 运行 |
| 遗漏分类渲染问题(B2) | 阅读 |
| 通过文本验证CHANGELOG数量,而非文件计数 | 运行 |