@tiic-tech/openworkflow 0.1.0 → 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 (217) hide show
  1. package/README.md +10 -0
  2. package/dist/adapters/codex/src/cleanCodexAdapter.d.ts +7 -0
  3. package/dist/adapters/codex/src/cleanCodexAdapter.js +99 -0
  4. package/dist/adapters/codex/src/cleanCodexAdapter.js.map +1 -0
  5. package/dist/adapters/codex/src/constants.d.ts +1 -0
  6. package/dist/adapters/codex/src/constants.js +2 -0
  7. package/dist/adapters/codex/src/constants.js.map +1 -0
  8. package/dist/adapters/codex/src/generateCommands.js +14 -9
  9. package/dist/adapters/codex/src/generateCommands.js.map +1 -1
  10. package/dist/adapters/codex/src/generateSkills.js +13 -0
  11. package/dist/adapters/codex/src/generateSkills.js.map +1 -1
  12. package/dist/adapters/codex/src/generatedFiles.js +1 -1
  13. package/dist/adapters/codex/src/manifest.js +11 -2
  14. package/dist/adapters/codex/src/manifest.js.map +1 -1
  15. package/dist/adapters/codex/src/templates.d.ts +0 -1
  16. package/dist/adapters/codex/src/templates.js +0 -1
  17. package/dist/adapters/codex/src/templates.js.map +1 -1
  18. package/dist/adapters/src/registry.d.ts +20 -0
  19. package/dist/adapters/src/registry.js +81 -0
  20. package/dist/adapters/src/registry.js.map +1 -0
  21. package/dist/cli/src/commands/brief.d.ts +46 -0
  22. package/dist/cli/src/commands/brief.js +294 -0
  23. package/dist/cli/src/commands/brief.js.map +1 -0
  24. package/dist/cli/src/commands/check.d.ts +42 -0
  25. package/dist/cli/src/commands/check.js +326 -0
  26. package/dist/cli/src/commands/check.js.map +1 -0
  27. package/dist/cli/src/commands/clean.d.ts +1 -0
  28. package/dist/cli/src/commands/clean.js +98 -0
  29. package/dist/cli/src/commands/clean.js.map +1 -0
  30. package/dist/cli/src/commands/context.d.ts +1 -0
  31. package/dist/cli/src/commands/context.js +471 -0
  32. package/dist/cli/src/commands/context.js.map +1 -0
  33. package/dist/cli/src/commands/doctor.js +122 -12
  34. package/dist/cli/src/commands/doctor.js.map +1 -1
  35. package/dist/cli/src/commands/draft.d.ts +1 -0
  36. package/dist/cli/src/commands/draft.js +175 -0
  37. package/dist/cli/src/commands/draft.js.map +1 -0
  38. package/dist/cli/src/commands/gitAutomation.d.ts +1 -0
  39. package/dist/cli/src/commands/gitAutomation.js +378 -0
  40. package/dist/cli/src/commands/gitAutomation.js.map +1 -0
  41. package/dist/cli/src/commands/handoff.d.ts +22 -0
  42. package/dist/cli/src/commands/handoff.js +122 -0
  43. package/dist/cli/src/commands/handoff.js.map +1 -0
  44. package/dist/cli/src/commands/init.js +52 -1
  45. package/dist/cli/src/commands/init.js.map +1 -1
  46. package/dist/cli/src/commands/inspect.d.ts +23 -0
  47. package/dist/cli/src/commands/inspect.js +157 -0
  48. package/dist/cli/src/commands/inspect.js.map +1 -0
  49. package/dist/cli/src/commands/register.d.ts +1 -0
  50. package/dist/cli/src/commands/register.js +251 -0
  51. package/dist/cli/src/commands/register.js.map +1 -0
  52. package/dist/cli/src/commands/resume.d.ts +59 -0
  53. package/dist/cli/src/commands/resume.js +280 -0
  54. package/dist/cli/src/commands/resume.js.map +1 -0
  55. package/dist/cli/src/commands/shared.js +6 -2
  56. package/dist/cli/src/commands/shared.js.map +1 -1
  57. package/dist/cli/src/commands/summaries.d.ts +1 -0
  58. package/dist/cli/src/commands/summaries.js +77 -0
  59. package/dist/cli/src/commands/summaries.js.map +1 -0
  60. package/dist/cli/src/commands/summarize.d.ts +1 -0
  61. package/dist/cli/src/commands/summarize.js +316 -0
  62. package/dist/cli/src/commands/summarize.js.map +1 -0
  63. package/dist/cli/src/commands/sync.js +135 -12
  64. package/dist/cli/src/commands/sync.js.map +1 -1
  65. package/dist/cli/src/commands/validate.js +25 -1
  66. package/dist/cli/src/commands/validate.js.map +1 -1
  67. package/dist/cli/src/dev/verifyAgentE2E.d.ts +2 -0
  68. package/dist/cli/src/dev/verifyAgentE2E.js +391 -0
  69. package/dist/cli/src/dev/verifyAgentE2E.js.map +1 -0
  70. package/dist/cli/src/dev/verifyCleanCommand.d.ts +2 -0
  71. package/dist/cli/src/dev/verifyCleanCommand.js +338 -0
  72. package/dist/cli/src/dev/verifyCleanCommand.js.map +1 -0
  73. package/dist/cli/src/dev/verifyRuntimeSurface.js +4940 -54
  74. package/dist/cli/src/dev/verifyRuntimeSurface.js.map +1 -1
  75. package/dist/cli/src/dev/verifyWorkflowE2E.js +477 -45
  76. package/dist/cli/src/dev/verifyWorkflowE2E.js.map +1 -1
  77. package/dist/cli/src/index.js +189 -5
  78. package/dist/cli/src/index.js.map +1 -1
  79. package/dist/cli/src/report.d.ts +26 -0
  80. package/dist/cli/src/report.js +17 -0
  81. package/dist/cli/src/report.js.map +1 -0
  82. package/dist/core/src/artifacts/readiness.d.ts +7 -0
  83. package/dist/core/src/artifacts/readiness.js +240 -0
  84. package/dist/core/src/artifacts/readiness.js.map +1 -0
  85. package/dist/core/src/artifacts/registry.d.ts +9 -2
  86. package/dist/core/src/artifacts/registry.js +687 -60
  87. package/dist/core/src/artifacts/registry.js.map +1 -1
  88. package/dist/core/src/commands/registry.js +1425 -146
  89. package/dist/core/src/commands/registry.js.map +1 -1
  90. package/dist/core/src/contracts/index.d.ts +1 -1
  91. package/dist/core/src/fs/index.d.ts +24 -0
  92. package/dist/core/src/fs/index.js +48 -1
  93. package/dist/core/src/fs/index.js.map +1 -1
  94. package/dist/core/src/git/autonomousSimulator.d.ts +46 -0
  95. package/dist/core/src/git/autonomousSimulator.js +163 -0
  96. package/dist/core/src/git/autonomousSimulator.js.map +1 -0
  97. package/dist/core/src/git/branchIdentity.d.ts +19 -0
  98. package/dist/core/src/git/branchIdentity.js +75 -0
  99. package/dist/core/src/git/branchIdentity.js.map +1 -0
  100. package/dist/core/src/git/draftPrPilot.d.ts +47 -0
  101. package/dist/core/src/git/draftPrPilot.js +196 -0
  102. package/dist/core/src/git/draftPrPilot.js.map +1 -0
  103. package/dist/core/src/git/localEvidenceReader.d.ts +21 -0
  104. package/dist/core/src/git/localEvidenceReader.js +142 -0
  105. package/dist/core/src/git/localEvidenceReader.js.map +1 -0
  106. package/dist/core/src/git/localGitAutomation.d.ts +68 -0
  107. package/dist/core/src/git/localGitAutomation.js +470 -0
  108. package/dist/core/src/git/localGitAutomation.js.map +1 -0
  109. package/dist/core/src/git/mergeReadinessCheckpoint.d.ts +31 -0
  110. package/dist/core/src/git/mergeReadinessCheckpoint.js +110 -0
  111. package/dist/core/src/git/mergeReadinessCheckpoint.js.map +1 -0
  112. package/dist/core/src/git/prReadySummary.d.ts +16 -0
  113. package/dist/core/src/git/prReadySummary.js +144 -0
  114. package/dist/core/src/git/prReadySummary.js.map +1 -0
  115. package/dist/core/src/git/remoteReadonlyPlanner.d.ts +60 -0
  116. package/dist/core/src/git/remoteReadonlyPlanner.js +223 -0
  117. package/dist/core/src/git/remoteReadonlyPlanner.js.map +1 -0
  118. package/dist/core/src/onboarding/agentsGuide.d.ts +32 -0
  119. package/dist/core/src/onboarding/agentsGuide.js +164 -0
  120. package/dist/core/src/onboarding/agentsGuide.js.map +1 -0
  121. package/dist/core/src/validators/validateOpenWorkflow.js +1331 -15
  122. package/dist/core/src/validators/validateOpenWorkflow.js.map +1 -1
  123. package/dist/core/src/validators/validateRepositoryContracts.js +2327 -306
  124. package/dist/core/src/validators/validateRepositoryContracts.js.map +1 -1
  125. package/dist/core/src/workflow/cleanOpenWorkflow.d.ts +18 -0
  126. package/dist/core/src/workflow/cleanOpenWorkflow.js +124 -0
  127. package/dist/core/src/workflow/cleanOpenWorkflow.js.map +1 -0
  128. package/dist/core/src/workflow/doctorOpenWorkflow.d.ts +7 -0
  129. package/dist/core/src/workflow/doctorOpenWorkflow.js +26 -0
  130. package/dist/core/src/workflow/doctorOpenWorkflow.js.map +1 -0
  131. package/dist/core/src/workflow/initOpenWorkflow.d.ts +7 -0
  132. package/dist/core/src/workflow/initOpenWorkflow.js +96 -8
  133. package/dist/core/src/workflow/initOpenWorkflow.js.map +1 -1
  134. package/dist/core/src/workflow/planningQueueResume.d.ts +105 -0
  135. package/dist/core/src/workflow/planningQueueResume.js +596 -0
  136. package/dist/core/src/workflow/planningQueueResume.js.map +1 -0
  137. package/dist/core/src/workflow/readWorkflowConfig.d.ts +6 -0
  138. package/dist/core/src/workflow/readWorkflowConfig.js +28 -0
  139. package/dist/core/src/workflow/readWorkflowConfig.js.map +1 -0
  140. package/dist/core/src/workflow/summaryHealth.d.ts +60 -0
  141. package/dist/core/src/workflow/summaryHealth.js +713 -0
  142. package/dist/core/src/workflow/summaryHealth.js.map +1 -0
  143. package/dist/core/src/workflow/syncOpenWorkflow.d.ts +22 -0
  144. package/dist/core/src/workflow/syncOpenWorkflow.js +235 -0
  145. package/dist/core/src/workflow/syncOpenWorkflow.js.map +1 -0
  146. package/package.json +4 -2
  147. package/references/artifact-authoring-templates.md +14 -12
  148. package/references/artifact-instruction-envelope.md +133 -0
  149. package/references/coder-continuous-growth-loop.md +68 -0
  150. package/references/gh-operation-governance.md +114 -0
  151. package/references/git-automation-governance.md +324 -0
  152. package/references/git-version-control-governance.md +227 -0
  153. package/references/internal-coder-protocol.md +202 -0
  154. package/references/issue-governance.md +115 -0
  155. package/references/planning-artifact-contracts.md +595 -0
  156. package/references/planning-skill-runtime-exposure.md +159 -0
  157. package/references/proto-redesign-artifact-contracts.md +217 -0
  158. package/references/proto2html-artifact-contracts.md +113 -0
  159. package/references/skill-system-lifecycle.md +198 -0
  160. package/references/validation-trust-domains.md +286 -0
  161. package/references/workflow-blueprint-runtime-alignment.md +287 -0
  162. package/schemas/atom-tasks.schema.json +101 -0
  163. package/schemas/candidate-changes.schema.json +323 -0
  164. package/schemas/current-state.schema.json +113 -0
  165. package/schemas/html-prototype.schema.json +288 -0
  166. package/schemas/openworkflow-contract.schema.json +9 -1
  167. package/schemas/proto-prompt-pack.schema.json +1333 -0
  168. package/schemas/prototype-evidence.schema.json +684 -142
  169. package/schemas/selected-change.schema.json +104 -0
  170. package/schemas/validation-target.schema.json +187 -1
  171. package/schemas/validation.schema.json +187 -1
  172. package/schemas/vision-session.schema.json +151 -0
  173. package/skills/analyze-changes/SKILL.md +92 -0
  174. package/skills/analyze-changes/agents/openai.yaml +4 -0
  175. package/skills/analyze-changes/references/analysis-protocol.md +116 -0
  176. package/skills/build-proto-prompt/SKILL.md +125 -0
  177. package/skills/build-proto-prompt/references/output-boundary.md +54 -0
  178. package/skills/build-proto-prompt/references/prompt-pack-compiler-protocol.md +80 -0
  179. package/skills/build-prototype/SKILL.md +162 -38
  180. package/skills/build-prototype/agents/openai.yaml +2 -2
  181. package/skills/build-prototype/references/philosophy-engine.md +61 -0
  182. package/skills/build-prototype/references/strategic-prompt-pack-protocol.md +365 -0
  183. package/skills/build-prototype/references/vision2prompt/01_input_contract.md +84 -0
  184. package/skills/build-prototype/references/vision2prompt/02_vision_decomposition.md +108 -0
  185. package/skills/build-prototype/references/vision2prompt/03_strategy_hypothesis_generation.md +89 -0
  186. package/skills/build-prototype/references/vision2prompt/04_product_system_extraction.md +78 -0
  187. package/skills/build-prototype/references/vision2prompt/05_prototype_prompt_schema.md +189 -0
  188. package/skills/build-prototype/references/vision2prompt/06_output_templates.md +125 -0
  189. package/skills/build-prototype/references/vision2prompt/07_quality_rubric.md +171 -0
  190. package/skills/build-validation/SKILL.md +136 -54
  191. package/skills/build-validation/references/prototype-validation-target-rubric.md +35 -0
  192. package/skills/build-validation/references/return-to-vision-gate.md +32 -0
  193. package/skills/build-vision/SKILL.md +192 -0
  194. package/skills/build-vision/references/proto-readiness-rubric.md +48 -0
  195. package/skills/build-vision/references/vision-interview-protocol.md +48 -0
  196. package/skills/coder/SKILL.md +204 -0
  197. package/skills/decompose-to-changes/SKILL.md +176 -0
  198. package/skills/decompose-to-changes/agents/openai.yaml +4 -0
  199. package/skills/decompose-to-changes/references/decomposition-protocol.md +278 -0
  200. package/skills/prompt2proto/SKILL.md +157 -0
  201. package/skills/prompt2proto/agents/openai.yaml +4 -0
  202. package/skills/prompt2proto/references/00_role_philosophy_engine.md +96 -0
  203. package/skills/prompt2proto/references/01_input_contract.md +53 -0
  204. package/skills/prompt2proto/references/02_prompt_pack_readiness.md +50 -0
  205. package/skills/prompt2proto/references/03_visual_translation_workflow.md +64 -0
  206. package/skills/prompt2proto/references/04_output_contract.md +67 -0
  207. package/skills/prompt2proto/references/05_quality_rubric.md +46 -0
  208. package/skills/proto2html/SKILL.md +136 -0
  209. package/skills/proto2html/agents/openai.yaml +4 -0
  210. package/skills/proto2html/references/proto2html-protocol.md +115 -0
  211. package/skills/run-team/SKILL.md +4 -0
  212. package/skills/select-change/SKILL.md +200 -0
  213. package/skills/select-change/agents/openai.yaml +4 -0
  214. package/skills/select-change/references/selection-protocol.md +281 -0
  215. package/skills/tune-prototype/SKILL.md +121 -0
  216. package/skills/tune-prototype/agents/openai.yaml +4 -0
  217. package/skills/tune-prototype/references/refined-prompt-pack-protocol.md +161 -0
