@seanmars/tospec 0.12.0 → 0.13.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 (180) hide show
  1. package/assets/dashboard/style.css +8 -3
  2. package/dist/cli/index.d.ts.map +1 -1
  3. package/dist/cli/index.js +40 -17
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/commands/config.d.ts.map +1 -1
  6. package/dist/commands/config.js +0 -9
  7. package/dist/commands/config.js.map +1 -1
  8. package/dist/commands/dashboard.d.ts +95 -8
  9. package/dist/commands/dashboard.d.ts.map +1 -1
  10. package/dist/commands/dashboard.js +253 -32
  11. package/dist/commands/dashboard.js.map +1 -1
  12. package/dist/commands/decision.d.ts.map +1 -1
  13. package/dist/commands/decision.js +1 -13
  14. package/dist/commands/decision.js.map +1 -1
  15. package/dist/commands/validate.d.ts.map +1 -1
  16. package/dist/commands/validate.js +36 -41
  17. package/dist/commands/validate.js.map +1 -1
  18. package/dist/commands/workflow/instructions.d.ts +0 -2
  19. package/dist/commands/workflow/instructions.d.ts.map +1 -1
  20. package/dist/commands/workflow/instructions.js +2 -37
  21. package/dist/commands/workflow/instructions.js.map +1 -1
  22. package/dist/commands/workflow/shared.d.ts +0 -3
  23. package/dist/commands/workflow/shared.d.ts.map +1 -1
  24. package/dist/commands/workflow/shared.js.map +1 -1
  25. package/dist/core/archive.d.ts +13 -4
  26. package/dist/core/archive.d.ts.map +1 -1
  27. package/dist/core/archive.js +89 -117
  28. package/dist/core/archive.js.map +1 -1
  29. package/dist/core/artifact-graph/instruction-loader.d.ts +0 -5
  30. package/dist/core/artifact-graph/instruction-loader.d.ts.map +1 -1
  31. package/dist/core/artifact-graph/instruction-loader.js +31 -37
  32. package/dist/core/artifact-graph/instruction-loader.js.map +1 -1
  33. package/dist/core/artifact-graph/resolver.d.ts +6 -0
  34. package/dist/core/artifact-graph/resolver.d.ts.map +1 -1
  35. package/dist/core/artifact-graph/resolver.js +79 -124
  36. package/dist/core/artifact-graph/resolver.js.map +1 -1
  37. package/dist/core/change-presenter.d.ts +0 -1
  38. package/dist/core/change-presenter.d.ts.map +1 -1
  39. package/dist/core/change-presenter.js +3 -20
  40. package/dist/core/change-presenter.js.map +1 -1
  41. package/dist/core/command-generation/adapters/index.d.ts +9 -1
  42. package/dist/core/command-generation/adapters/index.d.ts.map +1 -1
  43. package/dist/core/command-generation/adapters/index.js +10 -1
  44. package/dist/core/command-generation/adapters/index.js.map +1 -1
  45. package/dist/core/command-generation/index.d.ts +2 -2
  46. package/dist/core/command-generation/index.d.ts.map +1 -1
  47. package/dist/core/command-generation/index.js +2 -2
  48. package/dist/core/command-generation/index.js.map +1 -1
  49. package/dist/core/config.d.ts +0 -4
  50. package/dist/core/config.d.ts.map +1 -1
  51. package/dist/core/config.js +0 -4
  52. package/dist/core/config.js.map +1 -1
  53. package/dist/core/converters/json-converter.d.ts +0 -1
  54. package/dist/core/converters/json-converter.d.ts.map +1 -1
  55. package/dist/core/converters/json-converter.js +3 -17
  56. package/dist/core/converters/json-converter.js.map +1 -1
  57. package/dist/core/dashboard-activity.d.ts.map +1 -1
  58. package/dist/core/dashboard-activity.js +2 -8
  59. package/dist/core/dashboard-activity.js.map +1 -1
  60. package/dist/core/dashboard-data.d.ts +7 -7
  61. package/dist/core/dashboard-data.d.ts.map +1 -1
  62. package/dist/core/dashboard-data.js +15 -54
  63. package/dist/core/dashboard-data.js.map +1 -1
  64. package/dist/core/id.d.ts +0 -8
  65. package/dist/core/id.d.ts.map +1 -1
  66. package/dist/core/id.js +0 -19
  67. package/dist/core/id.js.map +1 -1
  68. package/dist/core/init.d.ts +0 -1
  69. package/dist/core/init.d.ts.map +1 -1
  70. package/dist/core/init.js +9 -23
  71. package/dist/core/init.js.map +1 -1
  72. package/dist/core/list.d.ts.map +1 -1
  73. package/dist/core/list.js +3 -34
  74. package/dist/core/list.js.map +1 -1
  75. package/dist/core/migrate.js +9 -15
  76. package/dist/core/migrate.js.map +1 -1
  77. package/dist/core/parsers/markdown-parser.d.ts +11 -1
  78. package/dist/core/parsers/markdown-parser.d.ts.map +1 -1
  79. package/dist/core/parsers/markdown-parser.js +25 -13
  80. package/dist/core/parsers/markdown-parser.js.map +1 -1
  81. package/dist/core/planning-home.d.ts +6 -0
  82. package/dist/core/planning-home.d.ts.map +1 -1
  83. package/dist/core/planning-home.js +6 -1
  84. package/dist/core/planning-home.js.map +1 -1
  85. package/dist/core/project-config.d.ts +5 -19
  86. package/dist/core/project-config.d.ts.map +1 -1
  87. package/dist/core/project-config.js +11 -130
  88. package/dist/core/project-config.js.map +1 -1
  89. package/dist/core/root-selection.d.ts.map +1 -1
  90. package/dist/core/root-selection.js +2 -15
  91. package/dist/core/root-selection.js.map +1 -1
  92. package/dist/core/shared/index.d.ts +1 -1
  93. package/dist/core/shared/index.d.ts.map +1 -1
  94. package/dist/core/shared/index.js +1 -1
  95. package/dist/core/shared/index.js.map +1 -1
  96. package/dist/core/shared/skill-generation.d.ts +4 -4
  97. package/dist/core/shared/skill-generation.d.ts.map +1 -1
  98. package/dist/core/shared/skill-generation.js +5 -5
  99. package/dist/core/shared/skill-generation.js.map +1 -1
  100. package/dist/core/shared/tool-detection.d.ts +3 -6
  101. package/dist/core/shared/tool-detection.d.ts.map +1 -1
  102. package/dist/core/shared/tool-detection.js +3 -9
  103. package/dist/core/shared/tool-detection.js.map +1 -1
  104. package/dist/core/spec-presenter.d.ts.map +1 -1
  105. package/dist/core/spec-presenter.js.map +1 -1
  106. package/dist/core/specs-apply.d.ts +0 -31
  107. package/dist/core/specs-apply.d.ts.map +1 -1
  108. package/dist/core/specs-apply.js +0 -102
  109. package/dist/core/specs-apply.js.map +1 -1
  110. package/dist/core/templates/fragments/verify.d.ts +12 -11
  111. package/dist/core/templates/fragments/verify.d.ts.map +1 -1
  112. package/dist/core/templates/fragments/verify.js +22 -15
  113. package/dist/core/templates/fragments/verify.js.map +1 -1
  114. package/dist/core/templates/skill-templates.d.ts +1 -1
  115. package/dist/core/templates/skill-templates.d.ts.map +1 -1
  116. package/dist/core/templates/skill-templates.js +1 -1
  117. package/dist/core/templates/skill-templates.js.map +1 -1
  118. package/dist/core/templates/workflows/apply.d.ts +2 -2
  119. package/dist/core/templates/workflows/apply.js +10 -10
  120. package/dist/core/templates/workflows/apply.js.map +1 -1
  121. package/dist/core/templates/workflows/archive.d.ts.map +1 -1
  122. package/dist/core/templates/workflows/archive.js +21 -25
  123. package/dist/core/templates/workflows/archive.js.map +1 -1
  124. package/dist/core/templates/workflows/reconcile.d.ts +14 -0
  125. package/dist/core/templates/workflows/reconcile.d.ts.map +1 -0
  126. package/dist/core/templates/workflows/{sync.js → reconcile.js} +28 -21
  127. package/dist/core/templates/workflows/reconcile.js.map +1 -0
  128. package/dist/core/update.d.ts.map +1 -1
  129. package/dist/core/update.js +6 -15
  130. package/dist/core/update.js.map +1 -1
  131. package/dist/core/validation/section-validator.d.ts.map +1 -1
  132. package/dist/core/validation/section-validator.js +3 -16
  133. package/dist/core/validation/section-validator.js.map +1 -1
  134. package/dist/core/validation/validator.d.ts +0 -2
  135. package/dist/core/validation/validator.d.ts.map +1 -1
  136. package/dist/core/validation/validator.js +36 -74
  137. package/dist/core/validation/validator.js.map +1 -1
  138. package/dist/utils/change-utils.d.ts.map +1 -1
  139. package/dist/utils/change-utils.js +3 -6
  140. package/dist/utils/change-utils.js.map +1 -1
  141. package/dist/utils/file-system.d.ts +17 -19
  142. package/dist/utils/file-system.d.ts.map +1 -1
  143. package/dist/utils/file-system.js +41 -189
  144. package/dist/utils/file-system.js.map +1 -1
  145. package/dist/utils/frontmatter.d.ts +22 -0
  146. package/dist/utils/frontmatter.d.ts.map +1 -0
  147. package/dist/utils/frontmatter.js +39 -0
  148. package/dist/utils/frontmatter.js.map +1 -0
  149. package/dist/utils/item-discovery.d.ts +7 -0
  150. package/dist/utils/item-discovery.d.ts.map +1 -1
  151. package/dist/utils/item-discovery.js +13 -23
  152. package/dist/utils/item-discovery.js.map +1 -1
  153. package/dist/utils/link.d.ts +3 -1
  154. package/dist/utils/link.d.ts.map +1 -1
  155. package/dist/utils/link.js +4 -14
  156. package/dist/utils/link.js.map +1 -1
  157. package/dist/utils/task-progress.d.ts +0 -1
  158. package/dist/utils/task-progress.d.ts.map +1 -1
  159. package/dist/utils/task-progress.js +5 -6
  160. package/dist/utils/task-progress.js.map +1 -1
  161. package/package.json +1 -1
  162. package/dist/core/references.d.ts +0 -40
  163. package/dist/core/references.d.ts.map +0 -1
  164. package/dist/core/references.js +0 -11
  165. package/dist/core/references.js.map +0 -1
  166. package/dist/core/templates/workflows/sync.d.ts +0 -14
  167. package/dist/core/templates/workflows/sync.d.ts.map +0 -1
  168. package/dist/core/templates/workflows/sync.js.map +0 -1
  169. package/dist/utils/command-references.d.ts +0 -18
  170. package/dist/utils/command-references.d.ts.map +0 -1
  171. package/dist/utils/command-references.js +0 -20
  172. package/dist/utils/command-references.js.map +0 -1
  173. package/dist/utils/index.d.ts +0 -6
  174. package/dist/utils/index.d.ts.map +0 -1
  175. package/dist/utils/index.js +0 -9
  176. package/dist/utils/index.js.map +0 -1
  177. package/dist/utils/shell-detection.d.ts +0 -20
  178. package/dist/utils/shell-detection.d.ts.map +0 -1
  179. package/dist/utils/shell-detection.js +0 -41
  180. package/dist/utils/shell-detection.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../../src/core/templates/fragments/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,ymIAwCoN,CAAC;AAEpP,gFAAgF;AAChF,eAAO,MAAM,UAAU,6zIAKtB,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,cAAc,kZAE4T,CAAC;AAExV,kFAAkF;AAClF,eAAO,MAAM,aAAa,i7IAIJ,CAAC"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../../src/core/templates/fragments/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,kyJA0C4N,CAAC;AAE5P,gFAAgF;AAChF,eAAO,MAAM,UAAU,y/JAKtB,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,cAAc,qiBAIoR,CAAC;AAEhT,kFAAkF;AAClF,eAAO,MAAM,aAAa,syKAMJ,CAAC"}
