aw-spec-cli 0.1.32 → 0.1.34

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 (75) hide show
  1. package/README.md +76 -81
  2. package/assets/.appweaver/DESIGN-FORMAT.md +56 -17
  3. package/assets/.appweaver/STACK-PROFILES.md +95 -60
  4. package/assets/.appweaver/orchestrator/LAUNCHER.md +1 -1
  5. package/assets/.appweaver/orchestrator/modules/delta-plan.orch.yaml +173 -32
  6. package/assets/.appweaver/orchestrator/modules/domain-select.orch.yaml +29 -1
  7. package/assets/.appweaver/orchestrator/modules/foundation-pack.orch.yaml +7 -4
  8. package/assets/.appweaver/orchestrator/modules/foundation-spec.orch.yaml +49 -60
  9. package/assets/.appweaver/orchestrator/modules/tech-select.orch.yaml +58 -0
  10. package/assets/.appweaver/orchestrator/orchestrator.py +26 -8
  11. package/assets/.appweaver/orchestrator/rev-templates/delta-design-template.skeleton.md +20 -16
  12. package/assets/.appweaver/orchestrator/rev-templates/design-template.skeleton.md +30 -6
  13. package/assets/.appweaver/orchestrator/rev-templates/ui-delta-design-template.skeleton.md +9 -7
  14. package/assets/.appweaver/orchestrator/rev-templates/ui-design-template.skeleton.md +5 -5
  15. package/assets/.appweaver/orchestrator/workflows/aw-spec-adopt.orch.yaml +341 -36
  16. package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-plan-delta.orch.yaml +254 -43
  17. package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-plan.orch.yaml +248 -68
  18. package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-slice-delta.orch.yaml +251 -20
  19. package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-slice.orch.yaml +316 -10
  20. package/assets/.appweaver/orchestrator/workflows/aw-spec-build.orch.yaml +6 -47
  21. package/assets/.appweaver/orchestrator/workflows/aw-spec-close-delta.orch.yaml +62 -16
  22. package/assets/.appweaver/orchestrator/workflows/aw-spec-finalize-delta.orch.yaml +132 -9
  23. package/assets/.appweaver/orchestrator/workflows/aw-spec-fix-test-coverage.orch.yaml +965 -0
  24. package/assets/.appweaver/orchestrator/workflows/aw-spec-implement.orch.yaml +222 -169
  25. package/assets/.appweaver/orchestrator/workflows/aw-spec-onboard.orch.yaml +28 -12
  26. package/assets/.appweaver/orchestrator/workflows/aw-spec-plan.orch.yaml +453 -116
  27. package/assets/.appweaver/orchestrator/workflows/aw-spec-select-lane.orch.yaml +7 -4
  28. package/assets/.appweaver/orchestrator/workflows/aw-spec-select-stack.orch.yaml +83 -6
  29. package/assets/.appweaver/orchestrator/workflows/aw-spec-specify.orch.yaml +45 -2
  30. package/assets/.appweaver/scripts/bash/aw-spec-actions.sh +324 -74
  31. package/assets/.appweaver/scripts/powershell/aw-spec-actions.ps1 +275 -44
  32. package/assets/.appweaver/scripts/python/aw-foundation.py +16 -13
  33. package/assets/.appweaver/scripts/python/aw-gaps.py +11 -3
  34. package/assets/.appweaver/scripts/python/aw-model-guard.py +295 -0
  35. package/assets/.appweaver/scripts/python/aw-plan-coverage.py +412 -3
  36. package/assets/.appweaver/scripts/python/aw-plangate.py +23 -16
  37. package/assets/.appweaver/scripts/python/aw-stack.py +1794 -265
  38. package/assets/.appweaver/stack-profiles/dotnet-webapi.json +0 -2
  39. package/assets/.appweaver/stack-profiles/java-spring.json +0 -2
  40. package/assets/.appweaver/templates/api-plan-template.md +107 -0
  41. package/assets/.appweaver/templates/delta-api-plan-template.md +87 -0
  42. package/assets/.appweaver/templates/delta-design-template.md +25 -23
  43. package/assets/.appweaver/templates/delta-spec-template.md +3 -3
  44. package/assets/.appweaver/templates/design-template.md +20 -42
  45. package/assets/.appweaver/templates/domain-model-template.md +3 -0
  46. package/assets/.appweaver/templates/ui-delta-design-template.md +11 -8
  47. package/assets/.appweaver/templates/ui-design-template.md +4 -4
  48. package/assets/foundations/foundation.spec.template.txt +25 -18
  49. package/assets/guardrails/README.md +61 -25
  50. package/assets/guardrails/methodology/ux/accessibility-standards.md +38 -0
  51. package/assets/guardrails/methodology/ux/content-design.md +34 -0
  52. package/assets/guardrails/methodology/ux/interaction-states.md +45 -0
  53. package/assets/guardrails/methodology/ux/journey-mapping.md +41 -0
  54. package/assets/guardrails/project-specific/domain/domain-requirements.md +25 -38
  55. package/assets/guardrails/project-specific/domain-rule-bindings.md +33 -69
  56. package/assets/guardrails/project-specific/frontend/ui-requirements.md +2 -2
  57. package/assets/guardrails/project-specific/service/technical-requirements.md +2 -2
  58. package/assets/guardrails/project-specific/tech-rule-bindings.md +16 -13
  59. package/assets/guardrails/sample-healthcare/domain/domain-requirements.md +58 -0
  60. package/assets/guardrails/sample-healthcare/domain-rule-bindings.md +138 -0
  61. package/assets/guardrails/sample-healthcare/frontend/ui-requirements.md +43 -0
  62. package/assets/guardrails/sample-healthcare/service/technical-requirements.md +40 -0
  63. package/assets/guardrails/sample-healthcare/tech-rule-bindings.md +303 -0
  64. package/dist/commands/init.d.ts.map +1 -1
  65. package/dist/commands/init.js +216 -7
  66. package/dist/commands/init.js.map +1 -1
  67. package/dist/utils/config.js +1 -1
  68. package/dist/utils/config.js.map +1 -1
  69. package/dist/utils/foundation.d.ts +36 -0
  70. package/dist/utils/foundation.d.ts.map +1 -0
  71. package/dist/utils/foundation.js +109 -0
  72. package/dist/utils/foundation.js.map +1 -0
  73. package/dist/utils/paths.js +1 -1
  74. package/dist/utils/paths.js.map +1 -1
  75. package/package.json +1 -1