@@ -0,0 +1,171 @@
1
+ # 07 Quality Rubric
2
+
3
+ Use this reference before marking `prompt_text_manifest.status` as
4
+ `ready_for_image_generation`.
5
+
6
+ ## Dailin Workflow Mapping
7
+
8
+ This file is the OW-owned equivalent of dailin
9
+ `vision_to_strategic_prototype_prompt/reference/06_quality_rubric.md`.
10
+ It maps dailin's final quality check into OW's readiness gate for prompt text.
11
+
12
+ The dailin `OUTPUT_PROMPT.md` examples are the minimum passing benchmark for
13
+ paragraph density and generation usefulness. Passing means the prompt text is a
14
+ complete high-fidelity prototype-generation brief, not merely a valid YAML
15
+ record with present fields.
16
+
17
+ The senior product-manager perspective is also part of readiness. Passing
18
+ prompt text must show judgment: a product thesis, reason-to-exist,
19
+ differentiated product form, target user transformation, and design philosophy.
20
+ References and schema fields are tools, not proof that the prompt has taste or
21
+ strategic force.
22
+
23
+ ## Perspective And Product Judgment
24
+
25
+ Verify:
26
+
27
+ - Each direction has a product thesis, not just a screen list.
28
+ - Each direction names the target user transformation it is trying to make
29
+ visible.
30
+ - Each direction explains why its product form deserves to exist now.
31
+ - The prompt avoids reflexively choosing a dashboard, chatbot, card wall,
32
+ report screen, or SaaS shell unless that form is strategically justified.
33
+ - `pm_judgment` states what assumption the direction tests, what risk it
34
+ exposes, and why it should be generated first or later.
35
+ - The design philosophy is legible in the prompt: what the product should feel
36
+ like, what it refuses to become, and what user control it protects.
37
+
38
+ ## Strategic Differentiation
39
+
40
+ Verify:
41
+
42
+ - Each direction has a distinct strategic hypothesis.
43
+ - Each direction has a distinct product thesis or product-form point of view.
44
+ - Each direction changes product form, trigger, interaction model, emotional
45
+ driver, retention mechanism, validation metric, trust model, privacy model,
46
+ or main risk.
47
+ - Directions are not visual style variants.
48
+ - Scenario labels are not mistaken for strategic directions.
49
+ - The selected directions cover the most important uncertainty space.
50
+
51
+ ## Vision Alignment
52
+
53
+ Verify:
54
+
55
+ - Target user from the vision is preserved.
56
+ - Desired behavior change is explicit.
57
+ - Strongest success signal is explicit.
58
+ - Core differentiator appears in every direction.
59
+ - Future opportunities are not treated as first-version requirements.
60
+ - Non-goals become anti-goals in prompt text.
61
+ - Trust/privacy requirements appear as UI or interaction controls.
62
+
63
+ ## Prompt Executability
64
+
65
+ Verify:
66
+
67
+ - Product name is included.
68
+ - Product positioning is clear.
69
+ - Target user is concrete.
70
+ - Core product idea is stated.
71
+ - Required screens are listed.
72
+ - Every screen has concrete UI requirements.
73
+ - Every screen has meaningful state or an explicit reason it does not need one.
74
+ - Required data fields and example copy are present.
75
+ - Primary actions and system responses are present.
76
+ - AI/system behavior is specified when relevant.
77
+ - Negative prompts and anti-goals are explicit.
78
+ - Desired user feeling is clear.
79
+ - Acceptance criteria are screen-bound and checkable.
80
+ - Direction-level `prototype_prompt` text includes product context, target
81
+ user, journey, screens, interactions, system response, trust controls,
82
+ visual direction, anti-goals, desired user feeling, product thesis,
83
+ reason-to-exist, and user transformation.
84
+ - Screen-level `screen_prompts[].prompt` text is standalone enough to generate
85
+ the screen and includes purpose, components, state, concrete data or copy,
86
+ actions, system response, trust controls, negative constraints, and
87
+ acceptance criteria.
88
+
89
+ ## Product Specificity
90
+
91
+ Verify:
92
+
93
+ - `product_experience_model` names the product archetype and primary canvas.
94
+ - The artifact names domain objects, not just generic UI components.
95
+ - The screen_manifest includes selected objects, states, or workflow stages
96
+ when the product category requires them.
97
+ - The prompt contains realistic fields, values, labels, owners, timestamps,
98
+ copy, or metrics.
99
+
100
+ ## Trust And Safety
101
+
102
+ Verify:
103
+
104
+ - No manipulative guilt language.
105
+ - No fake human identity unless explicitly safe and required.
106
+ - No intrusive intimacy or overattachment mechanics.
107
+ - No empty praise as the main feedback mechanism.
108
+ - No overpromising real-world outcomes.
109
+ - User controls are visible where memory, personalization, automation, or
110
+ sensitive data are involved.
111
+ - Sensitive data defaults are conservative.
112
+ - Autonomous action is blocked when human approval is required.
113
+
114
+ ## Integrity And Readiness
115
+
116
+ Verify:
117
+
118
+ - `prompt_pack_integrity_gate.status` is `pass`.
119
+ - `prototype_reality_gate.status` is `pass`.
120
+ - `quality_rubric.prompt_paragraph_quality.status` is `pass` or equivalent
121
+ prompt paragraph quality evidence is present.
122
+ - `prompt_text_manifest.paragraph_quality_status` is `pass`.
123
+ - `prompt_text_manifest.paragraph_quality_dimensions` records the checked
124
+ dimensions for product context, target user, journey, screens/components,
125
+ interaction or system response, concrete content, trust or user control,
126
+ visual direction, anti-goals, desired user feeling, and perspective engine.
127
+ - `post_validate.status` is `pass` for multi-direction packs or `skipped` for
128
+ explicit single-direction packs.
129
+ - `prompt_text_manifest.direction_count` equals `directions.length`.
130
+ - `prompt_text_manifest.prompt_text_refs` resolve to source directions or
131
+ screen prompts.
132
+ - `image_generation.status` is `not_started` until all gates pass.
133
+
134
+ ## Common Failure Modes
135
+
136
+ - Strategy collapsed into UI style.
137
+ - Structural completeness without product judgment.
138
+ - Persona language such as "senior PM" appears, but the prompt still lacks a
139
+ product thesis, user transformation, or reason-to-exist.
140
+ - Prompt is too abstract for a design tool.
141
+ - Prompt is a short screen-state instruction instead of a full
142
+ prototype-generation brief.
143
+ - Vision non-goals are ignored.
144
+ - AI behavior is unspecified.
145
+ - Trust controls are described in prose but absent from UI.
146
+ - Markdown prompt is richer than YAML source.
147
+ - EVIDENCE references prompts that do not exist in the prompt pack.
148
+
149
+ ## Thin Prompt Failures
150
+
151
+ Fail prompt readiness even when YAML fields are present if any prompt paragraph
152
+ looks like these patterns:
153
+
154
+ ```text
155
+ Show the dashboard with the approval drawer open.
156
+ ```
157
+
158
+ ```text
159
+ Create a modern AI assistant screen for incident response.
160
+ ```
161
+
162
+ ```text
163
+ Design a beautiful analytics page with charts and recommendations.
164
+ ```
165
+
166
+ These prompts fail because they omit the strategic context, target user,
167
+ journey stage, concrete domain objects, user action, system response,
168
+ trust/control behavior, anti-goals, and desired user feeling needed for
169
+ dailin-grade image generation.
170
+
171
+ Revise before final if any required check fails.
@@ -1,81 +1,163 @@
1
1
  ---
