aw-spec-cli 0.1.3 → 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 (230) hide show
  1. package/README.md +291 -0
  2. package/assets/.agents/agent.json +28 -0
  3. package/assets/.agents/skills/aw-spec-orch/SKILL.md +56 -0
  4. package/assets/.agents/skills/aw-spec-orch-demo/SKILL.md +59 -0
  5. package/assets/.aw-spec/DESIGN-FORMAT.md +151 -0
  6. package/assets/.aw-spec/ORCH-DIALECT.md +156 -0
  7. package/assets/.aw-spec/RULE-PARTITION.md +126 -0
  8. package/assets/.aw-spec/extensions/agent-context/extension.yml +12 -9
  9. package/assets/.aw-spec/extensions.yml +12 -19
  10. package/assets/.aw-spec/integrations/aw-spec.manifest.json +1 -9
  11. package/assets/.aw-spec/interpreter/run-skill.py +1158 -0
  12. package/assets/.aw-spec/orchestrator/AGENT-PROFILE.md +94 -0
  13. package/assets/.aw-spec/orchestrator/README.md +300 -0
  14. package/assets/.aw-spec/orchestrator/adapters/claude_agent_sdk.py +74 -0
  15. package/assets/.aw-spec/orchestrator/adapters/google_antigravity.py +74 -0
  16. package/assets/.aw-spec/orchestrator/modules/delta-design.orch.yaml +105 -0
  17. package/assets/.aw-spec/orchestrator/modules/delta-spec.orch.yaml +79 -0
  18. package/assets/.aw-spec/orchestrator/modules/domain-select.orch.yaml +81 -0
  19. package/assets/.aw-spec/orchestrator/modules/tech-select.orch.yaml +75 -0
  20. package/assets/.aw-spec/orchestrator/orchestrator.py +1721 -0
  21. package/assets/.aw-spec/orchestrator/rev-templates/ai-rules.reference.md +40 -0
  22. package/assets/.aw-spec/orchestrator/rev-templates/comandrulemap.skeleton.md +59 -0
  23. package/assets/.aw-spec/orchestrator/rev-templates/commandtechrulemap.skeleton.md +97 -0
  24. package/assets/.aw-spec/orchestrator/rev-templates/domain-constitution.skeleton.md +61 -0
  25. package/assets/.aw-spec/orchestrator/rev-templates/domain-requirements.skeleton.md +48 -0
  26. package/assets/.aw-spec/orchestrator/rev-templates/domain-rule-file.skeleton.md +39 -0
  27. package/assets/.aw-spec/orchestrator/rev-templates/technical-constitution.skeleton.md +106 -0
  28. package/assets/.aw-spec/orchestrator/rev-templates/technical-rule-file.skeleton.md +54 -0
  29. package/assets/.aw-spec/orchestrator/workflows/_smoke.orch.yaml +160 -0
  30. package/assets/.aw-spec/orchestrator/workflows/aw-spec-add-component.orch.yaml +244 -0
  31. package/assets/.aw-spec/orchestrator/workflows/aw-spec-adopt.orch.yaml +775 -0
  32. package/assets/.aw-spec/orchestrator/workflows/aw-spec-analyze-delta-design.orch.yaml +248 -0
  33. package/assets/.aw-spec/orchestrator/workflows/aw-spec-analyze-design.orch.yaml +261 -0
  34. package/assets/.aw-spec/orchestrator/workflows/aw-spec-analyze-slice.orch.yaml +425 -0
  35. package/assets/.aw-spec/orchestrator/workflows/aw-spec-build.orch.yaml +188 -0
  36. package/assets/.aw-spec/orchestrator/workflows/aw-spec-characterize.orch.yaml +474 -0
  37. package/assets/.aw-spec/orchestrator/workflows/aw-spec-close-delta.orch.yaml +181 -0
  38. package/assets/.aw-spec/orchestrator/workflows/aw-spec-constitution.orch.yaml +284 -0
  39. package/assets/.aw-spec/orchestrator/workflows/aw-spec-demo.orch.yaml +103 -0
  40. package/assets/.aw-spec/orchestrator/workflows/aw-spec-dependency-tree.orch.yaml +69 -0
  41. package/assets/.aw-spec/orchestrator/workflows/aw-spec-deploy.orch.yaml +85 -0
  42. package/assets/.aw-spec/orchestrator/workflows/aw-spec-design.orch.yaml +382 -0
  43. package/assets/.aw-spec/orchestrator/workflows/aw-spec-finalize-delta.orch.yaml +382 -0
  44. package/assets/.aw-spec/orchestrator/workflows/aw-spec-foundation.orch.yaml +246 -0
  45. package/assets/.aw-spec/orchestrator/workflows/aw-spec-implement-delta.orch.yaml +231 -0
  46. package/assets/.aw-spec/orchestrator/workflows/aw-spec-implement.orch.yaml +258 -0
  47. package/assets/.aw-spec/orchestrator/workflows/aw-spec-inventory.orch.yaml +236 -0
  48. package/assets/.aw-spec/orchestrator/workflows/aw-spec-onboard.orch.yaml +949 -0
  49. package/assets/.aw-spec/orchestrator/workflows/aw-spec-parity.orch.yaml +293 -0
  50. package/assets/.aw-spec/orchestrator/workflows/aw-spec-run.orch.yaml +177 -0
  51. package/assets/.aw-spec/orchestrator/workflows/aw-spec-select-domain.orch.yaml +79 -0
  52. package/assets/.aw-spec/orchestrator/workflows/aw-spec-select-feature.orch.yaml +128 -0
  53. package/assets/.aw-spec/orchestrator/workflows/aw-spec-specify.orch.yaml +412 -0
  54. package/assets/.aw-spec/scripts/bash/aw-inventory.sh +14 -0
  55. package/assets/.aw-spec/scripts/bash/aw-parity.sh +13 -0
  56. package/assets/.aw-spec/scripts/bash/aw-rev-constitution.sh +13 -0
  57. package/assets/.aw-spec/scripts/bash/aw-spec-actions.sh +1899 -0
  58. package/assets/.aw-spec/scripts/bash/aw-xref.sh +15 -0
  59. package/assets/.aw-spec/scripts/bash/common.sh +11 -60
  60. package/assets/.aw-spec/scripts/powershell/aw-inventory.ps1 +14 -0
  61. package/assets/.aw-spec/scripts/powershell/aw-parity.ps1 +13 -0
  62. package/assets/.aw-spec/scripts/powershell/aw-rev-constitution.ps1 +13 -0
  63. package/assets/.aw-spec/scripts/powershell/aw-spec-actions.ps1 +1563 -0
  64. package/assets/.aw-spec/scripts/powershell/aw-xref.ps1 +15 -0
  65. package/assets/.aw-spec/scripts/python/aw-inventory.py +683 -0
  66. package/assets/.aw-spec/scripts/python/aw-parity.py +380 -0
  67. package/assets/.aw-spec/scripts/python/aw-rev-constitution.py +312 -0
  68. package/assets/.aw-spec/scripts/python/aw-xref.py +1330 -0
  69. package/assets/.aw-spec/scripts/python/validate_okf.py +349 -0
  70. package/assets/.aw-spec/templates/constitution-domain-template.md +75 -0
  71. package/assets/.aw-spec/templates/constitution-technical-template.md +70 -0
  72. package/assets/.aw-spec/templates/delta-design-template.md +69 -0
  73. package/assets/.aw-spec/templates/delta-spec-template.md +60 -0
  74. package/assets/.aw-spec/templates/design-template.md +383 -0
  75. package/assets/.aw-spec/templates/okf-concept-template.md +103 -0
  76. package/assets/.aw-spec/templates/parity-manifest-template.json +49 -0
  77. package/assets/.aw-spec/templates/source-map-template.md +85 -0
  78. package/assets/.aw-spec/templates/spec-template.md +192 -71
  79. package/assets/.claude/agent.json +27 -0
  80. package/assets/.claude/skills/aw-spec-orch/SKILL.md +55 -0
  81. package/assets/.claude/skills/aw-spec-orch-demo/SKILL.md +59 -0
  82. package/assets/.kilocode/agent.json +28 -0
  83. package/assets/.kilocode/workflows/aw-spec-orch-demo.md +59 -0
  84. package/assets/.kilocode/workflows/aw-spec-orch.md +55 -0
  85. package/assets/docs/architecture/clean-architecture.md +1 -1
  86. package/assets/docs/architecture/cqrs.md +1 -1
  87. package/assets/docs/architecture/eventing.md +1 -1
  88. package/assets/docs/architecture/folder-structure.md +1 -1
  89. package/assets/docs/architecture/modular-monolith.md +1 -1
  90. package/assets/docs/architecture/persistence.md +1 -1
  91. package/assets/docs/architecture/testing.md +1 -1
  92. package/assets/docs/architecture/vertical-slices.md +1 -1
  93. package/assets/docs/components/Email/README.md +1 -1
  94. package/assets/docs/components/Jobs/README.md +1 -1
  95. package/assets/docs/components/QrGenerator/README.md +1 -1
  96. package/assets/docs/components/README.md +1 -1
  97. package/assets/docs/domain/domain-driven-design.md +1 -1
  98. package/assets/docs/domainspecs/healthcare/api-versioning.domain.md +1 -1
  99. package/assets/docs/domainspecs/healthcare/auditing.domain.md +86 -18
  100. package/assets/docs/domainspecs/healthcare/authorization.domain.md +1 -1
  101. package/assets/docs/domainspecs/healthcare/clinical-terms.md +1 -1
  102. package/assets/docs/domainspecs/healthcare/coding-standards.domain.md +1 -1
  103. package/assets/docs/domainspecs/healthcare/comandrulemap.md +58 -124
  104. package/assets/docs/domainspecs/healthcare/commandtechrulemap.md +119 -0
  105. package/assets/docs/domainspecs/healthcare/consent.md +1 -1
  106. package/assets/docs/domainspecs/healthcare/cqrs.domain.md +1 -1
  107. package/assets/docs/domainspecs/healthcare/data-classification.domain.md +1 -1
  108. package/assets/docs/domainspecs/healthcare/dependency-policy.domain.md +1 -1
  109. package/assets/docs/domainspecs/healthcare/dicom.md +1 -1
  110. package/assets/docs/domainspecs/healthcare/domain-driven-design.domain.md +1 -1
  111. package/assets/docs/domainspecs/healthcare/eventing.domain.md +1 -1
  112. package/assets/docs/domainspecs/healthcare/fhir.md +1 -1
  113. package/assets/docs/domainspecs/healthcare/folder-structure.domain.md +1 -1
  114. package/assets/docs/domainspecs/healthcare/hipaa.md +1 -1
  115. package/assets/docs/domainspecs/healthcare/hl7.md +1 -1
  116. package/assets/docs/domainspecs/healthcare/integration-terms.md +1 -1
  117. package/assets/docs/domainspecs/healthcare/persistence.domain.md +1 -1
  118. package/assets/docs/domainspecs/healthcare/terminology.md +1 -1
  119. package/assets/docs/domainspecs/healthcare/testing.domain.md +1 -1
  120. package/assets/docs/domainspecs/healthcare/vertical-slices.domain.md +1 -1
  121. package/assets/docs/domainspecs/healthcare/zero-trust.domain.md +1 -1
  122. package/assets/docs/domainspecs/pharma/api-versioning.domain.md +1 -1
  123. package/assets/docs/domainspecs/pharma/atc.md +1 -1
  124. package/assets/docs/domainspecs/pharma/auditing.domain.md +80 -16
  125. package/assets/docs/domainspecs/pharma/authorization.domain.md +1 -1
  126. package/assets/docs/domainspecs/pharma/coding-standards.domain.md +1 -1
  127. package/assets/docs/domainspecs/pharma/comandrulemap.md +64 -142
  128. package/assets/docs/domainspecs/pharma/commandtechrulemap.md +119 -0
  129. package/assets/docs/domainspecs/pharma/cqrs.domain.md +1 -1
  130. package/assets/docs/domainspecs/pharma/data-classification.domain.md +1 -1
  131. package/assets/docs/domainspecs/pharma/data-provenance.md +1 -1
  132. package/assets/docs/domainspecs/pharma/dependency-policy.domain.md +1 -1
  133. package/assets/docs/domainspecs/pharma/domain-driven-design.domain.md +1 -1
  134. package/assets/docs/domainspecs/pharma/eventing.domain.md +1 -1
  135. package/assets/docs/domainspecs/pharma/fhir.md +1 -1
  136. package/assets/docs/domainspecs/pharma/folder-structure.domain.md +1 -1
  137. package/assets/docs/domainspecs/pharma/hl7.md +1 -1
  138. package/assets/docs/domainspecs/pharma/idmp.md +1 -1
  139. package/assets/docs/domainspecs/pharma/integration-terms.md +1 -1
  140. package/assets/docs/domainspecs/pharma/ndc.md +1 -1
  141. package/assets/docs/domainspecs/pharma/persistence.domain.md +1 -1
  142. package/assets/docs/domainspecs/pharma/pharma-terms.md +1 -1
  143. package/assets/docs/domainspecs/pharma/product-lifecycle.domain.md +1 -1
  144. package/assets/docs/domainspecs/pharma/regulatory-compliance.md +1 -1
  145. package/assets/docs/domainspecs/pharma/terminology.md +1 -1
  146. package/assets/docs/domainspecs/pharma/testing.domain.md +1 -1
  147. package/assets/docs/domainspecs/pharma/vertical-slices.domain.md +1 -1
  148. package/assets/docs/domainspecs/pharma/zero-trust.domain.md +1 -1
  149. package/assets/docs/governance/api-versioning.md +1 -1
  150. package/assets/docs/governance/coding-standards.md +1 -1
  151. package/assets/docs/governance/dependency-policy.md +1 -1
  152. package/assets/docs/requirement-spec.txt +13 -1
  153. package/assets/docs/security/auditing.md +54 -11
  154. package/assets/docs/security/authorization.md +1 -1
  155. package/assets/docs/security/data-classification.md +1 -1
  156. package/assets/docs/security/zero-trust.md +1 -1
  157. package/dist/commands/update.d.ts +3 -0
  158. package/dist/commands/update.d.ts.map +1 -0
  159. package/dist/commands/update.js +142 -0
  160. package/dist/commands/update.js.map +1 -0
  161. package/dist/utils/manifest.d.ts +31 -0
  162. package/dist/utils/manifest.d.ts.map +1 -0
  163. package/dist/utils/manifest.js +91 -0
  164. package/dist/utils/manifest.js.map +1 -0
  165. package/dist/utils/paths.js +2 -2
  166. package/dist/utils/paths.js.map +1 -1
  167. package/dist/utils/update-engine.d.ts +52 -0
  168. package/dist/utils/update-engine.d.ts.map +1 -0
  169. package/dist/utils/update-engine.js +203 -0
  170. package/dist/utils/update-engine.js.map +1 -0
  171. package/package.json +1 -1
  172. package/assets/.agents/skills/aw-spec-addcomponent/SKILL.md +0 -129
  173. package/assets/.agents/skills/aw-spec-agent-context-update/SKILL.md +0 -31
  174. package/assets/.agents/skills/aw-spec-analyze/SKILL.md +0 -296
  175. package/assets/.agents/skills/aw-spec-checklist/SKILL.md +0 -374
  176. package/assets/.agents/skills/aw-spec-clarify/SKILL.md +0 -320
  177. package/assets/.agents/skills/aw-spec-constitution/SKILL.md +0 -194
  178. package/assets/.agents/skills/aw-spec-fast-implement/SKILL.md +0 -268
  179. package/assets/.agents/skills/aw-spec-foundation/SKILL.md +0 -358
  180. package/assets/.agents/skills/aw-spec-implement/SKILL.md +0 -279
  181. package/assets/.agents/skills/aw-spec-minimal-implementation/SKILL.md +0 -209
  182. package/assets/.agents/skills/aw-spec-plan/SKILL.md +0 -221
  183. package/assets/.agents/skills/aw-spec-select-domain/SKILL.md +0 -73
  184. package/assets/.agents/skills/aw-spec-specify/SKILL.md +0 -382
  185. package/assets/.agents/skills/aw-spec-tasks/SKILL.md +0 -259
  186. package/assets/.agents/skills/aw-spec-taskstoissues/SKILL.md +0 -107
  187. package/assets/.aw-spec/integrations/claude.manifest.json +0 -17
  188. package/assets/.aw-spec/scripts/bash/check-prerequisites.sh +0 -189
  189. package/assets/.aw-spec/scripts/bash/create-new-feature.sh +0 -299
  190. package/assets/.aw-spec/scripts/bash/setup-plan.sh +0 -84
  191. package/assets/.aw-spec/scripts/bash/setup-tasks.sh +0 -91
  192. package/assets/.aw-spec/templates/checklist-template.md +0 -40
  193. package/assets/.aw-spec/templates/constitution-template.md +0 -57
  194. package/assets/.aw-spec/templates/plan-template.md +0 -113
  195. package/assets/.aw-spec/templates/tasks-template.md +0 -252
  196. package/assets/.aw-spec/workflows/aw-spec/workflow.yml +0 -77
  197. package/assets/.aw-spec/workflows/workflow-registry.json +0 -13
  198. package/assets/.claude/skills/aw-spec-addcomponent/SKILL.md +0 -129
  199. package/assets/.claude/skills/aw-spec-agent-context-update/SKILL.md +0 -31
  200. package/assets/.claude/skills/aw-spec-analyze/SKILL.md +0 -296
  201. package/assets/.claude/skills/aw-spec-checklist/SKILL.md +0 -374
  202. package/assets/.claude/skills/aw-spec-clarify/SKILL.md +0 -320
  203. package/assets/.claude/skills/aw-spec-constitution/SKILL.md +0 -194
  204. package/assets/.claude/skills/aw-spec-fast-implement/SKILL.md +0 -268
  205. package/assets/.claude/skills/aw-spec-foundation/SKILL.md +0 -358
  206. package/assets/.claude/skills/aw-spec-implement/SKILL.md +0 -279
  207. package/assets/.claude/skills/aw-spec-minimal-implementation/SKILL.md +0 -209
  208. package/assets/.claude/skills/aw-spec-plan/SKILL.md +0 -221
  209. package/assets/.claude/skills/aw-spec-select-domain/SKILL.md +0 -73
  210. package/assets/.claude/skills/aw-spec-specify/SKILL.md +0 -382
  211. package/assets/.claude/skills/aw-spec-tasks/SKILL.md +0 -259
  212. package/assets/.claude/skills/aw-spec-taskstoissues/SKILL.md +0 -107
  213. package/assets/.kilocode/rules/specify-rules.md +0 -4
  214. package/assets/.kilocode/workflows/aw-spec-addcomponent.md +0 -129
  215. package/assets/.kilocode/workflows/aw-spec-agent-context.update.md +0 -31
  216. package/assets/.kilocode/workflows/aw-spec-analyze.md +0 -296
  217. package/assets/.kilocode/workflows/aw-spec-checklist.md +0 -374
  218. package/assets/.kilocode/workflows/aw-spec-clarify.md +0 -320
  219. package/assets/.kilocode/workflows/aw-spec-constitution.md +0 -194
  220. package/assets/.kilocode/workflows/aw-spec-fast-implement.md +0 -263
  221. package/assets/.kilocode/workflows/aw-spec-foundation.md +0 -358
  222. package/assets/.kilocode/workflows/aw-spec-implement.md +0 -279
  223. package/assets/.kilocode/workflows/aw-spec-minimal-implementation.md +0 -204
  224. package/assets/.kilocode/workflows/aw-spec-plan.md +0 -221
  225. package/assets/.kilocode/workflows/aw-spec-select-domain.md +0 -73
  226. package/assets/.kilocode/workflows/aw-spec-specify.md +0 -382
  227. package/assets/.kilocode/workflows/aw-spec-tasks.md +0 -259
  228. package/assets/.kilocode/workflows/aw-spec-taskstoissues.md +0 -107
  229. package/assets/docs/command.txt +0 -295
  230. package/assets/docs/pharma-constitution.my-ref.md +0 -86
