@chenmk/superflow 0.1.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.
Files changed (198) hide show
  1. package/INSTALL.en.md +106 -0
  2. package/INSTALL.md +664 -0
  3. package/LICENSE +21 -0
  4. package/README.md +142 -0
  5. package/README.zh-CN.md +117 -0
  6. package/assets/context-templates/business-rules.md +98 -0
  7. package/assets/context-templates/decisions.md +153 -0
  8. package/assets/context-templates/external-systems.md +166 -0
  9. package/assets/context-templates/incidents.md +89 -0
  10. package/assets/manifest.json +53 -0
  11. package/assets/prompts/superflow-archive.md +9 -0
  12. package/assets/prompts/superflow-clarify.md +10 -0
  13. package/assets/prompts/superflow-design.md +10 -0
  14. package/assets/prompts/superflow-docs.md +10 -0
  15. package/assets/prompts/superflow-implement.md +10 -0
  16. package/assets/prompts/superflow-pipeline.md +13 -0
  17. package/assets/prompts/superflow-verify.md +10 -0
  18. package/assets/rules/superflow-phase-guard.md +50 -0
  19. package/assets/scripts/claude-auto-backup-hook.sh +313 -0
  20. package/assets/scripts/codex-auto-backup-hook.sh +361 -0
  21. package/assets/scripts/install-sql-pre-commit.sh +44 -0
  22. package/assets/scripts/superflow-contract-hooks.sh +744 -0
  23. package/assets/scripts/superflow-delivery-check.sh +315 -0
  24. package/assets/scripts/superflow-dependency-update-hook.sh +161 -0
  25. package/assets/scripts/superflow-enforce-hook.sh +70 -0
  26. package/assets/scripts/superflow-hook-guard.sh +132 -0
  27. package/assets/scripts/superflow-integration-evidence-hook.sh +80 -0
  28. package/assets/scripts/superflow-sql-sync-hook.py +950 -0
  29. package/assets/scripts/superflow-test-report-lint.py +433 -0
  30. package/assets/scripts/superflow-verify-integration.sh +90 -0
  31. package/assets/scripts/sync-settings-json.py +52 -0
  32. package/assets/skills/api-doc-changelog/SKILL.md +193 -0
  33. package/assets/skills/openspec-apply-change/SKILL.md +156 -0
  34. package/assets/skills/openspec-archive-change/SKILL.md +114 -0
  35. package/assets/skills/openspec-explore/SKILL.md +288 -0
  36. package/assets/skills/openspec-propose/SKILL.md +110 -0
  37. package/assets/skills/superflow-archive/SKILL.md +61 -0
  38. package/assets/skills/superflow-clarify/SKILL.md +146 -0
  39. package/assets/skills/superflow-clarify/agents/openai.yaml +4 -0
  40. package/assets/skills/superflow-design/SKILL.md +83 -0
  41. package/assets/skills/superflow-design/agents/openai.yaml +4 -0
  42. package/assets/skills/superflow-docs/SKILL.md +316 -0
  43. package/assets/skills/superflow-docs/agents/openai.yaml +4 -0
  44. package/assets/skills/superflow-hotfix/SKILL.md +48 -0
  45. package/assets/skills/superflow-implement/SKILL.md +461 -0
  46. package/assets/skills/superflow-implement/agents/openai.yaml +4 -0
  47. package/assets/skills/superflow-pipeline/SKILL.md +844 -0
  48. package/assets/skills/superflow-pipeline/agents/openai.yaml +4 -0
  49. package/assets/skills/superflow-pipeline/references/api-design-template.md +431 -0
  50. package/assets/skills/superflow-pipeline/references/architecture-design-template.md +119 -0
  51. package/assets/skills/superflow-pipeline/references/batch-prompt-template.md +536 -0
  52. package/assets/skills/superflow-pipeline/references/batch-split-guide.md +140 -0
  53. package/assets/skills/superflow-pipeline/references/decision-point.md +30 -0
  54. package/assets/skills/superflow-pipeline/references/dirty-worktree.md +35 -0
  55. package/assets/skills/superflow-pipeline/references/document-templates.md +123 -0
  56. package/assets/skills/superflow-pipeline/references/feature-gated-workflow.md +124 -0
  57. package/assets/skills/superflow-pipeline/references/implementation-prompt-template.md +1056 -0
  58. package/assets/skills/superflow-pipeline/references/mock-strategy-guide.md +86 -0
  59. package/assets/skills/superflow-pipeline/references/openspec-format.md +57 -0
  60. package/assets/skills/superflow-pipeline/references/orchestration.md +639 -0
  61. package/assets/skills/superflow-pipeline/references/p0-baseline-template.md +174 -0
  62. package/assets/skills/superflow-pipeline/references/project-config.md +40 -0
  63. package/assets/skills/superflow-pipeline/references/prompt-usage-template.md +152 -0
  64. package/assets/skills/superflow-pipeline/references/quality-gate.md +299 -0
  65. package/assets/skills/superflow-pipeline/references/quality-standards.md +190 -0
  66. package/assets/skills/superflow-pipeline/references/reviewer-checklist.md +154 -0
  67. package/assets/skills/superflow-pipeline/references/sql-risk-review-checklist.md +323 -0
  68. package/assets/skills/superflow-pipeline/references/subagent-progress.md +90 -0
  69. package/assets/skills/superflow-pipeline/references/superpower-technical-design-template.md +125 -0
  70. package/assets/skills/superflow-pipeline/references/test-execution-template.md +220 -0
  71. package/assets/skills/superflow-pipeline/references/test-guide.md +30 -0
  72. package/assets/skills/superflow-pipeline/references/traceability-matrix.md +106 -0
  73. package/assets/skills/superflow-pipeline/references/validation-integrity.md +134 -0
  74. package/assets/skills/superflow-pipeline/scripts/superflow-archive.sh +178 -0
  75. package/assets/skills/superflow-pipeline/scripts/superflow-env.sh +118 -0
  76. package/assets/skills/superflow-pipeline/scripts/superflow-guard.sh +428 -0
  77. package/assets/skills/superflow-pipeline/scripts/superflow-handoff.sh +296 -0
  78. package/assets/skills/superflow-pipeline/scripts/superflow-state.sh +574 -0
  79. package/assets/skills/superflow-pipeline/scripts/superflow-status.sh +172 -0
  80. package/assets/skills/superflow-pipeline/scripts/superflow-yaml-validate.sh +138 -0
  81. package/assets/skills/superflow-table-impact-analysis/SKILL.md +77 -0
  82. package/assets/skills/superflow-tweak/SKILL.md +46 -0
  83. package/assets/skills/superflow-verify/SKILL.md +112 -0
  84. package/assets/skills-en/api-doc-changelog/SKILL.md +193 -0
  85. package/assets/skills-en/openspec-apply-change/SKILL.md +156 -0
  86. package/assets/skills-en/openspec-archive-change/SKILL.md +114 -0
  87. package/assets/skills-en/openspec-explore/SKILL.md +288 -0
  88. package/assets/skills-en/openspec-propose/SKILL.md +110 -0
  89. package/assets/skills-en/superflow-archive/SKILL.md +61 -0
  90. package/assets/skills-en/superflow-clarify/SKILL.md +146 -0
  91. package/assets/skills-en/superflow-clarify/agents/openai.yaml +4 -0
  92. package/assets/skills-en/superflow-design/SKILL.md +83 -0
  93. package/assets/skills-en/superflow-design/agents/openai.yaml +4 -0
  94. package/assets/skills-en/superflow-docs/SKILL.md +316 -0
  95. package/assets/skills-en/superflow-docs/agents/openai.yaml +4 -0
  96. package/assets/skills-en/superflow-hotfix/SKILL.md +48 -0
  97. package/assets/skills-en/superflow-implement/SKILL.md +461 -0
  98. package/assets/skills-en/superflow-implement/agents/openai.yaml +4 -0
  99. package/assets/skills-en/superflow-pipeline/SKILL.md +844 -0
  100. package/assets/skills-en/superflow-pipeline/agents/openai.yaml +4 -0
  101. package/assets/skills-en/superflow-pipeline/references/api-design-template.md +431 -0
  102. package/assets/skills-en/superflow-pipeline/references/architecture-design-template.md +119 -0
  103. package/assets/skills-en/superflow-pipeline/references/batch-prompt-template.md +536 -0
  104. package/assets/skills-en/superflow-pipeline/references/batch-split-guide.md +140 -0
  105. package/assets/skills-en/superflow-pipeline/references/decision-point.md +30 -0
  106. package/assets/skills-en/superflow-pipeline/references/dirty-worktree.md +35 -0
  107. package/assets/skills-en/superflow-pipeline/references/document-templates.md +123 -0
  108. package/assets/skills-en/superflow-pipeline/references/feature-gated-workflow.md +124 -0
  109. package/assets/skills-en/superflow-pipeline/references/implementation-prompt-template.md +1056 -0
  110. package/assets/skills-en/superflow-pipeline/references/mock-strategy-guide.md +86 -0
  111. package/assets/skills-en/superflow-pipeline/references/openspec-format.md +57 -0
  112. package/assets/skills-en/superflow-pipeline/references/orchestration.md +639 -0
  113. package/assets/skills-en/superflow-pipeline/references/p0-baseline-template.md +174 -0
  114. package/assets/skills-en/superflow-pipeline/references/project-config.md +40 -0
  115. package/assets/skills-en/superflow-pipeline/references/prompt-usage-template.md +152 -0
  116. package/assets/skills-en/superflow-pipeline/references/quality-gate.md +299 -0
  117. package/assets/skills-en/superflow-pipeline/references/quality-standards.md +190 -0
  118. package/assets/skills-en/superflow-pipeline/references/reviewer-checklist.md +154 -0
  119. package/assets/skills-en/superflow-pipeline/references/sql-risk-review-checklist.md +323 -0
  120. package/assets/skills-en/superflow-pipeline/references/subagent-progress.md +90 -0
  121. package/assets/skills-en/superflow-pipeline/references/superpower-technical-design-template.md +125 -0
  122. package/assets/skills-en/superflow-pipeline/references/test-execution-template.md +220 -0
  123. package/assets/skills-en/superflow-pipeline/references/test-guide.md +30 -0
  124. package/assets/skills-en/superflow-pipeline/references/traceability-matrix.md +106 -0
  125. package/assets/skills-en/superflow-pipeline/references/validation-integrity.md +134 -0
  126. package/assets/skills-en/superflow-pipeline/scripts/superflow-archive.sh +178 -0
  127. package/assets/skills-en/superflow-pipeline/scripts/superflow-env.sh +118 -0
  128. package/assets/skills-en/superflow-pipeline/scripts/superflow-guard.sh +428 -0
  129. package/assets/skills-en/superflow-pipeline/scripts/superflow-handoff.sh +296 -0
  130. package/assets/skills-en/superflow-pipeline/scripts/superflow-state.sh +574 -0
  131. package/assets/skills-en/superflow-pipeline/scripts/superflow-status.sh +172 -0
  132. package/assets/skills-en/superflow-pipeline/scripts/superflow-yaml-validate.sh +138 -0
  133. package/assets/skills-en/superflow-table-impact-analysis/SKILL.md +77 -0
  134. package/assets/skills-en/superflow-tweak/SKILL.md +46 -0
  135. package/assets/skills-en/superflow-verify/SKILL.md +112 -0
  136. package/dist/cli/index.js +186 -0
  137. package/dist/cli/index.js.map +1 -0
  138. package/dist/commands/archive.js +6 -0
  139. package/dist/commands/archive.js.map +1 -0
  140. package/dist/commands/clarify.js +6 -0
  141. package/dist/commands/clarify.js.map +1 -0
  142. package/dist/commands/design.js +6 -0
  143. package/dist/commands/design.js.map +1 -0
  144. package/dist/commands/docs.js +6 -0
  145. package/dist/commands/docs.js.map +1 -0
  146. package/dist/commands/doctor.js +473 -0
  147. package/dist/commands/doctor.js.map +1 -0
  148. package/dist/commands/implement.js +6 -0
  149. package/dist/commands/implement.js.map +1 -0
  150. package/dist/commands/init.js +471 -0
  151. package/dist/commands/init.js.map +1 -0
  152. package/dist/commands/pipeline.js +6 -0
  153. package/dist/commands/pipeline.js.map +1 -0
  154. package/dist/commands/scan.js +59 -0
  155. package/dist/commands/scan.js.map +1 -0
  156. package/dist/commands/status.js +173 -0
  157. package/dist/commands/status.js.map +1 -0
  158. package/dist/commands/uninstall.js +213 -0
  159. package/dist/commands/uninstall.js.map +1 -0
  160. package/dist/commands/update.js +187 -0
  161. package/dist/commands/update.js.map +1 -0
  162. package/dist/commands/verify.js +6 -0
  163. package/dist/commands/verify.js.map +1 -0
  164. package/dist/core/assets.js +27 -0
  165. package/dist/core/assets.js.map +1 -0
  166. package/dist/core/context.js +100 -0
  167. package/dist/core/context.js.map +1 -0
  168. package/dist/core/dependencies.js +146 -0
  169. package/dist/core/dependencies.js.map +1 -0
  170. package/dist/core/detect.js +71 -0
  171. package/dist/core/detect.js.map +1 -0
  172. package/dist/core/i18n.js +103 -0
  173. package/dist/core/i18n.js.map +1 -0
  174. package/dist/core/integrity.js +46 -0
  175. package/dist/core/integrity.js.map +1 -0
  176. package/dist/core/manifest.js +18 -0
  177. package/dist/core/manifest.js.map +1 -0
  178. package/dist/core/prompts.js +20 -0
  179. package/dist/core/prompts.js.map +1 -0
  180. package/dist/core/registry.js +134 -0
  181. package/dist/core/registry.js.map +1 -0
  182. package/dist/core/rules.js +17 -0
  183. package/dist/core/rules.js.map +1 -0
  184. package/dist/core/scripts.js +40 -0
  185. package/dist/core/scripts.js.map +1 -0
  186. package/dist/core/skill-check.js +31 -0
  187. package/dist/core/skill-check.js.map +1 -0
  188. package/dist/core/skills.js +56 -0
  189. package/dist/core/skills.js.map +1 -0
  190. package/dist/core/state.js +43 -0
  191. package/dist/core/state.js.map +1 -0
  192. package/dist/types.js +2 -0
  193. package/dist/types.js.map +1 -0
  194. package/dist/utils/path.js +11 -0
  195. package/dist/utils/path.js.map +1 -0
  196. package/dist/utils/shell.js +29 -0
  197. package/dist/utils/shell.js.map +1 -0
  198. package/package.json +60 -0
