Skip to content

[REQ-098][CODE] 拒绝新增 project catalog 安装并保留遗留清理能力 #372

Closed

Description

@jinjunnn

依据 ADR-030(#362 Codex 裁决,修正版方案A)。父需求 Refs #209;挂 #303/#318 完成矩阵(本票合入 + 残留策略落地后,验收 owner 按 ADR-030 措辞把两票 project 项修订为 N/A-by-contract)。

负责哪些 AC

  • 合法 project catalog/seed intent 通过原 wire decode,但在任何 catalog 拉取/CAS promotion/事务开始/installer/写盘前,由 installCatalog decode 后的统一 planner policy guard 返回稳定 reason:project-scoped catalog/seed installation is unsupported — use project-local import/register;resolveScope 保留防御性拒绝(seed/bundle 分支不走普通 resolveScope)。
  • project skill 与 project agent 对称拒绝回归;bundle/seed 同一拒绝合同;所有 global catalog/seed 行为不变。
  • 六个第一方生产动作(MCP/skill/plugin/agent/cloud/bundle)wiring test:捕获传给 installCatalog 的 intent 断言 scope=global(use-extensions.ts ×5 + extension-hub.tsx:519)。
  • 「新增安装策略=无 project kind」与「遗留可管理 kind={skill,agent}」拆分,不清空共享 PROJECT_SCOPED_KINDS。
  • 残留处置:项目打开/显式检查时报告(installs.json scope.kind=project 且 origin=catalog、ext-store/skill--、ext-tx/journal、agent 的 .alpha/agents/.md 与 alpha.jsonc agent 条目);无在途 journal 时幂等、受控根内 generation-aware 清理(删受控 ext-store + 对应账本,不落 flat removeFsInstall);journal 在场/身份不匹配 fail-closed,零自动删除。
  • 契约档 docs/contracts/extension-cas-seed.md 同步。

边界:planner policy guard、拒绝回归、wiring tests、残留检测/清理、契约档。
Out-of-scope:project generation 发现注入、常态 lazy recovery、project GC root registry、wire/decode 形状修改、全盘项目扫描、自动删除用户数据、agent generation 化、既有 .alpha/skills + alpha.jsonc 项目能力改造。
退出条件:上述 AC 全绿(bin/check + 定向套件);PR 合入;#303/#318 矩阵修订由验收 owner 执行(不在本票内代改)。

复杂度:M(跨 planner/测试/文档,单仓)。

Activity

  1. added a commit that references this issue on Jul 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    prio:P1High-value near-term delivery

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions