@wefter/opencode 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/CHANGELOG.md +43 -25
  2. package/LICENSE +21 -21
  3. package/README.md +128 -125
  4. package/bin/wefter.js +8 -8
  5. package/docs/ARCHITECTURE.md +75 -75
  6. package/docs/INSTALLATION.md +56 -47
  7. package/docs/ROADMAP.md +48 -0
  8. package/docs/SAFETY_MODEL.md +18 -17
  9. package/docs/SELF_AUDIT.md +37 -35
  10. package/docs/WORKFLOWS.md +17 -15
  11. package/package.json +45 -45
  12. package/schemas/documentation-audit-profile.schema.json +55 -55
  13. package/schemas/install-manifest.schema.json +42 -0
  14. package/schemas/product-shaping-config.schema.json +63 -63
  15. package/schemas/product-shaping-contract.schema.json +204 -204
  16. package/schemas/product-shaping-profile.schema.json +39 -39
  17. package/schemas/product-shaping-run-manifest.schema.json +103 -103
  18. package/schemas/run-manifest.schema.json +14 -14
  19. package/schemas/wefter.config.schema.json +62 -62
  20. package/schemas/work-unit-config.schema.json +51 -44
  21. package/schemas/work-unit-profile.schema.json +38 -38
  22. package/schemas/work-unit-review-result.schema.json +13 -13
  23. package/schemas/workflow-manifest.schema.json +31 -21
  24. package/src/cli/main.js +2937 -2646
  25. package/src/workflows/documentation-audit/README.md +37 -37
  26. package/src/workflows/documentation-audit/templates/README.md.tmpl +47 -47
  27. package/src/workflows/documentation-audit/templates/opencode/agent/wefter-doc-audit-consolidator.md.tmpl +27 -27
  28. package/src/workflows/documentation-audit/templates/opencode/agent/wefter-doc-audit-orchestrator.md.tmpl +69 -65
  29. package/src/workflows/documentation-audit/templates/opencode/agent/wefter-doc-audit-profile-builder.md.tmpl +58 -58
  30. package/src/workflows/documentation-audit/templates/opencode/agent/wefter-doc-audit-validator.md.tmpl +26 -26
  31. package/src/workflows/documentation-audit/templates/opencode/agent/wefter-doc-auditor.md.tmpl +31 -28
  32. package/src/workflows/documentation-audit/templates/opencode/skills/documentation-audit/SKILL.md.tmpl +39 -38
  33. package/src/workflows/documentation-audit/templates/prompts/auditor-prompt.md +98 -97
  34. package/src/workflows/documentation-audit/templates/prompts/consolidator-prompt.md +84 -84
  35. package/src/workflows/documentation-audit/templates/prompts/validator-prompt.md +92 -92
  36. package/src/workflows/documentation-audit/workflow.json +24 -24
  37. package/src/workflows/documentation-repair/README.md +11 -11
  38. package/src/workflows/documentation-repair/templates/opencode/agent/wefter-doc-repair-orchestrator.md.tmpl +33 -33
  39. package/src/workflows/documentation-repair/templates/opencode/agent/wefter-doc-repair-planner.md.tmpl +17 -17
  40. package/src/workflows/documentation-repair/templates/opencode/agent/wefter-doc-repair-reviewer.md.tmpl +17 -17
  41. package/src/workflows/documentation-repair/templates/opencode/agent/wefter-doc-repairer.md.tmpl +14 -14
  42. package/src/workflows/documentation-repair/templates/opencode/skills/documentation-repair/SKILL.md.tmpl +17 -17
  43. package/src/workflows/documentation-repair/templates/prompts/repair-apply-prompt.md +43 -43
  44. package/src/workflows/documentation-repair/templates/prompts/repair-plan-prompt.md +73 -73
  45. package/src/workflows/documentation-repair/templates/prompts/repair-review-prompt.md +47 -47
  46. package/src/workflows/documentation-repair/workflow.json +10 -10
  47. package/src/workflows/product-shaping/README.md +1245 -1245
  48. package/src/workflows/product-shaping/compatibility.md +33 -33
  49. package/src/workflows/product-shaping/contracts/product-spec-contract.json +250 -250
  50. package/src/workflows/product-shaping/templates/default-config.json +34 -34
  51. package/src/workflows/product-shaping/templates/default-profile.json +48 -48
  52. package/src/workflows/product-shaping/templates/documentation-audit/workflow-self-audit-auditor-prompt.md +117 -116
  53. package/src/workflows/product-shaping/templates/documentation-audit-profile.json +80 -80
  54. package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-auditor.md.tmpl +22 -22
  55. package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-domain-modeler.md.tmpl +31 -31
  56. package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-intake-analyst.md.tmpl +31 -31
  57. package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-orchestrator.md.tmpl +48 -48
  58. package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-reference-researcher.md.tmpl +29 -29
  59. package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-release-planner.md.tmpl +34 -34
  60. package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-repairer.md.tmpl +25 -25
  61. package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-shaper.md.tmpl +31 -31
  62. package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-validator.md.tmpl +23 -23
  63. package/src/workflows/product-shaping/templates/opencode/skills/product-shaping/SKILL.md.tmpl +45 -45
  64. package/src/workflows/product-shaping/templates/prompts/domain-modeler-prompt.md +27 -27
  65. package/src/workflows/product-shaping/templates/prompts/intake-prompt.md +30 -30
  66. package/src/workflows/product-shaping/templates/prompts/product-auditor-prompt.md +53 -53
  67. package/src/workflows/product-shaping/templates/prompts/product-repairer-prompt.md +25 -25
  68. package/src/workflows/product-shaping/templates/prompts/product-shaper-prompt.md +26 -26
  69. package/src/workflows/product-shaping/templates/prompts/product-validator-prompt.md +55 -55
  70. package/src/workflows/product-shaping/templates/prompts/reference-research-prompt.md +25 -25
  71. package/src/workflows/product-shaping/templates/prompts/release-planner-prompt.md +34 -34
  72. package/src/workflows/product-shaping/workflow.json +33 -33
  73. package/src/workflows/technical-shaping/README.md +7 -5
  74. package/src/workflows/technical-shaping/workflow.json +14 -10
  75. package/src/workflows/work-unit-implementation/README.md +71 -71
  76. package/src/workflows/work-unit-implementation/templates/default-config.json +46 -46
  77. package/src/workflows/work-unit-implementation/templates/default-profile.json +57 -57
  78. package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-orchestrator.md.tmpl +62 -62
  79. package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-plan-auditor.md.tmpl +26 -26
  80. package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-plan-consolidator.md.tmpl +26 -26
  81. package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-plan-repairer.md.tmpl +25 -25
  82. package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-plan-validator.md.tmpl +25 -25
  83. package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-planner.md.tmpl +27 -27
  84. package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-task-implementer.md.tmpl +30 -30
  85. package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-task-reviewer.md.tmpl +28 -28
  86. package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-validator.md.tmpl +26 -26
  87. package/src/workflows/work-unit-implementation/templates/opencode/skills/work-unit-implementation/SKILL.md.tmpl +25 -25
  88. package/src/workflows/work-unit-implementation/templates/prompts/plan-auditor-prompt.md +89 -89
  89. package/src/workflows/work-unit-implementation/templates/prompts/plan-consolidator-prompt.md +64 -64
  90. package/src/workflows/work-unit-implementation/templates/prompts/plan-repairer-prompt.md +42 -42
  91. package/src/workflows/work-unit-implementation/templates/prompts/plan-validator-prompt.md +84 -84
  92. package/src/workflows/work-unit-implementation/templates/prompts/planner-prompt.md +150 -150
  93. package/src/workflows/work-unit-implementation/templates/prompts/task-implementation-prompt.md +57 -57
  94. package/src/workflows/work-unit-implementation/templates/prompts/task-review-prompt.md +69 -69
  95. package/src/workflows/work-unit-implementation/templates/prompts/work-unit-validator-prompt.md +50 -50
  96. package/src/workflows/work-unit-implementation/workflow.json +14 -14
