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.
- package/README.md +76 -81
- package/assets/.appweaver/DESIGN-FORMAT.md +56 -17
- package/assets/.appweaver/STACK-PROFILES.md +95 -60
- package/assets/.appweaver/orchestrator/LAUNCHER.md +1 -1
- package/assets/.appweaver/orchestrator/modules/delta-plan.orch.yaml +173 -32
- package/assets/.appweaver/orchestrator/modules/domain-select.orch.yaml +29 -1
- package/assets/.appweaver/orchestrator/modules/foundation-pack.orch.yaml +7 -4
- package/assets/.appweaver/orchestrator/modules/foundation-spec.orch.yaml +49 -60
- package/assets/.appweaver/orchestrator/modules/tech-select.orch.yaml +58 -0
- package/assets/.appweaver/orchestrator/orchestrator.py +26 -8
- package/assets/.appweaver/orchestrator/rev-templates/delta-design-template.skeleton.md +20 -16
- package/assets/.appweaver/orchestrator/rev-templates/design-template.skeleton.md +30 -6
- package/assets/.appweaver/orchestrator/rev-templates/ui-delta-design-template.skeleton.md +9 -7
- package/assets/.appweaver/orchestrator/rev-templates/ui-design-template.skeleton.md +5 -5
- package/assets/.appweaver/orchestrator/workflows/aw-spec-adopt.orch.yaml +341 -36
- package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-plan-delta.orch.yaml +254 -43
- package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-plan.orch.yaml +248 -68
- package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-slice-delta.orch.yaml +251 -20
- package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-slice.orch.yaml +316 -10
- package/assets/.appweaver/orchestrator/workflows/aw-spec-build.orch.yaml +6 -47
- package/assets/.appweaver/orchestrator/workflows/aw-spec-close-delta.orch.yaml +62 -16
- package/assets/.appweaver/orchestrator/workflows/aw-spec-finalize-delta.orch.yaml +132 -9
- package/assets/.appweaver/orchestrator/workflows/aw-spec-fix-test-coverage.orch.yaml +965 -0
- package/assets/.appweaver/orchestrator/workflows/aw-spec-implement.orch.yaml +222 -169
- package/assets/.appweaver/orchestrator/workflows/aw-spec-onboard.orch.yaml +28 -12
- package/assets/.appweaver/orchestrator/workflows/aw-spec-plan.orch.yaml +453 -116
- package/assets/.appweaver/orchestrator/workflows/aw-spec-select-lane.orch.yaml +7 -4
- package/assets/.appweaver/orchestrator/workflows/aw-spec-select-stack.orch.yaml +83 -6
- package/assets/.appweaver/orchestrator/workflows/aw-spec-specify.orch.yaml +45 -2
- package/assets/.appweaver/scripts/bash/aw-spec-actions.sh +324 -74
- package/assets/.appweaver/scripts/powershell/aw-spec-actions.ps1 +275 -44
- package/assets/.appweaver/scripts/python/aw-foundation.py +16 -13
- package/assets/.appweaver/scripts/python/aw-gaps.py +11 -3
- package/assets/.appweaver/scripts/python/aw-model-guard.py +295 -0
- package/assets/.appweaver/scripts/python/aw-plan-coverage.py +412 -3
- package/assets/.appweaver/scripts/python/aw-plangate.py +23 -16
- package/assets/.appweaver/scripts/python/aw-stack.py +1794 -265
- package/assets/.appweaver/stack-profiles/dotnet-webapi.json +0 -2
- package/assets/.appweaver/stack-profiles/java-spring.json +0 -2
- package/assets/.appweaver/templates/api-plan-template.md +107 -0
- package/assets/.appweaver/templates/delta-api-plan-template.md +87 -0
- package/assets/.appweaver/templates/delta-design-template.md +25 -23
- package/assets/.appweaver/templates/delta-spec-template.md +3 -3
- package/assets/.appweaver/templates/design-template.md +20 -42
- package/assets/.appweaver/templates/domain-model-template.md +3 -0
- package/assets/.appweaver/templates/ui-delta-design-template.md +11 -8
- package/assets/.appweaver/templates/ui-design-template.md +4 -4
- package/assets/foundations/foundation.spec.template.txt +25 -18
- package/assets/guardrails/README.md +61 -25
- package/assets/guardrails/methodology/ux/accessibility-standards.md +38 -0
- package/assets/guardrails/methodology/ux/content-design.md +34 -0
- package/assets/guardrails/methodology/ux/interaction-states.md +45 -0
- package/assets/guardrails/methodology/ux/journey-mapping.md +41 -0
- package/assets/guardrails/project-specific/domain/domain-requirements.md +25 -38
- package/assets/guardrails/project-specific/domain-rule-bindings.md +33 -69
- package/assets/guardrails/project-specific/frontend/ui-requirements.md +2 -2
- package/assets/guardrails/project-specific/service/technical-requirements.md +2 -2
- package/assets/guardrails/project-specific/tech-rule-bindings.md +16 -13
- package/assets/guardrails/sample-healthcare/domain/domain-requirements.md +58 -0
- package/assets/guardrails/sample-healthcare/domain-rule-bindings.md +138 -0
- package/assets/guardrails/sample-healthcare/frontend/ui-requirements.md +43 -0
- package/assets/guardrails/sample-healthcare/service/technical-requirements.md +40 -0
- package/assets/guardrails/sample-healthcare/tech-rule-bindings.md +303 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +216 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/utils/config.js +1 -1
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/foundation.d.ts +36 -0
- package/dist/utils/foundation.d.ts.map +1 -0
- package/dist/utils/foundation.js +109 -0
- package/dist/utils/foundation.js.map +1 -0
- package/dist/utils/paths.js +1 -1
- package/dist/utils/paths.js.map +1 -1
- 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
|
|
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
|
|
71
|
-
tier is the map that lists it, not the
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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/
|
|
78
|
-
- guardrails/
|
|
79
|
-
- guardrails/
|
|
80
|
-
- guardrails/
|
|
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 |
|
|
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>`
|