aw-spec-cli 0.1.4 → 0.1.5

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 (254) hide show
  1. package/assets/.agents/agent.json +28 -0
  2. package/assets/.agents/skills/aw-spec-orch/SKILL.md +56 -0
  3. package/assets/.agents/skills/aw-spec-orch-demo/SKILL.md +59 -0
  4. package/assets/.aw-spec/DESIGN-FORMAT.md +151 -0
  5. package/assets/.aw-spec/ORCH-DIALECT.md +156 -0
  6. package/assets/.aw-spec/RULE-PARTITION.md +126 -0
  7. package/assets/.aw-spec/extensions/agent-context/extension.yml +12 -9
  8. package/assets/.aw-spec/extensions.yml +12 -19
  9. package/assets/.aw-spec/integrations/aw-spec.manifest.json +1 -9
  10. package/assets/.aw-spec/interpreter/run-skill.py +1158 -0
  11. package/assets/.aw-spec/orchestrator/AGENT-PROFILE.md +94 -0
  12. package/assets/.aw-spec/orchestrator/README.md +300 -0
  13. package/assets/.aw-spec/orchestrator/adapters/claude_agent_sdk.py +74 -0
  14. package/assets/.aw-spec/orchestrator/adapters/google_antigravity.py +74 -0
  15. package/assets/.aw-spec/orchestrator/modules/delta-design.orch.yaml +105 -0
  16. package/assets/.aw-spec/orchestrator/modules/delta-spec.orch.yaml +79 -0
  17. package/assets/.aw-spec/orchestrator/modules/domain-select.orch.yaml +81 -0
  18. package/assets/.aw-spec/orchestrator/modules/tech-select.orch.yaml +75 -0
  19. package/assets/.aw-spec/orchestrator/orchestrator.py +1721 -0
  20. package/assets/.aw-spec/orchestrator/rev-templates/ai-rules.reference.md +40 -0
  21. package/assets/.aw-spec/orchestrator/rev-templates/comandrulemap.skeleton.md +59 -0
  22. package/assets/.aw-spec/orchestrator/rev-templates/commandtechrulemap.skeleton.md +97 -0
  23. package/assets/.aw-spec/orchestrator/rev-templates/domain-constitution.skeleton.md +61 -0
  24. package/assets/.aw-spec/orchestrator/rev-templates/domain-requirements.skeleton.md +48 -0
  25. package/assets/.aw-spec/orchestrator/rev-templates/domain-rule-file.skeleton.md +39 -0
  26. package/assets/.aw-spec/orchestrator/rev-templates/technical-constitution.skeleton.md +106 -0
  27. package/assets/.aw-spec/orchestrator/rev-templates/technical-rule-file.skeleton.md +54 -0
  28. package/assets/.aw-spec/orchestrator/workflows/_smoke.orch.yaml +160 -0
  29. package/assets/.aw-spec/orchestrator/workflows/aw-spec-add-component.orch.yaml +244 -0
  30. package/assets/.aw-spec/orchestrator/workflows/aw-spec-adopt.orch.yaml +775 -0
  31. package/assets/.aw-spec/orchestrator/workflows/aw-spec-analyze-delta-design.orch.yaml +248 -0
  32. package/assets/.aw-spec/orchestrator/workflows/aw-spec-analyze-design.orch.yaml +261 -0
  33. package/assets/.aw-spec/orchestrator/workflows/aw-spec-analyze-slice.orch.yaml +425 -0
  34. package/assets/.aw-spec/orchestrator/workflows/aw-spec-build.orch.yaml +188 -0
  35. package/assets/.aw-spec/orchestrator/workflows/aw-spec-characterize.orch.yaml +474 -0
  36. package/assets/.aw-spec/orchestrator/workflows/aw-spec-close-delta.orch.yaml +181 -0
  37. package/assets/.aw-spec/orchestrator/workflows/aw-spec-constitution.orch.yaml +284 -0
  38. package/assets/.aw-spec/orchestrator/workflows/aw-spec-demo.orch.yaml +103 -0
  39. package/assets/.aw-spec/orchestrator/workflows/aw-spec-dependency-tree.orch.yaml +69 -0
  40. package/assets/.aw-spec/orchestrator/workflows/aw-spec-deploy.orch.yaml +85 -0
  41. package/assets/.aw-spec/orchestrator/workflows/aw-spec-design.orch.yaml +382 -0
  42. package/assets/.aw-spec/orchestrator/workflows/aw-spec-finalize-delta.orch.yaml +382 -0
  43. package/assets/.aw-spec/orchestrator/workflows/aw-spec-foundation.orch.yaml +246 -0
  44. package/assets/.aw-spec/orchestrator/workflows/aw-spec-implement-delta.orch.yaml +231 -0
  45. package/assets/.aw-spec/orchestrator/workflows/aw-spec-implement.orch.yaml +258 -0
  46. package/assets/.aw-spec/orchestrator/workflows/aw-spec-inventory.orch.yaml +236 -0
  47. package/assets/.aw-spec/orchestrator/workflows/aw-spec-onboard.orch.yaml +949 -0
  48. package/assets/.aw-spec/orchestrator/workflows/aw-spec-parity.orch.yaml +293 -0
  49. package/assets/.aw-spec/orchestrator/workflows/aw-spec-run.orch.yaml +177 -0
  50. package/assets/.aw-spec/orchestrator/workflows/aw-spec-select-domain.orch.yaml +79 -0
  51. package/assets/.aw-spec/orchestrator/workflows/aw-spec-select-feature.orch.yaml +128 -0
  52. package/assets/.aw-spec/orchestrator/workflows/aw-spec-specify.orch.yaml +412 -0
  53. package/assets/.aw-spec/scripts/bash/aw-inventory.sh +14 -0
  54. package/assets/.aw-spec/scripts/bash/aw-parity.sh +13 -0
  55. package/assets/.aw-spec/scripts/bash/aw-rev-constitution.sh +13 -0
  56. package/assets/.aw-spec/scripts/bash/aw-spec-actions.sh +1899 -0
  57. package/assets/.aw-spec/scripts/bash/aw-xref.sh +15 -0
  58. package/assets/.aw-spec/scripts/bash/common.sh +11 -60
  59. package/assets/.aw-spec/scripts/powershell/aw-inventory.ps1 +14 -0
  60. package/assets/.aw-spec/scripts/powershell/aw-parity.ps1 +13 -0
  61. package/assets/.aw-spec/scripts/powershell/aw-rev-constitution.ps1 +13 -0
  62. package/assets/.aw-spec/scripts/powershell/aw-spec-actions.ps1 +1563 -0
  63. package/assets/.aw-spec/scripts/powershell/aw-xref.ps1 +15 -0
  64. package/assets/.aw-spec/scripts/python/aw-inventory.py +683 -0
  65. package/assets/.aw-spec/scripts/python/aw-parity.py +380 -0
  66. package/assets/.aw-spec/scripts/python/aw-rev-constitution.py +312 -0
  67. package/assets/.aw-spec/scripts/python/aw-xref.py +1330 -0
  68. package/assets/.aw-spec/scripts/python/validate_okf.py +349 -0
  69. package/assets/.aw-spec/templates/constitution-domain-template.md +75 -0
  70. package/assets/.aw-spec/templates/constitution-technical-template.md +70 -0
  71. package/assets/.aw-spec/templates/delta-design-template.md +69 -0
  72. package/assets/.aw-spec/templates/delta-spec-template.md +60 -0
  73. package/assets/.aw-spec/templates/design-template.md +383 -0
  74. package/assets/.aw-spec/templates/okf-concept-template.md +103 -0
  75. package/assets/.aw-spec/templates/parity-manifest-template.json +49 -0
  76. package/assets/.aw-spec/templates/source-map-template.md +85 -0
  77. package/assets/.aw-spec/templates/spec-template.md +192 -71
  78. package/assets/.claude/agent.json +27 -0
  79. package/assets/.claude/skills/aw-spec-orch/SKILL.md +55 -0
  80. package/assets/.claude/skills/aw-spec-orch-demo/SKILL.md +59 -0
  81. package/assets/.kilocode/agent.json +28 -0
  82. package/assets/.kilocode/workflows/aw-spec-orch-demo.md +59 -0
  83. package/assets/.kilocode/workflows/aw-spec-orch.md +55 -0
  84. package/assets/docs/architecture/clean-architecture.md +1 -1
  85. package/assets/docs/architecture/cqrs.md +1 -1
  86. package/assets/docs/architecture/eventing.md +1 -1
  87. package/assets/docs/architecture/folder-structure.md +1 -1
  88. package/assets/docs/architecture/modular-monolith.md +1 -1
  89. package/assets/docs/architecture/persistence.md +1 -1
  90. package/assets/docs/architecture/testing.md +1 -1
  91. package/assets/docs/architecture/vertical-slices.md +1 -1
  92. package/assets/docs/components/Email/README.md +1 -1
  93. package/assets/docs/components/Jobs/README.md +1 -1
  94. package/assets/docs/components/QrGenerator/README.md +1 -1
  95. package/assets/docs/components/README.md +1 -1
  96. package/assets/docs/domain/domain-driven-design.md +1 -1
  97. package/assets/docs/domainspecs/healthcare/api-versioning.domain.md +1 -1
  98. package/assets/docs/domainspecs/healthcare/auditing.domain.md +86 -18
  99. package/assets/docs/domainspecs/healthcare/authorization.domain.md +1 -1
  100. package/assets/docs/domainspecs/healthcare/clinical-terms.md +1 -1
  101. package/assets/docs/domainspecs/healthcare/coding-standards.domain.md +1 -1
  102. package/assets/docs/domainspecs/healthcare/comandrulemap.md +58 -124
  103. package/assets/docs/domainspecs/healthcare/commandtechrulemap.md +119 -0
  104. package/assets/docs/domainspecs/healthcare/consent.md +1 -1
  105. package/assets/docs/domainspecs/healthcare/cqrs.domain.md +1 -1
  106. package/assets/docs/domainspecs/healthcare/data-classification.domain.md +1 -1
  107. package/assets/docs/domainspecs/healthcare/dependency-policy.domain.md +1 -1
  108. package/assets/docs/domainspecs/healthcare/dicom.md +1 -1
  109. package/assets/docs/domainspecs/healthcare/domain-driven-design.domain.md +1 -1
  110. package/assets/docs/domainspecs/healthcare/eventing.domain.md +1 -1
  111. package/assets/docs/domainspecs/healthcare/fhir.md +1 -1
  112. package/assets/docs/domainspecs/healthcare/folder-structure.domain.md +1 -1
  113. package/assets/docs/domainspecs/healthcare/hipaa.md +1 -1
  114. package/assets/docs/domainspecs/healthcare/hl7.md +1 -1
  115. package/assets/docs/domainspecs/healthcare/integration-terms.md +1 -1
  116. package/assets/docs/domainspecs/healthcare/persistence.domain.md +1 -1
  117. package/assets/docs/domainspecs/healthcare/terminology.md +1 -1
  118. package/assets/docs/domainspecs/healthcare/testing.domain.md +1 -1
  119. package/assets/docs/domainspecs/healthcare/vertical-slices.domain.md +1 -1
  120. package/assets/docs/domainspecs/healthcare/zero-trust.domain.md +1 -1
  121. package/assets/docs/domainspecs/pharma/api-versioning.domain.md +1 -1
  122. package/assets/docs/domainspecs/pharma/atc.md +1 -1
  123. package/assets/docs/domainspecs/pharma/auditing.domain.md +80 -16
  124. package/assets/docs/domainspecs/pharma/authorization.domain.md +1 -1
  125. package/assets/docs/domainspecs/pharma/coding-standards.domain.md +1 -1
  126. package/assets/docs/domainspecs/pharma/comandrulemap.md +64 -142
  127. package/assets/docs/domainspecs/pharma/commandtechrulemap.md +119 -0
  128. package/assets/docs/domainspecs/pharma/cqrs.domain.md +1 -1
  129. package/assets/docs/domainspecs/pharma/data-classification.domain.md +1 -1
  130. package/assets/docs/domainspecs/pharma/data-provenance.md +1 -1
  131. package/assets/docs/domainspecs/pharma/dependency-policy.domain.md +1 -1
  132. package/assets/docs/domainspecs/pharma/domain-driven-design.domain.md +1 -1
  133. package/assets/docs/domainspecs/pharma/eventing.domain.md +1 -1
  134. package/assets/docs/domainspecs/pharma/fhir.md +1 -1
  135. package/assets/docs/domainspecs/pharma/folder-structure.domain.md +1 -1
  136. package/assets/docs/domainspecs/pharma/hl7.md +1 -1
  137. package/assets/docs/domainspecs/pharma/idmp.md +1 -1
  138. package/assets/docs/domainspecs/pharma/integration-terms.md +1 -1
  139. package/assets/docs/domainspecs/pharma/ndc.md +1 -1
  140. package/assets/docs/domainspecs/pharma/persistence.domain.md +1 -1
  141. package/assets/docs/domainspecs/pharma/pharma-terms.md +1 -1
  142. package/assets/docs/domainspecs/pharma/product-lifecycle.domain.md +1 -1
  143. package/assets/docs/domainspecs/pharma/regulatory-compliance.md +1 -1
  144. package/assets/docs/domainspecs/pharma/terminology.md +1 -1
  145. package/assets/docs/domainspecs/pharma/testing.domain.md +1 -1
  146. package/assets/docs/domainspecs/pharma/vertical-slices.domain.md +1 -1
  147. package/assets/docs/domainspecs/pharma/zero-trust.domain.md +1 -1
  148. package/assets/docs/governance/api-versioning.md +1 -1
  149. package/assets/docs/governance/coding-standards.md +1 -1
  150. package/assets/docs/governance/dependency-policy.md +1 -1
  151. package/assets/docs/requirement-spec.txt +27 -0
  152. package/assets/docs/security/auditing.md +54 -11
  153. package/assets/docs/security/authorization.md +1 -1
  154. package/assets/docs/security/data-classification.md +1 -1
  155. package/assets/docs/security/zero-trust.md +1 -1
  156. package/dist/commands/init.d.ts.map +1 -1
  157. package/dist/commands/init.js +7 -54
  158. package/dist/commands/init.js.map +1 -1
  159. package/dist/index.js +0 -2
  160. package/dist/index.js.map +1 -1
  161. package/dist/utils/paths.js +2 -2
  162. package/dist/utils/paths.js.map +1 -1
  163. package/package.json +1 -1
  164. package/assets/.agents/skills/aw-spec-addcomponent/SKILL.md +0 -129
  165. package/assets/.agents/skills/aw-spec-agent-context-update/SKILL.md +0 -31
  166. package/assets/.agents/skills/aw-spec-analyze/SKILL.md +0 -296
  167. package/assets/.agents/skills/aw-spec-checklist/SKILL.md +0 -374
  168. package/assets/.agents/skills/aw-spec-clarify/SKILL.md +0 -320
  169. package/assets/.agents/skills/aw-spec-constitution/SKILL.md +0 -194
  170. package/assets/.agents/skills/aw-spec-fast-implement/SKILL.md +0 -268
  171. package/assets/.agents/skills/aw-spec-foundation/SKILL.md +0 -358
  172. package/assets/.agents/skills/aw-spec-implement/SKILL.md +0 -279
  173. package/assets/.agents/skills/aw-spec-minimal-implementation/SKILL.md +0 -209
  174. package/assets/.agents/skills/aw-spec-plan/SKILL.md +0 -221
  175. package/assets/.agents/skills/aw-spec-select-domain/SKILL.md +0 -73
  176. package/assets/.agents/skills/aw-spec-specify/SKILL.md +0 -382
  177. package/assets/.agents/skills/aw-spec-tasks/SKILL.md +0 -259
  178. package/assets/.agents/skills/aw-spec-taskstoissues/SKILL.md +0 -107
  179. package/assets/.aw-spec/integrations/claude.manifest.json +0 -17
  180. package/assets/.aw-spec/scripts/bash/check-prerequisites.sh +0 -189
  181. package/assets/.aw-spec/scripts/bash/create-new-feature.sh +0 -299
  182. package/assets/.aw-spec/scripts/bash/setup-plan.sh +0 -84
  183. package/assets/.aw-spec/scripts/bash/setup-tasks.sh +0 -91
  184. package/assets/.aw-spec/templates/checklist-template.md +0 -40
  185. package/assets/.aw-spec/templates/constitution-template.md +0 -57
  186. package/assets/.aw-spec/templates/plan-template.md +0 -113
  187. package/assets/.aw-spec/templates/tasks-template.md +0 -252
  188. package/assets/.aw-spec/workflows/aw-spec/workflow.yml +0 -77
  189. package/assets/.aw-spec/workflows/workflow-registry.json +0 -13
  190. package/assets/.claude/skills/aw-spec-addcomponent/SKILL.md +0 -129
  191. package/assets/.claude/skills/aw-spec-agent-context-update/SKILL.md +0 -31
  192. package/assets/.claude/skills/aw-spec-analyze/SKILL.md +0 -296
  193. package/assets/.claude/skills/aw-spec-checklist/SKILL.md +0 -374
  194. package/assets/.claude/skills/aw-spec-clarify/SKILL.md +0 -320
  195. package/assets/.claude/skills/aw-spec-constitution/SKILL.md +0 -194
  196. package/assets/.claude/skills/aw-spec-fast-implement/SKILL.md +0 -268
  197. package/assets/.claude/skills/aw-spec-foundation/SKILL.md +0 -358
  198. package/assets/.claude/skills/aw-spec-implement/SKILL.md +0 -279
  199. package/assets/.claude/skills/aw-spec-minimal-implementation/SKILL.md +0 -209
  200. package/assets/.claude/skills/aw-spec-plan/SKILL.md +0 -221
  201. package/assets/.claude/skills/aw-spec-select-domain/SKILL.md +0 -73
  202. package/assets/.claude/skills/aw-spec-specify/SKILL.md +0 -382
  203. package/assets/.claude/skills/aw-spec-tasks/SKILL.md +0 -259
  204. package/assets/.claude/skills/aw-spec-taskstoissues/SKILL.md +0 -107
  205. package/assets/.kilocode/rules/specify-rules.md +0 -4
  206. package/assets/.kilocode/workflows/aw-spec-addcomponent.md +0 -129
  207. package/assets/.kilocode/workflows/aw-spec-agent-context.update.md +0 -31
  208. package/assets/.kilocode/workflows/aw-spec-analyze.md +0 -296
  209. package/assets/.kilocode/workflows/aw-spec-checklist.md +0 -374
  210. package/assets/.kilocode/workflows/aw-spec-clarify.md +0 -320
  211. package/assets/.kilocode/workflows/aw-spec-constitution.md +0 -194
  212. package/assets/.kilocode/workflows/aw-spec-fast-implement.md +0 -263
  213. package/assets/.kilocode/workflows/aw-spec-foundation.md +0 -358
  214. package/assets/.kilocode/workflows/aw-spec-implement.md +0 -279
  215. package/assets/.kilocode/workflows/aw-spec-minimal-implementation.md +0 -204
  216. package/assets/.kilocode/workflows/aw-spec-plan.md +0 -221
  217. package/assets/.kilocode/workflows/aw-spec-select-domain.md +0 -73
  218. package/assets/.kilocode/workflows/aw-spec-specify.md +0 -382
  219. package/assets/.kilocode/workflows/aw-spec-tasks.md +0 -259
  220. package/assets/.kilocode/workflows/aw-spec-taskstoissues.md +0 -107
  221. package/assets/docs/UI.Visualization/PACKAGING.md +0 -191
  222. package/assets/docs/UI.Visualization/UI.Visualization.Reference.pack.txt +0 -11768
  223. package/assets/docs/UI.Visualization/UI.Visualization.pack.txt +0 -11214
  224. package/assets/docs/UI.Visualization/pack-foundation.ps1 +0 -165
  225. package/assets/docs/UI.Visualization/pack-foundation.sh +0 -206
  226. package/assets/docs/UI.Visualization/pack-reference-foundation.ps1 +0 -159
  227. package/assets/docs/UI.Visualization/pack-reference-foundation.sh +0 -205
  228. package/assets/docs/UI.Visualization/unpack-foundation.ps1 +0 -126
  229. package/assets/docs/UI.Visualization/unpack-foundation.sh +0 -217
  230. package/assets/docs/UI.Visualization/unpack-reference-foundation.ps1 +0 -129
  231. package/assets/docs/UI.Visualization/unpack-reference-foundation.sh +0 -218
  232. package/assets/docs/command.txt +0 -295
  233. package/assets/docs/domainspecs/UIVisualization/chart-bubble.md +0 -70
  234. package/assets/docs/domainspecs/UIVisualization/chart-dimred.md +0 -58
  235. package/assets/docs/domainspecs/UIVisualization/chart-heatmap.md +0 -62
  236. package/assets/docs/domainspecs/UIVisualization/chart-network.md +0 -69
  237. package/assets/docs/domainspecs/UIVisualization/chart-parallel.md +0 -75
  238. package/assets/docs/domainspecs/UIVisualization/chart-scurve.md +0 -66
  239. package/assets/docs/domainspecs/UIVisualization/chart-survival.md +0 -69
  240. package/assets/docs/domainspecs/UIVisualization/chart-trellis.md +0 -68
  241. package/assets/docs/domainspecs/UIVisualization/chart-violin.md +0 -61
  242. package/assets/docs/domainspecs/UIVisualization/chart-volcano.md +0 -63
  243. package/assets/docs/domainspecs/UIVisualization/charting-standards.domain.md +0 -80
  244. package/assets/docs/domainspecs/UIVisualization/clean-architecture.domain.md +0 -87
  245. package/assets/docs/domainspecs/UIVisualization/coding-standards.domain.md +0 -47
  246. package/assets/docs/domainspecs/UIVisualization/comandrulemap.md +0 -130
  247. package/assets/docs/domainspecs/UIVisualization/component-contracts.domain.md +0 -67
  248. package/assets/docs/domainspecs/UIVisualization/data-source.domain.md +0 -68
  249. package/assets/docs/domainspecs/UIVisualization/domain-requirements.md +0 -110
  250. package/assets/docs/domainspecs/UIVisualization/folder-structure.domain.md +0 -55
  251. package/assets/docs/domainspecs/UIVisualization/state-management.domain.md +0 -67
  252. package/assets/docs/domainspecs/UIVisualization/testing.domain.md +0 -52
  253. package/assets/docs/domainspecs/UIVisualization/ui-viz-terms.md +0 -39
  254. package/assets/docs/pharma-constitution.my-ref.md +0 -86