@@ -1,18 +1,21 @@
1
1
  /**
2
- * Verify methodology — apply's automatic final step.
2
+ * Verify methodology — apply's opt-in review.
3
3
  *
4
- * verify is not a standalone skill/command; it runs at the end of both apply
5
- * variants. The methodology is long enough that leaving it inline puts ~45
6
- * lines of end-of-run review in front of an agent that is still on task 1 of N,
7
- * so the skill form discloses it to a sibling `VERIFY.md` and keeps only a
8
- * pointer. The command form has no sibling file, so it inlines the same text.
9
- * Either way this module is the single source of truth.
4
+ * verify is not a standalone skill/command; it lives inside both apply variants
5
+ * and runs only when the user asks for it. The methodology is long enough that
6
+ * leaving it inline puts ~45 lines of end-of-run review in front of an agent
7
+ * that is still on task 1 of N, so the skill form discloses it to a sibling
8
+ * `VERIFY.md` and keeps only a pointer. The command form has no sibling file,
9
+ * so it inlines the same text. Either way this module is the single source of
10
+ * truth.
10
11
  */
11
12
  /** The review protocol itself — shared by the disclosed file and the command. */
12
13
  export const VERIFY_METHODOLOGY = `Two-axis review of the implementation, run as **independent parallel subagents** so neither pollutes or reranks the other's findings — a change can pass one axis and fail the other, and reporting them separately is what keeps that visible.
13
14
 
14
15
  **Scope — two subagents, one pass each, and that is the whole review.** The subject under review is always the *code diff*, never another review's output. Do not spawn a third agent to grade the two axes' findings, do not re-review a report you have already written, do not audit the audit. Right-sized review beats deep review: enough eyes to catch real problems, no recursion for its own sake.
15
16
 
17
+ **What counts as blocking.** Exactly two kinds of finding block: a **hard violation** of a convention this repo documents, and a **spec-correctness** problem — a requirement missing, implemented wrongly, or contradicting a decision \`design.md\` records. Everything else — judgement calls, style preferences, and every code smell named below — is **report-only**: report it, do not fix it, and do not re-review because of it. A report-only finding is the user's call to make later, not this run's work. Leave this unstated and the safe reading is to fix everything, which makes "re-run only the affected axis" fire on every axis, every time.
18
+
16
19
  **Steps**
17
20
 
18
21
  1. **Gather context**
@@ -43,28 +46,32 @@ export const VERIFY_METHODOLOGY = `Two-axis review of the implementation, run as
43
46
 