@@ -1,33 +1,33 @@
1
- # Product-Shaping Delivery Handoff Compatibility
2
-
3
- The canonical product-shaping handoff is:
4
-
5
- ```text
6
- .wefter/specs/releases/<release-id>/DELIVERABLES.md
7
- ```
8
-
9
- The current executable implementation engine is still `work-unit-implementation`. Until it is migrated to `delivery-implementation`, use an explicit compatibility mapping instead of renaming the legacy workflow.
10
-
11
- ## Legacy CLI Mapping
12
-
13
- Run the legacy implementation workflow against a product-shaping deliverables document by overriding the source document:
14
-
15
- ```bash
16
- wefter work-unit run --release-id <release-id> --work-units-document .wefter/specs/releases/<release-id>/DELIVERABLES.md --work-unit-id <deliverable-id>
17
- ```
18
-
19
- Mapping:
20
-
21
- | Product-shaping term | Legacy implementation term |
22
- | --- | --- |
23
- | release | release |
24
- | deliverable | work unit |
25
- | `DELIVERABLES.md` | work units document |
26
- | delivery implementation | `work-unit-implementation` |
27
-
28
- Rules:
29
-
30
- - This is compatibility language only.
31
- - Product-shaping artifacts must continue to use `deliverable` and `DELIVERABLES.md`.
32
- - The legacy workflow must not redefine product scope, domain behavior or acceptance criteria.
33
- - Future migration to `delivery-implementation` is tracked separately and remains out of scope for the product-shaping implementation release.
1
+ # Product-Shaping Delivery Handoff Compatibility
2
+
3
+ The canonical product-shaping handoff is:
4
+
5
+ ```text
6
+ .wefter/specs/releases/<release-id>/DELIVERABLES.md
7
+ ```
8
+
9
+ The current executable implementation engine is still `work-unit-implementation`. Until it is migrated to `delivery-implementation`, use an explicit compatibility mapping instead of renaming the legacy workflow.
10
+
11
+ ## Legacy CLI Mapping
12
+
13
+ Run the legacy implementation workflow against a product-shaping deliverables document by overriding the source document:
14
+
15
+ ```bash
16
+ wefter work-unit run --release-id <release-id> --work-units-document .wefter/specs/releases/<release-id>/DELIVERABLES.md --work-unit-id <deliverable-id>
17
+ ```
18
+
19
+ Mapping:
20
+
21
+ | Product-shaping term | Legacy implementation term |
22
+ | --- | --- |
23
+ | release | release |
24
+ | deliverable | work unit |
25
+ | `DELIVERABLES.md` | work units document |
26
+ | delivery implementation | `work-unit-implementation` |
27
+
28
+ Rules:
29
+
30
+ - This is compatibility language only.
31
+ - Product-shaping artifacts must continue to use `deliverable` and `DELIVERABLES.md`.
32
+ - The legacy workflow must not redefine product scope, domain behavior or acceptance criteria.
33
+ - Future migration to `delivery-implementation` is tracked separately and remains out of scope for the product-shaping implementation release.
@@ -1,250 +1,250 @@
1
- {
2
- "version": 1,
3
- "workflowId": "product-shaping",
4
- "defaultRoots": {
5
- "specRoot": ".wefter/specs",
6
- "workflowRoot": ".wefter/workflows",
7
- "runRoot": ".wefter/runs/product-shaping"
8
- },
9
- "vocabulary": ["idea", "product specs", "release", "deliverable", "task"],
10
- "statusEnums": {
11
- "feature": ["candidate", "core", "future", "rejected", "needs-decision"],
12
- "question": ["open", "answered", "deferred", "obsolete"],
13
- "decision": ["accepted", "superseded", "rejected"],
14
- "deliverable": ["candidate", "ready", "blocked", "deferred", "done"]
15
- },
16
- "dynamicCollections": {
17
- "references": {
18
- "index": "references/README.md",
19
- "itemPattern": "references/<reference>.md",
20
- "listingPattern": "references/<reference>.md",
21
- "creationOrder": "Create references/<reference>.md files before references/README.md when individual references are used; create references/README.md with an explicit zero-reference statement when none are used.",
22
- "zeroItemsAllowedWithExplicitIndexStatement": true,
23
- "rule": "Individual reference files are optional only when references/README.md explicitly states that no references were used or researched. Every listed reference file must exist, and every individual reference file must be listed with its references/<reference>.md path."
24
- }
25
- },
26
- "creationOrderScope": "fixed-required-files",
27
- "creationOrder": [
28
- "README.md",
29
- "discovery/SOURCE_MATERIALS.md",
30
- "discovery/IDEA_BRIEF.md",
31
- "discovery/OPEN_QUESTIONS.md",
32
- "references/README.md",
33
- "PRODUCT_VISION.md",
34
- "product/FEATURE_CATALOG.md",
35
- "product/MODULE_ROADMAP.md",
36
- "product/DOMAIN_MODEL.md",
37
- "product/OPERATIONAL_FLOW.md",
38
- "product/PRODUCT_DECISIONS.md",
39
- "releases/README.md",
40
- "releases/<release-id>/README.md",
41
- "releases/<release-id>/SCOPE.md",
42
- "releases/<release-id>/DOMAIN_SPEC.md",
43
- "releases/<release-id>/ACCEPTANCE_CRITERIA.md",
44
- "releases/<release-id>/DELIVERABLES.md"
45
- ],
46
- "utilizationOrder": [
47
- "README.md",
48
- "releases/<release-id>/README.md",
49
- "PRODUCT_VISION.md",
50
- "product/PRODUCT_DECISIONS.md",
51
- "releases/<release-id>/SCOPE.md",
52
- "releases/<release-id>/DOMAIN_SPEC.md",
53
- "releases/<release-id>/ACCEPTANCE_CRITERIA.md",
54
- "releases/<release-id>/DELIVERABLES.md",
55
- "product/DOMAIN_MODEL.md",
56
- "product/OPERATIONAL_FLOW.md",
57
- "product/FEATURE_CATALOG.md",
58
- "product/MODULE_ROADMAP.md",
59
- "discovery/OPEN_QUESTIONS.md",
60
- "discovery/IDEA_BRIEF.md",
61
- "references/"
62
- ],
63
- "precedence": {
64
- "release": [
65
- "releases/<release-id>/SCOPE.md",
66
- "releases/<release-id>/DOMAIN_SPEC.md",
67
- "releases/<release-id>/ACCEPTANCE_CRITERIA.md",
68
- "releases/<release-id>/DELIVERABLES.md"
69
- ],
70
- "product": [
71
- "PRODUCT_VISION.md",
72
- "product/MODULE_ROADMAP.md",
73
- "product/FEATURE_CATALOG.md"
74
- ],
75
- "decision": "PRODUCT_DECISIONS.md supersedes older narrative text only when the decision is explicit, dated or otherwise clearly recorded.",
76
- "blockingQuestionRule": "OPEN_QUESTIONS.md with open or deferred release-blocking questions blocks completion regardless of file precedence."
77
- },
78
- "requiredFiles": [
79
- {
80
- "path": "README.md",
81
- "responsibility": "Map the product spec tree, document responsibilities and source-of-truth rules.",
82
- "limits": "Must not contain detailed product rules, feature lists, roadmap content, release scope or technical decisions.",
83
- "createdAfter": [],
84
- "usedBefore": ["all product specs"],
85
- "consumers": ["all product-shaping agents", "documentation-audit", "documentation-repair", "technical-shaping", "delivery planning"],
86
- "minimumContent": ["configured spec root", "document responsibility table", "precedence summary", "handoff rule to DELIVERABLES.md"],
87
- "hardRules": ["Create before writing any other product spec file.", "Do not create ad hoc product spec files outside the documented tree unless config explicitly allows them."]
88
- },
89
- {
90
- "path": "discovery/SOURCE_MATERIALS.md",
91
- "responsibility": "Catalog raw material used for shaping.",
92
- "limits": "Must not interpret the product, define scope, synthesize features or make product decisions.",
93
- "createdAfter": ["README.md"],
94
- "usedBefore": ["discovery/IDEA_BRIEF.md"],
95
- "consumers": ["wefter-product-intake-analyst", "wefter-product-auditor", "wefter-product-validator", "wefter-product-repairer"],
96
- "minimumContent": ["source id", "source type", "source location", "neutral summary", "known limitations"],
97
- "hardRules": ["No decision-relevant product idea or generated requirement may appear in final specs unless traceable to a source, reference or product decision."]
98
- },
99
- {
100
- "path": "discovery/IDEA_BRIEF.md",
101
- "responsibility": "Turn raw input into initial product understanding.",
102
- "limits": "Must not list detailed features, define releases, close domain behavior or decide technical stack.",
103
- "createdAfter": ["discovery/SOURCE_MATERIALS.md"],
104
- "usedBefore": ["PRODUCT_VISION.md", "references/<reference>.md"],
105
- "consumers": ["wefter-product-reference-researcher", "wefter-product-shaper", "wefter-product-release-planner", "wefter-product-auditor"],
106
- "minimumContent": ["problem statement", "target users", "jobs to be done", "desired outcome", "constraints", "non-goals", "source references"],
107
- "hardRules": ["Stop before roadmap or release scope if problem, user and expected value are unclear."]
108
- },
109
- {
110
- "path": "discovery/OPEN_QUESTIONS.md",
111
- "responsibility": "Keep uncertainty visible and separate from closed decisions.",
112
- "limits": "Must not become a backlog or long-form discussion log.",
113
- "createdAfter": ["discovery/IDEA_BRIEF.md"],
114
- "usedBefore": ["every publication gate"],
115
- "consumers": ["all product-shaping agents", "delivery planning"],
116
- "minimumContent": ["question id", "question", "impact", "blocks target release", "status", "resolution when answered"],
117
- "hardRules": ["Questions affecting release scope, domain behavior, acceptance criteria or deliverables must be listed and not resolved silently.", "Open or deferred questions with Blocks target release: yes block completion."]
118
- },
119
- {
120
- "path": "references/README.md",
121
- "responsibility": "Map researched references and why each reference matters.",
122
- "limits": "Must not consolidate all features, replace reference files or act as feature catalog.",
123
- "createdAfter": ["references/<reference>.md"],
124
- "usedBefore": ["product/FEATURE_CATALOG.md"],
125
- "consumers": ["wefter-product-reference-researcher", "wefter-product-shaper", "wefter-product-auditor"],
126
- "minimumContent": ["research purpose", "selection criteria", "reference map", "research date", "freshness status"],
127
- "hardRules": ["Every individual reference file must be listed with focus, relevance and its references/<reference>.md path."]
128
- },
129
- {
130
- "path": "PRODUCT_VISION.md",
131
- "responsibility": "Define the product at macro level.",
132
- "limits": "Must not contain detailed feature catalog, roadmap, release scope, domain rules, acceptance criteria or technical decisions.",
133
- "createdAfter": ["discovery/IDEA_BRIEF.md", "references/<reference>.md"],
134
- "usedBefore": ["product/FEATURE_CATALOG.md", "product/MODULE_ROADMAP.md", "releases/<release-id>/SCOPE.md"],
135
- "consumers": ["all product-shaping agents"],
136
- "minimumContent": ["product objective", "target users", "value summary", "product direction", "pillars", "macro non-goals", "source references"],
137
- "hardRules": ["Later contradictions must stop until repaired or explicitly superseded by product decision."]
138
- },
139
- {
140
- "path": "product/FEATURE_CATALOG.md",
141
- "responsibility": "Centralize possible product capabilities from idea, references and decisions.",
142
- "limits": "Is not a backlog, roadmap, release scope or delivery promise.",
143
- "createdAfter": ["PRODUCT_VISION.md", "references/README.md"],
144
- "usedBefore": ["product/MODULE_ROADMAP.md", "releases/<release-id>/SCOPE.md"],
145
- "consumers": ["wefter-product-shaper", "wefter-product-release-planner", "wefter-product-auditor", "wefter-product-validator"],
146
- "minimumContent": ["feature id", "name", "description", "source", "status", "rationale", "dependencies"],
147
- "hardRules": ["Every feature must have exactly one valid feature status.", "future, rejected or needs-decision features cannot enter SCOPE.md without explicit product decision."]
148
- },
149
- {
150
- "path": "product/MODULE_ROADMAP.md",
151
- "responsibility": "Organize product evolution by conceptual priority and dependency.",
152
- "limits": "Is not a calendar, sprint plan, timeline or closed delivery commitment.",
153
- "createdAfter": ["product/FEATURE_CATALOG.md"],
154
- "usedBefore": ["releases/<release-id>/SCOPE.md"],
155
- "consumers": ["wefter-product-release-planner", "wefter-product-auditor", "delivery planning"],
156
- "minimumContent": ["module or release sequence", "objectives", "capability groups", "dependencies", "future modules", "sequencing risks"],
157
- "hardRules": ["Roadmap defines relative sequence and conceptual dependencies only."]
158
- },
159
- {
160
- "path": "product/DOMAIN_MODEL.md",
161
- "responsibility": "Describe conceptual business entities, relationships and modeling principles.",
162
- "limits": "Is not a database schema, migration plan, ORM model or technical naming glossary.",
163
- "createdAfter": ["PRODUCT_VISION.md", "product/FEATURE_CATALOG.md", "product/MODULE_ROADMAP.md"],
164
- "usedBefore": ["releases/<release-id>/DOMAIN_SPEC.md", "technical-shaping"],
165
- "consumers": ["wefter-product-domain-modeler", "wefter-product-release-planner", "technical-shaping", "delivery planning"],
166
- "minimumContent": ["modeling principles", "business entities", "relationships", "lifecycle notes", "business invariants", "terms"],
167
- "hardRules": ["Names are business names; final technical names belong to technical shaping."]
168
- },
169
- {
170
- "path": "product/OPERATIONAL_FLOW.md",
171
- "responsibility": "Describe target operational flow end to end.",
172
- "limits": "Does not close release scope by itself.",
173
- "createdAfter": ["product/DOMAIN_MODEL.md"],
174
- "usedBefore": ["releases/<release-id>/SCOPE.md", "releases/<release-id>/DOMAIN_SPEC.md", "releases/<release-id>/ACCEPTANCE_CRITERIA.md"],
175
- "consumers": ["wefter-product-domain-modeler", "wefter-product-release-planner", "wefter-product-auditor"],
176
- "minimumContent": ["actors", "triggers", "preconditions", "main steps", "alternate flows", "inputs", "outputs", "future steps"],
177
- "hardRules": ["Any operational step outside the target release must be marked future or out of release scope."]
178
- },
179
- {
180
- "path": "product/PRODUCT_DECISIONS.md",
181
- "responsibility": "Record closed product decisions, assumptions, risks and impacts.",
182
- "limits": "Is not a changelog, backlog or full scope document.",
183
- "createdAfter": ["can be created whenever decisions appear"],
184
- "usedBefore": ["validation", "repair", "release planning", "deliverable shaping"],
185
- "consumers": ["all product-shaping agents", "delivery planning"],
186
- "minimumContent": ["decision id", "status", "date", "context", "decision", "alternatives", "rationale", "impact", "affected files"],
187
- "hardRules": ["Accepted decisions that change scope, behavior, priority, tradeoff or direction must be recorded.", "Proposed unresolved decisions belong in OPEN_QUESTIONS.md."]
188
- },
189
- {
190
- "path": "releases/README.md",
191
- "responsibility": "Explain release organization and relationship between release-level files.",
192
- "limits": "Must not define detailed scope or behavior for one release.",
193
- "createdAfter": ["product/PRODUCT_DECISIONS.md"],
194
- "usedBefore": ["releases/<release-id>/README.md"],
195
- "consumers": ["wefter-product-release-planner", "wefter-product-validator", "delivery planning"],
196
- "minimumContent": ["release id convention", "release map", "status", "objective", "path", "compatibility notes"],
197
- "hardRules": ["Custom release paths must come from config, not hardcoded assumptions."]
198
- },
199
- {
200
- "path": "releases/<release-id>/README.md",
201
- "responsibility": "Index one release and declare precedence for release documents.",
202
- "limits": "Must not replace SCOPE.md, DOMAIN_SPEC.md, ACCEPTANCE_CRITERIA.md or DELIVERABLES.md.",
203
- "createdAfter": ["releases/README.md"],
204
- "usedBefore": ["releases/<release-id>/SCOPE.md"],
205
- "consumers": ["wefter-product-release-planner", "wefter-product-validator", "technical-shaping", "delivery planning"],
206
- "minimumContent": ["release id", "status", "objective", "file index", "responsibility table", "precedence summary", "handoff rule"],
207
- "hardRules": ["Must declare which file owns release scope, domain behavior, acceptance and implementation handoff."]
208
- },
209
- {
210
- "path": "releases/<release-id>/SCOPE.md",
211
- "responsibility": "Define release commitment, included scope, excluded scope, tradeoffs and boundaries.",
212
- "limits": "Must not define all detailed domain rules, task specs or technical stack.",
213
- "createdAfter": ["product/MODULE_ROADMAP.md", "product/DOMAIN_MODEL.md", "product/OPERATIONAL_FLOW.md"],
214
- "usedBefore": ["releases/<release-id>/DOMAIN_SPEC.md", "releases/<release-id>/ACCEPTANCE_CRITERIA.md", "releases/<release-id>/DELIVERABLES.md"],
215
- "consumers": ["wefter-product-release-planner", "wefter-product-domain-modeler", "delivery planning", "wefter-product-auditor"],
216
- "minimumContent": ["objective", "expected outcome", "included scope", "out of scope", "tradeoffs", "assumptions", "dependencies", "blockers"],
217
- "hardRules": ["Nothing may enter domain spec, acceptance criteria or deliverables if outside SCOPE.md without explicit pending scope change."]
218
- },
219
- {
220
- "path": "releases/<release-id>/DOMAIN_SPEC.md",
221
- "responsibility": "Close release domain behavior and rules.",
222
- "limits": "Is not a data contract, UI spec, task plan or stack decision document.",
223
- "createdAfter": ["releases/<release-id>/SCOPE.md"],
224
- "usedBefore": ["releases/<release-id>/ACCEPTANCE_CRITERIA.md", "releases/<release-id>/DELIVERABLES.md", "technical-shaping"],
225
- "consumers": ["wefter-product-domain-modeler", "delivery planning", "technical-shaping", "wefter-product-auditor"],
226
- "minimumContent": ["closed domain decisions", "entities", "domain rules", "state model", "permissions", "validations", "exceptions", "unresolved questions"],
227
- "hardRules": ["Unresolved domain rules cannot become implementable deliverables without a human gate."]
228
- },
229
- {
230
- "path": "releases/<release-id>/ACCEPTANCE_CRITERIA.md",
231
- "responsibility": "Turn scope and domain behavior into verifiable release readiness criteria.",
232
- "limits": "Must not redefine scope or introduce domain rules absent from DOMAIN_SPEC.md or PRODUCT_DECISIONS.md.",
233
- "createdAfter": ["releases/<release-id>/DOMAIN_SPEC.md"],
234
- "usedBefore": ["releases/<release-id>/DELIVERABLES.md", "delivery implementation"],
235
- "consumers": ["wefter-product-release-planner", "delivery planning", "task reviewer", "wefter-product-validator"],
236
- "minimumContent": ["acceptance objective", "release accepted definition", "end-to-end flows", "preconditions", "expected outcomes", "negative scenarios", "traceability"],
237
- "hardRules": ["Every criterion must be testable, observable or objectively verifiable."]
238
- },
239
- {
240
- "path": "releases/<release-id>/DELIVERABLES.md",
241
- "responsibility": "Convert the release into ordered, small, verifiable deliverables ready for delivery implementation.",
242
- "limits": "Must not contain task specs, code, detailed implementation plans or task-level TDD requirements.",
243
- "createdAfter": ["releases/<release-id>/ACCEPTANCE_CRITERIA.md"],
244
- "usedBefore": ["delivery implementation"],
245
- "consumers": ["delivery orchestrator", "delivery planner", "plan auditors", "validators"],
246
- "minimumContent": ["stable id", "status", "goal", "scope", "out of scope", "dependencies", "source docs", "acceptance criteria", "risk areas", "human gate triggers", "expected verification"],
247
- "hardRules": ["Every deliverable must have exactly one valid deliverable status.", "Only ready deliverables may enter delivery implementation without an additional human gate.", "Do not include task specs."]
248
- }
249
- ]
250
- }
1
+ {
2
+ "version": 1,
3
+ "workflowId": "product-shaping",
4
+ "defaultRoots": {
5
+ "specRoot": ".wefter/specs",
6
+ "workflowRoot": ".wefter/workflows",
7
+ "runRoot": ".wefter/runs/product-shaping"
8
+ },
9
+ "vocabulary": ["idea", "product specs", "release", "deliverable", "task"],
10
+ "statusEnums": {
11
+ "feature": ["candidate", "core", "future", "rejected", "needs-decision"],
12
+ "question": ["open", "answered", "deferred", "obsolete"],
13
+ "decision": ["accepted", "superseded", "rejected"],
14
+ "deliverable": ["candidate", "ready", "blocked", "deferred", "done"]
15
+ },
16
+ "dynamicCollections": {
17
+ "references": {
18
+ "index": "references/README.md",
19
+ "itemPattern": "references/<reference>.md",
20
+ "listingPattern": "references/<reference>.md",
21
+ "creationOrder": "Create references/<reference>.md files before references/README.md when individual references are used; create references/README.md with an explicit zero-reference statement when none are used.",
22
+ "zeroItemsAllowedWithExplicitIndexStatement": true,
23
+ "rule": "Individual reference files are optional only when references/README.md explicitly states that no references were used or researched. Every listed reference file must exist, and every individual reference file must be listed with its references/<reference>.md path."
24
+ }
25
+ },
26
+ "creationOrderScope": "fixed-required-files",
27
+ "creationOrder": [
28
+ "README.md",
29
+ "discovery/SOURCE_MATERIALS.md",
30
+ "discovery/IDEA_BRIEF.md",
31
+ "discovery/OPEN_QUESTIONS.md",
32
+ "references/README.md",
33
+ "PRODUCT_VISION.md",
34
+ "product/FEATURE_CATALOG.md",
35
+ "product/MODULE_ROADMAP.md",
36
+ "product/DOMAIN_MODEL.md",
37
+ "product/OPERATIONAL_FLOW.md",
38
+ "product/PRODUCT_DECISIONS.md",
39
+ "releases/README.md",
40
+ "releases/<release-id>/README.md",
41
+ "releases/<release-id>/SCOPE.md",
42
+ "releases/<release-id>/DOMAIN_SPEC.md",
43
+ "releases/<release-id>/ACCEPTANCE_CRITERIA.md",
44
+ "releases/<release-id>/DELIVERABLES.md"
45
+ ],
46
+ "utilizationOrder": [
47
+ "README.md",
48
+ "releases/<release-id>/README.md",
49
+ "PRODUCT_VISION.md",
50
+ "product/PRODUCT_DECISIONS.md",
51
+ "releases/<release-id>/SCOPE.md",
52
+ "releases/<release-id>/DOMAIN_SPEC.md",
53
+ "releases/<release-id>/ACCEPTANCE_CRITERIA.md",
54
+ "releases/<release-id>/DELIVERABLES.md",
55
+ "product/DOMAIN_MODEL.md",
56
+ "product/OPERATIONAL_FLOW.md",
57
+ "product/FEATURE_CATALOG.md",
58
+ "product/MODULE_ROADMAP.md",
59
+ "discovery/OPEN_QUESTIONS.md",
60
+ "discovery/IDEA_BRIEF.md",
61
+ "references/"
62
+ ],
63
+ "precedence": {
64
+ "release": [
65
+ "releases/<release-id>/SCOPE.md",
66
+ "releases/<release-id>/DOMAIN_SPEC.md",
67
+ "releases/<release-id>/ACCEPTANCE_CRITERIA.md",
68
+ "releases/<release-id>/DELIVERABLES.md"
69
+ ],
70
+ "product": [
71
+ "PRODUCT_VISION.md",
72
+ "product/MODULE_ROADMAP.md",
73
+ "product/FEATURE_CATALOG.md"
74
+ ],
75
+ "decision": "PRODUCT_DECISIONS.md supersedes older narrative text only when the decision is explicit, dated or otherwise clearly recorded.",
76
+ "blockingQuestionRule": "OPEN_QUESTIONS.md with open or deferred release-blocking questions blocks completion regardless of file precedence."
77
+ },
78
+ "requiredFiles": [
79
+ {
80
+ "path": "README.md",
81
+ "responsibility": "Map the product spec tree, document responsibilities and source-of-truth rules.",
82
+ "limits": "Must not contain detailed product rules, feature lists, roadmap content, release scope or technical decisions.",
83
+ "createdAfter": [],
84
+ "usedBefore": ["all product specs"],
85
+ "consumers": ["all product-shaping agents", "documentation-audit", "documentation-repair", "technical-shaping", "delivery planning"],
86
+ "minimumContent": ["configured spec root", "document responsibility table", "precedence summary", "handoff rule to DELIVERABLES.md"],
87
+ "hardRules": ["Create before writing any other product spec file.", "Do not create ad hoc product spec files outside the documented tree unless config explicitly allows them."]
88
+ },
89
+ {
90
+ "path": "discovery/SOURCE_MATERIALS.md",
91
+ "responsibility": "Catalog raw material used for shaping.",
92
+ "limits": "Must not interpret the product, define scope, synthesize features or make product decisions.",
93
+ "createdAfter": ["README.md"],
94
+ "usedBefore": ["discovery/IDEA_BRIEF.md"],
95
+ "consumers": ["wefter-product-intake-analyst", "wefter-product-auditor", "wefter-product-validator", "wefter-product-repairer"],
96
+ "minimumContent": ["source id", "source type", "source location", "neutral summary", "known limitations"],
97
+ "hardRules": ["No decision-relevant product idea or generated requirement may appear in final specs unless traceable to a source, reference or product decision."]
98
+ },
99
+ {
100
+ "path": "discovery/IDEA_BRIEF.md",
101
+ "responsibility": "Turn raw input into initial product understanding.",
102
+ "limits": "Must not list detailed features, define releases, close domain behavior or decide technical stack.",
103
+ "createdAfter": ["discovery/SOURCE_MATERIALS.md"],
104
+ "usedBefore": ["PRODUCT_VISION.md", "references/<reference>.md"],
105
+ "consumers": ["wefter-product-reference-researcher", "wefter-product-shaper", "wefter-product-release-planner", "wefter-product-auditor"],
106
+ "minimumContent": ["problem statement", "target users", "jobs to be done", "desired outcome", "constraints", "non-goals", "source references"],
107
+ "hardRules": ["Stop before roadmap or release scope if problem, user and expected value are unclear."]
108
+ },
109
+ {
110
+ "path": "discovery/OPEN_QUESTIONS.md",
111
+ "responsibility": "Keep uncertainty visible and separate from closed decisions.",
112
+ "limits": "Must not become a backlog or long-form discussion log.",
113
+ "createdAfter": ["discovery/IDEA_BRIEF.md"],
114
+ "usedBefore": ["every publication gate"],
115
+ "consumers": ["all product-shaping agents", "delivery planning"],
116
+ "minimumContent": ["question id", "question", "impact", "blocks target release", "status", "resolution when answered"],
117
+ "hardRules": ["Questions affecting release scope, domain behavior, acceptance criteria or deliverables must be listed and not resolved silently.", "Open or deferred questions with Blocks target release: yes block completion."]
118
+ },
119
+ {
120
+ "path": "references/README.md",
121
+ "responsibility": "Map researched references and why each reference matters.",
122
+ "limits": "Must not consolidate all features, replace reference files or act as feature catalog.",
123
+ "createdAfter": ["references/<reference>.md"],
124
+ "usedBefore": ["product/FEATURE_CATALOG.md"],
125
+ "consumers": ["wefter-product-reference-researcher", "wefter-product-shaper", "wefter-product-auditor"],
126
+ "minimumContent": ["research purpose", "selection criteria", "reference map", "research date", "freshness status"],
127
+ "hardRules": ["Every individual reference file must be listed with focus, relevance and its references/<reference>.md path."]
128
+ },
129
+ {
130
+ "path": "PRODUCT_VISION.md",
131
+ "responsibility": "Define the product at macro level.",
132
+ "limits": "Must not contain detailed feature catalog, roadmap, release scope, domain rules, acceptance criteria or technical decisions.",
133
+ "createdAfter": ["discovery/IDEA_BRIEF.md", "references/<reference>.md"],
134
+ "usedBefore": ["product/FEATURE_CATALOG.md", "product/MODULE_ROADMAP.md", "releases/<release-id>/SCOPE.md"],
135
+ "consumers": ["all product-shaping agents"],
136
+ "minimumContent": ["product objective", "target users", "value summary", "product direction", "pillars", "macro non-goals", "source references"],
137
+ "hardRules": ["Later contradictions must stop until repaired or explicitly superseded by product decision."]
138
+ },
139
+ {
140
+ "path": "product/FEATURE_CATALOG.md",
141
+ "responsibility": "Centralize possible product capabilities from idea, references and decisions.",
142
+ "limits": "Is not a backlog, roadmap, release scope or delivery promise.",
143
+ "createdAfter": ["PRODUCT_VISION.md", "references/README.md"],
144
+ "usedBefore": ["product/MODULE_ROADMAP.md", "releases/<release-id>/SCOPE.md"],
145
+ "consumers": ["wefter-product-shaper", "wefter-product-release-planner", "wefter-product-auditor", "wefter-product-validator"],
146
+ "minimumContent": ["feature id", "name", "description", "source", "status", "rationale", "dependencies"],
147
+ "hardRules": ["Every feature must have exactly one valid feature status.", "future, rejected or needs-decision features cannot enter SCOPE.md without explicit product decision."]
148
+ },
149
+ {
150
+ "path": "product/MODULE_ROADMAP.md",
151
+ "responsibility": "Organize product evolution by conceptual priority and dependency.",
152
+ "limits": "Is not a calendar, sprint plan, timeline or closed delivery commitment.",
153
+ "createdAfter": ["product/FEATURE_CATALOG.md"],
154
+ "usedBefore": ["releases/<release-id>/SCOPE.md"],
155
+ "consumers": ["wefter-product-release-planner", "wefter-product-auditor", "delivery planning"],
156
+ "minimumContent": ["module or release sequence", "objectives", "capability groups", "dependencies", "future modules", "sequencing risks"],
157
+ "hardRules": ["Roadmap defines relative sequence and conceptual dependencies only."]
158
+ },
159
+ {
160
+ "path": "product/DOMAIN_MODEL.md",
161
+ "responsibility": "Describe conceptual business entities, relationships and modeling principles.",
162
+ "limits": "Is not a database schema, migration plan, ORM model or technical naming glossary.",
163
+ "createdAfter": ["PRODUCT_VISION.md", "product/FEATURE_CATALOG.md", "product/MODULE_ROADMAP.md"],
164
+ "usedBefore": ["releases/<release-id>/DOMAIN_SPEC.md", "technical-shaping"],
165
+ "consumers": ["wefter-product-domain-modeler", "wefter-product-release-planner", "technical-shaping", "delivery planning"],
166
+ "minimumContent": ["modeling principles", "business entities", "relationships", "lifecycle notes", "business invariants", "terms"],
167
+ "hardRules": ["Names are business names; final technical names belong to technical shaping."]
168
+ },
169
+ {
170
+ "path": "product/OPERATIONAL_FLOW.md",
171
+ "responsibility": "Describe target operational flow end to end.",
172
+ "limits": "Does not close release scope by itself.",
173
+ "createdAfter": ["product/DOMAIN_MODEL.md"],
174
+ "usedBefore": ["releases/<release-id>/SCOPE.md", "releases/<release-id>/DOMAIN_SPEC.md", "releases/<release-id>/ACCEPTANCE_CRITERIA.md"],
175
+ "consumers": ["wefter-product-domain-modeler", "wefter-product-release-planner", "wefter-product-auditor"],
176
+ "minimumContent": ["actors", "triggers", "preconditions", "main steps", "alternate flows", "inputs", "outputs", "future steps"],
177
+ "hardRules": ["Any operational step outside the target release must be marked future or out of release scope."]
178
+ },
179
+ {
180
+ "path": "product/PRODUCT_DECISIONS.md",
181
+ "responsibility": "Record closed product decisions, assumptions, risks and impacts.",
182
+ "limits": "Is not a changelog, backlog or full scope document.",
183
+ "createdAfter": ["can be created whenever decisions appear"],
184
+ "usedBefore": ["validation", "repair", "release planning", "deliverable shaping"],
185
+ "consumers": ["all product-shaping agents", "delivery planning"],
186
+ "minimumContent": ["decision id", "status", "date", "context", "decision", "alternatives", "rationale", "impact", "affected files"],
187
+ "hardRules": ["Accepted decisions that change scope, behavior, priority, tradeoff or direction must be recorded.", "Proposed unresolved decisions belong in OPEN_QUESTIONS.md."]
188
+ },
189
+ {
190
+ "path": "releases/README.md",
191
+ "responsibility": "Explain release organization and relationship between release-level files.",
192
+ "limits": "Must not define detailed scope or behavior for one release.",
193
+ "createdAfter": ["product/PRODUCT_DECISIONS.md"],
194
+ "usedBefore": ["releases/<release-id>/README.md"],
195
+ "consumers": ["wefter-product-release-planner", "wefter-product-validator", "delivery planning"],
196
+ "minimumContent": ["release id convention", "release map", "status", "objective", "path", "compatibility notes"],
197
+ "hardRules": ["Custom release paths must come from config, not hardcoded assumptions."]
198
+ },
199
+ {
200
+ "path": "releases/<release-id>/README.md",
201
+ "responsibility": "Index one release and declare precedence for release documents.",
202
+ "limits": "Must not replace SCOPE.md, DOMAIN_SPEC.md, ACCEPTANCE_CRITERIA.md or DELIVERABLES.md.",
203
+ "createdAfter": ["releases/README.md"],
204
+ "usedBefore": ["releases/<release-id>/SCOPE.md"],
205
+ "consumers": ["wefter-product-release-planner", "wefter-product-validator", "technical-shaping", "delivery planning"],
206
+ "minimumContent": ["release id", "status", "objective", "file index", "responsibility table", "precedence summary", "handoff rule"],
207
+ "hardRules": ["Must declare which file owns release scope, domain behavior, acceptance and implementation handoff."]
208
+ },
209
+ {
210
+ "path": "releases/<release-id>/SCOPE.md",
211
+ "responsibility": "Define release commitment, included scope, excluded scope, tradeoffs and boundaries.",
212
+ "limits": "Must not define all detailed domain rules, task specs or technical stack.",
213
+ "createdAfter": ["product/MODULE_ROADMAP.md", "product/DOMAIN_MODEL.md", "product/OPERATIONAL_FLOW.md"],
214
+ "usedBefore": ["releases/<release-id>/DOMAIN_SPEC.md", "releases/<release-id>/ACCEPTANCE_CRITERIA.md", "releases/<release-id>/DELIVERABLES.md"],
215
+ "consumers": ["wefter-product-release-planner", "wefter-product-domain-modeler", "delivery planning", "wefter-product-auditor"],
216
+ "minimumContent": ["objective", "expected outcome", "included scope", "out of scope", "tradeoffs", "assumptions", "dependencies", "blockers"],
217
+ "hardRules": ["Nothing may enter domain spec, acceptance criteria or deliverables if outside SCOPE.md without explicit pending scope change."]
218
+ },
219
+ {
220
+ "path": "releases/<release-id>/DOMAIN_SPEC.md",
221
+ "responsibility": "Close release domain behavior and rules.",
222
+ "limits": "Is not a data contract, UI spec, task plan or stack decision document.",
223
+ "createdAfter": ["releases/<release-id>/SCOPE.md"],
224
+ "usedBefore": ["releases/<release-id>/ACCEPTANCE_CRITERIA.md", "releases/<release-id>/DELIVERABLES.md", "technical-shaping"],
225
+ "consumers": ["wefter-product-domain-modeler", "delivery planning", "technical-shaping", "wefter-product-auditor"],
226
+ "minimumContent": ["closed domain decisions", "entities", "domain rules", "state model", "permissions", "validations", "exceptions", "unresolved questions"],
227
+ "hardRules": ["Unresolved domain rules cannot become implementable deliverables without a human gate."]
228
+ },
229
+ {
230
+ "path": "releases/<release-id>/ACCEPTANCE_CRITERIA.md",
231
+ "responsibility": "Turn scope and domain behavior into verifiable release readiness criteria.",
232
+ "limits": "Must not redefine scope or introduce domain rules absent from DOMAIN_SPEC.md or PRODUCT_DECISIONS.md.",
233
+ "createdAfter": ["releases/<release-id>/DOMAIN_SPEC.md"],
234
+ "usedBefore": ["releases/<release-id>/DELIVERABLES.md", "delivery implementation"],
235
+ "consumers": ["wefter-product-release-planner", "delivery planning", "task reviewer", "wefter-product-validator"],
236
+ "minimumContent": ["acceptance objective", "release accepted definition", "end-to-end flows", "preconditions", "expected outcomes", "negative scenarios", "traceability"],
237
+ "hardRules": ["Every criterion must be testable, observable or objectively verifiable."]
238
+ },
239
+ {
240
+ "path": "releases/<release-id>/DELIVERABLES.md",
241
+ "responsibility": "Convert the release into ordered, small, verifiable deliverables ready for delivery implementation.",
242
+ "limits": "Must not contain task specs, code, detailed implementation plans or task-level TDD requirements.",
243
+ "createdAfter": ["releases/<release-id>/ACCEPTANCE_CRITERIA.md"],
244
+ "usedBefore": ["delivery implementation"],
245
+ "consumers": ["delivery orchestrator", "delivery planner", "plan auditors", "validators"],
246
+ "minimumContent": ["stable id", "status", "goal", "scope", "out of scope", "dependencies", "source docs", "acceptance criteria", "risk areas", "human gate triggers", "expected verification"],
247
+ "hardRules": ["Every deliverable must have exactly one valid deliverable status.", "Only ready deliverables may enter delivery implementation without an additional human gate.", "Do not include task specs."]
248
+ }
249
+ ]
250
+ }