chore(repo): 仓侧治理门禁 — ECR/migration 身份唯一
将编号与 schema 完整性留在 Repository Governance,不扩 ESS/Loop;TRACEABILITY 锚定 Next ECR=041、Max Migration=000050。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+46
-3
@@ -14,6 +14,46 @@ ess_intake: strict
|
||||
- **Execution Context:** 同时只绑定 **一个** Active ECR(或一个 L1 TASK);新主题 = OUT OF SCOPE,禁止顺手改码
|
||||
- **retro-ecr:** 本仓 **FAIL**(须 `Retrospective: true` + Original drift + Scope freeze + Process debt;不得伪装正序路径)。通用 ESS 默认为 WARN;脚本强制见后续门禁 PR,**规则即时约束 Agent**
|
||||
- **Loop / Adapter:** 不在本仓维护;已授权执行不扩展 ESS Intake 职责
|
||||
- **ESS 0.2.0-intake / Loop / Adapter:** 本仓视为 **FROZEN**;仓库治理问题不塞进 ESS 内核或 Loop
|
||||
|
||||
## Repository governance(仓侧 · 非 Loop)
|
||||
|
||||
独立于 ESS Loop。Merge / 开 ECR / 写 migration 前执行:
|
||||
|
||||
```bash
|
||||
python scripts/repo-governance-check.py
|
||||
python scripts/repo-governance-check.py --print-anchors
|
||||
```
|
||||
|
||||
权威锚点:`docs/TRACEABILITY.md` 顶部 **Next ECR** · **Max Migration**。
|
||||
|
||||
### ECR identity(硬规则)
|
||||
|
||||
- **`ECR-NNN`(及带字母/后缀的完整 identity)在仓库历史内全局唯一。**
|
||||
即使已 Closed,也**禁止**把同一编号重新解释成另一件事。
|
||||
- **禁止同号双义**(例如两个文件都自称 `# ECR-012`)。
|
||||
- 分叉只允许:**`ECR-012-star`** · **`ECR-013A`** · **`ECR-013B`** 等形式;不得再开第二个裸 `ECR-012`。
|
||||
- **预占:** 开新 ECR 前读 TRACEABILITY **Next ECR**;占用后立即更新该锚点(或跑 `--print-anchors` 核对后写回)。
|
||||
- **Canonical-ID:** 仅作历史分叉过渡字段;长期以唯一 H1 / identity 为准,不发展成并行别名体系。
|
||||
- Agent **Single ECR Context** 绑定的必须是上述唯一 identity(查 TRACEABILITY,勿猜)。
|
||||
|
||||
### Migration stem(硬规则)
|
||||
|
||||
- `apps/api/migrations/` 下 **6 位版本号唯一**(禁止 `000015_foo` 与 `000015_bar` 并存)。
|
||||
- **禁止**凭记忆递增。Create 流程:
|
||||
|
||||
```text
|
||||
Read repo state → Max Migration (TRACEABILITY / --print-anchors)
|
||||
→ allocate next stem → write file → repo-governance-check PASS
|
||||
```
|
||||
|
||||
- 并行 branch + merge 是已知攻击面;合入含 migration 的变更必须过 uniqueness 检查。
|
||||
- 已发生撞号的修复说明:`docs/MIGRATION_RENUMBER.md`(playbook 保留,本阶段不扩展)。
|
||||
|
||||
### L0 / L1 UI(轻规则 · 不过度治理)
|
||||
|
||||
无 API / DB / Domain 新概念 / 权限 / 新业务状态、且不改既定 Acceptance → 可 L0/L1,**不必**为大 ECR。
|
||||
若改变**用户可见主路径**语义 → 对照相关 Active Feature Spec 做 consistency check(不必因此自动升 L2)。
|
||||
|
||||
## Domain invariants
|
||||
|
||||
@@ -42,10 +82,13 @@ ess_intake: strict
|
||||
- 提交 `config.local.yaml`、`.env`、密钥
|
||||
- 同一 review turn Approve + Modify
|
||||
- 在已绑定 ECR 的 Execution Context 内「顺便」做第二功能
|
||||
- 同号双义 ECR;凭记忆分配 migration 版本号
|
||||
- Retro 批量追认已 merge 行为;把仓库治理机制扩进 ESS Loop
|
||||
|
||||
## Completion
|
||||
|
||||
1. 开场 ESS Mode 块(G0)通过且 `Action: CONTINUE`(或明确 L0)
|
||||
2. ESS gate(有 ECR 时):`python scripts/ess-validate.py --phase <phase> --ecr ECR-xxx`
|
||||
3. 本仓 DoD:`.ai/definition-of-done.md` + `.ai/review.md`
|
||||
4. 有行为变更时更新/尊重 `.ai/product/p1-status.md` 标签
|
||||
2. 仓侧(改 ECR / migration / merge 前):`python scripts/repo-governance-check.py` PASS
|
||||
3. ESS gate(有 ECR 时):`python scripts/ess-validate.py --phase <phase> --ecr ECR-xxx`
|
||||
4. 本仓 DoD:`.ai/definition-of-done.md` + `.ai/review.md`
|
||||
5. 有行为变更时更新/尊重 `.ai/product/p1-status.md` 标签
|
||||
|
||||
Reference in New Issue
Block a user