@tiic-tech/openworkflow 0.1.1 → 0.1.2

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 (213) hide show
  1. package/dist/adapters/codex/src/cleanCodexAdapter.js +4 -1
  2. package/dist/adapters/codex/src/cleanCodexAdapter.js.map +1 -1
  3. package/dist/adapters/codex/src/constants.d.ts +1 -0
  4. package/dist/adapters/codex/src/constants.js +2 -0
  5. package/dist/adapters/codex/src/constants.js.map +1 -0
  6. package/dist/adapters/codex/src/generateCommands.js +14 -9
  7. package/dist/adapters/codex/src/generateCommands.js.map +1 -1
  8. package/dist/adapters/codex/src/generateSkills.js +13 -0
  9. package/dist/adapters/codex/src/generateSkills.js.map +1 -1
  10. package/dist/adapters/codex/src/generatedFiles.js +1 -1
  11. package/dist/adapters/codex/src/manifest.js +11 -2
  12. package/dist/adapters/codex/src/manifest.js.map +1 -1
  13. package/dist/adapters/codex/src/templates.d.ts +0 -1
  14. package/dist/adapters/codex/src/templates.js +0 -1
  15. package/dist/adapters/codex/src/templates.js.map +1 -1
  16. package/dist/adapters/src/registry.d.ts +20 -0
  17. package/dist/adapters/src/registry.js +81 -0
  18. package/dist/adapters/src/registry.js.map +1 -0
  19. package/dist/cli/src/commands/brief.d.ts +46 -0
  20. package/dist/cli/src/commands/brief.js +294 -0
  21. package/dist/cli/src/commands/brief.js.map +1 -0
  22. package/dist/cli/src/commands/check.d.ts +42 -0
  23. package/dist/cli/src/commands/check.js +326 -0
  24. package/dist/cli/src/commands/check.js.map +1 -0
  25. package/dist/cli/src/commands/clean.js +46 -1
  26. package/dist/cli/src/commands/clean.js.map +1 -1
  27. package/dist/cli/src/commands/context.d.ts +1 -0
  28. package/dist/cli/src/commands/context.js +471 -0
  29. package/dist/cli/src/commands/context.js.map +1 -0
  30. package/dist/cli/src/commands/doctor.js +122 -12
  31. package/dist/cli/src/commands/doctor.js.map +1 -1
  32. package/dist/cli/src/commands/draft.d.ts +1 -0
  33. package/dist/cli/src/commands/draft.js +175 -0
  34. package/dist/cli/src/commands/draft.js.map +1 -0
  35. package/dist/cli/src/commands/gitAutomation.d.ts +1 -0
  36. package/dist/cli/src/commands/gitAutomation.js +378 -0
  37. package/dist/cli/src/commands/gitAutomation.js.map +1 -0
  38. package/dist/cli/src/commands/handoff.d.ts +22 -0
  39. package/dist/cli/src/commands/handoff.js +122 -0
  40. package/dist/cli/src/commands/handoff.js.map +1 -0
  41. package/dist/cli/src/commands/init.js +52 -1
  42. package/dist/cli/src/commands/init.js.map +1 -1
  43. package/dist/cli/src/commands/inspect.d.ts +23 -0
  44. package/dist/cli/src/commands/inspect.js +157 -0
  45. package/dist/cli/src/commands/inspect.js.map +1 -0
  46. package/dist/cli/src/commands/register.d.ts +1 -0
  47. package/dist/cli/src/commands/register.js +251 -0
  48. package/dist/cli/src/commands/register.js.map +1 -0
  49. package/dist/cli/src/commands/resume.d.ts +59 -0
  50. package/dist/cli/src/commands/resume.js +280 -0
  51. package/dist/cli/src/commands/resume.js.map +1 -0
  52. package/dist/cli/src/commands/shared.js +6 -2
  53. package/dist/cli/src/commands/shared.js.map +1 -1
  54. package/dist/cli/src/commands/summaries.d.ts +1 -0
  55. package/dist/cli/src/commands/summaries.js +77 -0
  56. package/dist/cli/src/commands/summaries.js.map +1 -0
  57. package/dist/cli/src/commands/summarize.d.ts +1 -0
  58. package/dist/cli/src/commands/summarize.js +316 -0
  59. package/dist/cli/src/commands/summarize.js.map +1 -0
  60. package/dist/cli/src/commands/sync.js +135 -12
  61. package/dist/cli/src/commands/sync.js.map +1 -1
  62. package/dist/cli/src/commands/validate.js +25 -1
  63. package/dist/cli/src/commands/validate.js.map +1 -1
  64. package/dist/cli/src/dev/verifyAgentE2E.d.ts +2 -0
  65. package/dist/cli/src/dev/verifyAgentE2E.js +391 -0
  66. package/dist/cli/src/dev/verifyAgentE2E.js.map +1 -0
  67. package/dist/cli/src/dev/verifyCleanCommand.js +213 -2
  68. package/dist/cli/src/dev/verifyCleanCommand.js.map +1 -1
  69. package/dist/cli/src/dev/verifyRuntimeSurface.js +4940 -54
  70. package/dist/cli/src/dev/verifyRuntimeSurface.js.map +1 -1
  71. package/dist/cli/src/dev/verifyWorkflowE2E.js +477 -45
  72. package/dist/cli/src/dev/verifyWorkflowE2E.js.map +1 -1
  73. package/dist/cli/src/index.js +184 -6
  74. package/dist/cli/src/index.js.map +1 -1
  75. package/dist/cli/src/report.d.ts +26 -0
  76. package/dist/cli/src/report.js +17 -0
  77. package/dist/cli/src/report.js.map +1 -0
  78. package/dist/core/src/artifacts/readiness.d.ts +7 -0
  79. package/dist/core/src/artifacts/readiness.js +240 -0
  80. package/dist/core/src/artifacts/readiness.js.map +1 -0
  81. package/dist/core/src/artifacts/registry.d.ts +9 -2
  82. package/dist/core/src/artifacts/registry.js +687 -60
  83. package/dist/core/src/artifacts/registry.js.map +1 -1
  84. package/dist/core/src/commands/registry.js +1425 -146
  85. package/dist/core/src/commands/registry.js.map +1 -1
  86. package/dist/core/src/contracts/index.d.ts +1 -1
  87. package/dist/core/src/fs/index.d.ts +24 -0
  88. package/dist/core/src/fs/index.js +48 -1
  89. package/dist/core/src/fs/index.js.map +1 -1
  90. package/dist/core/src/git/autonomousSimulator.d.ts +46 -0
  91. package/dist/core/src/git/autonomousSimulator.js +163 -0
  92. package/dist/core/src/git/autonomousSimulator.js.map +1 -0
  93. package/dist/core/src/git/branchIdentity.d.ts +19 -0
  94. package/dist/core/src/git/branchIdentity.js +75 -0
  95. package/dist/core/src/git/branchIdentity.js.map +1 -0
  96. package/dist/core/src/git/draftPrPilot.d.ts +47 -0
  97. package/dist/core/src/git/draftPrPilot.js +196 -0
  98. package/dist/core/src/git/draftPrPilot.js.map +1 -0
  99. package/dist/core/src/git/localEvidenceReader.d.ts +21 -0
  100. package/dist/core/src/git/localEvidenceReader.js +142 -0
  101. package/dist/core/src/git/localEvidenceReader.js.map +1 -0
  102. package/dist/core/src/git/localGitAutomation.d.ts +68 -0
  103. package/dist/core/src/git/localGitAutomation.js +470 -0
  104. package/dist/core/src/git/localGitAutomation.js.map +1 -0
  105. package/dist/core/src/git/mergeReadinessCheckpoint.d.ts +31 -0
  106. package/dist/core/src/git/mergeReadinessCheckpoint.js +110 -0
  107. package/dist/core/src/git/mergeReadinessCheckpoint.js.map +1 -0
  108. package/dist/core/src/git/prReadySummary.d.ts +16 -0
  109. package/dist/core/src/git/prReadySummary.js +144 -0
  110. package/dist/core/src/git/prReadySummary.js.map +1 -0
  111. package/dist/core/src/git/remoteReadonlyPlanner.d.ts +60 -0
  112. package/dist/core/src/git/remoteReadonlyPlanner.js +223 -0
  113. package/dist/core/src/git/remoteReadonlyPlanner.js.map +1 -0
  114. package/dist/core/src/onboarding/agentsGuide.d.ts +32 -0
  115. package/dist/core/src/onboarding/agentsGuide.js +164 -0
  116. package/dist/core/src/onboarding/agentsGuide.js.map +1 -0
  117. package/dist/core/src/validators/validateOpenWorkflow.js +1331 -15
  118. package/dist/core/src/validators/validateOpenWorkflow.js.map +1 -1
  119. package/dist/core/src/validators/validateRepositoryContracts.js +2321 -306
  120. package/dist/core/src/validators/validateRepositoryContracts.js.map +1 -1
  121. package/dist/core/src/workflow/cleanOpenWorkflow.d.ts +2 -0
  122. package/dist/core/src/workflow/cleanOpenWorkflow.js +97 -8
  123. package/dist/core/src/workflow/cleanOpenWorkflow.js.map +1 -1
  124. package/dist/core/src/workflow/doctorOpenWorkflow.d.ts +7 -0
  125. package/dist/core/src/workflow/doctorOpenWorkflow.js +26 -0
  126. package/dist/core/src/workflow/doctorOpenWorkflow.js.map +1 -0
  127. package/dist/core/src/workflow/initOpenWorkflow.d.ts +7 -0
  128. package/dist/core/src/workflow/initOpenWorkflow.js +96 -8
  129. package/dist/core/src/workflow/initOpenWorkflow.js.map +1 -1
  130. package/dist/core/src/workflow/planningQueueResume.d.ts +105 -0
  131. package/dist/core/src/workflow/planningQueueResume.js +596 -0
  132. package/dist/core/src/workflow/planningQueueResume.js.map +1 -0
  133. package/dist/core/src/workflow/readWorkflowConfig.d.ts +6 -0
  134. package/dist/core/src/workflow/readWorkflowConfig.js +28 -0
  135. package/dist/core/src/workflow/readWorkflowConfig.js.map +1 -0
  136. package/dist/core/src/workflow/summaryHealth.d.ts +60 -0
  137. package/dist/core/src/workflow/summaryHealth.js +713 -0
  138. package/dist/core/src/workflow/summaryHealth.js.map +1 -0
  139. package/dist/core/src/workflow/syncOpenWorkflow.d.ts +22 -0
  140. package/dist/core/src/workflow/syncOpenWorkflow.js +235 -0
  141. package/dist/core/src/workflow/syncOpenWorkflow.js.map +1 -0
  142. package/package.json +2 -1
  143. package/references/artifact-authoring-templates.md +14 -12
  144. package/references/artifact-instruction-envelope.md +133 -0
  145. package/references/coder-continuous-growth-loop.md +68 -0
  146. package/references/gh-operation-governance.md +114 -0
  147. package/references/git-automation-governance.md +324 -0
  148. package/references/git-version-control-governance.md +227 -0
  149. package/references/internal-coder-protocol.md +202 -0
  150. package/references/issue-governance.md +115 -0
  151. package/references/planning-artifact-contracts.md +595 -0
  152. package/references/planning-skill-runtime-exposure.md +159 -0
  153. package/references/proto-redesign-artifact-contracts.md +217 -0
  154. package/references/proto2html-artifact-contracts.md +113 -0
  155. package/references/skill-system-lifecycle.md +198 -0
  156. package/references/validation-trust-domains.md +286 -0
  157. package/references/workflow-blueprint-runtime-alignment.md +287 -0
  158. package/schemas/atom-tasks.schema.json +101 -0
  159. package/schemas/candidate-changes.schema.json +323 -0
  160. package/schemas/current-state.schema.json +113 -0
  161. package/schemas/html-prototype.schema.json +288 -0
  162. package/schemas/openworkflow-contract.schema.json +9 -1
  163. package/schemas/proto-prompt-pack.schema.json +1333 -0
  164. package/schemas/prototype-evidence.schema.json +684 -142
  165. package/schemas/selected-change.schema.json +104 -0
  166. package/schemas/validation-target.schema.json +187 -1
  167. package/schemas/validation.schema.json +187 -1
  168. package/schemas/vision-session.schema.json +151 -0
  169. package/skills/analyze-changes/SKILL.md +92 -0
  170. package/skills/analyze-changes/agents/openai.yaml +4 -0
  171. package/skills/analyze-changes/references/analysis-protocol.md +116 -0
  172. package/skills/build-proto-prompt/SKILL.md +125 -0
  173. package/skills/build-proto-prompt/references/output-boundary.md +54 -0
  174. package/skills/build-proto-prompt/references/prompt-pack-compiler-protocol.md +80 -0
  175. package/skills/build-prototype/SKILL.md +162 -38
  176. package/skills/build-prototype/agents/openai.yaml +2 -2
  177. package/skills/build-prototype/references/philosophy-engine.md +61 -0
  178. package/skills/build-prototype/references/strategic-prompt-pack-protocol.md +365 -0
  179. package/skills/build-prototype/references/vision2prompt/01_input_contract.md +84 -0
  180. package/skills/build-prototype/references/vision2prompt/02_vision_decomposition.md +108 -0
  181. package/skills/build-prototype/references/vision2prompt/03_strategy_hypothesis_generation.md +89 -0
  182. package/skills/build-prototype/references/vision2prompt/04_product_system_extraction.md +78 -0
  183. package/skills/build-prototype/references/vision2prompt/05_prototype_prompt_schema.md +189 -0
  184. package/skills/build-prototype/references/vision2prompt/06_output_templates.md +125 -0
  185. package/skills/build-prototype/references/vision2prompt/07_quality_rubric.md +171 -0
  186. package/skills/build-validation/SKILL.md +136 -54
  187. package/skills/build-validation/references/prototype-validation-target-rubric.md +35 -0
  188. package/skills/build-validation/references/return-to-vision-gate.md +32 -0
  189. package/skills/build-vision/SKILL.md +192 -0
  190. package/skills/build-vision/references/proto-readiness-rubric.md +48 -0
  191. package/skills/build-vision/references/vision-interview-protocol.md +48 -0
  192. package/skills/coder/SKILL.md +204 -0
  193. package/skills/decompose-to-changes/SKILL.md +176 -0
  194. package/skills/decompose-to-changes/agents/openai.yaml +4 -0
  195. package/skills/decompose-to-changes/references/decomposition-protocol.md +278 -0
  196. package/skills/prompt2proto/SKILL.md +157 -0
  197. package/skills/prompt2proto/agents/openai.yaml +4 -0
  198. package/skills/prompt2proto/references/00_role_philosophy_engine.md +96 -0
  199. package/skills/prompt2proto/references/01_input_contract.md +53 -0
  200. package/skills/prompt2proto/references/02_prompt_pack_readiness.md +50 -0
  201. package/skills/prompt2proto/references/03_visual_translation_workflow.md +64 -0
  202. package/skills/prompt2proto/references/04_output_contract.md +67 -0
  203. package/skills/prompt2proto/references/05_quality_rubric.md +46 -0
  204. package/skills/proto2html/SKILL.md +136 -0
  205. package/skills/proto2html/agents/openai.yaml +4 -0
  206. package/skills/proto2html/references/proto2html-protocol.md +115 -0
  207. package/skills/run-team/SKILL.md +4 -0
  208. package/skills/select-change/SKILL.md +200 -0
  209. package/skills/select-change/agents/openai.yaml +4 -0
  210. package/skills/select-change/references/selection-protocol.md +281 -0
  211. package/skills/tune-prototype/SKILL.md +121 -0
  212. package/skills/tune-prototype/agents/openai.yaml +4 -0
  213. package/skills/tune-prototype/references/refined-prompt-pack-protocol.md +161 -0