44
47
  **Verify output**
45
48
 
46
- Report the two-axis result plus test suite status. If both axes are clean and tests are green, the change is verified — tell the user it's ready for \`tospec-archive\`. If either axis has a blocking finding or tests are red, do **not** treat apply as done: fix the issue here (this is still apply) and re-run **only the affected axis against the fixed code** until it's clean you are re-reviewing the changed code, not the previous report, and a passing axis is done, so don't re-run it "to be sure".
49
+ Report the two-axis result plus test suite status. If both axes are clean and tests are green, the change is verified — tell the user it's ready for \`tospec-archive\`. If either axis has a blocking finding or tests are red, do **not** treat apply as done: fix the issue here (this is still apply), then send **only the hunk that fixed it** back to the axis that reported it — never the whole axis, and never the other one. You are reviewing the changed code, not the previous report. A clean axis is not re-run for extra confidence.
47
50
 
48
51
  **Verify guardrails**
49
52
  - Standards and Spec axes are independent — never let one axis's findings influence the other's report
50
53
  - Full test suite must be green; a clean review with red tests is not verified
51
54
  - Quote the specific spec/task line or hunk for every finding — no unsupported claims
52
- - **One review pass per axis — never review the review.** No agent audits another agent's findings, no re-reviewing a report you already wrote; a re-run after a fix targets the changed code, and a clean axis is not re-run for extra confidence`;
55
+ - **One review pass per axis — never review the review.** No agent audits another agent's findings, no re-reviewing a report you already wrote; a re-run after a fix sees only the hunk that fixed it, and a clean axis is not re-run for extra confidence`;
53
56
  /** Contents of the `VERIFY.md` shipped beside each apply skill's `SKILL.md`. */
54
- export const VERIFY_DOC = `# Verify — apply's final step
57
+ export const VERIFY_DOC = `# Verify — apply's opt-in review
55
58
 
56
- Run this once every task in the tracks file is checked off and \`tospec validate\` passes. It is the last step of \`tospec-apply\`, not a separate command the user invokes.
59
+ Run this **when the user asks for a review**, once every task in the tracks file is checked off and \`tospec validate\` passes. It is not a step apply reaches on its own.
57
60
 
58
61
  ${VERIFY_METHODOLOGY}
59
62
  `;
60
63
  /** The pointer that replaces the methodology inside the apply skills. */
61
- export const VERIFY_POINTER = `## Verify (automaticapply's final step)
64
+ export const VERIFY_POINTER = `## Verify (opt-inonly when the user asks)
65
+
66
+ The two-axis review does **not** run on its own. Apply finishes on the full test suite and \`tospec validate\`; a change with those green is implemented, review or no review.
62
67
 
63
- Once every task is checked off and \`tospec validate\` passes, **read \`VERIFY.md\` in this skill's directory and run it in full.** It is apply's last step, not a separate command the user has to invoke. The change stays unfinished — and must not go to \`tospec-archive\` — until that review comes back clean and the full test suite is green.`;
68
+ When the user asks for a review, **read \`VERIFY.md\` in this skill's directory and run it in full.** Don't offer it unprompted either no "shall I review this?" at the end of a run. If a review does run, the change stays unfinished — and must not go to \`tospec-archive\` — until it comes back clean.`;
64
69
  /** The same block for the command form, which has no sibling file to point at. */
65
- export const VERIFY_INLINE = `## Verify (automaticapply's final step)
70
+ export const VERIFY_INLINE = `## Verify (opt-inonly when the user asks)
71
+
72
+ The two-axis review does **not** run on its own. Apply finishes on the full test suite and \`tospec validate\`; a change with those green is implemented, review or no review.
66
73
 
67
- Once every task is checked off and \`tospec validate\` passes, run the two-axis review **automatically**. This is not a separate command the user has to invoke verify is folded into apply and runs here as its last step, before the change is handed to \`tospec-archive\`.
74
+ When the user asks for a review, run the methodology below in full. Don't offer it unprompted either no "shall I review this?" at the end of a run. If a review does run, the change stays unfinished — and must not go to \`tospec-archive\` — until it comes back clean.
68
75
 
69
76
  ${VERIFY_METHODOLOGY}`;
70
77
  //# sourceMappingURL=verify.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../../src/core/templates/fragments/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,iFAAiF;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mPAwCiN,CAAC;AAEpP,gFAAgF;AAChF,MAAM,CAAC,MAAM,UAAU,GAAG;;;;EAIxB,kBAAkB;CACnB,CAAC;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,cAAc,GAAG;;uVAEyT,CAAC;AAExV,kFAAkF;AAClF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;EAI3B,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../../src/core/templates/fragments/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,iFAAiF;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2PA0CyN,CAAC;AAE5P,gFAAgF;AAChF,MAAM,CAAC,MAAM,UAAU,GAAG;;;;EAIxB,kBAAkB;CACnB,CAAC;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,cAAc,GAAG;;;;+SAIiR,CAAC;AAEhT,kFAAkF;AAClF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;EAM3B,kBAAkB,EAAE,CAAC"}
@@ -11,6 +11,6 @@ export { getTospecIssueSkillTemplate, getTospecIssueCommandTemplate } from './wo
11
11
  export { getTospecDecisionSkillTemplate, getTospecDecisionCommandTemplate } from './workflows/decision.js';
12
12
  export { getTospecUpdateSkillTemplate, getTospecUpdateCommandTemplate } from './workflows/update.js';
13
13
  export { getTospecApplySkillTemplate, getTospecApplyCommandTemplate, getTospecApplyWithTDDSkillTemplate, getTospecApplyWithTDDCommandTemplate, } from './workflows/apply.js';
14
- export { getTospecSyncSkillTemplate, getTospecSyncCommandTemplate } from './workflows/sync.js';
14
+ export { getTospecReconcileSkillTemplate, getTospecReconcileCommandTemplate } from './workflows/reconcile.js';
15
15
  export { getTospecArchiveSkillTemplate, getTospecArchiveCommandTemplate } from './workflows/archive.js';
16
16
  //# sourceMappingURL=skill-templates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-templates.d.ts","sourceRoot":"","sources":["../../../src/core/templates/skill-templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,8BAA8B,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,kCAAkC,EAClC,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"skill-templates.d.ts","sourceRoot":"","sources":["../../../src/core/templates/skill-templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,8BAA8B,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,kCAAkC,EAClC,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,+BAA+B,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAC9G,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC"}
@@ -10,6 +10,6 @@ export { getTospecIssueSkillTemplate, getTospecIssueCommandTemplate } from './wo
10
10
  export { getTospecDecisionSkillTemplate, getTospecDecisionCommandTemplate } from './workflows/decision.js';
11
11
  export { getTospecUpdateSkillTemplate, getTospecUpdateCommandTemplate } from './workflows/update.js';
12
12
  export { getTospecApplySkillTemplate, getTospecApplyCommandTemplate, getTospecApplyWithTDDSkillTemplate, getTospecApplyWithTDDCommandTemplate, } from './workflows/apply.js';
