用途
behavior-maturity 用于报告 CocoPod 当前的自动化成熟度等级。它读取 cocoplus.toml 与 .cocoplus/modes/,确定性地计算等级,并写入 .cocoplus/maturity.json。该技能不使用 LLM 判断,以保证结果可复现、可审计。
前置条件
运行前需验证 .cocoplus/ 目录是否存在。若不存在,输出:“CocoPlus not initialized in this directory. Run $pod init to begin.” 然后停止。
成熟度等级
- L0 — Manual:除初始化外未启用任何 CocoPlus 自动化模式,每个阶段门都需要开发者显式操作。
- L1 — Assisted:启用了核心生命周期自动化(memory、safety gate),但 SecondEye/CocoSentinel 尚未配置 block 规则。
- L2 — Supervised:SecondEye 已启用 block 规则,CocoSentinel 至少为一种 artifact 类型完成配置;HITL 阶段仍需开发者批准后才能继续。
- L3 — Autonomous-Eligible:以下十项 L3 就绪检查全部通过。AFK 阶段可在无需逐阶段开发者批准的情况下推进,但受 Four-Tier Boundary Framework 的 NEVER 层级约束。
L3 就绪检查清单(十项全部必需)
CocoPod 若未在 $pod init 或 $pod upgrade --l3 时通过该清单,则不得运行在 L3:
- 存在预算守卫(Budget guard exists)
- 验证器与生成器在结构上分离(Verifier is structurally separate from generator)
- 定义了失败升级阶梯(Failure escalation ladder is defined)
- 记录了人工覆盖路径(Human override path is documented)
- 输出允许列表有界(Output allowlist is bounded)
- 配置了强制路径拒绝列表(Mandatory path denylist is configured)
- 存在终止开关(Kill switch exists)
- 运行日志已提交(Run log is committed)
- 强制禁止同智能体验证(No same-agent verification is enforced)
- 设置了尝试次数上限(Attempt cap is set)
等级上限
若 cocoplus.toml 声明 automation_maturity = "L0".."L3" 或 maturity_level = "L0".."L3",则报告等级以该声明为上限。CocoPod 不得运行在其声明并验证的成熟度等级之上。
输出
显示当前等级;若尚未达到 L3,显示十项检查中通过的数量,并具体列出未通过项,例如:
CocoBehavior Maturity — L2 (Supervised) L3 readiness: 6/10 items passing ✓ cocoplus-context.md complete ✓ cocoplus.toml permission tiers defined ✗ CocoFlow deterministic fallbacks — missing for 2 stage handlers ...
$pod status 也会从 .cocoplus/maturity.json 呈现该结果,而无需重新运行评估。
退出标准
- behavior-maturity 确定性运行(无 LLM),并写入 .cocoplus/maturity.json
- 报告等级与条件完全满足的最高层级一致
- 仅当十项就绪检查全部通过时才报告 L3
- 未通过的检查项需具体命名,而不仅是计数
反合理化
- 诱惑:因“差不多”而在十项中九项通过时报告 L3。错误原因:L3 会为 AFK 阶段解锁减少开发者监督,单个未满足项是真实缺口,不是舍入误差。
- 诱惑:使用 LLM 判断评估检查项,而非确定性脚本。错误原因:成熟度等级是自主性的门控,必须可复现、可审计,而不是可能因运行而异的判断。