2
2
  name: build-validation
3
- description: Create validation-first prioritization artifacts from a product vision or change idea. Use when the user asks what should be prioritized, what must be proven first, which feature is core versus supporting, or when a broad idea needs a prototype brief before /ow:change, /ow:team, or implementation work.
3
+ description: Compile a proto-ready vision into one prototype validation target. Use when the user invokes /ow:validation, asks what the prototype must prove first, or needs to turn product intent into an experiment brief before /ow:proto.
4
4
  ---
5
5
 
6
6
  # Build Validation
7
7
 
8
8
  ## Purpose
9
9
 
10
- Identify the smallest proof needed to make a vision credible before converting
11
- it into implementation scope. This skill ranks assumptions, not backlog tasks.
10
+ Turn proto-ready vision into a single prototype validation target.
12
11
 
13
- It answers:
12
+ This skill is the native source behavior for `/ow:validation`. It is not a
13
+ feature ranking helper, backlog planner, or prototype generator. It exists
14
+ between `/ow:vision` and `/ow:proto` to decide what the next prototype must
15
+ prove before prototype prompts are written.
14
16
 
15
- - Which feature is existential to the vision?
16
- - Which features support the core experience?
17
- - Which features are later, operational, or out of scope for validation?
18
- - What is the smallest prototype that can prove or disprove the core assumption?
19
- - What evidence decides whether to continue, pivot, stop, or gather more data?
17
+ `build-validation` acts as:
18
+
19
+ - assumption auditor
20
+ - experiment designer
21
+ - prototype target compiler
22
+
23
+ It should protect `/ow:proto` from generating attractive prototype directions
24
+ that do not reduce the most important product uncertainty.
20
25
 