@@ -0,0 +1,40 @@
1
+ <!--
2
+ rev-templates/ai-rules.reference.md — domain-agnostic AI OPERATING rules for
3
+ the reverse-engineering authors. Unlike the other files in this folder this is
4
+ NOT a shape skeleton — it is genuine, generic operating guidance (how to
5
+ behave), and it asserts NO project principle, NO domain content, and NO tech
6
+ stack. It is safe to load directly. Kept here (not in the greenfield docs/
7
+ tree) so the brownfield reverse-engineering authors are self-contained on a real
8
+ brownfield repo.
9
+ -->
10
+ # AI Operational Rules (reverse-engineering)
11
+
12
+ > Pure operating rules — domain-agnostic, stack-agnostic. Applies to every brownfield
13
+ > reverse-engineering authoring step (onboard's constitution + rule-pack authors, adopt).
14
+
15
+ The **code, the deterministic scan, and any adopted spec.md / design.md / source-map.md + the
16
+ OKF bundle are ground truth.** Author only what they evidence; they override any pre-trained
17
+ habit and any greenfield template ideal.
18
+
19
+ ## Evidence discipline
20
+
21
+ - Author a principle / rule ONLY for a trait the adopted docs actually evidence. If the code does
22
+ not show it, it is not a rule here.
23
+ - CITE the concrete proof inline (a design section, a named type / port / config, a spec id). An
24
+ assertion you cannot ground does not belong in the output.
25
+ - State partial / stubbed / optional behaviour AT THE LEVEL THE CODE REACHES — never the ideal.
26
+ Route unmet ideals / stubs / deferrals to the as-built debt list, never assert them.
27
+
28
+ ## Format vs content
29
+
30
+ - The skeletons in this folder are SHAPE ONLY. Copy their headings, frontmatter, and tone; never
31
+ copy a bracketed token or an example concept as if it were this project's value.
32
+ - Do NOT import a concept, identifier, terminology, regulatory claim, or rule that this project's
33
+ code / specs / designs do not evidence.
34
+
35
+ ## Operating envelope
36
+
37
+ - Write ONLY the declared output target (or, for the pack, only inside the pack folder). No
38
+ drive-by edits to unrelated files.
39
+ - No secrets, connection strings, or production hostnames in any authored file.
40
+ - Preserve the rule partition: design and implement receive no domain file.
@@ -0,0 +1,59 @@
1
+ <!--
2
+ rev-templates/comandrulemap.skeleton.md — SHAPE-ONLY reference for the pack's
3
+ comandrulemap.md (note the exact misspelling: resolve-domain reads it by that
4
+ name). It shows the five per-command headings, the RULE PARTITION (design +
5
+ implement get NO domain file), the bullet shape, and the quick-reference
6
+ table. It lists NO real rule files — every bullet is a placeholder for a file
7
+ the pack author actually generated from THIS project's evidence.
8
+
9
+ Wire ONLY files you generated. Never list a file you did not write.
10
+ -->
11
+ # [PROJECT_NAME] Domain — Command → Rule-File Map
12
+
13
+ Per-command list of the **[PROJECT_NAME] domain** rule files loaded (via `resolve-domain` +
14
+ `domain-select`, into the sticky standards set) for the spec-anchored orchestrator pipeline.
15
+
16
+ **The model (see `.aw-spec/RULE-PARTITION.md`):** domain files feed only three
17
+ consumers — **specify** (authors them into the spec as FR/BR/CN-/DC-/IC-), **constitution** (the
18
+ domain principles), and the **gates** (conformance checklist). **design** and **implement** load
19
+ **NO** domain file — the domain reaches them solely through the spec/design ids. This is the rule
20
+ partition; preserve it exactly.
21
+
22
+ - All paths are workspace-relative and live in `docs/domainspecs/[domain]/`.
23
+ - `resolve-domain --command <name>` collects the `- ` bullets under `## /<name>`.
24
+
25
+ ---
26
+
27
+ ## /aw-spec-constitution
28
+ <!-- Domain identity / regulatory / interop sources that become domain principles in
29
+ constitution.domain.md. -->
30
+ - docs/domainspecs/[domain]/[identity-or-requirements-file].md
31
+ - docs/domainspecs/[domain]/[each generated domain-principle source].md
32
+
33
+ ## /aw-spec-specify
34
+ <!-- The FULL generated domain set. Specify models the domain and LIFTS the overlay constraints
35
+ into the spec's CN-/DC-/IC- (design/implement never see these files). -->
36
+ - docs/domainspecs/[domain]/[each generated domain rule file].md
37
+
38
+ ## /aw-spec-design
39
+ _None — design loads no domain file. Domain reaches design only through the spec (BR-/CN-/DC-/IC-)._
40
+
41
+ ## /aw-spec-implement
42
+ _None — implement loads no domain file. Domain reaches implement only through design.md._
43
+
44
+ ## /aw-spec-gate
45
+ <!-- Conformance checklist for the gates (analyze-design · analyze-slice): the domain-derived
46
+ constraints design/implement were NOT given as authoring input, VALIDATED against output. -->
47
+ - docs/domainspecs/[domain]/[each *.domain.md overlay to validate against].md
48
+
49
+ ---
50
+
51
+ ## Quick reference (command → domain file count)
52
+
53
+ | Command | Domain rule files | Role |
54
+ |---|---|---|
55
+ | /aw-spec-constitution | [n] | domain principles |
56
+ | /aw-spec-specify | [n] | author into spec (lift → CN-/DC-/IC-) |
57
+ | /aw-spec-design | 0 | none — spec is the only domain input |
58
+ | /aw-spec-implement | 0 | none — design is the only domain input |
59
+ | /aw-spec-gate | [n] | conformance checklist (validate, don't author) |
@@ -0,0 +1,97 @@
1
+ <!--
2
+ rev-templates/commandtechrulemap.skeleton.md — SHAPE-ONLY reference for the
3
+ pack's commandtechrulemap.md (resolve-tech reads it by that exact name — the
4
+ TECHNICAL twin of comandrulemap.md, which resolve-domain reads). It shows the
5
+ per-command headings, the TECHNICAL RULE PARTITION, the bullet shape, and the
6
+ quick-reference table. It lists NO real rule files — every bullet is a
7
+ placeholder for a tech/ file the pack author actually generated from THIS
8
+ project's CODE.
9
+
10
+ Wire ONLY files you generated (all under docs/domainspecs/[domain]/tech/).
11
+ Never list a file you did not write. Never list a greenfield docs/architecture,
12
+ docs/security, docs/governance, or docs/interop path — those are the greenfield
13
+ fixture and are NOT this project's rules.
14
+ -->
15
+ # [PROJECT_NAME] — Command → Technical-Rule-File Map (as-built)
16
+
17
+ Per-command list of the **[PROJECT_NAME] technical** rule files loaded (via `resolve-tech` +
18
+ the `tech-select` module, into the sticky standards set) for the spec-anchored orchestrator
19
+ pipeline. This is the technical counterpart of `comandrulemap.md` (which maps the DOMAIN rule
20
+ files), and the CODE-DERIVED replacement for the greenfield technical map.
21
+
22
+ **The model:** the technical rule files (this project's own architecture / persistence /
23
+ concurrency / testing / security-posture set, reverse-engineered from the code into
24
+ `docs/domainspecs/[domain]/tech/`) are CONFIGURATION — tune this map, not the workflows. The
25
+ technology base itself (`constitution.technical.md`) is NOT listed here — every consumer still
26
+ refers to it directly, as-is.
27
+
28
+ - All paths are workspace-relative and live in `docs/domainspecs/[domain]/tech/`.
29
+ - `resolve-tech --command <name>` collects the `- ` bullets under `## /<name>`.
30
+ - **`## /aw-spec-specify` is the MODELLING-METHODOLOGY slot** — exactly one file,
31
+ `tech/domain-modelling.md`: HOW this code expresses a domain model. Never an architecture /
32
+ persistence / codegen / security file; those would break specify's domain purity. Every other
33
+ heading below feeds the HOW phases.
34
+ - A command with no heading here loads no mapped technical file (only the workflow's universal
35
+ `ai-rules.md` seed + `constitution.technical.md`, referred to directly).
36
+
37
+ ---
38
+
39
+ ## /aw-spec-specify
40
+ <!-- MODELLING METHODOLOGY ONLY — exactly one file. HOW this codebase expresses a domain model
41
+ (what marks an aggregate root, entity vs value object, where invariants live, the context
42
+ boundary), NOT what the model is (that is the domain pack's domain-driven-design.domain.md,
43
+ wired via comandrulemap). No technology rule may appear under this heading. -->
44
+ - docs/domainspecs/[domain]/tech/domain-modelling.md
45
+
46
+ ## /aw-spec-design
47
+ <!-- The as-built architecture / cross-cutting technical rules the design author mediates the spec
48
+ against. NO domain file here — domain reaches design only as spec ids. -->
49
+ - docs/domainspecs/[domain]/tech/[as-built-architecture].md
50
+ - docs/domainspecs/[domain]/tech/[each generated architecture/cross-cutting rule].md
51
+
52
+ ## /aw-spec-implement
53
+ <!-- The framework / code-generation rule set the generator builds against (from design.md). -->
54
+ - docs/domainspecs/[domain]/tech/[each generated codegen/convention rule].md
55
+
56
+ ## /aw-spec-implement-delta
57
+ <!-- The CR analog of implement — same code-generation set, scoped to the delta-design. -->
58
+ - docs/domainspecs/[domain]/tech/[each generated codegen/convention rule].md
59
+
60
+ ## /aw-spec-build
61
+ <!-- The layering + convention rules the compile-fixer respects. -->
62
+ - docs/domainspecs/[domain]/tech/[as-built-architecture].md
63
+
64
+ ## /aw-spec-analyze-slice
65
+ <!-- The design↔code conformance gate's TECHNICAL checklist (validate, don't author). -->
66
+ - docs/domainspecs/[domain]/tech/[testing/convention rule to validate against].md
67
+
68
+ ## /aw-spec-adopt
69
+ <!-- Brownfield reverse-engineering: the technical REFERENCE set the reversed design mediates the
70
+ reversed spec ↔ existing code against — the CODE wins, these are reference only. -->
71
+ - docs/domainspecs/[domain]/tech/[architecture/cross-cutting reference rule].md
72
+
73
+ ## /aw-spec-run
74
+ <!-- The runtime / execution conventions the app-run step honors — add ONLY if the code evidences
75
+ a runtime/hosting concern file. NOT data-migration (migration is the deferred later phase). -->
76
+ - docs/domainspecs/[domain]/tech/[runtime/hosting rule].md
77
+
78
+ <!-- Do NOT add /aw-spec-characterize or /aw-spec-parity in the DEV flow — characterize is
79
+ opt-on-touch and parity is deferred to the migration phase. /aw-spec-constitution is NOT
80
+ mapped either (constitution.technical.md is referred to directly). Add such a heading later
81
+ ONLY if that phase is entered AND you generated a file it should load — an absent heading
82
+ soft-continues (loads nothing). -->
83
+
84
+ ---
85
+
86
+ ## Quick reference (command → technical file count)
87
+
88
+ | Command | Technical rule files | Role |
89
+ |---|---|---|
90
+ | /aw-spec-specify | 1 | the as-built modelling methodology the domain model is expressed in — no technology |
91
+ | /aw-spec-design | [n] | as-built architecture the design author mediates the spec against |
92
+ | /aw-spec-implement | [n] | code-generation set the generator builds against (from design.md) |
93
+ | /aw-spec-implement-delta | [n] | same code-generation set, scoped to the open change's delta-design |
94
+ | /aw-spec-build | [n] | layering + convention rules the compile-fixer respects |
95
+ | /aw-spec-analyze-slice | [n] | conformance rules the design↔code gate validates against |
96
+ | /aw-spec-adopt | [n] | technical reference set for the reversed design (brownfield) |
97
+ | /aw-spec-run | [n] | runtime/execution conventions the app-run step honors (only if evidenced) |
@@ -0,0 +1,61 @@
1
+ <!--
2
+ rev-templates/domain-constitution.skeleton.md — SHAPE-ONLY reference for the
3
+ domain-constitution SOURCE (docs/[domain]-constitution.md), the human-readable
4
+ charter the domain half is authored from (so the normal /aw-spec-orch
5
+ constitution can re-derive it later). It shows the Project-Identity + Domain-
6
+ Principle shape ONLY. No principle set to inherit; every principle is
7
+ discovered from the adopted specs and cited.
8
+
9
+ THIS IS A PROJECT CHARTER, NOT AN AGGREGATE SPEC. Even with one adopted
10
+ aggregate, describe the domain / bounded context AS A WHOLE — the adopted
11
+ aggregate(s) are the current evidence, never the subject.
12
+ -->
13
+ # [PROJECT_NAME] Domain Constitution (as-built)
14
+
15
+ > `origin: reverse-engineered` · [YYYY-MM-DD]. Domain addenda to the technology base — compose
16
+ > with the technical half; not ratified on its own.
17
+
18
+ ## Project Identity
19
+
20
+ - **Project name:** [PROJECT_NAME] (from the OKF overview).
21
+ - **Mission:** [from the OKF overview Purpose].
22
+ - **Bounded contexts / aggregate map:** [list the adopted aggregate(s) AND named external
23
+ references / ports as not-yet-adopted contexts — from the overview's aggregate map + index].
24
+ - **Architecture posture:** [as-built posture named from the designs — not an ideal].
25
+
26
+ ## Domain Principles
27
+
28
+ <!-- Numbered to CONTINUE the technology base, which is authored later and is evidenced-only (do
29
+ NOT assume it ends at any fixed numeral). Use a stable "D1, D2, …" convention here; the
30
+ composed constitution assigns the exact roman numerals. TITLE each by its DOMAIN CONCERN,
31
+ never by an aggregate name. State each as a rule that would still hold if a second aggregate
32
+ entered the same context; cite the aggregate(s) + spec ids as the evidence it generalises. -->
33
+
34
+ ### D1 — [DOMAIN-CONCERN TITLE] [(NON-NEGOTIABLE)?]
35
+ [The rule the code ACTUALLY enforces — as-built, testable. Note an observed gap as a plain
36
+ principle, not a target.]
37
+ Extends technology [principle ref]. Evidence: [BR-/CN-/DC-/IC-/FR- ids]. → [pack file(s)]
38
+
39
+ ### D2 — [DOMAIN-CONCERN TITLE] [(NON-NEGOTIABLE)?]
40
+ […]
41
+ Extends technology [principle ref]. Evidence: [ids]. → [pack file(s)]
42
+
43
+ <!-- … one per domain concern the specs evidence … -->
44
+
45
+ ## Folder Structure Additions
46
+
47
+ - [Only domain-specific additions the module actually uses; otherwise "none beyond the base".]
48
+
49
+ ## Security & Governance Addenda
50
+
51
+ - [As-built posture: auditability, authorization surface, classification — named from evidence.]
52
+ - [Stub/permissive adapters recorded as migration debt, not claimed as satisfied ideals.]
53
+
54
+ ## Governance Overrides
55
+
56
+ - [Domain change-authority / mandatory approvers — observed or TODO(GOVERNANCE): assign.]
57
+ - Base amendment procedure and SemVer policy in the technical half still apply.
58
+
59
+ ## Domain Requirements Pointer
60
+
61
+ → docs/domainspecs/[domain]/domain-requirements.md
@@ -0,0 +1,48 @@
1
+ ---
2
+ origin: reverse-engineered
3
+ generated_by: aw-spec-onboard/[VERSION]
4
+ ---
5
+ <!--
6
+ rev-templates/domain-requirements.skeleton.md — SHAPE-ONLY reference for the
7
+ pack's domain-requirements.md: a PROJECT-LEVEL overview of the domain the pack
8
+ governs (not a single-aggregate spec). It opens with a bounded-context /
9
+ module map (from the OKF overview + aggregate index), then per-subsection
10
+ pointers to the generated rule files, platform topology, and governance
11
+ overrides. Fill the map from the ACTUAL adopted aggregates + named external
12
+ references; add a subsection pointer ONLY for a file you generated.
13
+ -->
14
+ # DOMAIN REQUIREMENTS — [PROJECT_NAME] (project-level)
15
+
16
+ > Project-level enumeration and headline profiles for the **[PROJECT_NAME]** domain. Detailed
17
+ > domain rules are expanded in the sibling files in this folder. Reverse-engineered, as-built.
18
+
19
+ =====================================================================
20
+ [DOMAIN: Bounded Contexts / Modules]
21
+ =====================================================================
22
+ - [Context / module] — aggregate root: **[Aggregate]** (adopted — current evidence); owns
23
+ [entities] and the value objects ([named VOs]). See [[domain-driven-design.domain]].
24
+ - [Named external reference / port] — [role]; not adopted as an aggregate.
25
+ - [… list each bounded context observed in the OKF overview / aggregate index …]
26
+
27
+ =====================================================================
28
+ [DOMAIN: subsection pointers]
29
+ =====================================================================
30
+ [DOMAIN: <subsection>] -> docs/domainspecs/[domain]/[generated-file].md
31
+ [DOMAIN: <subsection>] -> docs/domainspecs/[domain]/[generated-file].md
32
+ [DOMAIN: Platform Topology] -> below
33
+
34
+ =====================================================================
35
+ [DOMAIN: Platform Topology]
36
+ =====================================================================
37
+ - [Runtime / external dependencies AS INVENTORIED — from the OKF overview/platform note, not an ideal.]
38
+ - [Only what the platform actually declares; unknowns are Open Questions, not assumed capabilities.]
39
+
40
+ =====================================================================
41
+ [DOMAIN: Governance Overrides]
42
+ =====================================================================
43
+ - [Approvers / change-authority observed or TODO(GOVERNANCE): assign at ratification.]
44
+ - [Any domain-specific review trigger the code/specs evidence.]
45
+
46
+ ## Related
47
+
48
+ - [[domain-driven-design.domain]] · [[<generated siblings>]]
@@ -0,0 +1,39 @@
1
+ ---
2
+ origin: reverse-engineered
3
+ generated_by: aw-spec-onboard/[VERSION]
4
+ concern: "[concern-slug]"
5
+ ---
6
+ <!--
7
+ rev-templates/domain-rule-file.skeleton.md — SHAPE-ONLY reference for ONE
8
+ generated `<concern>.domain.md` overlay in the pack. Write one such file per
9
+ concern the adopted specs/designs ACTUALLY exhibit (evidenced-only, lean) —
10
+ e.g. domain-driven-design, persistence, auditing, authorization, cqrs,
11
+ eventing, data-classification, api-versioning, or a domain reference file for
12
+ an identifier/vocabulary the code uses.
13
+
14
+ Every rule below MUST trace to a BR-/CN-/DC-/IC-/FR- id, a named value object
15
+ / port / entity, or the OKF overview. No rule the code does not evidence.
16
+ Keep the frontmatter (origin + generated_by + concern). Copy the SHAPE only.
17
+ -->
18
+ # [Concern] — [PROJECT_NAME] Domain Addenda
19
+
20
+ > Technology base: [[<technical-base-concern>]]. Commands: [the commands this file feeds, per the partition].
21
+
22
+ > [One-line framing of what this concern IS in this project — from evidence, not an ideal.]
23
+
24
+ ## [Section — e.g. Categories / Rules / Invariants]
25
+
26
+ - [As-built rule the code enforces.] (evidence: [BR-/CN-/DC-/IC-/FR- id or named type])
27
+ - [As-built rule.] (evidence: […])
28
+
29
+ ## [Section — e.g. Exposure & logging / Constraints / Lifecycle]
30
+
31
+ - [As-built rule.] (evidence: […])
32
+
33
+ <!-- Where the code's behaviour is a stub / partial / permissive, STATE IT AS-BUILT and note that
34
+ the CONTRACT still stands (stub behaviour is migration debt, not a waiver) — do not upgrade a
35
+ stub into a satisfied ideal. -->
36
+
37
+ ## Related
38
+
39
+ - [[<sibling generated overlay>]] · [[<technical-base-concern>]]
@@ -0,0 +1,106 @@
1
+ <!--
2
+ ═══════════════════════════════════════════════════════════════════════════
3
+ rev-templates/technical-constitution.skeleton.md — SHAPE-ONLY reference.
4
+
5
+ This file is the FORMAT + VOCABULARY reference for the reverse-engineered
6
+ TECHNICAL half (constitution.technical.md). It is loaded as a `standards:`
7
+ entry for the technical-half author (include_standards:true). It carries the
8
+ AppWeaver principle-heading style, the Sync-Impact-Report shape, the
9
+ evidence-line pattern, and the section skeleton — and NOTHING ELSE.
10
+
11
+ IT DELIBERATELY CONTAINS NO PRINCIPLE SET. There is no fixed I–XV list to
12
+ inherit. Every [BRACKET] token below is a slot the author fills from evidence
13
+ — never a value to copy. Copy the SHAPE, discover the CONTENT from the code.
14
+
15
+ DISCIPLINE THIS SKELETON ENFORCES (structurally — there is no project content
16
+ here to leak):
17
+ • EVIDENCE-FIRST — author a principle ONLY for a technology trait the
18
+ adopted design.md files + the OKF overview/platform note actually
19
+ evidence. If the code does not show it, it is not a principle.
20
+ • CITE inline — every principle ends with an `(evidence: …)` line naming a
21
+ design section, a concrete type / port / DbContext / config, or an OKF
22
+ stack line. A principle with no groundable evidence does not belong.
23
+ • AS-BUILT LEVEL — state a partial / stubbed / optional trait at the level
24
+ the code actually reaches; never the aspirational ideal.
25
+ • OMIT pure aspiration — a trait the code shows zero of is not softened into
26
+ a principle; it is left out.
27
+ • ROUTE gaps — an unmet ideal / stub / inactive-optional concern goes into
28
+ the "As-Built Debt → migration backlog" list below, never asserted.
29
+ • VARIABLE LENGTH — number sequentially from I with no gaps and no padding
30
+ to a fixed count. The final numeral is the domain half's continuation
31
+ point.
32
+ ═══════════════════════════════════════════════════════════════════════════
33
+ -->
34
+ <!--
35
+ Sync Impact Report
36
+ - Version: [OLD] -> [NEW] (reverse-engineered technical baseline)
37
+ - Project: [PROJECT_NAME]
38
+ - Discovered technical principles: I–[N] (domain half continues at [N+1])
39
+ - Principle set (as-built):
40
+ I [PRINCIPLE_TITLE]
41
+ II [PRINCIPLE_TITLE]
42
+ … (only traits the code evidences — no fixed count)
43
+ - Template ideals DELIBERATELY OMITTED (lack of as-built evidence):
44
+ - [IDEAL] — [why the code does not evidence it]
45
+ - …
46
+ - As-Built Debt → migration backlog (see knowledge/migration-backlog.md; do not restate the table):
47
+ - [gap / stub / inactive-optional concern] — [where it is tracked]
48
+ - …
49
+ - Dependent artifacts:
50
+ - constitution.domain.md — ⚠ authored next; continues at [N+1]
51
+ - docs/[domain]-constitution.md — [✅/⚠] domain charter source
52
+ - docs/domainspecs/[domain]/ — [✅/⚠] pack
53
+ - TODOs: [none mechanical | …]
54
+ -->
55
+ # [PROJECT_NAME] Constitution — Technical Base
56
+
57
+ > Reverse-engineered, **as-built**, domain-agnostic technical half. Authority for DESIGN and
58
+ > IMPLEMENT. Domain principles live in `constitution.domain.md` (continues at **[N+1]**).
59
+ > This file asserts only technology traits evidenced by the adopted designs + OKF overview/platform.
60
+
61
+ ## Core Principles
62
+
63
+ <!-- One block PER EVIDENCED TRAIT. Tag (NON-NEGOTIABLE) only where the code enforces it as such.
64
+ Replace the bracketed text; keep the `### <numeral>. <title>` + rule + `(evidence: …)` shape. -->
65
+
66
+ ### I. [PRINCIPLE TITLE] [(NON-NEGOTIABLE)?]
67
+ [One declarative, testable rule the adopted designs actually evidence. State it at the level the
68
+ code reaches — partial/stubbed/optional traits are stated as partial, not as the ideal.]
69
+ (evidence: [design §X.Y named type / port / DbContext / config; or OKF overview Tech-stack line])
70
+
71
+ ### II. [PRINCIPLE TITLE] [(NON-NEGOTIABLE)?]
72
+ […]
73
+ (evidence: […])
74
+
75
+ <!-- … continue with only the principles the code evidences … -->
76
+
77
+ > **Domain half continues at principle [N+1]** in `constitution.domain.md`.
78
+
79
+ ## Mandatory Folder Structure (base)
80
+
81
+ - [Solution projects / module layout AS INVENTORIED — from the OKF overview + designs, not an ideal.]
82
+ - [Cross-cutting host files that stay at their template levels.]
83
+ - Domain-specific folder additions (if any) are declared only in the domain constitution half.
84
+
85
+ ## Conventions, Forbidden Patterns, AI Rules & Quality Gates (base)
86
+
87
+ - [Prefer the framework abstractions ALREADY in use — name them from evidence.]
88
+ - [Forbidden patterns the code's structure implies — e.g. no cross-aggregate write, endpoints do not touch persistence.]
89
+ - Base AI operating rules: [pointer to the operating-rules reference].
90
+ - Any pre-existing greenfield standards docs are **reference only** until reverse-engineered against
91
+ this codebase — where they conflict with the as-built evidence above, **this constitution wins**.
92
+
93
+ ## Governance
94
+
95
+ - This technical half + the paired domain half supersede README / agent-context files where they
96
+ disagree on engineering rules.
97
+ - Amendments via PR that updates the affected half (+ pack/docs if needed), includes a migration
98
+ plan for non-compliant code, and bumps SemVer:
99
+ - **MAJOR** — remove/weaken a NON-NEGOTIABLE principle or break mandatory structure
100
+ - **MINOR** — add a principle or mandatory section
101
+ - **PATCH** — clarifications
102
+ - Reviewers cite principle numbers. Domain change-authority overrides live in the domain half.
103
+ - Runtime agent guidance MUST point at the composed constitution and MUST NOT restate these
104
+ principles at length.
105
+
106
+ **Version**: [X.Y.Z] | **Ratified**: [YYYY-MM-DD] | **Last Amended**: [YYYY-MM-DD]
@@ -0,0 +1,54 @@
1
+ ---
2
+ origin: reverse-engineered
3
+ generated_by: aw-spec-onboard/[VERSION]
4
+ concern: "[concern-slug]"
5
+ ---
6
+ <!--
7
+ rev-templates/technical-rule-file.skeleton.md — SHAPE-ONLY reference for ONE
8
+ generated technical rule file in the pack's tech/ folder
9
+ (docs/domainspecs/[domain]/tech/<concern>.md). It is the TECHNICAL twin of
10
+ domain-rule-file.skeleton.md. Write one such file per TECHNOLOGY concern the
11
+ CODE ACTUALLY exhibits (evidenced-only, lean) — e.g. as-built-architecture,
12
+ persistence, concurrency, testing, security-posture, api-surface, eventing,
13
+ observability, hosting — NOT per domain concern (those are the *.domain.md
14
+ overlays), NOT per greenfield ideal.
15
+
16
+ ONE concern in this pack is not a technology concern and is still written here:
17
+ `domain-modelling` — the as-built modelling METHODOLOGY (what marks an aggregate
18
+ root, entity vs value object, where invariants live, the context boundary). It is
19
+ the only file wired under `## /aw-spec-specify`, and it carries NO business
20
+ vocabulary: HOW this code models, never WHAT it models (that is the domain pack's
21
+ domain-driven-design.domain.md). Same shape as below — cite code coordinates.
22
+
23
+ Every rule below MUST cite a CODE COORDINATE (a real file/folder path or named
24
+ type) and, where it maps, the technical-constitution principle numeral it
25
+ details. This is the DETAIL layer under constitution.technical.md — the thin
26
+ ratified principle points here; here is the enforceable rule. State what the
27
+ code DOES (quirks, stubs, partials included), never a greenfield assumption.
28
+ Keep the frontmatter (origin + generated_by + concern). Copy the SHAPE only —
29
+ this file carries NO real technology, path, or framework name.
30
+ -->
31
+ # [Concern] — [PROJECT_NAME] Technical Rule (as-built)
32
+
33
+ > Ratified by: constitution.technical.md principle [N] ([short principle title]).
34
+ > Commands: [the technical commands this file feeds, per the partition — e.g. design · implement · build].
35
+
36
+ > [One-line framing of what this concern IS in this codebase — from the code, not an ideal.]
37
+
38
+ ## [Section — e.g. Structure / Layering / Rules / Contracts]
39
+
40
+ - [As-built rule the code follows.] (code: [real file/folder path or named type]; principle [N])
41
+ - [As-built rule.] (code: […])
42
+
43
+ ## [Section — e.g. Dependency direction / Constraints / Conventions]
44
+
45
+ - [As-built rule.] (code: […])
46
+
47
+ <!-- Where the code's behaviour is a stub / partial / permissive / inactive, STATE IT AS-BUILT at the
48
+ level the code reaches, and mark it so — do NOT upgrade a stub into a satisfied greenfield ideal,
49
+ and do NOT invent a rule the code does not evidence. An unmet ideal is simply omitted here
50
+ (migration/modernization is a separate later phase, not this pack's concern). -->
51
+
52
+ ## Related
53
+
54
+ - [[<sibling generated tech rule>]] · constitution.technical.md principle [N]
@@ -0,0 +1,160 @@
1
+ # =============================================================================
2
+ # _smoke — CI smoke workflow for the orchestrator engine (no model, no writes
3
+ # outside .aw-spec/orchestrator/.smoke-out)
4
+ #
5
+ # Exercises every extended construct in one run: inputs, set (raw object),
6
+ # execute_script (read-only subcommand), verify_context gates, ask
7
+ # (non-interactive default), foreach + while loops + break, agent_query
8
+ # (mock:), agent_author (mock content), build_context, include
9
+ # (domain-select module), dispatch_hooks (empty).
10
+ #
11
+ # Run:
12
+ # python3 .aw-spec/orchestrator/orchestrator.py \
13
+ # .aw-spec/orchestrator/workflows/_smoke.orch.yaml --non-interactive --json
14
+ # Expected: status ok, echo=hello, sum of foreach passes, smoke.md written.
15
+ # =============================================================================
16
+
17
+ name: orch-smoke
18
+ dialect: aw-spec.orchestrator/v1
19
+
20
+ inputs:
21
+ user_input:
22
+ description: Optional text echoed into the authored artifact.
23
+ required: false
24
+ bind: USER_INPUT
25
+
26
+ scripts:
27
+ actions:
28
+ sh: .aw-spec/scripts/bash/aw-spec-actions.sh
29
+ ps1: .aw-spec/scripts/powershell/aw-spec-actions.ps1
30
+
31
+ vars:
32
+ out_dir: .aw-spec/orchestrator/.smoke-out
33
+ seen: ""
34
+
35
+ workflow:
36
+
37
+ # set with a raw list (resolve_value keeps it a real list)
38
+ - id: seed
39
+ action: set
40
+ vars:
41
+ fruits: ["apple", "banana"]
42
+ echo: "hello"
43
+
44
+ # F1: read-only script subcommand; outputs[] binding
45
+ - id: script_ro
46
+ action: execute_script
47
+ script: { ref: actions }
48
+ subcommand: list-domains
49
+ outputs:
50
+ - { name: domains, from: "$.domains" }
51
+
52
+ # F2: gates — value gate + non-empty gate (informational, no stop)
53
+ - id: gate_value
54
+ action: verify_context
55
+ require_value: echo
56
+ equals: "hello"
57
+ on_mismatch: stop
58
+ on_mismatch_message: "set/resolve is broken"
59
+ - id: gate_nonempty
60
+ action: verify_context
61
+ require_non_empty: domains
62
+ on_empty_message: "no domains found (allowed in smoke)"
63
+
64
+ # F7: ask — --non-interactive picks the first option
65
+ - id: pick_mode
66
+ action: ask
67
+ prompt: "Smoke mode?"
68
+ options: ["fast", "slow"]
69
+ answer_var: mode
70
+ - id: gate_mode
71
+ action: verify_context
72
+ require_value: mode
73
+ equals: "fast"
74
+ on_mismatch: stop
75
+ on_mismatch_message: "non-interactive ask default is broken"
76
+
77
+ # F3: foreach over a list var, binding item + item_index
78
+ - id: each_fruit
79
+ action: loop
80
+ over: "{{fruits}}"
81
+ as: fruit
82
+ steps:
83
+ - id: collect
84
+ action: set
85
+ vars:
86
+ seen: "{{seen}}{{fruit}}@{{fruit_index}};"
87
+
88
+ # while + break still work
89
+ - id: count
90
+ action: loop
91
+ while: "true"
92
+ max_iterations: 3
93
+ steps:
94
+ - id: stop_at_1
95
+ action: break
96
+ condition: "{{iteration}} == 1"
97
+
98
+ # F6: structured query — mock: supplies the result in mock transport
99
+ - id: q_shape
100
+ action: agent_query
101
+ schema: { ok: true, items: [] }
102
+ mock: { ok: true, items: ["one", "two"] }
103
+ task: Report ok plus a short list of items.
104
+ outputs:
105
+ - { name: q_ok, from: "$.ok" }
106
+ - { name: q_items, from: "$.items" }
107
+ - id: gate_q
108
+ action: verify_context
109
+ require_true: q_ok
110
+ on_false: stop
111
+ on_false_message: "agent_query mock/result binding is broken"
112
+
113
+ # F3 again: foreach over a query-produced list
114
+ - id: each_item
115
+ action: loop
116
+ over: "{{q_items}}"
117
+ as: it
118
+ steps:
119
+ - id: collect_items
120
+ action: set
121
+ vars:
122
+ seen: "{{seen}}{{it}};"
123
+
124
+ # context management stays with the orchestrator: envelope for the author step
125
+ - id: ctx_author
126
+ action: build_context
127
+ context:
128
+ - { path: "{{out_dir}}/smoke.md", optional: true }
129
+
130
+ # F5: authored artifact — engine writes the file (mock content here)
131
+ - id: author_doc
132
+ action: agent_author
133
+ output_target: { type: file, path: "{{out_dir}}/smoke.md" }
134
+ task: "Write a one-paragraph smoke report. Echo: {{echo}} {{USER_INPUT}}"
135
+
136
+ # F2: file gate against what the engine just wrote
137
+ - id: gate_file
138
+ action: verify_context
139
+ required_files: ["{{out_dir}}/smoke.md"]
140
+
141
+ # F9: include — the shared domain-select module (read-only script + asks;
142
+ # non-interactive: gate→continue, mode→all)
143
+ - id: domain
144
+ action: include
145
+ module: .aw-spec/orchestrator/modules/domain-select.orch.yaml
146
+ with:
147
+ command: specify
148
+
149
+ # F8: hooks — empty var logs 'none'
150
+ - id: hooks
151
+ action: dispatch_hooks
152
+ hooks_from_variable: no_hooks_declared
153
+
154
+ outputs:
155
+ echo: "{{echo}}"
156
+ mode: "{{mode}}"
157
+ seen: "{{seen}}"
158
+ q_items: "{{q_items}}"
159
+ domain: "{{domain}}"
160
+ note: "all engine constructs exercised"