@@ -36,7 +36,8 @@ NOT listed here — every consumer refers to it directly, as-is.
36
36
  reads as `dotnet-webapi/` in a .NET repo and `java-spring/` in a Spring one, so this one map
37
37
  serves whatever stacks the project declares. A placeholder for an undeclared lane skips
38
38
  that bullet, so a backend-only repo loads no frontend rules. A resolved path with no file
39
- on disk is reported as missing and loads nothing in its place. The bullets were written
39
+ on disk loads nothing in its place, and the run ends with a warning naming it; so does a
40
+ placeholder the kit does not know. The bullets were written
40
41
  against the `dotnet-webapi` and `nextjs` corpora; another stack's corpus may hold only
41
42
  part of them. See STACK-PROFILES.md §7a.
42
43
  - Adding a stack is adding a corpus under `guardrails/technology/<stack>/` with the same file
@@ -45,7 +46,8 @@ NOT listed here — every consumer refers to it directly, as-is.
45
46
  - This file is the **canonical technical mapping** for this project; it is used whenever
46
47
  `.appweaver/domain.json` names `project-specific`, which it does by default.
47
48
  - A command with no heading here loads no mapped technical file (only the workflow's
48
- universal `ai-rules.md` seed + `constitution.technical.md`, referred to directly).
49
+ universal `ai-rules.md` seed + `constitution.technical.md`, referred to directly), and its
50
+ run ends with a warning — a misspelled heading reads the same as a missing one.
49
51
  - `## /aw-spec-specify` is the one **modelling-methodology** slot (see the rule partition):
