@trench-craft/sds 1.0.0
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.en.md +522 -0
- package/README.md +566 -0
- package/dist/bin/sds.d.ts +3 -0
- package/dist/bin/sds.d.ts.map +1 -0
- package/dist/bin/sds.js +50 -0
- package/dist/bin/sds.js.map +1 -0
- package/dist/src/__tests__/cli.test.d.ts +2 -0
- package/dist/src/__tests__/cli.test.d.ts.map +1 -0
- package/dist/src/__tests__/cli.test.js +37 -0
- package/dist/src/__tests__/cli.test.js.map +1 -0
- package/dist/src/__tests__/e2e.test.d.ts +5 -0
- package/dist/src/__tests__/e2e.test.d.ts.map +1 -0
- package/dist/src/__tests__/e2e.test.js +143 -0
- package/dist/src/__tests__/e2e.test.js.map +1 -0
- package/dist/src/__tests__/graph.test.d.ts +5 -0
- package/dist/src/__tests__/graph.test.d.ts.map +1 -0
- package/dist/src/__tests__/graph.test.js +423 -0
- package/dist/src/__tests__/graph.test.js.map +1 -0
- package/dist/src/__tests__/openspec.test.d.ts +5 -0
- package/dist/src/__tests__/openspec.test.d.ts.map +1 -0
- package/dist/src/__tests__/openspec.test.js +172 -0
- package/dist/src/__tests__/openspec.test.js.map +1 -0
- package/dist/src/commands/apply.d.ts +4 -0
- package/dist/src/commands/apply.d.ts.map +1 -0
- package/dist/src/commands/apply.js +14 -0
- package/dist/src/commands/apply.js.map +1 -0
- package/dist/src/commands/archive.d.ts +4 -0
- package/dist/src/commands/archive.d.ts.map +1 -0
- package/dist/src/commands/archive.js +20 -0
- package/dist/src/commands/archive.js.map +1 -0
- package/dist/src/commands/cache.d.ts +4 -0
- package/dist/src/commands/cache.d.ts.map +1 -0
- package/dist/src/commands/cache.js +31 -0
- package/dist/src/commands/cache.js.map +1 -0
- package/dist/src/commands/config.d.ts +4 -0
- package/dist/src/commands/config.d.ts.map +1 -0
- package/dist/src/commands/config.js +29 -0
- package/dist/src/commands/config.js.map +1 -0
- package/dist/src/commands/e2e.d.ts +4 -0
- package/dist/src/commands/e2e.d.ts.map +1 -0
- package/dist/src/commands/e2e.js +65 -0
- package/dist/src/commands/e2e.js.map +1 -0
- package/dist/src/commands/graph.d.ts +4 -0
- package/dist/src/commands/graph.d.ts.map +1 -0
- package/dist/src/commands/graph.js +783 -0
- package/dist/src/commands/graph.js.map +1 -0
- package/dist/src/commands/init.d.ts +4 -0
- package/dist/src/commands/init.d.ts.map +1 -0
- package/dist/src/commands/init.js +15 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/project.d.ts +4 -0
- package/dist/src/commands/project.d.ts.map +1 -0
- package/dist/src/commands/project.js +6 -0
- package/dist/src/commands/project.js.map +1 -0
- package/dist/src/commands/propose.d.ts +4 -0
- package/dist/src/commands/propose.d.ts.map +1 -0
- package/dist/src/commands/propose.js +26 -0
- package/dist/src/commands/propose.js.map +1 -0
- package/dist/src/commands/registry.d.ts +4 -0
- package/dist/src/commands/registry.d.ts.map +1 -0
- package/dist/src/commands/registry.js +6 -0
- package/dist/src/commands/registry.js.map +1 -0
- package/dist/src/commands/skills-install.d.ts +4 -0
- package/dist/src/commands/skills-install.d.ts.map +1 -0
- package/dist/src/commands/skills-install.js +158 -0
- package/dist/src/commands/skills-install.js.map +1 -0
- package/dist/src/commands/skills.d.ts +4 -0
- package/dist/src/commands/skills.d.ts.map +1 -0
- package/dist/src/commands/skills.js +19 -0
- package/dist/src/commands/skills.js.map +1 -0
- package/dist/src/commands/verify.d.ts +4 -0
- package/dist/src/commands/verify.d.ts.map +1 -0
- package/dist/src/commands/verify.js +31 -0
- package/dist/src/commands/verify.js.map +1 -0
- package/dist/src/core/engine.d.ts +33 -0
- package/dist/src/core/engine.d.ts.map +1 -0
- package/dist/src/core/engine.js +87 -0
- package/dist/src/core/engine.js.map +1 -0
- package/dist/src/core/engine.test.d.ts +2 -0
- package/dist/src/core/engine.test.d.ts.map +1 -0
- package/dist/src/core/engine.test.js +13 -0
- package/dist/src/core/engine.test.js.map +1 -0
- package/dist/src/core/session-state.d.ts +18 -0
- package/dist/src/core/session-state.d.ts.map +1 -0
- package/dist/src/core/session-state.js +55 -0
- package/dist/src/core/session-state.js.map +1 -0
- package/dist/src/core/session-state.test.d.ts +2 -0
- package/dist/src/core/session-state.test.d.ts.map +1 -0
- package/dist/src/core/session-state.test.js +90 -0
- package/dist/src/core/session-state.test.js.map +1 -0
- package/dist/src/core/subagent-timeout.d.ts +18 -0
- package/dist/src/core/subagent-timeout.d.ts.map +1 -0
- package/dist/src/core/subagent-timeout.js +61 -0
- package/dist/src/core/subagent-timeout.js.map +1 -0
- package/dist/src/core/subagent-timeout.test.d.ts +2 -0
- package/dist/src/core/subagent-timeout.test.d.ts.map +1 -0
- package/dist/src/core/subagent-timeout.test.js +57 -0
- package/dist/src/core/subagent-timeout.test.js.map +1 -0
- package/dist/src/core/task-sync.d.ts +19 -0
- package/dist/src/core/task-sync.d.ts.map +1 -0
- package/dist/src/core/task-sync.js +62 -0
- package/dist/src/core/task-sync.js.map +1 -0
- package/dist/src/core/task-sync.test.d.ts +2 -0
- package/dist/src/core/task-sync.test.d.ts.map +1 -0
- package/dist/src/core/task-sync.test.js +84 -0
- package/dist/src/core/task-sync.test.js.map +1 -0
- package/dist/src/graph/advanced-performance.d.ts +137 -0
- package/dist/src/graph/advanced-performance.d.ts.map +1 -0
- package/dist/src/graph/advanced-performance.js +375 -0
- package/dist/src/graph/advanced-performance.js.map +1 -0
- package/dist/src/graph/database.d.ts +79 -0
- package/dist/src/graph/database.d.ts.map +1 -0
- package/dist/src/graph/database.js +305 -0
- package/dist/src/graph/database.js.map +1 -0
- package/dist/src/graph/engine.d.ts +43 -0
- package/dist/src/graph/engine.d.ts.map +1 -0
- package/dist/src/graph/engine.js +334 -0
- package/dist/src/graph/engine.js.map +1 -0
- package/dist/src/graph/exporter.d.ts +56 -0
- package/dist/src/graph/exporter.d.ts.map +1 -0
- package/dist/src/graph/exporter.js +273 -0
- package/dist/src/graph/exporter.js.map +1 -0
- package/dist/src/graph/index.d.ts +21 -0
- package/dist/src/graph/index.d.ts.map +1 -0
- package/dist/src/graph/index.js +14 -0
- package/dist/src/graph/index.js.map +1 -0
- package/dist/src/graph/layouts.d.ts +77 -0
- package/dist/src/graph/layouts.d.ts.map +1 -0
- package/dist/src/graph/layouts.js +368 -0
- package/dist/src/graph/layouts.js.map +1 -0
- package/dist/src/graph/parser.d.ts +47 -0
- package/dist/src/graph/parser.d.ts.map +1 -0
- package/dist/src/graph/parser.js +228 -0
- package/dist/src/graph/parser.js.map +1 -0
- package/dist/src/graph/performance.d.ts +90 -0
- package/dist/src/graph/performance.d.ts.map +1 -0
- package/dist/src/graph/performance.js +275 -0
- package/dist/src/graph/performance.js.map +1 -0
- package/dist/src/graph/semantic.d.ts +151 -0
- package/dist/src/graph/semantic.d.ts.map +1 -0
- package/dist/src/graph/semantic.js +402 -0
- package/dist/src/graph/semantic.js.map +1 -0
- package/dist/src/graph/types.d.ts +114 -0
- package/dist/src/graph/types.d.ts.map +1 -0
- package/dist/src/graph/types.js +5 -0
- package/dist/src/graph/types.js.map +1 -0
- package/dist/src/graph/visualizer.d.ts +50 -0
- package/dist/src/graph/visualizer.d.ts.map +1 -0
- package/dist/src/graph/visualizer.js +869 -0
- package/dist/src/graph/visualizer.js.map +1 -0
- package/dist/src/openspec/apply.d.ts +16 -0
- package/dist/src/openspec/apply.d.ts.map +1 -0
- package/dist/src/openspec/apply.js +140 -0
- package/dist/src/openspec/apply.js.map +1 -0
- package/dist/src/openspec/archive.d.ts +3 -0
- package/dist/src/openspec/archive.d.ts.map +1 -0
- package/dist/src/openspec/archive.js +17 -0
- package/dist/src/openspec/archive.js.map +1 -0
- package/dist/src/openspec/e2e-generate.d.ts +39 -0
- package/dist/src/openspec/e2e-generate.d.ts.map +1 -0
- package/dist/src/openspec/e2e-generate.js +315 -0
- package/dist/src/openspec/e2e-generate.js.map +1 -0
- package/dist/src/openspec/e2e-runner.d.ts +32 -0
- package/dist/src/openspec/e2e-runner.d.ts.map +1 -0
- package/dist/src/openspec/e2e-runner.js +208 -0
- package/dist/src/openspec/e2e-runner.js.map +1 -0
- package/dist/src/openspec/explore.d.ts +3 -0
- package/dist/src/openspec/explore.d.ts.map +1 -0
- package/dist/src/openspec/explore.js +20 -0
- package/dist/src/openspec/explore.js.map +1 -0
- package/dist/src/openspec/propose.d.ts +8 -0
- package/dist/src/openspec/propose.d.ts.map +1 -0
- package/dist/src/openspec/propose.js +124 -0
- package/dist/src/openspec/propose.js.map +1 -0
- package/dist/src/openspec/verify.d.ts +13 -0
- package/dist/src/openspec/verify.d.ts.map +1 -0
- package/dist/src/openspec/verify.js +156 -0
- package/dist/src/openspec/verify.js.map +1 -0
- package/dist/src/platform/claudecode.d.ts +2 -0
- package/dist/src/platform/claudecode.d.ts.map +1 -0
- package/dist/src/platform/claudecode.js +7 -0
- package/dist/src/platform/claudecode.js.map +1 -0
- package/dist/src/platform/codex.d.ts +2 -0
- package/dist/src/platform/codex.d.ts.map +1 -0
- package/dist/src/platform/codex.js +7 -0
- package/dist/src/platform/codex.js.map +1 -0
- package/dist/src/platform/opencode.d.ts +2 -0
- package/dist/src/platform/opencode.d.ts.map +1 -0
- package/dist/src/platform/opencode.js +7 -0
- package/dist/src/platform/opencode.js.map +1 -0
- package/dist/src/platform/router.d.ts +13 -0
- package/dist/src/platform/router.d.ts.map +1 -0
- package/dist/src/platform/router.js +57 -0
- package/dist/src/platform/router.js.map +1 -0
- package/dist/src/skills/cache.d.ts +16 -0
- package/dist/src/skills/cache.d.ts.map +1 -0
- package/dist/src/skills/cache.js +53 -0
- package/dist/src/skills/cache.js.map +1 -0
- package/dist/src/skills/discovery.d.ts +12 -0
- package/dist/src/skills/discovery.d.ts.map +1 -0
- package/dist/src/skills/discovery.js +61 -0
- package/dist/src/skills/discovery.js.map +1 -0
- package/dist/src/skills/loader.d.ts +12 -0
- package/dist/src/skills/loader.d.ts.map +1 -0
- package/dist/src/skills/loader.js +69 -0
- package/dist/src/skills/loader.js.map +1 -0
- package/dist/src/skills/registry.d.ts +23 -0
- package/dist/src/skills/registry.d.ts.map +1 -0
- package/dist/src/skills/registry.js +68 -0
- package/dist/src/skills/registry.js.map +1 -0
- package/dist/src/utils/fs.d.ts +5 -0
- package/dist/src/utils/fs.d.ts.map +1 -0
- package/dist/src/utils/fs.js +23 -0
- package/dist/src/utils/fs.js.map +1 -0
- package/dist/src/utils/logger.d.ts +7 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +8 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/yaml.d.ts +3 -0
- package/dist/src/utils/yaml.d.ts.map +1 -0
- package/dist/src/utils/yaml.js +8 -0
- package/dist/src/utils/yaml.js.map +1 -0
- package/package.json +62 -0
- package/registry/skills-registry.yaml +218 -0
- package/skills/core/brainstorming/SKILL.md +259 -0
- package/skills/core/brainstorming/scripts/frame-template.html +214 -0
- package/skills/core/brainstorming/scripts/helper.js +88 -0
- package/skills/core/brainstorming/scripts/server.cjs +338 -0
- package/skills/core/brainstorming/scripts/start-server.sh +153 -0
- package/skills/core/brainstorming/scripts/stop-server.sh +55 -0
- package/skills/core/brainstorming/skill.yaml +12 -0
- package/skills/core/brainstorming/spec-document-reviewer-prompt.md +48 -0
- package/skills/core/brainstorming/visual-companion.md +286 -0
- package/skills/core/claude-code-core/SKILL.md +164 -0
- package/skills/core/claude-code-core/skill.yaml +14 -0
- package/skills/core/claude-code-prompt/SKILL.md +283 -0
- package/skills/core/claude-code-prompt/skill.yaml +14 -0
- package/skills/core/claude-code-subagent/SKILL.md +168 -0
- package/skills/core/claude-code-subagent/skill.yaml +14 -0
- package/skills/core/e2e-generate/SKILL.md +147 -0
- package/skills/core/e2e-generate/skill.yaml +12 -0
- package/skills/core/ecc-agents-md-router/SKILL.md +90 -0
- package/skills/core/ecc-agents-md-router/skill.yaml +12 -0
- package/skills/core/ecc-context-injector/SKILL.md +69 -0
- package/skills/core/ecc-context-injector/skill.yaml +12 -0
- package/skills/core/existing-code-caveman/SKILL.md +340 -0
- package/skills/core/existing-code-caveman/skill.yaml +12 -0
- package/skills/core/opsx-apply/SKILL.md +121 -0
- package/skills/core/opsx-apply/skill.yaml +12 -0
- package/skills/core/opsx-archive/SKILL.md +83 -0
- package/skills/core/opsx-archive/skill.yaml +12 -0
- package/skills/core/opsx-explore/SKILL.md +101 -0
- package/skills/core/opsx-explore/skill.yaml +12 -0
- package/skills/core/opsx-propose/SKILL.md +131 -0
- package/skills/core/opsx-propose/skill.yaml +16 -0
- package/skills/core/opsx-verify/SKILL.md +109 -0
- package/skills/core/opsx-verify/skill.yaml +12 -0
- package/skills/core/subagent-driven-development/SKILL.md +157 -0
- package/skills/core/subagent-driven-development/code-quality-reviewer-prompt.md +64 -0
- package/skills/core/subagent-driven-development/implementer-prompt.md +122 -0
- package/skills/core/subagent-driven-development/skill.yaml +12 -0
- package/skills/core/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/skills/core/writing-plans/SKILL.md +268 -0
- package/skills/core/writing-plans/plan-document-reviewer-prompt.md +63 -0
- package/skills/core/writing-plans/skill.yaml +12 -0
- package/skills/locale/chinese-code-review/SKILL.md +17 -0
- package/skills/locale/chinese-code-review/skill.yaml +16 -0
- package/skills/locale/chinese-commit-conventions/SKILL.md +17 -0
- package/skills/locale/chinese-commit-conventions/skill.yaml +16 -0
- package/skills/locale/chinese-documentation/SKILL.md +17 -0
- package/skills/locale/chinese-documentation/skill.yaml +16 -0
- package/skills/locale/chinese-git-workflow/SKILL.md +17 -0
- package/skills/locale/chinese-git-workflow/skill.yaml +16 -0
- package/templates/agents-md.md +42 -0
- package/templates/claude-md.md +44 -0
- package/templates/codex-md.md +49 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# 实现子智能体提示词模板
|
|
2
|
+
|
|
3
|
+
分派实现子智能体时使用此模板。
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
spawn_agent:
|
|
7
|
+
description: "实现任务 N:[任务名称]"
|
|
8
|
+
message: |
|
|
9
|
+
你正在实现任务 N:[任务名称]
|
|
10
|
+
|
|
11
|
+
## 任务描述
|
|
12
|
+
|
|
13
|
+
[计划中任务的完整文本 - 粘贴到这里,不要让子智能体去读文件]
|
|
14
|
+
|
|
15
|
+
## 上下文
|
|
16
|
+
|
|
17
|
+
[场景铺设:这个任务在哪个环节、依赖关系、架构上下文]
|
|
18
|
+
|
|
19
|
+
## 开始之前
|
|
20
|
+
|
|
21
|
+
如果你对以下内容有疑问:
|
|
22
|
+
- 需求或验收标准
|
|
23
|
+
- 方案或实现策略
|
|
24
|
+
- 依赖或假设
|
|
25
|
+
- 任务描述中任何不清楚的地方
|
|
26
|
+
|
|
27
|
+
**现在就问。** 在开始工作之前提出任何疑虑。
|
|
28
|
+
|
|
29
|
+
## 你的工作
|
|
30
|
+
|
|
31
|
+
当你确认需求清晰后:
|
|
32
|
+
1. 严格按照任务指定的内容实现
|
|
33
|
+
2. 编写测试(如果任务要求则遵循 TDD)
|
|
34
|
+
3. 验证实现是否正常工作
|
|
35
|
+
4. 提交你的工作
|
|
36
|
+
5. 自审(见下文)
|
|
37
|
+
6. 汇报
|
|
38
|
+
|
|
39
|
+
工作目录:[directory]
|
|
40
|
+
|
|
41
|
+
**工作过程中:** 如果遇到意料之外或不清楚的情况,**提问**。
|
|
42
|
+
随时可以暂停并澄清。不要猜测或做假设。
|
|
43
|
+
|
|
44
|
+
## 代码组织
|
|
45
|
+
|
|
46
|
+
你在能一次性放入上下文的代码上推理效果最好,文件聚焦时编辑也更可靠。
|
|
47
|
+
|
|
48
|
+
**文件粒度硬性约束(必须遵守):**
|
|
49
|
+
- 单文件不超过 300 行(含空行和注释),超过时必须拆分为多个模块
|
|
50
|
+
- 单函数/单方法不超过 50 行,超过时提取子函数
|
|
51
|
+
- 单类不超过 200 行,超过时提取委托对象或策略类
|
|
52
|
+
- import 语句不超过 15 行,超过说明职责过多,应拆模块
|
|
53
|
+
- 拆分时先创建模块结构(空文件 + 导出接口),确认结构合理后再逐个填充实现
|
|
54
|
+
|
|
55
|
+
请牢记:
|
|
56
|
+
- 遵循计划中定义的文件结构
|
|
57
|
+
- 每个文件应有单一明确的职责和定义清晰的接口
|
|
58
|
+
- 如果你正在创建的文件超出了上述行数限制,**立即停下来拆分**——先创建子模块结构,再继续实现
|
|
59
|
+
- 如果你正在修改的现有文件已经很大或很混乱,小心操作
|
|
60
|
+
并在报告中将其标注为疑虑
|
|
61
|
+
- 如果你正在修改的现有文件已经很大或很混乱,小心操作
|
|
62
|
+
并在报告中将其标注为疑虑
|
|
63
|
+
- 在已有代码库中,遵循已建立的模式。像一个好的开发者那样
|
|
64
|
+
改善你接触的代码,但不要重构你任务范围之外的东西。
|
|
65
|
+
|
|
66
|
+
## 当你力不从心时
|
|
67
|
+
|
|
68
|
+
说"这对我来说太难了"完全没问题。劣质的工作比不做更糟。
|
|
69
|
+
上报不会受到惩罚。
|
|
70
|
+
|
|
71
|
+
**遇到以下情况时停下来上报:**
|
|
72
|
+
- 任务需要在多个有效方案之间做架构决策
|
|
73
|
+
- 你需要理解提供内容之外的代码但找不到答案
|
|
74
|
+
- 你对自己的方案是否正确感到不确定
|
|
75
|
+
- 任务涉及计划未预期的现有代码重构
|
|
76
|
+
- 你一直在逐个读文件试图理解系统但没有进展
|
|
77
|
+
|
|
78
|
+
**如何上报:** 以 BLOCKED 或 NEEDS_CONTEXT 状态汇报。具体描述
|
|
79
|
+
你卡在哪里、尝试了什么、需要什么帮助。
|
|
80
|
+
控制者可以提供更多上下文、用更强的模型重新分派,
|
|
81
|
+
或将任务拆分为更小的部分。
|
|
82
|
+
|
|
83
|
+
## 汇报前:自审
|
|
84
|
+
|
|
85
|
+
用全新的视角审查你的工作。问自己:
|
|
86
|
+
|
|
87
|
+
**完整性:**
|
|
88
|
+
- 我是否完全实现了规格中的所有内容?
|
|
89
|
+
- 我是否遗漏了任何需求?
|
|
90
|
+
- 是否有我没处理的边界情况?
|
|
91
|
+
|
|
92
|
+
**质量:**
|
|
93
|
+
- 这是我最好的工作吗?
|
|
94
|
+
- 命名是否清晰准确(匹配事物做什么,而非怎么做)?
|
|
95
|
+
- 代码是否整洁且可维护?
|
|
96
|
+
|
|
97
|
+
**纪律:**
|
|
98
|
+
- 我是否避免了过度构建(YAGNI)?
|
|
99
|
+
- 我是否只构建了被要求的内容?
|
|
100
|
+
- 我是否遵循了代码库中的已有模式?
|
|
101
|
+
|
|
102
|
+
**测试:**
|
|
103
|
+
- 测试是否真正验证了行为(而非只是 mock 行为)?
|
|
104
|
+
- 如果要求了 TDD,我是否遵循了?
|
|
105
|
+
- 测试是否全面?
|
|
106
|
+
|
|
107
|
+
如果在自审中发现问题,在汇报前就修复。
|
|
108
|
+
|
|
109
|
+
## 汇报格式
|
|
110
|
+
|
|
111
|
+
完成后汇报:
|
|
112
|
+
- **状态:** DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT
|
|
113
|
+
- 你实现了什么(或尝试了什么,如果被阻塞)
|
|
114
|
+
- 你测试了什么以及测试结果
|
|
115
|
+
- 修改了哪些文件
|
|
116
|
+
- 自审发现(如果有)
|
|
117
|
+
- 任何问题或疑虑
|
|
118
|
+
|
|
119
|
+
如果你完成了工作但对正确性有疑虑,使用 DONE_WITH_CONCERNS。
|
|
120
|
+
如果你无法完成任务,使用 BLOCKED。如果你需要
|
|
121
|
+
未提供的信息,使用 NEEDS_CONTEXT。绝不默默产出你不确定的工作。
|
|
122
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
id: "subagent-driven-development"
|
|
2
|
+
version: "2.0.0"
|
|
3
|
+
name: "subagent-development"
|
|
4
|
+
description: "通过子代理执行实现计划"
|
|
5
|
+
category: "core"
|
|
6
|
+
phase: "phase-4"
|
|
7
|
+
source: "superpowers"
|
|
8
|
+
dependencies: ["writing-plans"]
|
|
9
|
+
inputs: ["openspec/changes/{name}/plan.md"]
|
|
10
|
+
outputs: []
|
|
11
|
+
size: "large"
|
|
12
|
+
cache_ttl: "7d"
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# 规格合规审查者提示词模板
|
|
2
|
+
|
|
3
|
+
分派规格合规审查子智能体时使用此模板。
|
|
4
|
+
|
|
5
|
+
**目的:** 验证实现者是否构建了所要求的内容(不多不少)
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
spawn_agent:
|
|
9
|
+
description: "审查任务 N 的规格合规性"
|
|
10
|
+
message: |
|
|
11
|
+
你正在审查一个实现是否与其规格匹配。
|
|
12
|
+
|
|
13
|
+
## 要求的内容
|
|
14
|
+
|
|
15
|
+
[任务需求的完整文本]
|
|
16
|
+
|
|
17
|
+
## 实现者声称构建了什么
|
|
18
|
+
|
|
19
|
+
[来自实现者的报告]
|
|
20
|
+
|
|
21
|
+
## 关键:不要信任报告
|
|
22
|
+
|
|
23
|
+
实现者完成得疑似过快。他们的报告可能不完整、
|
|
24
|
+
不准确或过于乐观。你必须独立验证所有内容。
|
|
25
|
+
|
|
26
|
+
**不要:**
|
|
27
|
+
- 相信他们关于实现内容的说法
|
|
28
|
+
- 信任他们关于完整性的声明
|
|
29
|
+
- 接受他们对需求的解读
|
|
30
|
+
|
|
31
|
+
**要做的:**
|
|
32
|
+
- 阅读他们写的实际代码
|
|
33
|
+
- 逐行对比实际实现和需求
|
|
34
|
+
- 检查他们声称已实现但实际遗漏的部分
|
|
35
|
+
- 寻找他们未提及的多余功能
|
|
36
|
+
|
|
37
|
+
## 你的工作
|
|
38
|
+
|
|
39
|
+
阅读实现代码并验证:
|
|
40
|
+
|
|
41
|
+
**缺失的需求:**
|
|
42
|
+
- 他们是否实现了所有被要求的内容?
|
|
43
|
+
- 是否有他们跳过或遗漏的需求?
|
|
44
|
+
- 是否有他们声称可用但实际未实现的功能?
|
|
45
|
+
|
|
46
|
+
**多余/不需要的工作:**
|
|
47
|
+
- 他们是否构建了未被要求的内容?
|
|
48
|
+
- 他们是否过度工程化或添加了不必要的功能?
|
|
49
|
+
- 他们是否添加了规格中没有的"锦上添花"功能?
|
|
50
|
+
|
|
51
|
+
**理解偏差:**
|
|
52
|
+
- 他们是否以不同于预期的方式解读了需求?
|
|
53
|
+
- 他们是否解决了错误的问题?
|
|
54
|
+
- 他们是否实现了正确的功能但方式不对?
|
|
55
|
+
|
|
56
|
+
**通过阅读代码来验证,而非信任报告。**
|
|
57
|
+
|
|
58
|
+
报告:
|
|
59
|
+
- ✅ 符合规格(如果经过代码检查后一切匹配)
|
|
60
|
+
- ❌ 发现问题:[具体列出缺失或多余的内容,附带 file:line 引用]
|
|
61
|
+
```
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: writing-plans
|
|
3
|
+
description: "将规格说明拆解为可执行的实现计划,为 subagent-driven-development 或 executing-plans 提供执行依据。在 brainstorming 和 specs 完成后使用。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Write Plans
|
|
7
|
+
|
|
8
|
+
## 触发条件
|
|
9
|
+
|
|
10
|
+
**触发**:
|
|
11
|
+
- opsx:propose 已完成,proposal/design/specs/tasks 四份工件已就绪
|
|
12
|
+
- 用户主动要求"编写实现计划"或"拆解任务"
|
|
13
|
+
|
|
14
|
+
**不触发**:
|
|
15
|
+
- ❌ 任何非开发类对话
|
|
16
|
+
- ❌ opsx:propose 尚未完成时
|
|
17
|
+
- ❌ 还在讨论需求或设计方案
|
|
18
|
+
|
|
19
|
+
编写全面的实现计划,假设工程师对我们的代码库零上下文,且品味存疑。记录他们需要知道的一切:每个任务要修改哪些文件、代码、测试、可能需要查阅的文档、如何测试。将整个计划拆成小步骤任务。
|
|
20
|
+
|
|
21
|
+
**开始时宣布:** "我正在使用 writing-plans 技能创建实现计划。"
|
|
22
|
+
|
|
23
|
+
## OpenSpec 工作流中的位置
|
|
24
|
+
|
|
25
|
+
此技能在 OpenSpec worktree 中运行。输入来自 opsx:propose 生成的 specs.md(Phase 2 产出):
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
openspec/changes/<name>/
|
|
29
|
+
├── brainstorming.md (Phase 1)
|
|
30
|
+
├── proposal.md (Phase 2)
|
|
31
|
+
├── design.md (Phase 2)
|
|
32
|
+
├── specs.md (Phase 2) ← 输入
|
|
33
|
+
├── tasks.md (Phase 2)
|
|
34
|
+
└── plan.md (Phase 3) ← 输出
|
|
35
|
+
或 plan/
|
|
36
|
+
├── index.md
|
|
37
|
+
└── <module>.md
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## 计划膨胀问题与解法
|
|
41
|
+
|
|
42
|
+
plan.md 膨胀的根本原因是把**任务步骤**和**代码细节**混在同一个文件里。
|
|
43
|
+
|
|
44
|
+
### 解法:分离"骨架"与"细节"
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
plan.md ← 骨架:任务列表 + 步骤描述 + 接口契约(精简)
|
|
48
|
+
plan/refs/ ← 细节:大型代码块、schema、配置模板(按需引用)
|
|
49
|
+
├── auth-schema.sql
|
|
50
|
+
└── api-types.ts
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**骨架文件(plan.md)** 包含:
|
|
54
|
+
- 每个任务的步骤描述(做什么、怎么验证)
|
|
55
|
+
- 跨模块接口契约(类型定义、数据格式、API 签名)
|
|
56
|
+
- 通过 `→ 详见 plan/refs/xxx` 引用大型代码块
|
|
57
|
+
|
|
58
|
+
**细节文件(plan/refs/)** 包含:
|
|
59
|
+
- 完整的 schema 定义
|
|
60
|
+
- 大型模板代码
|
|
61
|
+
- 配置文件样板
|
|
62
|
+
- 骨架中通过路径引用,不内联
|
|
63
|
+
|
|
64
|
+
### 何时需要分割 plan.md 为多个文件
|
|
65
|
+
|
|
66
|
+
仅当骨架文件仍然过大(>300 行)时才分割。此时按模块拆分为 plan/ 目录。
|
|
67
|
+
|
|
68
|
+
**分割的唯一原则:每个 chunk 100% 自包含,协调器不需要跨文件读取。**
|
|
69
|
+
|
|
70
|
+
这意味着:
|
|
71
|
+
- chunk A 定义的接口 → 必须在 chunk B 中**内联重复**(不是引用)
|
|
72
|
+
- 协调器读一个 chunk 文件就能构造完整的 implementer-prompt
|
|
73
|
+
- index.md 只做索引和状态跟踪,**不放任何执行必需的信息**
|
|
74
|
+
|
|
75
|
+
### 为什么不能让协调器跨文件拼接
|
|
76
|
+
|
|
77
|
+
协调器本身是 LLM。让它从 index.md 取接口契约、从已完成 chunk 取产出、再注入 implementer-prompt,这要求它做跨文件信息整合——容易漏读、错配、上下文超限。
|
|
78
|
+
|
|
79
|
+
**正确做法:chunk 自包含,代价是少量重复。这比依赖 LLM 跨文件整合可靠得多。**
|
|
80
|
+
|
|
81
|
+
## 范围检查
|
|
82
|
+
|
|
83
|
+
如果规格涵盖了多个独立子系统,它应该在 Phase 2 就被拆分为子项目规格。如果没有,建议将其拆分为独立的计划——每个子系统一个。每个计划应该能独立产出可工作、可测试的软件。
|
|
84
|
+
|
|
85
|
+
## 文件结构
|
|
86
|
+
|
|
87
|
+
在定义任务之前,先列出将要创建或修改的文件以及每个文件的职责。这是锁定分解决策的地方。
|
|
88
|
+
|
|
89
|
+
- **硬性约束:单文件不超过 300 行(含空行),单函数不超过 50 行,单类不超过 200 行**
|
|
90
|
+
- 超出约束时必须在计划阶段就拆分为多个模块,不要留到实现阶段
|
|
91
|
+
- 每个任务涉及 1-2 个文件变更,禁止"在 X.ts 中实现全部功能"这种任务
|
|
92
|
+
- 每个任务输出中包含:涉及文件列表 + 预估行数
|
|
93
|
+
- 设计边界清晰、接口定义良好的单元。每个文件应有一个明确的职责。
|
|
94
|
+
- 你对能一次放入上下文的代码推理得最好,文件越专注你的编辑越可靠。优先选择小而专注的文件。
|
|
95
|
+
- 一起变更的文件应放在一起。按职责拆分,而非按技术层级拆分。
|
|
96
|
+
- 在现有代码库中,遵循已有模式。
|
|
97
|
+
|
|
98
|
+
## 小步骤任务粒度
|
|
99
|
+
|
|
100
|
+
**每步是一个操作(2-5 分钟):**
|
|
101
|
+
- "编写失败的测试" - 一步
|
|
102
|
+
- "运行它确认失败" - 一步
|
|
103
|
+
- "实现最少代码让测试通过" - 一步
|
|
104
|
+
- "运行测试确认通过" - 一步
|
|
105
|
+
- "Commit" - 一步
|
|
106
|
+
|
|
107
|
+
## 接口契约
|
|
108
|
+
|
|
109
|
+
**这是计划中最关键的部分。** 每个任务必须明确它依赖和产出的接口。
|
|
110
|
+
|
|
111
|
+
接口契约放在骨架文件中(不是 refs/),因为协调器构造 implementer-prompt 时必须能看到:
|
|
112
|
+
|
|
113
|
+
```markdown
|
|
114
|
+
## 接口契约
|
|
115
|
+
|
|
116
|
+
### AuthService.login
|
|
117
|
+
- 输入:`{ email: string, password: string }`
|
|
118
|
+
- 输出:`{ token: AuthToken, user: User }`
|
|
119
|
+
- 错误:`{ code: 401, message: "Invalid credentials" }`
|
|
120
|
+
|
|
121
|
+
### AuthToken 格式
|
|
122
|
+
\```typescript
|
|
123
|
+
interface AuthToken {
|
|
124
|
+
userId: string;
|
|
125
|
+
role: 'admin' | 'user';
|
|
126
|
+
iat: number;
|
|
127
|
+
exp: number;
|
|
128
|
+
}
|
|
129
|
+
\```
|
|
130
|
+
- 签发方:任务 2(认证模块)
|
|
131
|
+
- 消费方:任务 5(用户模块)、任务 8(通知模块)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## 计划文档头部
|
|
135
|
+
|
|
136
|
+
```markdown
|
|
137
|
+
# [功能名称] 实现计划
|
|
138
|
+
|
|
139
|
+
> **面向 AI 代理的工作者:** 必需子技能:使用 subagent-driven-development(推荐)
|
|
140
|
+
> 逐任务实现此计划。步骤使用复选框(`- [ ]`)语法来跟踪进度。
|
|
141
|
+
|
|
142
|
+
**目标:** [一句话描述要构建什么]
|
|
143
|
+
|
|
144
|
+
**架构:** [2-3 句话描述方案]
|
|
145
|
+
|
|
146
|
+
**技术栈:** [关键技术/库]
|
|
147
|
+
|
|
148
|
+
**上下文文件:** spec: openspec/changes/<name>/specs.md, design: openspec/changes/<name>/design.md
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## 任务结构
|
|
154
|
+
|
|
155
|
+
````markdown
|
|
156
|
+
### 任务 N:[组件名称]
|
|
157
|
+
|
|
158
|
+
**文件:**
|
|
159
|
+
- 创建:`exact/path/to/file.py`
|
|
160
|
+
- 修改:`exact/path/to/existing.py:123-145`
|
|
161
|
+
- 测试:`tests/exact/path/to/test.py`
|
|
162
|
+
|
|
163
|
+
**接口:**
|
|
164
|
+
- 依赖:[列出本任务依赖的接口,附完整类型签名]
|
|
165
|
+
- 产出:[列出本任务产出的接口,附完整类型签名]
|
|
166
|
+
|
|
167
|
+
- [ ] **步骤 1:编写失败的测试**
|
|
168
|
+
|
|
169
|
+
```python
|
|
170
|
+
def test_specific_behavior():
|
|
171
|
+
result = function(input)
|
|
172
|
+
assert result == expected
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
- [ ] **步骤 2:运行测试验证失败**
|
|
176
|
+
|
|
177
|
+
运行:`pytest tests/path/test.py::test_name -v`
|
|
178
|
+
预期:FAIL,报错 "function not defined"
|
|
179
|
+
|
|
180
|
+
- [ ] **步骤 3:编写最少实现代码**
|
|
181
|
+
|
|
182
|
+
```python
|
|
183
|
+
def function(input):
|
|
184
|
+
return expected
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
- [ ] **步骤 4:运行测试验证通过**
|
|
188
|
+
|
|
189
|
+
运行:`pytest tests/path/test.py::test_name -v`
|
|
190
|
+
预期:PASS
|
|
191
|
+
|
|
192
|
+
- [ ] **步骤 5:Commit**
|
|
193
|
+
````
|
|
194
|
+
|
|
195
|
+
## 禁止占位符
|
|
196
|
+
|
|
197
|
+
每个步骤都必须包含工程师需要的实际内容。**绝不要写:**
|
|
198
|
+
- "待定"、"TODO"、"后续实现"、"补充细节"
|
|
199
|
+
- "添加适当的错误处理" / "添加验证" / "处理边界情况"
|
|
200
|
+
- "为上述代码编写测试"(没有实际测试代码)
|
|
201
|
+
- 只描述做什么而不展示怎么做的步骤(代码步骤必须有代码块)
|
|
202
|
+
|
|
203
|
+
## plan_review — 调度子代理审查
|
|
204
|
+
|
|
205
|
+
编写完整计划后,使用 `plan-document-reviewer-prompt.md` 模板调度一个子代理来审查计划。
|
|
206
|
+
|
|
207
|
+
**执行步骤:**
|
|
208
|
+
|
|
209
|
+
1. 将计划文档路径和 specs.md 路径传入 `plan-document-reviewer-prompt.md` 模板
|
|
210
|
+
2. 调度审查子代理(使用 spawn_agent)
|
|
211
|
+
3. 如果审查通过(状态:通过)→ 进入执行交接
|
|
212
|
+
4. 如果审查发现问题(状态:发现问题)→ 修复计划文档,重新运行 plan_review
|
|
213
|
+
|
|
214
|
+
## 目录化模式(计划过大时)
|
|
215
|
+
|
|
216
|
+
当骨架文件 >300 行时,按模块拆分为 `plan/` 目录:
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
plan/
|
|
220
|
+
├── index.md ← 执行顺序 + 状态追踪(不含接口契约)
|
|
221
|
+
├── auth.md ← 认证模块(自包含:含接口契约 + 任务步骤)
|
|
222
|
+
├── user.md ← 用户模块(自包含:内联 auth 产出的接口)
|
|
223
|
+
└── refs/ ← 大型代码引用(可选)
|
|
224
|
+
└── schema.sql
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### 目录化模式的规则
|
|
228
|
+
|
|
229
|
+
1. **index.md 只做索引** — 执行顺序、chunk 列表、完成状态。不含接口、不含任务步骤。
|
|
230
|
+
2. **每个 chunk 自包含** — 协调器读一个 chunk 就能构造完整的 implementer-prompt。
|
|
231
|
+
3. **接口契约在 chunk 间内联重复** — auth.md 定义的 `AuthToken`,在 user.md 中必须重复写明完整定义。不写"见 auth.md"。
|
|
232
|
+
4. **refs/ 是唯一可共享的** — 大型代码块放在 refs/,chunk 通过路径引用。这是因为代码块通常不变,而接口定义可能随任务演进。
|
|
233
|
+
|
|
234
|
+
### 协调器执行流程
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
读取 plan/index.md → 获取 chunk 执行顺序
|
|
238
|
+
↓
|
|
239
|
+
对当前 chunk:
|
|
240
|
+
读取 plan/<chunk>.md → 全文(自包含,无需读其他文件)
|
|
241
|
+
↓
|
|
242
|
+
对 chunk 内每个任务:
|
|
243
|
+
提取任务文本(含接口契约)→ 粘贴到 implementer-prompt
|
|
244
|
+
↓
|
|
245
|
+
子代理执行 → 审查 → 通过
|
|
246
|
+
↓
|
|
247
|
+
更新 plan/<chunk>.md 标记任务完成
|
|
248
|
+
↓
|
|
249
|
+
chunk 全部完成 → 更新 plan/index.md 状态
|
|
250
|
+
↓
|
|
251
|
+
下一个 chunk(同样的流程,不需要"传递上下文")
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## 执行交接
|
|
255
|
+
|
|
256
|
+
plan_review 通过后,提供执行选项:
|
|
257
|
+
|
|
258
|
+
**"计划已完成并通过 plan_review。执行方式:**
|
|
259
|
+
|
|
260
|
+
**1. subagent-driven-development(推荐)** - 每个任务调度新的子代理,任务间审查
|
|
261
|
+
|
|
262
|
+
**2. 手动执行** - 在当前会话中内联执行
|
|
263
|
+
|
|
264
|
+
**选哪种方式?"**
|
|
265
|
+
|
|
266
|
+
如果选择 subagent-driven-development:
|
|
267
|
+
- 必需子技能:使用 subagent-driven-development
|
|
268
|
+
- 每个任务一个新子代理 + 两阶段审查
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# 计划文档审查员提示模板
|
|
2
|
+
|
|
3
|
+
调度计划文档审查员子代理时使用此模板。
|
|
4
|
+
|
|
5
|
+
**用途:** 验证计划是否完整、与规格匹配,并且任务分解合理。
|
|
6
|
+
|
|
7
|
+
**调度时机:** 完整计划编写完成后。
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
spawn_agent:
|
|
11
|
+
description: "审查计划文档"
|
|
12
|
+
message: |
|
|
13
|
+
你是一名计划文档审查员。验证此计划是否完整并准备好进行实现。
|
|
14
|
+
|
|
15
|
+
**待审查计划:** [PLAN_FILE_PATH 或 PLAN_DIR_PATH]
|
|
16
|
+
**参考规格:** [SPEC_FILE_PATH]
|
|
17
|
+
|
|
18
|
+
## 审查模式
|
|
19
|
+
|
|
20
|
+
单文件(plan.md):直接审查。
|
|
21
|
+
|
|
22
|
+
目录化(plan/):
|
|
23
|
+
1. 读 plan/index.md 了解执行顺序
|
|
24
|
+
2. 逐个审查 chunk 文件
|
|
25
|
+
3. 重点检查:每个 chunk 是否自包含(协调器只读该 chunk 就能执行)
|
|
26
|
+
|
|
27
|
+
## 检查内容
|
|
28
|
+
|
|
29
|
+
| 类别 | 检查要点 |
|
|
30
|
+
|------|----------|
|
|
31
|
+
| 完整性 | TODO、占位符、不完整的任务、缺失的步骤 |
|
|
32
|
+
| 规格对齐 | 计划覆盖了规格需求,没有重大范围蔓延 |
|
|
33
|
+
| 任务分解 | 任务有清晰的边界,步骤可执行 |
|
|
34
|
+
| 可构建性 | 工程师能否按此计划执行而不会卡住? |
|
|
35
|
+
| 接口契约 | 每个任务的依赖/产出接口有完整类型签名 |
|
|
36
|
+
| 自包含性 | (目录模式)chunk 不依赖"见其他 chunk"的引用 |
|
|
37
|
+
|
|
38
|
+
## 校准标准
|
|
39
|
+
|
|
40
|
+
**只标记会在实现阶段造成实际问题的事项。**
|
|
41
|
+
|
|
42
|
+
特别关注:
|
|
43
|
+
- 任务写了"见 auth.md"但没有内联接口定义 → 必须标记
|
|
44
|
+
- 接口契约缺少类型签名或参数说明 → 必须标记
|
|
45
|
+
- 任务步骤描述清晰但缺少验证方式 → 建议(不阻止)
|
|
46
|
+
|
|
47
|
+
除非存在严重缺陷——规格中的需求遗漏、
|
|
48
|
+
矛盾的步骤、占位内容、或者模糊到无法执行的任务——否则应予以通过。
|
|
49
|
+
|
|
50
|
+
## 输出格式
|
|
51
|
+
|
|
52
|
+
## 计划审查
|
|
53
|
+
|
|
54
|
+
**状态:** 通过 | 发现问题
|
|
55
|
+
|
|
56
|
+
**问题(如有):**
|
|
57
|
+
- [任务 X,步骤 Y]:[具体问题] - [为什么这对实现很重要]
|
|
58
|
+
|
|
59
|
+
**建议(仅供参考,不阻止通过):**
|
|
60
|
+
- [改进建议]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**审查员返回:** 状态、问题(如有)、建议
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
id: "writing-plans"
|
|
2
|
+
version: "2.0.0"
|
|
3
|
+
name: "write-plans"
|
|
4
|
+
description: "将规格拆解为实现计划"
|
|
5
|
+
category: "core"
|
|
6
|
+
phase: "phase-3"
|
|
7
|
+
source: "superpowers"
|
|
8
|
+
dependencies: ["opsx:propose"]
|
|
9
|
+
inputs: ["openspec/changes/{name}/specs.md"]
|
|
10
|
+
outputs: ["openspec/changes/{name}/plan.md"]
|
|
11
|
+
size: "medium"
|
|
12
|
+
cache_ttl: "30d"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: "locale:zh-CN:chinese-code-review"
|
|
2
|
+
version: "2.0.0"
|
|
3
|
+
name: "chinese-code-review"
|
|
4
|
+
description: "中文代码审查规范"
|
|
5
|
+
category: "locale"
|
|
6
|
+
phase: "on-demand"
|
|
7
|
+
source: "superpowers"
|
|
8
|
+
trigger_conditions:
|
|
9
|
+
- type: user_config
|
|
10
|
+
key: "locale"
|
|
11
|
+
value: "zh-CN"
|
|
12
|
+
dependencies: []
|
|
13
|
+
inputs: []
|
|
14
|
+
outputs: []
|
|
15
|
+
size: "small"
|
|
16
|
+
cache_ttl: "30d"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# chinese-commit-conventions - 中文提交规范
|
|
2
|
+
|
|
3
|
+
## 用途
|
|
4
|
+
|
|
5
|
+
适配国内团队的 Git commit message 规范,支持 changelog 自动化生成。
|
|
6
|
+
|
|
7
|
+
## 触发条件
|
|
8
|
+
|
|
9
|
+
- 用户 locale 配置为 zh-CN 时自动加载
|
|
10
|
+
- 创建 Git 提交时自动应用
|
|
11
|
+
|
|
12
|
+
## 核心流程
|
|
13
|
+
|
|
14
|
+
1. 使用中文编写 commit message
|
|
15
|
+
2. 遵循约定式提交格式(feat/fix/docs/style/refactor/test/chore)
|
|
16
|
+
3. 在 description 中使用中文描述变更内容
|
|
17
|
+
4. 确保 message 可被 changelog 工具正确解析
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: "locale:zh-CN:chinese-commit-conventions"
|
|
2
|
+
version: "2.0.0"
|
|
3
|
+
name: "chinese-commit-conventions"
|
|
4
|
+
description: "中文 Git 提交规范"
|
|
5
|
+
category: "locale"
|
|
6
|
+
phase: "on-demand"
|
|
7
|
+
source: "superpowers"
|
|
8
|
+
trigger_conditions:
|
|
9
|
+
- type: user_config
|
|
10
|
+
key: "locale"
|
|
11
|
+
value: "zh-CN"
|
|
12
|
+
dependencies: []
|
|
13
|
+
inputs: []
|
|
14
|
+
outputs: []
|
|
15
|
+
size: "small"
|
|
16
|
+
cache_ttl: "30d"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# chinese-documentation - 中文技术文档
|
|
2
|
+
|
|
3
|
+
## 用途
|
|
4
|
+
|
|
5
|
+
中文技术文档写作规范,确保排版、术语、结构一步到位,告别机翻味。
|
|
6
|
+
|
|
7
|
+
## 触发条件
|
|
8
|
+
|
|
9
|
+
- 用户 locale 配置为 zh-CN 时自动加载
|
|
10
|
+
- 编写技术文档时自动应用
|
|
11
|
+
|
|
12
|
+
## 核心流程
|
|
13
|
+
|
|
14
|
+
1. 使用规范的中文技术术语
|
|
15
|
+
2. 遵循中文排版规范(标点、空格、数字)
|
|
16
|
+
3. 采用清晰的文档结构(标题层级、列表、代码块)
|
|
17
|
+
4. 避免生硬的翻译腔,使用自然的中文表达
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: "locale:zh-CN:chinese-documentation"
|
|
2
|
+
version: "2.0.0"
|
|
3
|
+
name: "chinese-documentation"
|
|
4
|
+
description: "中文技术文档写作规范"
|
|
5
|
+
category: "locale"
|
|
6
|
+
phase: "on-demand"
|
|
7
|
+
source: "superpowers"
|
|
8
|
+
trigger_conditions:
|
|
9
|
+
- type: user_config
|
|
10
|
+
key: "locale"
|
|
11
|
+
value: "zh-CN"
|
|
12
|
+
dependencies: []
|
|
13
|
+
inputs: []
|
|
14
|
+
outputs: []
|
|
15
|
+
size: "small"
|
|
16
|
+
cache_ttl: "30d"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# chinese-git-workflow - 中文 Git 工作流
|
|
2
|
+
|
|
3
|
+
## 用途
|
|
4
|
+
|
|
5
|
+
适配国内 Git 平台(Gitee、Coding、极狐 GitLab、CNB)和团队习惯的工作流规范。
|
|
6
|
+
|
|
7
|
+
## 触发条件
|
|
8
|
+
|
|
9
|
+
- 用户 locale 配置为 zh-CN 时自动加载
|
|
10
|
+
- 执行 Git 工作流操作时自动应用
|
|
11
|
+
|
|
12
|
+
## 核心流程
|
|
13
|
+
|
|
14
|
+
1. 适配国内 Git 平台的特性和限制
|
|
15
|
+
2. 遵循国内团队的分支命名和合并策略
|
|
16
|
+
3. 使用中文编写 PR/MR 描述和评审意见
|
|
17
|
+
4. 处理国内平台特有的 CI/CD 集成问题
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: "locale:zh-CN:chinese-git-workflow"
|
|
2
|
+
version: "2.0.0"
|
|
3
|
+
name: "chinese-git-workflow"
|
|
4
|
+
description: "适配国内 Git 平台的工作流规范"
|
|
5
|
+
category: "locale"
|
|
6
|
+
phase: "on-demand"
|
|
7
|
+
source: "superpowers"
|
|
8
|
+
trigger_conditions:
|
|
9
|
+
- type: user_config
|
|
10
|
+
key: "locale"
|
|
11
|
+
value: "zh-CN"
|
|
12
|
+
dependencies: []
|
|
13
|
+
inputs: []
|
|
14
|
+
outputs: []
|
|
15
|
+
size: "small"
|
|
16
|
+
cache_ttl: "30d"
|