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,236 @@
1
+ # =============================================================================
2
+ # aw-spec-inventory (orchestrator) — B0 of the Brownfield Pipeline
3
+ #
4
+ # The reverse front-end's first phase (see Brownfield-Pipeline.md). Scan
5
+ # an EXISTING codebase, propose AGGREGATE-ROOT boundaries + dependency seams,
6
+ # and emit an aggregate-organized OKF v0.1 knowledge bundle + a migration
7
+ # backlog. Each candidate aggregate is a future specs/<Feature>/ vertical slice —
8
+ # this bundle is the BASE the forward brownfield steps read to reverse-engineer
9
+ # spec.md + design.md per slice.
10
+ #
11
+ # INVENTORY → adopt → (fidelity) → characterize → [ forward pipeline ] ← you are here
12
+ #
13
+ # Two-part shape, mirroring the OKF generate flow:
14
+ # 1. a DETERMINISTIC scan (aw-inventory.py scan) → the factual JSON substrate
15
+ # (files, languages, churn, entrypoints, data/route/api files, and
16
+ # aggregate_signals = candidate roots clustered by vertical-slice layout);
17
+ # 2. an ENRICHMENT agent that turns that substrate into the OKF bundle,
18
+ # organized BY AGGREGATE ROOT, then a conformance gate (validate_okf.py).
19
+ #
20
+ # It does NOT author spec.md / design.md (that is /aw-spec-orch adopt per slice)
21
+ # and does NOT touch source code — all writes stay inside the bundle dir.
22
+ #
23
+ # Launch: /aw-spec-orch inventory [strategy] [focus/scope hints]
24
+ # =============================================================================
25
+
26
+ name: aw-spec-inventory
27
+ description: Scan a brownfield codebase and produce an aggregate-organized OKF v0.1 knowledge bundle plus a migration backlog — the base for reverse-engineering spec.md + design.md per aggregate/vertical slice. Deterministic scan + enrichment agent + conformance gate; never modifies source.
28
+ version: 1.1.0
29
+ agent_agnostic: true
30
+ dialect: aw-spec.orchestrator/v1
31
+
32
+ inputs:
33
+ user_input:
34
+ description: Optional focus / scope hints (e.g. an area to prioritize, or a granularity note).
35
+ required: false
36
+ bind: USER_INPUT
37
+
38
+ scripts:
39
+ inventory:
40
+ sh: .aw-spec/scripts/bash/aw-inventory.sh
41
+ ps1: .aw-spec/scripts/powershell/aw-inventory.ps1
42
+ actions:
43
+ sh: .aw-spec/scripts/bash/aw-spec-actions.sh
44
+ ps1: .aw-spec/scripts/powershell/aw-spec-actions.ps1
45
+
46
+ # Domain-modelling authority — helps the enrichment agent NAME/classify what it
47
+ # finds (aggregate vs entity vs value object vs event) when drawing boundaries.
48
+ # Optional: a non-DDD or non-domain repo simply has no overlay to load.
49
+ standards:
50
+ - { path: docs/domain/domain-driven-design.md, optional: true }
51
+ - { path: docs/glossary/ai-rules.md, optional: true }
52
+
53
+ vars:
54
+ bundle_present: "false"
55
+ conformant: "false"
56
+
57
+ workflow:
58
+
59
+ # 1. DETERMINISTIC scan of the current codebase → JSON substrate. Emits the
60
+ # factual base (files, churn, categories, aggregate_signals) and reports
61
+ # whether the target bundle already holds curation.
62
+ - id: scan
63
+ action: execute_script
64
+ script: { ref: inventory }
65
+ subcommand: scan
66
+ outputs:
67
+ - { name: inventory_json, from: "$.inventory_json" }
68
+ - { name: root, from: "$.root" }
69
+ - { name: head, from: "$.head" }
70
+ - { name: file_count, from: "$.file_count" }
71
+ - { name: aggregate_count, from: "$.aggregate_count" }
72
+ - { name: bundle_dir, from: "$.bundle_dir" }
73
+ - { name: bundle_present, from: "$.bundle_present" }
74
+ - { name: bundle_md_count, from: "$.bundle_md_count" }
75
+
76
+ # 1b. Substance gate: a scan that found no aggregate candidates has nothing to
77
+ # organize a bundle around (empty repo, or no recognizable domain layout).
78
+ - id: require_aggregates
79
+ action: verify_context
80
+ require_true: aggregate_count
81
+ on_false: stop
82
+ on_false_message: "Scan found no candidate aggregates in {{root}} (file_count={{file_count}}). Point /aw-spec-orch inventory at a codebase with a recognizable domain/vertical-slice layout, or scan a subtree that contains one."
83
+
84
+ # 1c. Curation guard (OKF rule): a bundle that already has concept files is
85
+ # hand/agent curation — regenerating from scratch would destroy it. Stop
86
+ # and let the operator clear or back up {{bundle_dir}} before re-running.
87
+ - id: bundle_guard
88
+ action: verify_context
89
+ require_value: bundle_present
90
+ equals: "false"
91
+ on_mismatch: stop
92
+ on_mismatch_message: "The OKF bundle at {{bundle_dir}} already holds {{bundle_md_count}} concept file(s) — inventory would overwrite that curation. Back up or remove {{bundle_dir}} to regenerate from scratch (a future /aw-spec-orch inventory-update will refresh incrementally)."
93
+
94
+ # 2. Pre-execution hooks.
95
+ - id: resolve_pre_hooks
96
+ action: execute_script
97
+ script: { ref: actions }
98
+ subcommand: resolve-hooks
99
+ args: ["--phase", "before_inventory"]
100
+ outputs:
101
+ - { name: before_hooks, from: "$.hooks" }
102
+ - id: dispatch_pre_hooks
103
+ action: dispatch_hooks
104
+ hooks_from_variable: before_hooks
105
+
106
+ # 3. ENRICHMENT — turn the substrate into an aggregate-organized OKF bundle.
107
+ # Context is fed via build_context (agent_generate reads the envelope, NOT a
108
+ # step-level context: key): the factual substrate, the OKF format authority
109
+ # (generate.md), and the brownfield design (seam/backlog framing).
110
+ - id: ctx_author
111
+ action: build_context
112
+ context:
113
+ - { path: "{{inventory_json}}" } # the deterministic substrate (aggregate_signals etc.)
114
+ - { path: .aw-spec/templates/okf-concept-template.md } # OKF v0.1 format authority (frontmatter, index, log, rules)
115
+ - { path: Brownfield-Pipeline.md } # seam-as-unit-of-work, migration backlog, source anchor
116
+ - id: author_bundle
117
+ action: agent_generate
118
+ tools: "Read,Write,Edit"
119
+ permission_mode: acceptEdits
120
+ task: |
121
+ Act as the OKF enrichment agent for the Brownfield-Pipeline INVENTORY (B0)
122
+ phase. Produce a CONFORMANT OKF v0.1 knowledge bundle at {{bundle_dir}},
123
+ organized BY AGGREGATE ROOT, from the deterministic substrate
124
+ {{inventory_json}} (in context). Follow the OKF concept template in context for
125
+ format (frontmatter, index.md/log.md rules, cross-linking, hard rules) —
126
+ but ORGANIZE around aggregates, not services/modules. Scope/focus hints:
127
+ {{USER_INPUT}}
128
+
129
+ Read the substrate first. Its `aggregate_signals` are CANDIDATE roots,
130
+ each with its files grouped by layer (domain / feature / infra / api) plus
131
+ detected entities; `git.history.churn` ranks significance; the category
132
+ lists (data_layer_files, route_like_files, api_definitions, ops_files,
133
+ docs, adr_docs) and `top_level_dirs` fill in the rest. Signals are input,
134
+ NOT decisions — YOU draw the real boundaries.
135
+
136
+ Consolidate the candidates into REAL aggregates:
137
+ - Merge a src module and its mirror test module into ONE aggregate (e.g.
138
+ src/.../MedicinalProducts + tests/.../MedicinalProducts → MedicinalProduct).
139
+ - Treat service-level / shared infrastructure (a shared DbContext, cross-
140
+ cutting adapters) as a Platform/Shared concept, NOT an aggregate.
141
+ - Fold value objects, entities, domain events and CQRS commands/endpoints
142
+ into the aggregate that OWNS them — one aggregate concept, not one per type.
143
+
144
+ Write the bundle (all paths under {{bundle_dir}}, bundle-relative links
145
+ begin with "/", per OKF §5.1):
146
+ - `index.md` (bundle root) — frontmatter EXACTLY `okf_version: "0.1"` and
147
+ nothing else; body = sections of bulleted links reusing each concept's
148
+ `description`.
149
+ - `architecture/overview.md` (type: Reference) — system purpose, the
150
+ AGGREGATE MAP (each aggregate + its seam), tech stack, and links to every
151
+ other concept.
152
+ - `aggregates/<aggregate>.md` (type: Aggregate) — ONE per aggregate root.
153
+ Cover: Responsibilities; the entities / value objects / domain events /
154
+ commands / API endpoints / persistence it owns (from the signal's layer
155
+ files); invariants (INFERRED from code — mark confidence, park anything
156
+ unclear in `open_questions`, never guess); the SEAM (the boundary you
157
+ could route across — repository, endpoint, table owner, queue — and
158
+ whether it is CLEAN or TORN, i.e. shares a transaction/table with another
159
+ slice); and the candidate `specs/<Feature>/` slice name (feature =
160
+ aggregate). Set `source_files` to the module's files, grouped with YAML
161
+ comment headers by each file's OWN folder — the path segment that VARIES
162
+ across the files after their shared parent directory (the layer folder in
163
+ a vertical slice; the tier project in an n-tier / layered app; tests → a
164
+ single `tests` group). Do NOT impose a fixed Domain/Application/UI
165
+ taxonomy — the CODE's folders ARE the grouping, and the toolchain
166
+ re-derives them the same way on every later write. Set `timestamp` to the
167
+ latest commit time across them.
168
+ - `data/` and `api/` concepts only where a data model or API surface needs
169
+ its own home beyond the owning aggregate (medium granularity: prefer
170
+ folding into the aggregate).
171
+ - `migration-backlog.md` (type: Reference, at bundle root) — the B0
172
+ deliverable: a table `| aggregate | candidate slice | seam (clean/torn) |
173
+ depends on | risks | adopt order |`, sequenced so clean seams go first
174
+ and TORN seams are flagged as remediation items (introduce the seam
175
+ before adopting). This is the strangler rollout plan.
176
+ - An `index.md` in EVERY subdirectory (no frontmatter).
177
+ - `log.md` (bundle root) — first line under a `## <today's date>` heading
178
+ must be `Commit: ` + backtick + `{{head}}` + backtick (validator rule E4),
179
+ then a one-line Initialization entry noting the concept count.
180
+
181
+ Provenance + safety (OKF hard rules):
182
+ - Stamp every concept `origin: reverse-engineered` and `generated_by:
183
+ aw-spec-inventory/1.1.0` in frontmatter.
184
+ - The CODE is the source of truth; capture what IS (bugs/quirks included),
185
+ not what SHOULD be. Where intent/invariants are unclear from code + git
186
+ history, add a concrete `open_questions` entry rather than inventing one.
187
+ - NEVER fabricate facts, and NEVER emit secrets/tokens/credentials/internal
188
+ hostnames found in the code — describe shape, never values.
189
+ - Write ONLY inside {{bundle_dir}}; do NOT modify any source file.
190
+ Report the bundle tree and the concept count by type.
191
+ outputs:
192
+ - { name: bundle_files, from: "$.files" }
193
+
194
+ - id: verify_authored
195
+ action: verify_context
196
+ require_non_empty: bundle_files
197
+ on_empty: stop
198
+ on_empty_message: "No bundle files were written to {{bundle_dir}}. Ensure the substrate {{inventory_json}} has aggregate_signals and re-run."
199
+
200
+ # 4. CONFORMANCE gate — OKF v0.1 validator (errors block; warnings are noted).
201
+ - id: validate_bundle
202
+ action: execute_script
203
+ script: { ref: inventory }
204
+ subcommand: validate
205
+ args: ["--bundle", "{{bundle_dir}}", "--repo-root", "{{root}}"]
206
+ outputs:
207
+ - { name: conformant, from: "$.conformant" }
208
+ - { name: okf_errors, from: "$.errors" }
209
+ - { name: okf_warnings, from: "$.warnings" }
210
+ - { name: concepts, from: "$.concepts" }
211
+
212
+ - id: conformance_gate
213
+ action: verify_context
214
+ require_true: conformant
215
+ on_false: stop
216
+ on_false_message: "The OKF bundle at {{bundle_dir}} is NON-CONFORMANT (errors: {{okf_errors}}). Fix the reported ERRORs (unparseable frontmatter, missing `type`, malformed index.md/log.md) and re-run — or edit the bundle by hand, then re-validate."
217
+
218
+ # 5. Post-execution hooks.
219
+ - id: resolve_post_hooks
220
+ action: execute_script
221
+ script: { ref: actions }
222
+ subcommand: resolve-hooks
223
+ args: ["--phase", "after_inventory"]
224
+ outputs:
225
+ - { name: after_hooks, from: "$.hooks" }
226
+ - id: dispatch_post_hooks
227
+ action: dispatch_hooks
228
+ hooks_from_variable: after_hooks
229
+
230
+ outputs:
231
+ inventory_json: "{{inventory_json}}"
232
+ bundle_dir: "{{bundle_dir}}"
233
+ aggregate_count: "{{aggregate_count}}"
234
+ concepts: "{{concepts}}"
235
+ warnings: "{{okf_warnings}}"
236
+ next: "Review {{bundle_dir}} (start with architecture/overview.md and migration-backlog.md). Then adopt a slice: /aw-spec-orch adopt <Aggregate> reverse-engineers its spec.md + design.md from the bundle, and the forward pipeline carries it from there."