用途
Ecosystem Autopsy 用于对一个 ORGANVM 工作区执行完整的目录图谱“尸检”:打开整个生态,绘制每个目录,分类每个仓库,并发出信号,把正在漂移的工作重新带回规范治理之下。它适合在以下情况使用:
- 需要“对工作区运行一次自动尸检”
- 需要“映射 ~/Code 和 ~/Workspace 下的所有目录”
- 需要“找出仍处于 LOCAL-only 的仓库”
- 需要“发出信号,把这些仓库统一到新治理之下”
- 需要在整合前对漂移项进行分诊
- 经历约 30 天以上未做生态级审查之后
- 在多仓整合、重命名或组织迁移之前
权威边界
该技能编排的是 ORGANVM 底层已经提供的规范接口,不重新实现它们:
- 治理状态机由 promotion-readiness-checklist 定义,本技能不得重述,只做调用。
- IRF 查询通过
organvm irf {list,status,stats}暴露,不得另建并行注册表。 - 生态库存与生命周期评分通过
organvm ecosystem {audit,list,actions,lifecycle,staleness,coverage}暴露,不得重复实现。 - 迁移后验证交由 qa-audit,本技能不执行修复,到达信号即停止。
如果某个尸检步骤看起来需要新的状态机定义、IRF schema 或库存逻辑,说明这些已经存在于底层,应先搜索再编写。surface-by-surface 的映射见 references/integration-map.md。
主要能力与工作流
阶段 1 — 发现(已注册与未注册)
运行规范库存:
organvm ecosystem --workspace ~/Workspace --workspace ~/Code audit
organvm ecosystem --workspace ~/Workspace --workspace ~/Code list
这些覆盖八器官注册表已知的仓库。
对于注册表之外的路径(临时技能缓存、~/Documents、草稿目录、临时克隆等),补充使用:
bash scripts/discover_unregistered.sh ~/Workspace ~/Code ~/Documents
该辅助脚本列出磁盘上存在、但未出现在 organvm ecosystem list 输出中的 git 仓库。这些是尸检的主要发现——规范库存尚不知道的目录。
阶段 2 — 分诊(优先级 + IRF 交叉引用)
获取规范的按优先级排序的下一步行动列表:
organvm ecosystem --workspace ~/Workspace --workspace ~/Code actions --json
对于每个高优先级仓库,按所有者/域交叉引用未关闭的 IRF 条目:
organvm irf list --status open --owner <organ-or-substring> --json
organvm irf list --domain <domain-code> --status open --json
当一个仓库同时出现在 ecosystem actions 中,且没有未关闭的 IRF 行跟踪该漂移时,它才真正处于漂移状态。这个缺口就是值得发出的信号。
阶段 3 — 状态评估(交由规范权威)
对阶段 2 标记的每个仓库,调用 promotion-readiness-checklist 评估当前治理状态及推进所需的证据。不要从本技能对状态进行分类。状态机(LOCAL → CANDIDATE → PUBLIC_PROCESS → GRADUATED)及其证据要求(seed.yaml schema 字段、LICENSE、README、CI、分支保护等)都在那里定义。
organvm ecosystem --workspace ~/Workspace --workspace ~/Code lifecycle <repo>
organvm ecosystem lifecycle 报告生态模块所见的当前生命周期阶段。在调用清单技能之前用它来确认。
阶段 4 — 迁移信号(发出,不执行)
对每个已确认状态且目标状态清晰的仓库,发出信号记录(JSON,写入用户选择的工作目录中的 autopsy/signals/<timestamp>.json):
{
"signal_type": "migration",
"repo": "<repo-name>",
"current_state": "LOCAL",
"target_state": "CANDIDATE",
"evidence_gaps": ["seed.yaml missing", "no LICENSE", "no remote"],
"invoke": "repo-onboarding-flow",
"irf_gap": true,
"emitted_at": "<ISO-8601>"
}
信号路由到正确的下游技能:
- LOCAL → CANDIDATE:调用 repo-onboarding-flow
- CANDIDATE → PUBLIC_PROCESS 或 PUBLIC_PROCESS → GRADUATED:调用 promotion-readiness-checklist
- IRF 缺口:发出 IRF 行提案(不自动写入——根据 ORGANVM 宪法规则,IRF 变更需要用户授权)
本技能止步于信号发射。执行属于信号所指向的下游技能。
阶段 5 — 验证(交由 qa-audit)
在下游技能执行后(在另一会话中或经用户明确同意),调用 qa-audit 验证所声称的转换是否与磁盘实际情况一致。尸检的信号文件是验证目标。
使用方式
通过调用上述 organvm CLI 命令以及脚本 scripts/discover_unregistered.sh 来执行各阶段操作。信号以 JSON 文件形式输出,不自动执行迁移。
适用场景
- 长期未做生态级审查之后
- 多仓整合、重命名或组织迁移之前
- 需要发现注册表之外、磁盘上存在的未注册 git 仓库
- 需要在整合前对漂移仓库进行分诊
限制
本技能明确不做以下事项:
- 重述或重新定义治理状态
- 用定制的 Python 遍历目录树(应使用 organvm ecosystem + discover_unregistered.sh)
- 变更 IRF、seed.yaml 或任何治理文件(只发信号)
- 执行 git 操作(push、branch、remote add)——这些属于 repo-onboarding-flow
- 验证自己的声明——那是 qa-audit 的职责
反模式
- 在本技能中编写 governance-states.md 参考文档(唯一事实来源是 promotion-readiness-checklist)
- 编写遍历目录做库存的 Python(规范 CLI 已经做了)
- 自动写入 IRF 行(变更需要明确的用户授权)
- 把信号当作承诺(信号是提案;执行是单独的授权)
脚本与参考
scripts/discover_unregistered.sh— 列出磁盘上未出现在organvm ecosystem list中的 git 仓库references/integration-map.md— 逐阶段映射到规范接口