@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.
- package/README.md +30 -24
- package/lib/catalog.d.ts +83 -0
- package/lib/catalog.d.ts.map +1 -0
- package/lib/catalog.js +231 -0
- package/lib/catalog.js.map +1 -0
- package/lib/document.d.ts +52 -0
- package/lib/document.d.ts.map +1 -0
- package/lib/document.js +196 -0
- package/lib/document.js.map +1 -0
- package/lib/superpowers.d.ts +9 -2
- package/lib/superpowers.d.ts.map +1 -1
- package/lib/superpowers.js +33 -253
- package/lib/superpowers.js.map +1 -1
- package/package.json +4 -4
- package/skills/{superpower-brainstorming → brainstorming}/SKILL.md +51 -35
- package/skills/{superpower-brainstorming → brainstorming}/scripts/server.cjs +6 -14
- package/skills/{superpower-brainstorming → brainstorming}/scripts/start-server.sh +1 -6
- package/skills/{superpower-brainstorming → brainstorming}/spec-document-reviewer-prompt.md +4 -4
- package/skills/{superpower-brainstorming → brainstorming}/visual-companion.md +8 -34
- package/skills/diagnosing-superpowers/SKILL.md +58 -0
- package/skills/diagnosing-superpowers/prompts/analyst-common.md +24 -0
- package/skills/diagnosing-superpowers/prompts/cost-and-time.md +12 -0
- package/skills/diagnosing-superpowers/prompts/plan-adherence.md +15 -0
- package/skills/diagnosing-superpowers/prompts/quality-evidence.md +11 -0
- package/skills/diagnosing-superpowers/prompts/repeated-work.md +19 -0
- package/skills/diagnosing-superpowers/prompts/request-conflicts.md +11 -0
- package/skills/diagnosing-superpowers/prompts/scrub-audit.md +20 -0
- package/skills/diagnosing-superpowers/prompts/scrub.md +16 -0
- package/skills/diagnosing-superpowers/prompts/similar-session.md +30 -0
- package/skills/diagnosing-superpowers/prompts/skill-timeline.md +16 -0
- package/skills/diagnosing-superpowers/prompts/stumbles.md +16 -0
- package/skills/diagnosing-superpowers/references/context-safety.md +14 -0
- package/skills/diagnosing-superpowers/references/github-issues.md +39 -0
- package/skills/diagnosing-superpowers/references/redaction-policy.md +22 -0
- package/skills/diagnosing-superpowers/references/session-discovery.md +20 -0
- package/skills/diagnosing-superpowers/templates/bundle-README.md +51 -0
- package/skills/diagnosing-superpowers/templates/case.md +57 -0
- package/skills/diagnosing-superpowers/templates/issue.md +45 -0
- package/skills/diagnosing-superpowers/templates/report.md +76 -0
- package/skills/{superpower-dispatching-parallel-agents → dispatching-parallel-agents}/SKILL.md +31 -31
- package/skills/executing-plans/SKILL.md +227 -0
- package/skills/executing-plans/scripts/task-done +52 -0
- package/skills/executing-plans/scripts/task-start +28 -0
- package/skills/{superpower-finishing-a-development-branch → finishing-a-development-branch}/SKILL.md +18 -18
- package/skills/{superpower-receiving-code-review → receiving-code-review}/SKILL.md +39 -39
- package/skills/{superpower-requesting-code-review → requesting-code-review}/SKILL.md +11 -11
- package/skills/{superpower-requesting-code-review → requesting-code-review}/code-reviewer.md +15 -7
- package/skills/subagent-driven-development/SKILL.md +355 -0
- package/skills/{superpower-subagent-driven-development → subagent-driven-development}/implementer-prompt.md +10 -10
- package/skills/subagent-driven-development/re-review-prompt.md +83 -0
- package/skills/{superpower-subagent-driven-development → subagent-driven-development}/scripts/review-package +8 -1
- package/skills/subagent-driven-development/scripts/sdd-workspace +82 -0
- package/skills/{superpower-subagent-driven-development → subagent-driven-development}/scripts/task-brief +3 -1
- package/skills/{superpower-subagent-driven-development → subagent-driven-development}/task-reviewer-prompt.md +27 -27
- package/skills/{superpower-systematic-debugging → systematic-debugging}/CREATION-LOG.md +9 -9
- package/skills/{superpower-systematic-debugging → systematic-debugging}/SKILL.md +8 -8
- package/skills/{superpower-systematic-debugging → systematic-debugging}/condition-based-waiting.md +9 -9
- package/skills/{superpower-systematic-debugging → systematic-debugging}/defense-in-depth.md +1 -1
- package/skills/{superpower-systematic-debugging → systematic-debugging}/find-polluter.sh +4 -4
- package/skills/{superpower-systematic-debugging → systematic-debugging}/root-cause-tracing.md +2 -2
- package/skills/{superpower-systematic-debugging → systematic-debugging}/test-pressure-1.md +1 -1
- package/skills/{superpower-systematic-debugging → systematic-debugging}/test-pressure-3.md +1 -1
- package/skills/{superpower-test-driven-development → test-driven-development}/SKILL.md +16 -14
- package/skills/{superpower-test-driven-development → test-driven-development}/writing-good-tests.md +29 -29
- package/skills/{superpower-using-git-worktrees → using-git-worktrees}/SKILL.md +12 -12
- package/skills/{superpower-using-superpowers → using-superpowers}/SKILL.md +8 -12
- package/skills/{superpower-using-superpowers → using-superpowers}/references/dsh-tools.md +8 -8
- package/skills/{superpower-verification-before-completion → verification-before-completion}/SKILL.md +17 -17
- package/skills/writing-plans/SKILL.md +167 -0
- package/skills/{superpower-writing-skills → writing-skills}/SKILL.md +75 -73
- package/skills/{superpower-writing-skills → writing-skills}/persuasion-principles.md +10 -10
- package/skills/{superpower-writing-skills → writing-skills}/testing-skills-with-subagents.md +53 -53
- package/skills/superpower-executing-plans/SKILL.md +0 -64
- package/skills/superpower-subagent-driven-development/SKILL.md +0 -347
- package/skills/superpower-subagent-driven-development/re-review-prompt.md +0 -83
- package/skills/superpower-subagent-driven-development/scripts/sdd-workspace +0 -40
- package/skills/superpower-using-superpowers/references/antigravity-tools.md +0 -23
- package/skills/superpower-using-superpowers/references/codex-tools.md +0 -108
- package/skills/superpower-using-superpowers/references/gemini-tools.md +0 -63
- package/skills/superpower-using-superpowers/references/hermes-tools.md +0 -56
- package/skills/superpower-using-superpowers/references/pi-tools.md +0 -16
- package/skills/superpower-writing-plans/SKILL.md +0 -160
- package/skills/superpower-writing-plans/plan-document-reviewer-prompt.md +0 -49
- package/skills/superpower-writing-skills/anthropic-best-practices.md +0 -1146
- package/skills/superpower-writing-skills/examples/CLAUDE_MD_TESTING.md +0 -188
- /package/skills/{superpower-brainstorming → brainstorming}/scripts/frame-template.html +0 -0
- /package/skills/{superpower-brainstorming → brainstorming}/scripts/helper.js +0 -0
- /package/skills/{superpower-brainstorming → brainstorming}/scripts/stop-server.sh +0 -0
- /package/skills/{superpower-systematic-debugging → systematic-debugging}/condition-based-waiting-example.ts +0 -0
- /package/skills/{superpower-systematic-debugging → systematic-debugging}/test-academic.md +0 -0
- /package/skills/{superpower-systematic-debugging → systematic-debugging}/test-pressure-2.md +0 -0
- /package/skills/{superpower-writing-skills → writing-skills}/graphviz-conventions.dot +0 -0
- /package/skills/{superpower-writing-skills → writing-skills}/render-graphs.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description: "
|
|
2
|
+
name: writing-skills
|
|
3
|
+
description: "Superpower Skill:在创建新技能、编辑或重构现有技能,以及在部署前验证技能可用性、合规性与实际生效情况时使用。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# 技能编写
|
|
@@ -9,19 +9,19 @@ description: "在创建新技能、编辑或重构现有技能,以及在部署
|
|
|
9
9
|
|
|
10
10
|
**编写技能就是将测试驱动开发应用于流程文档。**
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**个人技能存放于 DSH 的技能目录**:全局技能为 `~/.dsh/skills/`,项目级技能为 `<project>/.dsh/skills/`,亦可通过 DSH bundle 插件(`cordis.patch.yml` 注入 `ctx.skills`)分发提供。详细工具映射请参见 [dsh-tools.md](../using-superpowers/references/dsh-tools.md)。
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
你编写测试用例(带 subagent 的压力场景)、观察其失败(基线行为)、编写技能(文档)、观察测试通过(agent 已遵守)、再进行重构(堵住漏洞)。
|
|
15
15
|
|
|
16
|
-
**核心原则:**
|
|
16
|
+
**核心原则:** 如果你没有亲眼看到 agent 在没有技能的情况下失败,你就无法判断技能是否真正教会了正确的内容。
|
|
17
17
|
|
|
18
|
-
**必备前置知识:** 使用本技能前,你必须理解
|
|
18
|
+
**必备前置知识:** 使用本技能前,你必须理解 test-driven-development。该技能定义了基本的 红-绿-重构 循环,本技能则是将 TDD 适配到文档编写上。
|
|
19
19
|
|
|
20
|
-
**官方指引:** 关于
|
|
20
|
+
**官方指引:** 关于 DSH 平台技能的标准与工具规范,请参见 [dsh-tools.md](../using-superpowers/references/dsh-tools.md)。本文档在以 TDD 为核心的方法之外,提供了额外的模式与指南作为补充。
|
|
21
21
|
|
|
22
22
|
## 什么是技能?
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
**技能**是用于已被验证有效的技巧、模式或工具的参考指南。技能帮助未来的 agent 快速找到并应用高效方法。
|
|
25
25
|
|
|
26
26
|
**技能是:** 可复用的技巧、模式、工具、参考指南
|
|
27
27
|
|
|
@@ -31,15 +31,15 @@ description: "在创建新技能、编辑或重构现有技能,以及在部署
|
|
|
31
31
|
|
|
32
32
|
| TDD 概念 | 技能创建 |
|
|
33
33
|
|-------------|----------------|
|
|
34
|
-
| **测试用例** |
|
|
34
|
+
| **测试用例** | 带 subagent 的压力场景 |
|
|
35
35
|
| **生产代码** | 技能文档(SKILL.md) |
|
|
36
|
-
| **测试失败(红)** |
|
|
37
|
-
| **测试通过(绿)** |
|
|
36
|
+
| **测试失败(红)** | agent 在无技能情况下违反规则(基线) |
|
|
37
|
+
| **测试通过(绿)** | agent 在有技能情况下遵守规则 |
|
|
38
38
|
| **重构** | 在保持合规的前提下堵住漏洞 |
|
|
39
39
|
| **先写测试** | 在编写技能之前先运行基线场景 |
|
|
40
|
-
| **观察失败** |
|
|
40
|
+
| **观察失败** | 记录 agent 使用的确切辩解话术 |
|
|
41
41
|
| **最小化代码** | 编写针对性解决上述违规行为的技能 |
|
|
42
|
-
| **观察通过** |
|
|
42
|
+
| **观察通过** | 验证 agent 现在已遵守规则 |
|
|
43
43
|
| **重构循环** | 发现新的辩解话术 → 堵住 → 重新验证 |
|
|
44
44
|
|
|
45
45
|
整个技能创建过程遵循 红-绿-重构 循环。
|
|
@@ -139,11 +139,11 @@ description: Use when [具体的触发条件与症状]
|
|
|
139
139
|
|
|
140
140
|
## 技能发现优化(SDO)
|
|
141
141
|
|
|
142
|
-
**对发现至关重要:**
|
|
142
|
+
**对发现至关重要:** 未来的 agent 需要能够找到你的技能
|
|
143
143
|
|
|
144
144
|
### 1. 丰富的 Description 字段
|
|
145
145
|
|
|
146
|
-
**目的:**
|
|
146
|
+
**目的:** 你的 agent 会读取 description 来判断当前任务是否需要加载某个技能。要让它能回答:"我现在该读这个技能吗?"
|
|
147
147
|
|
|
148
148
|
**格式:** 以 "Use when..." 开头,聚焦触发条件
|
|
149
149
|
|
|
@@ -151,23 +151,23 @@ description: Use when [具体的触发条件与症状]
|
|
|
151
151
|
|
|
152
152
|
description 应仅描述触发条件,不要概括技能的流程或工作流。
|
|
153
153
|
|
|
154
|
-
**为什么这很重要:** 测试发现,当 description
|
|
154
|
+
**为什么这很重要:** 测试发现,当 description 概括了技能的工作流时,agent 可能会直接沿用 description 的描述,而不再阅读完整的技能内容。一个写着「code review between tasks」的 description 曾导致 agent 只做了一次审查,尽管技能中的流程图明确展示了两次审查(先合规性审查,再代码质量审查)。
|
|
155
155
|
|
|
156
|
-
当 description 被改为仅保留「Use when executing implementation plans with independent tasks
|
|
156
|
+
当 description 被改为仅保留「Use when executing implementation plans with independent tasks」(不含工作流概括)后,agent 才正确读取了流程图,并执行了两阶段审查流程。
|
|
157
157
|
|
|
158
|
-
**陷阱:** 概括工作流的 description
|
|
158
|
+
**陷阱:** 概括工作流的 description 会成为 agent 走捷径的入口,技能正文反而被跳过。
|
|
159
159
|
|
|
160
160
|
```yaml
|
|
161
|
-
#
|
|
161
|
+
# [FAIL] 错误:概括了工作流——agent 可能直接照做而不读技能正文
|
|
162
162
|
description: Use when executing plans - dispatches subagent per task with code review between tasks
|
|
163
163
|
|
|
164
|
-
#
|
|
164
|
+
# [FAIL] 错误:过多流程细节
|
|
165
165
|
description: Use for TDD - write test first, watch it fail, write minimal code, refactor
|
|
166
166
|
|
|
167
|
-
#
|
|
167
|
+
# [OK] 正确:仅包含触发条件,不概括工作流
|
|
168
168
|
description: Use when executing implementation plans with independent tasks in the current session
|
|
169
169
|
|
|
170
|
-
#
|
|
170
|
+
# [OK] 正确:仅包含触发条件
|
|
171
171
|
description: Use when implementing any feature or bugfix, before writing implementation code
|
|
172
172
|
```
|
|
173
173
|
|
|
@@ -180,25 +180,25 @@ description: Use when implementing any feature or bugfix, before writing impleme
|
|
|
180
180
|
- **切勿概括技能的流程或工作流**
|
|
181
181
|
|
|
182
182
|
```yaml
|
|
183
|
-
#
|
|
183
|
+
# [FAIL] 错误:过于抽象、模糊,未说明何时使用
|
|
184
184
|
description: For async testing
|
|
185
185
|
|
|
186
|
-
#
|
|
186
|
+
# [FAIL] 错误:第一人称
|
|
187
187
|
description: I can help you with async tests when they're flaky
|
|
188
188
|
|
|
189
|
-
#
|
|
189
|
+
# [FAIL] 错误:提到了技术,但技能本身并不面向该技术
|
|
190
190
|
description: Use when tests use setTimeout/sleep and are flaky
|
|
191
191
|
|
|
192
|
-
#
|
|
192
|
+
# [OK] 正确:以 "Use when" 开头,描述问题,不含工作流
|
|
193
193
|
description: Use when tests have race conditions, timing dependencies, or pass/fail inconsistently
|
|
194
194
|
|
|
195
|
-
#
|
|
195
|
+
# [OK] 正确:面向特定技术的技能,触发条件明确
|
|
196
196
|
description: Use when using React Router and handling authentication redirects
|
|
197
197
|
```
|
|
198
198
|
|
|
199
199
|
### 2. 关键词覆盖
|
|
200
200
|
|
|
201
|
-
|
|
201
|
+
使用 agent 会搜索的词语:
|
|
202
202
|
- 错误信息:"Hook timed out"、"ENOTEMPTY"、"race condition"
|
|
203
203
|
- 症状:"flaky"、"hanging"、"zombie"、"pollution"
|
|
204
204
|
- 同义词:"timeout/hang/freeze"、"cleanup/teardown/afterEach"
|
|
@@ -207,8 +207,8 @@ description: Use when using React Router and handling authentication redirects
|
|
|
207
207
|
### 3. 描述性命名
|
|
208
208
|
|
|
209
209
|
**使用主动语态、动词优先:**
|
|
210
|
-
-
|
|
211
|
-
-
|
|
210
|
+
- [OK] `creating-skills` 而非 `skill-creation`
|
|
211
|
+
- [OK] `condition-based-waiting` 而非 `async-test-helpers`
|
|
212
212
|
|
|
213
213
|
### 4. Token 效率(关键)
|
|
214
214
|
|
|
@@ -223,31 +223,31 @@ description: Use when using React Router and handling authentication redirects
|
|
|
223
223
|
|
|
224
224
|
**将细节移至工具帮助中:**
|
|
225
225
|
```bash
|
|
226
|
-
#
|
|
226
|
+
# [FAIL] 错误:在 SKILL.md 中罗列所有参数
|
|
227
227
|
search-conversations supports --text, --both, --after DATE, --before DATE, --limit N
|
|
228
228
|
|
|
229
|
-
#
|
|
229
|
+
# [OK] 正确:引用 --help
|
|
230
230
|
search-conversations 支持多种模式和过滤条件。运行 --help 查看详情。
|
|
231
231
|
```
|
|
232
232
|
|
|
233
233
|
**使用交叉引用:**
|
|
234
234
|
```markdown
|
|
235
|
-
#
|
|
235
|
+
# [FAIL] 错误:重复工作流细节
|
|
236
236
|
When searching, dispatch subagent with template...
|
|
237
237
|
[20 行重复说明]
|
|
238
238
|
|
|
239
|
-
#
|
|
240
|
-
|
|
239
|
+
# [OK] 正确:引用其他技能
|
|
240
|
+
始终使用 subagent(可节省 50-100 倍上下文)。必需:工作流请使用 [other-skill-name]。
|
|
241
241
|
```
|
|
242
242
|
|
|
243
243
|
**压缩示例:**
|
|
244
244
|
```markdown
|
|
245
|
-
#
|
|
245
|
+
# [FAIL] 错误:冗长示例(42 词)
|
|
246
246
|
your human partner: "How did we handle authentication errors in React Router before?"
|
|
247
247
|
You: I'll search past conversations for React Router authentication patterns.
|
|
248
248
|
[Dispatch subagent with search query: "React Router authentication error handling 401"]
|
|
249
249
|
|
|
250
|
-
#
|
|
250
|
+
# [OK] 正确:精简示例(20 词)
|
|
251
251
|
Partner: "How did we handle auth errors in React Router?"
|
|
252
252
|
You: Searching...
|
|
253
253
|
[Dispatch subagent → synthesis]
|
|
@@ -266,10 +266,10 @@ wc -w skills/path/SKILL.md
|
|
|
266
266
|
```
|
|
267
267
|
|
|
268
268
|
**按功能或核心洞察命名:**
|
|
269
|
-
-
|
|
270
|
-
-
|
|
271
|
-
-
|
|
272
|
-
-
|
|
269
|
+
- [OK] `condition-based-waiting` > `async-test-helpers`
|
|
270
|
+
- [OK] `using-skills` 而非 `skill-usage`
|
|
271
|
+
- [OK] `flatten-with-flags` > `data-structure-refactoring`
|
|
272
|
+
- [OK] `root-cause-tracing` > `debugging-techniques`
|
|
273
273
|
|
|
274
274
|
**动名词(-ing)适合描述过程:**
|
|
275
275
|
- `creating-skills`、`testing-skills`、`debugging-with-logs`
|
|
@@ -280,10 +280,10 @@ wc -w skills/path/SKILL.md
|
|
|
280
280
|
**在编写引用其他技能的文档时:**
|
|
281
281
|
|
|
282
282
|
仅使用技能名称,并加上明确的必要性标记:
|
|
283
|
-
-
|
|
284
|
-
-
|
|
285
|
-
-
|
|
286
|
-
-
|
|
283
|
+
- [OK] 正确:`**REQUIRED SUB-SKILL:** Use test-driven-development`
|
|
284
|
+
- [OK] 正确:`**REQUIRED BACKGROUND:** You MUST understand systematic-debugging`
|
|
285
|
+
- [FAIL] 错误:`See skills/testing/test-driven-development`(是否必需不明确)
|
|
286
|
+
- [FAIL] 错误:`@skills/testing/test-driven-development/SKILL.md`(会强制加载,浪费上下文)
|
|
287
287
|
|
|
288
288
|
**为什么不要使用 @ 链接:** `@` 语法会立即强制加载文件,在你真正需要之前就消耗掉 20 万以上的上下文。
|
|
289
289
|
|
|
@@ -315,10 +315,10 @@ digraph when_flowchart {
|
|
|
315
315
|
|
|
316
316
|
风格规则见本目录下的 `graphviz-conventions.dot`。
|
|
317
317
|
|
|
318
|
-
|
|
318
|
+
**为你的 human partner 可视化:** 使用本目录下的 `render-graphs.js` 将技能中的流程图渲染为 SVG:
|
|
319
319
|
```bash
|
|
320
|
-
./render-graphs.js ../some-skill # 逐个单独渲染
|
|
321
|
-
./render-graphs.js ../some-skill --combine # 合并到一个 SVG 中
|
|
320
|
+
node ./render-graphs.js ../some-skill # 逐个单独渲染
|
|
321
|
+
node ./render-graphs.js ../some-skill --combine # 合并到一个 SVG 中
|
|
322
322
|
```
|
|
323
323
|
|
|
324
324
|
## 代码示例
|
|
@@ -371,6 +371,8 @@ pptx/
|
|
|
371
371
|
```
|
|
372
372
|
适用场景:参考材料篇幅过大,不适合内联
|
|
373
373
|
|
|
374
|
+
通过解释器调用随包脚本(正文中用 `bash scripts/tool.sh`、`node scripts/tool.js`),绝不用裸路径调用:部分宿主插件打包器会剥掉可执行位,裸调 `scripts/tool.sh` 会以 `Permission denied` 失败。
|
|
375
|
+
|
|
374
376
|
## 铁律(与 TDD 相同)
|
|
375
377
|
|
|
376
378
|
```
|
|
@@ -390,7 +392,7 @@ NO SKILL WITHOUT A FAILING TEST FIRST
|
|
|
390
392
|
- 测试运行时不要"边测边改"
|
|
391
393
|
- 删除就是删除
|
|
392
394
|
|
|
393
|
-
**必备前置知识:**
|
|
395
|
+
**必备前置知识:** test-driven-development 技能解释了为何这很重要,同样的原则也适用于文档。
|
|
394
396
|
|
|
395
397
|
## 测试所有技能类型
|
|
396
398
|
|
|
@@ -406,7 +408,7 @@ NO SKILL WITHOUT A FAILING TEST FIRST
|
|
|
406
408
|
- 多重压力叠加:时间 + 沉没成本 + 疲惫
|
|
407
409
|
- 识别辩解话术并添加明确反制
|
|
408
410
|
|
|
409
|
-
**成功标准:**
|
|
411
|
+
**成功标准:** agent 在最大压力下仍遵守规则
|
|
410
412
|
|
|
411
413
|
### 技巧型技能(操作指南)
|
|
412
414
|
|
|
@@ -417,7 +419,7 @@ NO SKILL WITHOUT A FAILING TEST FIRST
|
|
|
417
419
|
- 变体场景:能否处理边界情况?
|
|
418
420
|
- 信息缺失测试:说明中是否存在 gaps?
|
|
419
421
|
|
|
420
|
-
**成功标准:**
|
|
422
|
+
**成功标准:** agent 能将技巧成功应用于新场景
|
|
421
423
|
|
|
422
424
|
### 模式型技能(心智模型)
|
|
423
425
|
|
|
@@ -428,7 +430,7 @@ NO SKILL WITHOUT A FAILING TEST FIRST
|
|
|
428
430
|
- 应用场景:能否运用该心智模型?
|
|
429
431
|
- 反例:是否知道何时不应使用?
|
|
430
432
|
|
|
431
|
-
**成功标准:**
|
|
433
|
+
**成功标准:** agent 能正确判断何时/如何应用该模式
|
|
432
434
|
|
|
433
435
|
### 参考型技能(文档/API)
|
|
434
436
|
|
|
@@ -439,16 +441,16 @@ NO SKILL WITHOUT A FAILING TEST FIRST
|
|
|
439
441
|
- 应用场景:能否正确使用检索到的信息?
|
|
440
442
|
- Gap 测试:常见用例是否已覆盖?
|
|
441
443
|
|
|
442
|
-
**成功标准:**
|
|
444
|
+
**成功标准:** agent 能找到并正确应用参考信息
|
|
443
445
|
|
|
444
446
|
## 跳过测试的常见借口
|
|
445
447
|
|
|
446
448
|
| 借口 | 现实 |
|
|
447
449
|
|--------|---------|
|
|
448
|
-
| "技能已经足够清晰" | 对你清晰 ≠
|
|
450
|
+
| "技能已经足够清晰" | 对你清晰 ≠ 对其他 agent 清晰,必须测试。 |
|
|
449
451
|
| "这只是个参考" | 参考也可能存在缺口、表述不清,需要测试检索效果。 |
|
|
450
452
|
| "测试太小题大做" | 未经测试的技能一定有问题,15 分钟测试能节省数小时。 |
|
|
451
|
-
| "有问题再测" | 问题 =
|
|
453
|
+
| "有问题再测" | 问题 = agent 无法使用该技能,部署前就必须测试。 |
|
|
452
454
|
| "测试太繁琐" | 测试的繁琐程度远低于在生产环境调试有缺陷技能的痛苦。 |
|
|
453
455
|
| "我很有把握没问题" | 过度自信必然导致问题,仍需测试。 |
|
|
454
456
|
| "学术性审查就够了" | 阅读 ≠ 会用,必须测试应用场景。 |
|
|
@@ -463,11 +465,11 @@ NO SKILL WITHOUT A FAILING TEST FIRST
|
|
|
463
465
|
| 基线失效 | 正确形式 | 错误形式 |
|
|
464
466
|
|---|---|---|
|
|
465
467
|
| 在压力下跳过/违反规则(明知故犯) | 禁止项 + 辩解对照表 + 危险信号(见下文加固方法) | 软性指引("尽量..."、"考虑...") |
|
|
466
|
-
|
|
|
468
|
+
| 遵守了,但输出形态错误(prompt臃肿、结论被淹没、复述需求) | 正向配方或契约:明确输出是什么——包含哪些部分、按什么顺序 | 禁止清单("不要复述"、"切勿叙述") |
|
|
467
469
|
| 对已产出内容遗漏了必需元素 | 结构化:模板中设置必填字段或槽位 | 模板附近的文字提醒 |
|
|
468
|
-
| 行为应取决于某个条件 | 以可观察谓词为键的条件式("
|
|
470
|
+
| 行为应取决于某个条件 | 以可观察谓词为键的条件式("如果 brief 存在,则引用它") | 无条件规则 + 例外条款 |
|
|
469
471
|
|
|
470
|
-
**为什么禁止项在形态塑造问题上会适得其反:** 在竞争性动机("
|
|
472
|
+
**为什么禁止项在形态塑造问题上会适得其反:** 在竞争性动机("让prompt自包含")的影响下,agent 会与"不要做 X"进行博弈。在针对分发prompt指引的措辞对比测试中,禁止式措辞比配方式产生了明显更多的非期望内容,甚至比无指引的对照组表现更差——请对你自己的场景做微观测试而非想当然,但切勿默认使用禁止式。配方式无可博弈:输出要么符合既定形态,要么不符合。
|
|
471
473
|
|
|
472
474
|
**无论选择哪种形式,都需遵守以下规则:**
|
|
473
475
|
- **不要加细腻化条款。** "除非有必要否则不要做 X" 会重新打开博弈空间——在同一措辞测试中,给获胜配方追加一条细腻化条款,就使其从稳定表现退化为不稳定。真正的例外应表述为基于可观察谓词的独立条件式。
|
|
@@ -475,9 +477,9 @@ NO SKILL WITHOUT A FAILING TEST FIRST
|
|
|
475
477
|
|
|
476
478
|
## 加固技能以抵御辩解
|
|
477
479
|
|
|
478
|
-
需要强制执行纪律的技能(如 TDD
|
|
480
|
+
需要强制执行纪律的技能(如 TDD)必须能抵御辩解。agent 很聪明,在压力下会找到漏洞。
|
|
479
481
|
|
|
480
|
-
**适用范围:**
|
|
482
|
+
**适用范围:** 本工具箱适用于纪律性失效——agent 明知规则却在压力下跳过。对于输出形态错误或要素遗漏问题,基于禁止的加固会适得其反;请改用上一节"让形式匹配失效类型"中的形式。
|
|
481
483
|
|
|
482
484
|
**心理学提示:** 理解说服技巧为何有效,有助于你系统化地运用它们。研究基础(Cialdini, 2021; Meincke et al., 2025)涵盖权威、承诺、稀缺、社会认同和统一性原则,详见 persuasion-principles.md。
|
|
483
485
|
|
|
@@ -515,7 +517,7 @@ NO SKILL WITHOUT A FAILING TEST FIRST
|
|
|
515
517
|
|
|
516
518
|
### 构建辩解对照表
|
|
517
519
|
|
|
518
|
-
|
|
520
|
+
捕获基线测试中的辩解话术(见下文测试一节)。agent 提出的每一个借口都要进入表格:
|
|
519
521
|
|
|
520
522
|
```markdown
|
|
521
523
|
| 借口 | 现实 |
|
|
@@ -527,7 +529,7 @@ NO SKILL WITHOUT A FAILING TEST FIRST
|
|
|
527
529
|
|
|
528
530
|
### 创建危险信号清单
|
|
529
531
|
|
|
530
|
-
|
|
532
|
+
让 agent 易于自检是否正在为自己辩解:
|
|
531
533
|
|
|
532
534
|
```markdown
|
|
533
535
|
## 危险信号 - 立即停止并重来
|
|
@@ -555,28 +557,28 @@ description: use when implementing any feature or bugfix, before writing impleme
|
|
|
555
557
|
|
|
556
558
|
### 红:编写失败的测试(基线)
|
|
557
559
|
|
|
558
|
-
|
|
560
|
+
在不带技能的情况下用 subagent 运行压力场景,记录确切行为:
|
|
559
561
|
- 它们做了什么选择?
|
|
560
562
|
- 使用了什么辩解话术(逐字记录)?
|
|
561
563
|
- 哪些压力触发了违规?
|
|
562
564
|
|
|
563
|
-
这就是"观察测试失败"
|
|
565
|
+
这就是"观察测试失败"——在编写技能之前,你必须看到 agent 的自然行为。
|
|
564
566
|
|
|
565
567
|
### 绿:编写最小化技能
|
|
566
568
|
|
|
567
569
|
编写针对上述具体辩解的技能,不要为假想情况添加额外内容。
|
|
568
570
|
|
|
569
|
-
|
|
571
|
+
在带技能的情况下运行相同场景,agent 现在应能遵守规则。
|
|
570
572
|
|
|
571
573
|
### 重构:堵住漏洞
|
|
572
574
|
|
|
573
|
-
|
|
575
|
+
agent 找到了新的辩解?添加明确的反制措施,重新测试直至坚不可摧。
|
|
574
576
|
|
|
575
577
|
### 在完整场景之前先做措辞微观测试
|
|
576
578
|
|
|
577
579
|
完整的压力场景运行是最终关卡,但每次迭代都跑全量既慢又贵。在措辞层面先用微观测试验证:
|
|
578
580
|
|
|
579
|
-
1. **每次调用一个全新上下文样本**——一次原生 API 调用,或在无 API
|
|
581
|
+
1. **每次调用一个全新上下文样本**——一次原生 API 调用,或在无 API 访问时使用单次 subagent。系统提示 = 指引实际所处的真实上下文(完整的技能或提示模板,而非孤立的指引);用户消息 = 会诱发失效的任务。
|
|
580
582
|
2. **始终包含无指引对照组。** 如果对照组没有出现失效,就说明没有需要修复的问题——立即停止,不要编写指引。
|
|
581
583
|
3. **每个变体至少 5 次重复。** 单次样本会误导。
|
|
582
584
|
4. **逐一人工复核每个被标记的命中。** 可以用程序化评分,但模板回声和引用的反例会被误判为命中;仅靠自动化计数会同时高估失败率和成功率。
|
|
@@ -592,22 +594,22 @@ description: use when implementing any feature or bugfix, before writing impleme
|
|
|
592
594
|
|
|
593
595
|
## 反模式
|
|
594
596
|
|
|
595
|
-
###
|
|
597
|
+
### [FAIL] 叙事性示例
|
|
596
598
|
"In session 2025-10-03, we found empty projectDir caused..."
|
|
597
599
|
**为何不好:** 过于具体,不可复用
|
|
598
600
|
|
|
599
|
-
###
|
|
601
|
+
### [FAIL] 多语言稀释
|
|
600
602
|
example-js.js、example-py.py、example-go.go
|
|
601
603
|
**为何不好:** 质量平庸,维护负担重
|
|
602
604
|
|
|
603
|
-
###
|
|
605
|
+
### [FAIL] 在流程图中使用代码
|
|
604
606
|
```dot
|
|
605
607
|
step1 [label="import fs"];
|
|
606
608
|
step2 [label="read file"];
|
|
607
609
|
```
|
|
608
610
|
**为何不好:** 无法复制粘贴,难以阅读
|
|
609
611
|
|
|
610
|
-
###
|
|
612
|
+
### [FAIL] 通用标签
|
|
611
613
|
helper1、helper2、step3、pattern4
|
|
612
614
|
**为何不好:** 标签应具有语义含义
|
|
613
615
|
|
|
@@ -645,7 +647,7 @@ helper1、helper2、step3、pattern4
|
|
|
645
647
|
- [ ] 对于行为塑造类指引:措辞已通过微观测试验证(与无指引对照组对比,5 次以上重复,每个命中均人工复核)—— 纯参考型技能可标记为 N/A
|
|
646
648
|
- [ ] 代码内联或链接到独立文件
|
|
647
649
|
- [ ] 一个高质量示例(而非多语言示例)
|
|
648
|
-
- [ ]
|
|
650
|
+
- [ ] 在有技能情况下运行场景——验证 agent 现在已遵守
|
|
649
651
|
|
|
650
652
|
**重构阶段 - 堵住漏洞:**
|
|
651
653
|
- [ ] 识别测试中出现的新辩解
|
|
@@ -667,7 +669,7 @@ helper1、helper2、step3、pattern4
|
|
|
667
669
|
|
|
668
670
|
## 发现工作流
|
|
669
671
|
|
|
670
|
-
|
|
672
|
+
未来 agent 发现你技能的流程:
|
|
671
673
|
|
|
672
674
|
1. **遇到问题**("测试不稳定")
|
|
673
675
|
2. **搜索技能**(grep description、浏览分类)
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
|
|
24
24
|
**示例:**
|
|
25
25
|
```markdown
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
[OK] Write code before test? Delete it. Start over. No exceptions.
|
|
27
|
+
[FAIL] Consider writing tests first when feasible.
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
### 2. 承诺一致(Commitment)
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
|
|
43
43
|
**示例:**
|
|
44
44
|
```markdown
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
[OK] When you find a skill, you MUST announce: "I'm using [Skill Name]"
|
|
46
|
+
[FAIL] Consider letting your partner know which skill you're using.
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
### 3. 稀缺(Scarcity)
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
|
|
62
62
|
**示例:**
|
|
63
63
|
```markdown
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
[OK] After completing a task, IMMEDIATELY request code review before proceeding.
|
|
65
|
+
[FAIL] You can review code when convenient.
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
### 4. 社会认同(Social Proof)
|
|
@@ -80,8 +80,8 @@
|
|
|
80
80
|
|
|
81
81
|
**示例:**
|
|
82
82
|
```markdown
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
[OK] Checklists without todo tracking = steps get skipped. Every time.
|
|
84
|
+
[FAIL] Some people find a todo list helpful for checklists.
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
### 5. 归属感(Unity)
|
|
@@ -98,8 +98,8 @@
|
|
|
98
98
|
|
|
99
99
|
**示例:**
|
|
100
100
|
```markdown
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
[OK] We're colleagues working together. I need your honest technical judgment.
|
|
102
|
+
[FAIL] You should probably tell me if I'm wrong.
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
### 6. 互惠(Reciprocity)
|