@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.
- package/dist/adapters/codex/src/cleanCodexAdapter.js +4 -1
- package/dist/adapters/codex/src/cleanCodexAdapter.js.map +1 -1
- package/dist/adapters/codex/src/constants.d.ts +1 -0
- package/dist/adapters/codex/src/constants.js +2 -0
- package/dist/adapters/codex/src/constants.js.map +1 -0
- package/dist/adapters/codex/src/generateCommands.js +14 -9
- package/dist/adapters/codex/src/generateCommands.js.map +1 -1
- package/dist/adapters/codex/src/generateSkills.js +13 -0
- package/dist/adapters/codex/src/generateSkills.js.map +1 -1
- package/dist/adapters/codex/src/generatedFiles.js +1 -1
- package/dist/adapters/codex/src/manifest.js +11 -2
- package/dist/adapters/codex/src/manifest.js.map +1 -1
- package/dist/adapters/codex/src/templates.d.ts +0 -1
- package/dist/adapters/codex/src/templates.js +0 -1
- package/dist/adapters/codex/src/templates.js.map +1 -1
- package/dist/adapters/src/registry.d.ts +20 -0
- package/dist/adapters/src/registry.js +81 -0
- package/dist/adapters/src/registry.js.map +1 -0
- package/dist/cli/src/commands/brief.d.ts +46 -0
- package/dist/cli/src/commands/brief.js +294 -0
- package/dist/cli/src/commands/brief.js.map +1 -0
- package/dist/cli/src/commands/check.d.ts +42 -0
- package/dist/cli/src/commands/check.js +326 -0
- package/dist/cli/src/commands/check.js.map +1 -0
- package/dist/cli/src/commands/clean.js +46 -1
- package/dist/cli/src/commands/clean.js.map +1 -1
- package/dist/cli/src/commands/context.d.ts +1 -0
- package/dist/cli/src/commands/context.js +471 -0
- package/dist/cli/src/commands/context.js.map +1 -0
- package/dist/cli/src/commands/doctor.js +122 -12
- package/dist/cli/src/commands/doctor.js.map +1 -1
- package/dist/cli/src/commands/draft.d.ts +1 -0
- package/dist/cli/src/commands/draft.js +175 -0
- package/dist/cli/src/commands/draft.js.map +1 -0
- package/dist/cli/src/commands/gitAutomation.d.ts +1 -0
- package/dist/cli/src/commands/gitAutomation.js +378 -0
- package/dist/cli/src/commands/gitAutomation.js.map +1 -0
- package/dist/cli/src/commands/handoff.d.ts +22 -0
- package/dist/cli/src/commands/handoff.js +122 -0
- package/dist/cli/src/commands/handoff.js.map +1 -0
- package/dist/cli/src/commands/init.js +52 -1
- package/dist/cli/src/commands/init.js.map +1 -1
- package/dist/cli/src/commands/inspect.d.ts +23 -0
- package/dist/cli/src/commands/inspect.js +157 -0
- package/dist/cli/src/commands/inspect.js.map +1 -0
- package/dist/cli/src/commands/register.d.ts +1 -0
- package/dist/cli/src/commands/register.js +251 -0
- package/dist/cli/src/commands/register.js.map +1 -0
- package/dist/cli/src/commands/resume.d.ts +59 -0
- package/dist/cli/src/commands/resume.js +280 -0
- package/dist/cli/src/commands/resume.js.map +1 -0
- package/dist/cli/src/commands/shared.js +6 -2
- package/dist/cli/src/commands/shared.js.map +1 -1
- package/dist/cli/src/commands/summaries.d.ts +1 -0
- package/dist/cli/src/commands/summaries.js +77 -0
- package/dist/cli/src/commands/summaries.js.map +1 -0
- package/dist/cli/src/commands/summarize.d.ts +1 -0
- package/dist/cli/src/commands/summarize.js +316 -0
- package/dist/cli/src/commands/summarize.js.map +1 -0
- package/dist/cli/src/commands/sync.js +135 -12
- package/dist/cli/src/commands/sync.js.map +1 -1
- package/dist/cli/src/commands/validate.js +25 -1
- package/dist/cli/src/commands/validate.js.map +1 -1
- package/dist/cli/src/dev/verifyAgentE2E.d.ts +2 -0
- package/dist/cli/src/dev/verifyAgentE2E.js +391 -0
- package/dist/cli/src/dev/verifyAgentE2E.js.map +1 -0
- package/dist/cli/src/dev/verifyCleanCommand.js +213 -2
- package/dist/cli/src/dev/verifyCleanCommand.js.map +1 -1
- package/dist/cli/src/dev/verifyRuntimeSurface.js +4940 -54
- package/dist/cli/src/dev/verifyRuntimeSurface.js.map +1 -1
- package/dist/cli/src/dev/verifyWorkflowE2E.js +477 -45
- package/dist/cli/src/dev/verifyWorkflowE2E.js.map +1 -1
- package/dist/cli/src/index.js +184 -6
- package/dist/cli/src/index.js.map +1 -1
- package/dist/cli/src/report.d.ts +26 -0
- package/dist/cli/src/report.js +17 -0
- package/dist/cli/src/report.js.map +1 -0
- package/dist/core/src/artifacts/readiness.d.ts +7 -0
- package/dist/core/src/artifacts/readiness.js +240 -0
- package/dist/core/src/artifacts/readiness.js.map +1 -0
- package/dist/core/src/artifacts/registry.d.ts +9 -2
- package/dist/core/src/artifacts/registry.js +687 -60
- package/dist/core/src/artifacts/registry.js.map +1 -1
- package/dist/core/src/commands/registry.js +1425 -146
- package/dist/core/src/commands/registry.js.map +1 -1
- package/dist/core/src/contracts/index.d.ts +1 -1
- package/dist/core/src/fs/index.d.ts +24 -0
- package/dist/core/src/fs/index.js +48 -1
- package/dist/core/src/fs/index.js.map +1 -1
- package/dist/core/src/git/autonomousSimulator.d.ts +46 -0
- package/dist/core/src/git/autonomousSimulator.js +163 -0
- package/dist/core/src/git/autonomousSimulator.js.map +1 -0
- package/dist/core/src/git/branchIdentity.d.ts +19 -0
- package/dist/core/src/git/branchIdentity.js +75 -0
- package/dist/core/src/git/branchIdentity.js.map +1 -0
- package/dist/core/src/git/draftPrPilot.d.ts +47 -0
- package/dist/core/src/git/draftPrPilot.js +196 -0
- package/dist/core/src/git/draftPrPilot.js.map +1 -0
- package/dist/core/src/git/localEvidenceReader.d.ts +21 -0
- package/dist/core/src/git/localEvidenceReader.js +142 -0
- package/dist/core/src/git/localEvidenceReader.js.map +1 -0
- package/dist/core/src/git/localGitAutomation.d.ts +68 -0
- package/dist/core/src/git/localGitAutomation.js +470 -0
- package/dist/core/src/git/localGitAutomation.js.map +1 -0
- package/dist/core/src/git/mergeReadinessCheckpoint.d.ts +31 -0
- package/dist/core/src/git/mergeReadinessCheckpoint.js +110 -0
- package/dist/core/src/git/mergeReadinessCheckpoint.js.map +1 -0
- package/dist/core/src/git/prReadySummary.d.ts +16 -0
- package/dist/core/src/git/prReadySummary.js +144 -0
- package/dist/core/src/git/prReadySummary.js.map +1 -0
- package/dist/core/src/git/remoteReadonlyPlanner.d.ts +60 -0
- package/dist/core/src/git/remoteReadonlyPlanner.js +223 -0
- package/dist/core/src/git/remoteReadonlyPlanner.js.map +1 -0
- package/dist/core/src/onboarding/agentsGuide.d.ts +32 -0
- package/dist/core/src/onboarding/agentsGuide.js +164 -0
- package/dist/core/src/onboarding/agentsGuide.js.map +1 -0
- package/dist/core/src/validators/validateOpenWorkflow.js +1331 -15
- package/dist/core/src/validators/validateOpenWorkflow.js.map +1 -1
- package/dist/core/src/validators/validateRepositoryContracts.js +2321 -306
- package/dist/core/src/validators/validateRepositoryContracts.js.map +1 -1
- package/dist/core/src/workflow/cleanOpenWorkflow.d.ts +2 -0
- package/dist/core/src/workflow/cleanOpenWorkflow.js +97 -8
- package/dist/core/src/workflow/cleanOpenWorkflow.js.map +1 -1
- package/dist/core/src/workflow/doctorOpenWorkflow.d.ts +7 -0
- package/dist/core/src/workflow/doctorOpenWorkflow.js +26 -0
- package/dist/core/src/workflow/doctorOpenWorkflow.js.map +1 -0
- package/dist/core/src/workflow/initOpenWorkflow.d.ts +7 -0
- package/dist/core/src/workflow/initOpenWorkflow.js +96 -8
- package/dist/core/src/workflow/initOpenWorkflow.js.map +1 -1
- package/dist/core/src/workflow/planningQueueResume.d.ts +105 -0
- package/dist/core/src/workflow/planningQueueResume.js +596 -0
- package/dist/core/src/workflow/planningQueueResume.js.map +1 -0
- package/dist/core/src/workflow/readWorkflowConfig.d.ts +6 -0
- package/dist/core/src/workflow/readWorkflowConfig.js +28 -0
- package/dist/core/src/workflow/readWorkflowConfig.js.map +1 -0
- package/dist/core/src/workflow/summaryHealth.d.ts +60 -0
- package/dist/core/src/workflow/summaryHealth.js +713 -0
- package/dist/core/src/workflow/summaryHealth.js.map +1 -0
- package/dist/core/src/workflow/syncOpenWorkflow.d.ts +22 -0
- package/dist/core/src/workflow/syncOpenWorkflow.js +235 -0
- package/dist/core/src/workflow/syncOpenWorkflow.js.map +1 -0
- package/package.json +2 -1
- package/references/artifact-authoring-templates.md +14 -12
- package/references/artifact-instruction-envelope.md +133 -0
- package/references/coder-continuous-growth-loop.md +68 -0
- package/references/gh-operation-governance.md +114 -0
- package/references/git-automation-governance.md +324 -0
- package/references/git-version-control-governance.md +227 -0
- package/references/internal-coder-protocol.md +202 -0
- package/references/issue-governance.md +115 -0
- package/references/planning-artifact-contracts.md +595 -0
- package/references/planning-skill-runtime-exposure.md +159 -0
- package/references/proto-redesign-artifact-contracts.md +217 -0
- package/references/proto2html-artifact-contracts.md +113 -0
- package/references/skill-system-lifecycle.md +198 -0
- package/references/validation-trust-domains.md +286 -0
- package/references/workflow-blueprint-runtime-alignment.md +287 -0
- package/schemas/atom-tasks.schema.json +101 -0
- package/schemas/candidate-changes.schema.json +323 -0
- package/schemas/current-state.schema.json +113 -0
- package/schemas/html-prototype.schema.json +288 -0
- package/schemas/openworkflow-contract.schema.json +9 -1
- package/schemas/proto-prompt-pack.schema.json +1333 -0
- package/schemas/prototype-evidence.schema.json +684 -142
- package/schemas/selected-change.schema.json +104 -0
- package/schemas/validation-target.schema.json +187 -1
- package/schemas/validation.schema.json +187 -1
- package/schemas/vision-session.schema.json +151 -0
- package/skills/analyze-changes/SKILL.md +92 -0
- package/skills/analyze-changes/agents/openai.yaml +4 -0
- package/skills/analyze-changes/references/analysis-protocol.md +116 -0
- package/skills/build-proto-prompt/SKILL.md +125 -0
- package/skills/build-proto-prompt/references/output-boundary.md +54 -0
- package/skills/build-proto-prompt/references/prompt-pack-compiler-protocol.md +80 -0
- package/skills/build-prototype/SKILL.md +162 -38
- package/skills/build-prototype/agents/openai.yaml +2 -2
- package/skills/build-prototype/references/philosophy-engine.md +61 -0
- package/skills/build-prototype/references/strategic-prompt-pack-protocol.md +365 -0
- package/skills/build-prototype/references/vision2prompt/01_input_contract.md +84 -0
- package/skills/build-prototype/references/vision2prompt/02_vision_decomposition.md +108 -0
- package/skills/build-prototype/references/vision2prompt/03_strategy_hypothesis_generation.md +89 -0
- package/skills/build-prototype/references/vision2prompt/04_product_system_extraction.md +78 -0
- package/skills/build-prototype/references/vision2prompt/05_prototype_prompt_schema.md +189 -0
- package/skills/build-prototype/references/vision2prompt/06_output_templates.md +125 -0
- package/skills/build-prototype/references/vision2prompt/07_quality_rubric.md +171 -0
- package/skills/build-validation/SKILL.md +136 -54
- package/skills/build-validation/references/prototype-validation-target-rubric.md +35 -0
- package/skills/build-validation/references/return-to-vision-gate.md +32 -0
- package/skills/build-vision/SKILL.md +192 -0
- package/skills/build-vision/references/proto-readiness-rubric.md +48 -0
- package/skills/build-vision/references/vision-interview-protocol.md +48 -0
- package/skills/coder/SKILL.md +204 -0
- package/skills/decompose-to-changes/SKILL.md +176 -0
- package/skills/decompose-to-changes/agents/openai.yaml +4 -0
- package/skills/decompose-to-changes/references/decomposition-protocol.md +278 -0
- package/skills/prompt2proto/SKILL.md +157 -0
- package/skills/prompt2proto/agents/openai.yaml +4 -0
- package/skills/prompt2proto/references/00_role_philosophy_engine.md +96 -0
- package/skills/prompt2proto/references/01_input_contract.md +53 -0
- package/skills/prompt2proto/references/02_prompt_pack_readiness.md +50 -0
- package/skills/prompt2proto/references/03_visual_translation_workflow.md +64 -0
- package/skills/prompt2proto/references/04_output_contract.md +67 -0
- package/skills/prompt2proto/references/05_quality_rubric.md +46 -0
- package/skills/proto2html/SKILL.md +136 -0
- package/skills/proto2html/agents/openai.yaml +4 -0
- package/skills/proto2html/references/proto2html-protocol.md +115 -0
- package/skills/run-team/SKILL.md +4 -0
- package/skills/select-change/SKILL.md +200 -0
- package/skills/select-change/agents/openai.yaml +4 -0
- package/skills/select-change/references/selection-protocol.md +281 -0
- package/skills/tune-prototype/SKILL.md +121 -0
- package/skills/tune-prototype/agents/openai.yaml +4 -0
- 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
|
+
```
|