@chenmk/superflow 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/INSTALL.en.md +58 -12
  2. package/INSTALL.md +62 -33
  3. package/README.md +181 -54
  4. package/README.zh-CN.md +158 -51
  5. package/assets/brand/managed-review-loop.png +0 -0
  6. package/assets/manifest.json +10 -5
  7. package/assets/scripts/superflow-coding-ready.mjs +135 -0
  8. package/assets/scripts/superflow-dependency-update-hook.sh +81 -8
  9. package/assets/scripts/superflow-document-audit.mjs +240 -0
  10. package/assets/scripts/superflow-environment-preflight.mjs +398 -0
  11. package/assets/scripts/superflow-hook-guard.sh +40 -1
  12. package/assets/scripts/superflow-managed-command-guard.py +309 -0
  13. package/assets/scripts/superflow-managed-executor-preflight.mjs +421 -0
  14. package/assets/scripts/superflow-managed-owner-verification.sh +117 -0
  15. package/assets/scripts/superflow-managed-work-check.mjs +287 -26
  16. package/assets/scripts/superflow-managed-work-guard.sh +6 -92
  17. package/assets/skills/superflow-clarify/SKILL.md +14 -0
  18. package/assets/skills/superflow-design/SKILL.md +38 -13
  19. package/assets/skills/superflow-docs/SKILL.md +93 -2
  20. package/assets/skills/superflow-pipeline/SKILL.md +167 -10
  21. package/assets/skills/superflow-pipeline/references/batch-prompt-template.md +17 -9
  22. package/assets/skills/superflow-pipeline/references/document-readiness.md +157 -0
  23. package/assets/skills/superflow-pipeline/references/document-templates.md +9 -5
  24. package/assets/skills/superflow-pipeline/references/feature-gated-workflow.md +14 -0
  25. package/assets/skills/superflow-pipeline/references/implementation-prompt-template.md +20 -11
  26. package/assets/skills/superflow-pipeline/references/managed-work.md +123 -15
  27. package/assets/skills/superflow-pipeline/references/orchestration.md +2 -2
  28. package/assets/skills/superflow-pipeline/references/p0-baseline-template.md +3 -2
  29. package/assets/skills/superflow-pipeline/references/quality-gate.md +7 -5
  30. package/assets/skills/superflow-pipeline/references/reviewer-checklist.md +7 -0
  31. package/assets/skills/superflow-pipeline/scripts/superflow-guard.sh +205 -9
  32. package/assets/skills/superflow-pipeline/scripts/superflow-handoff.sh +7 -4
  33. package/assets/skills/superflow-requirement-review/SKILL.md +178 -0
  34. package/assets/skills/superflow-requirement-review/agents/openai.yaml +4 -0
  35. package/assets/skills-en/superflow-clarify/SKILL.md +17 -0
  36. package/assets/skills-en/superflow-design/SKILL.md +31 -12
  37. package/assets/skills-en/superflow-docs/SKILL.md +99 -0
  38. package/assets/skills-en/superflow-pipeline/SKILL.md +163 -9
  39. package/assets/skills-en/superflow-pipeline/references/batch-prompt-template.md +4 -0
  40. package/assets/skills-en/superflow-pipeline/references/document-readiness.md +125 -0
  41. package/assets/skills-en/superflow-pipeline/references/document-templates.md +10 -0
  42. package/assets/skills-en/superflow-pipeline/references/feature-gated-workflow.md +7 -0
  43. package/assets/skills-en/superflow-pipeline/references/implementation-prompt-template.md +7 -0
  44. package/assets/skills-en/superflow-pipeline/references/managed-work.md +160 -10
  45. package/assets/skills-en/superflow-pipeline/references/quality-gate.md +12 -0
  46. package/assets/skills-en/superflow-pipeline/references/reviewer-checklist.md +7 -0
  47. package/assets/skills-en/superflow-pipeline/scripts/superflow-guard.sh +205 -9
  48. package/assets/skills-en/superflow-pipeline/scripts/superflow-handoff.sh +7 -4
  49. package/assets/skills-en/superflow-requirement-review/SKILL.md +99 -0
  50. package/assets/skills-en/superflow-requirement-review/agents/openai.yaml +4 -0
  51. package/dist/app/cli.js +64 -9
  52. package/dist/app/cli.js.map +1 -1
  53. package/dist/app/commands/change-guard.js +19 -2
  54. package/dist/app/commands/change-guard.js.map +1 -1
  55. package/dist/app/commands/check.js +107 -45
  56. package/dist/app/commands/check.js.map +1 -1
  57. package/dist/app/commands/docs.js +7 -3
  58. package/dist/app/commands/docs.js.map +1 -1
  59. package/dist/app/commands/doctor.js +174 -198
  60. package/dist/app/commands/doctor.js.map +1 -1
  61. package/dist/app/commands/eval.js +64 -0
  62. package/dist/app/commands/eval.js.map +1 -0
  63. package/dist/app/commands/implement.js +7 -3
  64. package/dist/app/commands/implement.js.map +1 -1
  65. package/dist/app/commands/init.js +12 -24
  66. package/dist/app/commands/init.js.map +1 -1
  67. package/dist/app/commands/mcp.js +167 -0
  68. package/dist/app/commands/mcp.js.map +1 -0
  69. package/dist/app/commands/pipeline.js +652 -18
  70. package/dist/app/commands/pipeline.js.map +1 -1
  71. package/dist/app/commands/requirement-review.js +6 -0
  72. package/dist/app/commands/requirement-review.js.map +1 -0
  73. package/dist/app/commands/status.js +66 -3
  74. package/dist/app/commands/status.js.map +1 -1
  75. package/dist/app/commands/uninstall.js +3 -3
  76. package/dist/app/commands/uninstall.js.map +1 -1
  77. package/dist/app/commands/update.js +83 -9
  78. package/dist/app/commands/update.js.map +1 -1
  79. package/dist/domains/agent.js +3 -11
  80. package/dist/domains/agent.js.map +1 -1
  81. package/dist/domains/config/cli-help.js +54 -12
  82. package/dist/domains/config/cli-help.js.map +1 -1
  83. package/dist/domains/config/i18n.js +6 -8
  84. package/dist/domains/config/i18n.js.map +1 -1
  85. package/dist/domains/config/manifest.js +0 -3
  86. package/dist/domains/config/manifest.js.map +1 -1
  87. package/dist/domains/deps.js +68 -7
  88. package/dist/domains/deps.js.map +1 -1
  89. package/dist/domains/managed-work/completion-policy.js +174 -0
  90. package/dist/domains/managed-work/completion-policy.js.map +1 -0
  91. package/dist/domains/managed-work/context-manifest.js +208 -0
  92. package/dist/domains/managed-work/context-manifest.js.map +1 -0
  93. package/dist/domains/managed-work/contract.js +135 -4
  94. package/dist/domains/managed-work/contract.js.map +1 -1
  95. package/dist/domains/managed-work/control-signals.js +34 -0
  96. package/dist/domains/managed-work/control-signals.js.map +1 -0
  97. package/dist/domains/managed-work/control.js +628 -0
  98. package/dist/domains/managed-work/control.js.map +1 -0
  99. package/dist/domains/managed-work/evaluation.js +497 -0
  100. package/dist/domains/managed-work/evaluation.js.map +1 -0
  101. package/dist/domains/managed-work/evidence-path.js +14 -0
  102. package/dist/domains/managed-work/evidence-path.js.map +1 -0
  103. package/dist/domains/managed-work/execution-contract.js +167 -0
  104. package/dist/domains/managed-work/execution-contract.js.map +1 -0
  105. package/dist/domains/managed-work/executor-policy.js +65 -0
  106. package/dist/domains/managed-work/executor-policy.js.map +1 -0
  107. package/dist/domains/managed-work/failure.js +65 -0
  108. package/dist/domains/managed-work/failure.js.map +1 -0
  109. package/dist/domains/managed-work/host-review.js +77 -0
  110. package/dist/domains/managed-work/host-review.js.map +1 -0
  111. package/dist/domains/managed-work/human-messages.js +31 -0
  112. package/dist/domains/managed-work/human-messages.js.map +1 -0
  113. package/dist/domains/managed-work/input.js +29 -3
  114. package/dist/domains/managed-work/input.js.map +1 -1
  115. package/dist/domains/managed-work/journal.js +77 -3
  116. package/dist/domains/managed-work/journal.js.map +1 -1
  117. package/dist/domains/managed-work/lock.js +67 -1
  118. package/dist/domains/managed-work/lock.js.map +1 -1
  119. package/dist/domains/managed-work/notifications.js +0 -15
  120. package/dist/domains/managed-work/notifications.js.map +1 -1
  121. package/dist/domains/managed-work/pair-admission.js +108 -0
  122. package/dist/domains/managed-work/pair-admission.js.map +1 -0
  123. package/dist/domains/managed-work/prompts.js +257 -22
  124. package/dist/domains/managed-work/prompts.js.map +1 -1
  125. package/dist/domains/managed-work/redaction.js +90 -0
  126. package/dist/domains/managed-work/redaction.js.map +1 -0
  127. package/dist/domains/managed-work/review-convergence.js +41 -0
  128. package/dist/domains/managed-work/review-convergence.js.map +1 -0
  129. package/dist/domains/managed-work/review-facts.js +181 -0
  130. package/dist/domains/managed-work/review-facts.js.map +1 -0
  131. package/dist/domains/managed-work/rule-selection.js +84 -0
  132. package/dist/domains/managed-work/rule-selection.js.map +1 -0
  133. package/dist/domains/managed-work/runner.js +1967 -175
  134. package/dist/domains/managed-work/runner.js.map +1 -1
  135. package/dist/domains/managed-work/schemas.js +72 -2
  136. package/dist/domains/managed-work/schemas.js.map +1 -1
  137. package/dist/domains/managed-work/service.js +82 -13
  138. package/dist/domains/managed-work/service.js.map +1 -1
  139. package/dist/domains/managed-work/state.js +195 -5
  140. package/dist/domains/managed-work/state.js.map +1 -1
  141. package/dist/domains/managed-work/storage.js +66 -24
  142. package/dist/domains/managed-work/storage.js.map +1 -1
  143. package/dist/domains/managed-work/types.js +12 -9
  144. package/dist/domains/managed-work/types.js.map +1 -1
  145. package/dist/domains/managed-work/verification-categories.js +39 -0
  146. package/dist/domains/managed-work/verification-categories.js.map +1 -0
  147. package/dist/domains/managed-work/verification-policy.js +116 -0
  148. package/dist/domains/managed-work/verification-policy.js.map +1 -0
  149. package/dist/domains/managed-work/wait.js +21 -3
  150. package/dist/domains/managed-work/wait.js.map +1 -1
  151. package/dist/domains/managed-work/workspace-binding.js +133 -0
  152. package/dist/domains/managed-work/workspace-binding.js.map +1 -0
  153. package/dist/domains/sdd-readiness.js +44 -0
  154. package/dist/domains/sdd-readiness.js.map +1 -0
  155. package/dist/domains/skill/deploy.js +0 -6
  156. package/dist/domains/skill/deploy.js.map +1 -1
  157. package/dist/domains/skill/scripts.js +0 -8
  158. package/dist/domains/skill/scripts.js.map +1 -1
  159. package/dist/domains/state.js +1 -2
  160. package/dist/domains/state.js.map +1 -1
  161. package/dist/mcp/runtime-identity.js +21 -0
  162. package/dist/mcp/runtime-identity.js.map +1 -0
  163. package/dist/mcp/server.js +369 -0
  164. package/dist/mcp/server.js.map +1 -0
  165. package/dist/platform/agent-process.js +499 -38
  166. package/dist/platform/agent-process.js.map +1 -1
  167. package/dist/platform/executable.js +28 -0
  168. package/dist/platform/executable.js.map +1 -0
  169. package/dist/platform/paths.js +1 -17
  170. package/dist/platform/paths.js.map +1 -1
  171. package/dist/platform/process-tree.js +44 -0
  172. package/dist/platform/process-tree.js.map +1 -0
  173. package/dist/platform/process.js +1 -1
  174. package/dist/platform/process.js.map +1 -1
  175. package/package.json +17 -7
  176. package/scripts/check-design-principles.mjs +107 -0
  177. package/scripts/check-managed-work-design.mjs +507 -0
  178. package/scripts/clean-dist.js +9 -0
  179. package/scripts/ensure-bin-modes.js +11 -0
  180. package/scripts/preinstall.js +57 -0
  181. package/dist/cli/index.js +0 -193
  182. package/dist/cli/index.js.map +0 -1
  183. package/dist/commands/archive.js +0 -6
  184. package/dist/commands/archive.js.map +0 -1
  185. package/dist/commands/clarify.js +0 -6
  186. package/dist/commands/clarify.js.map +0 -1
  187. package/dist/commands/design.js +0 -28
  188. package/dist/commands/design.js.map +0 -1
  189. package/dist/commands/docs.js +0 -6
  190. package/dist/commands/docs.js.map +0 -1
  191. package/dist/commands/doctor.js +0 -494
  192. package/dist/commands/doctor.js.map +0 -1
  193. package/dist/commands/implement.js +0 -6
  194. package/dist/commands/implement.js.map +0 -1
  195. package/dist/commands/init.js +0 -520
  196. package/dist/commands/init.js.map +0 -1
  197. package/dist/commands/pipeline.js +0 -6
  198. package/dist/commands/pipeline.js.map +0 -1
  199. package/dist/commands/scan.js +0 -63
  200. package/dist/commands/scan.js.map +0 -1
  201. package/dist/commands/status.js +0 -173
  202. package/dist/commands/status.js.map +0 -1
  203. package/dist/commands/uninstall.js +0 -214
  204. package/dist/commands/uninstall.js.map +0 -1
  205. package/dist/commands/update.js +0 -193
  206. package/dist/commands/update.js.map +0 -1
  207. package/dist/commands/verify.js +0 -6
  208. package/dist/commands/verify.js.map +0 -1
  209. package/dist/core/assets.js +0 -27
  210. package/dist/core/assets.js.map +0 -1
  211. package/dist/core/cli-help.js +0 -98
  212. package/dist/core/cli-help.js.map +0 -1
  213. package/dist/core/context.js +0 -123
  214. package/dist/core/context.js.map +0 -1
  215. package/dist/core/dependencies.js +0 -146
  216. package/dist/core/dependencies.js.map +0 -1
  217. package/dist/core/detect.js +0 -64
  218. package/dist/core/detect.js.map +0 -1
  219. package/dist/core/i18n.js +0 -105
  220. package/dist/core/i18n.js.map +0 -1
  221. package/dist/core/integrity.js +0 -46
  222. package/dist/core/integrity.js.map +0 -1
  223. package/dist/core/manifest.js +0 -21
  224. package/dist/core/manifest.js.map +0 -1
  225. package/dist/core/prompts.js +0 -20
  226. package/dist/core/prompts.js.map +0 -1
  227. package/dist/core/registry.js +0 -134
  228. package/dist/core/registry.js.map +0 -1
  229. package/dist/core/rules.js +0 -17
  230. package/dist/core/rules.js.map +0 -1
  231. package/dist/core/scripts.js +0 -48
  232. package/dist/core/scripts.js.map +0 -1
  233. package/dist/core/skill-check.js +0 -32
  234. package/dist/core/skill-check.js.map +0 -1
  235. package/dist/core/skills.js +0 -62
  236. package/dist/core/skills.js.map +0 -1
  237. package/dist/core/state.js +0 -54
  238. package/dist/core/state.js.map +0 -1
  239. package/dist/utils/path.js +0 -11
  240. package/dist/utils/path.js.map +0 -1
  241. package/dist/utils/shell.js +0 -29
  242. package/dist/utils/shell.js.map +0 -1
