@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,64 @@
|
|
|
1
|
+
# 03 Visual Translation Workflow
|
|
2
|
+
|
|
3
|
+
Use this reference to translate ready prompt-pack content into UI/UX prototype
|
|
4
|
+
instructions.
|
|
5
|
+
|
|
6
|
+
## Translation Steps
|
|
7
|
+
|
|
8
|
+
1. Restate the product decision being tested: product thesis, user
|
|
9
|
+
transformation, validation risk, and success signal.
|
|
10
|
+
2. Select the product shell and primary canvas from the prompt pack; do not
|
|
11
|
+
replace it with a generic dashboard or chatbot unless justified there.
|
|
12
|
+
3. Build the screen system: stable layout, navigation, object anatomy,
|
|
13
|
+
repeated panels, action zones, and trust surfaces.
|
|
14
|
+
4. Apply the build-prototype philosophy engine before screen-by-screen work:
|
|
15
|
+
Chief PM identifies the user decision, product risk, domain object, and
|
|
16
|
+
evidence value; Principal UI/UX identifies the hierarchy, density, scan
|
|
17
|
+
path, affordances, and UI/UX credibility bar.
|
|
18
|
+
5. For each screen, define:
|
|
19
|
+
- user goal and journey stage;
|
|
20
|
+
- visible domain objects;
|
|
21
|
+
- hierarchy from primary decision to supporting detail;
|
|
22
|
+
- component anatomy;
|
|
23
|
+
- state and selected object;
|
|
24
|
+
- user actions;
|
|
25
|
+
- system response;
|
|
26
|
+
- trust, privacy, approval, or audit controls;
|
|
27
|
+
- concrete sample data and copy;
|
|
28
|
+
- negative visual constraints.
|
|
29
|
+
6. Calibrate density:
|
|
30
|
+
- visible when it changes the user's next decision;
|
|
31
|
+
- grouped when related fields need comparison;
|
|
32
|
+
- collapsed when secondary but still inspectable;
|
|
33
|
+
- delayed when it belongs after user intent;
|
|
34
|
+
- drilled into when it would overload the main canvas.
|
|
35
|
+
7. Write provider-agnostic prototype instructions that preserve prompt-pack
|
|
36
|
+
strategy and add UI/UX specificity.
|
|
37
|
+
|
|
38
|
+
## Density Calibration Rules
|
|
39
|
+
|
|
40
|
+
- Operational tools may be dense when the user compares objects, owners,
|
|
41
|
+
statuses, risk, and next actions repeatedly.
|
|
42
|
+
- Consumer or emotionally sensitive tools should reduce density when clarity,
|
|
43
|
+
confidence, or trust is the main behavior change.
|
|
44
|
+
- High-risk actions need visible consequences and approval affordances.
|
|
45
|
+
- AI outputs need provenance, editability, and user override when they affect
|
|
46
|
+
real decisions.
|
|
47
|
+
- Mobile or constrained canvases require stronger prioritization; do not simply
|
|
48
|
+
shrink desktop density.
|
|
49
|
+
|
|
50
|
+
## Output Pattern
|
|
51
|
+
|
|
52
|
+
For every screen instruction, include:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
Screen: [name and id]
|
|
56
|
+
Product reason: [why this screen exists]
|
|
57
|
+
User decision: [what the user must understand or choose]
|
|
58
|
+
Layout and hierarchy: [primary canvas, panels, density]
|
|
59
|
+
Visible content: [objects, metrics, copy, labels]
|
|
60
|
+
States and interactions: [current state, action, system response]
|
|
61
|
+
Trust controls: [approval, audit, privacy, provenance, override]
|
|
62
|
+
Negative constraints: [what must not appear]
|
|
63
|
+
Acceptance: [what a reviewer must be able to inspect]
|
|
64
|
+
```
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# 04 Output Contract
|
|
2
|
+
|
|
3
|
+
Use this reference when writing prompt2proto evidence or translation artifacts.
|
|
4
|
+
|
|
5
|
+
## Translation Plan
|
|
6
|
+
|
|
7
|
+
`PROMPT2PROTO_TRANSLATION_PLAN.md` should include:
|
|
8
|
+
|
|
9
|
+
- source prompt pack path and readiness status;
|
|
10
|
+
- role-engine summary;
|
|
11
|
+
- selected directions and screen ids;
|
|
12
|
+
- prototype system constants;
|
|
13
|
+
- per-screen UI/UX translation instructions;
|
|
14
|
+
- density decisions;
|
|
15
|
+
- trust and approval surfaces;
|
|
16
|
+
- negative constraints;
|
|
17
|
+
- known limits and next handoff.
|
|
18
|
+
|
|
19
|
+
## Evidence YAML
|
|
20
|
+
|
|
21
|
+
`PROMPT2PROTO_EVIDENCE.yaml` should be provider-agnostic:
|
|
22
|
+
|
|
23
|
+
```yaml
|
|
24
|
+
schema_version: 0.1.0
|
|
25
|
+
artifact_type: prompt2proto_evidence
|
|
26
|
+
status: ready_for_generation|blocked
|
|
27
|
+
source_prompt_pack: path
|
|
28
|
+
role_engine:
|
|
29
|
+
chief_pm: applied
|
|
30
|
+
principal_ui_ux: applied
|
|
31
|
+
readiness:
|
|
32
|
+
status: pass|blocked
|
|
33
|
+
blockers: []
|
|
34
|
+
translation_outputs:
|
|
35
|
+
plan: PROMPT2PROTO_TRANSLATION_PLAN.md
|
|
36
|
+
selected_directions: []
|
|
37
|
+
selected_screen_ids: []
|
|
38
|
+
prototype_system:
|
|
39
|
+
coherence_contract_status: present|missing|not_required
|
|
40
|
+
stable_elements: []
|
|
41
|
+
density_calibration:
|
|
42
|
+
visible: []
|
|
43
|
+
grouped: []
|
|
44
|
+
collapsed: []
|
|
45
|
+
delayed: []
|
|
46
|
+
handoff:
|
|
47
|
+
next_allowed_stage: provider_generation|prompt_pack_repair|review_blocked
|
|
48
|
+
forbidden_claims: []
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Future Image Metadata
|
|
52
|
+
|
|
53
|
+
When a later queue authorizes provider generation, every generated image must
|
|
54
|
+
record:
|
|
55
|
+
|
|
56
|
+
- `image_id`
|
|
57
|
+
- `direction_id`
|
|
58
|
+
- `prompt_id`
|
|
59
|
+
- `screen_name`
|
|
60
|
+
- `path`
|
|
61
|
+
- `source_prompt_ref`
|
|
62
|
+
- `generated_at`
|
|
63
|
+
- `generator`
|
|
64
|
+
- `generation_status`
|
|
65
|
+
- `review_status`
|
|
66
|
+
|
|
67
|
+
Images without metadata are not valid prototype evidence.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# 05 Quality Rubric
|
|
2
|
+
|
|
3
|
+
Use this reference before handoff.
|
|
4
|
+
|
|
5
|
+
## Pass Criteria
|
|
6
|
+
|
|
7
|
+
Pass only when:
|
|
8
|
+
|
|
9
|
+
- prompt-pack readiness gates pass or blockers are explicitly recorded;
|
|
10
|
+
- translation preserves product thesis, target user transformation, primary
|
|
11
|
+
loop, trust boundaries, and non-goals;
|
|
12
|
+
- screen coherence is consumed from the prompt pack or blocked when missing;
|
|
13
|
+
- density decisions are justified by industry, role, risk, screen size, task
|
|
14
|
+
frequency, and user attention;
|
|
15
|
+
- every screen instruction names user decision, layout hierarchy, visible
|
|
16
|
+
content, state behavior, system response, trust controls, negative
|
|
17
|
+
constraints, and acceptance checks;
|
|
18
|
+
- output clearly states that provider generation, human visual review, visual
|
|
19
|
+
parity, proto2html, storyboard, motion, specs, changes, and runtime work are
|
|
20
|
+
out of scope unless separately authorized.
|
|
21
|
+
|
|
22
|
+
## Failures
|
|
23
|
+
|
|
24
|
+
Fail when:
|
|
25
|
+
|
|
26
|
+
- the output invents product strategy;
|
|
27
|
+
- density is treated as more text rather than design prioritization;
|
|
28
|
+
- multi-screen consistency is repaired downstream instead of sourced from the
|
|
29
|
+
prompt pack;
|
|
30
|
+
- the prototype looks like a generic dashboard, card wall, report, chatbot, or
|
|
31
|
+
poster without strategic justification;
|
|
32
|
+
- trust controls are mentioned but not placed in UI;
|
|
33
|
+
- generated image quality or visual parity is claimed without evidence.
|
|
34
|
+
|
|
35
|
+
## Final Check
|
|
36
|
+
|
|
37
|
+
Before completing, search the output for unsupported claims:
|
|
38
|
+
|
|
39
|
+
- "generated image quality passed"
|
|
40
|
+
- "visual parity passed"
|
|
41
|
+
- "human reviewed"
|
|
42
|
+
- "ready for proto2html"
|
|
43
|
+
- "storyboard complete"
|
|
44
|
+
- "motion model"
|
|
45
|
+
|
|
46
|
+
Remove or block those claims unless a later authorized artifact proves them.
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: proto2html
|
|
3
|
+
description: Reconstruct an accepted benchmark prototype image or screen group into a single-file HTML prototype with fidelity evidence. Use when the user wants the post-proto `/ow:proto2html` source behavior, benchmark-to-HTML reconstruction, screenshot comparison, or fidelity-report handoff before html2spec or production work.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Proto2html
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Reconstruct an accepted benchmark prototype image or accepted screen group into
|
|
11
|
+
one local single-file HTML prototype with fidelity evidence.
|
|
12
|
+
|
|
13
|
+
Proto2html is a reconstruction step. It should preserve the accepted benchmark
|
|
14
|
+
as faithfully as practical. It must not explore new product directions, generate
|
|
15
|
+
new prototype images, create specs, or start production implementation.
|
|
16
|
+
|
|
17
|
+
## Inputs
|
|
18
|
+
|
|
19
|
+
Required:
|
|
20
|
+
|
|
21
|
+
- accepted benchmark prototype image, accepted generated image set, accepted
|
|
22
|
+
screen group, or accepted refined prompt output
|
|
23
|
+
- source prototype evidence or review notes that explain why the benchmark was
|
|
24
|
+
accepted
|
|
25
|
+
|
|
26
|
+
Optional:
|
|
27
|
+
|
|
28
|
+
- `references/proto2html-artifact-contracts.md`
|
|
29
|
+
- `schemas/html-prototype.schema.json`
|
|
30
|
+
- source `PROTO_PROMPT_PACK.yaml` or `REFINED_PROTO_PROMPT_PACK.yaml`
|
|
31
|
+
- decision record or review evidence with accepted/rejected elements
|
|
32
|
+
- target viewport constraints, browser constraints, language, or accessibility
|
|
33
|
+
requirements
|
|
34
|
+
|
|
35
|
+
Do not load unrelated specs, changes, runtime state, generated adapters, build
|
|
36
|
+
plans, or production implementation history unless the reconstruction question
|
|
37
|
+
explicitly depends on them.
|
|
38
|
+
|
|
39
|
+
## Output
|
|
40
|
+
|
|
41
|
+
Write artifacts under the active HTML prototype or change path chosen by the
|
|
42
|
+
workflow. The source artifact should match `schemas/html-prototype.schema.json`.
|
|
43
|
+
|
|
44
|
+
Expected files:
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
HTML_PROTOTYPE.yaml
|
|
48
|
+
prototype.html
|
|
49
|
+
FIDELITY_REPORT.yaml
|
|
50
|
+
screenshots/
|
|
51
|
+
SUMMARY.yaml
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
For source-level dogfood before runtime exposure, the same evidence may live
|
|
55
|
+
under the selected change folder.
|
|
56
|
+
|
|
57
|
+
## Workflow
|
|
58
|
+
|
|
59
|
+
1. Resolve benchmark input. Require accepted image or screen-group evidence.
|
|
60
|
+
If acceptance is missing, stop and return to `/ow:proto` or `/ow:tune`.
|
|
61
|
+
2. Load prompt lineage and review notes only as needed to preserve intent.
|
|
62
|
+
3. Define reconstruction scope: screens, states, viewport targets, include
|
|
63
|
+
rules, and explicit exclusions.
|
|
64
|
+
4. Implement one single-file `prototype.html` focused on visual and interaction
|
|
65
|
+
fidelity to the accepted benchmark.
|
|
66
|
+
5. Avoid production architecture: no app scaffolding, backend, persistence,
|
|
67
|
+
auth, deployment config, package installs, or broad component systems.
|
|
68
|
+
6. Render the HTML locally when practical and capture screenshot evidence.
|
|
69
|
+
7. Compare screenshots to benchmark refs and write fidelity gaps.
|
|
70
|
+
8. Write `HTML_PROTOTYPE.yaml` and `FIDELITY_REPORT.yaml`.
|
|
71
|
+
9. Run repository validation when available.
|
|
72
|
+
|
|
73
|
+
## Reconstruction Rules
|
|
74
|
+
|
|
75
|
+
- Preserve benchmark information architecture, hierarchy, layout rhythm,
|
|
76
|
+
component vocabulary, copy tone, states, and trust controls.
|
|
77
|
+
- Use static or hardcoded sample data from the benchmark unless the user
|
|
78
|
+
explicitly asks for lightweight interaction.
|
|
79
|
+
- Implement only interactions visible or implied by the benchmark review.
|
|
80
|
+
- Prefer direct HTML/CSS/JS in one file for reviewability.
|
|
81
|
+
- Keep code readable enough for later spec extraction, but do not turn it into
|
|
82
|
+
production architecture.
|
|
83
|
+
- Record deviations as fidelity gaps instead of silently changing the product.
|
|
84
|
+
|
|
85
|
+
## Evidence Rules
|
|
86
|
+
|
|
87
|
+
`HTML_PROTOTYPE.yaml` should capture:
|
|
88
|
+
|
|
89
|
+
- source prototype evidence and accepted decision refs
|
|
90
|
+
- benchmark image or screen refs
|
|
91
|
+
- reconstruction include/exclude scope
|
|
92
|
+
- `html_artifact.path`, `html_artifact.type: single_file_html`, and entrypoint
|
|
93
|
+
- render targets
|
|
94
|
+
- fidelity benchmark refs, screenshot refs, matched elements, gaps, and browser
|
|
95
|
+
checks
|
|
96
|
+
- known limits
|
|
97
|
+
- result and handoff
|
|
98
|
+
|
|
99
|
+
`FIDELITY_REPORT.yaml` should be optimized for review:
|
|
100
|
+
|
|
101
|
+
- what matches the benchmark
|
|
102
|
+
- what differs
|
|
103
|
+
- severity of each gap
|
|
104
|
+
- whether gaps block `/ow:html2spec`
|
|
105
|
+
- recommended next command
|
|
106
|
+
|
|
107
|
+
## Quality Gate
|
|
108
|
+
|
|
109
|
+
Revise before finishing if:
|
|
110
|
+
|
|
111
|
+
- no accepted benchmark evidence is named
|
|
112
|
+
- the HTML introduces a new product direction
|
|
113
|
+
- key benchmark hierarchy, copy, states, trust controls, or layout are missing
|
|
114
|
+
- fidelity gaps are hidden or too vague to act on
|
|
115
|
+
- the artifact becomes a production app or spec instead of a reconstruction
|
|
116
|
+
- screenshots or review notes are absent when local rendering was practical
|
|
117
|
+
|
|
118
|
+
## Forbidden Defaults
|
|
119
|
+
|
|
120
|
+
- Do not generate new prototype images.
|
|
121
|
+
- Do not tune visual direction; return to `tune-prototype` for that.
|
|
122
|
+
- Do not create `TECH_SPEC`, `FRONTEND_SPEC`, `BACKEND_SPEC`, `API_SPEC`, or
|
|
123
|
+
build plans.
|
|
124
|
+
- Do not add `/ow:proto2html` runtime command surfaces.
|
|
125
|
+
- Do not edit generated `.agents/` or `.openworkflow/` surfaces.
|
|
126
|
+
- Do not add auth, persistence, deployment, package scaffolding, or backend
|
|
127
|
+
behavior.
|
|
128
|
+
|
|
129
|
+
## Handoff
|
|
130
|
+
|
|
131
|
+
Expected outcomes:
|
|
132
|
+
|
|
133
|
+
- `accepted`: hand off to `/ow:html2spec`
|
|
134
|
+
- `needs_reconstruction`: run another proto2html pass
|
|
135
|
+
- `return_to_tune`: benchmark needs visual refinement first
|
|
136
|
+
- `blocked`: accepted benchmark or rendering evidence is missing
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Proto2html"
|
|
3
|
+
short_description: "Reconstruct accepted prototype benchmarks into single-file HTML"
|
|
4
|
+
default_prompt: "Use /ow:proto2html source behavior to reconstruct an accepted benchmark prototype image or screen group into a single-file HTML prototype with fidelity evidence."
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Proto2html Protocol
|
|
2
|
+
|
|
3
|
+
Use this reference when converting accepted benchmark prototype evidence into a
|
|
4
|
+
single-file HTML reconstruction.
|
|
5
|
+
|
|
6
|
+
## Input Resolution
|
|
7
|
+
|
|
8
|
+
Require one accepted benchmark source:
|
|
9
|
+
|
|
10
|
+
- accepted benchmark image path
|
|
11
|
+
- accepted generated image set with selected benchmark id
|
|
12
|
+
- accepted screen group
|
|
13
|
+
- accepted refined prompt pack with generated image refs
|
|
14
|
+
|
|
15
|
+
Also capture:
|
|
16
|
+
|
|
17
|
+
- source prototype evidence ref
|
|
18
|
+
- prompt pack ref when available
|
|
19
|
+
- decision or review evidence that accepted the benchmark
|
|
20
|
+
- include and exclude reconstruction scope
|
|
21
|
+
- viewport targets
|
|
22
|
+
|
|
23
|
+
If acceptance is unclear, stop. Do not infer acceptance from the mere existence
|
|
24
|
+
of images or prompts.
|
|
25
|
+
|
|
26
|
+
## Reconstruction Scope
|
|
27
|
+
|
|
28
|
+
Before writing HTML, state:
|
|
29
|
+
|
|
30
|
+
- screens and states to reconstruct
|
|
31
|
+
- viewport targets
|
|
32
|
+
- interaction states that matter for fidelity
|
|
33
|
+
- benchmark elements that must be preserved
|
|
34
|
+
- elements explicitly excluded
|
|
35
|
+
- assumptions caused by missing evidence
|
|
36
|
+
|
|
37
|
+
Scope should be smaller than a product app. It should be enough to reconstruct
|
|
38
|
+
the accepted benchmark for review and later spec extraction.
|
|
39
|
+
|
|
40
|
+
## Single-File HTML Rules
|
|
41
|
+
|
|
42
|
+
Prefer one `prototype.html` with inline CSS and small inline JavaScript only
|
|
43
|
+
when needed for benchmark-visible interaction states.
|
|
44
|
+
|
|
45
|
+
Allowed:
|
|
46
|
+
|
|
47
|
+
- static hardcoded content
|
|
48
|
+
- local image refs
|
|
49
|
+
- CSS responsive rules for named render targets
|
|
50
|
+
- minimal JS for visible states, toggles, tabs, or prototype-only transitions
|
|
51
|
+
|
|
52
|
+
Avoid:
|
|
53
|
+
|
|
54
|
+
- package managers
|
|
55
|
+
- framework scaffolds
|
|
56
|
+
- backend or API calls
|
|
57
|
+
- persistence
|
|
58
|
+
- auth
|
|
59
|
+
- deployment files
|
|
60
|
+
- production component architecture
|
|
61
|
+
|
|
62
|
+
## Fidelity Report
|
|
63
|
+
|
|
64
|
+
Capture fidelity evidence in a compact YAML report:
|
|
65
|
+
|
|
66
|
+
```yaml
|
|
67
|
+
schema_version: 0.1.0
|
|
68
|
+
artifact_type: fidelity_report
|
|
69
|
+
benchmark_refs: []
|
|
70
|
+
screenshot_refs: []
|
|
71
|
+
matched_elements: []
|
|
72
|
+
gaps:
|
|
73
|
+
- gap_id: FID001
|
|
74
|
+
severity: low|medium|high|blocking
|
|
75
|
+
description: ""
|
|
76
|
+
disposition: accept|repair|return_to_tune
|
|
77
|
+
browser_checks: []
|
|
78
|
+
known_limits: []
|
|
79
|
+
recommendation: accepted|needs_reconstruction|return_to_tune|blocked
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Gaps should be concrete enough for the next agent to repair or accept without
|
|
83
|
+
re-reading all raw evidence.
|
|
84
|
+
|
|
85
|
+
## HTML Prototype Artifact
|
|
86
|
+
|
|
87
|
+
`HTML_PROTOTYPE.yaml` should follow
|
|
88
|
+
`schemas/html-prototype.schema.json` and include:
|
|
89
|
+
|
|
90
|
+
- `artifact_type: html_prototype`
|
|
91
|
+
- `source_prototype`
|
|
92
|
+
- `benchmark`
|
|
93
|
+
- `reconstruction_scope`
|
|
94
|
+
- `html_artifact`
|
|
95
|
+
- `render_targets`
|
|
96
|
+
- `fidelity`
|
|
97
|
+
- `known_limits`
|
|
98
|
+
- `result`
|
|
99
|
+
- `handoff.next_command`
|
|
100
|
+
|
|
101
|
+
Use `result: accepted` only when fidelity gaps do not block spec extraction.
|
|
102
|
+
The normal accepted handoff is `/ow:html2spec`.
|
|
103
|
+
|
|
104
|
+
## Quality Gate
|
|
105
|
+
|
|
106
|
+
Revise before finishing if:
|
|
107
|
+
|
|
108
|
+
- benchmark evidence is not explicitly accepted
|
|
109
|
+
- HTML output is not single-file
|
|
110
|
+
- visual hierarchy diverges from the benchmark without a recorded reason
|
|
111
|
+
- important benchmark copy or trust controls are missing
|
|
112
|
+
- viewport targets are undefined
|
|
113
|
+
- screenshot or browser evidence is missing when rendering was practical
|
|
114
|
+
- fidelity gaps are absent, generic, or unactionable
|
|
115
|
+
- output drifts into engineering spec or production implementation
|
package/skills/run-team/SKILL.md
CHANGED
|
@@ -55,10 +55,14 @@ On `/ow:team CONTENT`, do not start coding immediately.
|
|
|
55
55
|
- Immediately record the returned `agent_id` in `AGENT_ROSTER.yaml` and the task entry.
|
|
56
56
|
- Keep persistent implementation agents mounted across related atom tasks and issue-fix loops.
|
|
57
57
|
- Use event-driven review, security, QA, and git-release agents asynchronously where ownership is disjoint.
|
|
58
|
+
- For source-edit work, apply coder governance before completion: owner/file
|
|
59
|
+
map, RED evidence when applicable, GREEN evidence after edits,
|
|
60
|
+
post-write self-check, validation ladder, and evidence binding.
|
|
58
61
|
|
|
59
62
|
8. Checkpoint.
|
|
60
63
|
- Update runtime state after every real state transition.
|
|
61
64
|
- Run required checks.
|
|
65
|
+
- Record coder evidence status for source-edit work.
|
|
62
66
|
- Commit coherent runtime/implementation/QA slices, or record why a checkpoint is deferred.
|
|
63
67
|
|
|
64
68
|
## Runtime Rules
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: select-change
|
|
3
|
+
description: Select, inspect, or prepare one implementable OpenWorkflow candidate change from CANDIDATE_CHANGES.yaml and create SELECTED_CHANGE.yaml, ATOM_TASKS.yaml, and IMPLEMENTATION_BRIEF.md. Use when a candidate queue exists and the user wants the next focused change prepared for implementation, or when a specific candidate id needs readiness review before selection.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Select Change
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Choose one candidate change and turn it into implementation-ready planning
|
|
11
|
+
artifacts. This skill prepares the next change; it does not execute the
|
|
12
|
+
implementation.
|
|
13
|
+
|
|
14
|
+
By default, operate on one active queue and rank candidates inside that queue.
|
|
15
|
+
Use cross-queue arbitration only when the user provides multiple queues, points
|
|
16
|
+
to a cross-queue `CHANGE_ANALYSIS.yaml`, or asks which queue and candidate
|
|
17
|
+
should go next.
|
|
18
|
+
|
|
19
|
+
SC is not only a "mark selected" command. In a single queue it owns
|
|
20
|
+
prioritization, readiness review, risk gating, selection, and atomization.
|
|
21
|
+
|
|
22
|
+
## Feat Boundary
|
|
23
|
+
|
|
24
|
+
The source `CANDIDATE_CHANGES.yaml` is the feat boundary. A selected candidate
|
|
25
|
+
is a commit-sized slice inside that feat, not a new top-level feat. By default,
|
|
26
|
+
write selection artifacts under the existing queue folder:
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
changes/<plan_id>/<candidate-id>-<slug>/
|
|
30
|
+
SELECTED_CHANGE.yaml
|
|
31
|
+
ATOM_TASKS.yaml
|
|
32
|
+
IMPLEMENTATION_BRIEF.md
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Create a new top-level `changes/<id>/` only when the user explicitly starts a
|
|
36
|
+
new decomposition queue or the existing queue is no longer the owning feat.
|
|
37
|
+
|
|
38
|
+
## Git Boundary
|
|
39
|
+
|
|
40
|
+
Use `git status --short --branch` as a read-only guard before selection.
|
|
41
|
+
|
|
42
|
+
If the queue has `queue_policy.branch_boundary`, compare it with the current
|
|
43
|
+
branch. When they differ, stop before creating selection artifacts unless the
|
|
44
|
+
user explicitly says this is a planning-only exception or asks to proceed on the
|
|
45
|
+
current branch. Do not switch branches from this skill.
|
|
46
|
+
Also compare feat identity: a branch boundary that names another plan id is not
|
|
47
|
+
the owning feat branch just because it equals the current branch. Proceed only
|
|
48
|
+
when the queue records an explicit `branch_identity_exception` for temporary
|
|
49
|
+
continuation, or stop and surface the mismatch.
|
|
50
|
+
|
|
51
|
+
If the working tree is dirty, inspect whether the changes are only the current
|
|
52
|
+
selection operation. If the dirty tree appears to contain an uncommitted
|
|
53
|
+
previous selected change or unrelated implementation work, stop and recommend
|
|
54
|
+
committing, stashing, or resolving that work before selecting another
|
|
55
|
+
candidate. Do not commit, stash, reset, restore, or clean from this skill.
|
|
56
|
+
|
|
57
|
+
## Read First
|
|
58
|
+
|
|
59
|
+
Read these only as needed:
|
|
60
|
+
|
|
61
|
+
- `references/planning-artifact-contracts.md`
|
|
62
|
+
- `skills/select-change/references/selection-protocol.md`
|
|
63
|
+
- The target `CANDIDATE_CHANGES.yaml`
|
|
64
|
+
- The matching `CANDIDATE_CHANGES.md` only as a readable aid
|
|
65
|
+
- `CHANGE_ANALYSIS.yaml` only when consuming a cross-queue recommendation
|
|
66
|
+
|
|
67
|
+
## Workflow
|
|
68
|
+
|
|
69
|
+
1. Run `git status --short --branch` and note current branch and dirty paths.
|
|
70
|
+
2. Read `CANDIDATE_CHANGES.yaml` as the source of truth.
|
|
71
|
+
3. Check `queue_policy.branch_boundary` when present. Stop on branch mismatch
|
|
72
|
+
unless the user has approved a planning-only exception.
|
|
73
|
+
If the branch boundary names another plan id, require an explicit temporary
|
|
74
|
+
continuation exception before treating the branch as acceptable.
|
|
75
|
+
4. Check dirty-tree state. Stop if uncommitted work would contaminate a new
|
|
76
|
+
selected change or blur the one-change-one-commit boundary.
|
|
77
|
+
5. If the user names a candidate id, perform targeted readiness review for
|
|
78
|
+
that id before considering the rest of the queue.
|
|
79
|
+
6. If the user provides multiple queues or a cross-queue `CHANGE_ANALYSIS.yaml`,
|
|
80
|
+
run the cross-queue arbitration path before choosing a target queue.
|
|
81
|
+
7. Filter candidates to `ready` first. If none are ready, inspect `candidate`
|
|
82
|
+
entries and report the blockers instead of forcing a selection.
|
|
83
|
+
8. Rank the current queue directly:
|
|
84
|
+
- prefer `next_recommended_candidate_id` when it points to a ready candidate
|
|
85
|
+
and dependencies still hold
|
|
86
|
+
- otherwise prefer dependency-satisfied candidates that best match
|
|
87
|
+
`selection_policy`
|
|
88
|
+
- then prefer unlock value, focused owned paths, realistic validation,
|
|
89
|
+
lower risk, and user recency
|
|
90
|
+
9. Choose exactly one candidate from the owning queue.
|
|
91
|
+
10. If the candidate is `risk: high`, stop before selection unless the user has
|
|
92
|
+
explicitly approved a concrete decision option from a high-risk decision
|
|
93
|
+
report.
|
|
94
|
+
11. Create a candidate-specific folder inside the current feat folder, usually
|
|
95
|
+
`changes/<plan_id>/<candidate-id>-<slug>/`.
|
|
96
|
+
12. Write `SELECTED_CHANGE.yaml`, `ATOM_TASKS.yaml`, and
|
|
97
|
+
`IMPLEMENTATION_BRIEF.md`.
|
|
98
|
+
13. Update the candidate queue:
|
|
99
|
+
- set the selected candidate to `selected`
|
|
100
|
+
- add `selection.selected_change_id`
|
|
101
|
+
- add concise `selection.reason`
|
|
102
|
+
- append an `operations` entry for the selection
|
|
103
|
+
- leave all other candidates in place
|
|
104
|
+
14. Refresh `CANDIDATE_CHANGES.md` from the YAML facts.
|
|
105
|
+
15. Stop before implementation unless the user explicitly asks to continue.
|
|
106
|
+
|
|
107
|
+
## Cross-Queue Arbitration
|
|
108
|
+
|
|
109
|
+
Cross-queue arbitration is explicit and exceptional. Do not discover every
|
|
110
|
+
queue in the repo unless the user asks for a global comparison or provides an
|
|
111
|
+
existing cross-queue `CHANGE_ANALYSIS.yaml`.
|
|
112
|
+
|
|
113
|
+
Do not invoke `analyze-changes` for a normal single-queue selection. The
|
|
114
|
+
single-queue path above is the default and should be sufficient for
|
|
115
|
+
prioritizing candidates inside one `CANDIDATE_CHANGES.yaml`.
|
|
116
|
+
|
|
117
|
+
When arbitration is active:
|
|
118
|
+
|
|
119
|
+
- Prefer an existing `CHANGE_ANALYSIS.yaml` produced by `analyze-changes`.
|
|
120
|
+
- Confirm the recommended `target_plan_id` and `target_candidate_id` still
|
|
121
|
+
exist, are not done, and satisfy dependencies.
|
|
122
|
+
- Re-run branch-boundary, dirty-tree, and high-risk gates against the target
|
|
123
|
+
queue before writing selection artifacts.
|
|
124
|
+
- Keep selection artifacts inside the target queue folder, not inside the
|
|
125
|
+
analysis folder.
|
|
126
|
+
- Record rejected alternatives in `SELECTED_CHANGE.yaml` with `plan_id`,
|
|
127
|
+
`candidate_id`, and a concise reason.
|
|
128
|
+
- If no candidate is clearly safe to select, stop and recommend queue
|
|
129
|
+
maintenance, a high-risk report, or a fresh `analyze-changes` run.
|
|
130
|
+
|
|
131
|
+
Use a separate meta-selection artifact only when the user's requested output is
|
|
132
|
+
itself an analysis or governance decision. Normal implementation selection
|
|
133
|
+
should select one candidate inside the target queue.
|
|
134
|
+
|
|
135
|
+
## Targeted Review
|
|
136
|
+
|
|
137
|
+
When reviewing a specific candidate id, report:
|
|
138
|
+
|
|
139
|
+
- current status and readiness
|
|
140
|
+
- dependencies and whether each is satisfied
|
|
141
|
+
- owned paths and likely conflict surfaces
|
|
142
|
+
- validation commands
|
|
143
|
+
- acceptance gaps
|
|
144
|
+
- high-risk decision report status when `risk: high`
|
|
145
|
+
- blockers or reasons it should not be selected
|
|
146
|
+
- exact queue maintenance operation needed, if any
|
|
147
|
+
|
|
148
|
+
Do not select a candidate during targeted review unless the user asks to select
|
|
149
|
+
or the current workflow explicitly requires selection.
|
|
150
|
+
|
|
151
|
+
## High-Risk Stop Gate
|
|
152
|
+
|
|
153
|
+
For any `risk: high` candidate, do not create `SELECTED_CHANGE.yaml`,
|
|
154
|
+
`ATOM_TASKS.yaml`, or `IMPLEMENTATION_BRIEF.md` unless the user explicitly
|
|
155
|
+
approves a concrete decision option from a `HIGH_RISK_DECISION_REPORT.md`.
|
|
156
|
+
|
|
157
|
+
When a high-risk candidate is next:
|
|
158
|
+
|
|
159
|
+
- Report the candidate id, title, status, and why it is high risk.
|
|
160
|
+
- Reference the existing `HIGH_RISK_DECISION_REPORT.md` when present.
|
|
161
|
+
- If no report exists, instruct `decompose-to-changes` or queue maintenance to
|
|
162
|
+
create one under the owning queue folder.
|
|
163
|
+
- Name the decision options and recommended path from the report when known.
|
|
164
|
+
- State the exact resume condition: user approval of a concrete option.
|
|
165
|
+
- Leave the candidate status unchanged unless the user asks to block, defer, or
|
|
166
|
+
supersede it.
|
|
167
|
+
|
|
168
|
+
If the user explicitly approves a high-risk option, the selection reason must
|
|
169
|
+
name the approved option and the guardrails from the report. Keep atom tasks
|
|
170
|
+
narrow enough to match that approved option.
|
|
171
|
+
|
|
172
|
+
## Atom Task Rules
|
|
173
|
+
|
|
174
|
+
- Create tasks that map to coherent owned paths.
|
|
175
|
+
- Keep each task small enough for one focused implementation pass.
|
|
176
|
+
- Use `read`, `edit`, `document`, and `verify` task types.
|
|
177
|
+
- Include `done_when` criteria that an implementation agent can verify.
|
|
178
|
+
- Add forbidden paths in `SELECTED_CHANGE.yaml` when generated or unrelated
|
|
179
|
+
surfaces should not be touched.
|
|
180
|
+
- For source-edit candidates, include coder preflight expectations: source
|
|
181
|
+
truth, generated surfaces, owned paths, forbidden paths, RED/GREEN evidence
|
|
182
|
+
when applicable, post-write self-check, validation ladder, and evidence
|
|
183
|
+
binding.
|
|
184
|
+
|
|
185
|
+
## Selection Boundaries
|
|
186
|
+
|
|
187
|
+
- Do not delete or renumber candidate ids.
|
|
188
|
+
- Do not silently select a blocked candidate.
|
|
189
|
+
- Do not silently select a `risk: high` candidate.
|
|
190
|
+
- Do not select on the wrong branch without explicit planning-only approval.
|
|
191
|
+
- Do not select when unrelated dirty-tree work would contaminate the commit boundary.
|
|
192
|
+
- Do not implement the selected change.
|
|
193
|
+
- Do not create commits, switch branches, stash, reset, restore, or clean.
|
|
194
|
+
- Do not mark the candidate `done`; implementation completion owns that update.
|
|
195
|
+
- Do not widen scope beyond the selected candidate.
|
|
196
|
+
- Do not hand-edit generated `.agents/` or `.openworkflow/` surfaces unless the
|
|
197
|
+
selected candidate explicitly owns those paths and the user accepts that
|
|
198
|
+
scope.
|
|
199
|
+
- Do not treat coder governance as a replacement for selection. Selection owns
|
|
200
|
+
the implementation boundary; coder governance constrains later source edits.
|