13
- export { getTospecSyncSkillTemplate, getTospecSyncCommandTemplate } from './workflows/sync.js';
13
+ export { getTospecReconcileSkillTemplate, getTospecReconcileCommandTemplate } from './workflows/reconcile.js';
14
14
  export { getTospecArchiveSkillTemplate, getTospecArchiveCommandTemplate } from './workflows/archive.js';
15
15
  //# sourceMappingURL=skill-templates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-templates.js","sourceRoot":"","sources":["../../../src/core/templates/skill-templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,8BAA8B,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,kCAAkC,EAClC,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"skill-templates.js","sourceRoot":"","sources":["../../../src/core/templates/skill-templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,8BAA8B,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,kCAAkC,EAClC,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,+BAA+B,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAC9G,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC"}
@@ -4,8 +4,8 @@
4
4
  * This file is generated by splitting the legacy monolithic
5
5
  * templates file into workflow-focused modules.
6
6
  *
7
- * Two apply variants share the same gating (`applyRequires`), auto-verify
8
- * step, and re-validate step; they differ only in how tests relate to the
7
+ * Two apply variants share the same gating (`applyRequires`), opt-in verify
8
+ * section, and re-validate step; they differ only in how tests relate to the
9
9
  * implementation:
10
10
  * - `tospec-apply` — default, tests optional (write one when it earns its keep)
11
11
  * - `tospec-apply-with-tdd` — strict TDD, red → green per slice
@@ -23,7 +23,7 @@ function buildApplyBody(v, verifySection) {
23
23
 
24
24
  Act on \`state\`:
25
25
  - \`blocked\` — required artifacts or the tracks file are missing; show \`instruction\` and STOP, sending the user back to \`tospec-propose\`/\`tospec-issue\`.
26
- - \`all_done\` — everything is checked off already; skip to the verify step below.
26
+ - \`all_done\` — everything is checked off already; say so and stop. A change being complete is not by itself a reason to review it.
27
27
  - \`ready\` — proceed.
28
28
 
29
29
  3. **Read the context files**
@@ -58,7 +58,7 @@ ${verifySection}
58
58
 
59
59
  **Output**
60
60
 
61
- Report which tasks/checkboxes completed this pass, current progress (\`tospec status --change "<name>"\`), and whether all required artifacts are checked off. When everything is done, the verify review above has already run — if it came back clean, tell the user the change is ready for \`tospec-archive\`; if it surfaced blocking findings, keep working here to resolve them.
61
+ Report which tasks/checkboxes completed this pass, current progress (\`tospec status --change "<name>"\`), and whether all required artifacts are checked off. When everything is done and the test suite is green, tell the user the change is ready for \`tospec-archive\`. If they asked for a review and it surfaced findings it defines as blocking, keep working here to resolve them.
62
62
 
63
63
  **Guardrails**
64
64
  ${v.guardrailsHead}
@@ -68,7 +68,7 @@ ${v.guardrailsHead}
68
68
  - Keep code changes minimal and scoped to the item at hand
69
69
  - Any test you do write goes at the pre-agreed seam (design.md for sdd; the existing/new seam identified for issue) — never against internals
70
70
  - Fix root cause: check every caller of a shared function before declaring a fix complete
71
- - Don't hand off to archive until the automatic verify step is clean and the full test suite is green`;
71
+ - Don't hand off to archive until the full test suite is green and, when a review was requested, until it comes back clean`;
72
72
  }
73
73
  // -----------------------------------------------------------------------------
74
74
  // Default apply — implement per slice; tests are optional, not mandated