50
52
  a domain-agnostic way of *modelling*, never a technology choice. Everything below it is a
51
53
  HOW-phase technical set.
@@ -67,17 +69,19 @@ NOT listed here — every consumer refers to it directly, as-is.
67
69
  methodology, not visual design; each file's own "What must NOT appear" section is
68
70
  what keeps screens out of the spec.
69
71
 
70
- ⚠ The ux/ files sit in a DOMAIN corpus folder but are TECHNICAL-tier inputs: a file's
71
- tier is the map that lists it, not the folder it lives in. guardrails/domain/healthcare/
72
- ihe-conformance.md under ## /aw-spec-plan-backend is the same pattern. Unmapping them does not
73
- make the spec's Experience Standards section disappear — the section is unconditional and
74
- resolves to "None" — it removes the methodology specify fills it from. -->
72
+ ⚠ The ux/ files sit in guardrails/methodology/ — rules that vary by neither stack nor
73
+ industry — and are TECHNICAL-tier inputs: a file's tier is the map that lists it, not the
74
+ folder it lives in. An industry corpus may carry its own variant of them;
75
+ guardrails/sample-healthcare/ maps guardrails/domain/healthcare/ux/ in their place.
76
+ Unmapping them does not make the spec's Experience Standards section disappear — the
77
+ section is unconditional and resolves to "None" — it removes the methodology specify
78
+ fills it from. -->
75
79
  - guardrails/technology/{{backend_stack}}/domain-driven-design.md
76
80
  - guardrails/technology/{{backend_stack}}/examples/domain-driven-design.md
77
- - guardrails/domain/healthcare/ux/journey-mapping.md
78
- - guardrails/domain/healthcare/ux/interaction-states.md
79
- - guardrails/domain/healthcare/ux/accessibility-standards.md
80
- - guardrails/domain/healthcare/ux/content-design.md
81
+ - guardrails/methodology/ux/journey-mapping.md
82
+ - guardrails/methodology/ux/interaction-states.md
83
+ - guardrails/methodology/ux/accessibility-standards.md
84
+ - guardrails/methodology/ux/content-design.md
81
85
 
82
86
  ## /aw-spec-plan-backend