21
26
  ## Inputs
22
27
 
23
- Read only the relevant upstream contracts:
28
+ Required:
29
+
30
+ - `.openworkflow/vision/VISION_CONTRACT.yaml`
31
+ - `.openworkflow/vision/VISION.md` or the active vision session summary
32
+
33
+ Optional:
34
+
35
+ - `.openworkflow/context/CONTEXT.md`
36
+ - `.openworkflow/context/CONTEXT_MAP.yaml`
37
+ - `.openworkflow/context/GLOSSARY.yaml`
38
+ - `.openworkflow/validation/VALIDATION_INDEX.yaml`
39
+ - `skills/build-validation/references/prototype-validation-target-rubric.md`
40
+ - `skills/build-validation/references/return-to-vision-gate.md`
41
+
42
+ Avoid loading prototype, spec, change, runtime, or implementation artifacts
43
+ unless the user explicitly asks to reconcile with historical evidence.
44
+
45
+ ## Core Job
46
+
47
+ Given a vision, answer:
48
+
49
+ - What is the central uncertainty that the next prototype must reduce?
50
+ - What user behavior would make the product thesis more credible?
51
+ - What prototype scene, journey, or interaction must be shown to observe that
52
+ behavior?
53
+ - What evidence would count as pass, revise, pivot, stop, or needs_more_evidence?
54
+ - What vision gaps make a valid validation target impossible?
55
+
56
+ If those answers are not available, return to `/ow:vision` instead of forcing a
57
+ weak validation target.
58
+
59
+ ## Vision Readiness Gate
24
60
 