@@ -80,7 +80,7 @@ const APPLY_VARIANT = {
80
80
  For each tracer-bullet slice in \`tasks.md\`:
81
81
  1. Implement the minimum that satisfies the behavior the slice's specs describe. Don't anticipate future slices or add speculative flexibility.
82
82
  2. Verify the result matches the behavior the slice's specs describe, and that the existing test suite still passes.
83
- 3. Check off the slice, then move to the next one — one slice per cycle. Refactoring is not part of this loop; it belongs to the verify step at the end of this workflow.
83
+ 3. Check off the slice, then move to the next one — one slice per cycle. Refactoring is not part of this loop; raise it separately once the slice is green.
84
84
 
85
85
  Writing a new test is **not required** in this loop — add one when it earns its keep. If you do, put it at the seam \`design.md\` named and don't test internals or add implementation-coupled assertions (mocking internal collaborators, reaching into private state, checking the database instead of the interface).`,
86
86
  issueBranch: `### issue branch — fix root cause
@@ -97,8 +97,8 @@ const APPLY_BODY_COMMAND = buildApplyBody(APPLY_VARIANT, VERIFY_INLINE);
97
97
  export function getTospecApplySkillTemplate() {
98
98
  return {
99
99
  name: 'tospec-apply',
100
- description: "Implement a tospec change's tasks slice by slice (tests optional), auto-verifying at the end. Use when the user wants to start or continue implementing a change.",
101
- instructions: `Implement a change's tasks one slice at a time, branching by schema, then automatically run the two-axis verify review ready for \`tospec-archive\` when done.
100
+ description: "Implement a tospec change's tasks slice by slice (tests optional). Use when the user wants to start or continue implementing a change.",
101
+ instructions: `Implement a change's tasks one slice at a time, branching by schema ready for \`tospec-archive\` once the tasks are done and the tests are green. The two-axis review is opt-in: it runs only if the user asks for it.
102
102
 
103
103
  **Input**: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
104
104
 
@@ -116,7 +116,7 @@ export function getTospecApplyCommandTemplate() {
116
116
  description: 'Implement tasks from a change, one slice at a time',
117
117
  category: 'Workflow',
118
118
  tags: ['workflow', 'implementation'],
119
- content: `Implement a change's tasks one slice at a time, branching by schema, then automatically run the two-axis verify review ready for \`tospec-archive\` when done.
119
+ content: `Implement a change's tasks one slice at a time, branching by schema ready for \`tospec-archive\` once the tasks are done and the tests are green. The two-axis review is opt-in: it runs only if the user asks for it.
120
120
 
121
121
  **Input**: Optionally specify a change name after \`tospec-apply\` (e.g., \`tospec-apply add-auth\`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
122
122
 
@@ -134,7 +134,7 @@ For each tracer-bullet slice in \`tasks.md\`:
134
134
  1. Write the failing test first (red) — **only at the seam \`design.md\` named**. Don't test internals, don't add implementation-coupled assertions (mocking internal collaborators, reaching into private state, checking the database instead of the interface).
135
135
  2. Implement the minimum to pass (green). Don't anticipate future slices or add speculative flexibility.
136
136
  3. Verify the result matches the behavior the slice's specs describe.
137
- 4. Check off the slice, then move to the next one — one slice per cycle. Refactoring is not part of this loop; it belongs to the verify step at the end of this workflow.`,
137
+ 4. Check off the slice, then move to the next one — one slice per cycle. Refactoring is not part of this loop; raise it separately once the slice is green.`,
138
138
  issueBranch: `### issue branch — three-way test split
139
139
 
140
140
  Read \`task.md\`'s feedback loop. Then:
@@ -152,7 +152,7 @@ export function getTospecApplyWithTDDSkillTemplate() {
152
152
  return {
153
153
  name: 'tospec-apply-with-tdd',
154
154
  description: 'Implement tasks from a tospec change test-first (red → green). Use when the user wants to start or continue implementation with a strict TDD loop.',
155
- instructions: `Implement a change's tasks test-first (red → green), one slice at a time, branching by schema, then automatically run the two-axis verify review ready for \`tospec-archive\` when done.
155
+ instructions: `Implement a change's tasks test-first (red → green), one slice at a time, branching by schema ready for \`tospec-archive\` once the tasks are done and the tests are green. The two-axis review is opt-in: it runs only if the user asks for it.
156
156
 
157
157
  **Input**: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
158
158
 
@@ -170,7 +170,7 @@ export function getTospecApplyWithTDDCommandTemplate() {
170
170
  description: 'Implement tasks from a change test-first (red → green)',
171
171
  category: 'Workflow',
172
172
  tags: ['workflow', 'tdd', 'implementation'],
173
- content: `Implement a change's tasks test-first (red → green), one slice at a time, branching by schema, then automatically run the two-axis verify review ready for \`tospec-archive\` when done.
173
+ content: `Implement a change's tasks test-first (red → green), one slice at a time, branching by schema ready for \`tospec-archive\` once the tasks are done and the tests are green. The two-axis review is opt-in: it runs only if the user asks for it.
174
174
 
175
175
  **Input**: Optionally specify a change name after \`tospec-apply-with-tdd\` (e.g., \`tospec-apply-with-tdd add-auth\`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
176
176
 
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../src/core/templates/workflows/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../src/core/templates/workflows/apply.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../../src/core/templates/workflows/archive.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAiDlE,wBAAgB,6BAA6B,IAAI,aAAa,CAc7D;AAED,wBAAgB,+BAA+B,IAAI,eAAe,CAYjE"}
1
+ {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../../src/core/templates/workflows/archive.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA6ClE,wBAAgB,6BAA6B,IAAI,aAAa,CAc7D;AAED,wBAAgB,+BAA+B,IAAI,eAAe,CAYjE"}
@@ -1,54 +1,50 @@
1
- const ARCHIVE_BODY = `**Finishing a change: confirm verify, decide about sync, then archive — in that order.** Do not run \`tospec archive\` speculatively "to see what happens"; each step below must actually hold first.
1
+ const ARCHIVE_BODY = `**Finishing a change: decide about reconcile, then archive — in that order.** Do not run \`tospec archive\` speculatively "to see what happens"; each step below must actually hold first.
2
2
 
3
- **Step 0verify already happened in apply**
4
-
5
- verify is not a separate command anymore — it runs automatically at the end of \`tospec-apply\`. Before archiving, confirm apply's verify step came back clean (both Standards and Spec axes clear of blocking findings, full test suite green). If apply's verify surfaced blocking issues, **stop** and go back to \`tospec-apply\` to fix them — do not archive over them.
6
-
7
- **Step 1 — judge whether a sync is needed, and only ask if it is**
3
+ **Step 1judge whether a reconcile is needed, and only ask if it is**
8
4
 
9
5
  Archive merges the change's delta specs into \`tospec/specs/\`, so if those specs have drifted from what the code actually does, archiving would lock in a spec that no longer matches reality. Decide **proactively** whether that risk applies here:
10
6
 
11
- - **Sync is warranted** when the change produced delta specs (a non-empty \`specs/<capability>/spec.md\` under the change dir) — i.e. behavior was added or changed, so spec-vs-code drift is possible.
12
- - **Sync is not needed** when there are no delta specs at all (e.g. a purely cosmetic issue fix with no behavior change). In that case skip straight to Step 2 and archive directly — don't ask a pointless question.
7
+ - **Reconcile is warranted** when the change produced delta specs (a non-empty \`specs/<capability>/spec.md\` under the change dir) — i.e. behavior was added or changed, so spec-vs-code drift is possible.
8
+ - **Reconcile is not needed** when there are no delta specs at all (e.g. a purely cosmetic issue fix with no behavior change). In that case skip straight to Step 2 and archive directly — don't ask a pointless question.
13
9
 
14
- If a sync is warranted, **ask the user one question** (make clear both answers are fine):
10
+ If a reconcile is warranted, **ask the user one question** (make clear both answers are fine):
15
11
 
16
- > "This change has spec deltas. Run \`tospec-sync\` to reconcile the specs against the code before archiving? (recommended, but you can archive without it.)"
12
+ > "This change has spec deltas. Run \`tospec-reconcile\` to check the specs against the code before archiving? (recommended, but you can archive without it.)"
17
13
 
18
- - **User says yes** → run the \`tospec-sync\` workflow now. It reconciles each Requirement against the code (code wins) and writes \`sync-report.md\` with \`Conclusion: PASS\`. If it ends in \`Conclusion: FAIL\` (a real CODE-BUG), **stop** and return to \`tospec-apply\` to fix the code — do not archive. On PASS, archive **with** \`--require-sync\` (Step 2, synced branch).
19
- - **User says no** → that's allowed. Skip the sync and archive **without** \`--require-sync\` (Step 2, not-synced branch). Declining does not block archiving.
14
+ - **User says yes** → run the \`tospec-reconcile\` workflow now. It reconciles each Requirement against the code (code wins) and writes \`reconcile-report.md\` with \`Conclusion: PASS\`. If it ends in \`Conclusion: FAIL\` (a real CODE-BUG), **stop** and return to \`tospec-apply\` to fix the code — do not archive. On PASS, archive **with** \`--require-reconcile\` (Step 2, reconciled branch).
15
+ - **User says no** → that's allowed. Skip the reconcile and archive **without** \`--require-reconcile\` (Step 2, not-reconciled branch). Declining does not block archiving.
20
16
 
21
17
  **Step 2 — archive**
22
18
 
23
- Synced branch (user chose to sync and \`sync-report.md\` says \`Conclusion: PASS\`):
19
+ Reconciled branch (user chose to reconcile and \`reconcile-report.md\` says \`Conclusion: PASS\`):
24
20
  \`\`\`bash
25
- tospec archive "<name>" --json --require-sync
21
+ tospec archive "<name>" --json --require-reconcile
26
22
  \`\`\`
27
- \`--require-sync\` is the CLI's own machine-checkable half of the sync gate: it refuses unless \`sync-report.md\` exists with a \`Conclusion: PASS\` line (\`SYNC_REPORT_MISSING\` / \`SYNC_REPORT_FAILED\`). If \`tospec-sync\` actually ran and passed, this succeeds for free — a CLI-enforced backstop behind the instruction-level order above. Only pass \`--require-sync\` when a sync actually ran; otherwise the CLI will (correctly) refuse.
23
+ \`--require-reconcile\` is the CLI's own machine-checkable half of the reconcile gate: it refuses unless \`reconcile-report.md\` exists with a \`Conclusion: PASS\` line (\`RECONCILE_REPORT_MISSING\` / \`RECONCILE_REPORT_FAILED\`). If \`tospec-reconcile\` actually ran and passed, this succeeds for free — a CLI-enforced backstop behind the instruction-level order above. Only pass \`--require-reconcile\` when a reconcile actually ran; otherwise the CLI will (correctly) refuse.
28
24
 
29
- Not-synced branch (sync wasn't needed, or the user declined):
25
+ Not-reconciled branch (reconcile wasn't needed, or the user declined):
30
26
  \`\`\`bash
31
27
  tospec archive "<name>" --json
32
28
  \`\`\`
33
29
 
34
- Either way, the CLI then: re-validates the delta specs (blocking), checks tasks/task completion (with \`--json\`, incomplete tasks block unless you pass \`--yes\` after the user confirms), does a two-phase atomic merge into \`tospec/specs/\` (dry-run + re-validate every target first, writes only if all pass), and moves the change directory — including \`sync-report.md\` when present — into \`tospec/changes/archive/\` under a \`yyyyMMdd_HHmmss-<name>\` timestamp the CLI generates itself.
30
+ Either way, the CLI then: re-validates the delta specs (blocking), checks tasks/task completion (with \`--json\`, incomplete tasks block unless you pass \`--yes\` after the user confirms), does a two-phase atomic merge into \`tospec/specs/\` (dry-run + re-validate every target first, writes only if all pass), and moves the change directory — including \`reconcile-report.md\` when present — into \`tospec/changes/archive/\` under a \`yyyyMMdd_HHmmss-<name>\` timestamp the CLI generates itself.
35
31
 
36
- **Reading the result**: the \`--json\` output is \`{archive, status}\`. Success → \`archive\` holds \`{change, archivedAs, path, specsUpdated}\`. Failure → \`archive\` is \`null\` and \`status[0].code\` tells you which ending you got: \`archive_validation_failed\` (fix artifacts, re-validate), \`archive_tasks_incomplete\` / \`archive_tasks_missing\` (ask the user, then rerun with \`--yes\` to override), \`SYNC_REPORT_MISSING\` / \`SYNC_REPORT_FAILED\` (the sync gate refused). Each status entry carries \`{code, message, fix}\` — follow \`fix\`.
32
+ **Reading the result**: the \`--json\` output is \`{archive, status}\`. Success → \`archive\` holds \`{change, archivedAs, path, specsUpdated}\`. Failure → \`archive\` is \`null\` and \`status[0].code\` tells you which ending you got: \`archive_validation_failed\` (fix artifacts, re-validate), \`archive_tasks_incomplete\` / \`archive_tasks_missing\` (ask the user, then rerun with \`--yes\` to override), \`RECONCILE_REPORT_MISSING\` / \`RECONCILE_REPORT_FAILED\` (the reconcile gate refused). Each status entry carries \`{code, message, fix}\` — follow \`fix\`.
37
33
 
38
34
  **Guardrails — explicit and non-negotiable**
39
- - Judge whether a sync is warranted before archiving; only ask the user when the change has spec deltas — and honor a "no" (archive still proceeds, just without \`--require-sync\`)
40
- - Only pass \`--require-sync\` when \`tospec-sync\` actually produced a passing \`sync-report.md\` this run
35
+ - Judge whether a reconcile is warranted before archiving; only ask the user when the change has spec deltas — and honor a "no" (archive still proceeds, just without \`--require-reconcile\`)
36
+ - Only pass \`--require-reconcile\` when \`tospec-reconcile\` actually produced a passing \`reconcile-report.md\` this run
41
37
  - **\`tospec archive\` owns the archive directory** — it generates the \`yyyyMMdd_HHmmss-<name>\` name and moves the change there. Let the command do it: the timestamp comes from internals you cannot reproduce, so a hand-built name risks a collision or a wrong sort order
42
38
  - If \`tospec archive\` reports a validation failure or asks for confirmation on incomplete tasks, resolve the underlying issue (or explicitly confirm with the user) — do not route around it with manual file operations
43
39
 
44
40
  **Output**
45
41
 
46
- Report the archived name and path from \`tospec archive\`'s output, whether a sync ran, and confirm \`tospec/specs/\` now reflects the merged change.`;
42
+ Report the archived name and path from \`tospec archive\`'s output, whether a reconcile ran, and confirm \`tospec/specs/\` now reflects the merged change.`;
47
43
  export function getTospecArchiveSkillTemplate() {
48
44
  return {
49
45
  name: 'tospec-archive',
50
- description: 'Finish and archive a completed tospec change via `tospec archive`, deciding first whether a spec/code sync is needed. Use when the user wants to finalize an implemented change.',
51
- instructions: `Finish a completed change: confirm verify (done in apply), decide about sync (run \`tospec-sync\` if warranted and the user agrees), then \`tospec archive\` — the only path to a merged, archived change.
46
+ description: 'Finish and archive a completed tospec change via `tospec archive`, deciding first whether a spec/code reconcile is needed. Use when the user wants to finalize an implemented change.',
47
+ instructions: `Finish a completed change: decide about reconcile (run \`tospec-reconcile\` if warranted and the user agrees), then \`tospec archive\` — the only path to a merged, archived change.
52
48
 
53
49
  **Input**: The user's request should name the change to archive.
54
50
 
@@ -62,10 +58,10 @@ ${ARCHIVE_BODY}`,
62
58
  export function getTospecArchiveCommandTemplate() {
63
59
  return {
64
60
  name: 'TOSPEC: Archive',
65
- description: 'Judge whether a spec/code sync is needed (ask if so), then finalize and archive a completed change',
61
+ description: 'Judge whether a spec/code reconcile is needed (ask if so), then finalize and archive a completed change',
66
62
  category: 'Workflow',
67
63
  tags: ['workflow', 'archive'],
68
- content: `Finish a completed change: confirm verify (done in apply), decide about sync (run \`tospec-sync\` if warranted and the user agrees), then \`tospec archive\` — the only path to a merged, archived change.
64
+ content: `Finish a completed change: decide about reconcile (run \`tospec-reconcile\` if warranted and the user agrees), then \`tospec archive\` — the only path to a merged, archived change.
69
65
 
70
66
  **Input**: The argument after \`tospec-archive\` is the change name to archive.
71
67
 
@@ -1 +1 @@
1
- {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../../src/core/templates/workflows/archive.ts"],"names":[],"mappings":"AAQA,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sJA6CiI,CAAC;AAEvJ,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,kLAAkL;QAC/L,YAAY,EAAE;;;;EAIhB,YAAY,EAAE;QACZ,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,sBAAsB;QACrC,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC9B,YAAY,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;KAC7F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,oGAAoG;QACjH,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;QAC7B,OAAO,EAAE;;;;EAIX,YAAY,EAAE;KACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../../src/core/templates/workflows/archive.ts"],"names":[],"mappings":"AAQA,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2JAyCsI,CAAC;AAE5J,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,uLAAuL;QACpM,YAAY,EAAE;;;;EAIhB,YAAY,EAAE;QACZ,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,sBAAsB;QACrC,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC9B,YAAY,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;KAC7F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,yGAAyG;QACtH,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;QAC7B,OAAO,EAAE;;;;EAIX,YAAY,EAAE;KACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Skill Template Workflow Modules
3
+ *
4
+ * This file is generated by splitting the legacy monolithic
5
+ * templates file into workflow-focused modules.
6
+ *
7
+ * reconcile is a standalone skill again. The archive workflow proactively
8
+ * decides whether a reconcile is warranted and asks the user before archiving;
9
+ * when the user agrees, this is the procedure that runs.
10
+ */
11
+ import type { SkillTemplate, CommandTemplate } from '../types.js';
12
+ export declare function getTospecReconcileSkillTemplate(): SkillTemplate;
13
+ export declare function getTospecReconcileCommandTemplate(): CommandTemplate;
14
+ //# sourceMappingURL=reconcile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../../../src/core/templates/workflows/reconcile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAoElE,wBAAgB,+BAA+B,IAAI,aAAa,CAc/D;AAED,wBAAgB,iCAAiC,IAAI,eAAe,CAYnE"}
@@ -1,4 +1,4 @@
1
- const SYNC_BODY = `Whether a spec still matches the source code is a semantic judgment no CLI can make — that's why this is agent work, not a \`tospec\` subcommand. The CLI's job is the part that IS machine-checkable: the synced spec must still pass full validation, and \`tospec archive --require-sync\` refuses unless \`sync-report.md\` reports PASS.
1
+ const RECONCILE_BODY = `Whether a spec still matches the source code is a semantic judgment no CLI can make — that's why this is agent work, not a \`tospec\` subcommand. The CLI's job is the part that IS machine-checkable: the reconciled spec must still pass full validation, and \`tospec archive --require-reconcile\` refuses unless \`reconcile-report.md\` reports PASS.
2
2
 
3
3
  **Steps**
4
4
 
@@ -14,7 +14,13 @@ const SYNC_BODY = `Whether a spec still matches the source code is a semantic ju
14
14
 
15
15
  **Can't find any corresponding implementation at all**: that's a CODE-BUG, same severity as a behavioral mismatch — the Requirement was agreed to and never built. Don't wave it through as MATCH.
16
16
 
17
- 3. **Resolve every mismatchcode wins**
17
+ 3. **Sweep the other direction behavior nobody asked for**
18
+
19
+ Step 2 walks Requirements to code, so it can only find what is *missing*. It cannot see the opposite: behavior in the diff that **maps to no Requirement** at all. Walk the change's diff once and flag anything the specs never asked for.
20
+
21
+ **Report it, never spec it.** "Code wins" settles how a Requirement is *worded*, not whether behavior *belongs* — it is not a licence to make unrequested work look agreed after the fact. Never add a Requirement to cover scope creep: tell the user what you found and let them decide to keep it, drop it, or plan it properly.
22
+
23
+ 4. **Resolve every mismatch — code wins**
18
24
 
19
25
  - If the spec is stale relative to the code (the code is correct, the spec described the old behavior): update the delta spec's Requirement with **MODIFIED**, pasting the complete, corrected Requirement block. Then:
20
26
  \`\`\`bash
@@ -23,12 +29,12 @@ const SYNC_BODY = `Whether a spec still matches the source code is a semantic ju
23
29
  Must pass before moving to the next Requirement — record the validate result in that Requirement's report entry.
24
30
  - If the code itself is wrong (it doesn't do what was actually agreed in ticket/design, or is missing entirely): **stop**. Do not touch the spec to paper over a bug. Report the mismatch to the user and suggest returning to \`tospec-apply\` to fix the code before archiving.
25
31
 
26
- 4. **Write the sync report**
32
+ 5. **Write the reconcile report**
27
33
 
28
- Create \`sync-report.md\` in the change directory in exactly this format — \`tospec archive --require-sync\` parses the first \`Conclusion:\` line, so the heading and label text must match:
34
+ Create \`reconcile-report.md\` in the change directory in exactly this format — \`tospec archive --require-reconcile\` parses the first \`Conclusion:\` line, so the heading and label text must match:
29
35
 
30
36
  \`\`\`markdown
31
- # Sync Report: <change-name>
37
+ # Reconcile Report: <change-name>
32
38
  ## Summary
33
39
  Conclusion: <PASS or FAIL>
34
40
  ## Requirements
@@ -38,9 +44,9 @@ const SYNC_BODY = `Whether a spec still matches the source code is a semantic ju
38
44
  - Notes: <the difference and how it was handled; SPEC-UPDATED must include the validate result>
39
45
  \`\`\`
40
46
 
41
- Fill the \`Conclusion:\` line with exactly one literal — \`Conclusion: PASS\` or \`Conclusion: FAIL\` (FAIL may append a \`(reason)\` note); never leave both options in one line, or \`tospec archive --require-sync\` can't parse it. \`Conclusion:\` is **FAIL** if even one Requirement is CODE-BUG — a single unresolved defect blocks the whole change, not just that Requirement. It's **PASS** only when every Requirement resolved to MATCH or SPEC-UPDATED (with validate passing). For the no-delta case, still emit the Summary and a single Requirements entry describing the task.md-vs-code comparison (module described, not a Requirement name).
47
+ Fill the \`Conclusion:\` line with exactly one literal — \`Conclusion: PASS\` or \`Conclusion: FAIL\` (FAIL may append a \`(reason)\` note); never leave both options in one line, or \`tospec archive --require-reconcile\` can't parse it. \`Conclusion:\` is **FAIL** if even one Requirement is CODE-BUG — a single unresolved defect blocks the whole change, not just that Requirement. It's **PASS** only when every Requirement resolved to MATCH or SPEC-UPDATED (with validate passing). For the no-delta case, still emit the Summary and a single Requirements entry describing the task.md-vs-code comparison (module described, not a Requirement name).
42
48
 
43
- 5. **Final artifact validation**
49
+ 6. **Final artifact validation**
44
50
  \`\`\`bash
45
51
  tospec validate "<name>" --json
46
52
  \`\`\`
@@ -48,40 +54,41 @@ const SYNC_BODY = `Whether a spec still matches the source code is a semantic ju
48
54
 
49
55
  **Output**
50
56
 
51
- Summarize how many Requirements were in sync, how many specs were updated, and whether anything was flagged as a code defect. If \`Conclusion: PASS\`, prompt: "Run \`tospec-archive\` to finish up — it passes \`--require-sync\` for free now that \`sync-report.md\` reports PASS." If \`Conclusion: FAIL\`, prompt to return to \`tospec-apply\` first — do not proceed to archive.
57
+ Summarize how many Requirements matched, how many specs were updated, whether anything was flagged as a code defect, and anything found that no Requirement asked for. If \`Conclusion: PASS\`, prompt: "Run \`tospec-archive\` to finish up — it passes \`--require-reconcile\` for free now that \`reconcile-report.md\` reports PASS." If \`Conclusion: FAIL\`, prompt to return to \`tospec-apply\` first — do not proceed to archive.
52
58
 
53
59
  **Guardrails**
54
60
  - Code is the source of truth for behavior — spec updates always follow code, never the other way around
61
+ - Scope creep is reported, never specced — "code wins" settles a Requirement's wording, never whether unrequested behavior belongs
55
62
  - Never edit source code from this workflow — a code-side mismatch is diagnosis, not a license to patch here
56
63
  - Every MODIFIED delta must re-pass \`tospec validate\` before moving to the next Requirement
57
- - \`sync-report.md\` is required output, in the exact format above — \`tospec archive --require-sync\` depends on both its existence and its \`Conclusion:\` line
58
- - One comparison pass per Requirement — check it against the code once and record the verdict. \`sync-report.md\` is the deliverable, not another review target: don't re-audit the report after writing it, and don't re-check a Requirement already judged MATCH`;
59
- export function getTospecSyncSkillTemplate() {
64
+ - \`reconcile-report.md\` is required output, in the exact format above — \`tospec archive --require-reconcile\` depends on both its existence and its \`Conclusion:\` line
65
+ - One comparison pass per Requirement — check it against the code once and record the verdict. \`reconcile-report.md\` is the deliverable, not another review target: don't re-audit the report after writing it, and don't re-check a Requirement already judged MATCH`;
66
+ export function getTospecReconcileSkillTemplate() {
60
67
  return {
61
- name: 'tospec-sync',
62
- description: 'Reconcile a change\'s Requirements against the actual implementation — code wins on any mismatch — and write sync-report.md. Use before archiving a change whose specs may have drifted from the code.',
68
+ name: 'tospec-reconcile',
69
+ description: 'Reconcile a change\'s Requirements against the actual implementation — code wins on any mismatch — and write reconcile-report.md. Use before archiving a change whose specs may have drifted from the code.',
63
70
  instructions: `Reconcile \`specs/\` against the implementation for every Requirement this change touched — code wins on any mismatch. Run this before \`tospec-archive\` when the change's specs may have drifted from the code.
64
71
 
65
- **Input**: The user's request should name the change to sync.
72
+ **Input**: The user's request should name the change to reconcile.
66
73
 
67
- ${SYNC_BODY}`,
74
+ ${RECONCILE_BODY}`,
68
75
  license: 'MIT',
69
76
  compatibility: 'Requires tospec CLI.',
70
77
  metadata: { author: 'tospec' },
71
78
  allowedTools: ['Bash(tospec:*)', 'Read', 'Write', 'Edit', 'Grep', 'Glob'],
72
79
  };
73
80
  }
74
- export function getTospecSyncCommandTemplate() {
81
+ export function getTospecReconcileCommandTemplate() {
75
82
  return {
76
- name: 'TOSPEC: Sync',
83
+ name: 'TOSPEC: Reconcile',
77
84
  description: 'Reconcile specs against the implementation, code as source of truth',
78
85
  category: 'Workflow',
79
- tags: ['workflow', 'sync', 'archive-gate'],
86
+ tags: ['workflow', 'reconcile', 'archive-gate'],
80
87
  content: `Reconcile \`specs/\` against the implementation for every Requirement this change touched — code wins on any mismatch. Run this before \`tospec-archive\` when the change's specs may have drifted from the code.
81
88
 
82
- **Input**: The argument after \`tospec-sync\` is the change name to sync.
89
+ **Input**: The argument after \`tospec-reconcile\` is the change name to reconcile.
83
90
 
84
- ${SYNC_BODY}`,
91
+ ${RECONCILE_BODY}`,
85
92
  };
86
93
  }
87
- //# sourceMappingURL=sync.js.map
94
+ //# sourceMappingURL=reconcile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../../../src/core/templates/workflows/reconcile.ts"],"names":[],"mappings":"AAYA,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wQAgEiP,CAAC;AAEzQ,MAAM,UAAU,+BAA+B;IAC7C,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,6MAA6M;QAC1N,YAAY,EAAE;;;;EAIhB,cAAc,EAAE;QACd,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,sBAAsB;QACrC,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC9B,YAAY,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC;IAC/C,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,qEAAqE;QAClF,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,CAAC;QAC/C,OAAO,EAAE;;;;EAIX,cAAc,EAAE;KACf,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/core/update.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmCH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;gBAEpB,OAAO,GAAE,oBAAyB;IAIxC,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoKjD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAkBvC;;;;OAIG;YACW,yBAAyB;CA0BxC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/core/update.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA6BH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;gBAEpB,OAAO,GAAE,oBAAyB;IAIxC,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgKjD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAkBvC;;;;OAIG;YACW,yBAAyB;CA0BxC"}
@@ -17,9 +17,6 @@ const require = createRequire(import.meta.url);
17
17
  const { version: TOSPEC_VERSION } = require('../../package.json');
18
18
  const OLD_CORE_WORKFLOWS = ['propose', 'explore', 'apply', 'archive'];
19
19
  const WORKFLOW_TO_SKILL_DIR = Object.fromEntries(getSkillTemplates().map(({ workflowId, dirName }) => [workflowId, dirName]));
20
- function getConfiguredProjectTools(projectPath) {
21
- return getConfiguredTools(projectPath);
22
- }
23
20
  export class UpdateCommand {
24
21
  force;
25
22
  constructor(options = {}) {
@@ -38,7 +35,7 @@ export class UpdateCommand {
38
35
  const profileWorkflows = getProfileWorkflows(profile, globalConfig.workflows);
39
36
  const desiredWorkflows = profileWorkflows.filter((workflow) => ALL_WORKFLOWS.includes(workflow));
40
37
  // 5. Find configured tools
41
- const configuredTools = getConfiguredProjectTools(resolvedProjectPath);
38
+ const configuredTools = getConfiguredTools(resolvedProjectPath);
42
39
  if (configuredTools.length === 0) {
43
40
  console.log('No configured tools found.');
44
41
  console.log('Run "tospec init" to set up tools.');
@@ -54,11 +51,7 @@ export class UpdateCommand {
54
51
  const toolsNeedingVersionUpdate = toolStatuses
55
52
  .filter((s) => s.needsUpdate)
56
53
  .map((s) => s.toolId);
57
- const toolsNeedingConfigSync = [];
58
- const toolsToUpdateSet = new Set([
59
- ...toolsNeedingVersionUpdate,
60
- ...toolsNeedingConfigSync,
61
- ]);
54
+ const toolsToUpdateSet = new Set(toolsNeedingVersionUpdate);
62
55
  const toolsUpToDate = toolStatuses.filter((s) => !toolsToUpdateSet.has(s.toolId));
63
56
  if (!this.force && toolsToUpdateSet.size === 0) {
64
57
  // The generated version is current, but update is also the repair path
@@ -171,13 +164,11 @@ export class UpdateCommand {
171
164
  * Display the update plan showing which tools need updating.
172
165
  */
173
166
  displayUpdatePlan(toolsToUpdate, statusByTool, upToDate) {
167
+ // Every id in toolsToUpdate came from a status with needsUpdate === true,
168
+ // so there is no non-version reason to be in this list.
174
169
  const updates = toolsToUpdate.map((toolId) => {
175
- const status = statusByTool.get(toolId);
176
- if (status?.needsUpdate) {
177
- const fromVersion = status.generatedByVersion ?? 'unknown';
178
- return `${status.toolId} (${fromVersion} → ${TOSPEC_VERSION})`;
179
- }
180
- return `${toolId} (config sync)`;
170
+ const fromVersion = statusByTool.get(toolId)?.generatedByVersion ?? 'unknown';
171
+ return `${toolId} (${fromVersion} → ${TOSPEC_VERSION})`;
181
172
  });
182
173
  console.log(`Updating ${toolsToUpdate.length} tool(s): ${updates.join(', ')}`);
183
174
  if (upToDate.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/core/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/core/update.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"section-validator.d.ts","sourceRoot":"","sources":["../../../src/core/validation/section-validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,wBAAwB;IACvC,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAgBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,sBAAsB,EAC7B,OAAO,EAAE,wBAAwB,GAChC,eAAe,EAAE,CAwCnB"}
1
+ {"version":3,"file":"section-validator.d.ts","sourceRoot":"","sources":["../../../src/core/validation/section-validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,wBAAwB;IACvC,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,sBAAsB,EAC7B,OAAO,EAAE,wBAAwB,GAChC,eAAe,EAAE,CAwCnB"}