@@ -1,5 +1,4 @@
1
1
  export const DEFAULT_AGENTS = ['claude', 'codex'];
2
- export const ALL_AGENTS = ['claude', 'codex', 'opencode'];
3
2
  export function parseInstallScope(value) {
4
3
  if (value === undefined || value === null || value === '')
5
4
  return 'global';
@@ -14,11 +13,8 @@ export function resolveAgents(selection) {
14
13
  switch (selection) {
15
14
  case 'both':
16
15
  return DEFAULT_AGENTS;
17
- case 'all':
18
- return ALL_AGENTS;
19
16
  case 'claude':
20
17
  case 'codex':
21
- case 'opencode':
22
18
  return [selection];
23
19
  default:
24
20
  throw new Error(`Unknown agent selection: ${selection}`);
@@ -28,13 +24,11 @@ export function parseAgentSelection(value) {
28
24
  if (value === undefined || value === null || value === '')
29
25
  return 'both';
30
26
  if (typeof value !== 'string') {
31
- throw new Error(`--agent must be one of: claude, codex, opencode, both, all`);
27
+ throw new Error(`--agent must be one of: claude, codex, both`);
32
28
  }
33
29
  const normalized = value.trim().toLowerCase();
34
30
  if (normalized === 'both')
35
31
  return 'both';
36
- if (normalized === 'all')
37
- return 'all';
38
32
  const parts = normalized
39
33
  .split(/[,\s]+/)
40
34
  .map((part) => part.trim())
@@ -43,11 +37,11 @@ export function parseAgentSelection(value) {
43
37
  return 'both';
44
38
  const selected = new Set();
45
39
  for (const part of parts) {
46
- if (part === 'claude' || part === 'codex' || part === 'opencode') {
40
+ if (part === 'claude' || part === 'codex') {
47
41
  selected.add(part);
48
42
  }
49
43
  else {
50
- throw new Error(`--agent must be one of: claude, codex, opencode, both, all`);
44
+ throw new Error(`--agent must be one of: claude, codex, both`);
51
45
  }
52
46
  }
53
47
  const agents = [...selected];
@@ -57,8 +51,6 @@ export function parseAgentSelection(value) {
57
51
  DEFAULT_AGENTS.every((agent) => selected.has(agent))) {
58
52
  return 'both';
59
53
  }
60
- if (agents.length === ALL_AGENTS.length)
61
- return 'all';
62
54
  return agents;
63
55
  }
64
56
  //# sourceMappingURL=agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/domains/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/domains/agent.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAE3D,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IAC3E,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAyB;IACrD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,cAAc,CAAC;QACxB,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO;YACV,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB;YACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC;IACzE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU;SACrB,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAS,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1C,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM;QACvC,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -7,24 +7,28 @@ const CLI_TEXT = {
7
7
  initDescription: "Install and configure SuperBridge Flow",
8
8
  scanDescription: "Rerun project context scaffolding and understand-anything check",
9
9
  clarifyDescription: "Check SuperBridge Flow clarify skill deployment",
10
- docsDescription: "Check SuperBridge Flow docs skill deployment",
10
+ requirementReviewDescription: "Check SuperBridge Flow requirement review skill deployment",
11
+ docsDescription: "Run the docs gate and check the docs skill deployment",
11
12
  designDescription: "Check SuperBridge Flow design skill deployment",
12
- implementDescription: "Check SuperBridge Flow implement skill deployment",
13
+ implementDescription: "Require a Coding Ready receipt before implementation",
13
14
  pipelineDescription: "Route SDD phases or manage an implementation prompt to terminal delivery",
14
15
  verifyDescription: "Check SuperBridge Flow verify skill deployment",
15
16
  archiveDescription: "Check SuperBridge Flow archive skill deployment",
16
17
  statusDescription: "Show active managed tasks, SDD changes, and next commands",
18
+ mcpDescription: "Install, remove, or inspect the Superflow managed MCP integration",
19
+ evalDescription: "Evaluate a managed task offline from persisted evidence",
17
20
  updateDescription: "Update installed SuperBridge Flow skills, scripts, and hooks",
18
21
  doctorDescription: "Diagnose SuperBridge Flow installation health",
19
22
  uninstallDescription: "Uninstall skills, scripts, and hooks managed by SuperBridge Flow",
20
23
  dryRun: "Print the plan without writing files",
21
- agentOption: "Install/check target: claude | codex | opencode | both | all",
24
+ agentOption: "Install/check target: claude | codex | both",
22
25
  scopeOption: "Install scope: global | project",
23
26
  updateScopeOption: "Update scope: auto | global | project",
24
27
  commandScopeOption: "Scope: auto | global | project",
25
28
  languageOption: "Language: en | zh",
26
29
  yesOption: "Run non-interactively with defaults",
27
30
  jsonOption: "Output JSON",
31
+ summaryOption: "Aggregate the supplied comparable task runs into a baseline",
28
32
  resumeOption: "Resume from the failed step",
29
33
  skipExistingOption: "Keep existing skills/scripts unchanged",
30
34
  overwriteOption: "Overwrite existing skills without creating backups",
@@ -37,36 +41,57 @@ const CLI_TEXT = {
37
41
  uninstallForceOption: "Skip confirmation prompt",
38
42
  withDepsOption: "Also uninstall OpenSpec, Superpowers, and Understand dependencies",
39
43
  managedOption: "Manage an implementation prompt, change directory, or direct task and wait for terminal delivery",
44
+ manualOption: "Create a controlled manual-execution task without starting an executor",
40
45
  managedProjectOption: "Managed task project directory",
41
46
  managedProfileOption: "Task profile: auto | quick | engineering | sdd | monitor",
42
- managedSupervisorOption: "Supervisor agent: codex | claude",
43
- managedExecutorOption: "Executor agent: codex | claude",
47
+ managedSupervisorOption: "Supervisor: current | peer | codex | claude",
48
+ managedSubmitHostReviewOption: "Submit the current Codex host review JSON and resume the task",
49
+ managedSubmitManualDeliveryOption: "Submit a structured delivery JSON from a manual executor",
50
+ managedExecutorOption: "Executor: peer | current | codex | claude",
44
51
  managedAddDirOption: "Additional writable repositories in the same platform",
45
- managedResumeOption: "Resume from recorded sessions and checkpoints",
52
+ managedResumeOption: "Attach safely to a running task or recover from recorded checkpoints",
53
+ managedReopenDeliveryOption: "Reopen a rejected delivery with an auditable correction reason",
54
+ managedReplaceExecutorSessionOption: "Replace an incompatible executor session during explicit recovery",
55
+ managedResetExecutorSessionOption: "Discard an unhealthy executor session with an audit reason and create a fresh one during recovery",
56
+ managedRetryBlockedExecutorOption: "Retry a blocked executor with an auditable human recovery reason",
57
+ managedProviderSwitchedOption: "Confirm a provider switch with an audit reason and resume in a fresh executor session",
58
+ managedInfrastructureCreditsOption: "Credit non-development executor calls caused by infrastructure failures",
59
+ managedMaxExecutorInvocationsOption: "Increase this task's executor invocation limit",
60
+ managedMaxReviewRoundsOption: "Increase this task's formal review limit",
61
+ managedMaxTotalAgentInvocationsOption: "Increase this task's total Agent invocation limit",
62
+ managedBudgetOverrideReasonOption: "Audit reason required when increasing managed task budgets",
63
+ managedUnlimitedAgentBudgetOption: "Temporarily remove Agent invocation limits for this task",
64
+ managedAdditionalExecutorInvocationsOption: "Set a temporary window of additional executor invocations",
65
+ checkDescription: "Check an SDD change at file, document-delivery, or coding-ready level",
66
+ checkLevelOption: "Check level: files | docs | coding-ready",
46
67
  },
47
68
  zh: {
48
69
  programDescription: "SuperBridge Flow - SDD/TDD 与双 Agent 托管工作流 CLI",
49
70
  initDescription: "一站式安装 SuperBridge Flow(detect / deps / skills / scripts / hooks / 项目扫描)",
50
71
  scanDescription: "单独重跑项目扫描(脚手架 docs/sdd-context/ + understand-anything)",
51
72
  clarifyDescription: "校验 SuperBridge Flow clarify 阶段技能部署状态",
52
- docsDescription: "校验 SuperBridge Flow docs 阶段技能部署状态",
73
+ requirementReviewDescription: "校验 SuperBridge Flow 需求反向评审技能部署状态",
74
+ docsDescription: "执行 docs 门禁并校验 SuperBridge Flow docs 技能",
53
75
  designDescription: "校验 SuperBridge Flow design 阶段技能部署状态",
54
- implementDescription: "校验 SuperBridge Flow implement 阶段技能部署状态",
76
+ implementDescription: "通过 Coding Ready 门禁后进入实现阶段",
55
77
  pipelineDescription: "路由 SDD 阶段,或托管实现 Prompt 直到双 Agent 交付终态",
56
78
  verifyDescription: "校验 SuperBridge Flow verify 阶段技能部署状态",
57
79
  archiveDescription: "校验 SuperBridge Flow archive 阶段技能部署状态",
58
80
  statusDescription: "查看当前项目的托管任务、SDD changes 和下一步命令",
81
+ mcpDescription: "安装、移除或检查 Superflow 托管 MCP 集成",
82
+ evalDescription: "根据落盘证据离线评估托管任务的质量、效率与成本",
59
83
  updateDescription: "更新已安装的 SuperBridge Flow skills、scripts 和 hooks",
60
84
  doctorDescription: "诊断 SuperBridge Flow 安装健康",
61
85
  uninstallDescription: "卸载 SuperBridge Flow 管理的技能、脚本和 hook 注册",
62
86
  dryRun: "只打印计划不执行",
63
- agentOption: "安装/校验目标:claude | codex | opencode | both | all",
87
+ agentOption: "安装/校验目标:claude | codex | both",
64
88
  scopeOption: "安装作用域:global | project",
65
89
  updateScopeOption: "更新作用域:auto | global | project",
66
90
  commandScopeOption: "作用域:auto | global | project",
67
91
  languageOption: "语言:en | zh",
68
92
  yesOption: "非交互确认安装(默认参数)",
69
93
  jsonOption: "输出 JSON",
94
+ summaryOption: "汇总传入且可比较的任务 Run,形成评估基线",
70
95
  resumeOption: "从失败步骤继续",
71
96
  skipExistingOption: "已存在的 skill/script 保持不动",
72
97
  overwriteOption: "已存在的 skill 直接覆盖,不额外生成 backup",
@@ -79,12 +104,29 @@ const CLI_TEXT = {
79
104
  uninstallForceOption: "跳过确认提示",
80
105
  withDepsOption: "同时卸载 OpenSpec、Superpowers、Understand 依赖",
81
106
  managedOption: "托管 implementation prompt、change 目录或自然语言任务,并等待终态回传",
107
+ manualOption: "创建受控人工执行任务,不自动启动实现者",
82
108
  managedProjectOption: "托管任务项目目录",
83
109
  managedProfileOption: "任务档位:auto | quick | engineering | sdd | monitor",
84
- managedSupervisorOption: "监督 Agent:codex | claude",
85
- managedExecutorOption: "执行 Agent:codex | claude",
110
+ managedSupervisorOption: "监督 Agent:current | peer | codex | claude",
111
+ managedSubmitHostReviewOption: "提交当前 Host Codex 的结构化评审 JSON 并恢复任务",
112
+ managedSubmitManualDeliveryOption: "提交人工执行者的结构化交付 JSON",
113
+ managedExecutorOption: "执行 Agent:peer | current | codex | claude",
86
114
  managedAddDirOption: "同一业务平台需要联动修改的其他仓库",
87
- managedResumeOption: "从已登记会话和检查点恢复托管任务",
115
+ managedResumeOption: "安全接入运行中任务,或从已登记检查点恢复托管任务",
116
+ managedReopenDeliveryOption: "用可审计的整改原因重新打开被用户驳回的交付",
117
+ managedReplaceExecutorSessionOption: "人工恢复时替换不兼容的执行会话,并保留审计记录",
118
+ managedResetExecutorSessionOption: "提供审计原因并放弃异常执行会话,下次调用创建全新会话",
119
+ managedRetryBlockedExecutorOption: "提供可审计的人工恢复原因,让被阻塞的执行者继续完成可执行工作",
120
+ managedProviderSwitchedOption: "确认已切换底层供应商并提供原因,使用全新执行会话原地恢复",
121
+ managedInfrastructureCreditsOption: "抵扣由网络、供应商或恢复环境导致的非开发执行调用",
122
+ managedMaxExecutorInvocationsOption: "提高本任务的执行 Agent 调用上限",
123
+ managedMaxReviewRoundsOption: "提高本任务的正式评审轮次上限",
124
+ managedMaxTotalAgentInvocationsOption: "提高本任务的总 Agent 调用上限",
125
+ managedBudgetOverrideReasonOption: "提高托管预算时必填的审计原因",
126
+ managedUnlimitedAgentBudgetOption: "临时取消当前任务的 Agent 调用次数限制",
127
+ managedAdditionalExecutorInvocationsOption: "设置当前任务临时新增的执行 Agent 调用窗口",
128
+ checkDescription: "按文件、文档交付或可编码等级检查 SDD change",
129
+ checkLevelOption: "检查等级:files | docs | coding-ready",
88
130
  },
89
131
  };
90
132
  export function cliText(language) {
@@ -1 +1 @@
1
- {"version":3,"file":"cli-help.js","sourceRoot":"","sources":["../../../src/domains/config/cli-help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-help.js","sourceRoot":"","sources":["../../../src/domains/config/cli-help.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,9 @@ const TRANSLATIONS = {
3
3
  agentPrompt: 'Select agent tools to initialize (multi-select):',
4
4
  agentClaude: 'Claude Code',
5
5
  agentCodex: 'Codex',
6
- agentOpenCode: 'OpenCode',
7
- agentBoth: 'Install Claude Code and Codex (default); use all for OpenCode too',
8
- agentAnswer: 'Enter 1,2 / 2,3 / all / a:',
9
- agentInvalid: 'Invalid input. Enter 1, 2, 3, 1,2, 2,3, claude, codex, opencode, all, or a.',
6
+ agentBoth: 'Install Claude Code and Codex (default)',
7
+ agentAnswer: 'Enter 1,2 / claude / codex / a:',
8
+ agentInvalid: 'Invalid input. Enter 1, 2, 1,2, claude, codex, or both.',
10
9
  languagePrompt: 'Select SuperBridge Flow language:',
11
10
  languageEnglish: 'English',
12
11
  languageChinese: 'Chinese',
@@ -47,10 +46,9 @@ const TRANSLATIONS = {
47
46
  agentPrompt: '请选择要初始化的 agent 工具(可多选):',
48
47
  agentClaude: 'Claude Code',
49
48
  agentCodex: 'Codex',
50
- agentOpenCode: 'OpenCode',
51
- agentBoth: '安装 Claude Code + Codex(默认);输入 all 会包含 OpenCode',
52
- agentAnswer: '输入序号,例如 1,2 / 2,3 / all / a:',
53
- agentInvalid: '输入无效,请输入 1、2、3、1,2、2,3、claude、codex、opencode、all 或 a。',
49
+ agentBoth: '安装 Claude Code + Codex(默认)',
50
+ agentAnswer: '输入序号,例如 1,2 / claude / codex / a:',
51
+ agentInvalid: '输入无效,请输入 1、2、1,2、claude、codex 或 both。',
54
52
  languagePrompt: '请选择 SuperBridge Flow 语言:',
55
53
  languageEnglish: '英文',
56
54
  languageChinese: '中文',
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../src/domains/config/i18n.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../src/domains/config/i18n.ts"],"names":[],"mappings":"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"}
@@ -13,9 +13,6 @@ export function getManifestScripts(agent) {
13
13
  return [...manifest.scripts, ...(manifest.agentScripts[agent] ?? [])];
14
14
  }
15
15
  export function getManifestHooks(agent) {
16
- if (agent === 'opencode') {
17
- return [...(manifest.agentHooks[agent] ?? [])];
18
- }
19
16
  return [...(manifest.agentHooks[agent] ?? []), ...manifest.hooks];
20
17
  }
21
18
  //# sourceMappingURL=manifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/domains/config/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,+BAA+B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAc/E,MAAM,QAAQ,GAAG,YAA2B,CAAC;AAE7C,MAAM,UAAU,WAAW;IACzB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAY;IAC7C,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAY;IAC3C,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/domains/config/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,+BAA+B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAc/E,MAAM,QAAQ,GAAG,YAA2B,CAAC;AAE7C,MAAM,UAAU,WAAW;IACzB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAY;IAC7C,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAY;IAC3C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC"}
@@ -1,9 +1,62 @@
1
- import { promises as fs } from 'fs';
1
+ import { existsSync, promises as fs, readFileSync, readdirSync, statSync, } from 'fs';
2
2
  import { homedir } from 'os';
3
3
  import path from 'path';
4
4
  import { runCommand } from '../platform/process.js';
5
5
  import { ASSETS_DIR } from '../platform/assets.js';
6
6
  export const CODEX_SUPERPOWERS_PLUGIN = 'superpowers@openai-api-curated';
7
+ export const REQUIRED_CODEX_SUPERPOWER_SKILLS = [
8
+ 'verification-before-completion',
9
+ 'requesting-code-review',
10
+ 'finishing-a-development-branch',
11
+ ];
12
+ export function hasCodexSuperpowerSkill(skill, root = path.join(homedir(), '.codex', 'plugins', 'cache', 'openai-api-curated', 'superpowers')) {
13
+ if (!existsSync(root))
14
+ return false;
15
+ const expected = path.join('skills', skill, 'SKILL.md');
16
+ const stack = [root];
17
+ while (stack.length > 0) {
18
+ const current = stack.pop();
19
+ let entries;
20
+ try {
21
+ entries = readdirSync(current);
22
+ }
23
+ catch {
24
+ continue;
25
+ }
26
+ for (const entry of entries) {
27
+ const full = path.join(current, entry);
28
+ if (full.endsWith(expected) && existsSync(full))
29
+ return true;
30
+ if (stack.length < 200) {
31
+ try {
32
+ if (statSync(full).isDirectory())
33
+ stack.push(full);
34
+ }
35
+ catch {
36
+ continue;
37
+ }
38
+ }
39
+ }
40
+ }
41
+ return false;
42
+ }
43
+ export function isCodexSuperpowersEnabled(configPath = path.join(homedir(), '.codex', 'config.toml')) {
44
+ if (!existsSync(configPath))
45
+ return false;
46
+ try {
47
+ const config = readFileSync(configPath, 'utf8');
48
+ return /\[plugins\."superpowers@openai-api-curated"\]\s*enabled\s*=\s*true\b/.test(config);
49
+ }
50
+ catch {
51
+ return false;
52
+ }
53
+ }
54
+ export function missingCodexSuperpowerSkills() {
55
+ if (!isCodexSuperpowersEnabled()) {
56
+ return [...REQUIRED_CODEX_SUPERPOWER_SKILLS];
57
+ }
58
+ return REQUIRED_CODEX_SUPERPOWER_SKILLS.filter((skill) => !hasCodexSuperpowerSkill(skill));
59
+ }
7
60
  function alreadyInstalled(output) {
8
61
  return /already\s+(installed|exists)|is\s+already\s+installed|already\s+added/i.test(output);
9
62
  }
@@ -44,7 +97,7 @@ export async function initializeOpenspec(projectPath, agents, scope) {
44
97
  }
45
98
  /**
46
99
  * 安装 superpowers(claude 插件)
47
- * 失败阻塞 init(核心 HOW/TDD 依赖;已装视为成功)
100
+ * 它是 Superflow verify 阶段的硬依赖;安装失败必须阻止初始化或带包更新。
48
101
  */
49
102
  export async function installSuperpowers() {
50
103
  const result = await runCommand('claude', [
@@ -61,10 +114,10 @@ export async function installSuperpowers() {
61
114
  return { ok: true };
62
115
  }
63
116
  /**
64
- * 安装 superpowers(Codex 插件)
65
- * 失败阻塞 init(核心 HOW/TDD 依赖;已装视为成功)
117
+ * 安装 Superpowers(Codex 插件)。
118
+ * 它是 verify 阶段的硬依赖;已装视为成功,安装失败必须阻止初始化或更新。
66
119
  */
67
- export async function installCodexSuperpowers() {
120
+ export async function installCodexSuperpowers(verifySkills = false) {
68
121
  const result = await runCommand('codex', [
69
122
  'plugin',
70
123
  'add',
@@ -73,10 +126,18 @@ export async function installCodexSuperpowers() {
73
126
  if (result.code !== 0) {
74
127
  const output = `${result.stderr}\n${result.stdout}`;
75
128
  if (alreadyInstalled(output))
76
- return { ok: true };
129
+ return verifiedCodexSuperpowers(verifySkills);
77
130
  return { ok: false, error: result.stderr || result.stdout };
78
131
  }
79
- return { ok: true };
132
+ return verifiedCodexSuperpowers(verifySkills);
133
+ }
134
+ function verifiedCodexSuperpowers(verifySkills) {
135
+ if (!verifySkills)
136
+ return { ok: true };
137
+ const missing = missingCodexSuperpowerSkills();
138
+ if (missing.length === 0)
139
+ return { ok: true };
140
+ return { ok: false, error: `required skills missing: ${missing.join(', ')}` };
80
141
  }
81
142
  /**
82
143
  * 安装 understand-anything(claude 插件)
@@ -1 +1 @@
1
- {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/domains/deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/domains/deps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,174 @@
1
+ import { existsSync, readFileSync } from "fs";
2
+ import path from "path";
3
+ import { deriveExecutionTaskCompletion, isAcceptedEvidenceCommand, readManagedExecutionContract, } from "./execution-contract.js";
4
+ import { canonicalEvidencePath } from "./evidence-path.js";
5
+ export function evaluateCompletion(contract, result) {
6
+ const tasks = readCompletionTasks(contract, result);
7
+ const usesCanonicalTasks = Boolean(findOpenSpecTasksFile(contract));
8
+ const evidence = new Map((result?.taskEvidence ?? []).map((item) => [item.taskId, item]));
9
+ const localGaps = [];
10
+ const environmentGaps = [];
11
+ const releaseGaps = [];
12
+ for (const task of tasks) {
13
+ const gaps = gapsFor(task.category, {
14
+ localGaps,
15
+ environmentGaps,
16
+ releaseGaps,
17
+ });
18
+ if (!task.completed) {
19
+ gaps.push(`${task.taskId}: ${task.text}`);
20
+ continue;
21
+ }
22
+ if (usesCanonicalTasks && task.category === "local_required") {
23
+ const taskEvidence = evidence.get(task.taskId);
24
+ if (!validLocalEvidence(taskEvidence, contract, result)) {
25
+ gaps.push(`${task.taskId}: 已勾选但缺少结构化证据、验证命令或源码文件`);
26
+ }
27
+ }
28
+ }
29
+ if ((result?.releasePrerequisites.length ?? 0) > 0 &&
30
+ environmentGaps.length === 0 &&
31
+ releaseGaps.length === 0) {
32
+ releaseGaps.push(...(result?.releasePrerequisites ?? []));
33
+ }
34
+ return {
35
+ localReady: localGaps.length === 0,
36
+ environmentReady: environmentGaps.length === 0,
37
+ releaseReady: releaseGaps.length === 0,
38
+ progress: {
39
+ source: progressFor(tasks, "local_required"),
40
+ environment: progressFor(tasks, "environment_required"),
41
+ release: progressFor(tasks, "release_required"),
42
+ },
43
+ tasks,
44
+ localGaps,
45
+ environmentGaps,
46
+ releaseGaps,
47
+ };
48
+ }
49
+ export function readCompletionTasks(contract, result) {
50
+ const tasksFile = findOpenSpecTasksFile(contract);
51
+ if (!tasksFile) {
52
+ return readManagedExecutionContract(contract).tasks.map((task) => ({
53
+ taskId: task.taskId,
54
+ text: task.text,
55
+ category: "local_required",
56
+ completed: deriveExecutionTaskCompletion(task, result),
57
+ }));
58
+ }
59
+ return readFileSync(tasksFile, "utf-8")
60
+ .split(/\r?\n/)
61
+ .filter((line) => /^\s*- \[[ xX]\]/.test(line))
62
+ .map((line, index) => parseTask(line, index));
63
+ }
64
+ function parseTask(line, index) {
65
+ const completed = /^\s*- \[[xX]\]/.test(line);
66
+ const text = line.replace(/^\s*- \[[ xX]\]\s*/, "").trim();
67
+ const explicitId = text.match(/^([A-Za-z]*\d+(?:\.\d+)*|[A-Z][A-Z0-9_-]+)\b/);
68
+ return {
69
+ taskId: explicitId?.[1] ?? `task-${index + 1}`,
70
+ text,
71
+ category: categoryFromExactTag(text),
72
+ completed,
73
+ };
74
+ }
75
+ function categoryFromExactTag(text) {
76
+ if (/\[environment_required\]/i.test(text))
77
+ return "environment_required";
78
+ if (/\[release_required\]/i.test(text))
79
+ return "release_required";
80
+ return "local_required";
81
+ }
82
+ function validLocalEvidence(evidence, contract, result) {
83
+ const successfulCommands = new Set(result?.commands
84
+ .filter(isAcceptedEvidenceCommand)
85
+ .map((item) => item.command) ?? []);
86
+ const declaredFiles = new Set(result?.changedFiles ?? []);
87
+ const hasDerivedBaseline = Boolean(result &&
88
+ successfulCommands.size > 0 &&
89
+ defaultEvidencePaths(contract, result).length > 0);
90
+ if (hasDerivedBaseline)
91
+ return true;
92
+ if (!evidence)
93
+ return false;
94
+ return Boolean(evidence.category === "local_required" &&
95
+ evidence.owner === "executor" &&
96
+ evidence.evidencePaths.length > 0 &&
97
+ evidence.verificationCommands.length > 0 &&
98
+ evidence.evidencePaths.every((item) => evidencePathExists(contract, item)) &&
99
+ evidence.verificationCommands.every((item) => successfulCommands.has(item) ||
100
+ result?.commands.some((actual) => isAcceptedEvidenceCommand(actual) &&
101
+ verificationCommandCovered(item, actual.command))) &&
102
+ evidence.changedFiles.every((item) => declaredFiles.has(item)));
103
+ }
104
+ function verificationCommandCovered(expected, actual) {
105
+ if (expected === actual)
106
+ return true;
107
+ const expectedTests = mavenTestSelectors(expected);
108
+ const actualTests = mavenTestSelectors(actual);
109
+ return (expectedTests.length > 0 &&
110
+ actualTests.length > 0 &&
111
+ expectedTests.every((test) => actualTests.includes(test)));
112
+ }
113
+ function mavenTestSelectors(command) {
114
+ if (!/(?:^|\s)(?:\.\/)?mvn(?:\s|$)/.test(command))
115
+ return [];
116
+ const match = command.match(/-Dtest=([^\s]+)/);
117
+ return match?.[1].split(",").filter(Boolean) ?? [];
118
+ }
119
+ function defaultEvidencePaths(contract, result) {
120
+ const candidates = [...result.evidence];
121
+ const tasksFile = findOpenSpecTasksFile(contract);
122
+ if (tasksFile) {
123
+ candidates.push(tasksFile);
124
+ candidates.push(path.join(path.dirname(tasksFile), "test-report.md"));
125
+ }
126
+ return candidates.filter((item) => evidencePathExists(contract, item));
127
+ }
128
+ function evidencePathExists(contract, evidencePath) {
129
+ const canonicalPath = canonicalEvidencePath(evidencePath);
130
+ if (path.isAbsolute(canonicalPath))
131
+ return existsSync(canonicalPath);
132
+ const bases = [
133
+ ...(findOpenSpecTasksFile(contract)
134
+ ? [path.dirname(findOpenSpecTasksFile(contract))]
135
+ : []),
136
+ ...(contract.taskPrompt
137
+ ? [path.dirname(contract.taskPrompt.originalPath)]
138
+ : []),
139
+ contract.projectRoot,
140
+ ...contract.relatedProjectRoots,
141
+ ];
142
+ return bases.some((base) => existsSync(path.resolve(base, canonicalPath)));
143
+ }
144
+ function progressFor(tasks, category) {
145
+ const selected = tasks.filter((task) => task.category === category);
146
+ return {
147
+ completed: selected.filter((task) => task.completed).length,
148
+ total: selected.length,
149
+ };
150
+ }
151
+ function gapsFor(category, gaps) {
152
+ if (category === "environment_required")
153
+ return gaps.environmentGaps;
154
+ if (category === "release_required")
155
+ return gaps.releaseGaps;
156
+ return gaps.localGaps;
157
+ }
158
+ function findOpenSpecTasksFile(contract) {
159
+ if (!contract.taskPrompt?.originalPath)
160
+ return null;
161
+ let current = path.dirname(path.resolve(contract.taskPrompt.originalPath));
162
+ const roots = [contract.projectRoot, ...contract.relatedProjectRoots].map((root) => path.resolve(root));
163
+ while (roots.some((root) => current.startsWith(root))) {
164
+ const file = path.join(current, "tasks.md");
165
+ if (existsSync(file))
166
+ return file;
167
+ const parent = path.dirname(current);
168
+ if (parent === current)
169
+ break;
170
+ current = parent;
171
+ }
172
+ return null;
173
+ }
174
+ //# sourceMappingURL=completion-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion-policy.js","sourceRoot":"","sources":["../../../src/domains/managed-work/completion-policy.ts"],"names":[],"mappings":"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"}