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