@@ -0,0 +1,48 @@
1
+ # Proto-Readiness Rubric
2
+
3
+ Use this rubric before compiling final vision artifacts.
4
+
5
+ ## Ready
6
+
7
+ The vision is proto-ready when `/ow:proto` can generate high-quality prototype
8
+ prompt packs without inventing the core strategy.
9
+
10
+ Required signals:
11
+
12
+ - target user is concrete
13
+ - usage context is clear
14
+ - current alternative is named
15
+ - pain is specific
16
+ - desired behavior change is explicit
17
+ - core mechanism is understandable
18
+ - core differentiator is not generic
19
+ - strongest success signal is observable
20
+ - failure signals are named
21
+ - trust and privacy boundaries are explicit
22
+ - non-goals can become prompt constraints
23
+ - validation target is clear
24
+
25
+ ## Thin
26
+
27
+ The vision is thin when fields exist but do not constrain downstream prototype
28
+ generation. For example:
29
+
30
+ - target user is "everyone"
31
+ - success signal is "users like it"
32
+ - differentiator is "AI-powered"
33
+ - non-goals are missing
34
+ - trust boundaries are implied but not explicit
35
+
36
+ Thin vision should continue interview mode.
37
+
38
+ ## Blocked
39
+
40
+ The vision is blocked when:
41
+
42
+ - target user and product mechanism conflict
43
+ - user intent contradicts privacy or safety constraints
44
+ - the product direction depends on a decision the user has not made
45
+ - downstream prototype prompts would require inventing product strategy
46
+
47
+ Blocked vision should record the blocker or ask for the missing decision.
48
+
@@ -0,0 +1,48 @@
1
+ # Vision Interview Protocol
2
+
3
+ Use this reference when `/ow:vision` is in interview mode.
4
+
5
+ ## Goal
6
+
7
+ Keep the human conversation fluid while digging deeply enough to produce a
8
+ vision that downstream prototype generation can trust.
9
+
10
+ ## Interview Stance
11
+
12
+ Act as:
13
+
14
+ - product partner: look for leverage, sequencing, differentiation, and product
15
+ shape
16
+ - requirements interrogator: expose thin answers, contradictions, and hidden
17
+ assumptions
18
+ - intent compiler: translate answers into stable product intent
19
+
20
+ ## Question Rules
21
+
22
+ - Ask one focused question at a time.
23
+ - Prefer a concrete next question over a broad checklist.
24
+ - Follow the user's answer rather than a fixed order.
25
+ - Offer choices only when they help the user think.
26
+ - Continue asking when a load-bearing dimension is thin.
27
+ - Do not compile because a fixed number of questions has been reached.
28
+
29
+ ## Deepening Patterns
30
+
31
+ Use these patterns when an answer is shallow:
32
+
33
+ - "What would the user do today without this?"
34
+ - "What behavior should change after this exists?"
35
+ - "What would prove this is working?"
36
+ - "What should this product refuse to become?"
37
+ - "Where would trust break?"
38
+ - "What would make the first prototype obviously wrong?"
39
+ - "Which part is the real bet?"
40
+
41
+ ## Stop Conditions
42
+
43
+ Stop interviewing only when:
44
+
45
+ - proto-readiness is strong enough for `/ow:proto`
46
+ - unresolved blockers are explicit
47
+ - the user confirms compile can begin
48
+
@@ -0,0 +1,204 @@
1
+ ---
2
+ name: coder
3
+ description: Internal Agent-only code execution governance for OpenWorkflow source edits. Use as the source skill for future internal /ow:coder protocol work, not as a user-facing coding command.
4
+ ---
5
+
6
+ # Coder
7
+
8
+ ## Purpose
9
+
10
+ `coder` is the repo-owned source skill for OpenWorkflow's internal code quality
11
+ governance protocol. It turns source-edit work into a governed engineering
12
+ loop: recover trust, map ownership, produce RED/GREEN evidence when applicable,
13
+ self-check the diff, choose an honest validation ladder, and bind evidence back
14
+ to the current selected change or run.
15
+
16
+ This is not a generated runtime surface and not a public workflow command. The
17
+ semantic command boundary is defined in `references/internal-coder-protocol.md`.
18
+
19
+ ## Boundary
20
+
21
+ Internal only:
22
+
23
+ - Agent-only engineering quality protocol
24
+ - source-edit preflight
25
+ - RED/GREEN evidence discipline
26
+ - post-write self-check
27
+ - validation ladder selection
28
+ - evidence binding and quality lesson promotion
29
+
30
+ Not owned here:
31
+
32
+ - user-facing "write code" behavior
33
+ - `/ow:change` selected-change planning
34
+ - `/ow:team` runtime orchestration
35
+ - command registry exposure
36
+ - generated `.agents/**` output
37
+ - mandatory `CODER_EVIDENCE.yaml`
38
+ - public CLI JSON changes
39
+
40
+ ## Read First
41
+
42
+ - `references/internal-coder-protocol.md`
43
+ - `references/validation-trust-domains.md`
44
+ - `references/skill-system-lifecycle.md`
45
+ - `references/git-version-control-governance.md`
46
+
47
+ Use the system-level `ow-code-quality-governor` material only as migration
48
+ source and benchmark context. Durable OW behavior should live in this repo.
49
+
50
+ ## Trust Recovery
51
+
52
+ Before source edits, establish the current trust surface with the repo-local
53
+ CLI:
54
+
55
+ ```bash
56
+ node dist/cli/src/index.js resume --root . --json
57
+ node dist/cli/src/index.js handoff --root . --json
58
+ node dist/cli/src/index.js inspect --root . --strict --json
59
+ git status --short --branch
60
+ ```
61
+
62
+ Use `resume` first after interruption, context loss, network failure, or
63
+ unexpected termination. Use `handoff` and `inspect --strict` as trust gates, not
64
+ as release-readiness proof.
65
+
66
+ ## Owner Map
67
+
68
+ Before non-trivial edits, identify the source owner and the derived surfaces.
69
+
70
+ Owner map:
71
+
72
+ - command behavior: `packages/core/src/commands/registry.ts` or the matching
73
+ CLI command module
74
+ - artifact shape: artifact registry, schema, validator, and summary policy
75
+ - generated Codex surfaces: source registry or adapter template followed by
76
+ `sync`
77
+ - summary and handoff trust: `packages/core/src/workflow/summaryHealth.ts`
78
+ - planning queue state: `changes/<plan_id>/CANDIDATE_CHANGES.yaml`
79
+ - git evidence: selected-change `LOCAL_COMMIT_EVIDENCE.yaml`
80
+ - docs or source skills: repo-owned `references/` and `skills/`
81
+
82
+ If the same rule appears in two owners, either collapse the duplication or
83
+ record the temporary compatibility boundary in the selected change.
84
+
85
+ ## File Map
86
+
87
+ For changes touching more than one concern, name the intended file set before
88
+ editing:
89
+
90
+ - core model or helper files for source truth
91
+ - CLI files for command/report wiring only
92
+ - adapter files for generated formatting only
93
+ - dev verifier or fixture files for structural checks
94
+ - planning artifacts for queue status and evidence
95
+
96
+ Do not patch generated `.agents/**` as the durable fix. Change the source owner
97
+ and regenerate through the repo-local CLI when generated surfaces are in scope.
98
+
99
+ ## RED Evidence
100
+
101
+ For behavior, validator, CLI report, generated-surface, path-safety, summary,
102
+ queue, or git-evidence changes, prefer RED evidence before production edits.
103
+
104
+ Valid RED evidence:
105
+
106
+ - failing parsed JSON or YAML assertion
107
+ - failing valid or invalid fixture
108
+ - failing generated-surface parity check
109
+ - failing summary, handoff, or resume health assertion
110
+ - targeted compile or runtime verifier failure
111
+
112
+ RED can be marked not applicable for docs-only contract work, mechanical
113
+ renames, or exploratory spikes. In those cases, use the nearest structural
114
+ check and record why RED is not useful.
115
+
116
+ ## GREEN Evidence
117
+
118
+ After edits, rerun the RED evidence or nearest equivalent. Then run the rest of
119
+ the validation ladder that matches the touched trust domain.
120
+
121
+ Do not treat `npm run build` alone as validation. Do not hide existing broad
122
+ repo failures; classify them as active-change failures, historical archive
123
+ debt, fixture debt, or release-readiness debt.
124
+
125
+ ## Post-Write Self-Check
126
+
127
+ Before final validation, inspect the diff for:
128
+
129
+ - accidental second source of truth
130
+ - hidden dependency or broad scan
131
+ - generated-surface edits without source changes
132
+ - oversized files gaining a new unrelated concern
133
+ - comments that explain what instead of why
134
+ - validation that does not match the touched trust domain
135
+ - queue completion without selected-change commit evidence when implementation
136
+ files changed
137
+
138
+ Fix any issue immediately or record it as explicit residual quality debt tied
139
+ to a follow-up candidate.
140
+
141
+ ## Validation Ladder
142
+
143
+ Use the narrowest honest ladder:
144
+
145
+ - docs or planning contract: YAML parse when relevant, `handoff`, `inspect
146
+ --strict`, `resume`, and `git diff --check`
147
+ - source skill or generated protocol: `npm run build`, `sync --root . --tools
148
+ codex --json`, generated diff review, `inspect --strict`, and `git diff
149
+ --check`
150
+ - command registry or generated runtime surface: build, sync, runtime-surface
151
+ verifier, and generated diff review
152
+ - artifact/schema/validator: build, validate, and targeted valid/invalid
153
+ fixtures
154
+ - recovery or summary trust: handoff, inspect, summaries, resume, and targeted
155
+ fixture or command packet
156
+ - git evidence: git-automation preview/write plus strict read-model commands
157
+
158
+ ## Evidence Binding
159
+
160
+ Bind implementation evidence to the current OW selected change:
161
+
162
+ - `SELECTED_CHANGE.yaml` owns scope, acceptance, owned paths, forbidden paths,
163
+ and expected validation.
164
+ - `ATOM_TASKS.yaml` owns task status and verification results.
165
+ - `IMPLEMENTATION_BRIEF.md` owns the handoff for the next implementation Agent.
166
+ - `LOCAL_COMMIT_EVIDENCE.yaml` records local commit hashes and validation
167
+ evidence when implementation files changed.
168
+ - Optional `LOCAL_COMMIT_EVIDENCE.yaml.coder_evidence` records coder preflight,
169
+ RED/GREEN, self-check, validation ladder, and lessons when those details are
170
+ useful. Missing `coder_evidence` is valid; malformed present evidence is not.
171
+
172
+ Do not batch multiple completed selected changes into one checkpoint commit.
173
+ Remote push, PR creation, Issue mutation, and merge require separate explicit
174
+ approval.
175
+
176
+ ## Continuous Growth Loop
177
+
178
+ Promote a quality lesson into source policy only when it is repeated,
179
+ high-leverage, and backed by implementation or validation evidence.
180
+
181
+ Use `references/coder-continuous-growth-loop.md` as the source policy for
182
+ promotion criteria, evidence requirements, and boundaries. Session notes,
183
+ unreviewed memories, or one-off fixes are not enough to change durable coder
184
+ policy by themselves.
185
+
186
+ Promotion targets:
187
+
188
+ - role or stance: this skill
189
+ - source-of-truth or architecture rule: `references/`
190
+ - validation ladder or evidence rule: this skill plus the relevant reference
191
+ - generated-surface behavior: command registry or adapter source, then sync
192
+
193
+ Do not write project-local SOUL or MEMORY artifacts from this skill. Future
194
+ project memory promotion needs its own governed persistence and pruning rules.
195
+
196
+ ## Handoff
197
+
198
+ When coder governance is satisfied, report:
199
+
200
+ - source truth changed
201
+ - generated surfaces refreshed or intentionally untouched
202
+ - validation commands run
203
+ - commit evidence path when implementation files changed
204
+ - residual quality debt and next candidate, if any
@@ -0,0 +1,176 @@
1
+ ---
2
+ name: decompose-to-changes
3
+ description: Create, update, query, or maintain an OpenWorkflow CANDIDATE_CHANGES queue from explicit source text, the latest planning discussion, or selected repo artifacts. Use when a broad goal, roadmap topic, prototype redesign, feature idea, or existing candidate queue needs to be split into focused implementable changes, surgically edited by candidate id, or prepared before select-change or implementation begins.
4
+ ---
5
+
6
+ # Decompose To Changes
7
+
8
+ ## Purpose
9
+
10
+ Turn ambiguous planning input into a durable candidate change queue. This skill
11
+ plans change boundaries; it does not select one change for implementation and
12
+ does not implement code.
13
+
14
+ ## Feat Boundary
15
+
16
+ Treat each `CANDIDATE_CHANGES.yaml` produced by this skill as one complete feat
17
+ boundary. The top-level folder `changes/<plan_id>/` owns the feat-level queue,
18
+ summary, and audit history. Candidate changes inside that queue are
19
+ commit-sized slices of the feat, not separate top-level feats.
20
+
21
+ Before writing candidates, perform a scope triage. A queue may cover one
22
+ feature, one bounded module, one command surface, one artifact family, or one
23
+ workflow slice. It must not become a roadmap bucket for multiple features or a
24
+ large module family just because the source discussion contains a deep vision.
25
+
26
+ When the source includes more features than the current queue can responsibly
27
+ own, record those features as future refs in `scope_control.deferred_features`
28
+ or `SUMMARY.yaml` notes. Do not include them as current `changes` candidates
29
+ unless they are inside the selected queue boundary.
30
+
31
+ Create a new top-level `changes/<plan_id>/` only for a new decomposition queue,
32
+ product theme, or broad planning source. When the current queue still owns the
33
+ work, maintain that queue and let `select-change` create candidate-specific
34
+ selection artifacts inside the existing feat folder.
35
+
36
+ ## Branch Boundary
37
+
38
+ When creating a new feat queue, capture the current branch from
39
+ `git status --short --branch` and decide the intended feat branch. Record it in
40
+ `queue_policy.branch_boundary` and in `SUMMARY.yaml`.
41
+ The branch boundary should carry the same feat identity as the queue `plan_id`
42
+ when practical; for example, `M114-engineering-quality-foundation` should
43
+ normally use a branch containing `m114`.
44
+
45
+ Do not automatically create or switch branches from this skill. If the agent or
46
+ user already created the branch, record it. If the queue is being planned before
47
+ branch creation, record the proposed branch name and note that the branch still
48
+ needs to be created before implementation begins.
49
+
50
+ For queue maintenance, preserve the existing branch boundary. If the current
51
+ branch differs, record the observation in the operation reason or summary notes
52
+ instead of silently changing the boundary.
53
+ If the branch boundary names another plan id, do not silently treat it as the
54
+ owning feat branch. Record a narrow `queue_policy.branch_identity_exception`
55
+ only when the user has explicitly approved temporary continuation on that
56
+ branch, with `mode: temporary_continuation_branch`, `approved: true`,
57
+ operation-scoped `allowed_operations`, and a reason.
58
+
59
+ ## Read First
60
+
61
+ Read these only as needed:
62
+
63
+ - `references/planning-artifact-contracts.md`
64
+ - `skills/decompose-to-changes/references/decomposition-protocol.md`
65
+ - Existing `CANDIDATE_CHANGES.yaml` when updating a queue
66
+ - User-specified source files or the latest session discussion
67
+
68
+ ## Workflow
69
+
70
+ 1. Run `git status --short --branch` and note whether the tree is dirty.
71
+ 2. Decide whether this is decomposition mode or queue maintenance mode:
72
+ - use decomposition mode for new broad goals or new planning sources
73
+ - use queue maintenance mode for add, query, update, defer, block,
74
+ supersede, split, merge, or priority changes in an existing queue
75
+ 3. Identify the planning source:
76
+ - explicit user-provided text or files first
77
+ - latest session discussion when the user refers to "current discussion"
78
+ - repo vision, roadmap, or existing OpenWorkflow artifacts only when needed
79
+ 4. Choose a `plan_id` and output location. Default to
80
+ `changes/<plan_id>/CANDIDATE_CHANGES.yaml`; this folder is the feat root for
81
+ all candidate commits in the queue.
82
+ 5. In decomposition mode, choose or confirm the feat branch boundary and record
83
+ it as `queue_policy.branch_boundary`.
84
+ 6. If updating an existing queue, preserve existing candidate ids, branch
85
+ boundary, and history.
86
+ Add new ids only for genuinely new candidates.
87
+ 7. Run the queue scope gate:
88
+ - name the current feature boundary in `scope_control.current_boundary`
89
+ - decide which discussed features are outside that boundary
90
+ - record outside features as deferred refs, not current candidates
91
+ - if the remaining queue would still span multiple features or a broad
92
+ module family, split the planning source into separate future queues
93
+ 8. Decompose the in-bound source into candidates with focused owned paths, explicit
94
+ includes and excludes, dependencies, validation, and acceptance.
95
+ 9. For queue maintenance, write an `operations` entry for every targeted
96
+ change. Include the operation type, target id, reason, and evidence.
97
+ 10. If the current queue reaches one or more `risk: high` candidates that need
98
+ user confirmation, create or update `HIGH_RISK_DECISION_REPORT.md` in the
99
+ owning queue folder before implementation continues.
100
+ 11. Write `CANDIDATE_CHANGES.yaml` first. Then write
101
+ `CANDIDATE_CHANGES.md` as a non-authoritative readable view.
102
+ 12. Write `SUMMARY.yaml` with source refs, candidate count, branch boundary,
103
+ key dependencies, risks, and the optional next recommended candidate.
104
+ 13. Run repository validation when available, usually `npm run validate`.
105
+
106
+ ## Candidate Rules
107
+
108
+ - Assign stable ids such as `C001`, `C002`, `C003`.
109
+ - Prefer one module, feature, command surface, artifact family, or workflow
110
+ slice per candidate.
111
+ - Prefer one feature, bounded module, command surface, artifact family, or
112
+ workflow slice per queue. A queue that needs several independent feature
113
+ outcomes is too broad even when every candidate is individually small.
114
+ - Split candidates that require unrelated owned paths or mix planning,
115
+ implementation, and runtime exposure.
116
+ - Do not include "later but known" features as normal candidates in the current
117
+ queue. Capture them as deferred refs with enough title, rationale, and
118
+ suggested future queue hints for a later DTC pass.
119
+ - Use dependencies and unlocks instead of forcing one sorted backlog.
120
+ - Set `next_recommended_candidate_id` only when one candidate clearly unlocks
121
+ the rest.
122
+ - Keep Markdown synchronized with YAML, but treat YAML as the source of truth.
123
+
124
+ ## Queue Maintenance
125
+
126
+ For an existing queue, operate by stable candidate id.
127
+
128
+ - `query`: inspect one candidate or a filtered set without changing status.
129
+ - `add`: append a new candidate with a new stable id.
130
+ - `update`: revise scope, dependencies, validation, acceptance, or notes
131
+ without changing the candidate's identity.
132
+ - `split`: keep the original candidate as `superseded` or narrowed, then add
133
+ replacement candidates with new ids.
134
+ - `merge`: mark redundant candidates as `superseded` and point to the survivor.
135
+ - `defer`, `block`, `restore`, `supersede`, `complete`: status transitions
136
+ with evidence.
137
+ - `remove`: do not hard-delete a historical candidate. Use `superseded`,
138
+ `deferred`, or `blocked`. Hard deletion is allowed only for a malformed
139
+ candidate created in the same uncommitted operation, and the operation log
140
+ must say why.
141
+
142
+ Every maintenance edit must append an `operations` item to the YAML queue and
143
+ refresh the Markdown readable view.
144
+
145
+ ## High-Risk Reports
146
+
147
+ When a queue's next actionable work is `risk: high`, or when the user asks for a
148
+ high-risk stop/report, produce a `HIGH_RISK_DECISION_REPORT.md` instead of
149
+ selecting or implementing the candidate. Use
150
+ `references/planning-artifact-contracts.md` for the report contract.
151
+
152
+ High-risk report behavior:
153
+
154
+ - Keep candidate ids and candidate statuses stable unless the user explicitly
155
+ approves a status change.
156
+ - Create the report under the owning queue folder, usually
157
+ `changes/<plan_id>/HIGH_RISK_DECISION_REPORT.md`.
158
+ - Update an existing report when it covers the same decision boundary; do not
159
+ create duplicate reports for the same high-risk stop.
160
+ - Link the report from `SUMMARY.yaml` outputs or notes.
161
+ - Add an `operations` entry with `operation_type: query` or `block` and the
162
+ report path as evidence.
163
+ - Treat the report as a decision packet, not as approval to implement.
164
+
165
+ The report must include concrete risks, decision options, a recommended path,
166
+ guardrails, go criteria, stop criteria, and validation expectations.
167
+
168
+ ## Boundaries
169
+
170
+ - Do not create `SELECTED_CHANGE.yaml`, `ATOM_TASKS.yaml`, or
171
+ `IMPLEMENTATION_BRIEF.md`; that is `select-change`.
172
+ - Do not implement a candidate.
173
+ - Do not hand-edit generated `.agents/` or `.openworkflow/` surfaces unless the
174
+ selected source explicitly owns those paths and the user accepts that scope.
175
+ - Do not delete completed, superseded, or deferred candidates. Update status
176
+ and append evidence instead.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Decompose to Changes"
3
+ short_description: "Turn planning input into focused candidate changes."
4
+ default_prompt: "Create a focused CANDIDATE_CHANGES queue from the latest planning discussion or the provided source text."