@wenaixi/dsh-superpower 6.3.1 → 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/README.md +30 -24
  2. package/lib/catalog.d.ts +83 -0
  3. package/lib/catalog.d.ts.map +1 -0
  4. package/lib/catalog.js +231 -0
  5. package/lib/catalog.js.map +1 -0
  6. package/lib/document.d.ts +52 -0
  7. package/lib/document.d.ts.map +1 -0
  8. package/lib/document.js +196 -0
  9. package/lib/document.js.map +1 -0
  10. package/lib/superpowers.d.ts +9 -2
  11. package/lib/superpowers.d.ts.map +1 -1
  12. package/lib/superpowers.js +33 -253
  13. package/lib/superpowers.js.map +1 -1
  14. package/package.json +4 -4
  15. package/skills/{superpower-brainstorming → brainstorming}/SKILL.md +51 -35
  16. package/skills/{superpower-brainstorming → brainstorming}/scripts/server.cjs +6 -14
  17. package/skills/{superpower-brainstorming → brainstorming}/scripts/start-server.sh +1 -6
  18. package/skills/{superpower-brainstorming → brainstorming}/spec-document-reviewer-prompt.md +4 -4
  19. package/skills/{superpower-brainstorming → brainstorming}/visual-companion.md +8 -34
  20. package/skills/diagnosing-superpowers/SKILL.md +58 -0
  21. package/skills/diagnosing-superpowers/prompts/analyst-common.md +24 -0
  22. package/skills/diagnosing-superpowers/prompts/cost-and-time.md +12 -0
  23. package/skills/diagnosing-superpowers/prompts/plan-adherence.md +15 -0
  24. package/skills/diagnosing-superpowers/prompts/quality-evidence.md +11 -0
  25. package/skills/diagnosing-superpowers/prompts/repeated-work.md +19 -0
  26. package/skills/diagnosing-superpowers/prompts/request-conflicts.md +11 -0
  27. package/skills/diagnosing-superpowers/prompts/scrub-audit.md +20 -0
  28. package/skills/diagnosing-superpowers/prompts/scrub.md +16 -0
  29. package/skills/diagnosing-superpowers/prompts/similar-session.md +30 -0
  30. package/skills/diagnosing-superpowers/prompts/skill-timeline.md +16 -0
  31. package/skills/diagnosing-superpowers/prompts/stumbles.md +16 -0
  32. package/skills/diagnosing-superpowers/references/context-safety.md +14 -0
  33. package/skills/diagnosing-superpowers/references/github-issues.md +39 -0
  34. package/skills/diagnosing-superpowers/references/redaction-policy.md +22 -0
  35. package/skills/diagnosing-superpowers/references/session-discovery.md +20 -0
  36. package/skills/diagnosing-superpowers/templates/bundle-README.md +51 -0
  37. package/skills/diagnosing-superpowers/templates/case.md +57 -0
  38. package/skills/diagnosing-superpowers/templates/issue.md +45 -0
  39. package/skills/diagnosing-superpowers/templates/report.md +76 -0
  40. package/skills/{superpower-dispatching-parallel-agents → dispatching-parallel-agents}/SKILL.md +31 -31
  41. package/skills/executing-plans/SKILL.md +227 -0
  42. package/skills/executing-plans/scripts/task-done +52 -0
  43. package/skills/executing-plans/scripts/task-start +28 -0
  44. package/skills/{superpower-finishing-a-development-branch → finishing-a-development-branch}/SKILL.md +18 -18
  45. package/skills/{superpower-receiving-code-review → receiving-code-review}/SKILL.md +39 -39
  46. package/skills/{superpower-requesting-code-review → requesting-code-review}/SKILL.md +11 -11
  47. package/skills/{superpower-requesting-code-review → requesting-code-review}/code-reviewer.md +15 -7
  48. package/skills/subagent-driven-development/SKILL.md +355 -0
  49. package/skills/{superpower-subagent-driven-development → subagent-driven-development}/implementer-prompt.md +10 -10
  50. package/skills/subagent-driven-development/re-review-prompt.md +83 -0
  51. package/skills/{superpower-subagent-driven-development → subagent-driven-development}/scripts/review-package +8 -1
  52. package/skills/subagent-driven-development/scripts/sdd-workspace +82 -0
  53. package/skills/{superpower-subagent-driven-development → subagent-driven-development}/scripts/task-brief +3 -1
  54. package/skills/{superpower-subagent-driven-development → subagent-driven-development}/task-reviewer-prompt.md +27 -27
  55. package/skills/{superpower-systematic-debugging → systematic-debugging}/CREATION-LOG.md +9 -9
  56. package/skills/{superpower-systematic-debugging → systematic-debugging}/SKILL.md +8 -8
  57. package/skills/{superpower-systematic-debugging → systematic-debugging}/condition-based-waiting.md +9 -9
  58. package/skills/{superpower-systematic-debugging → systematic-debugging}/defense-in-depth.md +1 -1
  59. package/skills/{superpower-systematic-debugging → systematic-debugging}/find-polluter.sh +4 -4
  60. package/skills/{superpower-systematic-debugging → systematic-debugging}/root-cause-tracing.md +2 -2
  61. package/skills/{superpower-systematic-debugging → systematic-debugging}/test-pressure-1.md +1 -1
  62. package/skills/{superpower-systematic-debugging → systematic-debugging}/test-pressure-3.md +1 -1
  63. package/skills/{superpower-test-driven-development → test-driven-development}/SKILL.md +16 -14
  64. package/skills/{superpower-test-driven-development → test-driven-development}/writing-good-tests.md +29 -29
  65. package/skills/{superpower-using-git-worktrees → using-git-worktrees}/SKILL.md +12 -12
  66. package/skills/{superpower-using-superpowers → using-superpowers}/SKILL.md +8 -12
  67. package/skills/{superpower-using-superpowers → using-superpowers}/references/dsh-tools.md +8 -8
  68. package/skills/{superpower-verification-before-completion → verification-before-completion}/SKILL.md +17 -17
  69. package/skills/writing-plans/SKILL.md +167 -0
  70. package/skills/{superpower-writing-skills → writing-skills}/SKILL.md +75 -73
  71. package/skills/{superpower-writing-skills → writing-skills}/persuasion-principles.md +10 -10
  72. package/skills/{superpower-writing-skills → writing-skills}/testing-skills-with-subagents.md +53 -53
  73. package/skills/superpower-executing-plans/SKILL.md +0 -64
  74. package/skills/superpower-subagent-driven-development/SKILL.md +0 -347
  75. package/skills/superpower-subagent-driven-development/re-review-prompt.md +0 -83
  76. package/skills/superpower-subagent-driven-development/scripts/sdd-workspace +0 -40
  77. package/skills/superpower-using-superpowers/references/antigravity-tools.md +0 -23
  78. package/skills/superpower-using-superpowers/references/codex-tools.md +0 -108
  79. package/skills/superpower-using-superpowers/references/gemini-tools.md +0 -63
  80. package/skills/superpower-using-superpowers/references/hermes-tools.md +0 -56
  81. package/skills/superpower-using-superpowers/references/pi-tools.md +0 -16
  82. package/skills/superpower-writing-plans/SKILL.md +0 -160
  83. package/skills/superpower-writing-plans/plan-document-reviewer-prompt.md +0 -49
  84. package/skills/superpower-writing-skills/anthropic-best-practices.md +0 -1146
  85. package/skills/superpower-writing-skills/examples/CLAUDE_MD_TESTING.md +0 -188
  86. /package/skills/{superpower-brainstorming → brainstorming}/scripts/frame-template.html +0 -0
  87. /package/skills/{superpower-brainstorming → brainstorming}/scripts/helper.js +0 -0
  88. /package/skills/{superpower-brainstorming → brainstorming}/scripts/stop-server.sh +0 -0
  89. /package/skills/{superpower-systematic-debugging → systematic-debugging}/condition-based-waiting-example.ts +0 -0
  90. /package/skills/{superpower-systematic-debugging → systematic-debugging}/test-academic.md +0 -0
  91. /package/skills/{superpower-systematic-debugging → systematic-debugging}/test-pressure-2.md +0 -0
  92. /package/skills/{superpower-writing-skills → writing-skills}/graphviz-conventions.dot +0 -0
  93. /package/skills/{superpower-writing-skills → writing-skills}/render-graphs.js +0 -0
