一键导入
structured-handoff
结构化交接+晋升门禁。上下文快满或 finishing 阶段触发。覆写 handoff.md 的唯一正路:归档→清账(待晋升暂存逐条裁决:上架/弃置/顺延/阻塞)→按模板单源覆写→自查。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
结构化交接+晋升门禁。上下文快满或 finishing 阶段触发。覆写 handoff.md 的唯一正路:归档→清账(待晋升暂存逐条裁决:上架/弃置/顺延/阻塞)→按模板单源覆写→自查。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
代码审查。一批代码改动完成后触发。ultracode/Workflow 在场时走 review-scout(reviewType='code',scout 现推维:code 地板 3 维 + 动态加);否则回落 Superpowers requesting-code-review(either-or,不叠加,不改 Superpowers 包)。
设计审查。系统设计完成后触发。扁平 fork 4 个独立挑战者从自洽性、完整性、合理性、RUBRIC 对齐四个维度审查设计文档。
方向评估。当 Superpowers 的 finishing-a-development-branch 完成、功能分支准备合并时自动触发。判断方向是否正确、是否需要推翻。
流程审计。finishing 阶段 evaluate 之后、分流之前触发。扁平 fork 1 个独立挑战者审计 AI 对流程的遵从度,记录到 docs/audits/,不自动优化。
提交前安全扫描。finishing 阶段 evaluate 之前触发。扁平 fork 3 个独立挑战者扫描 git diff,检测凭证泄露、危险操作、prompt 注入、数据外泄风险。
项目配置向导。首次使用或配置未完成时触发。探测项目现状,通过最少的对话完成配置。后续标准在开发中自然积累。
| name | structured-handoff |
| description | 结构化交接+晋升门禁。上下文快满或 finishing 阶段触发。覆写 handoff.md 的唯一正路:归档→清账(待晋升暂存逐条裁决:上架/弃置/顺延/阻塞)→按模板单源覆写→自查。 |
工作台(handoff)只放状态和指针,知识住书架。覆写工作台的唯一正路 = 先清账后覆写: 工作台上有价值的内容必须上架登记(或显式弃置/顺延)后才许覆写,防止无声覆灭。
/clear 前/structured-handoff!cat docs/active/handoff.md 2>/dev/null || cat harness/docs/active/handoff.md 2>/dev/null || echo "无交接文档"
!cat .claude/skills/structured-handoff/handoff-template.md 2>/dev/null || cat harness/.claude/skills/structured-handoff/handoff-template.md 2>/dev/null || echo "(模板缺失: .claude/skills/structured-handoff/handoff-template.md)"
!git branch --show-current 2>/dev/null || echo "未知"
!git log --oneline -5 2>/dev/null || echo "无 git 历史"
无条件执行(不判断"是否初始模板";多归档一份无害,重跑幂等):
路径口径:以下路径(①归档命令/③覆写目标/④自查 wc)以上方「当前交接文档」注入实际命中者为准——自仓库带 harness/ 前缀,即 harness/docs/active/、harness/docs/completed/。
mkdir -p docs/completed && cp docs/active/handoff.md "docs/completed/handoff-$(date +%Y%m%d-%H%M%S).md"
归档即"覆写信号":check-handoff.sh 以最新归档件为覆写信号,信号点燃后会机械硬核台账的 promotion 声明(文法+锚点)。归档完成后不回滚——即使后续步骤中止,也按 ② 的阻塞路径落盘声明。
归档件存入 docs/completed/,供 skipped 态回收点引用与后续 grep 考古。
对旧台账「待晋升暂存」区逐条裁决,四种结果:
| 裁决 | 动作 |
|---|---|
| 上架 | 写书架对应格(住址按下方路由表)+ 同批登记(references/ → 目录卡 references/README.md 加行;decisions/ → 文件名即登记)+ 台账指针区加 - -> 路径 — 为什么读 |
| 弃置 | 条目留在已归档的旧台账中,理由随归档件保全(弃置计数写进 promotion 声明);书架零污染 |
| 顺延 | 整体走 skipped 态:promotion 写 skipped(理由: <非空>; 回收: <归档件路径>),回收点 = 步骤①的归档件路径,下次会话从归档件回收再裁决 |
| 阻塞 | 有影响下游的未决点且不可弃(含清账中途等用户拍板):中止覆写,当场把台账 promotion 行写为 阻塞(理由: <非空>)、其余内容保持原状(归档已完成不回滚——信号已点燃) |
书架写入失败 → 同阻塞路径,理由写 写入失败待重试。
清账步必含兜底一问:本会话有无该暂存未暂存的内容?答案为有 → 先补登暂存区再继续清账。(机器测不出"没写的东西",此问是在场兜底;归档件保全原文可考古)
裁决依据(实质闸)——逐条目问四个问题:
松紧梯度:探索期(非收口覆写)顺延合法;收口与治理/方向类条目从严——方向/原则级条目的处置列选项请用户拍板,事实/留痕级 AI 即办(不做自动晋升)。
蒸馏判据(上架前一问):「下个功能还需要它吗?」——否 → 弃置。
预算枯竭不逼回写:上下文将满、暂存条目多时,不强行仓促上架——走 skipped(理由+回收点),暂存随归档件保全,下会话回收再裁决,书架零仓促污染。
晋升路由表(上架到哪):
| 条目类型 | 书架格 | 上架住址 | 同批登记动作 |
|---|---|---|---|
| 决策 | 决策史 | docs/decisions/YYYY-MM-DD-<slug>.md | 文件名即卡;判断拐点另 append decision-trail(既有义务) |
| 调研 / 参考 | 行业认知 | docs/references/YYYY-MM-DD-<slug>.md | 目录卡(references/README.md)加行 |
| 经验(干活规矩级) | 干活规矩 | 对应 docs/governance/*.md | 命中凭证义务 → 须 audit 凭证(credentials-rules),不得收口顺手直插;此类条目允许"顺延"跨覆写保留 |
| 经验(项目事实) | 系统真相 | ARCHITECTURE.md / 模块 README | 文档随码既有规矩 |
| 偏好 | 用户偏好 | docs/preferences.md | 条目带日期+用户原话引录;命中凭证义务 → 须 audit 凭证(credentials-rules),用户原话直录可走 exempt 微 audit 轻路径(credentials-rules §4) |
类型不在表(如 [疑问])→ 按实质闸归并到最近的格,或问用户。
以上方「台账模板(单源)」注入的模板(.claude/skills/structured-handoff/handoff-template.md)为骨架重写 docs/active/handoff.md:
已核(...) 或 skipped(...)- 无- 无):promotion 写 已核(上架: 无; 弃置: 0 条)(空账=清白,非顺延,不用 skipped)promotion: 无别名)promotion: 未核
promotion: 已核(上架: <路径>[, <路径>]...; 弃置: <N> 条) # 上架段可为字面 "无"
promotion: 已核(上架: 无; 弃置: 0 条) # 空账合法形:当且仅当暂存区为 "- 无"(空账=清白,非顺延)
promotion: skipped(理由: <非空>; 回收: <归档件路径>) # 仅用于暂存有条目且顺延(回收点必填);空账不用 skipped
promotion: 阻塞(理由: <非空>) # 合法中间态,非终态(见下段)
hook 整行校验: ^promotion: (未核|已核\(上架: [^;]+; 弃置: [0-9]+ 条\)|skipped\(理由: [^;]+; 回收: [^)]+\)|阻塞\(理由: [^)]+\))$
锚点抽查(已核): 上架段按", "切分;每路径 test -f && test -s;
路径前缀含 references/ → 再 grep -F 文件名 于目录卡
(路径为无日期前缀标准件 → 不要求目录卡行,豁免见 4.1.7);
上架段为字面 "无" 时跳过锚点抽查;空账形 已核(上架: 无; 弃置: 0 条):
当且仅当最新归档件暂存区为 "- 无" 才合法(空账=清白,非顺延),否则 exit 2
"暂存有条目却记零账";弃置 ≥1 = 全弃置,合法;归档件无 "## 待晋升暂存" 节
(旧格式,B9 迁移场景)→ 视同 "- 无"(向后兼容)
凭证设计: 有上架声明却无路径的"已核"被文法拒;空账形态(上架: 无; 弃置: 0 条)合法且跳过锚点抽查
("只写已阅读不算证据"仍由非空账形的锚点抽查承载)
半角纪律: ( ) : ; , 全半角;全角不命中 → 按未做处理 + stderr 提示(半角纪律权威即本 SKILL;
沿 2026-04-28 C3 Y3 教训)
「阻塞」是台账中的合法中间态(非终态):清账裁决为阻塞或清账中途等用户拍板时,因固定序①归档已点燃覆写信号,当场把台账 promotion 行写为 阻塞(理由: <非空>)、其余保持原状——check-handoff.sh 在 60 分钟窗内视其为合法中间态放行;阻塞解除后重走本门禁,覆写步骤重写为 已核/skipped。
覆写「## 活跃任务索引」时不保留旧表整块,逐行重声明「这条还活着吗」:
## 待晋升暂存 走晋升门禁(一条一句话,条目类型+梗概,如 - [决策] 活跃任务索引覆写工序确定)## 进度 > ### 已完成(无需详细,如 - 活跃任务索引落地)活跃任务: N(进行中 X / 挂起 Y):
src/api/auth.ts 的 validateToken() 而不是"改了认证模块"(用函数名/类名定位,不用行号——行号会随代码改动失效)wc -l < docs/active/handoff.md ≤ 80。超限砍序 = 先砍散文(关键上下文),指针与声明字段不砍;散文砍尽仍超 → 允许超限,在回复中声明超限原因[待填] 残留(新建台账除外);无适用值的字段写 无(如纯文档会话的 Evidence Depth 各级),不留 [待填]覆写后,对「## 活跃任务索引」段执行以下四条自查(AI 一眼可数,机器核与自查不重叠):
表头计数一致性核:机读表头 活跃任务: N(进行中 X / 挂起 Y) 中的数字与表体一致:
| 状态 |、分隔行 |---|、占位行 (无活跃任务))挂起行触发器非空核 + 进行中行触发器清洁核:
—);空 → 改写合法触发器—(防挂起→进行中切回漏改、留旧触发器文本残留);非 — → 改回 —位置自查:## 活跃任务索引 节精确落在 ## 目标 之后、## 进度 之前(在 ## 待晋升暂存 之前):
挂起行积压软上限提醒(非硬错,信息性):