aw-spec-cli 0.1.4 → 0.1.6

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 (225) hide show
  1. package/assets/.agents/agent.json +28 -0
  2. package/assets/.agents/skills/appweaver/SKILL.md +56 -0
  3. package/assets/.agents/skills/appweaver-demo/SKILL.md +59 -0
  4. package/assets/.claude/agent.json +27 -0
  5. package/assets/.claude/skills/appweaver/SKILL.md +55 -0
  6. package/assets/.claude/skills/appweaver-demo/SKILL.md +59 -0
  7. package/assets/.kilocode/agent.json +28 -0
  8. package/assets/.kilocode/workflows/appweaver-demo.md +59 -0
  9. package/assets/.kilocode/workflows/appweaver.md +55 -0
  10. package/dist/commands/init.d.ts.map +1 -1
  11. package/dist/commands/init.js +7 -54
  12. package/dist/commands/init.js.map +1 -1
  13. package/dist/index.js +0 -2
  14. package/dist/index.js.map +1 -1
  15. package/package.json +1 -1
  16. package/assets/.agents/skills/aw-spec-addcomponent/SKILL.md +0 -129
  17. package/assets/.agents/skills/aw-spec-agent-context-update/SKILL.md +0 -31
  18. package/assets/.agents/skills/aw-spec-analyze/SKILL.md +0 -296
  19. package/assets/.agents/skills/aw-spec-checklist/SKILL.md +0 -374
  20. package/assets/.agents/skills/aw-spec-clarify/SKILL.md +0 -320
  21. package/assets/.agents/skills/aw-spec-constitution/SKILL.md +0 -194
  22. package/assets/.agents/skills/aw-spec-fast-implement/SKILL.md +0 -268
  23. package/assets/.agents/skills/aw-spec-foundation/SKILL.md +0 -358
  24. package/assets/.agents/skills/aw-spec-implement/SKILL.md +0 -279
  25. package/assets/.agents/skills/aw-spec-minimal-implementation/SKILL.md +0 -209
  26. package/assets/.agents/skills/aw-spec-plan/SKILL.md +0 -221
  27. package/assets/.agents/skills/aw-spec-select-domain/SKILL.md +0 -73
  28. package/assets/.agents/skills/aw-spec-specify/SKILL.md +0 -382
  29. package/assets/.agents/skills/aw-spec-tasks/SKILL.md +0 -259
  30. package/assets/.agents/skills/aw-spec-taskstoissues/SKILL.md +0 -107
  31. package/assets/.aw-spec/domain.json +0 -3
  32. package/assets/.aw-spec/extensions/.registry +0 -19
  33. package/assets/.aw-spec/extensions/agent-context/README.md +0 -57
  34. package/assets/.aw-spec/extensions/agent-context/agent-context-config.yml +0 -4
  35. package/assets/.aw-spec/extensions/agent-context/commands/aw-spec.agent-context.update.md +0 -26
  36. package/assets/.aw-spec/extensions/agent-context/extension.yml +0 -34
  37. package/assets/.aw-spec/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -201
  38. package/assets/.aw-spec/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -237
  39. package/assets/.aw-spec/extensions.yml +0 -23
  40. package/assets/.aw-spec/feature.json +0 -3
  41. package/assets/.aw-spec/init-options.json +0 -9
  42. package/assets/.aw-spec/integration.json +0 -15
  43. package/assets/.aw-spec/integrations/aw-spec.manifest.json +0 -17
  44. package/assets/.aw-spec/integrations/claude.manifest.json +0 -17
  45. package/assets/.aw-spec/memory/constitution.md +0 -50
  46. package/assets/.aw-spec/scripts/bash/check-prerequisites.sh +0 -189
  47. package/assets/.aw-spec/scripts/bash/common.sh +0 -582
  48. package/assets/.aw-spec/scripts/bash/create-new-feature.sh +0 -299
  49. package/assets/.aw-spec/scripts/bash/setup-plan.sh +0 -84
  50. package/assets/.aw-spec/scripts/bash/setup-tasks.sh +0 -91
  51. package/assets/.aw-spec/templates/checklist-template.md +0 -40
  52. package/assets/.aw-spec/templates/constitution-template.md +0 -57
  53. package/assets/.aw-spec/templates/plan-template.md +0 -113
  54. package/assets/.aw-spec/templates/spec-template.md +0 -131
  55. package/assets/.aw-spec/templates/tasks-template.md +0 -252
  56. package/assets/.aw-spec/workflows/aw-spec/workflow.yml +0 -77
  57. package/assets/.aw-spec/workflows/workflow-registry.json +0 -13
  58. package/assets/.claude/skills/aw-spec-addcomponent/SKILL.md +0 -129
  59. package/assets/.claude/skills/aw-spec-agent-context-update/SKILL.md +0 -31
  60. package/assets/.claude/skills/aw-spec-analyze/SKILL.md +0 -296
  61. package/assets/.claude/skills/aw-spec-checklist/SKILL.md +0 -374
  62. package/assets/.claude/skills/aw-spec-clarify/SKILL.md +0 -320
  63. package/assets/.claude/skills/aw-spec-constitution/SKILL.md +0 -194
  64. package/assets/.claude/skills/aw-spec-fast-implement/SKILL.md +0 -268
  65. package/assets/.claude/skills/aw-spec-foundation/SKILL.md +0 -358
  66. package/assets/.claude/skills/aw-spec-implement/SKILL.md +0 -279
  67. package/assets/.claude/skills/aw-spec-minimal-implementation/SKILL.md +0 -209
  68. package/assets/.claude/skills/aw-spec-plan/SKILL.md +0 -221
  69. package/assets/.claude/skills/aw-spec-select-domain/SKILL.md +0 -73
  70. package/assets/.claude/skills/aw-spec-specify/SKILL.md +0 -382
  71. package/assets/.claude/skills/aw-spec-tasks/SKILL.md +0 -259
  72. package/assets/.claude/skills/aw-spec-taskstoissues/SKILL.md +0 -107
  73. package/assets/.kilocode/rules/specify-rules.md +0 -4
  74. package/assets/.kilocode/workflows/aw-spec-addcomponent.md +0 -129
  75. package/assets/.kilocode/workflows/aw-spec-agent-context.update.md +0 -31
  76. package/assets/.kilocode/workflows/aw-spec-analyze.md +0 -296
  77. package/assets/.kilocode/workflows/aw-spec-checklist.md +0 -374
  78. package/assets/.kilocode/workflows/aw-spec-clarify.md +0 -320
  79. package/assets/.kilocode/workflows/aw-spec-constitution.md +0 -194
  80. package/assets/.kilocode/workflows/aw-spec-fast-implement.md +0 -263
  81. package/assets/.kilocode/workflows/aw-spec-foundation.md +0 -358
  82. package/assets/.kilocode/workflows/aw-spec-implement.md +0 -279
  83. package/assets/.kilocode/workflows/aw-spec-minimal-implementation.md +0 -204
  84. package/assets/.kilocode/workflows/aw-spec-plan.md +0 -221
  85. package/assets/.kilocode/workflows/aw-spec-select-domain.md +0 -73
  86. package/assets/.kilocode/workflows/aw-spec-specify.md +0 -382
  87. package/assets/.kilocode/workflows/aw-spec-tasks.md +0 -259
  88. package/assets/.kilocode/workflows/aw-spec-taskstoissues.md +0 -107
  89. package/assets/docs/ModularMonolith/ModularMonolith.Reference.pack.txt +0 -25248
  90. package/assets/docs/ModularMonolith/ModularMonolith.pack.txt +0 -5726
  91. package/assets/docs/ModularMonolith/pack-foundation.ps1 +0 -145
  92. package/assets/docs/ModularMonolith/pack-foundation.sh +0 -196
  93. package/assets/docs/ModularMonolith/pack-reference-foundation.ps1 +0 -157
  94. package/assets/docs/ModularMonolith/pack-reference-foundation.sh +0 -209
  95. package/assets/docs/ModularMonolith/unpack-foundation.ps1 +0 -126
  96. package/assets/docs/ModularMonolith/unpack-foundation.sh +0 -217
  97. package/assets/docs/ModularMonolith/unpack-reference-foundation.ps1 +0 -129
  98. package/assets/docs/ModularMonolith/unpack-reference-foundation.sh +0 -218
  99. package/assets/docs/README.md +0 -106
  100. package/assets/docs/UI.Visualization/PACKAGING.md +0 -191
  101. package/assets/docs/UI.Visualization/UI.Visualization.Reference.pack.txt +0 -11768
  102. package/assets/docs/UI.Visualization/UI.Visualization.pack.txt +0 -11214
  103. package/assets/docs/UI.Visualization/pack-foundation.ps1 +0 -165
  104. package/assets/docs/UI.Visualization/pack-foundation.sh +0 -206
  105. package/assets/docs/UI.Visualization/pack-reference-foundation.ps1 +0 -159
  106. package/assets/docs/UI.Visualization/pack-reference-foundation.sh +0 -205
  107. package/assets/docs/UI.Visualization/unpack-foundation.ps1 +0 -126
  108. package/assets/docs/UI.Visualization/unpack-foundation.sh +0 -217
  109. package/assets/docs/UI.Visualization/unpack-reference-foundation.ps1 +0 -129
  110. package/assets/docs/UI.Visualization/unpack-reference-foundation.sh +0 -218
  111. package/assets/docs/VerticalSlice/PACKAGING.md +0 -185
  112. package/assets/docs/VerticalSlice/VerticalSlice.Reference.pack.txt +0 -19318
  113. package/assets/docs/VerticalSlice/VerticalSlice.pack.txt +0 -2833
  114. package/assets/docs/VerticalSlice/pack-foundation.ps1 +0 -145
  115. package/assets/docs/VerticalSlice/pack-foundation.sh +0 -196
  116. package/assets/docs/VerticalSlice/pack-reference-foundation.ps1 +0 -157
  117. package/assets/docs/VerticalSlice/pack-reference-foundation.sh +0 -209
  118. package/assets/docs/VerticalSlice/unpack-foundation.ps1 +0 -126
  119. package/assets/docs/VerticalSlice/unpack-foundation.sh +0 -217
  120. package/assets/docs/VerticalSlice/unpack-reference-foundation.ps1 +0 -129
  121. package/assets/docs/VerticalSlice/unpack-reference-foundation.sh +0 -218
  122. package/assets/docs/architecture/clean-architecture.md +0 -71
  123. package/assets/docs/architecture/cqrs.md +0 -141
  124. package/assets/docs/architecture/eventing.md +0 -83
  125. package/assets/docs/architecture/folder-structure.md +0 -61
  126. package/assets/docs/architecture/modular-monolith.md +0 -47
  127. package/assets/docs/architecture/persistence.md +0 -269
  128. package/assets/docs/architecture/testing.md +0 -55
  129. package/assets/docs/architecture/vertical-slices.md +0 -201
  130. package/assets/docs/command.txt +0 -295
  131. package/assets/docs/components/Email/README.md +0 -119
  132. package/assets/docs/components/Email/ReferenceEndpoints/SendEmailEndpoint.cs +0 -84
  133. package/assets/docs/components/Email/integration.md +0 -300
  134. package/assets/docs/components/Jobs/README.md +0 -113
  135. package/assets/docs/components/Jobs/integration.md +0 -259
  136. package/assets/docs/components/QrGenerator/README.md +0 -85
  137. package/assets/docs/components/QrGenerator/ReferenceEndpoints/GenerateQrEndpoint.cs +0 -57
  138. package/assets/docs/components/QrGenerator/integration.md +0 -230
  139. package/assets/docs/components/README.md +0 -74
  140. package/assets/docs/domain/domain-driven-design.md +0 -212
  141. package/assets/docs/domainspecs/UIVisualization/chart-bubble.md +0 -70
  142. package/assets/docs/domainspecs/UIVisualization/chart-dimred.md +0 -58
  143. package/assets/docs/domainspecs/UIVisualization/chart-heatmap.md +0 -62
  144. package/assets/docs/domainspecs/UIVisualization/chart-network.md +0 -69
  145. package/assets/docs/domainspecs/UIVisualization/chart-parallel.md +0 -75
  146. package/assets/docs/domainspecs/UIVisualization/chart-scurve.md +0 -66
  147. package/assets/docs/domainspecs/UIVisualization/chart-survival.md +0 -69
  148. package/assets/docs/domainspecs/UIVisualization/chart-trellis.md +0 -68
  149. package/assets/docs/domainspecs/UIVisualization/chart-violin.md +0 -61
  150. package/assets/docs/domainspecs/UIVisualization/chart-volcano.md +0 -63
  151. package/assets/docs/domainspecs/UIVisualization/charting-standards.domain.md +0 -80
  152. package/assets/docs/domainspecs/UIVisualization/clean-architecture.domain.md +0 -87
  153. package/assets/docs/domainspecs/UIVisualization/coding-standards.domain.md +0 -47
  154. package/assets/docs/domainspecs/UIVisualization/comandrulemap.md +0 -130
  155. package/assets/docs/domainspecs/UIVisualization/component-contracts.domain.md +0 -67
  156. package/assets/docs/domainspecs/UIVisualization/data-source.domain.md +0 -68
  157. package/assets/docs/domainspecs/UIVisualization/domain-requirements.md +0 -110
  158. package/assets/docs/domainspecs/UIVisualization/folder-structure.domain.md +0 -55
  159. package/assets/docs/domainspecs/UIVisualization/state-management.domain.md +0 -67
  160. package/assets/docs/domainspecs/UIVisualization/testing.domain.md +0 -52
  161. package/assets/docs/domainspecs/UIVisualization/ui-viz-terms.md +0 -39
  162. package/assets/docs/domainspecs/healthcare/ai-rules.domain.md +0 -34
  163. package/assets/docs/domainspecs/healthcare/api-versioning.domain.md +0 -17
  164. package/assets/docs/domainspecs/healthcare/auditing.domain.md +0 -29
  165. package/assets/docs/domainspecs/healthcare/authorization.domain.md +0 -26
  166. package/assets/docs/domainspecs/healthcare/clinical-terms.md +0 -20
  167. package/assets/docs/domainspecs/healthcare/coding-standards.domain.md +0 -26
  168. package/assets/docs/domainspecs/healthcare/comandrulemap.md +0 -166
  169. package/assets/docs/domainspecs/healthcare/consent.md +0 -19
  170. package/assets/docs/domainspecs/healthcare/cqrs.domain.md +0 -12
  171. package/assets/docs/domainspecs/healthcare/data-classification.domain.md +0 -28
  172. package/assets/docs/domainspecs/healthcare/dependency-policy.domain.md +0 -11
  173. package/assets/docs/domainspecs/healthcare/dicom.md +0 -15
  174. package/assets/docs/domainspecs/healthcare/domain-driven-design.domain.md +0 -28
  175. package/assets/docs/domainspecs/healthcare/domain-requirements.md +0 -55
  176. package/assets/docs/domainspecs/healthcare/eventing.domain.md +0 -18
  177. package/assets/docs/domainspecs/healthcare/fhir.md +0 -36
  178. package/assets/docs/domainspecs/healthcare/folder-structure.domain.md +0 -23
  179. package/assets/docs/domainspecs/healthcare/hipaa.md +0 -34
  180. package/assets/docs/domainspecs/healthcare/hl7.md +0 -15
  181. package/assets/docs/domainspecs/healthcare/integration-terms.md +0 -21
  182. package/assets/docs/domainspecs/healthcare/persistence.domain.md +0 -20
  183. package/assets/docs/domainspecs/healthcare/terminology.md +0 -30
  184. package/assets/docs/domainspecs/healthcare/testing.domain.md +0 -15
  185. package/assets/docs/domainspecs/healthcare/vertical-slices.domain.md +0 -18
  186. package/assets/docs/domainspecs/healthcare/zero-trust.domain.md +0 -12
  187. package/assets/docs/domainspecs/pharma/ai-rules.domain.md +0 -32
  188. package/assets/docs/domainspecs/pharma/api-versioning.domain.md +0 -20
  189. package/assets/docs/domainspecs/pharma/atc.md +0 -22
  190. package/assets/docs/domainspecs/pharma/auditing.domain.md +0 -26
  191. package/assets/docs/domainspecs/pharma/authorization.domain.md +0 -25
  192. package/assets/docs/domainspecs/pharma/coding-standards.domain.md +0 -28
  193. package/assets/docs/domainspecs/pharma/comandrulemap.md +0 -186
  194. package/assets/docs/domainspecs/pharma/cqrs.domain.md +0 -16
  195. package/assets/docs/domainspecs/pharma/data-classification.domain.md +0 -24
  196. package/assets/docs/domainspecs/pharma/data-provenance.md +0 -21
  197. package/assets/docs/domainspecs/pharma/dependency-policy.domain.md +0 -11
  198. package/assets/docs/domainspecs/pharma/domain-driven-design.domain.md +0 -36
  199. package/assets/docs/domainspecs/pharma/domain-requirements.md +0 -99
  200. package/assets/docs/domainspecs/pharma/eventing.domain.md +0 -18
  201. package/assets/docs/domainspecs/pharma/fhir.md +0 -31
  202. package/assets/docs/domainspecs/pharma/folder-structure.domain.md +0 -24
  203. package/assets/docs/domainspecs/pharma/hl7.md +0 -17
  204. package/assets/docs/domainspecs/pharma/idmp.md +0 -26
  205. package/assets/docs/domainspecs/pharma/integration-terms.md +0 -21
  206. package/assets/docs/domainspecs/pharma/ndc.md +0 -28
  207. package/assets/docs/domainspecs/pharma/persistence.domain.md +0 -23
  208. package/assets/docs/domainspecs/pharma/pharma-terms.md +0 -27
  209. package/assets/docs/domainspecs/pharma/product-lifecycle.domain.md +0 -30
  210. package/assets/docs/domainspecs/pharma/regulatory-compliance.md +0 -19
  211. package/assets/docs/domainspecs/pharma/terminology.md +0 -32
  212. package/assets/docs/domainspecs/pharma/testing.domain.md +0 -19
  213. package/assets/docs/domainspecs/pharma/vertical-slices.domain.md +0 -17
  214. package/assets/docs/domainspecs/pharma/zero-trust.domain.md +0 -12
  215. package/assets/docs/glossary/ai-rules.md +0 -59
  216. package/assets/docs/governance/api-versioning.md +0 -99
  217. package/assets/docs/governance/coding-standards.md +0 -87
  218. package/assets/docs/governance/dependency-policy.md +0 -40
  219. package/assets/docs/interop/ihe-conformance.md +0 -31
  220. package/assets/docs/security/auditing.md +0 -117
  221. package/assets/docs/security/authorization-matrix.md +0 -14
  222. package/assets/docs/security/authorization.md +0 -87
  223. package/assets/docs/security/data-classification.md +0 -38
  224. package/assets/docs/security/zero-trust.md +0 -76
  225. package/assets/docs/technology-constitution.md +0 -172
