aw-spec-cli 0.1.7 → 0.1.9

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 (261) hide show
  1. package/assets/.appweaver/DESIGN-FORMAT.md +200 -0
  2. package/assets/.appweaver/ORCH-DIALECT.md +156 -0
  3. package/assets/.appweaver/RULE-PARTITION.md +175 -0
  4. package/assets/.appweaver/STACK-PROFILES.md +461 -0
  5. package/assets/.appweaver/ai-rules.md +180 -0
  6. package/assets/.appweaver/domain.json +1 -0
  7. package/assets/.appweaver/extensions/.registry +19 -0
  8. package/assets/.appweaver/extensions/agent-context/README.md +57 -0
  9. package/assets/.appweaver/extensions/agent-context/agent-context-config.yml +4 -0
  10. package/assets/.appweaver/extensions/agent-context/commands/aw-spec.agent-context.update.md +26 -0
  11. package/assets/.appweaver/extensions/agent-context/extension.yml +37 -0
  12. package/assets/.appweaver/extensions/agent-context/scripts/bash/update-agent-context.sh +201 -0
  13. package/assets/.appweaver/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +237 -0
  14. package/assets/.appweaver/extensions.yml +16 -0
  15. package/assets/.appweaver/feature.json +3 -0
  16. package/assets/.appweaver/init-options.json +9 -0
  17. package/assets/.appweaver/integration.json +15 -0
  18. package/assets/.appweaver/integrations/aw-spec.manifest.json +9 -0
  19. package/assets/.appweaver/interpreter/run-skill.py +1176 -0
  20. package/assets/.appweaver/memory/constitution.md +50 -0
  21. package/assets/.appweaver/orchestrator/.smoke-out/smoke.md +6 -0
  22. package/assets/.appweaver/orchestrator/AGENT-PROFILE.md +94 -0
  23. package/assets/.appweaver/orchestrator/README.md +300 -0
  24. package/assets/.appweaver/orchestrator/adapters/claude_agent_sdk.py +74 -0
  25. package/assets/.appweaver/orchestrator/adapters/google_antigravity.py +74 -0
  26. package/assets/.appweaver/orchestrator/modules/delta-design.orch.yaml +105 -0
  27. package/assets/.appweaver/orchestrator/modules/delta-spec.orch.yaml +101 -0
  28. package/assets/.appweaver/orchestrator/modules/domain-select.orch.yaml +90 -0
  29. package/assets/.appweaver/orchestrator/modules/lane-gate.orch.yaml +126 -0
  30. package/assets/.appweaver/orchestrator/modules/tech-select.orch.yaml +123 -0
  31. package/assets/.appweaver/orchestrator/orchestrator.py +1721 -0
  32. package/assets/.appweaver/orchestrator/rev-templates/ai-rules.reference.md +40 -0
  33. package/assets/.appweaver/orchestrator/rev-templates/delta-design-template.skeleton.md +101 -0
  34. package/assets/.appweaver/orchestrator/rev-templates/design-template.skeleton.md +245 -0
  35. package/assets/.appweaver/orchestrator/rev-templates/domain-constitution.skeleton.md +63 -0
  36. package/assets/.appweaver/orchestrator/rev-templates/domain-requirements.skeleton.md +48 -0
  37. package/assets/.appweaver/orchestrator/rev-templates/domain-rule-bindings.skeleton.md +59 -0
  38. package/assets/.appweaver/orchestrator/rev-templates/domain-rule-file.skeleton.md +39 -0
  39. package/assets/.appweaver/orchestrator/rev-templates/frontend-rule-file.skeleton.md +63 -0
  40. package/assets/.appweaver/orchestrator/rev-templates/tech-rule-bindings.skeleton.md +116 -0
  41. package/assets/.appweaver/orchestrator/rev-templates/technical-constitution.skeleton.md +106 -0
  42. package/assets/.appweaver/orchestrator/rev-templates/technical-rule-file.skeleton.md +54 -0
  43. package/assets/.appweaver/orchestrator/rev-templates/ui-constitution.skeleton.md +125 -0
  44. package/assets/.appweaver/orchestrator/rev-templates/ui-delta-design-template.skeleton.md +123 -0
  45. package/assets/.appweaver/orchestrator/rev-templates/ui-design-template.skeleton.md +294 -0
  46. package/assets/.appweaver/orchestrator/workflows/_smoke.orch.yaml +160 -0
  47. package/assets/.appweaver/orchestrator/workflows/aw-spec-add-component.orch.yaml +270 -0
  48. package/assets/.appweaver/orchestrator/workflows/aw-spec-adopt.orch.yaml +934 -0
  49. package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-delta-design.orch.yaml +251 -0
  50. package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-design.orch.yaml +265 -0
  51. package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-slice.orch.yaml +437 -0
  52. package/assets/.appweaver/orchestrator/workflows/aw-spec-build.orch.yaml +197 -0
  53. package/assets/.appweaver/orchestrator/workflows/aw-spec-characterize.orch.yaml +475 -0
  54. package/assets/.appweaver/orchestrator/workflows/aw-spec-close-delta.orch.yaml +181 -0
  55. package/assets/.appweaver/orchestrator/workflows/aw-spec-constitution.orch.yaml +727 -0
  56. package/assets/.appweaver/orchestrator/workflows/aw-spec-demo.orch.yaml +100 -0
  57. package/assets/.appweaver/orchestrator/workflows/aw-spec-dependency-tree.orch.yaml +69 -0
  58. package/assets/.appweaver/orchestrator/workflows/aw-spec-deploy.orch.yaml +85 -0
  59. package/assets/.appweaver/orchestrator/workflows/aw-spec-design-ui.orch.yaml +386 -0
  60. package/assets/.appweaver/orchestrator/workflows/aw-spec-design.orch.yaml +382 -0
  61. package/assets/.appweaver/orchestrator/workflows/aw-spec-finalize-delta.orch.yaml +462 -0
  62. package/assets/.appweaver/orchestrator/workflows/aw-spec-foundation.orch.yaml +265 -0
  63. package/assets/.appweaver/orchestrator/workflows/aw-spec-implement-delta.orch.yaml +253 -0
  64. package/assets/.appweaver/orchestrator/workflows/aw-spec-implement-ui.orch.yaml +267 -0
  65. package/assets/.appweaver/orchestrator/workflows/aw-spec-implement.orch.yaml +287 -0
  66. package/assets/.appweaver/orchestrator/workflows/aw-spec-inventory.orch.yaml +238 -0
  67. package/assets/.appweaver/orchestrator/workflows/aw-spec-onboard.orch.yaml +1822 -0
  68. package/assets/.appweaver/orchestrator/workflows/aw-spec-parity.orch.yaml +293 -0
  69. package/assets/.appweaver/orchestrator/workflows/aw-spec-run.orch.yaml +194 -0
  70. package/assets/.appweaver/orchestrator/workflows/aw-spec-select-domain.orch.yaml +83 -0
  71. package/assets/.appweaver/orchestrator/workflows/aw-spec-select-feature.orch.yaml +128 -0
  72. package/assets/.appweaver/orchestrator/workflows/aw-spec-select-stack.orch.yaml +296 -0
  73. package/assets/.appweaver/orchestrator/workflows/aw-spec-specify.orch.yaml +439 -0
  74. package/assets/.appweaver/scripts/bash/aw-inventory.sh +17 -0
  75. package/assets/.appweaver/scripts/bash/aw-parity.sh +13 -0
  76. package/assets/.appweaver/scripts/bash/aw-rev-constitution.sh +13 -0
  77. package/assets/.appweaver/scripts/bash/aw-spec-actions.sh +2626 -0
  78. package/assets/.appweaver/scripts/bash/aw-xref.sh +15 -0
  79. package/assets/.appweaver/scripts/bash/common.sh +533 -0
  80. package/assets/.appweaver/scripts/powershell/aw-inventory.ps1 +17 -0
  81. package/assets/.appweaver/scripts/powershell/aw-parity.ps1 +13 -0
  82. package/assets/.appweaver/scripts/powershell/aw-rev-constitution.ps1 +13 -0
  83. package/assets/.appweaver/scripts/powershell/aw-spec-actions.ps1 +2232 -0
  84. package/assets/.appweaver/scripts/powershell/aw-xref.ps1 +15 -0
  85. package/assets/.appweaver/scripts/python/aw-component-catalog.py +121 -0
  86. package/assets/.appweaver/scripts/python/aw-inventory.py +1180 -0
  87. package/assets/.appweaver/scripts/python/aw-parity.py +380 -0
  88. package/assets/.appweaver/scripts/python/aw-rev-constitution.py +329 -0
  89. package/assets/.appweaver/scripts/python/aw-stack.py +1251 -0
  90. package/assets/.appweaver/scripts/python/aw-xref.py +1330 -0
  91. package/assets/.appweaver/scripts/python/validate_okf.py +352 -0
  92. package/assets/.appweaver/stack-profiles/angular.json +16 -0
  93. package/assets/.appweaver/stack-profiles/blazor-wasm.json +17 -0
  94. package/assets/.appweaver/stack-profiles/dotnet-webapi.json +15 -0
  95. package/assets/.appweaver/stack-profiles/go-chi.json +14 -0
  96. package/assets/.appweaver/stack-profiles/java-spring.json +16 -0
  97. package/assets/.appweaver/stack-profiles/nextjs.json +16 -0
  98. package/assets/.appweaver/stack-profiles/node-express.json +15 -0
  99. package/assets/.appweaver/stack-profiles/python-fastapi.json +16 -0
  100. package/assets/.appweaver/stack-profiles/react-vite.json +17 -0
  101. package/assets/.appweaver/stack-profiles/sveltekit.json +16 -0
  102. package/assets/.appweaver/stack-profiles/vue-vite.json +17 -0
  103. package/assets/.appweaver/stacks.json +3 -0
  104. package/assets/.appweaver/templates/constitution-domain-template.md +116 -0
  105. package/assets/.appweaver/templates/constitution-technical-template.md +108 -0
  106. package/assets/.appweaver/templates/constitution-ui-template.md +116 -0
  107. package/assets/.appweaver/templates/delta-design-template.md +69 -0
  108. package/assets/.appweaver/templates/delta-spec-template.md +63 -0
  109. package/assets/.appweaver/templates/design-template.md +383 -0
  110. package/assets/.appweaver/templates/okf-concept-template.md +114 -0
  111. package/assets/.appweaver/templates/parity-manifest-template.json +49 -0
  112. package/assets/.appweaver/templates/source-map-template.md +85 -0
  113. package/assets/.appweaver/templates/spec-template.md +309 -0
  114. package/assets/.appweaver/templates/ui-design-template.md +273 -0
  115. package/assets/foundations/dotnet/ModularMonolith/ModularMonolith.Reference.pack.txt +25248 -0
  116. package/assets/foundations/dotnet/ModularMonolith/ModularMonolith.pack.txt +5726 -0
  117. package/assets/foundations/dotnet/ModularMonolith/pack-foundation.ps1 +145 -0
  118. package/assets/foundations/dotnet/ModularMonolith/pack-foundation.sh +196 -0
  119. package/assets/foundations/dotnet/ModularMonolith/pack-reference-foundation.ps1 +157 -0
  120. package/assets/foundations/dotnet/ModularMonolith/pack-reference-foundation.sh +209 -0
  121. package/assets/foundations/dotnet/ModularMonolith/unpack-foundation.ps1 +126 -0
  122. package/assets/foundations/dotnet/ModularMonolith/unpack-foundation.sh +217 -0
  123. package/assets/foundations/dotnet/ModularMonolith/unpack-reference-foundation.ps1 +129 -0
  124. package/assets/foundations/dotnet/ModularMonolith/unpack-reference-foundation.sh +218 -0
  125. package/assets/foundations/dotnet/VerticalSlice/VerticalSlice.Reference.pack.txt +19318 -0
  126. package/assets/foundations/dotnet/VerticalSlice/VerticalSlice.pack.txt +2833 -0
  127. package/assets/foundations/dotnet/VerticalSlice/pack-foundation.ps1 +145 -0
  128. package/assets/foundations/dotnet/VerticalSlice/pack-foundation.sh +196 -0
  129. package/assets/foundations/dotnet/VerticalSlice/pack-reference-foundation.ps1 +157 -0
  130. package/assets/foundations/dotnet/VerticalSlice/pack-reference-foundation.sh +209 -0
  131. package/assets/foundations/dotnet/VerticalSlice/unpack-foundation.ps1 +126 -0
  132. package/assets/foundations/dotnet/VerticalSlice/unpack-foundation.sh +217 -0
  133. package/assets/foundations/dotnet/VerticalSlice/unpack-reference-foundation.ps1 +129 -0
  134. package/assets/foundations/dotnet/VerticalSlice/unpack-reference-foundation.sh +218 -0
  135. package/assets/foundations/dotnet/components/Email/README.md +119 -0
  136. package/assets/foundations/dotnet/components/Email/ReferenceEndpoints/SendEmailEndpoint.cs +84 -0
  137. package/assets/foundations/dotnet/components/Email/integration.md +300 -0
  138. package/assets/foundations/dotnet/components/Jobs/README.md +113 -0
  139. package/assets/foundations/dotnet/components/Jobs/integration.md +259 -0
  140. package/assets/foundations/dotnet/components/QrGenerator/README.md +85 -0
  141. package/assets/foundations/dotnet/components/QrGenerator/ReferenceEndpoints/GenerateQrEndpoint.cs +57 -0
  142. package/assets/foundations/dotnet/components/QrGenerator/integration.md +230 -0
  143. package/assets/foundations/dotnet/components/README.md +74 -0
  144. package/assets/guardrails/README.md +222 -0
  145. package/assets/guardrails/domain/healthcare/ai-rules.domain.md +34 -0
  146. package/assets/guardrails/domain/healthcare/api-versioning.domain.md +17 -0
  147. package/assets/guardrails/domain/healthcare/auditing.domain.md +97 -0
  148. package/assets/guardrails/domain/healthcare/authorization.domain.md +26 -0
  149. package/assets/guardrails/domain/healthcare/clinical-terms.md +20 -0
  150. package/assets/guardrails/domain/healthcare/coding-standards.domain.md +26 -0
  151. package/assets/guardrails/domain/healthcare/consent.md +19 -0
  152. package/assets/guardrails/domain/healthcare/cqrs.domain.md +12 -0
  153. package/assets/guardrails/domain/healthcare/data-classification.domain.md +28 -0
  154. package/assets/guardrails/domain/healthcare/dependency-policy.domain.md +11 -0
  155. package/assets/guardrails/domain/healthcare/dicom.md +15 -0
  156. package/assets/guardrails/domain/healthcare/domain-constitution.md +119 -0
  157. package/assets/guardrails/domain/healthcare/domain-driven-design.domain.md +28 -0
  158. package/assets/guardrails/domain/healthcare/eventing.domain.md +18 -0
  159. package/assets/guardrails/domain/healthcare/fhir.md +36 -0
  160. package/assets/guardrails/domain/healthcare/folder-structure.domain.md +25 -0
  161. package/assets/guardrails/domain/healthcare/hipaa.md +34 -0
  162. package/assets/guardrails/domain/healthcare/hl7.md +15 -0
  163. package/assets/guardrails/domain/healthcare/ihe-conformance.md +31 -0
  164. package/assets/guardrails/domain/healthcare/integration-terms.md +21 -0
  165. package/assets/guardrails/domain/healthcare/persistence.domain.md +20 -0
  166. package/assets/guardrails/domain/healthcare/terminology.md +30 -0
  167. package/assets/guardrails/domain/healthcare/testing.domain.md +15 -0
  168. package/assets/guardrails/domain/healthcare/ux/accessibility-standards.md +36 -0
  169. package/assets/guardrails/domain/healthcare/ux/content-design.md +32 -0
  170. package/assets/guardrails/domain/healthcare/ux/interaction-states.md +44 -0
  171. package/assets/guardrails/domain/healthcare/ux/journey-mapping.md +40 -0
  172. package/assets/guardrails/domain/healthcare/vertical-slices.domain.md +18 -0
  173. package/assets/guardrails/domain/healthcare/zero-trust.domain.md +12 -0
  174. package/assets/guardrails/domain/pharma/ai-rules.domain.md +32 -0
  175. package/assets/guardrails/domain/pharma/api-versioning.domain.md +20 -0
  176. package/assets/guardrails/domain/pharma/atc.md +22 -0
  177. package/assets/guardrails/domain/pharma/auditing.domain.md +90 -0
  178. package/assets/guardrails/domain/pharma/authorization.domain.md +25 -0
  179. package/assets/guardrails/domain/pharma/coding-standards.domain.md +28 -0
  180. package/assets/guardrails/domain/pharma/cqrs.domain.md +16 -0
  181. package/assets/guardrails/domain/pharma/data-classification.domain.md +24 -0
  182. package/assets/guardrails/domain/pharma/data-provenance.md +21 -0
  183. package/assets/guardrails/domain/pharma/dependency-policy.domain.md +11 -0
  184. package/assets/guardrails/domain/pharma/domain-constitution.md +113 -0
  185. package/assets/guardrails/domain/pharma/domain-driven-design.domain.md +36 -0
  186. package/assets/guardrails/domain/pharma/domain-requirements.sample.md +103 -0
  187. package/assets/guardrails/domain/pharma/eventing.domain.md +18 -0
  188. package/assets/guardrails/domain/pharma/fhir.md +31 -0
  189. package/assets/guardrails/domain/pharma/folder-structure.domain.md +26 -0
  190. package/assets/guardrails/domain/pharma/hl7.md +17 -0
  191. package/assets/guardrails/domain/pharma/idmp.md +26 -0
  192. package/assets/guardrails/domain/pharma/integration-terms.md +21 -0
  193. package/assets/guardrails/domain/pharma/ndc.md +28 -0
  194. package/assets/guardrails/domain/pharma/persistence.domain.md +23 -0
  195. package/assets/guardrails/domain/pharma/pharma-terms.md +27 -0
  196. package/assets/guardrails/domain/pharma/product-lifecycle.domain.md +30 -0
  197. package/assets/guardrails/domain/pharma/regulatory-compliance.md +19 -0
  198. package/assets/guardrails/domain/pharma/terminology.md +32 -0
  199. package/assets/guardrails/domain/pharma/testing.domain.md +19 -0
  200. package/assets/guardrails/domain/pharma/vertical-slices.domain.md +17 -0
  201. package/assets/guardrails/domain/pharma/zero-trust.domain.md +12 -0
  202. package/assets/guardrails/projects/dotnet-default-project/domain/domain-requirements.md +58 -0
  203. package/assets/guardrails/projects/dotnet-default-project/domain-rule-bindings.md +113 -0
  204. package/assets/guardrails/projects/dotnet-default-project/frontend/ui-requirements.md +43 -0
  205. package/assets/guardrails/projects/dotnet-default-project/service/technical-requirements.md +40 -0
  206. package/assets/guardrails/projects/dotnet-default-project/tech-rule-bindings.md +263 -0
  207. package/assets/guardrails/requirement-spec.txt +27 -0
  208. package/assets/guardrails/technology/dotnet-webapi/PACKAGING.md +184 -0
  209. package/assets/guardrails/technology/dotnet-webapi/api-versioning.md +44 -0
  210. package/assets/guardrails/technology/dotnet-webapi/auditing.md +96 -0
  211. package/assets/guardrails/technology/dotnet-webapi/authorization-matrix.md +14 -0
  212. package/assets/guardrails/technology/dotnet-webapi/authorization.md +39 -0
  213. package/assets/guardrails/technology/dotnet-webapi/clean-architecture.md +54 -0
  214. package/assets/guardrails/technology/dotnet-webapi/coding-standards.md +87 -0
  215. package/assets/guardrails/technology/dotnet-webapi/cqrs.md +63 -0
  216. package/assets/guardrails/technology/dotnet-webapi/data-classification.md +38 -0
  217. package/assets/guardrails/technology/dotnet-webapi/dependency-policy.md +40 -0
  218. package/assets/guardrails/technology/dotnet-webapi/domain-driven-design.md +91 -0
  219. package/assets/guardrails/technology/dotnet-webapi/eventing.md +57 -0
  220. package/assets/guardrails/technology/dotnet-webapi/examples/api-versioning.md +75 -0
  221. package/assets/guardrails/technology/dotnet-webapi/examples/auditing.md +84 -0
  222. package/assets/guardrails/technology/dotnet-webapi/examples/authorization.md +68 -0
  223. package/assets/guardrails/technology/dotnet-webapi/examples/clean-architecture.md +37 -0
  224. package/assets/guardrails/technology/dotnet-webapi/examples/cqrs.md +97 -0
  225. package/assets/guardrails/technology/dotnet-webapi/examples/domain-driven-design.md +141 -0
  226. package/assets/guardrails/technology/dotnet-webapi/examples/eventing.md +46 -0
  227. package/assets/guardrails/technology/dotnet-webapi/examples/persistence.md +207 -0
  228. package/assets/guardrails/technology/dotnet-webapi/examples/vertical-slices.md +151 -0
  229. package/assets/guardrails/technology/dotnet-webapi/examples/zero-trust.md +48 -0
  230. package/assets/guardrails/technology/dotnet-webapi/folder-structure.md +61 -0
  231. package/assets/guardrails/technology/dotnet-webapi/modular-monolith.md +47 -0
  232. package/assets/guardrails/technology/dotnet-webapi/persistence.md +82 -0
  233. package/assets/guardrails/technology/dotnet-webapi/technology-constitution.md +162 -0
  234. package/assets/guardrails/technology/dotnet-webapi/testing.md +55 -0
  235. package/assets/guardrails/technology/dotnet-webapi/vertical-slices.md +70 -0
  236. package/assets/guardrails/technology/dotnet-webapi/zero-trust.md +48 -0
  237. package/assets/guardrails/technology/java-spring/README.md +62 -0
  238. package/assets/guardrails/technology/nextjs/accessibility-implementation.md +56 -0
  239. package/assets/guardrails/technology/nextjs/api-client.md +56 -0
  240. package/assets/guardrails/technology/nextjs/api-integration.dotnet-webapi.md +174 -0
  241. package/assets/guardrails/technology/nextjs/api-integration.java-spring.md +203 -0
  242. package/assets/guardrails/technology/nextjs/auth-session.md +68 -0
  243. package/assets/guardrails/technology/nextjs/client-security.md +69 -0
  244. package/assets/guardrails/technology/nextjs/component-architecture.md +60 -0
  245. package/assets/guardrails/technology/nextjs/component-conventions.md +58 -0
  246. package/assets/guardrails/technology/nextjs/design-system.md +60 -0
  247. package/assets/guardrails/technology/nextjs/error-handling.md +72 -0
  248. package/assets/guardrails/technology/nextjs/forms-and-validation.md +75 -0
  249. package/assets/guardrails/technology/nextjs/frontend-testing.md +94 -0
  250. package/assets/guardrails/technology/nextjs/i18n.md +57 -0
  251. package/assets/guardrails/technology/nextjs/observability.md +67 -0
  252. package/assets/guardrails/technology/nextjs/performance-budgets.md +66 -0
  253. package/assets/guardrails/technology/nextjs/routing-navigation.md +52 -0
  254. package/assets/guardrails/technology/nextjs/state-management.md +70 -0
  255. package/assets/guardrails/technology/nextjs/ui-constitution.md +166 -0
  256. package/dist/commands/init.js +2 -2
  257. package/dist/commands/init.js.map +1 -1
  258. package/dist/utils/copy-assets.js +8 -8
  259. package/dist/utils/copy-assets.js.map +1 -1
  260. package/package.json +1 -1
  261. 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 guardrails/
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-set 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 a rule set, only inside the project 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,101 @@
1
+ <!--
2
+ ═══════════════════════════════════════════════════════════════════════════
3
+ rev-templates/delta-design-template.skeleton.md — SHAPE-ONLY reference.
4
+
5
+ This file is the FORMAT reference for the reverse-engineered DELTA-design
6
+ TEMPLATE that onboard installs at
7
+ .appweaver/templates/overrides/delta-design-template.md. It carries the neutral
8
+ bones of a change record — the classification triple, the impact and
9
+ regression sections, the two ledgers, the close contract — and NOTHING ELSE.
10
+
11
+ IT NAMES NO LAYERING AND NO TECHNOLOGY. The "Section" column below is a SLOT:
12
+ it is filled with the ACTUAL sections of the master design template generated
13
+ alongside this one, whatever the code turned out to be organised into. A
14
+ greenfield delta template's example rows name its four layers; naming any
15
+ layer here would re-import exactly the assumption onboard exists to displace.
16
+
17
+ MIRRORS THE MASTER, ALWAYS. The delta-design module classifies changes "per
18
+ the master's OWN section structure", so this template is derived FROM the
19
+ generated master design template rather than from a fixed list. If the master
20
+ has axes A, B and C, the example rows here name A, B and C. That coupling is
21
+ the point: a change is classified against the document it amends.
22
+
23
+ DISCIPLINE THIS SKELETON ENFORCES (structurally — there is no project content
24
+ here to leak):
25
+ • ONE MASTER — a change amends specs/<Aggregate>/design.md; it never opens a
26
+ second design document.
27
+ • ADDED / MODIFIED / REMOVED — the complete classification. A shared element
28
+ is MODIFIED in place, never duplicated into the change.
29
+ • EVERY ROW SERVES A SPEC ID — the delta reads the spec, never the domain
30
+ rule files.
31
+ • TECHNOLOGY-AGNOSTIC — signatures and field shapes, no code, exactly as in
32
+ the master.
33
+ ═══════════════════════════════════════════════════════════════════════════
34
+ -->
35
+ # Delta Design — [CR-ID]: [TITLE]
36
+
37
+ **Feature (aggregate)**: [Aggregate]
38
+
39
+ **Base version**: [vX.Y]
40
+
41
+ <!--
42
+ This delta applies to the SINGLE master design at specs/[Aggregate]/design.md
43
+ — never a new design doc. Classify every design change ADDED / MODIFIED /
44
+ REMOVED against the current master, per the MASTER'S OWN SECTIONS, in the same
45
+ technology-agnostic form: behaviour as signatures + pre/post/invariant/raises,
46
+ contracts as field shapes, no code. A new command is a new USER STORY realised
47
+ as delta elements, not a new feature. After this delta is applied,
48
+ `implement-delta` regenerates the touched slice and regression re-tests the
49
+ dependents of every shared element.
50
+ -->
51
+
52
+ ## Change summary
53
+
54
+ [One paragraph: what the design change is and which user story / spec delta it serves.]
55
+
56
+ ## ADDED — new design elements
57
+
58
+ <!-- New elements and the realisation of any new spec constraint, classification
59
+ or contract. "Section" names a section of THIS project's master design —
60
+ the same section titles the generated design template carries. -->
61
+
62
+ | Section (§ in design.md) | Element | Kind | Serves |
63
+ |---|---|---|---|
64
+ | [§ of the master's own structure] | `[element]` | [kind] | US-[n] · FR-[nnn] |
65
+
66
+ ## MODIFIED — existing design elements
67
+
68
+ <!-- Edits to elements the master already defines. A shared element is modified
69
+ here, in place — never copied into the change. -->
70
+
71
+ | Section (§ in design.md) | Element | What changes | Why |
72
+ |---|---|---|---|
73
+ | [§ of the master's own structure] | `[element]` | [the edit] | US-[n] |
74
+
75
+ ## REMOVED
76
+
77
+ - [design element removed + why] — or `None`
78
+
79
+ ## Cross-section impact
80
+
81
+ [Which of the master's sections ripple; shared elements touched; whether a data
82
+ migration is needed (yes/no); any contract change other systems couple to.]
83
+
84
+ ## Regression targets
85
+
86
+ [Existing user stories / behaviours to re-verify because a shared element
87
+ changed.]
88
+
89
+ ## New assumptions / deviations (from this change)
90
+
91
+ <!-- Anything this change defers — folds into the master's DA-n / WA-n ledgers
92
+ on apply. -->
93
+
94
+ - **DA-[n]**: [assumption to clarify later] — or `None`
95
+ - **WA-[n]**: [deviation to clear later] — or `None`
96
+
97
+ ## On close
98
+
99
+ `finalize-delta` merges this record into the master design.md and appends the
100
+ Change History row; `close-delta` bumps the version and archives the change
101
+ under `changes/archive/`.
@@ -0,0 +1,245 @@
1
+ <!--
2
+ ═══════════════════════════════════════════════════════════════════════════
3
+ rev-templates/design-template.skeleton.md — SHAPE-ONLY reference.
4
+
5
+ This file is the FORMAT reference for the reverse-engineered DESIGN TEMPLATE
6
+ that onboard installs at .appweaver/templates/overrides/design-template.md. It
7
+ carries the neutral bones every design document has — the header block, the
8
+ authoring contract, the traceability spine, the two deferral ledgers, the
9
+ Change History — and the section skeleton, and NOTHING ELSE.
10
+
11
+ IT NAMES NO LAYERING, NO ARCHITECTURE STYLE AND NO TECHNOLOGY — not the one a
12
+ greenfield template would assume, and not an alternative to it either, because
13
+ naming any of them hands the generator an answer to the single question it
14
+ exists to ask the code. The §2 axes below are SLOTS, discovered from the repo's
15
+ own folders, projects and modules. Every [BRACKET] token is filled FROM THE
16
+ CODE, never copied.
17
+
18
+ THIS IS A TEMPLATE OF A TEMPLATE. What onboard generates from it is not a
19
+ filled design — it is the project's design TEMPLATE, which the forward
20
+ `design` phase and `adopt` then fill once per feature. So the generated file
21
+ keeps [PLACEHOLDER] tokens and authoring comments; what onboard replaces is
22
+ the STRUCTURE (which sections exist, what they are called), not the content.
23
+
24
+ WHAT IS PINNED, AND WHY (DESIGN-FORMAT.md § Brownfield variant is the
25
+ authority — these are the only fixed points, and each earns it by being
26
+ something a tool keys on):
27
+ • §1.2 is the DOMAIN / DATA MODEL. `aw-xref` reads it for `<Other>Id`
28
+ reference edges, so its position is machinery, not taste.
29
+ • Exactly one §2 subsection's heading contains the word "Integration".
30
+ `aw-xref` matches it by keyword to extract contract edges, which is what
31
+ lets a derived layout and the greenfield layout be read by one tool.
32
+ • The traceability spine (§4) and both ledgers (§5 DA-n, §6 WA-n) survive
33
+ every layout — the analyze gates read them.
34
+ • The §0–§6 numbering itself: the forward `design` bootstrap_bf branch
35
+ names those sections in its prompt.
36
+ Everything else — how many §2 axes there are, what they are called, what
37
+ lives in each — is the code's answer, not the kit's.
38
+
39
+ DISCIPLINE THIS SKELETON ENFORCES (structurally — there is no project content
40
+ here to leak):
41
+ • AS-BUILT — describe the structural convention the code ACTUALLY follows,
42
+ confirmed by reading source, never a convention it ought to follow.
43
+ • ONE AXIS PER RECURRING STRUCTURE — a component the code has that fits no
44
+ textbook layer gets its own section; a layer the code lacks does not
45
+ appear at all, and its absence is not a gap.
46
+ • NOT DEBT — being organised unlike a reference architecture is the as-built
47
+ shape, recorded in §1.1. The §6 ledger takes only debt the code itself
48
+ evidences.
49
+ • TECHNOLOGY-AGNOSTIC — the generated template stays language-free even
50
+ though it was derived from a real stack: signatures + pre/post/invariant/
51
+ raises, contracts as field shapes. The stack binds at `implement`.
52
+ ═══════════════════════════════════════════════════════════════════════════
53
+ -->
54
+ # Design: [AGGREGATE]
55
+
56
+ **Aggregate (feature)**: `[Aggregate]`
57
+
58
+ **Design home**: `specs/[Aggregate]/design.md`
59
+
60
+ **Source spec**: `specs/[Aggregate]/spec.md`
61
+
62
+ **Version**: v1.0
63
+
64
+ **Status**: Draft
65
+
66
+ <!--
67
+ WHAT THIS DOCUMENT IS
68
+ =====================
69
+ The single, living High-Level Design for ONE aggregate — the MEDIATOR between
70
+ spec.md (WHAT/WHY) and the generated code (HOW). It carries structure,
71
+ contracts, behaviour and decisions; it is not code.
72
+
73
+ ANCHORING RULES
74
+ - Every design element traces UP to a spec id (FR-/BR-/CN-/DC-/IC-/US-/SC-)
75
+ and the whole spec is covered DOWN here (§4). No element without a spec
76
+ reason; no requirement without a design home.
77
+ - THE SPEC IS THE ONLY DOMAIN INPUT. Design reads the spec + the technical
78
+ standards, never the domain rule files. A domain rule the spec omits is
79
+ recorded as a §5 assumption, never smuggled in.
80
+ - Feature = aggregate. A later requirement is a DELTA on this document.
81
+
82
+ STRUCTURE FOLLOWS THIS PROJECT'S CODE
83
+ - [GENERATED_STRUCTURE_NOTE] — form: one or two sentences naming the
84
+ structural convention this repo actually follows and the dependency
85
+ direction it observes, with the folders/projects that evidence it. This
86
+ stands where a greenfield template would state a standing layering rule.
87
+
88
+ TECHNOLOGY-AGNOSTIC (mandatory)
89
+ - Express behaviour as SIGNATURES + pre/post/invariant/raises and contracts
90
+ as field shapes — never language code. Conceptual types only
91
+ (string, int, decimal, enum, list<T>, set<T>, id<T>, money, date). The same
92
+ design must be generatable on another stack without edits.
93
+
94
+ HOW TO AUTHOR
95
+ - Fill every [PLACEHOLDER]; keep the section order. Omit a §2 subsection only
96
+ when this feature genuinely has nothing there (say why); never "N/A".
97
+ - §5 and §6 are MANDATORY ledgers. Empty reads "None (as of vX.Y)", never a
98
+ deletion.
99
+ - GROUND each filled section in the ACTUAL CODE and the reverse-engineered
100
+ governance — cite real file/folder paths and the technical-constitution
101
+ principle the decision rests on. Never a greenfield assumption.
102
+ - Delete these authoring comments as you fill each section.
103
+ -->
104
+
105
+ ## 0. Design Overview
106
+
107
+ <!-- One paragraph: the shape of this aggregate and the 3–5 decisions that
108
+ matter most. The project's standing structural convention is NOT restated
109
+ here — it is §1.1. -->
110
+
111
+ [The architectural essence of this aggregate in 3–6 sentences.]
112
+
113
+ ### Ubiquitous Language (design delta)
114
+
115
+ <!-- Only the terms this design introduces or sharpens beyond the spec. These
116
+ become code identifiers. -->
117
+
118
+ | Term | Meaning in this design |
119
+ |---|---|
120
+ | [Port / concept name] | [precise definition] |
121
+
122
+ ## 1. Architecture Context & Domain Model
123
+
124
+ ### 1.1 As-Built Architecture
125
+
126
+ [AS_BUILT_ARCHITECTURE_CONTENT]
127
+ <!-- Form: the structural convention THIS repo follows — its real
128
+ folder/project/module names, what each holds, the dependency direction
129
+ between them, and the technology base from constitution.technical.md —
130
+ each with a representative code path. A new feature ALIGNS to this rather
131
+ than introducing a second convention. State an inconsistency as an
132
+ inconsistency and name the dominant form; do not pick a winner the code
133
+ has not picked. -->
134
+
135
+ ### 1.2 Domain / Data Model
136
+
137
+ <!-- PINNED ANCHOR — follow spec.md exactly. Entities & value objects are the
138
+ spec's Key Entities (SAME names); invariants are its Business Rules
139
+ (BR-nnn, cite each); the boundary is its Aggregate Boundary; states are its
140
+ lifecycle. Cross-slice references are BY ID and live here — the
141
+ cross-reference tool reads this section for those edges. -->
142
+
143
+ | Element | Kind | Fields / shape | Invariants (BR-) |
144
+ |---|---|---|---|
145
+ | `[Entity]` | entity [(root)] | [field: type, …] | BR-00X |
146
+ | `[ValueObject]` | value object | [field: type, …] | BR-00X |
147
+
148
+ **Lifecycle / states**: [states + transitions, or `None`]
149
+
150
+ **References to other aggregates**: [`<Other>Id` — by id only, or `None`]
151
+
152
+ ## 2. Component & Behaviour Design
153
+
154
+ <!-- ONE `### 2.n` SUBSECTION PER RECURRING STRUCTURAL AXIS THIS PROJECT USES,
155
+ each TITLED with the project's OWN folder/tier/module name. The count and
156
+ the titles are the code's answer — the slots below are illustrative
157
+ positions, not a required set. In each: the components that live there,
158
+ their behaviour in signature form, and the contracts they expose or
159
+ require. -->
160
+
161
+ ### 2.1 [PROJECT_STRUCTURAL_AXIS_NAME]
162
+
163
+ <!-- [What this axis holds in this codebase + the representative path that
164
+ evidences it.] -->
165
+
166
+ | Component | Behaviour (signature) | Pre / Post / Raises | Serves |
167
+ |---|---|---|---|
168
+ | `[Component]` | `[operation](args) -> result` | [pre / post / raises] | FR-00X · US-Y |
169
+
170
+ ### 2.n [PROJECT_STRUCTURAL_AXIS_NAME]
171
+
172
+ <!-- … one per axis the code actually shows, then stop … -->
173
+
174
+ ### 2.[N] External Integrations
175
+
176
+ <!-- PINNED ANCHOR — the heading MUST contain the word "Integration"; the
177
+ cross-reference tool matches it by keyword to extract contract edges. One
178
+ row per IC- the spec names, realised as the port/adapter this project's
179
+ own structure puts it in. Empty only if the spec has no IC-. -->
180
+
181
+ | Integration | Direction | Contract (field shape) | Realised in | Serves |
182
+ |---|---|---|---|---|
183
+ | `[External system]` | [in / out] | [request/response shape] | [§2.n component] | IC-00X |
184
+
185
+ ## 3. Cross-Cutting Concerns
186
+
187
+ <!-- One row per concern this feature must honour. "Serves" is a spec id, or a
188
+ §5 DA-n where the technical constitution mandates the element and no
189
+ per-feature spec id exists — never a fabricated CN-. Keep only the rows
190
+ this project's governance actually carries. -->
191
+
192
+ | Concern | Design decision | Serves |
193
+ |---|---|---|
194
+ | [Concern from constitution.technical.md / the spec] | [where enforced] | [spec id / DA-n] |
195
+
196
+ ## 4. Traceability (the spine)
197
+
198
+ <!-- The two-way guarantee: every FR/BR/CN/DC/IC/US/SC has a design home, and
199
+ every design element has a spec reason. EVERY CN-/DC-/IC- in the spec MUST
200
+ appear as a row. The last column names THIS project's own sections. -->
201
+
202
+ | Spec id | Type | Design element(s) | Section |
203
+ |---|---|---|---|
204
+ | FR-001 | requirement | `[element]` | [§ refs in this document's own structure] |
205
+ | BR-001 | invariant | [invariant home] | §1.2 |
206
+ | CN-001 | constraint | [where realised] | [§] |
207
+ | DC-001 | classification | [exposure enforcement] | [§] |
208
+ | IC-001 | contract | [port/adapter] | [§ Integrations] |
209
+ | US-1 | story | [end-to-end elements] | [§] |
210
+ | SC-001 | success | [where met + how verified] | [§] |
211
+
212
+ ## 5. Assumptions (to clarify later)
213
+
214
+ <!-- MANDATORY LEDGER. Every default or open interpretation this design commits
215
+ to so it can proceed without blocking — including any cross-cutting element
216
+ the technical constitution mandates that has no per-feature spec id (state
217
+ the basis as "per Const. §<n>", which is what lets the analyze gate accept
218
+ it). Empty → "None (as of vX.Y)". -->
219
+
220
+ | id | Assumption | Why deferred | Impact if wrong | Owner / resolve-by |
221
+ |---|---|---|---|---|
222
+ | DA-1 | [what was assumed] | [why not clarified now] | [blast radius] | [role / phase] |
223
+
224
+ ## 6. Deviations & Deferred Decisions (to clear later)
225
+
226
+ <!-- MANDATORY LEDGER. Structural debt KNOWINGLY taken — a shortcut, a temporary
227
+ coupling, a deferred split — with the proper end-state and the trigger that
228
+ forces the cleanup. AS-BUILT DISCIPLINE: this ledger records only debt the
229
+ CODE evidences. Being organised unlike a reference architecture is NOT a
230
+ deviation — that is the as-built shape and it belongs in §1.1.
231
+ Empty → "None (as of vX.Y)". -->
232
+
233
+ | id | Deviation taken | Proper end-state | Trigger to revisit | Serves / caused by |
234
+ |---|---|---|---|---|
235
+ | WA-1 | [the shortcut/coupling] | [the clean design] | [what forces it] | [FR / constraint] |
236
+
237
+ ## Change History
238
+
239
+ <!-- In lockstep with spec.md. finalize-delta appends the row when it merges a
240
+ delta; close-delta bumps the version and stamps it into the header. A
241
+ change is a DELTA on this document, never a new design doc. Newest last. -->
242
+
243
+ | Version | Date | Change | User stories | CR |
244
+ |---------|------|--------|--------------|-----|
245
+ | v1.0 | [DATE] | Initial design | US-1 | — |
@@ -0,0 +1,63 @@
1
+ <!--
2
+ rev-templates/domain-constitution.skeleton.md — SHAPE-ONLY reference for the
3
+ domain-constitution SOURCE (guardrails/projects/[project]/domain/domain-constitution.md),
4
+ the human-readable
5
+ charter the domain half is authored from (so the normal /appweaver
6
+ constitution can re-derive it later). It shows the Project-Identity + Domain-
7
+ Principle shape ONLY. No principle set to inherit; every principle is
8
+ discovered from the adopted specs and cited.
9
+
10
+ THIS IS A PROJECT CHARTER, NOT AN AGGREGATE SPEC. Even with one adopted
11
+ aggregate, describe the domain / bounded context AS A WHOLE — the adopted
12
+ aggregate(s) are the current evidence, never the subject.
13
+ -->
14
+ # [PROJECT_NAME] Domain Constitution (as-built)
15
+
16
+ > `origin: reverse-engineered` · [YYYY-MM-DD]. Domain addenda to the technology base — compose
17
+ > with the technical half; not ratified on its own.
18
+
19
+ ## Project Identity
20
+
21
+ - **Project name:** [PROJECT_NAME] (from the OKF overview).
22
+ - **Mission:** [from the OKF overview Purpose].
23
+ - **Bounded contexts / aggregate map:** [list the adopted aggregate(s) AND named external
24
+ references / ports as not-yet-adopted contexts — from the overview's aggregate map + index].
25
+ - **Architecture posture:** [as-built posture named from the designs — not an ideal].
26
+
27
+ ## Domain Principles
28
+
29
+ <!-- Numbered to CONTINUE the technology base, which is authored later and is evidenced-only (do
30
+ NOT assume it ends at any fixed numeral). Use a stable "D1, D2, …" convention here — this is
31
+ the human charter, not a constitution half; the domain half's author reads the finished
32
+ technical half and assigns the roman numerals there. TITLE each by its DOMAIN CONCERN,
33
+ never by an aggregate name. State each as a rule that would still hold if a second aggregate
34
+ entered the same context; cite the aggregate(s) + spec ids as the evidence it generalises. -->
35
+
36
+ ### D1 — [DOMAIN-CONCERN TITLE] [(NON-NEGOTIABLE)?]
37
+ [The rule the code ACTUALLY enforces — as-built, testable. Note an observed gap as a plain
38
+ principle, not a target.]
39
+ Extends technology [principle ref]. Evidence: [BR-/CN-/DC-/IC-/FR- ids]. → [rule file(s)]
40
+
41
+ ### D2 — [DOMAIN-CONCERN TITLE] [(NON-NEGOTIABLE)?]
42
+ […]
43
+ Extends technology [principle ref]. Evidence: [ids]. → [rule file(s)]
44
+
45
+ <!-- … one per domain concern the specs evidence … -->
46
+
47
+ ## Folder Structure Additions
48
+
49
+ - [Only domain-specific additions the module actually uses; otherwise "none beyond the base".]
50
+
51
+ ## Security & Governance Addenda
52
+
53
+ - [As-built posture: auditability, authorization surface, classification — named from evidence.]
54
+ - [Stub/permissive adapters recorded as migration debt, not claimed as satisfied ideals.]
55
+
56
+ ## Governance Overrides
57
+
58
+ - [Domain change-authority / mandatory approvers — observed or TODO(GOVERNANCE): assign.]
59
+ - Base amendment procedure and SemVer policy in the technical half still apply.
60
+
61
+ ## Domain Requirements Pointer
62
+
63
+ → guardrails/projects/[project]/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
+ project's domain/domain-requirements.md: a PROJECT-LEVEL overview of the domain the project
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>] -> guardrails/projects/[project]/domain/[generated-file].md
31
+ [DOMAIN: <subsection>] -> guardrails/projects/[project]/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,59 @@
1
+ <!--
2
+ rev-templates/domain-rule-bindings.skeleton.md — SHAPE-ONLY reference for the project's
3
+ domain-rule-bindings.md (resolve-domain reads it by that exact name — the symmetric
4
+ twin of tech-rule-bindings.md, which resolve-tech reads). 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 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 `.appweaver/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 `guardrails/projects/[project]/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
+ - guardrails/projects/[project]/domain/[identity-or-requirements-file].md
31
+ - guardrails/projects/[project]/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
+ - guardrails/projects/[project]/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
+ - guardrails/projects/[project]/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,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 project's domain/ folder. 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,63 @@
1
+ ---
2
+ origin: reverse-engineered
3
+ generated_by: aw-spec-onboard/[VERSION]
4
+ concern: "[concern-slug]"
5
+ ---
6
+ <!--
7
+ rev-templates/frontend-rule-file.skeleton.md — SHAPE-ONLY reference for ONE
8
+ generated FRONTEND LANE rule file in the project's frontend/ folder
9
+ (guardrails/projects/[project]/frontend/<concern>.md). It is the lane's twin of
10
+ technical-rule-file.skeleton.md, and it exists separately because the lane is a
11
+ different tier: these files are ratified by constitution.ui.md's UX-* series,
12
+ not by the technical half's numerals, and they govern only the code under the
13
+ lane's own root.
14
+
15
+ Write one file per EXPERIENCE concern the UI CODE ACTUALLY exhibits
16
+ (evidenced-only, lean) — e.g. ui-constitution, component-model, routing-and-
17
+ navigation, state-and-data, styling-and-design-system, accessibility,
18
+ interaction-states, forms-and-validation, internationalization, performance,
19
+ ui-testing. NOT per domain concern (those are the *.domain.md overlays), NOT
20
+ per service-tier concern (those are service/), and NOT per greenfield ideal.
21
+
22
+ ONE file in this set is the lane's BASE and is always written where a lane
23
+ exists: `ui-constitution.md` — the detail layer under the whole UX-* series,
24
+ and the file the project's `## /aw-spec-ui-constitution` heading maps first. It
25
+ declares the lane (id, what it is built with, the root it owns) so a later
26
+ /appweaver constitution run can re-ratify the half from the mapped set alone.
27
+
28
+ This skeleton names NO framework, router, component library, design system,
29
+ styling approach or conformance standard — deliberately, for the same reason
30
+ the UI constitution skeleton does not. Copy the SHAPE only.
31
+
32
+ Every rule below MUST cite a CODE COORDINATE (a real component / route / store /
33
+ stylesheet / config path) and, where it maps, the UX-* principle it details.
34
+ This is the DETAIL layer under constitution.ui.md — the thin ratified principle
35
+ points here; here is the enforceable rule. State what the UI DOES (quirks,
36
+ inconsistencies, gaps included), never a greenfield assumption.
37
+ -->
38
+ # [Concern] — [PROJECT_NAME] Frontend Rule (as-built)
39
+
40
+ > Ratified by: constitution.ui.md principle UX-[N] ([short principle title]).
41
+ > Lane: [LANE_ID] at [ROOT].
42
+ > Commands: [the lane commands this file feeds — today, ui-constitution].
43
+
44
+ > [One-line framing of what this concern IS in this codebase's UI — from the code, not an ideal.]
45
+
46
+ ## [Section — e.g. Structure / Composition / Rules / Contracts]
47
+
48
+ - [As-built rule the UI follows.] (code: [real component/route/store/stylesheet path]; UX-[N])
49
+ - [As-built rule.] (code: […])
50
+
51
+ ## [Section — e.g. Conventions / Constraints / Forbidden patterns]
52
+
53
+ - [As-built rule.] (code: […])
54
+
55
+ <!-- Where the UI's behaviour is inconsistent across the app, state the DOMINANT convention as
56
+ the rule and record the divergence with its coordinates — do NOT pick a winner the code has
57
+ not picked, and do NOT upgrade a partial into a satisfied greenfield ideal. A concern the UI
58
+ shows none of is simply omitted here (modernization is a separate later phase, not this
59
+ set's concern). -->
60
+
61
+ ## Related
62
+
63
+ - [[<sibling generated frontend rule>]] · constitution.ui.md principle UX-[N]