@@ -0,0 +1,89 @@
1
+ # 历史事故
2
+
3
+ > **初始版来源**:`openspec/changes/v1.1-add-charging-package-suite/bug-archive/yunxiao-2026-06-02-pending-confirmation/`(云效 2026-06-02 待确认批次)+ sdd-cli 引用过的 P 编号
4
+ > **维护方**:测试 + 开发
5
+ > **自动化率**:20-40%(commit "fix" + 注释 "FIX" 可挖,PR 描述/issue tracker 不可访问——私有仓)
6
+
7
+ ## 1. v1.1 充电套餐批次(2026-06-02 云效待确认)
8
+
9
+ 来源目录:`openspec/changes/v1.1-add-charging-package-suite/bug-archive/yunxiao-2026-06-02-pending-confirmation/`
10
+ 原始文件:HTML(云效导出) + `raw-bugs.json`(待解析)
11
+
12
+ ### 1.1 套餐运营商 / 站点相关
13
+
14
+ | CDPT | 标题 | 状态 | 关联规则 |
15
+ |------|------|------|---------|
16
+ | CDPT-165 | 创建套餐的查询条件,运营商与查询结果不匹配,创建的套餐是其他运营商的 | 待修复 | [business-rules §1.1](./business-rules.md#11-套餐业务) |
17
+ | CDPT-171 | 应限制同一个站点不能创建相同名称的优惠套餐 | 待修复 | §1.1 |
18
+ | CDPT-192 | 修改充电套餐的适用站点后,已开通套餐的记录,适用站点没有更新 | 待修复 | §1.1 |
19
+ | CDPT-166 | 创建套餐页面,导出 Excel 中的使用站点列展示错误 | 待修复 | §4 |
20
+ | CDPT-158 | 充电套餐的有效时段,应该允许跨天 | 待修复 | §1.1 |
21
+ | CDPT-175 | 同车牌不同套餐、不同有效时间段 — 应该允许开通 | 待修复 | §1.1 |
22
+
23
+ ### 1.2 退款 / 对账 / 权益同步
24
+
25
+ | CDPT | 标题 | 状态 | 关联规则 |
26
+ |------|------|------|---------|
27
+ | CDPT-186 | 充电套餐退款后,停车月票权益在 BEM 没有同步退款 | 待修复 | [business-rules §1.2](./business-rules.md#12-计费--退款--对账) |
28
+ | CDPT-189 | 已退款的优惠套餐订单,扫码开票提示需优化 | 待修复 | §3 |
29
+ | CDPT-169 | 续费充电套餐(停车月票),BEM 没有对该月票订单续费 | 待修复 | §6 |
30
+ | CDPT-193 | 充电套餐适用多个站点时,无法开票 | 待修复 | §1.1 |
31
+
32
+ ### 1.3 批量开通 / 续费 / 退款
33
+
34
+ | CDPT | 标题 | 状态 | 关联规则 |
35
+ |------|------|------|---------|
36
+ | CDPT-185 | 批量开通、续费、退款模板中手机号应支持填写 1 个或 2 个手机号 | 待修复 | [business-rules §2.1](./business-rules.md#21-批量开通--续费--退款) |
37
+ | CDPT-180 | 批量开通、续费、退费时,遇到错误/异常数据整批数据都不插入业务系统,明确提示哪一行,哪个字段数据异常 | 待修复 | §2.1 |
38
+ | CDPT-181 | 问题 1:批量开通上传文件类型错误时的提示需优化;问题 2:导入空的 Excel 模板也提示成功 | 待修复 | §2.1、§2.2 |
39
+ | CDPT-178 | 批量开通、续费、退费模版字段,必填字段应加入【必填】两个字 | 待修复 | §2.1 |
40
+ | CDPT-179 | 批量开通充电套餐,选择当天,1 天有效期,开通记录显示已过期。在页面开通显示生效中 | 待修复 | §2.1 |
41
+ | CDPT-198 | 批量导入车位枪的文件格式错误,提示需优化 | 待修复 | §2.2 |
42
+ | CDPT-199 | 站点没有绑定车位枪时,站点的【启用车位枪】按钮不允许打开 | 待修复 | [business-rules §1.3](./business-rules.md#13-车位--设备) |
43
+
44
+ ### 1.4 导出 / 查询 / 字段
45
+
46
+ | CDPT | 标题 | 状态 | 关联规则 |
47
+ |------|------|------|---------|
48
+ | CDPT-188 | 套餐开通记录导出,剩余充电额度为不限额时,导出内容错误 | 待修复 | [business-rules §4](./business-rules.md#4-数据权限--字段约束) |
49
+ | CDPT-177 | 开通套餐记录导出的 Excel 中不要合并不连续的有效期 | 待修复 | §4 |
50
+ | CDPT-173 | 开通套餐页面的查询条件,【车牌号码】应支持模糊查询 | 待修复 | §4 |
51
+ | CDPT-164 | 开通套餐的记录中,最近操作人取值错误(admin 后台开通) | 待修复 | §4 |
52
+ | CDPT-163 | 开通充电套餐后,扫码开启充电,没有套餐可用 | 待修复 | §3 |
53
+ | CDPT-194 | 停车权益记录,适用车场的名称没展示 | 待修复 | §4 |
54
+
55
+ ## 2. 历史 P 编号记录(sdd-cli 引用过)
56
+
57
+ 来源:`sdd-cli/assets/skills/superflow-implement/SKILL.md` 等地方提到的 P 编号示例
58
+
59
+ | P 编号 | 描述 | 备注 |
60
+ |--------|------|------|
61
+ | P50 | worktree 启动端口示例(base 9250 → 9300) | 端口计算约定 |
62
+ | P64 | prompt 命名示例(p64-export-plot-display.md) | 命名约定 |
63
+
64
+ > **注**:完整 P 编号历史应从 git log + openspec/changes/archive/ 反推。本文件仅记录 sdd-cli 显式引用的。
65
+
66
+ ## 3. 事故复盘模板
67
+
68
+ 每条事故建议补充以下信息(自动化扫不到,需人工补):
69
+
70
+ ```markdown
71
+ ### CDPT-XXX: <标题>
72
+
73
+ - **发现时间**:YYYY-MM-DD
74
+ - **发现渠道**:云效 / QA / 线上报警 / 客户反馈
75
+ - **根因**:(一句话说清楚,不要泛泛说"业务逻辑错误")
76
+ - **影响范围**:(哪些模块 / 哪些数据 / 多少用户 / 持续多久)
77
+ - **修复 commit**:(`git log --grep="CDPT-XXX"` 拿 SHA)
78
+ - **修复时间**:YYYY-MM-DD
79
+ - **复盘人**:<name>
80
+ - **预防措施**:(代码 / 流程 / 测试 哪一层加固)
81
+ - **关联规则**:[business-rules.md §X.Y](./business-rules.md)
82
+ ```
83
+
84
+ ## 4. 维护提示
85
+
86
+ - **不要直接复制云效 HTML**——内容里含截图/附件链接,存 md 里维护性差
87
+ - 建议用 `raw-bugs.json` 解析后写本文件(一次性脚本)
88
+ - 后期可让 LLM 帮补全"根因 / 影响范围"等结构化字段
89
+ - 修复完成后这条记录可以从"待修复"挪到"已闭环"区
@@ -0,0 +1,53 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "agents": ["claude", "codex"],
4
+ "skills": [
5
+ "openspec-apply-change",
6
+ "openspec-archive-change",
7
+ "openspec-explore",
8
+ "openspec-propose",
9
+ "superflow-archive",
10
+ "superflow-clarify",
11
+ "superflow-design",
12
+ "superflow-docs",
13
+ "superflow-hotfix",
14
+ "superflow-implement",
15
+ "superflow-pipeline",
16
+ "superflow-table-impact-analysis",
17
+ "superflow-tweak",
18
+ "superflow-verify"
19
+ ],
20
+ "rules": [
21
+ "superflow-phase-guard.md"
22
+ ],
23
+ "scripts": [
24
+ "superflow-verify-integration.sh",
25
+ "superflow-delivery-check.sh",
26
+ "superflow-sql-sync-hook.py",
27
+ "superflow-contract-hooks.sh",
28
+ "superflow-enforce-hook.sh",
29
+ "superflow-hook-guard.sh",
30
+ "superflow-dependency-update-hook.sh",
31
+ "superflow-integration-evidence-hook.sh",
32
+ "superflow-test-report-lint.py",
33
+ "install-sql-pre-commit.sh",
34
+ "sync-settings-json.py"
35
+ ],
36
+ "agentScripts": {
37
+ "claude": ["claude-auto-backup-hook.sh"],
38
+ "codex": ["codex-auto-backup-hook.sh"]
39
+ },
40
+ "hooks": [
41
+ "superflow-enforce-hook.sh",
42
+ "superflow-hook-guard.sh",
43
+ "superflow-contract-hooks.sh",
44
+ "superflow-dependency-update-hook.sh",
45
+ "superflow-sql-sync-hook.py",
46
+ "superflow-delivery-check.sh",
47
+ "superflow-integration-evidence-hook.sh"
48
+ ],
49
+ "agentHooks": {
50
+ "claude": ["claude-auto-backup-hook.sh"],
51
+ "codex": ["codex-auto-backup-hook.sh"]
52
+ }
53
+ }
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: Archive a verified SuperBridge Flow change
3
+ argument-hint: change directory
4
+ ---
5
+
6
+ Use the `superflow-archive` skill for this request.
7
+
8
+ Archive only after verification has passed and the user confirms lifecycle
9
+ closeout. Run the archive guard and keep final state files consistent.
@@ -0,0 +1,10 @@
1
+ ---
2
+ description: Clarify and freeze a complex SuperBridge Flow requirement
3
+ argument-hint: requirement source or section
4
+ ---
5
+
6
+ Use the `superflow-clarify` skill for this request.
7
+
8
+ Read the requested source in bounded sections, freeze one feature or section at
9
+ a time, and stop for missing product/API/DB facts before OpenSpec artifacts are
10
+ created.
@@ -0,0 +1,10 @@
1
+ ---
2
+ description: Create source-level SuperBridge Flow technical design
3
+ argument-hint: change directory
4
+ ---
5
+
6
+ Use the `superflow-design` skill for this request.
7
+
8
+ Let Superpowers handle source-level HOW: inspect real code, reverse impact,
9
+ field references, TDD strategy, worker split, worktree and port planning. Do not
10
+ rewrite OpenSpec contracts unless a conflict is found and returned to docs.
@@ -0,0 +1,10 @@
1
+ ---
2
+ description: Generate or strengthen SuperBridge Flow contract documents
3
+ argument-hint: change directory or requirement
4
+ ---
5
+
6
+ Use the `superflow-docs` skill for this request.
7
+
8
+ Keep OpenSpec as the source of WHAT and contracts. Ensure API, DB, tests,
9
+ traceability, quality gates, and handoff files are complete before technical
10
+ design starts.
@@ -0,0 +1,10 @@
1
+ ---
2
+ description: Create SuperBridge Flow implementation prompts
3
+ argument-hint: change directory or task id
4
+ ---
5
+
6
+ Use the `superflow-implement` skill for this request.
7
+
8
+ Generate bounded implementation prompts that inherit the latest handoff hash,
9
+ include concrete interface/database/log verification, and preserve root document
10
+ closeout ownership.
@@ -0,0 +1,13 @@
1
+ ---
2
+ description: Run the SuperBridge Flow router
3
+ argument-hint: requirement or change description
4
+ ---
5
+
6
+ Use the `superflow-pipeline` skill for this request.
7
+
8
+ Route the work through the correct SuperBridge Flow phase. OpenSpec owns WHAT
9
+ and contracts; Superpowers owns source-level HOW. Preserve handoff state and run
10
+ the required SuperBridge Flow guards before phase transitions.
11
+
12
+ Input: treat the argument after `/superflow-pipeline` as the requirement,
13
+ document path, or change description.
@@ -0,0 +1,10 @@
1
+ ---
2
+ description: Verify a SuperBridge Flow change
3
+ argument-hint: change directory
4
+ ---
5
+
6
+ Use the `superflow-verify` skill for this request.
7
+
8
+ Reload the handoff and verification evidence from files, run the required
9
+ guards and review checks, and only advance when implementation evidence is
10
+ current and complete.
@@ -0,0 +1,50 @@
1
+ # SDD Phase Guard
2
+
3
+ This rule is a lightweight anti-drift reminder for Codex and Claude Code.
4
+ When an active SDD/OpenSpec change exists, read
5
+ `openspec/changes/<name>/.sdd/state.yaml` before editing files or running
6
+ phase-changing commands.
7
+
8
+ ## Phase Awareness
9
+
10
+ | phase | allowed | blocked |
11
+ | --- | --- | --- |
12
+ | `docs` | clarify requirements, OpenSpec artifacts, SDD contract docs, handoff | runtime code changes |
13
+ | `design` | Superpowers technical design, reverse impact analysis, TDD strategy | runtime code changes before design guard |
14
+ | `implement` | implementation, TDD, worktree coordination, task checkoff | skipping plan/user decisions |
15
+ | `verify` | verification, code review, branch/worktree closeout | hiding failed or partial evidence |
16
+ | `archive` | final user confirmation, archive script | source code changes |
17
+ | `done` | read-only inspection | lifecycle changes without reopen |
18
+
19
+ ## Required Checkpoints
20
+
21
+ - Use `.sdd/handoff/brainstorm-summary.md` during changing requirements or
22
+ design discussion; separate confirmed, candidate, pending, and rejected
23
+ content.
24
+ - After `brainstorm-summary.md` is finalized and before creating or rewriting
25
+ `design.md`, perform the active context-compression gate or get explicit user
26
+ confirmation to continue.
27
+ - Before Superpowers planning or implementation prompts, generate
28
+ `.sdd/handoff/sdd-context.*` and record its hash in SDD quality gates.
29
+ - During `phase: design`, create
30
+ `docs/superpowers/specs/*-technical-design.md`, record it as
31
+ `technical_design` in `.sdd/state.yaml`, and keep it limited to source-level
32
+ HOW. OpenSpec/SDD still owns requirements, API, DB, tests, SQL, and gates.
33
+ - During `phase: implement`, `prompt/implementation.md` and task prompts under
34
+ `prompt/<task-name>.md` must exist and be cross-linked from tasks,
35
+ traceability, quality gate, and test-report before verification.
36
+ - After context compression, agent switch, worktree switch, or parallel terminal
37
+ handoff, run `superflow-state.sh recover <change-dir>` and follow the printed
38
+ recovery action.
39
+ - If `build_pause: plan-ready`, do not regenerate the plan unless the plan file
40
+ is missing or the user explicitly asks for a rewrite.
41
+ - If `build_mode: subagent-driven-development`, the main session coordinates
42
+ only; read `.sdd/subagent-progress.md` and do not execute worker tasks
43
+ directly.
44
+ - Build must complete `requesting-code-review` before transitioning to verify.
45
+ - Verify must use `verification-before-completion`; archive requires explicit
46
+ user confirmation and `superflow-archive.sh`.
47
+
48
+ OpenSpec/SDD documents remain the design source of truth. Handoff and rules are
49
+ recovery aids; when they conflict with source documents, read and fix the source
50
+ documents first.
@@ -0,0 +1,313 @@
1
+ #!/bin/bash
2
+ # Claude Code global experience auto backup hook.
3
+ # Syncs curated ~/.claude development experience into code-cli-config/claude-code-setup,
4
+ # then commits the backup repository. Push requires explicit --push-once.
5
+
6
+ set -u
7
+
8
+ CLAUDE_HOME="${CLAUDE_HOME:-$HOME/.claude}"
9
+ CONFIG_REPO="${CLAUDE_CONFIG_REPO:-/Users/chenmankun/cmk-project/code-cli-config}"
10
+ BACKUP_ROOT="$CONFIG_REPO/claude-code-setup"
11
+ LOCK_DIR="${TMPDIR:-/tmp}/claude-auto-backup.lock"
12
+
13
+ usage() {
14
+ cat <<'USAGE'
15
+ 用法:
16
+ claude-auto-backup-hook.sh [--force] [--dry-run] [--push-once]
17
+
18
+ 环境变量:
19
+ CLAUDE_AUTO_BACKUP_DISABLE=1 临时关闭自动备份
20
+ CLAUDE_AUTO_BACKUP_DRY_RUN=1 只同步检查,不提交
21
+ CLAUDE_CONFIG_REPO=/path 指定 code-cli-config 仓库路径
22
+ USAGE
23
+ }
24
+
25
+ FORCE=0
26
+ PUSH_ONCE=0
27
+ DRY_RUN="${CLAUDE_AUTO_BACKUP_DRY_RUN:-0}"
28
+
29
+ for arg in "$@"; do
30
+ case "$arg" in
31
+ --force) FORCE=1 ;;
32
+ --push-once) FORCE=1; PUSH_ONCE=1 ;;
33
+ --dry-run) DRY_RUN=1 ;;
34
+ -h|--help)
35
+ usage
36
+ exit 0
37
+ ;;
38
+ esac
39
+ done
40
+
41
+ if [ "${CLAUDE_AUTO_BACKUP_DISABLE:-0}" = "1" ]; then
42
+ exit 0
43
+ fi
44
+
45
+ log() {
46
+ echo "[Claude 自动备份] $1" >&2
47
+ }
48
+
49
+ classify_backup_path() {
50
+ local path="$1"
51
+ case "$path" in
52
+ claude-code-setup/superflow-*|claude-code-setup/*.skill)
53
+ echo "SuperBridge Flow 技能"
54
+ ;;
55
+ claude-code-setup/openspec-*)
56
+ echo "OpenSpec 技能"
57
+ ;;
58
+ claude-code-setup/scripts/*)
59
+ echo "脚本"
60
+ ;;
61
+ claude-code-setup/agents/*)
62
+ echo "Agent"
63
+ ;;
64
+ claude-code-setup/commands/*)
65
+ echo "命令"
66
+ ;;
67
+ claude-code-setup/skills/*)
68
+ echo "技能"
69
+ ;;
70
+ claude-code-setup/settings/*)
71
+ echo "配置"
72
+ ;;
73
+ claude-code-setup/CLAUDE.md)
74
+ echo "全局指令"
75
+ ;;
76
+ claude-code-setup/output-styles/*)
77
+ echo "输出样式"
78
+ ;;
79
+ *)
80
+ echo "Claude 配置"
81
+ ;;
82
+ esac
83
+ }
84
+
85
+ build_commit_subject() {
86
+ local categories
87
+ categories="$(
88
+ git diff --cached --name-only |
89
+ while IFS= read -r path; do
90
+ classify_backup_path "$path"
91
+ done |
92
+ awk '!seen[$0]++'
93
+ )"
94
+
95
+ local first second third extra
96
+ first="$(printf '%s\n' "$categories" | sed -n '1p')"
97
+ second="$(printf '%s\n' "$categories" | sed -n '2p')"
98
+ third="$(printf '%s\n' "$categories" | sed -n '3p')"
99
+ extra="$(printf '%s\n' "$categories" | sed -n '4p')"
100
+
101
+ if [ -z "$first" ]; then
102
+ echo "自动备份 Claude:同步配置变化"
103
+ elif [ -z "$second" ]; then
104
+ echo "自动备份 Claude:更新 $first"
105
+ elif [ -z "$third" ]; then
106
+ echo "自动备份 Claude:更新 $first 和 $second"
107
+ elif [ -z "$extra" ]; then
108
+ echo "自动备份 Claude:更新 $first、$second 和 $third"
109
+ else
110
+ echo "自动备份 Claude:更新多类全局配置"
111
+ fi
112
+ }
113
+
114
+ build_commit_body() {
115
+ {
116
+ echo "本次自动备份包含:"
117
+ git diff --cached --name-status |
118
+ sed -n '1,20p' |
119
+ sed 's/^/- /'
120
+ }
121
+ }
122
+
123
+ if ! mkdir "$LOCK_DIR" 2>/dev/null; then
124
+ log "已有备份任务在执行,跳过本次触发"
125
+ exit 0
126
+ fi
127
+ trap 'rmdir "$LOCK_DIR" 2>/dev/null || true' EXIT
128
+
129
+ INPUT="$(cat 2>/dev/null || true)"
130
+
131
+ json_value() {
132
+ local key="$1"
133
+ printf '%s' "$INPUT" | python3 -c "
134
+ import json, sys
135
+ try:
136
+ data = json.load(sys.stdin)
137
+ except Exception:
138
+ print('')
139
+ raise SystemExit
140
+ tool_input = data.get('tool_input', {})
141
+ print(tool_input.get('$key', '') or '')
142
+ " 2>/dev/null
143
+ }
144
+
145
+ TOUCH_PATH="$(json_value file_path)"
146
+ COMMAND="$(json_value command)"
147
+ if [ -z "$COMMAND" ]; then
148
+ COMMAND="$(json_value cmd)"
149
+ fi
150
+ CWD="$(json_value cwd)"
151
+
152
+ should_trigger() {
153
+ if [ "$FORCE" = "1" ]; then
154
+ return 0
155
+ fi
156
+
157
+ case "$TOUCH_PATH" in
158
+ "$CLAUDE_HOME"/skills/*|"$CLAUDE_HOME"/scripts/*|"$CLAUDE_HOME"/agents/*|"$CLAUDE_HOME"/commands/*|"$CLAUDE_HOME"/output-styles/*)
159
+ return 0
160
+ ;;
161
+ "$CLAUDE_HOME"/CLAUDE.md|"$CLAUDE_HOME"/settings.json|"$CLAUDE_HOME"/settings.local.json)
162
+ return 0
163
+ ;;
164
+ esac
165
+
166
+ case "$CWD" in
167
+ "$CLAUDE_HOME"|"$CLAUDE_HOME"/*)
168
+ return 0
169
+ ;;
170
+ esac
171
+
172
+ case "$COMMAND" in
173
+ *"$CLAUDE_HOME"/skills*|*"$CLAUDE_HOME"/scripts*|*"$CLAUDE_HOME"/agents*|*"$CLAUDE_HOME"/commands*|*"$CLAUDE_HOME"/output-styles*|*"$CLAUDE_HOME"/CLAUDE.md*|*"$CLAUDE_HOME"/settings.json*|*"$CLAUDE_HOME"/settings.local.json*|*"~/.claude/skills"*|*"~/.claude/scripts"*|*"~/.claude/agents"*|*"~/.claude/commands"*|*"~/.claude/output-styles"*|*"~/.claude/CLAUDE.md"*|*"~/.claude/settings.json"*|*"~/.claude/settings.local.json"*)
174
+ return 0
175
+ ;;
176
+ esac
177
+
178
+ return 1
179
+ }
180
+
181
+ if ! should_trigger; then
182
+ exit 0
183
+ fi
184
+
185
+ if [ ! -d "$CLAUDE_HOME" ]; then
186
+ log "Claude 目录不存在: $CLAUDE_HOME"
187
+ exit 0
188
+ fi
189
+
190
+ if [ ! -d "$CONFIG_REPO/.git" ]; then
191
+ log "备份仓库不存在或不是 Git 仓库: $CONFIG_REPO"
192
+ exit 0
193
+ fi
194
+
195
+ log "同步 ~/.claude 到 claude-code-setup"
196
+
197
+ # 确保备份目录存在
198
+ mkdir -p "$BACKUP_ROOT/settings" \
199
+ "$BACKUP_ROOT/agents" \
200
+ "$BACKUP_ROOT/commands" \
201
+ "$BACKUP_ROOT/output-styles" \
202
+ "$BACKUP_ROOT/scripts" \
203
+ "$BACKUP_ROOT/skills"
204
+
205
+ # 1. CLAUDE.md
206
+ if [ -f "$CLAUDE_HOME/CLAUDE.md" ]; then
207
+ cp "$CLAUDE_HOME/CLAUDE.md" "$BACKUP_ROOT/CLAUDE.md"
208
+ fi
209
+
210
+ # 2. settings.json(过滤运行时状态)
211
+ if [ -f "$CLAUDE_HOME/settings.json" ]; then
212
+ python3 "$BACKUP_ROOT/scripts/sync-settings-json.py" \
213
+ "$CLAUDE_HOME/settings.json" \
214
+ "$BACKUP_ROOT/settings/settings.json"
215
+ fi
216
+
217
+ # 3. settings.local.json
218
+ if [ -f "$CLAUDE_HOME/settings.local.json" ]; then
219
+ cp "$CLAUDE_HOME/settings.local.json" "$BACKUP_ROOT/settings/settings.local.json"
220
+ fi
221
+
222
+ # 4. agents
223
+ if [ -d "$CLAUDE_HOME/agents" ]; then
224
+ rsync -a --delete "$CLAUDE_HOME/agents/" "$BACKUP_ROOT/agents/"
225
+ fi
226
+
227
+ # 5. commands
228
+ if [ -d "$CLAUDE_HOME/commands" ]; then
229
+ rsync -a --delete "$CLAUDE_HOME/commands/" "$BACKUP_ROOT/commands/"
230
+ fi
231
+
232
+ # 6. output-styles
233
+ if [ -d "$CLAUDE_HOME/output-styles" ]; then
234
+ rsync -a --delete "$CLAUDE_HOME/output-styles/" "$BACKUP_ROOT/output-styles/"
235
+ fi
236
+
237
+ # 7. scripts(排除备份脚本自身,避免循环)
238
+ if [ -d "$CLAUDE_HOME/scripts" ]; then
239
+ rsync -a --delete \
240
+ --exclude='claude-auto-backup-hook.sh' \
241
+ "$CLAUDE_HOME/scripts/" "$BACKUP_ROOT/scripts/"
242
+ fi
243
+
244
+ # 8. skills:只同步两边都存在的(用户显式维护的),不自动添加新 skill
245
+ if [ -d "$CLAUDE_HOME/skills" ]; then
246
+ for skill_dir in "$CLAUDE_HOME"/skills/*; do
247
+ [ -d "$skill_dir" ] || continue
248
+ skill_name="$(basename "$skill_dir")"
249
+ case "$skill_name" in
250
+ .backups|.system)
251
+ continue
252
+ ;;
253
+ esac
254
+ # 只备份备份目录中已存在的 skills(不自动引入 marketplace skills)
255
+ if [ -d "$BACKUP_ROOT/skills/$skill_name" ] && [ -f "$skill_dir/SKILL.md" ]; then
256
+ rsync -a --delete "$skill_dir/" "$BACKUP_ROOT/skills/$skill_name/"
257
+ fi
258
+ done
259
+ fi
260
+
261
+ chmod +x "$BACKUP_ROOT/scripts/"*.sh \
262
+ "$BACKUP_ROOT/scripts/"*.py 2>/dev/null || true
263
+
264
+ if [ "$DRY_RUN" = "1" ]; then
265
+ log "dry-run 模式,仅完成同步,不提交"
266
+ exit 0
267
+ fi
268
+
269
+ log "提交 code-cli-config"
270
+
271
+ STAGE_PATHS=(
272
+ "claude-code-setup/CLAUDE.md"
273
+ "claude-code-setup/settings/settings.json"
274
+ "claude-code-setup/settings/settings.local.json"
275
+ "claude-code-setup/agents"
276
+ "claude-code-setup/commands"
277
+ "claude-code-setup/output-styles"
278
+ "claude-code-setup/scripts"
279
+ "claude-code-setup/skills"
280
+ )
281
+
282
+ (
283
+ cd "$CONFIG_REPO" || exit 0
284
+
285
+ for path in "${STAGE_PATHS[@]}"; do
286
+ if [ -e "$path" ]; then
287
+ git add "$path"
288
+ fi
289
+ done
290
+
291
+ if git diff --cached --quiet; then
292
+ log "没有需要提交的 Claude 配置变化"
293
+ if [ "$PUSH_ONCE" != "1" ]; then
294
+ exit 0
295
+ fi
296
+ else
297
+ commit_subject="$(build_commit_subject)"
298
+ commit_body="$(build_commit_body)"
299
+ log "提交说明: $commit_subject"
300
+ git commit -m "$commit_subject" -m "$commit_body"
301
+ if [ "$PUSH_ONCE" != "1" ]; then
302
+ log "已完成本地提交;如需推送,请手动执行: $0 --push-once"
303
+ exit 0
304
+ fi
305
+ fi
306
+
307
+ current_branch="$(git branch --show-current)"
308
+ if [ -z "$current_branch" ]; then
309
+ log "当前仓库不在普通分支,跳过推送"
310
+ exit 0
311
+ fi
312
+ git push origin "$current_branch"
313
+ )