@@ -1,47 +1,63 @@
1
1
  ---
2
- name: superpower-brainstorming
3
- description: "创意工作前必用:创建功能、构建组件、新增能力或变更行为前,先澄清用户意图、需求与设计,再进入实现。"
2
+ name: brainstorming
3
+ description: "Superpower Skill:创意工作前必用——创建功能、构建组件、新增能力或变更行为前,先澄清用户意图、需求与设计,再进入实现。"
4
4
  ---
5
5
 
6
6
  # 将想法头脑风暴为设计
7
7
 
8
- 通过自然的协作对话,将想法转化为完整、可落地的设计与规格说明。
8
+ 帮助你把想法通过自然的协作对话,转化为完整成型的设计与规格说明。
9
9
 
10
- 首先判断本次请求需要多少流程,然后按对应路径推进:理解上下文、细化想法、呈现设计、并获得协作方的确认。
10
+ 先从判断本次请求需要多少流程开始,然后沿对应路径推进:理解上下文、细化想法、呈现设计,并获得 human partner 的批准。
11
+
12
+ ## 建立共识
13
+
14
+ 头脑风暴的产出是一种 human partner 能够识别并纠正的理解,且以他们想要达成的目标为基础。
15
+
16
+ 1. **发掘意图。** 利用请求与可用上下文,确定预期成果、受众是谁、成功是什么样的。当这些信息缺失时,先提出一个聚焦于目的或用意的问题,再提议功能或方案。了解应用类型并不能告诉你 human partner 为什么想要它。补充缺失的需求并不意味着要求对方再次授权任务。
17
+ 2. **把你的理解写回去。** 用一段简短说明总结预期成果、相关约束与成功标准,供 human partner 评估。把你听到的内容与你的假设区分开。邀请对方纠正,并在把这段话当作设计 brief 之前纳入他们的答复。
18
+ 3. **把意图带进设计。** 在所选路径的设计产物中保留已确认的理解:架构级工作用书面规格,受限任务与 spike 用对话内设计/验证。对照该理解检查拟议的功能与技术选择。
19
+
20
+ 当请求本身已经提供了目的与约束时,直接反映该理解,而不是重复提出同样的问题。说明保持简短;其准确性以及被纠正的机会才重要。
11
21
 
12
22
  <HARD-GATE>
13
- 严禁在告知协作方你的意图并获得其批准之前,调用任何实现类 skill、编写任何代码、搭建任何项目或执行任何实现动作。该约束适用于下方所有路径中的所有任务——流程的繁简可随任务伸缩,审批关卡绝不放宽。
23
+ 在采取任何实现动作之前——包括调用实现类 skill、编写产品代码、搭建脚手架、安装产品依赖或创建外部项目——必须先完成所选路径的前置条件:
24
+
25
+ - Spike:human partner 批准问题与验证计划。
26
+ - Bounded 受限:human partner 批准对话中的简短设计。
27
+ - Architectural 架构:human partner 复核并批准书面规格,然后复核书面实现计划并选择其执行方式。对话中的设计获批仅允许编写规格;书面规格获批仅允许调用 writing-plans。
28
+
29
+ 一条回复批准的只是实际呈现的那个阶段。对想法或功能范围的批准,并不等于批准尚不存在的产物。从最早未完成的阶段继续;不要把一个批准当作跳过所选路径其余部分的许可。在这些前置条件尚未完成时,允许进行只读的项目探索。
14
30
  </HARD-GATE>
15
31
 
16
32
  ## 三条路径
17
33
 
18
- 在提出第一个问题前,先对请求进行分类并大声说出分类结果——例如“这看起来是受限任务,我会在对话中直接给出简短设计,而不是编写规格文档”——以便协作方及时纠正:
34
+ 在提出第一个问题前,先对请求进行分类并大声说出分类结果——例如“这看起来是受限任务,我会在这里呈现简短设计,而不是编写规格”——以便 human partner 可以纠正你:
19
35
 
20
- - **Spike 探索** — 可行性问题(“能否……”“是否可能……”“快速粗糙实现即可”),产出是答案,而非可保留的代码。用 2-3 句话说明问题及验证方式,获得认可后,以满足正确性前提下的最低成本去验证。无需设计文档与规格文件。以建议形式汇报发现,任何为验证而构建的代码均标注为“一次性/可丢弃”。
21
- - **Bounded 受限** — 对本仓库已有代码的明确范围变更:新增开关、小型接口、单文件修复。仅了解应用类型是不够的——“受限”意味着你要改的流程已在仓库中可查可读。若没有可改的既有流程,则不属于受限任务。提出关键的澄清问题,在对话中直接呈现简短设计(几句话到几段短文),然后停止。仅在协作方对该设计明确说“同意”后方可开始实现——受限任务的审批与架构级任务一样严格。无需规格文件与实现计划文档。
22
- - **Architectural 架构** — 新项目、新子系统,或会重塑组件间协作方式、改变他人依赖接口的变更。遵循完整流程:提问、提供方案、分节设计、编写规格文档,然后进入 superpower-writing-plans 技能。
36
+ - **Spike 探索** — 可行性问题(“能否……”“是否可能……”“快速粗糙即可”),产出是答案,而非你要保留的代码。用 2-3 句话呈现问题与你要尝试的内容,获得点头认可,然后在满足正确性前提下的最低成本范围内去验证。无需设计文档与规格文件。以建议形式汇报发现;任何为验证而构建的内容都保持“一次性”标注。
37
+ - **Bounded 受限** — 对本仓库中已存在代码的明确范围变更:新增开关、小型接口、单文件修复。仅了解应用类型是不够的——受限意味着你要改的流程已经在这里、可以阅读。若没有可改的既有流程,则该任务不属于受限。提出那些真正重要的澄清问题,在对话中呈现简短设计(几句话到几段短文),然后停止。实现只会在 human partner 对该设计明确说“同意”之后开始——受限任务的审批与架构级任务一样是一道硬关卡。无需规格文件与实现计划文档。
38
+ - **Architectural 架构** — 新项目、新子系统,或会重塑组件之间如何组合、改变他人所依赖接口的变更。遵循完整流程:提问、方案、分节设计、书面规格,然后进入 writing-plans 技能。
23
39
 
24
- 当在两条路径间犹豫时,选择更重的那一条。棘轮单向生效:任务中途发现隐藏复杂度即升级路径——立即停下、说明情况、提升等级。任务中途不允许降级。
40
+ 当在两条路径之间犹豫时,选择更重的那一条。棘轮单向生效:任务中途发现的隐藏复杂度会升级路径——停下、说明情况、向上提升。任务中途没有任何东西可以降级。
25
41
 