25
- - `.codex/workflow/WORKFLOW_INDEX.yaml`
26
- - `.codex/workflow/CONTRACT_GRAPH.yaml`
27
- - `.codex/context/CONTEXT_MAP.yaml` when present and relevant
28
- - `.codex/vision/VISION_CONTRACT.yaml` or the user's product vision
29
- - `.codex/decisions/DECISION_INDEX.yaml` when decisions constrain the prototype
30
- - `.codex/spec/SPEC_INDEX.yaml` only for directly relevant binding constraints
61
+ Before writing validation artifacts, check that vision provides enough evidence
62
+ for:
31
63
 
32
- Avoid loading archives, unrelated specs, reviews, or runtime state unless the
33
- user asks for historical evidence.
64
+ - target user
65
+ - usage context
66
+ - current alternative
67
+ - desired behavior change
68
+ - core mechanism
69
+ - differentiator
70
+ - trust, privacy, safety, and user-control boundaries
71
+ - strongest success signal
72
+ - failure signals
73
+ - prototype direction seeds
74
+ - prompt constraints
34
75
 
35
- ## Output
76
+ When the missing information would cause `/ow:proto` to invent product strategy,
77
+ record the gap and hand back to `/ow:vision`.
36
78
 
37
- Write validation artifacts under:
79
+ ## Output Contract
38
80
 