@@ -1,67 +0,0 @@
1
- # State Management (CQRS analog) — UI Visualization Domain
2
-
3
- > The front-end read/write separation. NON-NEGOTIABLE.
4
- > Commands: `/aw-spec-plan`, `/aw-spec-tasks`, `/aw-spec-implement`.
5
-
6
- ## Read / write separation
7
-
8
- CQRS maps to the client store as **queries = selectors** and **commands = actions**:
9
-
10
- - **Queries (reads)** — components read slices of the Zustand store via the hook
11
- (`const { compounds } = useDataStore()`). Reads are pure; no side effects in render.
12
- - **Commands (writes)** — every mutation is a **named store action**, never a raw `set` from a
13
- component. Actions: `loadExcel(partial)`, `resetToSample()`, `toggleCurve(id)`,
14
- `setSourceMode(mode, fileName)`.
15
-
16
- A component MUST NOT mutate store state directly — it dispatches an action, exactly as a backend
17
- endpoint dispatches a command via the mediator instead of touching the `DbContext`.
18
-
19
- ## Store shape
20
-
21
- - A single `useDataStore` (Zustand) holds: the active **dataset** (the project's chart data), the
22
- **source mode** (`'sample' | 'excel' | 'api'`), and any **view state** (e.g. selected series ids).
23
- - The store seeds from **sample data** so charts render on first paint with zero backend
24
- (see [[data-source.domain]]).
25
- - Loading new data is a single command that swaps the dataset and flips `sourceMode` — charts
26
- re-render reactively with no per-chart wiring.
27
-
28
- ## Canonical example (agent reference)
29
-
30
- ```ts
31
- // store/data-store.ts
32
- 'use client'
33
- import { create } from 'zustand'
34
- import { SAMPLE } from '@/lib/sample-data'
35
-
36
- type SourceMode = 'sample' | 'excel' | 'api'
37
-
38
- interface DataStore {
39
- dataset: typeof SAMPLE
40
- sourceMode: SourceMode
41
- // commands (writes) — the ONLY way to mutate
42
- loadExcel: (partial: Partial<typeof SAMPLE>) => void
43
- resetToSample: () => void
44
- }
45
-
46
- export const useDataStore = create<DataStore>((set) => ({
47
- dataset: SAMPLE,
48
- sourceMode: 'sample',
49
- loadExcel: (partial) =>
50
- set(s => ({ dataset: { ...s.dataset, ...partial }, sourceMode: 'excel' })),
51
- resetToSample: () => set({ dataset: SAMPLE, sourceMode: 'sample' }),
52
- }))
53
- ```
54
-
55
- ## Rules
56
-
57
- - One store module (`store/data-store.ts`). Split into slices only when it exceeds ~150 lines.
58
- - Actions are the command surface — name them as verbs; keep them pure-ish (compute → `set`).
59
- - Cross-component data load may also broadcast a `window` `CustomEvent`
60
- (`appweaver:excel-loaded`) — the front-end analog of a **domain event**.
61
- - No data fetching inside the store for Phase 1; the **data-source** layer owns ingest and hands
62
- the result to a command (see [[data-source.domain]]).
63
-
64
- ## Related
65
- - [[data-source.domain]] — where datasets come from
66
- - [[clean-architecture.domain]] — the data layer feeds pages, never imports charts
67
- - [[component-contracts.domain]]
@@ -1,52 +0,0 @@
1
- # Testing — UI Visualization Domain
2
-
3
- > Test profile for the viz front-end. Commands: `/aw-spec-plan`, `/aw-spec-tasks`, `/aw-spec-implement`.
4
-
5
- ## What to test (priority order)
6
-
7
- 1. **Adapters** (highest value) — pure mapping functions: domain type → generic props. Assert the
8
- produced `series`/`arms`/`curves`/`matrix` and labels match the input. No DOM needed.
9
- 2. **Data layer** — the Excel parser and any workbook→domain mapper: given a fixture workbook (or
10
- row array), assert the parsed dataset (counts, fields, null handling, derived curves).
11
- 3. **Store actions** — `loadExcel`, `resetToSample`, `toggleCurve` change state as specified
12
- (see [[state-management.domain]]).
13
- 4. **Smoke render** — each selected chart renders without throwing when given representative data
14
- (mock `plotly.js-dist-min` so no real canvas is needed).
15
-
16
- ## How
17
-
18
- - **Vitest** (or Jest) + **@testing-library/react** for component smoke tests.
19
- - **Mock Plotly**: `vi.mock('plotly.js-dist-min', () => ({ react: vi.fn(), purge: vi.fn() }))` —
20
- assert the wrapper called `react` with the expected trace count, not pixels.
21
- - Adapters and parsers are plain functions — unit-test them directly, no mocks.
22
- - A `build` (type-check + `next build`) is the compile-time gate; keep it green.
23
-
24
- ## Example (agent reference)
25
-
26
- ```ts
27
- import { describe, it, expect } from 'vitest'
28
- import { compoundsToBubbleSeries } from '@/components/charts/CompoundScatterPlot'
29
-
30
- it('groups compounds by target into series with log-scaled y', () => {
31
- const series = compoundsToBubbleSeries([
32
- { name: 'A', target: 'EGFR', molecularWeight: 393, ic50_nM: 10, selectivityRatio: 40 },
33
- ])
34
- expect(series).toHaveLength(1)
35
- expect(series[0].seriesLabel).toBe('EGFR')
36
- expect(series[0].points[0].y).toBeCloseTo(1) // log10(10)
37
- })
38
- ```
39
-
40
- > Tip: export the mapping function from the adapter (e.g. `compoundsToBubbleSeries`) so it is
41
- > unit-testable without rendering.
42
-
43
- ## Rules
44
-
45
- - Don't assert on Plotly's internal DOM — assert on the **inputs** you hand Plotly.
46
- - One fixture workbook per project lives beside the parser tests; mirror the shipped
47
- `public/sample-data.xlsx` columns.
48
- - Only test charts that are **selected** for the project (see [[domain-requirements]]).
49
-
50
- ## Related
51
- - [[component-contracts.domain]] · [[state-management.domain]] · [[data-source.domain]] ·
52
- [[coding-standards.domain]]
@@ -1,39 +0,0 @@
1
- # Ubiquitous Language — UI Visualization Domain
2
-
3
- > Shared vocabulary for the visualization front-end. Commands: `/aw-spec-specify`, `/aw-spec-clarify`.
4
-
5
- ## Core terms
6
-
7
- - **Generic chart** — a domain-agnostic, props-driven Plotly component in
8
- `components/charts/generic/`. Knows nothing about any project domain. The 10 in the catalog.
9
- - **Adapter** — a thin component mapping a project/domain type into a generic chart's props; lives
10
- in `components/charts/` (not `generic/`). The only place domain vocabulary meets a chart.
11
- - **Base wrapper** — `PlotlyChart`; the single SSR-safe Plotly mount every chart renders through.
12
- - **Data source** — origin of chart data: `sample` (hard-coded), `excel` (client upload), or
13
- `api` (Phase-2 REST). The store's `sourceMode`.
14
- - **Dataset** — the project's chart-ready data held in the store; the contract between data source
15
- and charts.
16
- - **Command (action)** — a named store mutation (`loadExcel`, `resetToSample`, `toggleCurve`).
17
- - **Query (selector)** — a read of store state from a component via `useDataStore`.
18
- - **Chart selection** — the developer-specified subset of the catalog to scaffold (or "all plots").
19
- - **Fill-height** — responsive sizing: a chart with no `height` fills its flex parent.
20
- - **Series / arm / curve / panel / trace** — per-chart data groupings (see each `chart-*` file).
21
- - **meta / metadata** — open key/value bag for tooltip enrichment; never a typed domain field.
22
-
23
- ## Chart friendly-name ↔ component
24
-
25
- | Friendly name(s) | Component |
26
- |---|---|
27
- | Heatmap | `Heatmap` |
28
- | Bubble / Bubble chart | `BubbleChart` |
29
- | S-Curve / Sigmoid / Dose-Response | `SCurveChart` |
30
- | Survival / Kaplan-Meier / KM / Retention | `SurvivalCurveChart` |
31
- | Volcano | `VolcanoPlot` |
32
- | Dim. Reduction / PCA / t-SNE / UMAP | `DimRedPlot` |
33
- | Parallel Coords / parcoords | `ParallelCoordinatesPlot` |
34
- | Violin / Distribution | `ViolinPlot` |
35
- | Network / Graph / Node-Edge | `NetworkGraph` |
36
- | Trellis / Facet / Small-multiples | `TrellisGrid` |
37
-
38
- ## Related
39
- - [[domain-requirements]] · [[component-contracts.domain]] · [[charting-standards.domain]]
@@ -1,34 +0,0 @@
1
- # AI Operational Rules — Healthcare Domain Addenda
2
-
3
- > Technology base: [[ai-rules]]. Commands: **ALL**.
4
-
5
- ## Context & codes
6
- - FHIR types: use the **official FHIR .NET SDK**, version-matched (R4/R5) to the endpoint (see [[fhir]]).
7
- - Confirm coded values against the Terminology module's value sets; never invent ICD/SNOMED/LOINC/CPT codes (see [[terminology]]).
8
-
9
- ## Generation
10
- - A complete slice adds a FHIR projector + FHIR-validator test when applicable (see [[fhir]], [[testing.domain]]).
11
- - Generated FHIR resources MUST honor declared IG profiles and pass the FHIR validator (see [[fhir]]).
12
- - Comments are reserved for clinical intent (generic rule in [[ai-rules]]).
13
-
14
- ## PHI masking
15
- - MUST NOT log, echo, or commit any field of `Patient`/`Encounter`/`Observation`/`MedicationRequest`/`ClinicalNote`/`DiagnosticReport`/`Claim`/`Coverage` other than the strongly-typed ID.
16
- - Apply field-level redaction in every generated example payload (see [[data-classification.domain]], [[hipaa]]).
17
-
18
- ## Tests
19
- - MUST use the synthetic-PHI fixture library (`<SampleProjectName>.TestFixtures`); never inline fabricated PHI.
20
- - Never invent ICD/SNOMED/LOINC/CPT/HCPCS/RxNorm/CVX codes — use a sentinel constant (see [[testing.domain]], [[terminology]]).
21
-
22
- ## Security-touching code
23
- - MUST NOT modify authorization handlers, scope evaluators, consent checks, audit emitters, or encryption code without an explicit security-reviewer-attached prompt (see [[authorization.domain]], [[auditing.domain]], [[consent]]).
24
- - FHIR profile changes: regenerate the IG artifacts + CapabilityStatement in the **same commit** (see [[fhir]], [[api-versioning.domain]]).
25
-
26
- ## Refusal conditions — extend [[ai-rules]]; refuse to:
27
- - Embed any PHI test fixture in code/config.
28
- - Disable a consent check globally.
29
- - Bypass Interop adapters by writing aggregates directly from an external feed (see [[hl7]], [[eventing.domain]]).
30
- - Generate de-identification logic without a documented method (Safe Harbor / Expert Determination) (see [[hipaa]]).
31
- - Return PHI in error messages, logs, or trace attributes (see [[data-classification.domain]]).
32
-
33
- ## Related
34
- - [[ai-rules]] · [[fhir]] · [[terminology]] · [[hipaa]] · [[consent]] · [[data-classification.domain]] · [[auditing.domain]] · [[authorization.domain]] · [[testing.domain]]
@@ -1,17 +0,0 @@
1
- # API Versioning — Healthcare Domain Addenda (FHIR)
2
-
3
- > Technology base: [[api-versioning]]. Commands: `/aw-spec-plan`, `/aw-spec-tasks`, `/aw-spec-implement`.
4
-
5
- ## FHIR versioning
6
- - R4 default; R5 is **additive** under a versioned path (`/fhir/R5/...`).
7
- - Breaking FHIR changes require a **new version path** + a published CapabilityStatement diff (see [[fhir]]).
8
- - FHIR list endpoints use Bundle/searchset semantics (`_count`, `_offset`/`_page`, `_total`).
9
-
10
- ## Concurrency at the edge
11
- - FHIR resources honor `If-Match` via the aggregate's concurrency token → FHIR **weak** ETag at the projection boundary (see [[persistence.domain]]).
12
-
13
- ## CapabilityStatement
14
- - Published for FHIR (beyond generic OpenAPI/AsyncAPI); regenerates cleanly in CI; diff reviewed for breaking changes (see [[fhir]], [[coding-standards.domain]]).
15
-
16
- ## Related
17
- - [[api-versioning]] · [[fhir]] · [[persistence.domain]] · [[coding-standards.domain]]
@@ -1,29 +0,0 @@
1
- # Auditing — Healthcare Domain Addenda (ATNA)
2
-
3
- > Technology base: [[auditing]]. NON-NEGOTIABLE. Commands: `/aw-spec-plan`, `/aw-spec-tasks`, `/aw-spec-implement`.
4
-
5
- ## Setup
6
- - Auditing is **MANDATORY** for every PHI-bearing aggregate.
7
- - Enable via `.EnableAdvancedAuditing()` + `AddAuditing(... UseEfCoreAuditing(...).UseAppWeaverDataStore())`.
8
- - Audit tables: shared `AppWeaver.DataStore`, schema `Auditing`, prefix `Audit_`.
9
- - A **PHI-access-audit** pipeline behavior runs on every mediator request (see [[cqrs.domain]]).
10
-
11
- ## Record (immutable)
12
- Every PHI read/mutation, authentication, consent change, export, and break-the-glass MUST emit:
13
- ```
14
- { timestamp, subjectId, subjectRole, patientId, action, resourceType,
15
- resourceId, outcome, sourceIp, correlationId, reason }
16
- ```
17
-
18
- ## Audit-mandatory operations
19
- Every PHI read/write; every authentication; every consent change; every export (`$export`, bulk/report download); every break-the-glass; every privileged admin action; every IdP/role change. See [[authorization.domain]].
20
-
21
- ## Retention & format
22
- - **Append-only**; retained **>= 6 years**; exportable as FHIR `AuditEvent` (see [[domain-driven-design.domain]], [[persistence.domain]]).
23
-
24
- ## Telemetry & breach
25
- - **PHI, full SSN, payment-card numbers, government IDs MUST NEVER** appear in logs, metric labels, exception messages, or traces (see [[data-classification.domain]]).
26
- - Anomalous PHI access (volume spikes, off-hours mass reads, repeated denials) emits **Critical** alerts (see [[hipaa]]).
27
-
28
- ## Related
29
- - [[auditing]] · [[hipaa]] · [[data-classification.domain]] · [[authorization.domain]] · [[consent]] · [[fhir]] · [[cqrs.domain]] · [[persistence.domain]]
@@ -1,26 +0,0 @@
1
- # Authorization — Healthcare Domain Addenda
2
-
3
- > Technology base: [[authorization]]. Commands: `/aw-spec-plan`, `/aw-spec-tasks`, `/aw-spec-implement`.
4
-
5
- ## Roles
6
- `SystemAdmin`, `ComplianceOfficer`, `Physician`, `Nurse`, `LabTechnician`, `Radiologist`, `Pharmacist`, `BillingClerk`, `FrontDesk`, `Patient`, `ExternalSystem`, `ResearchAnalyst` (de-identified scope only). Per-route matrix: `docs/security/authorization-matrix.md`.
7
-
8
- ## SMART-on-FHIR scopes
9
- - Scopes (`patient/*.read`, `user/Observation.read`, `system/*.write`, `launch/patient`) MUST be enforced on **every FHIR endpoint**.
10
- - App launch (EHR + standalone): **PKCE mandatory; implicit flow FORBIDDEN** (see [[fhir]]).
11
-
12
- ## PHI minimum-necessary
13
- - The PHI-access pipeline returns only fields the caller's role + scopes authorize; field-level redaction lives in projection extensions (see [[hipaa]], [[data-classification.domain]]).
14
-
15
- ## Consent & break-the-glass
16
- - Pipeline checks **consent state** before releasing PHI outside the treating-provider context (see [[consent]]).
17
- - Break-the-glass = explicit emergency-access command: documented reason + high-priority audit + real-time alert (see [[consent]], [[auditing.domain]]).
18
-
19
- ## Audit-mandatory
20
- Every PHI read/write, authentication, consent change, export, break-the-glass, privileged admin action, IdP/role change (see [[auditing.domain]]).
21
-
22
- ## Anonymous allowlist
23
- - Adds `/metadata` (FHIR CapabilityStatement) to the generic allowlist (see [[fhir]]).
24
-
25
- ## Related
26
- - [[authorization]] · [[hipaa]] · [[consent]] · [[auditing.domain]] · [[data-classification.domain]] · [[fhir]]
@@ -1,20 +0,0 @@
1
- # Glossary — Clinical Terms
2
-
3
- > Ubiquitous language for clinical aggregates. Commands: `/aw-spec-specify`, `/aw-spec-clarify`, `/aw-spec-plan`. See [[domain-driven-design.domain]] (modeling) + [[terminology]] (coding).
4
-
5
- | Term | Definition |
6
- |---|---|
7
- | **MRN** | Patient identifier, **unique per tenant** on `Patient` (Patients); cross-referenced via PIX/PDQ (see [[integration-terms]]). |
8
- | **Encounter** | Clinical interaction (inpatient/outpatient/emergency); owns Admission/Transfer/Discharge; not Closeable with open Orders/Results/ChargeItems/unsigned ClinicalNotes (Encounters). |
9
- | **Observation** | A discrete measurement/finding — vitals/social history (EMR) or lab result (Lab); coded LOINC/SNOMED (see [[terminology]]). |
10
- | **Coverage** | Patient insurance record (Insurance); required (or documented self-pay) before admission. |
11
- | **PractitionerRole** | A Practitioner's role within an Organization/Location (Identity) — drives role-based auth (see [[authorization.domain]]). |
12
- | **CarePlan** | A planned set of clinical activities (EMR). |
13
- | **DiagnosticReport** | A finalized result set with interpretation — radiology (Radiology) or lab (Lab). |
14
- | **ClinicalNote** | Documentation entry; once **Signed** immutable; corrections are addenda; deletion forbidden (supersede via Amend). |
15
- | **ProblemList / AllergyIntolerance / MedicationStatement / Immunization / Procedure / ServiceRequest** | EMR aggregates; coded SNOMED/ICD/RxNorm/CVX as applicable. |
16
- | **MedicationRequest / MedicationDispense / MedicationAdministration** | Pharmacy aggregates; dispense blocked on allergy/interaction/contraindication without documented override. |
17
- | **Consent** | First-class aggregate governing PHI disclosure; withdrawal blocks disclosure immediately (see [[consent]]). |
18
-
19
- ## Related
20
- - [[integration-terms]] · [[domain-driven-design.domain]] · [[terminology]] · [[fhir]]
@@ -1,26 +0,0 @@
1
- # Coding Standards — Healthcare Domain Addenda
2
-
3
- > Technology base: [[coding-standards]]. Commands: `/aw-spec-plan`, `/aw-spec-tasks`, `/aw-spec-implement`.
4
-
5
- ## Coded value objects
6
- - Follow the FHIR pattern: `Codeable`, `Coding`, `Quantity`, `Period`, `Range`, `Ratio`, `Identifier`, `HumanName`, `Address`, `ContactPoint` (see [[terminology]]).
7
- - The Domain may additionally throw `ConsentDeniedException` (see [[consent]]).
8
-
9
- ## Forbidden patterns — extend [[coding-standards]]
10
- - **H1.** Hard delete of any clinical/financial/audit/PHI-bearing aggregate (see [[persistence.domain]]).
11
- - **H2.** Hard-coded IdP issuer / FHIR server / HL7 endpoint URLs, or PHI test fixtures, in source.
12
- - **H3.** Logging/emitting any PHI element, full SSN/government ID (see [[data-classification.domain]]).
13
- - **H4.** Storing patient data (names, MRNs, DOBs, diagnoses, meds, labs, imaging) as free text when a coded vocabulary applies (see [[terminology]]).
14
- - **H5.** A second FHIR write path bypassing the canonical aggregate (see [[fhir]]).
15
- - **H6.** Storing/transmitting PHI to any non-production environment (see [[hipaa]]).
16
- - **H7.** FHIR errors not using `OperationOutcome` with HTTP 422 (see [[fhir]]).
17
-
18
- ## Quality gates — extend [[coding-standards]]
19
- - **HG1.** FHIR CapabilityStatement regenerates cleanly; diff reviewed (see [[fhir]]).
20
- - **HG2.** FHIR validator passes for every modified resource/profile/example.
21
- - **HG3.** Grep: no PHI string literals in tests outside sanctioned fixtures; no MediatR/AutoMapper.
22
- - **HG4.** PHI-logging analyzer passes — no Patient/Encounter/Observation/MedicationRequest field logged except the ID (see [[data-classification.domain]]).
23
- - **HG5.** Security-reviewer sign-off for any PHI-access change.
24
-
25
- ## Related
26
- - [[coding-standards]] · [[terminology]] · [[fhir]] · [[hipaa]] · [[consent]] · [[data-classification.domain]] · [[persistence.domain]]
@@ -1,166 +0,0 @@
1
- # Healthcare Domain — Command → Rule-File Map
2
-
3
- Per-AW-Spec-command list of the **healthcare domain** rule files in this folder.
4
- Technology standards already auto-load inside each command; the files below are the
5
- domain-specific ones to load **in addition** for a healthcare project.
6
-
7
- - All paths are workspace-relative and live in this folder: `docs/domainspecs/healthcare/`.
8
- - A skill can read this file and load every path under the matching command heading.
9
- - This file is the **canonical source** for the healthcare domain mapping;
10
- `/aw-spec-select-domain` selects this folder as active.
11
-
12
- ---
13
-
14
- ## /aw-spec-constitution
15
- - docs/domainspecs/healthcare/domain-requirements.md
16
- - docs/domainspecs/healthcare/ai-rules.domain.md
17
-
18
- ## /aw-spec-specify
19
- - docs/domainspecs/healthcare/domain-requirements.md
20
- - docs/domainspecs/healthcare/clinical-terms.md
21
- - docs/domainspecs/healthcare/integration-terms.md
22
- - docs/domainspecs/healthcare/domain-driven-design.domain.md
23
- - docs/domainspecs/healthcare/fhir.md
24
- - docs/domainspecs/healthcare/hl7.md
25
- - docs/domainspecs/healthcare/dicom.md
26
- - docs/domainspecs/healthcare/terminology.md
27
- - docs/domainspecs/healthcare/hipaa.md
28
- - docs/domainspecs/healthcare/consent.md
29
- - docs/domainspecs/healthcare/data-classification.domain.md
30
- - docs/domainspecs/healthcare/ai-rules.domain.md
31
-
32
- ## /aw-spec-clarify
33
- - docs/domainspecs/healthcare/domain-driven-design.domain.md
34
- - docs/domainspecs/healthcare/hl7.md
35
- - docs/domainspecs/healthcare/hipaa.md
36
- - docs/domainspecs/healthcare/consent.md
37
- - docs/domainspecs/healthcare/clinical-terms.md
38
- - docs/domainspecs/healthcare/integration-terms.md
39
-
40
- ## /aw-spec-plan
41
- - docs/domainspecs/healthcare/folder-structure.domain.md
42
- - docs/domainspecs/healthcare/cqrs.domain.md
43
- - docs/domainspecs/healthcare/vertical-slices.domain.md
44
- - docs/domainspecs/healthcare/persistence.domain.md
45
- - docs/domainspecs/healthcare/testing.domain.md
46
- - docs/domainspecs/healthcare/eventing.domain.md
47
- - docs/domainspecs/healthcare/domain-driven-design.domain.md
48
- - docs/domainspecs/healthcare/fhir.md
49
- - docs/domainspecs/healthcare/hl7.md
50
- - docs/domainspecs/healthcare/dicom.md
51
- - docs/domainspecs/healthcare/terminology.md
52
- - docs/domainspecs/healthcare/hipaa.md
53
- - docs/domainspecs/healthcare/consent.md
54
- - docs/domainspecs/healthcare/zero-trust.domain.md
55
- - docs/domainspecs/healthcare/authorization.domain.md
56
- - docs/domainspecs/healthcare/auditing.domain.md
57
- - docs/domainspecs/healthcare/data-classification.domain.md
58
- - docs/domainspecs/healthcare/coding-standards.domain.md
59
- - docs/domainspecs/healthcare/dependency-policy.domain.md
60
- - docs/domainspecs/healthcare/api-versioning.domain.md
61
- - docs/domainspecs/healthcare/ai-rules.domain.md
62
-
63
- ## /aw-spec-tasks
64
- - docs/domainspecs/healthcare/folder-structure.domain.md
65
- - docs/domainspecs/healthcare/vertical-slices.domain.md
66
- - docs/domainspecs/healthcare/cqrs.domain.md
67
- - docs/domainspecs/healthcare/persistence.domain.md
68
- - docs/domainspecs/healthcare/testing.domain.md
69
- - docs/domainspecs/healthcare/eventing.domain.md
70
- - docs/domainspecs/healthcare/domain-driven-design.domain.md
71
- - docs/domainspecs/healthcare/fhir.md
72
- - docs/domainspecs/healthcare/hl7.md
73
- - docs/domainspecs/healthcare/authorization.domain.md
74
- - docs/domainspecs/healthcare/auditing.domain.md
75
- - docs/domainspecs/healthcare/coding-standards.domain.md
76
- - docs/domainspecs/healthcare/ai-rules.domain.md
77
-
78
- ## /aw-spec-analyze
79
- - docs/domainspecs/healthcare/hl7.md
80
- - docs/domainspecs/healthcare/hipaa.md
81
- - docs/domainspecs/healthcare/auditing.domain.md
82
- - docs/domainspecs/healthcare/coding-standards.domain.md
83
- - docs/domainspecs/healthcare/ai-rules.domain.md
84
-
85
- ## /aw-spec-implement
86
- - docs/domainspecs/healthcare/folder-structure.domain.md
87
- - docs/domainspecs/healthcare/vertical-slices.domain.md
88
- - docs/domainspecs/healthcare/cqrs.domain.md
89
- - docs/domainspecs/healthcare/persistence.domain.md
90
- - docs/domainspecs/healthcare/testing.domain.md
91
- - docs/domainspecs/healthcare/eventing.domain.md
92
- - docs/domainspecs/healthcare/domain-driven-design.domain.md
93
- - docs/domainspecs/healthcare/fhir.md
94
- - docs/domainspecs/healthcare/hl7.md
95
- - docs/domainspecs/healthcare/terminology.md
96
- - docs/domainspecs/healthcare/hipaa.md
97
- - docs/domainspecs/healthcare/consent.md
98
- - docs/domainspecs/healthcare/authorization.domain.md
99
- - docs/domainspecs/healthcare/auditing.domain.md
100
- - docs/domainspecs/healthcare/data-classification.domain.md
101
- - docs/domainspecs/healthcare/zero-trust.domain.md
102
- - docs/domainspecs/healthcare/coding-standards.domain.md
103
- - docs/domainspecs/healthcare/dependency-policy.domain.md
104
- - docs/domainspecs/healthcare/api-versioning.domain.md
105
- - docs/domainspecs/healthcare/ai-rules.domain.md
106
-
107
- ## /aw-spec-fast-implement
108
-
109
- > Fast path that collapses plan + tasks + analyze + implement into one pass. This list is the
110
- > **deduplicated union** of those four commands' headings above (here, equal to `/aw-spec-plan`).
111
- > Load it **once** for the whole pass — do not reload per phase.
112
-
113
- - docs/domainspecs/healthcare/folder-structure.domain.md
114
- - docs/domainspecs/healthcare/cqrs.domain.md
115
- - docs/domainspecs/healthcare/vertical-slices.domain.md
116
- - docs/domainspecs/healthcare/persistence.domain.md
117
- - docs/domainspecs/healthcare/testing.domain.md
118
- - docs/domainspecs/healthcare/eventing.domain.md
119
- - docs/domainspecs/healthcare/domain-driven-design.domain.md
120
- - docs/domainspecs/healthcare/fhir.md
121
- - docs/domainspecs/healthcare/hl7.md
122
- - docs/domainspecs/healthcare/dicom.md
123
- - docs/domainspecs/healthcare/terminology.md
124
- - docs/domainspecs/healthcare/hipaa.md
125
- - docs/domainspecs/healthcare/consent.md
126
- - docs/domainspecs/healthcare/zero-trust.domain.md
127
- - docs/domainspecs/healthcare/authorization.domain.md
128
- - docs/domainspecs/healthcare/auditing.domain.md
129
- - docs/domainspecs/healthcare/data-classification.domain.md
130
- - docs/domainspecs/healthcare/coding-standards.domain.md
131
- - docs/domainspecs/healthcare/dependency-policy.domain.md
132
- - docs/domainspecs/healthcare/api-versioning.domain.md
133
- - docs/domainspecs/healthcare/ai-rules.domain.md
134
-
135
- ## /aw-spec-minimal-implementation
136
-
137
- > Single-step set for healthcare — the **per-domain knob** (edit freely). `/aw-spec-minimal-implementation`
138
- > loads these to interpret and implement the requirement in one pass; genuinely-external runtime
139
- > services (terminology server, FHIR endpoint) are stubbed behind ports. For an audited build use
140
- > `## /aw-spec-fast-implement`.
141
-
142
- - docs/domainspecs/healthcare/clinical-terms.md
143
- - docs/domainspecs/healthcare/domain-driven-design.domain.md
144
- - docs/domainspecs/healthcare/folder-structure.domain.md
145
- - docs/domainspecs/healthcare/vertical-slices.domain.md
146
- - docs/domainspecs/healthcare/fhir.md
147
- - docs/domainspecs/healthcare/hl7.md
148
- - docs/domainspecs/healthcare/terminology.md
149
- - docs/domainspecs/healthcare/hipaa.md
150
- - docs/domainspecs/healthcare/ai-rules.domain.md
151
-
152
- ---
153
-
154
- ## Quick reference (command → file count)
155
-
156
- | Command | Domain rule files |
157
- |---|---|
158
- | /aw-spec-constitution | 2 |
159
- | /aw-spec-specify | 12 |
160
- | /aw-spec-clarify | 6 |
161
- | /aw-spec-plan | 21 |
162
- | /aw-spec-tasks | 13 |
163
- | /aw-spec-analyze | 5 |
164
- | /aw-spec-implement | 20 |
165
- | /aw-spec-fast-implement | 21 |
166
- | /aw-spec-minimal-implementation | 9 |
@@ -1,19 +0,0 @@
1
- # Consent Standards
2
-
3
- > NON-NEGOTIABLE. Commands: `/aw-spec-specify`, `/aw-spec-plan`, `/aw-spec-tasks`, `/aw-spec-implement`.
4
-
5
- ## First-class aggregate
6
- - Consent is a **first-class aggregate** (Patients module). A **withdrawn consent MUST block downstream PHI disclosure** for the purpose-of-use **immediately**; state changes emit `ConsentChangedEvent` (see [[eventing]]).
7
- - The access-control pipeline **MUST check consent before releasing PHI** outside the treating-provider context. Denial surfaces as `ConsentDeniedException` from the Domain (see [[domain-driven-design.domain]], [[authorization.domain]]).
8
-
9
- ## Break-the-glass
10
- - Explicit **emergency-access command**: documented reason + high-priority audit + real-time alert; audit-mandatory (see [[auditing.domain]]).
11
-
12
- ## Restriction-of-processing
13
- - GDPR restriction (Art. 18) + erasure (Art. 17) are first-class audited commands. Where law forbids erasing medical records, **restriction-of-processing is the fallback** (see [[hipaa]], [[persistence.domain]]).
14
-
15
- ## FHIR mapping
16
- - **BPPC** + **FHIR Consent** profiles honored; Consent projects to the FHIR `Consent` resource (see [[fhir]]).
17
-
18
- ## Related
19
- - [[hipaa]] · [[authorization.domain]] · [[auditing.domain]] · [[fhir]] · [[domain-driven-design.domain]]
@@ -1,12 +0,0 @@
1
- # CQRS — Healthcare Domain Addenda
2
-
3
- > Technology base: [[cqrs]]. Commands: `/aw-spec-plan`, `/aw-spec-tasks`, `/aw-spec-implement`.
4
-
5
- ## Pipeline
6
- - Append a **PHI-access-audit behavior** to the mediator pipeline (beyond generic logging + FluentValidation): emit an audit record for every command/query touching PHI (see [[auditing.domain]]).
7
-
8
- ## Error codes
9
- Dot-namespaced slugs (see [[cqrs]]). Examples: `patient.not_found` · `claim.duplicate_submission` · `consent.denied` · `concurrency.conflict`.
10
-
11
- ## Related
12
- - [[cqrs]] · [[auditing.domain]] · [[hipaa]] · [[domain-driven-design.domain]]
@@ -1,28 +0,0 @@
1
- # Data Classification — Healthcare Domain Addenda
2
-
3
- > Technology base: [[data-classification]]. NON-NEGOTIABLE. Commands: `/aw-spec-specify`, `/aw-spec-plan`, `/aw-spec-implement`.
4
-
5
- ## Categories
6
- | Class | Extra rules |
7
- |---|---|
8
- | **PHI** (clinical, demographic, identifiers) | Minimum-necessary; audited; encrypted |
9
- | **PII** (non-clinical identifiers) | Encrypted; minimum-necessary |
10
- | **PCI** (payment) | **Out of scope** — route to a PCI-DSS processor |
11
- | **Behavioral Health** (42 CFR Part 2) | Extra-sensitive; field-level encryption |
12
- | **Genetic** (GINA) | Extra-sensitive |
13
- | **Pediatric** (minors) | Extended retention; heightened protection |
14
-
15
- ## Field-level encryption (required)
16
- SSN, government IDs, payment-card data, behavioral-health flags (see [[hipaa]], [[persistence.domain]]).
17
-
18
- ## Logging
19
- - **NEVER** log/emit any PHI element, full SSN, government ID, or full payment-card data.
20
- - PHI-logging analyzer (CI gate): no Patient/Encounter/Observation/MedicationRequest field logged except the ID (see [[coding-standards.domain]]).
21
-
22
- ## Export
23
- - Analytics/research/non-prod exports MUST pass **Safe-Harbor or Expert-Determination** de-identification.
24
- - **Production PHI in non-production is FORBIDDEN** (see [[hipaa]], [[testing.domain]]).
25
- - Bulk `$export` gated by authorization + de-identification (see [[fhir]]).
26
-
27
- ## Related
28
- - [[data-classification]] · [[hipaa]] · [[auditing.domain]] · [[authorization.domain]] · [[persistence.domain]] · [[coding-standards.domain]]
@@ -1,11 +0,0 @@
1
- # Dependency Policy — Healthcare Domain Addenda
2
-
3
- > Technology base: [[dependency-policy]]. Commands: `/aw-spec-plan`, `/aw-spec-implement`.
4
-
5
- ## Reviews & libraries
6
- - Every new dependency gets a **HIPAA-suitability** review beyond the generic license/supply-chain check — e.g. reject a logging package that ships analytics by default (PHI-exfiltration risk) (see [[hipaa]], [[data-classification.domain]]).
7
- - FHIR: the **official FHIR .NET SDK**, version-matched to the endpoint (R4/R5; see [[fhir]]).
8
- - HL7 v2 / DICOM libraries are added **only** on explicit developer request — no AI-introduced healthcare-protocol dependencies (see [[hl7]], [[dicom]], [[ai-rules.domain]]).
9
-
10
- ## Related
11
- - [[dependency-policy]] · [[fhir]] · [[hl7]] · [[dicom]] · [[hipaa]] · [[ai-rules.domain]]
@@ -1,15 +0,0 @@
1
- # DICOM Standards
2
-
3
- > Commands: `/aw-spec-specify`, `/aw-spec-plan`, `/aw-spec-tasks`, `/aw-spec-implement`.
4
-
5
- ## DICOMweb façade
6
- - Supported via a **DICOMweb façade** — **QIDO-RS** (query), **WADO-RS** (retrieve), **STOW-RS** (store) — fronting a separately deployed PACS/VNA. Adapters live in `{Module}/Interop/Dicom/` (Radiology only).
7
- - The PACS/VNA endpoint is an Aspire resource referenced via `.WithReference(...)`; hosts/ports discovered through Aspire, never hard-coded.
8
-
9
- ## Metadata only
10
- - **Only DICOM METADATA is persisted here** — pixel data lives in the PACS/VNA, referenced by study/series/instance UIDs.
11
- - Radiology aggregates: `ImagingOrder`, `ImagingStudy` (metadata), `DiagnosticReport`; results surface via FHIR projections (`ImagingStudy`, `DiagnosticReport`; see [[fhir]]).
12
- - Trace context propagates across DICOM outbound calls (see [[auditing]]).
13
-
14
- ## Related
15
- - [[fhir]] · [[integration-terms]] · [[domain-driven-design]]
@@ -1,28 +0,0 @@
1
- # Domain-Driven Design — Healthcare Domain Model
2
-
3
- > Technology base: [[domain-driven-design]]. NON-NEGOTIABLE. Commands: `/aw-spec-specify`, `/aw-spec-plan`, `/aw-spec-tasks`, `/aw-spec-implement`.
4
-
5
- ## Modeling
6
- - Use the clinical/interop ubiquitous language (see [[clinical-terms]], [[integration-terms]]).
7
- - FHIR-aligned, but **FHIR resources are projections, not the system of record** (see [[fhir]]).
8
- - Coded concepts use industry terminologies, never free text (see [[terminology]]); coded value objects follow the FHIR pattern (`Codeable`, `Coding`, `Quantity`, `Period`, `Range`, `Ratio`, `Identifier`, `HumanName`, `Address`, `ContactPoint`).
9
- - Domain may throw `ConsentDeniedException` beyond generic Domain exceptions (see [[consent]]).
10
-
11
- ## Aggregates & invariants
12
- - **Patient** — MRN unique per tenant; DOB <= today; merge only via `MergePatientsCommand` preserving audit; minimum-necessary projection by role/scope.
13
- - **Consent** — withdrawal blocks downstream PHI disclosure for the purpose-of-use immediately; emits `ConsentChangedEvent` (see [[consent]]).
14
- - **Appointment** — no overlap with a booked slot for the same Practitioner/Resource; no past booking; late cancellation (< N hrs) emits `LateCancellationEvent`.
15
- - **Encounter** — not Closed/Discharged while any open Order/Result/ChargeItem/unsigned ClinicalNote exists; admission requires active Coverage or documented self-pay.
16
- - **ClinicalNote** — Signed = immutable; addendum is a new linked note; deletion forbidden (supersede via Amend).
17
- - **MedicationRequest** — dispense forbidden on active allergy match, lethal interaction, or pediatric/renal contraindication without a documented override (prescriber, reason, timestamp).
18
- - **ControlledSubstanceLedger** — every dispense/waste must balance; append-only; daily reconciliation.
19
- - **LabOrder/ImagingOrder** — not Cancellable once a Specimen/Image is acquired; transition to Aborted with a reason.
20
- - **Claim** — total billed = sum(ChargeItem.amount); resubmission needs a new ClaimVersion; none after final adjudication unless an Appeal is opened.
21
- - **InventoryItem** — stock <= 0 forbidden; dispensing an expired Lot rejected; near-expiry emits `ExpiryAlertEvent`.
22
- - **AuditRecord** — append-only; no update/delete; retention >= 6 years (see [[auditing.domain]]).
23
-
24
- ## AI guidance
25
- See [[ai-rules.domain]] — confirm signatures, use the official FHIR SDK, never invent codes, mask PHI.
26
-
27
- ## Related
28
- - [[domain-driven-design]] · [[fhir]] · [[terminology]] · [[consent]] · [[clinical-terms]] · [[integration-terms]] · [[auditing.domain]] · [[persistence.domain]] · [[ai-rules.domain]]