@birdie_moblie/open_spec 2.1.7

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 (186) hide show
  1. package/.agents/plugins/marketplace.json +13 -0
  2. package/.claude-plugin/marketplace.json +12 -0
  3. package/.claude-plugin/plugin.json +9 -0
  4. package/.codex-plugin/plugin.json +9 -0
  5. package/LICENSE +21 -0
  6. package/README.md +111 -0
  7. package/bin/openspec.js +3 -0
  8. package/dist/cli/commands/change.d.ts +3 -0
  9. package/dist/cli/commands/change.js +37 -0
  10. package/dist/cli/commands/ext.d.ts +3 -0
  11. package/dist/cli/commands/ext.js +196 -0
  12. package/dist/cli/commands/figma.d.ts +3 -0
  13. package/dist/cli/commands/figma.js +73 -0
  14. package/dist/cli/commands/init.d.ts +3 -0
  15. package/dist/cli/commands/init.js +71 -0
  16. package/dist/cli/commands/opsx.d.ts +3 -0
  17. package/dist/cli/commands/opsx.js +324 -0
  18. package/dist/cli/commands/usage.d.ts +3 -0
  19. package/dist/cli/commands/usage.js +21 -0
  20. package/dist/cli/output.d.ts +8 -0
  21. package/dist/cli/output.js +17 -0
  22. package/dist/cli/program.d.ts +4 -0
  23. package/dist/cli/program.js +42 -0
  24. package/dist/cli/register.d.ts +3 -0
  25. package/dist/cli/register.js +13 -0
  26. package/dist/cli.d.ts +2 -0
  27. package/dist/cli.js +3 -0
  28. package/dist/config/load.d.ts +7 -0
  29. package/dist/config/load.js +55 -0
  30. package/dist/config/presets.d.ts +129 -0
  31. package/dist/config/presets.js +125 -0
  32. package/dist/config/schema.d.ts +281 -0
  33. package/dist/config/schema.js +178 -0
  34. package/dist/core/archive.d.ts +5 -0
  35. package/dist/core/archive.js +33 -0
  36. package/dist/core/change.d.ts +12 -0
  37. package/dist/core/change.js +69 -0
  38. package/dist/core/code-changes.d.ts +9 -0
  39. package/dist/core/code-changes.js +31 -0
  40. package/dist/core/flow.d.ts +6 -0
  41. package/dist/core/flow.js +99 -0
  42. package/dist/core/gates.d.ts +5 -0
  43. package/dist/core/gates.js +71 -0
  44. package/dist/core/instructions.d.ts +21 -0
  45. package/dist/core/instructions.js +102 -0
  46. package/dist/core/source-operations.d.ts +25 -0
  47. package/dist/core/source-operations.js +94 -0
  48. package/dist/core/sources.d.ts +33 -0
  49. package/dist/core/sources.js +234 -0
  50. package/dist/core/state.d.ts +15 -0
  51. package/dist/core/state.js +75 -0
  52. package/dist/core/status.d.ts +31 -0
  53. package/dist/core/status.js +22 -0
  54. package/dist/core/tasks.d.ts +15 -0
  55. package/dist/core/tasks.js +143 -0
  56. package/dist/core/todo.d.ts +31 -0
  57. package/dist/core/todo.js +114 -0
  58. package/dist/core/types.d.ts +297 -0
  59. package/dist/core/types.js +227 -0
  60. package/dist/core/verify.d.ts +229 -0
  61. package/dist/core/verify.js +391 -0
  62. package/dist/core/worker-evidence.d.ts +71 -0
  63. package/dist/core/worker-evidence.js +253 -0
  64. package/dist/core/worker.d.ts +22 -0
  65. package/dist/core/worker.js +478 -0
  66. package/dist/delivery/claude-install.d.ts +4 -0
  67. package/dist/delivery/claude-install.js +44 -0
  68. package/dist/delivery/distribution.d.ts +3 -0
  69. package/dist/delivery/distribution.js +53 -0
  70. package/dist/delivery/skills.d.ts +36 -0
  71. package/dist/delivery/skills.js +178 -0
  72. package/dist/figma/cache.d.ts +19 -0
  73. package/dist/figma/cache.js +115 -0
  74. package/dist/figma/claude.d.ts +14 -0
  75. package/dist/figma/claude.js +121 -0
  76. package/dist/figma/collect.d.ts +3 -0
  77. package/dist/figma/collect.js +57 -0
  78. package/dist/figma/index.d.ts +35 -0
  79. package/dist/figma/index.js +178 -0
  80. package/dist/figma/media.d.ts +5 -0
  81. package/dist/figma/media.js +77 -0
  82. package/dist/figma/response.d.ts +9 -0
  83. package/dist/figma/response.js +27 -0
  84. package/dist/hooks/command-context.d.ts +19 -0
  85. package/dist/hooks/command-context.js +33 -0
  86. package/dist/hooks/engine.d.ts +61 -0
  87. package/dist/hooks/engine.js +314 -0
  88. package/dist/hooks/plugin-runtime.d.ts +188 -0
  89. package/dist/hooks/plugin-runtime.js +198 -0
  90. package/dist/index.d.ts +99 -0
  91. package/dist/index.js +185 -0
  92. package/dist/marketplace/adapters.d.ts +202 -0
  93. package/dist/marketplace/adapters.js +203 -0
  94. package/dist/marketplace/builtin.d.ts +9 -0
  95. package/dist/marketplace/builtin.js +9 -0
  96. package/dist/marketplace/install.d.ts +38 -0
  97. package/dist/marketplace/install.js +108 -0
  98. package/dist/marketplace/registry.d.ts +71 -0
  99. package/dist/marketplace/registry.js +342 -0
  100. package/dist/marketplace/upgrade.d.ts +39 -0
  101. package/dist/marketplace/upgrade.js +104 -0
  102. package/dist/shared/command-log.d.ts +9 -0
  103. package/dist/shared/command-log.js +55 -0
  104. package/dist/shared/errors.d.ts +7 -0
  105. package/dist/shared/errors.js +14 -0
  106. package/dist/shared/exec.d.ts +16 -0
  107. package/dist/shared/exec.js +86 -0
  108. package/dist/shared/fs.d.ts +18 -0
  109. package/dist/shared/fs.js +93 -0
  110. package/dist/shared/git.d.ts +22 -0
  111. package/dist/shared/git.js +132 -0
  112. package/dist/shared/hash.d.ts +5 -0
  113. package/dist/shared/hash.js +29 -0
  114. package/dist/shared/paths.d.ts +16 -0
  115. package/dist/shared/paths.js +97 -0
  116. package/dist/shared/pkg.d.ts +3 -0
  117. package/dist/shared/pkg.js +23 -0
  118. package/dist/shared/version.d.ts +9 -0
  119. package/dist/shared/version.js +34 -0
  120. package/dist/usage/analyze.d.ts +5 -0
  121. package/dist/usage/analyze.js +212 -0
  122. package/dist/usage/claude.d.ts +9 -0
  123. package/dist/usage/claude.js +59 -0
  124. package/dist/usage/collect.d.ts +11 -0
  125. package/dist/usage/collect.js +71 -0
  126. package/dist/usage/doctor.d.ts +72 -0
  127. package/dist/usage/doctor.js +121 -0
  128. package/dist/usage/parse.d.ts +28 -0
  129. package/dist/usage/parse.js +345 -0
  130. package/dist/usage/types.d.ts +103 -0
  131. package/dist/usage/types.js +2 -0
  132. package/docs/getting-started.md +20 -0
  133. package/docs/guides/configuration.md +33 -0
  134. package/docs/guides/cost-benchmark.md +88 -0
  135. package/docs/guides/plugin-migration.md +65 -0
  136. package/docs/guides/smart-figma.md +51 -0
  137. package/docs/guides/source-reading.md +35 -0
  138. package/docs/guides/ui-conventions-template.md +39 -0
  139. package/docs/guides/worker-evidence.md +73 -0
  140. package/docs/guides/workflow.md +74 -0
  141. package/docs/maintainers/architecture.md +27 -0
  142. package/docs/maintainers/plugin-runtime-contract.md +55 -0
  143. package/package.json +78 -0
  144. package/plugin.json +9 -0
  145. package/presets/backend-service.yaml +19 -0
  146. package/presets/flutter-mobile/plugin-hooks.json +68 -0
  147. package/presets/flutter-mobile/ui-conventions.md +122 -0
  148. package/presets/flutter-mobile.yaml +205 -0
  149. package/presets/web-product.yaml +23 -0
  150. package/skills/opsx-apply/SKILL.md +35 -0
  151. package/skills/opsx-apply/nodes/blocked.md +7 -0
  152. package/skills/opsx-apply/nodes/code-task.md +29 -0
  153. package/skills/opsx-apply/nodes/gate-a.md +9 -0
  154. package/skills/opsx-apply/nodes/stop.md +5 -0
  155. package/skills/opsx-apply/nodes/task-build.md +50 -0
  156. package/skills/opsx-apply/nodes/task-repair.md +20 -0
  157. package/skills/opsx-apply/nodes/task-scout.md +28 -0
  158. package/skills/opsx-apply/nodes/task-verify.md +38 -0
  159. package/skills/opsx-archive/SKILL.md +24 -0
  160. package/skills/opsx-archive/nodes/archive.md +15 -0
  161. package/skills/opsx-explore/SKILL.md +20 -0
  162. package/skills/opsx-explore/nodes/explore.md +3 -0
  163. package/skills/opsx-fix-verify/SKILL.md +30 -0
  164. package/skills/opsx-fix-verify/nodes/repair.md +11 -0
  165. package/skills/opsx-fix-verify/nodes/reverify.md +3 -0
  166. package/skills/opsx-fix-verify/nodes/stop.md +3 -0
  167. package/skills/opsx-gate-decision/SKILL.md +20 -0
  168. package/skills/opsx-gate-decision/nodes/decide.md +15 -0
  169. package/skills/opsx-propose/SKILL.md +36 -0
  170. package/skills/opsx-propose/nodes/blocked.md +13 -0
  171. package/skills/opsx-propose/nodes/collect.md +35 -0
  172. package/skills/opsx-propose/nodes/parse.md +72 -0
  173. package/skills/opsx-propose/nodes/plan.md +65 -0
  174. package/skills/opsx-propose/nodes/stop.md +17 -0
  175. package/skills/opsx-propose/nodes/tech.md +77 -0
  176. package/skills/opsx-propose/scripts/read-json-source.mjs +22 -0
  177. package/skills/opsx-resume/SKILL.md +21 -0
  178. package/skills/opsx-resume/nodes/route.md +12 -0
  179. package/skills/opsx-source-update/SKILL.md +23 -0
  180. package/skills/opsx-source-update/nodes/update.md +14 -0
  181. package/skills/opsx-verify/SKILL.md +32 -0
  182. package/skills/opsx-verify/nodes/blocked.md +3 -0
  183. package/skills/opsx-verify/nodes/failed.md +3 -0
  184. package/skills/opsx-verify/nodes/gate-b.md +7 -0
  185. package/skills/opsx-verify/nodes/stop.md +5 -0
  186. package/skills/opsx-verify/nodes/verify.md +10 -0
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: opsx-source-update
3
+ description: 对未完成 change 做可中止的来源修订,重建 parse/tech/plan。
4
+ ---
5
+
6
+ # opsx-source-update
7
+
8
+ 用于已有 change 补充需求/接口/设计。不要在本流程写应用代码。
9
+
10
+ ## 项目 CLI 预检
11
+
12
+ 定位项目根并校验 CLI 版本。
13
+
14
+ ## 循环
15
+
16
+ 1. 若有 created worker:确认后 `openspec worker cancel`
17
+ 2. 读 status / instructions
18
+ 3. 读取 nodes/update.md
19
+ 4. 停在新的 Gate-A
20
+
21
+ ## 退出条件
22
+
23
+ 新 Gate-A,或用户要求 abort:`openspec sources abort-update --reason "..."`。
@@ -0,0 +1,14 @@
1
+ # Update
2
+
3
+ ```bash
4
+ openspec sources add --change "<name>" --source <capability>=<locator> --view summary --json
5
+ openspec sources collect --change "<name>" --view summary --json
6
+ ```
7
+
8
+ 然后按 propose 的 parse → tech → plan 重建产物。已过 Gate-A 且有完成 task 时,plan 验收会写 reconciliation。
9
+
10
+ Gate-A 批准前可:
11
+
12
+ ```bash
13
+ openspec sources abort-update --change "<name>" --reason "withdrawn" --json
14
+ ```
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: opsx-verify
3
+ description: 批准 Gate-B 后执行 QA hook 并生成报告,停在 Gate-C。
4
+ ---
5
+
6
+ # opsx-verify
7
+
8
+ ## 项目 CLI 预检
9
+
10
+ 定位项目根并校验 CLI 版本与 `install-cli.mjs` 一致。
11
+
12
+ ## 循环
13
+
14
+ 1. `openspec instructions opsx-verify --json`
15
+ 2. 读取 `nodeFile` 执行
16
+ 3. 优先复用变更命令返回的 `next` / `nodeFile`;无此字段或外部状态变化时才重新取 instructions
17
+
18
+ ## 路由表
19
+
20
+ | next.action | 读取 |
21
+ |---|---|
22
+ | await_gate gate-B | nodes/gate-b.md |
23
+ | create_worker verify | nodes/verify.md |
24
+ | await_gate gate-C | nodes/stop.md |
25
+ | fix_verify | nodes/failed.md |
26
+ | 其他 | nodes/blocked.md |
27
+
28
+ ## 退出条件
29
+
30
+ 停在 Gate-C,或验证失败需修复时改走 `/opsx-fix-verify`。不要归档。
31
+
32
+ summary 中的 `packetPath` 指向完整 packet;按返回的路径读取,不回显全文。
@@ -0,0 +1,3 @@
1
+ # 受阻
2
+
3
+ 展示缺失 hook 证据或命令失败,等待用户。
@@ -0,0 +1,3 @@
1
+ # 验证失败
2
+
3
+ QA 有 blocking 问题。不要继续批准 Gate-C。交给 `/opsx-fix-verify`。
@@ -0,0 +1,7 @@
1
+ # Gate-B
2
+
3
+ `/opsx-verify` 视为批准意图:
4
+
5
+ ```bash
6
+ openspec gate approve gate-B --change "<name>" --comment "approved via /opsx-verify" --json
7
+ ```
@@ -0,0 +1,5 @@
1
+ # 停止
2
+
3
+ 已到达 Gate-C。汇报 QA 报告路径,等待 `/opsx-archive` 或 `/opsx-gate-decision`。
4
+
5
+ 先执行 `openspec todo --change "<name>" --json`,按 design / product / 其他分类向用户汇报文件:行:文案。Worker 历史「未能满足/占位」声明单列,说明是否已解决;同时说明未扫描文件。待办本身不阻塞引擎,不代表可绕过 spec 或 required Hook。用户决定剩余事项的处置。
@@ -0,0 +1,10 @@
1
+ # Verify
2
+
3
+ 1. `openspec worker create --change "<name>" --step verify --view summary --json`:packet 的 `verifyHooks` 列出本 run 需要证据的全部 verify hook(command / skill / file / check),逐项处理,不要凭记忆
4
+ 2. `openspec verify commands --change "<name>" --json`:引擎执行全部 `command` hook
5
+ 3. 对 `skill` hook:宿主支持 subagent 则派发;descriptor 的 `path`(若有)是该 skill 在 marketplace 插件里的 SKILL.md 绝对路径,宿主未注册该 skill 时按路径读取执行。完成后 `openspec verify skill-evidence --change "<name>" --hook <id> --status passed|failed|skipped --notes "<结论与报告路径>" --json`
6
+ 4. `file` hook 用 `verify hook-result`、`check` hook 用 `verify check-result` 登记证据;结论必须如实(required 的 failed 会让报告 failed,这是预期路径)
7
+ 5. `openspec verify report --change "<name>" --json`
8
+ 6. 写 verify result(`{ workerId, stepId: "verify", status: "completed", notes }`,不含 executeHookResults),`openspec worker accept ...`
9
+
10
+ 报告 status=failed 时 accept 后 `next.action` 为 `fix_verify`:停止并交给 `/opsx-fix-verify`。