39
- ```txt
40
- .codex/validation/<validation_id>/
41
- VALIDATION.yaml
42
- PROTOTYPE_BRIEF.md
43
- RESULT.md
44
- archive/
81
+ Write validation artifacts only when the target is coherent:
82
+
83
+ ```text
84
+ .openworkflow/validation/VALIDATION_INDEX.yaml
85
+ .openworkflow/validation/<id>/VALIDATION.yaml
86
+ .openworkflow/validation/<id>/NOTE.md
87
+ ```
88
+
89
+ The validation target should preserve:
90
+
91
+ ```yaml
92
+ core_question:
93
+ central_uncertainty:
94
+ hypothesis:
95
+ target_behavior:
96
+ prototype_scope:
97
+ include:
98
+ exclude:
99
+ prototype_experiment:
100
+ scenario:
101
+ must_show:
102
+ must_not_show:
103
+ observable_signals:
104
+ pass:
105
+ fail:
106
+ ambiguous:
107
+ decision_rules:
108
+ continue:
109
+ revise:
110
+ pivot:
111
+ stop:
112
+ needs_more_evidence:
113
+ vision_gaps:
45
114
  ```
46
115
 
47
- `RESULT.md` may remain a placeholder until a prototype is tested.
116
+ Until the artifact schema formally exposes every field, keep the same
117
+ information in the existing `core_question`, `critical_assumptions`,
118
+ `prototype_scope`, `acceptance`, and `NOTE.md` fields without losing the
119
+ experiment logic.
48
120
 
49
121
  ## Workflow
50
122
 
51
- 1. Restate the vision in one sentence.
52
- 2. Build a feature landscape:
53
- - `existential`: without this, the vision does not hold
54
- - `supporting`: makes the core feature useful
55
- - `later`: valuable after the core assumption is proven
56
- - `out_of_scope`: explicitly excluded from validation
57
- 3. Identify critical assumptions and rank the riskiest first.
58
- 4. Define one minimum prototype scope.
59
- 5. Define acceptance as evidence questions, not implementation completeness.
60
- 6. Initialize artifacts with `scripts/init_validation.py`.
61
- 7. Validate with `npm run validate` when the repository validator exists.
62
-
63
- ## Boundaries
64
-
65
- - Do not create full implementation tasks.
66
- - Do not write large product specs.
67
- - Do not solve authentication, persistence, deployment, billing, or admin work
68
- unless those are the existential assumption.
69
- - Do not treat feature count as progress.
70
- - Prefer a small prototype brief over a broad spec when uncertainty is high.
123
+ 1. Load current vision and current validation index, if any.
124
+ 2. Extract the candidate uncertainties from the vision.
125
+ 3. Rank uncertainties by existential risk, observability in prototype,
126
+ decision leverage, and cost of learning.
127
+ 4. Select exactly one central uncertainty for the next validation target.
128
+ 5. Define one minimum prototype experiment.
129
+ 6. Convert success and failure signals into observable evidence criteria.
130
+ 7. Define decision rules for continue, revise, pivot, stop, and
131
+ needs_more_evidence.
132
+ 8. Write validation artifacts only after the target is coherent.
71
133
 
72
- ## Handoff
134
+ ## Prototype Handoff
135
+
136
+ `/ow:proto` should be able to consume the validation target as an experiment
137
+ brief. It should not need to infer:
73
138
 
74
- If validation is planned, hand off to `/ow:prototype` or an implementation
75
- agent with the prototype brief only.
139
+ - which uncertainty matters most
140
+ - which screen or journey moments are required
141
+ - which user behavior is being observed
142
+ - which anti-goals and trust boundaries constrain the prototype
143
+ - what evidence changes the next decision
144
+
145
+ When validation is present, `/ow:proto` should treat it as the target of the
146
+ prototype prompt pack.
147
+
148
+ ## Forbidden Defaults
149
+
150
+ - Do not generate prototype prompts.
151
+ - Do not create prototype images or prototype evidence.
152
+ - Do not produce production specs, changes, tasks, or implementation plans.
153
+ - Do not turn supporting features into blockers for the central uncertainty.
154
+ - Do not select multiple unrelated validation targets in one artifact.
155
+ - Do not hide vision gaps by writing a polished but unsupported target.
156
+
157
+ ## Handoff
76
158
 
77
- If validation passes, feed `VALIDATION.yaml` and `RESULT.md` into
78
- `/ow:decision`, `/ow:spec`, or `/ow:change`.
159
+ Hand off to `/ow:proto` only when the validation target names a central
160
+ uncertainty, prototype scope, observable evidence, and decision rules.
79
161
 
80
- If validation fails, revise the vision or create a new validation contract
81
- before generating implementation tasks.
162
+ Hand back to `/ow:vision` when the target would require inventing product
163
+ strategy.
@@ -0,0 +1,35 @@
1
+ # Prototype Validation Target Rubric
2
+
3
+ A validation target is useful only if it helps `/ow:proto` design an experiment,
4
+ not just a polished interface.
5
+
6
+ ## Required Qualities
7
+
8
+ - Central uncertainty: one uncertainty that would materially change the product
9
+ direction if disproven.
10
+ - Target behavior: the user behavior or reaction the prototype must make
11
+ observable.
12
+ - Prototype boundary: the minimum scene, journey, states, and interactions that
13
+ must be shown.
14
+ - Evidence criteria: pass, fail, and ambiguous signals expressed as observable
15
+ prototype review evidence.
16
+ - Decision rules: how evidence maps to continue, revise, pivot, stop, or
17
+ needs_more_evidence.
18
+
19
+ ## Rejection Signs
20
+
21
+ - The target is a list of features.
22
+ - The target can be satisfied by making the UI attractive.
23
+ - The target needs production infrastructure to be meaningful.
24
+ - The target asks the prototype to prove several unrelated assumptions.
25
+ - The target omits what would count as failure.
26
+ - The target requires `/ow:proto` to invent product strategy.
27
+
28
+ ## Strong Target Shape
29
+
30
+ ```text
31
+ We need to learn whether [target user], in [context], would [target behavior]
32
+ because [core mechanism] solves [pain] better than [current alternative].
33
+ The prototype must show [must-show moments] and must avoid [anti-goals].
34
+ Pass if [observable signal]. Fail if [observable signal].
35
+ ```
@@ -0,0 +1,32 @@
1
+ # Return-To-Vision Gate
2
+
3
+ Validation should not compensate for weak vision. It should identify when the
4
+ next useful action is more vision discovery.
5
+
6
+ Return to `/ow:vision` when any of these are missing or conflicted:
7
+
8
+ - target user
9
+ - usage context
10
+ - desired behavior change
11
+ - core mechanism
12
+ - differentiator
13
+ - trust or privacy boundary
14
+ - strongest success signal
15
+ - failure signal
16
+ - prototype direction seed
17
+ - prompt constraint
18
+
19
+ ## Agent Rule
20
+
21
+ If the missing information would force `/ow:proto` to invent strategy, stop
22
+ validation and ask the next vision question instead of writing a validation
23
+ target.
24
+
25
+ ## Partial Validation Exception
26
+
27
+ A partial validation target is acceptable only when:
28
+
29
+ - the missing vision area is explicitly named in `vision_gaps`
30
+ - the prototype can still observe one central uncertainty without inventing the
31
+ missing strategy
32
+ - the user understands the validation target is intentionally partial
@@ -0,0 +1,192 @@
1
+ ---
2
+ name: build-vision
3
+ description: Conduct deep product vision discovery without eager artifact writes, then compile proto-ready vision artifacts only after the user confirms readiness. Use when the user invokes /ow:vision, wants to clarify a product idea, or needs a vision that can drive high-quality prototype prompts.
4
+ ---
5
+
6
+ # Build Vision
7
+
8
+ ## Purpose
9
+
10
+ Turn messy product intent into a proto-ready vision contract.
11
+
12
+ This skill is the native source behavior for `/ow:vision`. It treats vision as
13
+ the highest-leverage discovery stage because every downstream artifact depends
14
+ on it. If the vision is thin or wrong, validation, prototype prompts, generated
15
+ prototypes, tuning, specs, and implementation all become expensive work against
16
+ weak intent.
17
+
18
+ `build-vision` acts as:
19
+
20
+ - product partner
21
+ - requirements interrogator
22
+ - intent compiler
23
+
24
+ It should make the human interview feel fluid while still producing durable,
25
+ auditable artifacts at meaningful checkpoints.
26
+
27
+ ## Inputs
28
+
29
+ Required, one of:
30
+
31
+ - direct user product idea, opportunity, or broad goal
32
+ - existing `.openworkflow/vision/VISION_CONTRACT.yaml`
33
+ - existing `.openworkflow/vision/VISION.md`
34
+ - existing `.openworkflow/vision/sessions/<id>/VISION_SESSION.yaml`
35
+
36
+ Optional:
37
+
38
+ - `.openworkflow/CURRENT_STATE.yaml`
39
+ - `.openworkflow/context/CONTEXT.md`
40
+ - `.openworkflow/context/CONTEXT_MAP.yaml`
41
+ - `.openworkflow/context/GLOSSARY.yaml`
42
+ - `docs/DISCOVER_LOOP_UPGRATE_PLAN.md`
43
+ - `skills/build-vision/references/vision-interview-protocol.md`
44
+ - `skills/build-vision/references/proto-readiness-rubric.md`
45
+ - reference product notes, constraints, screenshots, or prior discovery notes
46
+
47
+ Avoid loading validation, prototype, spec, change, runtime, or implementation
48
+ history unless the user's current vision question explicitly depends on it.
49
+
50
+ ## Interaction Modes
51
+
52
+ ### Interview Mode
53
+
54
+ Default mode. Ask one focused question at a time and do not write durable
55
+ `.openworkflow/vision/**` artifacts after every answer.
56
+
57
+ Use conversation context as temporary working memory. Preserve flow, challenge
58
+ weak answers, and keep exploring until the product intent is strong enough to
59
+ compile.
60
+
61
+ ### Checkpoint Mode
62
+
63
+ Write a lightweight checkpoint only when:
64
+
65
+ - the user explicitly asks to record progress
66
+ - a topic closes
67
+ - the user needs to pause
68
+ - the session contains a load-bearing ambiguity that should not be lost
69
+ - a long interview reaches a natural review point
70
+
71
+ Checkpoint mode is not final vision compile.
72
+
73
+ ### Compile Mode
74
+
75
+ Compile durable artifacts only when:
76
+
77
+ - mandatory discovery dimensions have enough evidence
78
+ - proto-readiness is sufficient
79
+ - unresolved blockers are explicit
80
+ - the user confirms that the interview can stop
81
+
82
+ Expected durable outputs:
83
+
84
+ ```text
85
+ .openworkflow/vision/VISION.md
86
+ .openworkflow/vision/VISION_CONTRACT.yaml
87
+ .openworkflow/vision/sessions/<id>/VISION_SESSION.yaml
88
+ .openworkflow/vision/sessions/<id>/NOTE.md
89
+ ```
90
+
91
+ Context files may be updated only when context has stabilized.
92
+
93
+ ## Discovery Coverage
94
+
95
+ Before compile, cover:
96
+
97
+ - target user and beneficiary
98
+ - usage context
99
+ - current alternative
100
+ - pain and motivation
101
+ - desired behavior change
102
+ - core product mechanism
103
+ - core differentiator
104
+ - emotional value
105
+ - functional value
106
+ - strongest success signal
107
+ - failure signals
108
+ - trust, privacy, safety, and user-control boundaries
109
+ - explicit non-goals
110
+ - future opportunities that must remain deferred
111
+ - validation target
112
+
113
+ Do not treat this as a fixed questionnaire. Follow the user's answers and
114
+ continue deeper when an answer exposes ambiguity, contradiction, or leverage.
115
+
116
+ ## Proto-Readiness Gate
117
+
118
+ `VISION.md` is ready only when `/ow:proto` can use it to generate high-quality
119
+ strategic prototype prompt packs without inventing the core product strategy.
120
+
121
+ Before compile, verify that `/ow:proto` could derive:
122
+
123
+ - 3-5 strategically distinct prototype directions
124
+ - target user, behavior change, mechanism, differentiator, and boundary
125
+ conditions
126
+ - complete screen and journey requirements
127
+ - AI/system behavior when AI is part of the product
128
+ - trust, privacy, safety, and user-control constraints
129
+ - anti-goals converted into prompt constraints
130
+ - strongest success and failure signals
131
+ - a clear validation target
132
+
133
+ If these cannot be derived, continue interviewing or record explicit blockers.
134
+
135
+ ## Artifact Guidance
136
+
137
+ When compiling, preserve:
138
+
139
+ ```yaml
140
+ strategic_core:
141
+ target_user:
142
+ context:
143
+ current_alternative:
144
+ pain:
145
+ desired_behavior_change:
146
+ core_mechanism:
147
+ core_differentiator:
148
+ strongest_success_signal:
149
+ failure_signals:
150
+
151
+ product_system_seed:
152
+ product_thesis:
153
+ primary_loop:
154
+ interaction_model:
155
+ feature_system:
156
+ emotional_value:
157
+ functional_value:
158
+ trust_boundary:
159
+ privacy_boundary:
160
+ anti_goals:
161
+ future_opportunities:
162
+
163
+ proto_readiness:
164
+ status: missing|thin|ready|blocked
165
+ missing_for_proto:
166
+ prototype_direction_seeds:
167
+ prompt_constraints:
168
+ validation_target:
169
+ downstream_notes:
170
+ ```
171
+
172
+ Use coverage statuses such as `missing`, `thin`, `solid`, and `conflicted` when
173
+ a dimension is not ready.
174
+
175
+ ## Forbidden Defaults
176
+
177
+ - Do not write durable vision files after every user answer.
178
+ - Do not compile final vision artifacts after a fixed small number of questions.
179
+ - Do not create validation, prototype, spec, change, or runtime artifacts.
180
+ - Do not create prototype prompts from `/ow:vision`; hand off to `/ow:proto`.
181
+ - Do not hide thin or conflicted answers as polished product truth.
182
+ - Do not preserve auditability by destroying conversation flow.
183
+
184
+ ## Handoff
185
+
186
+ Hand off to `/ow:validation` only after compile mode has produced proto-ready
187
+ vision artifacts or after the user explicitly asks for validation against a
188
+ known partial vision.
189
+
190
+ If the user asks for prototype prompts directly, first check proto-readiness.
191
+ When ready, hand off to `/ow:proto`; when thin, continue the vision interview.
192
+