83
87
  <!-- The technical/architecture rule files the design author works from (alongside the
@@ -97,7 +101,6 @@ NOT listed here — every consumer refers to it directly, as-is.
97
101
  - guardrails/technology/{{backend_stack}}/authorization-matrix.md
98
102
  - guardrails/technology/{{backend_stack}}/auditing.md
99
103
  - guardrails/technology/{{backend_stack}}/data-classification.md
100
- - guardrails/domain/healthcare/ihe-conformance.md
101
104
  - guardrails/technology/{{backend_stack}}/examples/clean-architecture.md
102
105
  - guardrails/technology/{{backend_stack}}/examples/cqrs.md
103
106
  - guardrails/technology/{{backend_stack}}/examples/eventing.md
@@ -278,7 +281,7 @@ NOT listed here — every consumer refers to it directly, as-is.
278
281
  | Command | Technical rule files | Role |
279
282
  |---|---|---|
280
283
  | /aw-spec-specify | 6 | the modelling methodology the spec is expressed in: DDD for the domain model (+ its example), and the four ux/ rules for the experience model it lifts as UX- ids — no technology |
281
- | /aw-spec-plan-backend | 24 | architecture/security/interop the design author mediates the spec against, each with its example |
284
+ | /aw-spec-plan-backend | 23 | architecture and security the design author mediates the spec against, each with its example |
282
285
  | /aw-spec-plan-frontend | 11 | the frontend lane's design set — composition, routing, client state, interaction states, forms, auth surface, design system, accessibility, i18n, performance, and the cross-lane API pairing the UI design author works from (from spec.md) |
283
286
  | /aw-spec-implement-backend | 6 | governance/architecture the SERVICE lane builds against (from backend-plan.md), both paths |
284
287
  | /aw-spec-implement-frontend | 13 | the FRONTEND lane's code-generation set (from frontend-plan.md), both paths — conventions, the generated client + its service pairing, auth, client security, states, forms, design system, accessibility, i18n, performance, observability and testing |
@@ -0,0 +1,58 @@
1
+ # DOMAIN REQUIREMENTS (project-specific)
2
+
3
+ > Project-specific input, **authored by the project owner** and updated independently per
4
+ > project. It is the last file in the set mapped under `## /aw-spec-constitution` in
5
+ > `domain-rule-bindings.md`, and the only one there expected to differ between two projects on this
6
+ > corpus; the standard industry rules beside it are shared. Its mapping is optional — a project
7
+ > that has not authored it yet ratifies the standard set alone.
8
+ >
9
+ > This file holds the per-project enumeration and headline profiles. Detailed domain *rules*
10
+ > are expanded in the sibling files in this folder.
11
+ >
12
+ > Replace `<SampleProjectName>` and the bounded-context list below for a new project.
13
+
14
+ =====================================================================
15
+ [DOMAIN: Bounded Contexts / Modules]
16
+ =====================================================================
17
+ - Patients — aggregates: Patient (master patient index), Consent, RelatedPerson; cross-references via PIX/PDQ.
18
+ - Appointments — aggregates: Appointment, Slot, Schedule, Waitlist.
19
+ - Encounters — aggregates: Encounter (inpatient, outpatient, emergency), Admission, Transfer, Discharge.
20
+ - EMR — aggregates: ClinicalNote, ProblemList, AllergyIntolerance, MedicationStatement, Observation (vitals, social history), Immunization, CarePlan, ServiceRequest, Procedure.
21
+ - Radiology — aggregates: ImagingOrder, ImagingStudy (DICOM metadata), DiagnosticReport (radiology); pixel data lives in PACS/VNA.
22
+ - Lab — aggregates: LabOrder, Specimen, Observation (lab result), DiagnosticReport (lab).
23
+ - Pharmacy — aggregates: MedicationRequest, MedicationDispense, MedicationAdministration, Formulary, ControlledSubstanceLedger.
24
+ - Billing — aggregates: ChargeItem, Invoice, Claim, ClaimResponse, PaymentReconciliation, Account, AdjustmentEntry.
25
+ - Insurance — aggregates: Coverage, Payer, Plan, EligibilityRequest, EligibilityResponse, PriorAuth.
26
+ - Inventory — aggregates: InventoryItem, Lot, StockMovement, Reservation, ExpiryAlert.
27
+ - Interoperability — aggregates: IntegrationEndpoint, MessageEnvelope (HL7v2), FhirSubscription, BulkExportJob.
28
+ - PatientPortal — aggregates: PortalAccount (identity-bound), MessageThread, AppointmentRequest, RecordAccessRequest.
29
+ - Identity — aggregates: Practitioner, PractitionerRole, Organization, Location, HealthcareService.
30
+ - Auditing — aggregates: AuditRecord (append-only, ATNA + FHIR AuditEvent shape).
31
+ - Terminology — aggregates: CodeSystem, ValueSet, ConceptMap (project-managed subsets; expansions cached from external TS).
32
+
33
+ =====================================================================
34
+ [DOMAIN: subsection pointers]
35
+ =====================================================================
36
+ [DOMAIN: Aggregates and Business Invariants] -> guardrails/domain/healthcare/domain-driven-design.domain.md
37
+ [DOMAIN: Persistence Profile] -> guardrails/domain/healthcare/persistence.domain.md
38
+ [DOMAIN: Security Profile] -> guardrails/domain/healthcare/authorization.domain.md, guardrails/domain/healthcare/data-classification.domain.md
39
+ [DOMAIN: Testing Profile] -> guardrails/domain/healthcare/testing.domain.md
40
+ [DOMAIN: AI Policy Addenda] -> guardrails/domain/healthcare/ai-rules.domain.md
41
+ [DOMAIN: Platform Topology] -> below
42
+
43
+ =====================================================================
44
+ [DOMAIN: Platform Topology]
45
+ =====================================================================
46
+ - Target runtime: Kubernetes (AKS, EKS, or on-prem). Single-region by default; multi-region active/passive for DR.
47
+ - External dependencies (Aspire resources): PostgreSQL (primary), Redis (cache + portal session), a message broker (Azure Service Bus, AWS SQS/SNS, or RabbitMQ) for CloudEvents, an OTel collector, the configured IdP, an external Terminology Service (optional), a FHIR validator container, a PACS/VNA endpoint (DICOMweb), an HL7v2 broker (MLLP), an SMTP/SMS gateway, an object store (S3/Blob) for binaries.
48
+ - Scale targets: P95 read latency < 200 ms at 200 RPS per module; FHIR search P95 < 500 ms; HL7v2 ingest sustains 50 messages/sec per channel.
49
+ - Disaster recovery: RPO <= 15 minutes, RTO <= 4 hours; daily encrypted backups with 35-day retention plus monthly archive >= 7 years.
50
+
51
+ =====================================================================
52
+ [DOMAIN: Governance Overrides]
53
+ =====================================================================
54
+ - Principal Engineers (approvers): TBD — fill at ratification.
55
+ - Security/Compliance Officer (mandatory approver for any PHI/security change): TBD.
56
+ - Domain Owners (per module): TBD — assign one clinical and one technical owner per bounded context.
57
+ - Quarterly review cadence: first business week of each quarter; security review additionally after every significant regulatory update.
58
+ - Exception process: a time-boxed waiver via a Waiver Request issue, approved by a Principal Engineer + the Compliance Officer, with a mandatory expiry <= 90 days and a remediation plan recorded in the issue.
@@ -0,0 +1,138 @@
1
+ # sample-healthcare — Command → Domain-Rule-File Map
2
+
3
+ Per-command list of the **domain** rule files this project loads (via `resolve-domain`
4
+ + the `domain-select` module, into the sticky standards set) for the spec-anchored
5
+ orchestrator pipeline. This project draws its domain from the **healthcare** corpus.
6
+
7
+ **A worked sample, not the default.** The kit ships `project-specific/` as the active project,
8
+ and it loads no industry rule set. This folder is a complete project on the healthcare corpus:
9
+ switch to it with `/appweaver select-domain sample-healthcare`, or copy it to
10
+ `guardrails/<name>/` and change the `guardrails/sample-healthcare/` paths in its two maps to
11
+ start a healthcare project of your own.
12
+
13
+ **The model:** domain files feed
14
+ only three consumers — **specify** (authors them into the spec as FR/BR/CN-/DC-/IC-),
15
+ **constitution** (the domain principles), and the **gates** (conformance checklist).
16
+ **design** and **implement** load **NO** domain file — the domain reaches them solely
17
+ through the spec/design (as CN-/DC-/IC- ids).
18
+
19
+ - All paths are workspace-relative. The **standard industry rules** live in
20
+ `guardrails/domain/healthcare/` — shared, reusable by every project that maps them. The
21
+ one file this project authors, `domain/domain-requirements.md`, lives beside this map.
22
+ - A mapped file that does not exist is skipped rather than failing the run, so a project
23
+ that has not authored its `domain-requirements.md` yet still gets the standard set; the run
24
+ ends with a warning naming the file. A command whose heading is absent or misspelled loads
25
+ nothing from this map, and its run ends with a warning saying so.
26
+ - `resolve-domain --command <name>` collects the `- ` bullets under `## /<name>`.
27
+ - To govern a different industry, repoint these bullets at another
28
+ `guardrails/domain/<industry>/` corpus — `guardrails/domain/pharma/` also ships. Nothing
29
+ else changes: the technical map, the workflows and the engine are untouched.
30
+ - This file is the **canonical domain mapping** for this project; it is used whenever
31
+ `.appweaver/domain.json` names `sample-healthcare`.
32
+
33
+ ---
34
+
35
+ ## /aw-spec-constitution
36
+ <!-- What the DOMAIN half ratifies into constitution.domain.md as domain principles XVI+.
37
+ The industry constitution first, then the STANDARD industry rules — the modelling
38
+ overlay the Adopted Modelling Standard section cites, identity, regulatory, interop,
39
+ security overlays, and the folder overlay the Domain Folder Additions section cites —
40
+ which every project on this corpus shares, and LAST the PROJECT-SUPPLIED
41
+ domain-requirements.md the project team authors. Only that last file is expected to
42
+ differ between two projects on the same corpus, and its mapping is OPTIONAL: the project
43
+ owner supplies the file, and where it is absent the set loads without it rather than
44
+ failing. -->
45
+ - guardrails/domain/healthcare/domain-constitution.md
46
+ - guardrails/domain/healthcare/domain-driven-design.domain.md
47
+ - guardrails/domain/healthcare/clinical-terms.md
48
+ - guardrails/domain/healthcare/terminology.md
49
+ - guardrails/domain/healthcare/consent.md
50
+ - guardrails/domain/healthcare/hipaa.md
51
+ - guardrails/domain/healthcare/fhir.md
52
+ - guardrails/domain/healthcare/hl7.md
53
+ - guardrails/domain/healthcare/dicom.md
54
+ - guardrails/domain/healthcare/data-classification.domain.md
55
+ - guardrails/domain/healthcare/auditing.domain.md
56
+ - guardrails/domain/healthcare/authorization.domain.md
57
+ - guardrails/domain/healthcare/zero-trust.domain.md
58
+ - guardrails/domain/healthcare/ai-rules.domain.md
59
+ - guardrails/domain/healthcare/folder-structure.domain.md
60
+ - guardrails/sample-healthcare/domain/domain-requirements.md
61
+
62
+ ## /aw-spec-specify
63
+ <!-- The FULL domain set. Specify models the domain COMPLETELY and LIFTS the constraint
64
+ overlays into the spec's CN-/DC-/IC- sections (design/implement never see these files). -->
65
+ - guardrails/sample-healthcare/domain/domain-requirements.md
66
+ - guardrails/domain/healthcare/domain-driven-design.domain.md
67
+ - guardrails/domain/healthcare/clinical-terms.md
68
+ - guardrails/domain/healthcare/terminology.md
69
+ - guardrails/domain/healthcare/integration-terms.md
70
+ - guardrails/domain/healthcare/consent.md
71
+ - guardrails/domain/healthcare/hipaa.md
72
+ - guardrails/domain/healthcare/fhir.md
73
+ - guardrails/domain/healthcare/hl7.md
74
+ - guardrails/domain/healthcare/dicom.md
75
+ - guardrails/domain/healthcare/data-classification.domain.md
76
+ - guardrails/domain/healthcare/persistence.domain.md
77
+ - guardrails/domain/healthcare/cqrs.domain.md
78
+ - guardrails/domain/healthcare/eventing.domain.md
79
+ - guardrails/domain/healthcare/auditing.domain.md
80
+ - guardrails/domain/healthcare/authorization.domain.md
81
+ - guardrails/domain/healthcare/zero-trust.domain.md
82
+ - guardrails/domain/healthcare/api-versioning.domain.md
83
+ - guardrails/domain/healthcare/vertical-slices.domain.md
84
+
85
+ ## /aw-spec-plan-backend
86
+ _None — the service lane of plan loads no domain file. Domain reaches it only through the spec
87
+ (BR-/CN-/DC-/IC-) and the context's domain-model.md._
88
+
89
+ ## /aw-spec-plan-frontend
90
+ _None — the frontend lane of plan loads no domain file. Domain reaches it only through the spec
91
+ and the context's domain-model.md._
92
+
93
+ ## /aw-spec-implement-backend
94
+ _None — the service lane of implement loads no domain file. Domain reaches it only through
95
+ backend-plan.md and the context's domain-model.md. Framework components are added separately via
96
+ `/appweaver add-component`._
97
+
98
+ ## /aw-spec-implement-frontend
99
+ _None — the frontend lane of implement loads no domain file. Domain reaches it only through
100
+ frontend-plan.md and the context's domain-model.md._
101
+
102
+ ## /aw-spec-gate
103
+ <!-- Conformance checklist for the gates (analyze-plan · analyze-slice): the domain-derived
104
+ constraints design/implement were NOT given as authoring input, VALIDATED against the
105
+ output. Domain re-enters here as a check, never as authoring input. -->
106
+ - guardrails/domain/healthcare/persistence.domain.md
107
+ - guardrails/domain/healthcare/cqrs.domain.md
108
+ - guardrails/domain/healthcare/eventing.domain.md
109
+ - guardrails/domain/healthcare/auditing.domain.md
110
+ - guardrails/domain/healthcare/authorization.domain.md
111
+ - guardrails/domain/healthcare/zero-trust.domain.md
112
+ - guardrails/domain/healthcare/data-classification.domain.md
113
+ - guardrails/domain/healthcare/api-versioning.domain.md
114
+ - guardrails/domain/healthcare/vertical-slices.domain.md
115
+ - guardrails/domain/healthcare/folder-structure.domain.md
116
+ - guardrails/domain/healthcare/coding-standards.domain.md
117
+ - guardrails/domain/healthcare/dependency-policy.domain.md
118
+ - guardrails/domain/healthcare/testing.domain.md
119
+ - guardrails/domain/healthcare/ai-rules.domain.md
120
+
121
+ ---
122
+
123
+ ## Quick reference (command → domain file count)
124
+
125
+ | Command | Domain rule files | Role |
126
+ |---|---|---|
127
+ | /aw-spec-constitution | 16 | domain principles (XVI+) — the industry constitution + standard industry rules + the project's own requirements |
128
+ | /aw-spec-specify | 19 | author into spec (lift → CN-/DC-/IC-) |
129
+ | /aw-spec-plan-backend | 0 | none — the spec and the domain model carry the domain |
130
+ | /aw-spec-plan-frontend | 0 | none — the spec and the domain model carry the domain |
131
+ | /aw-spec-implement-backend | 0 | none — backend-plan.md and the domain model carry the domain |
132
+ | /aw-spec-implement-frontend | 0 | none — frontend-plan.md and the domain model carry the domain |
133
+ | /aw-spec-gate | 14 | conformance checklist (validate, don't author) |
134
+
135
+ > Retired in the orchestrator pipeline: the prose `/aw-spec-plan` phase, `/aw-spec-tasks`,
136
+ > `/aw-spec-taskplan`, `/aw-spec-clarify`, `/aw-spec-analyze` (clarify folded into specify; the
137
+ > prose plan/tasks pair into the design phase, which is now itself named `/aw-spec-plan`). The
138
+ > collapsed tiers `/aw-spec-fast-implement` and `/aw-spec-minimal-implementation` are pending a ruling.
@@ -0,0 +1,43 @@
1
+ # UI Requirements — project-supplied
2
+
3
+ > **This file is authored by the project team, not by the corpus.**
4
+ > `ui-constitution.md` in the frontend stack's folder under `guardrails/technology/` is the
5
+ > standard frontend rule set for that stack, reusable by every project that maps it. This file is where one project's own experience
6
+ > decisions go.
7
+
8
+ It is mapped under `## /aw-spec-ui-constitution` in `tech-rule-bindings.md`, so its
9
+ content is ratified into `constitution.ui.md` alongside the standard rules.
10
+
11
+ Keep it **domain-free**, exactly like the standard set: regulatory and terminology rules
12
+ belong to `domain-constitution.md`, and reach the UI lane through the spec.
13
+
14
+ ## Declared Lane
15
+
16
+ <!-- The lane id, its stack and the root it owns. Must match .appweaver/stacks.json where that
17
+ file exists — STACK-MISMATCH: is the failure, not a silent rewrite. -->
18
+
19
+ ## Design System
20
+
21
+ <!-- Which design system and token set this project adopts, its version, and who may change
22
+ it. UX-II makes it the only source of visual truth; this says WHICH one. -->
23
+
24
+ ## Conformance Target
25
+
26
+ <!-- The accessibility conformance level this project commits to, and the waiver authority.
27
+ UX-I makes it non-negotiable; this names the level. -->
28
+
29
+ ## Performance Budget
30
+
31
+ <!-- Core Web Vitals thresholds and the per-route JavaScript budget CI enforces. UX-IX makes
32
+ the budget a gate; this sets the numbers. -->
33
+
34
+ ## Deviations from the Standard Rules
35
+
36
+ <!-- Each deviation: which UX-* principle, what this project does instead, why, and who
37
+ approved it. Empty is the expected state for a new project. -->
38
+
39
+ ## Ratification Metadata
40
+
41
+ - **Version:** 0.1.0
42
+ - **Ratified:** `<YYYY-MM-DD>`
43
+ - **Last Amended:** `<YYYY-MM-DD>`
@@ -0,0 +1,40 @@
1
+ # Technical Requirements — project-supplied
2
+
3
+ > **This file is authored by the project team, not by the corpus.** The rules this project's
4
+ > technical map lists live in the backend stack's folder under `guardrails/technology/` — the
5
+ > standard set for that stack, reusable by every project that maps it. This file is where one project's own technology
6
+ > decisions go, and it is the only technical file a second project on the same stack replaces.
7
+
8
+ It is mapped under `## /aw-spec-constitution` in `tech-rule-bindings.md`, so its content
9
+ is ratified into `constitution.technical.md` alongside the standard rules — which is what
10
+ lets a project's own constraints become governed principles rather than folklore.
11
+
12
+ Where this file is silent, the standard rules govern unchanged. Where it adds a constraint,
13
+ say which standard rule it extends, so the ratified principle can cite both.
14
+
15
+ ## Project Identity
16
+
17
+ <!-- Project name, mission, the bounded contexts it owns, and its deployment posture. -->
18
+
19
+ ## Technology Decisions
20
+
21
+ <!-- The choices this project has made WITHIN the standard rules: target framework version,
22
+ database engine and hosting, messaging broker, identity provider, cloud target. State
23
+ the decision, not the tutorial. -->
24
+
25
+ ## Deviations from the Standard Rules
26
+
27
+ <!-- Each deviation: which standard rule, what this project does instead, why, and who
28
+ approved it. A deviation with no approver is a defect, not a decision. Empty is the
29
+ expected state for a new project. -->
30
+
31
+ ## Project-Specific Constraints
32
+
33
+ <!-- Performance budgets, availability targets, data residency, integration deadlines, or
34
+ anything else that must become a governed principle for THIS project. -->
35
+
36
+ ## Ratification Metadata
37
+
38
+ - **Version:** 0.1.0
39
+ - **Ratified:** `<YYYY-MM-DD>`
40
+ - **Last Amended:** `<YYYY-MM-DD>`