@@ -0,0 +1,79 @@
1
+ # =============================================================================
2
+ # delta-spec (orchestrator module) — author the SPEC-side DELTA of a change
3
+ #
4
+ # Included by /aw-spec-orch specify on its DELTA branch (spec.md already exists).
5
+ # This is the SPEC half of the former standalone `cr` capture, relocated here: a
6
+ # later requirement is a new user story on the SAME aggregate. It opens the change
7
+ # (cr-setup — single-active-change guarded; also scaffolds delta-spec AND delta-design)
8
+ # and authors the DELTA-SPEC ONLY. It does NOT touch the master spec.md — the change
9
+ # stays OPEN; finalize-delta merges the delta into spec.md later in the chain and
10
+ # close-delta closes it at the end. No version bump here, no design (that is
11
+ # /aw-spec-orch design → delta-design).
12
+ #
13
+ # Runs in the CALLER's context (include semantics): shares vars + the sticky standards
14
+ # (specify's DDD authority + the selected domain rule files) + the caller's scripts map
15
+ # + replay cache.
16
+ # EXPECTS caller vars: feature_dir, spec_file, USER_INPUT.
17
+ # PRODUCES: cr_id, cr_dir, delta_spec (and, via cr-setup, an OPEN change + a scaffolded
18
+ # delta-design.md for the design phase to fill). cr_dir is what lets the
19
+ # caller's quality loop target THIS change (create-checklist --kind delta).
20
+ # =============================================================================
21
+
22
+ name: delta-spec
23
+ dialect: aw-spec.orchestrator/v1
24
+
25
+ workflow:
26
+
27
+ # Open the change (sets active_version.json.active_change) + scaffold the two delta
28
+ # docs from their templates. Refuses if a change is already open on this aggregate.
29
+ - id: cr_setup
30
+ action: execute_script
31
+ script: { ref: actions }
32
+ subcommand: cr-setup
33
+ args: ["--feature-dir", "{{feature_dir}}", "--title", "{{USER_INPUT}}"]
34
+ outputs:
35
+ - { name: cr_id, from: "$.cr_id" }
36
+ - { name: cr_dir, from: "$.cr_dir" }
37
+ - { name: delta_spec, from: "$.delta_spec" }
38
+
39
+ - id: ctx
40
+ action: build_context
41
+ context:
42
+ - "{{delta_spec}}" # the delta-spec template to fill
43
+ - "{{spec_file}}" # the current master spec (READ ONLY — never amended here)
44
+ - .aw-spec/memory/constitution.domain.md # the DOMAIN authority — specify's frame. Declared
45
+ # REQUIRED (bare string, not `optional: true`) ON PURPOSE:
46
+ # specify is the ONLY phase that reads the domain rules and
47
+ # the task text below tells the agent this file is in context,
48
+ # so a missing one must ANNOUNCE (`[context] MISSING (required)`)
49
+ # rather than silently thin the payload. It announces, it does
50
+ # not stop — a delta only ever runs against an established
51
+ # feature, so the constitution is long since written.
52
+ # NOT constitution.technical: architecture is a HOW
53
+ # concern for design/implement, not domain modelling.
54
+ - id: author
55
+ action: agent_author
56
+ include_standards: true
57
+ output_target: { type: file, path: "{{delta_spec}}" }
58
+ task: |
59
+ A change request to this aggregate's EXISTING spec (change {{cr_id}}). Fill the
60
+ delta-spec (the output target, in context) relative to the current master spec.md
61
+ (in context) — the DELTA ONLY. Do NOT edit spec.md: finalize-delta merges the delta
62
+ into the master later in the chain.
63
+ - Classify every item ADDED / MODIFIED / REMOVED vs the current master, in the
64
+ master's vocabulary — System Requirements in EARS, Business Rules (BR-n), User
65
+ Stories with Given/When/Then, and — where the domain applies — Constraints & NFRs
66
+ (CN-n), Data Classification (DC-n), Integration Contracts (IC-n). A change to a
67
+ retention/audit rule, a data-exposure rule, or an interop obligation is a
68
+ CN-/DC-/IC- delta, not a code change.
69
+ - The new operation is a NEW USER STORY — assign the next id after the highest US-n
70
+ in the master — never a new feature/aggregate. Record the regression risk (shared
71
+ behaviour that must still hold).
72
+ - Model the delta strictly in DDD terms (→ the modelling-methodology standard + the
73
+ domain's own DDD overlay, both in the sticky standards): keep the
74
+ ubiquitous language, respect the aggregate boundary and its root, entities vs
75
+ value objects, and aggregate-owned invariants — domain MODEL, never code.
76
+ Business-facing and testable; NO implementation mechanics (an external interop
77
+ OBLIGATION is a requirement → an IC- item, but never the adapter design); NO
78
+ design docs (that is the design phase).
79
+ Change request: {{USER_INPUT}}
@@ -0,0 +1,81 @@
1
+ # =============================================================================
2
+ # domain-select (orchestrator port) — shared domain rule-file selection module
3
+ #
4
+ # Included (via
5
+ # `action: include`) by every domain-aware converted skill. Same flow:
6
+ # 1. resolve the active domain + candidate rule files for {{command}}
7
+ # 2. Domain gate: no domain / no comandrulemap → ask Continue (technical only)
8
+ # or EXIT (stops the whole skill, no side effects)
9
+ # 3. Selection box: all / subset / none
10
+ # 4. load the selected rule files — into the STICKY STANDARDS SET (D3: domain
11
+ # rules are SYSTEM standards; every later generation sees them without the
12
+ # caller re-declaring them per request)
13
+ #
14
+ # Runs in the CALLER's context: shares vars + standards + the caller's
15
+ # `scripts:` map + replay cache (include semantics; cache keys namespaced under
16
+ # the include id). HITL steps suspend via the checkpoint channel under EVERY
17
+ # strategy; non-interactive defaults: gate→continue, selection→all.
18
+ #
19
+ # Input (via include `with`): command = the command name (comandrulemap heading).
20
+ # Produces: domain (+ dg_* internals) and the loaded standards.
21
+ # =============================================================================
22
+
23
+ name: domain-select
24
+ dialect: aw-spec.orchestrator/v1
25
+
26
+ workflow:
27
+
28
+ # 1. Resolve the active domain + candidate rule files.
29
+ - id: resolve
30
+ action: execute_script
31
+ script: { ref: actions }
32
+ subcommand: resolve-domain
33
+ args: ["--command", "{{command}}"]
34
+ outputs:
35
+ - { name: domain, from: "$.domain" }
36
+ - { name: dg_rulemap_exists, from: "$.rulemap_exists" }
37
+ - { name: dg_candidates, from: "$.candidates" }
38
+
39
+ # 2. Domain gate — only when the domain/comandrulemap is missing.
40
+ - id: gate
41
+ action: ask
42
+ condition: "{{dg_rulemap_exists}} == false"
43
+ prompt: >
44
+ Domain is not set or its rule files are missing (domain '{{domain}}').
45
+ Continue with technical standards only, or exit to run /aw-spec-orch select-domain?
46
+ options: ["continue", "exit"]
47
+ answer_var: dg_gate
48
+ - id: gate_stop
49
+ action: verify_context
50
+ condition: "{{dg_rulemap_exists}} == false"
51
+ require_value: dg_gate
52
+ equals: "continue"
53
+ on_mismatch: stop
54
+ on_mismatch_message: "Exited — run /aw-spec-orch select-domain (or fix the domain folder) and re-run."
55
+
56
+ # 3. Selection box — only when a rule map with candidates exists.
57
+ - id: select_mode
58
+ action: ask
59
+ condition: "{{dg_candidates}} != []"
60
+ prompt: "Domain rule files for {{command}}:"
61
+ options: ["all", "subset", "none"]
62
+ answer_var: dg_mode
63
+ - id: pick_subset
64
+ action: ask
65
+ condition: "{{dg_mode}} == subset"
66
+ prompt: "Pick the domain rule files to load:"
67
+ options_from: "{{dg_candidates}}"
68
+ multi: true
69
+ answer_var: dg_subset
70
+
71
+ # 4. Load the selection into the sticky standards set (system block, D3).
72
+ - id: load_all
73
+ action: load_standards
74
+ condition: "{{dg_mode}} == all"
75
+ files_from_variable: dg_candidates
76
+ optional: true
77
+ - id: load_subset
78
+ action: load_standards
79
+ condition: "{{dg_mode}} == subset"
80
+ files_from_variable: dg_subset
81
+ optional: true
@@ -0,0 +1,75 @@
1
+ # =============================================================================
2
+ # tech-select (orchestrator) — shared TECHNICAL rule-file selection module
3
+ #
4
+ # The technical counterpart of domain-select. Where domain-select loads the
5
+ # per-command DOMAIN rule files from docs/domainspecs/<domain>/comandrulemap.md,
6
+ # this module loads the per-command TECHNICAL rule files (the docs/architecture ·
7
+ # docs/security · docs/interop · docs/governance set that used to be HARDCODED in
8
+ # each workflow's `standards:` block) from
9
+ # docs/domainspecs/<domain>/commandtechrulemap.md
10
+ # Included (via `action: include`) by every technical-rule consumer so the set is
11
+ # CONFIGURATION, not code — tune the map, not the workflow.
12
+ #
13
+ # Flow (mirrors domain-select):
14
+ # 1. resolve the active domain + candidate technical rule files for {{command}}
15
+ # 2. Selection box: all / subset / none (non-interactive default: all)
16
+ # 3. load the selected files into the STICKY STANDARDS SET (D3: system standards
17
+ # every later generation sees without the caller re-declaring them)
18
+ #
19
+ # DELIBERATE difference from domain-select: there is NO blocking gate/exit. When
20
+ # the domain or the map is missing the module SOFT-CONTINUES (loads nothing extra)
21
+ # — the technology base still reaches the consumer through constitution.technical.md
22
+ # (referred to directly, as-is — NOT mapped) plus the caller's minimal seed, so an
23
+ # unconfigured / greenfield project is never blocked. This keeps greenfield-safety.
24
+ #
25
+ # Runs in the CALLER's context: shares vars + standards + the caller's `scripts:`
26
+ # map + replay cache (include semantics). HITL steps suspend via the checkpoint
27
+ # channel under every strategy; non-interactive default: selection → all.
28
+ #
29
+ # Input (via include `with`): command = the command name (commandtechrulemap heading).
30
+ # Produces: tech_domain (+ tg_* internals) and the loaded standards.
31
+ # =============================================================================
32
+
33
+ name: tech-select
34
+ dialect: aw-spec.orchestrator/v1
35
+
36
+ workflow:
37
+
38
+ # 1. Resolve the active domain + candidate technical rule files.
39
+ - id: resolve
40
+ action: execute_script
41
+ script: { ref: actions }
42
+ subcommand: resolve-tech
43
+ args: ["--command", "{{command}}"]
44
+ outputs:
45
+ - { name: tech_domain, from: "$.domain" }
46
+ - { name: tg_techmap_exists, from: "$.techrulemap_exists" }
47
+ - { name: tg_candidates, from: "$.candidates" }
48
+
49
+ # 2. Selection box — only when a tech rule map with candidates exists.
50
+ # No-map path: no step fires (both conditions below are false) ⇒ soft-continue.
51
+ - id: select_mode
52
+ action: ask
53
+ condition: "{{tg_candidates}} != []"
54
+ prompt: "Technical rule files for {{command}}:"
55
+ options: ["all", "subset", "none"]
56
+ answer_var: tg_mode
57
+ - id: pick_subset
58
+ action: ask
59
+ condition: "{{tg_mode}} == subset"
60
+ prompt: "Pick the technical rule files to load:"
61
+ options_from: "{{tg_candidates}}"
62
+ multi: true
63
+ answer_var: tg_subset
64
+
65
+ # 3. Load the selection into the sticky standards set (system block, D3).
66
+ - id: load_all
67
+ action: load_standards
68
+ condition: "{{tg_mode}} == all"
69
+ files_from_variable: tg_candidates
70
+ optional: true
71
+ - id: load_subset
72
+ action: load_standards
73
+ condition: "{{tg_mode}} == subset"
74
+ files_from_variable: tg_subset
75
+ optional: true