@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,278 @@
1
+ # Decomposition Protocol
2
+
3
+ Use this reference when turning planning input into `CANDIDATE_CHANGES.yaml`,
4
+ `CANDIDATE_CHANGES.md`, and `SUMMARY.yaml`.
5
+
6
+ ## Input Normalization
7
+
8
+ Capture the source as one of:
9
+
10
+ - `user_input`: direct instruction or pasted plan
11
+ - `planning_discussion`: latest session discussion
12
+ - `artifact`: named repo files such as `VISION.md` or `OW_DEVELOP_PLAN.md`
13
+ - `mixed`: a small set of explicit files plus session discussion
14
+
15
+ Prefer a narrow source set. Do not load archives, generated runtime state, or
16
+ unrelated implementation history unless the user names them.
17
+
18
+ ## Candidate Shape
19
+
20
+ Each candidate should answer:
21
+
22
+ - What one outcome changes?
23
+ - Which paths own that outcome?
24
+ - What is explicitly out of scope?
25
+ - What must happen first?
26
+ - What downstream work does it unlock?
27
+ - How will an implementer verify it?
28
+ - What acceptance facts prove it is done?
29
+
30
+ Good candidates are small enough for one focused implementation pass. A
31
+ candidate is too broad when it owns multiple unrelated modules, mixes source
32
+ skill authoring with runtime command exposure, or requires both product design
33
+ and production implementation.
34
+
35
+ ## Queue Scope Control
36
+
37
+ Before creating or maintaining candidates, decide the queue boundary separately
38
+ from the source discussion. The source may contain a full product vision,
39
+ multi-stage roadmap, or several future features; the queue must still remain a
40
+ reasonable development scope.
41
+
42
+ A valid queue usually covers exactly one of:
43
+
44
+ - one feature outcome
45
+ - one bounded module
46
+ - one command surface
47
+ - one artifact family
48
+ - one workflow slice
49
+
50
+ A queue is too broad when it contains multiple independent features, a large
51
+ module family, or candidates that would naturally require separate milestone
52
+ branches. In that case, choose the smallest current feature boundary that can
53
+ move development forward and record the rest outside the active `changes` list.
54
+
55
+ Use top-level `scope_control` for this decision:
56
+
57
+ ```yaml
58
+ scope_control:
59
+ current_boundary: Workflow command taxonomy and stage graph only.
60
+ boundary_type: workflow_slice
61
+ in_scope_rule: Include only candidates needed to complete this boundary.
62
+ out_of_scope_rule: Record later features as deferred refs; do not include them as current candidates.
63
+ deferred_features:
64
+ - title: proto2html runtime contract
65
+ reason: Separate command surface; needs its own DTC pass after taxonomy.
66
+ suggested_plan_id: M74-proto2html-runtime-contract
67
+ ```
68
+
69
+ `deferred_features` are not candidates and must not be referenced as
70
+ dependencies or unlocks. They are planning memory for future DTC passes. When a
71
+ deferred feature becomes active, create a new `CANDIDATE_CHANGES.yaml` queue
72
+ for that feature and cite the original queue as source evidence.
73
+
74
+ ## Feat And Commit Cadence
75
+
76
+ The queue is the feat. `changes/<plan_id>/CANDIDATE_CHANGES.yaml` defines the
77
+ feature-sized planning boundary and should remain the durable source of truth
78
+ until that feature is complete or superseded.
79
+
80
+ Individual candidates are commit-sized changes inside the current feat. Do not
81
+ create sibling top-level folders such as `changes/<new-id>/` for every
82
+ candidate. Selection artifacts should live under the current feat folder, for
83
+ example:
84
+
85
+ ```text
86
+ changes/<plan_id>/
87
+ CANDIDATE_CHANGES.yaml
88
+ CANDIDATE_CHANGES.md
89
+ SUMMARY.yaml
90
+ <candidate-id>-<slug>/
91
+ SELECTED_CHANGE.yaml
92
+ ATOM_TASKS.yaml
93
+ IMPLEMENTATION_BRIEF.md
94
+ ```
95
+
96
+ Open a new top-level feat folder only when a new decomposition queue is needed.
97
+ Otherwise, update the existing queue by candidate id and let each completed
98
+ candidate land as a normal git commit.
99
+
100
+ ## Branch Boundary
101
+
102
+ When creating a new queue, capture the branch context from
103
+ `git status --short --branch`.
104
+
105
+ Record the intended feat branch under:
106
+
107
+ ```yaml
108
+ queue_policy:
109
+ branch_boundary: codex/<feat-branch>
110
+ ```
111
+
112
+ Use the current branch when it already matches the new feat. If branch creation
113
+ has not happened yet, record the proposed branch name and note the gap in
114
+ `SUMMARY.yaml`. Do not create or switch branches as part of this skill.
115
+
116
+ When maintaining an existing queue, preserve `queue_policy.branch_boundary`.
117
+ If the current branch differs from the recorded boundary, add an operation or
118
+ summary note explaining why maintenance is still valid.
119
+
120
+ ## Status Guidance
121
+
122
+ Use these statuses:
123
+
124
+ - `ready`: dependencies are satisfied and the candidate can be selected.
125
+ - `candidate`: valid but blocked by incomplete dependencies or sequencing.
126
+ - `blocked`: cannot be clarified or implemented without an explicit decision.
127
+ - `deferred`: useful but intentionally postponed.
128
+ - `superseded`: replaced by a newer candidate; keep evidence.
129
+
130
+ When updating an existing queue, never renumber stable ids. If a candidate
131
+ changes meaningfully, add a note or create a new candidate rather than reusing
132
+ the old id for a different scope.
133
+
134
+ ## Queue Maintenance Operations
135
+
136
+ Use queue maintenance when the user asks to inspect or surgically change an
137
+ existing `CANDIDATE_CHANGES.yaml`.
138
+
139
+ Supported operations:
140
+
141
+ - `query`: answer by candidate id, status, dependency, owned path, risk, or
142
+ readiness.
143
+ - `add`: append a new candidate with a fresh stable id.
144
+ - `update`: change fields while preserving candidate identity.
145
+ - `status_change`: move between `candidate`, `ready`, `blocked`, `deferred`,
146
+ `superseded`, `selected`, `in_progress`, or `done`.
147
+ - `split`: replace one broad candidate with multiple narrower candidates.
148
+ - `merge`: combine overlapping candidates by keeping one survivor and marking
149
+ the others `superseded`.
150
+ - `priority_change`: update `next_recommended_candidate_id` or ready ordering.
151
+
152
+ Each mutating operation should append an item under top-level `operations`:
153
+
154
+ ```yaml
155
+ operations:
156
+ - operation_id: OP001
157
+ operation_type: update
158
+ target_candidate_ids:
159
+ - C002
160
+ actor: agent
161
+ reason: Clarify owned paths before selection.
162
+ changed_at: 2026-05-21
163
+ before_status: candidate
164
+ after_status: ready
165
+ evidence:
166
+ - changes/<id>/...
167
+ ```
168
+
169
+ Use sequential operation ids such as `OP001`, `OP002`, `OP003`. If the queue
170
+ already has operations, continue the sequence.
171
+
172
+ Do not hard-delete historical candidates. Prefer `superseded`, `deferred`, or
173
+ `blocked`. Hard deletion is only acceptable for a malformed candidate created in
174
+ the same uncommitted operation; log the reason.
175
+
176
+ ## High-Risk Decision Reports
177
+
178
+ Use `HIGH_RISK_DECISION_REPORT.md` when queue maintenance discovers that the
179
+ next work is high risk and needs user confirmation before implementation. This
180
+ is especially important for adapter delivery, generated runtime surfaces,
181
+ security, data handling, trust model, or broad architecture changes.
182
+
183
+ Report creation is a queue maintenance action. It does not select the high-risk
184
+ candidate and does not authorize implementation.
185
+
186
+ When creating or updating the report:
187
+
188
+ 1. Keep the high-risk candidate id stable.
189
+ 2. Preserve the candidate status unless the user explicitly asks to mark it
190
+ `blocked`, `deferred`, or `superseded`.
191
+ 3. Write or update `changes/<plan_id>/HIGH_RISK_DECISION_REPORT.md`.
192
+ 4. Add the report path to `SUMMARY.yaml` outputs or notes.
193
+ 5. Refresh `CANDIDATE_CHANGES.md` with the report path when useful.
194
+ 6. Append an operation entry:
195
+
196
+ ```yaml
197
+ operations:
198
+ - operation_id: OP012
199
+ operation_type: query
200
+ target_candidate_ids:
201
+ - C007
202
+ actor: agent
203
+ reason: High-risk stop converted into a decision report before implementation.
204
+ changed_at: 2026-05-21
205
+ before_status: candidate
206
+ after_status: candidate
207
+ evidence:
208
+ - changes/<plan_id>/HIGH_RISK_DECISION_REPORT.md
209
+ ```
210
+
211
+ Use `operation_type: block` only when the queue status or candidate status is
212
+ also changed to `blocked`. Use `query` when the report is informational and the
213
+ candidate remains in its current status.
214
+
215
+ Required report sections are defined in
216
+ `references/planning-artifact-contracts.md`.
217
+
218
+ Do not create multiple reports for the same risk boundary. Update the existing
219
+ report unless the new high-risk stop concerns a materially different decision.
220
+
221
+ ## Output Checklist
222
+
223
+ `CANDIDATE_CHANGES.yaml` must include:
224
+
225
+ - `schema_version: 0.1.0`
226
+ - `contract_id: candidate_changes:<plan_id>`
227
+ - `contract_type: planning`
228
+ - `planning_artifact_type: candidate_changes`
229
+ - `plan_id`
230
+ - `title`
231
+ - `status`
232
+ - `source`
233
+ - `queue_policy`
234
+ - `selection_policy`
235
+ - `scope_control` when the source discussion spans more than one feature,
236
+ command surface, artifact family, module, or workflow slice
237
+ - `queue_policy.branch_boundary` for new branch-governed queues
238
+ - `next_recommended_candidate_id` when appropriate
239
+ - `changes`
240
+ - `operations` when the queue has been maintained after initial creation
241
+
242
+ `CANDIDATE_CHANGES.md` should include:
243
+
244
+ - source-of-truth notice
245
+ - selection policy summary
246
+ - branch boundary when present
247
+ - next recommended candidate when present
248
+ - one compact section per candidate
249
+
250
+ `SUMMARY.yaml` should include:
251
+
252
+ - source summary
253
+ - scope boundary summary and deferred feature refs when present
254
+ - output paths
255
+ - branch boundary when present
256
+ - candidate count
257
+ - next recommended candidate
258
+ - unresolved questions
259
+ - validation commands run
260
+
261
+ ## Review Before Finishing
262
+
263
+ Check that:
264
+
265
+ - every candidate has focused `owned_paths`
266
+ - the queue itself covers one feature, bounded module, command surface, artifact
267
+ family, or workflow slice
268
+ - later or adjacent features are captured as deferred refs, not current
269
+ candidates
270
+ - includes and excludes are both present
271
+ - dependencies reference stable candidate ids
272
+ - validation commands are realistic for this repo
273
+ - no candidate silently starts implementation
274
+ - generated or runtime paths are protected unless explicitly in scope
275
+ - every mutating maintenance edit has an operation log entry
276
+ - every status change preserves or adds evidence
277
+ - high-risk candidates that require confirmation have a linked report before
278
+ implementation resumes
@@ -0,0 +1,157 @@
1
+ ---
2
+ name: prompt2proto
3
+ description: Translate ready PROTO_PROMPT_PACK artifacts into credible UI/UX prototype instructions, evidence plans, and downstream handoff records. Use after vision2prompt/build-proto-prompt has produced ready prompt text and before provider-backed image generation, visual review, proto2html, specs, changes, or runtime work.
4
+ ---
5
+
6
+ # Prompt2Proto
7
+
8
+ ## Purpose
9
+
10
+ Translate ready strategic prototype prompt packs into reviewable UI/UX
11
+ prototype instructions and evidence records. This skill is the source method
12
+ behind the internal `/ow:prompt2proto` stage, but it does not by itself call an
13
+ image provider or claim visual quality.
14
+
15
+ `prompt2proto` starts where build-proto-prompt or its compatible vision2prompt
16
+ compiler path ends. It consumes a ready `PROTO_PROMPT_PACK`, preserves the
17
+ product strategy and screen coherence contracts, and turns them into a concrete
18
+ prototype translation plan that build-prototype can use without inventing
19
+ product intent.
20
+
21
+ ## Role Engine
22
+
23
+ Before translating, load
24
+ `skills/prompt2proto/references/00_role_philosophy_engine.md`.
25
+
26
+ Operate as:
27
+
28
+ - Chief PM: protects product intent, user decision context, workflow priority,
29
+ domain fit, and evidence value.
30
+ - Principal UI/UX / product design lead: protects visual hierarchy,
31
+ information density, layout anatomy, affordance clarity, interaction
32
+ believability, and prototype inspection quality.
33
+
34
+ The role engine is required. A structurally complete translation still fails if
35
+ it reads like a generic image prompt, a decorative dashboard, a card wall, or a
36
+ concept poster rather than a plausible product interface.
37
+
38
+ Use this role engine as the build-prototype philosophy engine: Chief PM plus
39
+ Principal UI/UX judgment must come before visual translation. The Chief PM
40
+ decides product intent, domain fit, user decision context, and evidence value;
41
+ the Principal UI/UX lead decides information hierarchy, density calibration,
42
+ affordance clarity, interaction believability, and UI/UX credibility.
43
+
44
+ ## Inputs
45
+
46
+ Required:
47
+
48
+ - `.openworkflow/prototypes/<id>/PROTO_PROMPT_PACK.yaml` or an equivalent
49
+ ready prompt pack artifact
50
+ - prompt text with `prompt_text_manifest.status: ready_for_image_generation`
51
+ - `prompt_text_manifest.paragraph_quality_status: pass`
52
+ - `prompt_pack_integrity_gate.status: pass`
53
+ - `prototype_reality_gate.status: pass`
54
+ - `quality_rubric.prompt_executability.status: pass`
55
+ - `post_validate.status: pass` for multi-direction packs, or `skipped` for an
56
+ explicit single-direction pack
57
+
58
+ Optional:
59
+
60
+ - `PROTO_PROMPT_PACK.md` readable view
61
+ - `EVIDENCE.yaml` or `EVIDENCE.md` for existing prototype lineage
62
+ - selected direction constraints from user review
63
+ - target medium, provider, canvas, viewport, or image count constraints
64
+
65
+ ## References
66
+
67
+ Run these references in order:
68
+
69
+ 1. `references/00_role_philosophy_engine.md`: role, taste, and guardrails.
70
+ 2. `references/01_input_contract.md`: input readiness and refusal policy.
71
+ 3. `references/02_prompt_pack_readiness.md`: gate and coherence checks.
72
+ 4. `references/03_visual_translation_workflow.md`: UI/UX translation method.
73
+ 5. `references/04_output_contract.md`: output and metadata shape.
74
+ 6. `references/05_quality_rubric.md`: final review before handoff.
75
+
76
+ Load only the reference needed for the current step.
77
+
78
+ ## Output
79
+
80
+ For source-level dogfood, write evidence under the selected change folder. For
81
+ workflow execution, write under the active prototype folder selected by the
82
+ command.
83
+
84
+ Expected output families:
85
+
86
+ ```text
87
+ PROMPT2PROTO_TRANSLATION_PLAN.md
88
+ PROMPT2PROTO_EVIDENCE.yaml
89
+ NOTE.md
90
+ ```
91
+
92
+ When a provider-backed generation stage is explicitly authorized later, the
93
+ same contract can support image metadata records. This skill only defines the
94
+ translation and evidence contract; it does not start provider generation.
95
+
96
+ ## Workflow
97
+
98
+ 1. Load the role engine and required input contract.
99
+ 2. Refuse missing, thin, stale, incoherent, or not-ready prompt packs.
100
+ 3. Preserve strategy from the prompt pack: product thesis, target user,
101
+ user transformation, primary loop, trust boundaries, non-goals, and
102
+ direction-level reasons to exist.
103
+ 4. Preserve technical screen coherence from the prompt pack: app shell,
104
+ navigation taxonomy, domain objects, screen ids, state model, data
105
+ vocabulary, and allowed screen-specific deltas.
106
+ 5. Apply the philosophy engine before translating screens: decide what must be
107
+ visible, grouped, collapsed, delayed, or drilled into based on industry,
108
+ role, risk, screen size, task frequency, and the user's next decision.
109
+ 6. Translate each selected direction into a prototype system plan: screen
110
+ sequence, hierarchy, density, component anatomy, state behavior,
111
+ interaction affordances, sample data, trust controls, and negative visual
112
+ constraints.
113
+ 7. Calibrate information density as design judgment, not prompt length:
114
+ decide what is visible, grouped, collapsed, delayed, or drilled into based
115
+ on industry, role, risk, screen size, task frequency, and user attention.
116
+ 8. Write translation evidence that names accepted inputs, refusals, output
117
+ refs, limitations, and the next authorized handoff.
118
+ 9. Stop before provider-backed generation, human visual review, visual parity,
119
+ proto2html, storyboard, motion, specs, changes, or runtime work unless a
120
+ later selected candidate explicitly authorizes that surface.
121
+
122
+ ## Build-Prototype Consumption Boundary
123
+
124
+ `build-prototype` consumes prompt2proto; it must not re-run vision-to-prompt
125
+ compilation, invent strategic directions, or repair prompt paragraphs. When a
126
+ prompt pack is not ready, route repair back to `/ow:build-proto-prompt` or the
127
+ compatible `/ow:vision2prompt` compiler path and keep image generation or
128
+ visual acceptance evidence out of scope.
129
+
130
+ ## Refusal Rules
131
+
132
+ Refuse and route back to prompt-pack repair when:
133
+
134
+ - readiness gates are missing or failing;
135
+ - prompt paragraphs are not dailin-grade or omit journey, interaction
136
+ behavior, system response, trust controls, anti-goals, visual direction,
137
+ desired user feeling, or concrete content;
138
+ - screen prompts do not resolve to `screen_manifest.target_screen_id`;
139
+ - screen coherence contracts are missing when multiple screens must share one
140
+ product shell;
141
+ - the prompt pack asks prompt2proto to invent strategy instead of translate
142
+ ready strategy;
143
+ - the requested output is provider generation, human visual review, visual
144
+ parity scoring, proto2html, storyboard, motion, spec, change, or runtime
145
+ work.
146
+
147
+ ## Handoff
148
+
149
+ When translation passes, hand back to the orchestrating prototype workflow with
150
+ clear next actions:
151
+
152
+ - generate provider images only when a later queue authorizes it;
153
+ - repair prompt pack through build-proto-prompt/vision2prompt when readiness
154
+ fails;
155
+ - move to tune only after accepted visual evidence exists;
156
+ - move to proto2html only after an accepted benchmark image or screen group
157
+ exists.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Prompt2Proto"
3
+ short_description: "Translate ready prompt packs into UI/UX prototype instructions"
4
+ default_prompt: "Use prompt2proto to consume a ready PROTO_PROMPT_PACK and produce credible UI/UX prototype translation instructions and evidence without starting provider generation."
@@ -0,0 +1,96 @@
1
+ # 00 Role And Philosophy Engine
2
+
3
+ Use this reference before any prompt2proto translation.
4
+
5
+ ## Identity
6
+
7
+ Act as a combined Chief PM and Principal UI/UX product design lead.
8
+
9
+ The Chief PM protects why the prototype exists: target user, product thesis,
10
+ behavior change, validation risk, business/domain fit, and evidence value.
11
+
12
+ The Principal UI/UX lead protects how the prototype becomes credible:
13
+ information architecture, visual hierarchy, density, screen anatomy, component
14
+ behavior, interaction affordances, and inspection quality.
15
+
16
+ ## Perspective Lens
17
+
18
+ Notice:
19
+
20
+ - whether the prompt pack already contains strategy or is asking this stage to
21
+ invent it;
22
+ - whether screen groups share a stable product shell and data vocabulary;
23
+ - whether the main canvas matches the product category;
24
+ - whether density matches user role, task risk, screen size, and frequency;
25
+ - whether trust, safety, privacy, and approval controls are visible in UI, not
26
+ only prose;
27
+ - whether sample data, labels, owners, timestamps, and states feel like real
28
+ operational work.
29
+
30
+ Decide before translation:
31
+
32
+ - what is visible because it changes the next decision;
33
+ - what is grouped because related fields must be compared;
34
+ - what is collapsed because it is secondary but still inspectable;
35
+ - what is delayed until the user expresses intent;
36
+ - what becomes drill-down detail because it would overload the main canvas.
37
+
38
+ Prioritize:
39
+
40
+ - product credibility over decorative novelty;
41
+ - inspectable screen anatomy over vague mood-board language;
42
+ - visible user control over magical automation;
43
+ - coherent multi-screen systems over isolated screenshots;
44
+ - concrete content and state behavior over generic components.
45
+
46
+ Reject:
47
+
48
+ - generic dashboards, card walls, chatbot shells, consulting report screens,
49
+ or SaaS templates when the prompt pack calls for a more specific product
50
+ form;
51
+ - concept posters that cannot be used or inspected as product UI;
52
+ - overstuffed screens that confuse priority and density;
53
+ - sparse mockups that hide essential operational decisions;
54
+ - translations that claim generated image quality, visual parity, or human
55
+ review without evidence.
56
+
57
+ ## Mind Philosophy
58
+
59
+ 1. A prototype is evidence for a product decision, not an illustration of a
60
+ feature list.
61
+ 2. Product strategy must arrive from the prompt pack; prompt2proto translates,
62
+ calibrates, and checks it.
63
+ 3. Multi-screen consistency is a technical contract from the prompt compiler;
64
+ density is a design judgment made during visual translation.
65
+ 4. Credible UI exposes object anatomy, states, actions, feedback, and trust
66
+ boundaries.
67
+ 5. The best prototype image prompt makes a reviewer understand what changed in
68
+ the user's workflow and why the product form deserves to exist.
69
+
70
+ ## Decision Heuristics
71
+
72
+ - If a screen is high-risk or decision-heavy, make controls, provenance, and
73
+ consequences visible.
74
+ - If a workflow repeats daily, optimize for scanning, comparison, and fast
75
+ next action.
76
+ - If the industry is operational, financial, civic, clinical, or developer
77
+ tooling, allow denser inspectable surfaces when expert users compare objects,
78
+ owners, states, and consequences.
79
+ - If the product is consumer-facing, emotionally sensitive, or mobile-first,
80
+ reduce visible density and make the next decision, reassurance, and control
81
+ clearer.
82
+ - If a product centers on a domain object, make that object the visual anchor.
83
+ - If a panel or drawer appears across screens, preserve its anatomy unless the
84
+ prompt pack explicitly changes the state.
85
+ - If data is sensitive or automated, show human control before showing system
86
+ confidence.
87
+ - If a prompt can fit any product after swapping nouns, it is not ready.
88
+
89
+ ## Guardrails
90
+
91
+ - Do not invent product strategy missing from the prompt pack.
92
+ - Do not start provider-backed image generation.
93
+ - Do not perform human visual review or visual parity scoring.
94
+ - Do not create proto2html, storyboard, motion, spec, change, or runtime
95
+ artifacts.
96
+ - Do not let role language replace evidence gates.
@@ -0,0 +1,53 @@
1
+ # 01 Input Contract
2
+
3
+ Use this reference before consuming a `PROTO_PROMPT_PACK`.
4
+
5
+ ## Required Input State
6
+
7
+ The prompt pack must be ready for visual translation:
8
+
9
+ - `prompt_text_manifest.status: ready_for_image_generation`
10
+ - `prompt_text_manifest.paragraph_quality_status: pass`
11
+ - `prompt_pack_integrity_gate.status: pass`
12
+ - `prototype_reality_gate.status: pass`
13
+ - `quality_rubric.prompt_executability.status: pass`
14
+ - `post_validate.status: pass` for multi-direction packs, or `skipped` for an
15
+ explicit single-direction pack
16
+
17
+ Every selected direction must provide:
18
+
19
+ - product thesis and reason-to-exist;
20
+ - target user transformation;
21
+ - direction-level `prototype_prompt`;
22
+ - screen prompts tied to `screen_manifest.target_screen_id`;
23
+ - concrete data, copy, states, actions, system response, trust controls,
24
+ anti-goals, visual direction, and desired user feeling.
25
+
26
+ ## Refusal Output
27
+
28
+ When an input fails, write a short refusal note or evidence entry with:
29
+
30
+ - `status: refused`
31
+ - failing gate or missing field
32
+ - repair route: build-proto-prompt/vision2prompt
33
+ - why prompt2proto cannot safely invent the missing content
34
+
35
+ Do not silently repair strategic prompt text in this stage.
36
+
37
+ ## Boundary
38
+
39
+ Allowed input interpretation:
40
+
41
+ - choose which ready directions/screens to translate;
42
+ - resolve output ordering and provider-agnostic image plan;
43
+ - calibrate visual hierarchy, density, and component anatomy;
44
+ - record blockers and handoff facts.
45
+
46
+ Forbidden input expansion:
47
+
48
+ - new strategic directions;
49
+ - new validation target;
50
+ - provider-specific generation;
51
+ - visual acceptance claims;
52
+ - HTML reconstruction;
53
+ - specs, changes, runtime work, storyboard, or motion.
@@ -0,0 +1,50 @@
1
+ # 02 Prompt Pack Readiness
2
+
3
+ Use this reference to check that the prompt pack can be translated without
4
+ inventing missing strategy or screen system rules.
5
+
6
+ ## Readiness Checks
7
+
8
+ Verify:
9
+
10
+ - all required gates from `01_input_contract.md` pass;
11
+ - `directions[].id` and `screen_prompts[].target_screen_id` resolve;
12
+ - every screen prompt is standalone enough for a visual prototype stage;
13
+ - screen prompts carry journey stage, interaction behavior, system response,
14
+ trust controls, anti-goals, visual direction, desired user feeling, and
15
+ concrete content;
16
+ - `prototype_system_contract` states stable cross-screen invariants and allowed
17
+ state deltas before downstream visual translation starts;
18
+ - product thesis, target user, primary loop, trust boundaries, and non-goals
19
+ are consistent across YAML and Markdown views.
20
+
21
+ ## Coherence Checks
22
+
23
+ For multi-screen groups, identify the stable prototype system:
24
+
25
+ - app shell and navigation taxonomy;
26
+ - primary canvas and layout grid;
27
+ - domain object vocabulary;
28
+ - object drawer or detail panel anatomy;
29
+ - action bar and command patterns;
30
+ - audit, provenance, approval, privacy, or safety controls;
31
+ - copy tone and data formatting;
32
+ - allowed screen-specific state deltas.
33
+
34
+ If the prompt pack lacks coherence constraints needed for multiple screens,
35
+ record a blocker. Do not invent the contract downstream.
36
+
37
+ ## Handoff Shape
38
+
39
+ Produce a concise readiness summary:
40
+
41
+ ```yaml
42
+ prompt2proto_readiness:
43
+ status: pass|blocked
44
+ accepted_prompt_pack: path
45
+ selected_directions: []
46
+ selected_screen_ids: []
47
+ coherence_contract_status: present|missing|not_required
48
+ blockers: []
49
+ repair_route: build-proto-prompt
50
+ ```