26
42
  ## 反模式:“太简单,不需要审批”
27
43
 
28
- 每条路径都以“协作方在实现前批准你的意图”作为结束。待办清单、单函数工具、配置变更——设计或许只有对话中的两句话,但必须呈现并获得批准。“简单”任务恰恰最容易因未经审视的假设而造成返工。随简易程度伸缩的是产出物,而非审批环节。
44
+ 每条路径都以 human partner 在实现前批准所需设计作为结束。受限变更可能只需要对话中的两句话。一个新的待办清单项目是架构级的,需要书面规格与规划交接。按所选路径缩放产物;在实现前完成该路径的全部复核。
29
45
 
30
46
  ## 红线信号
31
47
 
32
48
  | 想法 | 实际情况 |
33
49
  |---------|---------|
34
- | “这太简单,不需要设计” | 简单意味着设计要短,而不是没有设计。在对话中用两句话说明,然后等待批准。 |
35
- | “我把它算作受限任务,就可以跳过规格了” | 刻意找标签来省事,本身就是存疑的信号——选择更重的路径。 |
36
- | “这是受限任务,设计很明显——我边写边让他们看就行” | 关卡在于“批准”,而非设计长短。先呈现,然后停下,直到听到明确的“同意”。 |
37
- | “我了解这类应用,所以算是受限任务” | “受限”衡量的是仓库现状,而非你的熟悉程度。新项目没有既有流程——属于架构级。 |
38
- | “探索验证跑通了,就把代码留下来吧” | 探索的产出是答案。保留代码属于新需求——需重新分类。 |
39
- | “需求膨胀了,但快做完了——没必要重新分类” | 隐藏复杂度会中途升级路径。立即停下并说明。 |
40
- | “他们已经批准了探索,后续改动也算批准了” | 每个任务都需独立分类与独立批准。 |
50
+ | “这太简单,不需要设计” | 遵循所选路径:受限变更得到对话中的简短设计;架构级变更得到书面规格与规划交接。 |
51
+ | “我把它算作受限任务,就可以跳过规格了” | 刻意找一个标签来跳过工作本身就是存疑——选择更重的路径。 |
52
+ | “这是受限任务,设计显而易见——他们读的时候我就开始” | 关卡在于批准,而非设计长度。先呈现,然后停下,直到听到明确的“同意”。 |
53
+ | “我了解这类应用,所以它是受限的” | 受限衡量的是仓库,而非你的熟悉程度。新项目没有既有流程——它是架构级的。 |
54
+ | “spike 跑通了,所以我把代码留下” | spike 的产出是答案。保留代码是新请求——对它分类。 |
55
+ | “它膨胀了,但我快做完了——没必要重新分类” | 隐藏复杂度会中途升级路径。停下并说明。 |
56
+ | “他们批准了 spike,所以后续变更也算批准了” | 每个任务都有自己的分类与自己的批准。 |
41
57
 
42
58
  ## 检查清单
43
59
 
44
- 先分类、宣告路径,然后为所在路径的每一项创建任务并按顺序完成。
60
+ 先分类,宣告路径,然后为所在路径的每一项创建任务并按顺序完成。
45
61
 
46
62
  **Spike 探索:**
47
63
  1. **探索项目上下文** — 充分到足以界定验证问题
@@ -66,7 +82,7 @@ description: "创意工作前必用:创建功能、构建组件、新增能力
66
82
  6. **编写设计文档** — 保存至 `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md` 并提交
67
83
  7. **规格自检** — 快速行内检查占位符、矛盾、歧义与范围(见下文)
68
84
  8. **用户复核书面规格** — 请用户在继续前复核规格文件
69
- 9. **转入实现** — 调用 superpower-writing-plans 技能创建实现计划
85
+ 9. **转入实现** — 调用 writing-plans 技能创建实现计划
70
86
 
71
87
  ## 流程图
72
88
 
@@ -76,7 +92,7 @@ digraph brainstorming {
76
92
  "呈现问题与验证计划(2-3 句话)" [shape=box];
77
93
  "提出澄清问题(受限)" [shape=box];
78
94
  "在对话中呈现简短设计" [shape=box];
79
- "协作方是否批准?" [shape=diamond];
95
+ "human partner 是否批准?" [shape=diamond];
80
96
  "验证并汇报建议" [shape=doublecircle];
81
97
  "按常规流程实现(无计划文档)" [shape=doublecircle];
82
98
  "探索项目上下文" [shape=box];
@@ -87,17 +103,17 @@ digraph brainstorming {
87
103
  "编写设计文档" [shape=box];
88
104
  "规格自检\n(行内修复)" [shape=box];
89
105
  "用户是否复核规格?" [shape=diamond];
90
- "调用 superpower-writing-plans 技能" [shape=doublecircle];
106
+ "调用 writing-plans 技能" [shape=doublecircle];
91
107
  "发现隐藏复杂度?升级路径" [shape=box];
92
108
 
93
109
  "分类:spike 探索 / bounded 受限 / architectural 架构" -> "呈现问题与验证计划(2-3 句话)" [label="spike 探索"];
94
110
  "分类:spike 探索 / bounded 受限 / architectural 架构" -> "提出澄清问题(受限)" [label="bounded 受限"];
95
111
  "分类:spike 探索 / bounded 受限 / architectural 架构" -> "探索项目上下文" [label="architectural 架构"];
96
- "呈现问题与验证计划(2-3 句话)" -> "协作方是否批准?";
112
+ "呈现问题与验证计划(2-3 句话)" -> "human partner 是否批准?";
97
113
  "提出澄清问题(受限)" -> "在对话中呈现简短设计";
98
- "在对话中呈现简短设计" -> "协作方是否批准?";
99
- "协作方是否批准?" -> "验证并汇报建议" [label="spike 探索:是"];
100
- "协作方是否批准?" -> "按常规流程实现(无计划文档)" [label="bounded 受限:是"];
114
+ "在对话中呈现简短设计" -> "human partner 是否批准?";
115
+ "human partner 是否批准?" -> "验证并汇报建议" [label="spike 探索:是"];
116
+ "human partner 是否批准?" -> "按常规流程实现(无计划文档)" [label="bounded 受限:是"];
101
117
  "发现隐藏复杂度?升级路径" -> "分类:spike 探索 / bounded 受限 / architectural 架构";
102
118
  "探索项目上下文" -> "提出澄清问题";
103
119
  "提出澄清问题" -> "提出 2-3 种方案";
@@ -108,7 +124,7 @@ digraph brainstorming {
108
124
  "编写设计文档" -> "规格自检\n(行内修复)";
109
125
  "规格自检\n(行内修复)" -> "用户是否复核规格?";
110
126
  "用户是否复核规格?" -> "编写设计文档" [label="需修改"];
111
- "用户是否复核规格?" -> "调用 superpower-writing-plans 技能" [label="已批准"];
127
+ "用户是否复核规格?" -> "调用 writing-plans 技能" [label="已批准"];
112
128
  }
113
129
  ```
114
130
 
@@ -116,12 +132,12 @@ digraph brainstorming {
116
132
 
117
133
  ## 详细流程
118
134
 
119
- 以下小节服务于受限与架构两条路径(探索路径在“呈现验证计划并获得认可”后即结束)。自 **探索方案** 起为架构路径的深度内容——对于受限任务,上下文探索加上几个问题再加对话中的简短设计即为全部流程。
135
+ 以下小节服务于受限与架构两条路径(spike 在“呈现验证计划并获得认可”后即结束)。自 **探索方案** 起为架构路径的深度内容——对于受限任务,上下文加上几个问题再加上对话中的简短设计即为全部流程。
120
136
 
121
137
  **理解想法:**
122
138
 
123
139
  - 首先查看当前项目状态(文件、文档、近期提交)
124
- - 在深入提问前先评估范围:若需求描述了多个独立子系统(例如“构建一个包含聊天、文件存储、计费与数据分析的平台”),需立即指出。不要在需要先拆解的项目上浪费时间细化细节。
140
+ - 在提出详细问题前先评估范围:若请求描述了多个独立子系统(例如“构建一个包含聊天、文件存储、计费与分析功能的平台”),需立即指出。不要在需要先拆解的项目上浪费提问来细化细节。
125
141
  - 若项目过大不适合用单一规格承载,帮助用户拆解为子项目:有哪些独立部分、它们之间如何关联、应按何种顺序构建?然后按常规设计流程对首个子项目进行头脑风暴。每个子项目各自拥有独立的 规格 → 计划 → 实现 周期。
126
142
  - 对于范围合适的项目,逐个提问以细化想法
127
143
  - 尽可能使用选择题,但开放性问题也可以
@@ -138,8 +154,8 @@ digraph brainstorming {
138
154
  **呈现设计:**
139
155
 
140
156
  - 当你认为已理解要构建的内容后,呈现设计
141
- - 按复杂度伸缩每节篇幅:简单处几句话即可,复杂处可写 200-300 字
142
- - 每节结束后询问是否符合预期
157
+ - 按复杂度缩放每节篇幅:直截了当处几句话即可,微妙复杂处可写 200-300 字
158
+ - 每节结束后询问目前看起来是否合适
143
159
  - 覆盖:架构、组件、数据流、错误处理、测试
144
160
  - 随时准备回头澄清不清晰之处
145
161
 
@@ -184,14 +200,14 @@ digraph brainstorming {
184
200
 
185
201
  **实现:**
186
202
 
187
- - 调用 superpower-writing-plans 技能创建详细的实现计划
203
+ - 调用 writing-plans 技能创建详细的实现计划
188
204
  - 不要调用任何其他 skill。下一步仅为 writing-plans。
189
205
 
190
206
  ## 可视化协作
191
207
 
192
- 基于浏览器的可视化协作工具,用于在头脑风暴期间展示原型、图表与可视化选项。这是一个工具,而非模式。接受协作意味着在适合可视化的问题上可使用它;并不意味着每个问题都要走浏览器。
208
+ 基于浏览器的协作工具,用于在头脑风暴期间展示原型、图表与可视化选项。这是一个工具,而非模式。接受协作意味着在适合可视化处理的问题上可使用它;并不意味着每个问题都要走浏览器。
193
209
 
194
- **提供协作的时机(按需提供):** 不要一开始就提供。仅当某个问题确实“看比说更清楚”——即真正涉及原型/布局/图表的问题,而不仅仅是聊到 UI 话题——才在首次出现时单独发一条消息提供:
210
+ **提供协作的时机(按需提供):** 不要一开始就提供。等待某个问题确实“看图比看文字更清楚”——即真正涉及原型/布局/图表的问题,而不仅仅是聊到 UI 话题——才在首次出现时单独发一条消息提供:
195
211
  > “接下来的部分或许看图会更清楚——我可以在浏览器标签页中为你实时准备原型、图表与对比方案。该功能仍较新且较耗 token。需要我打开吗?我会为你自动打开。”
196
212
 
197
213
  **该提议必须单独成一条消息。** 仅包含提议——不要附带澄清问题、总结或其他内容。等待用户回复。若用户接受,以 `--open` 启动服务,使其浏览器自动打开首屏。若用户拒绝,则继续纯文本协作,除非用户主动提起,否则不再提议。
@@ -204,4 +220,4 @@ digraph brainstorming {
204
220
  涉及 UI 话题的问题不一定是视觉问题。“在此上下文中 personality 指什么?”是概念问题——使用终端。“哪种向导布局更合适?”是视觉问题——使用浏览器。
205
221
 
206
222
  若用户同意使用协作,请在继续前阅读详细指南:
207
- `skills/superpower-brainstorming/visual-companion.md`
223
+ `skills/brainstorming/visual-companion.md`
@@ -106,8 +106,7 @@ const SUPERPOWERS_VERSION = readSuperpowersVersion();
106
106
  const SUPERPOWERS_BRAND_IMAGE_URL = 'https://primeradiant.com/brand/superpowers-visual-brainstorming-logo.png';
107
107
  const TELEMETRY_DISABLE_ENV_VARS = [
108
108
  'SUPERPOWERS_DISABLE_TELEMETRY',
109
- 'DISABLE_TELEMETRY',
110
- 'CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC'
109
+ 'DISABLE_TELEMETRY'
111
110
  ];
112
111
  const SUPERPOWERS_TELEMETRY_DISABLED = TELEMETRY_DISABLE_ENV_VARS.some(name => isTruthyEnv(process.env[name]));
113
112
  let ownerPid = process.env.BRAINSTORM_OWNER_PID ? Number(process.env.BRAINSTORM_OWNER_PID) : null;
@@ -207,18 +206,11 @@ const helperInjection = '<script>\n' + helperScript + '\n</script>';
207
206
 
208
207
  function readSuperpowersVersion() {
209
208
  const root = path.join(__dirname, '../../..');
210
- const manifests = [
211
- path.join(root, 'package.json'),
212
- path.join(root, '.codex-plugin/plugin.json')
213
- ];
214
-
215
- for (const manifest of manifests) {
216
- try {
217
- const data = JSON.parse(fs.readFileSync(manifest, 'utf-8'));
218
- if (data.version) return String(data.version);
219
- } catch (e) {
220
- // Packaged Codex plugins omit package.json; try the next manifest.
221
- }
209
+ try {
210
+ const data = JSON.parse(fs.readFileSync(path.join(root, 'package.json'), 'utf-8'));
211
+ if (data.version) return String(data.version);
212
+ } catch (e) {
213
+ // DSH bundle reads version directly from root package.json
222
214
  }
223
215
 
224
216
  return 'unknown';
@@ -15,7 +15,7 @@
15
15
  # --open Auto-open the browser on the first screen (use only
16
16
  # after the user approves the visual companion).
17
17
  # --foreground Run server in the current terminal (no backgrounding).
18
- # --background Force background mode (overrides Codex auto-foreground).
18
+ # --background Force background mode.
19
19
 
20
20
  SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
21
21
 
@@ -94,11 +94,6 @@ is_windows_like_shell() {
94
94
  return 1
95
95
  }
96
96
 
97
- # Some environments reap detached/background processes. Auto-foreground when detected.
98
- if [[ -n "${CODEX_CI:-}" && "$FOREGROUND" != "true" && "$FORCE_BACKGROUND" != "true" ]]; then
99
- FOREGROUND="true"
100
- fi
101
-
102
97
  # Windows/Git Bash reaps nohup background processes. Auto-foreground when detected.
103
98
  if [[ "$FOREGROUND" != "true" && "$FORCE_BACKGROUND" != "true" ]]; then
104
99
  if is_windows_like_shell; then
@@ -1,6 +1,6 @@
1
- # Spec 文档审查提示词模板
1
+ # Spec 文档 reviewer prompt 模板
2
2
 
3
- 在派发 Spec 文档审查子代理时使用本模板。
3
+ 在派发 Spec 文档审查 subagent 时使用本模板。
4
4
 
5
5
  **目标:** 验证 Spec 是否完整、一致且已就绪,可进入实现规划阶段。
6
6
 
@@ -10,7 +10,7 @@
10
10
  Subagent (general-purpose):
11
11
  description: "Review spec document"
12
12
  prompt: |
13
- 你是一名 Spec 文档审查员,请验证该 Spec 是否完整且已就绪,可进入规划阶段。
13
+ 你是一名 Spec 文档 spec reviewer,请验证该 Spec 是否完整且已就绪,可进入规划阶段。
14
14
 
15
15
  **待审查 Spec:** [SPEC_FILE_PATH]
16
16
 
@@ -44,4 +44,4 @@ Subagent (general-purpose):
44
44
  - [改进建议]
45
45
  ```
46
46
 
47
- **审查员返回:** 状态、问题(如有)、建议
47
+ **spec reviewer 返回:** 状态、问题(如有)、建议
@@ -33,9 +33,9 @@
33
33
  ## 启动会话
34
34
 
35
35
  ```bash
36
- # Start AFTER the user approves the companion. --open auto-opens their browser on
37
- # the first screen; --project-dir persists mockups and enables same-port restart.
38
- scripts/start-server.sh --project-dir /path/to/project --open
36
+ # 在用户批准 companion 后启动。--open 会在首屏自动打开其浏览器;
37
+ # --project-dir 持久化原型并支持同端口重启。
38
+ bash scripts/start-server.sh --project-dir /path/to/project --open
39
39
 
40
40
  # Returns: {"type":"server-started","port":52341,
41
41
  # "url":"http://localhost:52341/?key=ab12…",
@@ -51,45 +51,19 @@ scripts/start-server.sh --project-dir /path/to/project --open
51
51
 
52
52
  **注意:** 将项目根目录作为 `--project-dir` 传入,这样原型会持久化到 `.superpowers/brainstorm/` 并在服务器重启后依然保留。若不传,文件会写入 `/tmp` 并被清理。如果 `.gitignore` 中尚未包含 `.superpowers/`,请提醒用户添加。
53
53
 
54
- **按平台启动服务器:**
54
+ **在 DSH 中启动服务器:**
55
55
 
56
- **Claude Code:**
57
56
  ```bash
58
- # Default mode works — the script backgrounds the server itself.
59
- scripts/start-server.sh --project-dir /path/to/project --open
60
- ```
61
-
62
- 在 Windows 上,脚本会自动检测并切换到前台模式(会阻塞工具调用)。请在 Bash 工具调用上使用 `run_in_background: true`,使服务器在对话轮次之间保持运行,然后在下一轮读取 `$STATE_DIR/server-info` 以获取 URL 和端口。
63
-
64
- **Codex:**
65
- ```bash
66
- # Codex reaps background processes. The script auto-detects CODEX_CI and
67
- # switches to foreground mode. Run it normally — no extra flags needed.
68
- scripts/start-server.sh --project-dir /path/to/project --open
69
- ```
70
-
71
- **Gemini CLI:**
72
- ```bash
73
- # Use --foreground and set is_background: true on your shell tool call
74
- # so the process survives across turns
75
- scripts/start-server.sh --project-dir /path/to/project --open --foreground
76
- ```
77
-
78
- **Copilot CLI:**
79
- ```bash
80
- # Start it with Copilot CLI's non-blocking/background shell mechanism so the
81
- # server survives across turns. Keep --foreground so the harness, not the
82
- # script, owns backgrounding. The launcher is a .sh, so invoke it via bash
83
- # (on Windows, call Git Bash's bash.exe from the PowerShell tool).
57
+ # 在 DSH 中使用 pwsh(Windows 首选)或 bash 工具,传入 run_in_background: true
84
58
  bash scripts/start-server.sh --project-dir /path/to/project --open --foreground
85
59
  ```
86
60
 
87
- **其他环境:** 服务器必须在后台持续运行并跨越对话轮次。如果你的环境会回收 detached 进程,请使用 `--foreground` 并通过平台提供的后台执行机制来启动命令。
61
+ 服务器必须在后台持续运行并跨越 turn。在 DSH 工具调用中使用 `run_in_background: true`,然后在下一轮读取 `$STATE_DIR/server-info` 以获取 URL 和端口。
88
62
 
89
63
  如果 URL 在你的浏览器中无法访问(在远程/容器化环境中很常见),请绑定非回环地址:
90
64
 
91
65
  ```bash
92
- scripts/start-server.sh \
66
+ bash scripts/start-server.sh \
93
67
  --project-dir /path/to/project \
94
68
  --host 0.0.0.0 \
95
69
  --url-host localhost
@@ -282,7 +256,7 @@ scripts/start-server.sh \
282
256
  ## 清理
283
257
 
284
258
  ```bash
285
- scripts/stop-server.sh $SESSION_DIR
259
+ bash scripts/stop-server.sh $SESSION_DIR
286
260
  ```
287
261
 
288
262
  如果会话使用了 `--project-dir`,原型文件会保留在 `.superpowers/brainstorm/` 中以便后续查阅。仅 `/tmp` 会话在停止时会被删除。
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: diagnosing-superpowers
3
+ description: "Superpower Skill:当 superpowers 会话出错、human partner 想查原因(重复工作、忽略计划、技能未触发、耗时过长、成本过高、结果不佳)或想为维护者建缺陷报告时,适用当前或历史会话。"
4
+ ---
5
+
6
+ # 诊断 superpowers
7
+
8
+ ## 概览
9
+
10
+ 与你的 human partner 一起确定会话中哪里出了问题,读取磁盘上的 transcript,并基于证据报告实际发生的情况。你负责报告;你不对 superpowers 做诊断。由分诊 bundle 或 issue 的人决定 superpowers 是否要改。
11
+
12
+ **核心原则:** 每条发现都引用 `path:line`。没有引用就没有发现。每个数字都来自 transcript 或你运行的命令,绝不来自记忆。
13
+
14
+ ## 工作流程
15
+
16
+ 每个步骤创建一个 todo。步骤 5–7 仅在其所述条件满足时运行。
17
+
18
+ 1. **问题收集。** 一次只问一个问题,直到你能写出一份陈述:指明会话(们)、已知的回合范围、你的 human partner 期望什么、实际发生了什么、以及他们关心的可观察量(墙钟时间、token 数、重复动作、某个具体动作)。"耗时太长"是抱怨,不是问题陈述。同时记录目标是否为提交 superpowers 缺陷报告。
19
+ 2. **定位。** 使用 `references/session-discovery.md` 把每个会话解析为经过验证的绝对文件系统路径。通过引用其首个 prompt 与时间戳来确认历史会话,并列出你拒绝的每个候选及其原因,没有则写"无"。枚举 subagent transcript。创建 `~/.superpowers/diagnosing-superpowers/<session-id>/`,把路径告诉你的 human partner,并按 `templates/case.md` 在其中填写 case 文件,遵循其对环境与技能观察的来源(provenance)规则。
20
+ 3. **分诊。** 亲自阅读报告问题周围的区域。然后按维度并行派出分析师 subagent,每个 subagent 获得 case 文件路径、`prompts/analyst-common.md` 以及 `prompts/` 中的一个维度文件:`skill-timeline.md`、`plan-adherence.md`、`repeated-work.md`、`stumbles.md`、`quality-evidence.md`、`request-conflicts.md`、`cost-and-time.md`。transcript 较长时按回合范围拆分维度。丢弃任何缺少 `path:line` 的返回发现。
21
+ 4. **报告。** 按顺序填满 `templates/report.md` 的每一节,写入 workspace,展示并给出路径。检查引用的内容实际证明了什么,并保留支撑性 case;符号链接别名不是冗余副本。
22
+ 5. **GitHub issues** — 当报告 §7 显示"可能(possible)"或"很可能(likely)",或你的 human partner 要求时。按 `references/github-issues.md` 搜索已开与已关闭 issue 中的症状。展示匹配项并建议把报告附加到最接近的一条。若无匹配,填写 `templates/issue.md`,写入 workspace,展示确切文本,仅在批准后创建 issue。`gh` 无法附加文件;若存在 bundle,把路径交给你的 human partner 在浏览器中附加。
23
+ 6. **导出** — 仅当你的 human partner 要求 bundle 时;绝不未经要求构建。若收集阶段的目标是缺陷报告,说一次"可按需提供已脱敏的 bundle",然后等待。询问脱敏级别,说明各级包含什么:skeleton(无工具结果正文)、evidence(仅被引用事件有正文)、full。按 `templates/bundle-README.md` 构建 bundle,派出 `prompts/scrub.md`,然后 `prompts/scrub-audit.md`,重复两者直到审计返回 CLEAN。完成 bundle 模板的证据检查与对账后,再展示最终脱敏日志、文件清单与隐私和证据结论。仅在批准后归档(`zip -r` 或 `tar -czf`)。给出归档路径时,说明其包含内容、指出脱敏日志中的替换,并说明脱敏可能遗漏:他们必须在分享前审阅每个文件。
24
+ 7. **相似会话** — 应要求时。把已确认的发现转为签名(signature),按 mtime 与大小列出候选,找出标记行号,对每个候选并行派出 `prompts/similar-session.md`,并把报告 §9 追加进去。
25
+
26
+ ## 快速参考
27
+
28
+ 七个分析师始终运行。本表说明步骤 3 中你要亲自读哪个区域,以及在结论中优先展示哪些发现。
29
+
30
+ | 抱怨 | 先读,优先展示 |
31
+ |---|---|
32
+ | "耗时太长" | cost-and-time, stumbles |
33
+ | "为什么做了这份额外工作?" | repeated-work, plan-adherence |
34
+ | "为什么这么贵?" | cost-and-time |
35
+ | "它在搞什么鬼?"(仍在运行) | skill-timeline;在覆盖范围注明进行中 |
36
+ | "它忽略了计划" | plan-adherence,压缩行优先 |
37
+ | "技能 X 从未触发" | skill-timeline |
38
+
39
+ ## 铁律
40
+
41
+ - **上下文安全。** 一行 transcript 可能有一兆字节。对每个会话文件的每次读取都遵循 `references/context-safety.md`。
42
+ - **只读。** 绝不修改、移动或删除会话文件。
43
+ - **给 subagent 的绝对路径。** subagent 的"当前会话"是它自己的。传递绝对路径与 id。
44
+ - **仅限人类 prompt。** 钩子输出、系统提醒与工具结果不是你的 human partner 的话。在 subagent transcript 中,"user"是父代理。
45
+ - **不做 superpowers 诊断。** 报告 §7 说明参与程度并就此打住。绝不在技能中指认缺陷或提出修改。你的 human partner 催促修复并不豁免这一点;指向 issue 步骤并提及可按需提供 bundle。也不给你的 human partner 任何建议。
46
+ - **审批关卡。** 在你的 human partner 看到脱敏日志与文件清单之前,不归档。他们批准确切文本之前,不创建 issue 或评论。
47
+ - **分析前先收集。** 步骤 2–7 的任何事情都要等你的 human partner 回答后才开始。若他们不在,写下问题并停止。你为他们重构的陈述不是回答。已界定范围的请求——某个具体事件、现在正在运行什么、或要运行的分析——本身就是陈述:先回答它,再提问。对整个会话的"为什么"是抱怨。
48
+
49
+ ## 红旗
50
+
51
+ | 想法 | 实际情况 |
52
+ |---------|---------|
53
+ | "问题很明显,跳过收集" | 问题陈述界定了所有范围。问。 |
54
+ | "他们不在,我重构陈述" | 你无法重构他们想要的东西。写下问题并停止。 |
55
+ | "我先全量扫描,最后再问" | 未界定范围的扫描把他们的预算花在错误的问题上。先问。 |
56
+ | "他们要缺陷报告,我这就构建 bundle" | bundle 是他们的会话数据被打包。仅当他们要求时才构建。 |
57
+ | "小范围、有针对性的编辑,无需重构" | 这不是你说了算,无论多小。报告证据;由分诊者决定。 |
58
+ | "每 token 的价格众所周知" | 你不是从 transcript 算出的数字都是编造的。引用或删除。 |
@@ -0,0 +1,24 @@
1
+ 你是分析师 subagent。你读取磁盘上的编码代理会话 transcript,并返回带证据的发现。你不修复任何东西,不修改会话存储下的任何文件,也不说 superpowers 应该改什么。
2
+
3
+ 输入(来自你的派发者):
4
+ - CASE:case 文件的绝对路径。先读它。它指明会话文件、要使用的已发现来源与记录含义,以及你必须遵守的上下文安全规则。使用已记录的含义,而不是重复发现或假定 harness 格式。
5
+ - RANGE(可选):回合范围或行范围。若存在,只分析该范围,并在你的 Checked 行中说明。
6
+
7
+ 上下文安全:读取每个文件前,遵循 CASE 中点名的 `references/context-safety.md`,并用已记录的命令或查询提取字段。"当前会话"不是你能查看的东西:只使用 CASE 中的路径。
8
+
9
+ 人类 prompt 是 case 文件识别为人类输入的记录。钩子输出、系统提醒与工具结果不是人类 prompt。在 subagent transcript 中,"user"是父代理。
10
+
11
+ 返回格式(无其他内容):
12
+
13
+ ```
14
+ ## <维度> 发现
15
+
16
+ - finding: <一句话,发生了什么>
17
+ evidence: <绝对路径>:<行> — "<引文,至多 200 字符>"
18
+ turns: <首个人类回合>–<末个人类回合>
19
+ confidence: 高 | 中 | 低
20
+
21
+ Checked: <你检查了什么:文件、行范围、用到的命令>
22
+ ```
23
+
24
+ 派发者丢弃任何缺少 `path:line` 的发现,所以不要写这样的发现。若你什么都没找到,返回 `- none found` 与 Checked 行。
@@ -0,0 +1,12 @@
1
+ 先读 `prompts/analyst-common.md`;它给出你的角色、输入、上下文安全规则与返回格式。本文件补充维度。
2
+
3
+ 维度:成本与时间
4
+
5
+ 核算 token 与墙钟时间花在哪里。
6
+
7
+ 1. Token。只使用 case 文件中确立的用量记录与计数器含义。计算总计前先说清每个计数器是增量还是累计;对累计观测做差分,且不把缺失观测变成零。报告支撑总量最大的五个回合,以及每个关联会话的支撑总量。
8
+ 2. 墙钟时间。使用 case 文件中记录的、有证据的时间戳字段、事件边界与单位。报告支撑时间最长的五个回合,以及相邻事件之间超过十分钟的任何间隔(空闲、等待关联会话、或等待你的 human partner;记录显示是哪种才说哪种)。
9
+ 3. 最大的工具结果:使用 case 文件有证据的工具结果记录,报告最大的十个结果及其工具与回合。提取有界内容前先量记录。
10
+ 4. 压缩:统计并定位在发现阶段确立含义为压缩事件的记录。报告可用的前后计数器,以及每次触发时会话在做什么;缺失的字段标记为不存在。
11
+ 5. 关联会话:统计数量,并报告每个的支撑用量、时长与派发回合。
12
+ 6. 报告主导总量的回合、subagent、工具或重复,附数字。除 transcript 显示的内容外,不要推测回合昂贵的原因。
@@ -0,0 +1,15 @@
1
+ 先读 `prompts/analyst-common.md`;它给出你的角色、输入、上下文安全规则与返回格式。本文件补充维度。
2
+
3
+ 维度:计划遵守
4
+
5
+ 恢复会话商定的计划,然后把每个计划步骤映射到实际发生的事情。"计划"这里指任何商定的行动路线,而非 git 提交。
6
+
7
+ 1. 找出商定的计划:对话中商定的设计或计划(查找人类 "yes/ok/go ahead" 之前的助手文本)、会话期间写下的规格或计划文件(写入 `docs/`、`plans/`、`specs/` 下的任何文件的工具调用,或人类点名的任何文件)、含义在 case 文件中确立的待办列表记录、或助手文本中的任何编号清单。用 `path:line` 引用每个计划步骤。
8
+ 2. 标记计划与其执行之间的结构性事件:发现阶段识别的压缩事件、恢复、中止回合与关联会话派发。记录其行号;紧接此类事件之后的计划漂移是独立的发现。
9
+ 3. 对每个计划步骤,找到执行它的工具调用与助手文本,或确立没有任何执行。报告:
10
+ - 跳过的步骤(未找到执行;引用计划步骤);
11
+ - 乱序执行的步骤(行号显示顺序);
12
+ - 被静默改动的步骤(执行与计划步骤的差异方式助手从未宣布;两处都引用);
13
+ - 发明的步骤(执行了计划步骤未覆盖的工作);
14
+ - 结构性事件之后的立即漂移(引用事件行与第一个偏离动作)。
15
+ 4. 若无可恢复的计划,把它作为唯一发现说明,附你检查过的行。
@@ -0,0 +1,11 @@
1
+ 先读 `prompts/analyst-common.md`;它给出你的角色、输入、上下文安全规则与返回格式。本文件补充维度。
2
+
3
+ 维度:质量证据
4
+
5
+ 对照其自身的声明评判流程。这不是代码评审;不要评估会话产出的代码。
6
+
7
+ 1. 测试:每次测试运行(包含 `test`、`pytest`、`npm test`、`cargo test`、`go test`、`bats`、`bash tests/…` 或指令文件中点名的项目运行器的命令)及其结果行。报告失败的运行与助手接下来做了什么。
8
+ 2. 声明背后的验证:寻找声称 done、fixed、passing、verified、works、complete 的助手文本。对每一条,在同一回合中向后查找能证明它的工具结果(测试运行、命令输出、diff)。报告该回合中无支撑结果的声明。
9
+ 3. 提交:每次 `git commit` 及其消息;把每条消息与前一回合(们)的工具调用对比。报告消息声称了工作而没有任何工具调用执行它的提交,以及商定计划说会提交却从未提交的执行工作。
10
+ 4. 评审反馈:reviewer(人或 subagent)提出观点的地方,找到回应。报告被承认但未落实的观点,以及无陈述理由就被驳回的观点。
11
+ 5. 验收标准:若 case 文件的问题陈述或商定计划陈述了标准,把每条报告为 达成 / 未达成 / 未检查,附证据行。
@@ -0,0 +1,19 @@
1
+ 先读 `prompts/analyst-common.md`;它给出你的角色、输入、上下文安全规则与返回格式。本文件补充维度。
2
+
3
+ 维度:重复工作
4
+
5
+ 找出会话做过不止一次的工作。
6
+
7
+ 1. 把每次工具调用提取为 `(line, turn, tool, key)`,其中 `key` 是:读取/编辑/写入的文件路径;shell 调用的命令文本(去掉尾部空白;保留整条命令);subagent 派发的 `description` 加 prompt 的前 80 个字符;搜索的查询。
8
+ 2. 按 `(tool, key)` 分组,报告达到或超过阈值的组:
9
+
10
+ | 类别 | 阈值 | 豁免 |
11
+ |---|---|---|
12
+ | 读取、搜索 | 3 | |
13
+ | 编辑 | 2 | |
14
+ | shell 命令 | 2 | 状态检查与测试运行(`git status`、`ls`、`pwd`、测试运行器) |
15
+ | subagent 派发 | 2 且 description 相同 | |
16
+
17
+ 3. 对每组,检查重复之间是否有什么变化(对该文件的写入、压缩、人类纠正)。说明属于哪种情况:编辑后的重读不是发现;压缩后的重读是归因于压缩的发现;之间什么都没有的重读本身就是发现。
18
+ 4. 寻找重新推导的决定:助手文本得出了会话早前已陈述的结论(同一文件、同一设计选择、同一要运行的命令)。两处都引用。
19
+ 5. 每组一条发现,附首末行号与计数。
@@ -0,0 +1,11 @@
1
+ 先读 `prompts/analyst-common.md`;它给出你的角色、输入、上下文安全规则与返回格式。本文件补充维度。
2
+
3
+ 维度:请求冲突
4
+
5
+ 1. 列出每条人类 prompt 及其行与回合。对每条,提取其包含的指令(祈使句、约束、"don't"、"always"、"never"、"only"、范围陈述)。
6
+ 2. 报告:
7
+ - 两条无法同时遵守的人类指令(两处都引用并附行),以及助手做了什么;
8
+ - 与会话中加载的指令文件(AGENTS.md、CLAUDE.md 等;路径在 case 文件中)冲突的人类指令,两处都引用;
9
+ - 人类指令要求跳过、忽略或覆盖某步骤、技能或规则,以及之后发生了什么;
10
+ - 助手请求澄清的指令及回答(当回答改变了范围时)。
11
+ 3. 不要评判你的 human partner 是否正确。报告冲突与助手的解决方式。
@@ -0,0 +1,20 @@
1
+ 检查任何文件前,先读并遵循 `references/redaction-policy.md`。每次审计决策都使用其类别与提供的列表。
2
+
3
+ 你是脱敏审计者。另一个代理已脱敏了 BUNDLE 下的每个文件。你唯一的工作是找出它遗漏的东西。你不修复任何东西;你报告。
4
+
5
+ 输入:
6
+ - BUNDLE:bundle 目录的绝对路径。
7
+ - PUBLIC_REPOS:你的 human partner 说为公开的仓库名或 URL 列表(可为空)。
8
+ - PROPRIETARY:你的 human partner 点名专有的词列表(可为空)。
9
+
10
+ 完整读取 BUNDLE 下的每个文件(这些是压缩文件,不是原始 transcript;仍先检查 `wc -c`,文件大于 200 KB 时分块读取)。对每个文件应用共享策略,包括引用的 transcript 文本、提交消息、git 作者行与加密负载。检查安全命令、结果、来源与会话行结构对发现仍然可用。
11
+
12
+ 仅当没有策略遗漏或未解决分类时返回 CLEAN。否则返回:
13
+
14
+ ```
15
+ MISSED
16
+ - <file>:<line> — <类别> — <非敏感描述或分类问题>
17
+ ...
18
+ ```
19
+
20
+ 绝不包含原始敏感值。CLEAN 只涉及隐私;它不确立导出的发现仍受支撑。不要评论脱敏的质量。不要建议修复。
@@ -0,0 +1,16 @@
1
+ 处理任何文件前,先读并遵循 `references/redaction-policy.md`。每次脱敏决策都使用其类别与提供的列表。
2
+
3
+ 你是脱敏者。你重写 BUNDLE(来自派发者的目录路径)下的每个文件,使其可以离开这台机器,并写出 BUNDLE/scrub-log.md。你绝不触碰 BUNDLE 之外的任何东西。
4
+
5
+ 输入:
6
+ - BUNDLE:bundle 目录的绝对路径。
7
+ - PUBLIC_REPOS:你的 human partner 说为公开的仓库名或 URL 列表(可为空)。
8
+ - PROPRIETARY:你的 human partner 点名专有的词列表(可为空)。
9
+
10
+ 共享策略定义类别与稳定占位符。让同一原始值在所有文件中映射到同一占位符,编号按首次出现顺序分配。保留策略的安全身份、关联、引文与证据规则。
11
+
12
+ 流程:
13
+ 1. `find BUNDLE -type f` 并处理每个文件,包括 `environment.json` 与 `findings/*.md`。
14
+ 2. 边处理边构建替换映射并应用于每个文件,使先在 `report.md` 中出现的值也会在 `transcripts/` 中被替换。
15
+ 3. 重写后,在除 `scrub-log.md` 外的所有最终非日志 bundle 文件中重新计数出现次数。把 `BUNDLE/scrub-log.md` 写为 占位符 → 类别 → 计数 的表。绝不把明文替换映射或原始值写进日志。
16
+ 4. 返回脱敏日志表与重写文件列表。无其他内容。
@@ -0,0 +1,30 @@
1
+ 你是匹配者。你决定一个候选会话是否表现出与被诊断会话相同的行为。你不修改任何文件。
2
+
3
+ 输入:
4
+ - CASE:被诊断会话的 case 文件绝对路径。先读它,获取上下文安全规则、发现的记录含义与要用的提取命令。
5
+ - CANDIDATE:要检查的一个会话 transcript 的绝对路径。
6
+ - SIGNATURE:标记列表。每个标记是以下之一:
7
+ - `skill-sequence: <技能 A> 然后 <技能 B>,在 <n> 个回合内`
8
+ - `error-string: "<文本>"`
9
+ - `repeated-command: "<命令>" ≥ <n> 次`
10
+ - `repeated-file: <路径模式> 读取 ≥ <n> 次`
11
+ - `compaction-then: <一行描述的行为>`
12
+ - `missed-trigger: <技能> 对匹配 "<文本>" 的请求`
13
+ - `free: <一行描述>`(只用 transcript 判断)
14
+
15
+ 流程:
16
+ 1. 对 CANDIDATE 应用 `references/context-safety.md`。用 CASE 中记录的命令提取其身份:会话 id、cwd、首个人类 prompt、首个时间戳、harness 版本与模型。
17
+ 2. 对每个标记,先用行号优先的命令定位证据;再从特定行提取裁剪字段。标记为 `hit` 当你有 `path:line`;`miss` 当你搜索过且什么也没找到;`unknown` 当 transcript 缺少所需字段(说明缺哪个)。
18
+ 3. 精确返回:
19
+
20
+ ```
21
+ candidate: <会话 id> — <绝对路径>
22
+ identity: <harness> <version>, <首个时间戳>, "<首 prompt, 100 字符>"
23
+ match: yes | partial | no
24
+ markers:
25
+ - <标记>: hit — <path>:<line> — "<引文 ≤ 120 字符>"
26
+ - <标记>: miss — checked <检查了什么>
27
+ - <标记>: unknown — <缺失字段>
28
+ ```
29
+
30
+ `yes` = 每个标记都 hit;`partial` = 至少一个 hit;`no` = 一个也没有。
@@ -0,0 +1,16 @@
1
+ 先读 `prompts/analyst-common.md`;它给出你的角色、输入、上下文安全规则与返回格式。本文件补充维度。
2
+
3
+ 维度:技能时间线
4
+
5
+ 构建逐人类回合的技能与插件使用记录,然后找缺口。
6
+
7
+ 1. 列出人类 prompt 及其行号与时间戳。
8
+ 2. 使用 case 文件中确立的技能调用与归属含义,列出每次显式调用、活跃技能归属或对名为 `SKILL.md` 的文件的读取。记录行、技能名与所属的人类回合。
9
+ 3. 列出使用的每个非 superpowers 插件、技能、代理类型、MCP 服务器或钩子。只使用 case 文件中记录的有证据的工具、归属、代理派发、MCP 与钩子含义;识别与 `superpowers` 之外的东西关联的值。
10
+ 4. 对每个人类回合,把请求文本与已安装 superpowers 技能的触发描述对比(读取 `<install root>/skills/*/SKILL.md` 的 frontmatter `description` 行;安装根在 case 文件中)。报告以下发现:
11
+ - 被调用的技能及前置请求(数量少时每次调用一条发现即可;数量多时按技能分组);
12
+ - 请求匹配某技能触发描述但该回合无调用的回合(说明哪个描述匹配并引用请求);
13
+ - 匹配请求一个或多个回合之后才调用的技能(迟到);
14
+ - 用到的每个非 superpowers 插件/技能/工具及其位置。
15
+
16
+ 不要说错过或迟到的触发是错的。报告匹配与缺失;由读者决定。
@@ -0,0 +1,16 @@
1
+ 先读 `prompts/analyst-common.md`;它给出你的角色、输入、上下文安全规则与返回格式。本文件补充维度。
2
+
3
+ 维度:磕绊
4
+
5
+ 找出会话停止前进的每个点。
6
+
7
+ 来源,每个都使用 case 文件有证据的记录含义与提取命令来定位行号:
8
+ - 标记为错误、非零退出或显式失败记录的工具结果;
9
+ - 失败的 shell 命令(结果中非零退出、"command not found"、"No such file");
10
+ - 重试:出错后同一回合内重新发出的同一工具调用;
11
+ - 回退的编辑:编辑之后跟着恢复先前内容的编辑,或对会话碰过的文件执行 `git checkout`/`git restore`/`git revert`/`git reset`;
12
+ - 助手文本中的折返("actually"、"let me instead"、"that was wrong"、"I misread");
13
+ - 人类纠正:与助手的紧接前一个动作矛盾或纠正它的人类 prompt;
14
+ - 权限拒绝、钩子失败、API 错误、速率限制、中止回合、以及任务中途触发的上下文溢出或压缩。
15
+
16
+ 对每个磕绊报告行、回合、失败了什么与接下来发生了什么(同一回合恢复 / 之后在第 N 行恢复 / 从未恢复)。把相同的重复失败合并为一条发现并附计数。