aw-spec-cli 0.1.5 → 0.1.7
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/assets/.agents/agent.json +1 -1
- package/assets/.agents/skills/{aw-spec-orch → appweaver}/SKILL.md +10 -10
- package/assets/.agents/skills/{aw-spec-orch-demo → appweaver-demo}/SKILL.md +9 -9
- package/assets/.claude/agent.json +1 -1
- package/assets/.claude/skills/{aw-spec-orch → appweaver}/SKILL.md +10 -10
- package/assets/.claude/skills/{aw-spec-orch-demo → appweaver-demo}/SKILL.md +9 -9
- package/assets/.kilocode/agent.json +1 -1
- package/assets/.kilocode/workflows/{aw-spec-orch-demo.md → appweaver-demo.md} +9 -9
- package/assets/.kilocode/workflows/{aw-spec-orch.md → appweaver.md} +10 -10
- package/assets/docs/pharma-constitution.my-ref.md +86 -0
- package/dist/utils/paths.js +1 -1
- package/dist/utils/paths.js.map +1 -1
- package/package.json +1 -1
- package/assets/.aw-spec/DESIGN-FORMAT.md +0 -151
- package/assets/.aw-spec/ORCH-DIALECT.md +0 -156
- package/assets/.aw-spec/RULE-PARTITION.md +0 -126
- package/assets/.aw-spec/domain.json +0 -3
- package/assets/.aw-spec/extensions/.registry +0 -19
- package/assets/.aw-spec/extensions/agent-context/README.md +0 -57
- package/assets/.aw-spec/extensions/agent-context/agent-context-config.yml +0 -4
- package/assets/.aw-spec/extensions/agent-context/commands/aw-spec.agent-context.update.md +0 -26
- package/assets/.aw-spec/extensions/agent-context/extension.yml +0 -37
- package/assets/.aw-spec/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -201
- package/assets/.aw-spec/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -237
- package/assets/.aw-spec/extensions.yml +0 -16
- package/assets/.aw-spec/feature.json +0 -3
- package/assets/.aw-spec/init-options.json +0 -9
- package/assets/.aw-spec/integration.json +0 -15
- package/assets/.aw-spec/integrations/aw-spec.manifest.json +0 -9
- package/assets/.aw-spec/interpreter/run-skill.py +0 -1158
- package/assets/.aw-spec/memory/constitution.md +0 -50
- package/assets/.aw-spec/orchestrator/AGENT-PROFILE.md +0 -94
- package/assets/.aw-spec/orchestrator/README.md +0 -300
- package/assets/.aw-spec/orchestrator/adapters/claude_agent_sdk.py +0 -74
- package/assets/.aw-spec/orchestrator/adapters/google_antigravity.py +0 -74
- package/assets/.aw-spec/orchestrator/modules/delta-design.orch.yaml +0 -105
- package/assets/.aw-spec/orchestrator/modules/delta-spec.orch.yaml +0 -79
- package/assets/.aw-spec/orchestrator/modules/domain-select.orch.yaml +0 -81
- package/assets/.aw-spec/orchestrator/modules/tech-select.orch.yaml +0 -75
- package/assets/.aw-spec/orchestrator/orchestrator.py +0 -1721
- package/assets/.aw-spec/orchestrator/rev-templates/ai-rules.reference.md +0 -40
- package/assets/.aw-spec/orchestrator/rev-templates/comandrulemap.skeleton.md +0 -59
- package/assets/.aw-spec/orchestrator/rev-templates/commandtechrulemap.skeleton.md +0 -97
- package/assets/.aw-spec/orchestrator/rev-templates/domain-constitution.skeleton.md +0 -61
- package/assets/.aw-spec/orchestrator/rev-templates/domain-requirements.skeleton.md +0 -48
- package/assets/.aw-spec/orchestrator/rev-templates/domain-rule-file.skeleton.md +0 -39
- package/assets/.aw-spec/orchestrator/rev-templates/technical-constitution.skeleton.md +0 -106
- package/assets/.aw-spec/orchestrator/rev-templates/technical-rule-file.skeleton.md +0 -54
- package/assets/.aw-spec/orchestrator/workflows/_smoke.orch.yaml +0 -160
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-add-component.orch.yaml +0 -244
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-adopt.orch.yaml +0 -775
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-analyze-delta-design.orch.yaml +0 -248
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-analyze-design.orch.yaml +0 -261
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-analyze-slice.orch.yaml +0 -425
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-build.orch.yaml +0 -188
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-characterize.orch.yaml +0 -474
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-close-delta.orch.yaml +0 -181
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-constitution.orch.yaml +0 -284
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-demo.orch.yaml +0 -103
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-dependency-tree.orch.yaml +0 -69
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-deploy.orch.yaml +0 -85
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-design.orch.yaml +0 -382
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-finalize-delta.orch.yaml +0 -382
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-foundation.orch.yaml +0 -246
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-implement-delta.orch.yaml +0 -231
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-implement.orch.yaml +0 -258
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-inventory.orch.yaml +0 -236
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-onboard.orch.yaml +0 -949
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-parity.orch.yaml +0 -293
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-run.orch.yaml +0 -177
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-select-domain.orch.yaml +0 -79
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-select-feature.orch.yaml +0 -128
- package/assets/.aw-spec/orchestrator/workflows/aw-spec-specify.orch.yaml +0 -412
- package/assets/.aw-spec/scripts/bash/aw-inventory.sh +0 -14
- package/assets/.aw-spec/scripts/bash/aw-parity.sh +0 -13
- package/assets/.aw-spec/scripts/bash/aw-rev-constitution.sh +0 -13
- package/assets/.aw-spec/scripts/bash/aw-spec-actions.sh +0 -1899
- package/assets/.aw-spec/scripts/bash/aw-xref.sh +0 -15
- package/assets/.aw-spec/scripts/bash/common.sh +0 -533
- package/assets/.aw-spec/scripts/powershell/aw-inventory.ps1 +0 -14
- package/assets/.aw-spec/scripts/powershell/aw-parity.ps1 +0 -13
- package/assets/.aw-spec/scripts/powershell/aw-rev-constitution.ps1 +0 -13
- package/assets/.aw-spec/scripts/powershell/aw-spec-actions.ps1 +0 -1563
- package/assets/.aw-spec/scripts/powershell/aw-xref.ps1 +0 -15
- package/assets/.aw-spec/scripts/python/aw-inventory.py +0 -683
- package/assets/.aw-spec/scripts/python/aw-parity.py +0 -380
- package/assets/.aw-spec/scripts/python/aw-rev-constitution.py +0 -312
- package/assets/.aw-spec/scripts/python/aw-xref.py +0 -1330
- package/assets/.aw-spec/scripts/python/validate_okf.py +0 -349
- package/assets/.aw-spec/templates/constitution-domain-template.md +0 -75
- package/assets/.aw-spec/templates/constitution-technical-template.md +0 -70
- package/assets/.aw-spec/templates/delta-design-template.md +0 -69
- package/assets/.aw-spec/templates/delta-spec-template.md +0 -60
- package/assets/.aw-spec/templates/design-template.md +0 -383
- package/assets/.aw-spec/templates/okf-concept-template.md +0 -103
- package/assets/.aw-spec/templates/parity-manifest-template.json +0 -49
- package/assets/.aw-spec/templates/source-map-template.md +0 -85
- package/assets/.aw-spec/templates/spec-template.md +0 -252
- package/assets/docs/ModularMonolith/ModularMonolith.Reference.pack.txt +0 -25248
- package/assets/docs/ModularMonolith/ModularMonolith.pack.txt +0 -5726
- package/assets/docs/ModularMonolith/pack-foundation.ps1 +0 -145
- package/assets/docs/ModularMonolith/pack-foundation.sh +0 -196
- package/assets/docs/ModularMonolith/pack-reference-foundation.ps1 +0 -157
- package/assets/docs/ModularMonolith/pack-reference-foundation.sh +0 -209
- package/assets/docs/ModularMonolith/unpack-foundation.ps1 +0 -126
- package/assets/docs/ModularMonolith/unpack-foundation.sh +0 -217
- package/assets/docs/ModularMonolith/unpack-reference-foundation.ps1 +0 -129
- package/assets/docs/ModularMonolith/unpack-reference-foundation.sh +0 -218
- package/assets/docs/README.md +0 -106
- package/assets/docs/VerticalSlice/PACKAGING.md +0 -185
- package/assets/docs/VerticalSlice/VerticalSlice.Reference.pack.txt +0 -19318
- package/assets/docs/VerticalSlice/VerticalSlice.pack.txt +0 -2833
- package/assets/docs/VerticalSlice/pack-foundation.ps1 +0 -145
- package/assets/docs/VerticalSlice/pack-foundation.sh +0 -196
- package/assets/docs/VerticalSlice/pack-reference-foundation.ps1 +0 -157
- package/assets/docs/VerticalSlice/pack-reference-foundation.sh +0 -209
- package/assets/docs/VerticalSlice/unpack-foundation.ps1 +0 -126
- package/assets/docs/VerticalSlice/unpack-foundation.sh +0 -217
- package/assets/docs/VerticalSlice/unpack-reference-foundation.ps1 +0 -129
- package/assets/docs/VerticalSlice/unpack-reference-foundation.sh +0 -218
- package/assets/docs/architecture/clean-architecture.md +0 -71
- package/assets/docs/architecture/cqrs.md +0 -141
- package/assets/docs/architecture/eventing.md +0 -83
- package/assets/docs/architecture/folder-structure.md +0 -61
- package/assets/docs/architecture/modular-monolith.md +0 -47
- package/assets/docs/architecture/persistence.md +0 -269
- package/assets/docs/architecture/testing.md +0 -55
- package/assets/docs/architecture/vertical-slices.md +0 -201
- package/assets/docs/components/Email/README.md +0 -119
- package/assets/docs/components/Email/ReferenceEndpoints/SendEmailEndpoint.cs +0 -84
- package/assets/docs/components/Email/integration.md +0 -300
- package/assets/docs/components/Jobs/README.md +0 -113
- package/assets/docs/components/Jobs/integration.md +0 -259
- package/assets/docs/components/QrGenerator/README.md +0 -85
- package/assets/docs/components/QrGenerator/ReferenceEndpoints/GenerateQrEndpoint.cs +0 -57
- package/assets/docs/components/QrGenerator/integration.md +0 -230
- package/assets/docs/components/README.md +0 -74
- package/assets/docs/domain/domain-driven-design.md +0 -212
- package/assets/docs/domainspecs/healthcare/ai-rules.domain.md +0 -34
- package/assets/docs/domainspecs/healthcare/api-versioning.domain.md +0 -17
- package/assets/docs/domainspecs/healthcare/auditing.domain.md +0 -97
- package/assets/docs/domainspecs/healthcare/authorization.domain.md +0 -26
- package/assets/docs/domainspecs/healthcare/clinical-terms.md +0 -20
- package/assets/docs/domainspecs/healthcare/coding-standards.domain.md +0 -26
- package/assets/docs/domainspecs/healthcare/comandrulemap.md +0 -100
- package/assets/docs/domainspecs/healthcare/commandtechrulemap.md +0 -119
- package/assets/docs/domainspecs/healthcare/consent.md +0 -19
- package/assets/docs/domainspecs/healthcare/cqrs.domain.md +0 -12
- package/assets/docs/domainspecs/healthcare/data-classification.domain.md +0 -28
- package/assets/docs/domainspecs/healthcare/dependency-policy.domain.md +0 -11
- package/assets/docs/domainspecs/healthcare/dicom.md +0 -15
- package/assets/docs/domainspecs/healthcare/domain-driven-design.domain.md +0 -28
- package/assets/docs/domainspecs/healthcare/domain-requirements.md +0 -55
- package/assets/docs/domainspecs/healthcare/eventing.domain.md +0 -18
- package/assets/docs/domainspecs/healthcare/fhir.md +0 -36
- package/assets/docs/domainspecs/healthcare/folder-structure.domain.md +0 -23
- package/assets/docs/domainspecs/healthcare/hipaa.md +0 -34
- package/assets/docs/domainspecs/healthcare/hl7.md +0 -15
- package/assets/docs/domainspecs/healthcare/integration-terms.md +0 -21
- package/assets/docs/domainspecs/healthcare/persistence.domain.md +0 -20
- package/assets/docs/domainspecs/healthcare/terminology.md +0 -30
- package/assets/docs/domainspecs/healthcare/testing.domain.md +0 -15
- package/assets/docs/domainspecs/healthcare/vertical-slices.domain.md +0 -18
- package/assets/docs/domainspecs/healthcare/zero-trust.domain.md +0 -12
- package/assets/docs/domainspecs/pharma/ai-rules.domain.md +0 -32
- package/assets/docs/domainspecs/pharma/api-versioning.domain.md +0 -20
- package/assets/docs/domainspecs/pharma/atc.md +0 -22
- package/assets/docs/domainspecs/pharma/auditing.domain.md +0 -90
- package/assets/docs/domainspecs/pharma/authorization.domain.md +0 -25
- package/assets/docs/domainspecs/pharma/coding-standards.domain.md +0 -28
- package/assets/docs/domainspecs/pharma/comandrulemap.md +0 -108
- package/assets/docs/domainspecs/pharma/commandtechrulemap.md +0 -119
- package/assets/docs/domainspecs/pharma/cqrs.domain.md +0 -16
- package/assets/docs/domainspecs/pharma/data-classification.domain.md +0 -24
- package/assets/docs/domainspecs/pharma/data-provenance.md +0 -21
- package/assets/docs/domainspecs/pharma/dependency-policy.domain.md +0 -11
- package/assets/docs/domainspecs/pharma/domain-driven-design.domain.md +0 -36
- package/assets/docs/domainspecs/pharma/domain-requirements.md +0 -99
- package/assets/docs/domainspecs/pharma/eventing.domain.md +0 -18
- package/assets/docs/domainspecs/pharma/fhir.md +0 -31
- package/assets/docs/domainspecs/pharma/folder-structure.domain.md +0 -24
- package/assets/docs/domainspecs/pharma/hl7.md +0 -17
- package/assets/docs/domainspecs/pharma/idmp.md +0 -26
- package/assets/docs/domainspecs/pharma/integration-terms.md +0 -21
- package/assets/docs/domainspecs/pharma/ndc.md +0 -28
- package/assets/docs/domainspecs/pharma/persistence.domain.md +0 -23
- package/assets/docs/domainspecs/pharma/pharma-terms.md +0 -27
- package/assets/docs/domainspecs/pharma/product-lifecycle.domain.md +0 -30
- package/assets/docs/domainspecs/pharma/regulatory-compliance.md +0 -19
- package/assets/docs/domainspecs/pharma/terminology.md +0 -32
- package/assets/docs/domainspecs/pharma/testing.domain.md +0 -19
- package/assets/docs/domainspecs/pharma/vertical-slices.domain.md +0 -17
- package/assets/docs/domainspecs/pharma/zero-trust.domain.md +0 -12
- package/assets/docs/glossary/ai-rules.md +0 -59
- package/assets/docs/governance/api-versioning.md +0 -99
- package/assets/docs/governance/coding-standards.md +0 -87
- package/assets/docs/governance/dependency-policy.md +0 -40
- package/assets/docs/interop/ihe-conformance.md +0 -31
- package/assets/docs/requirement-spec.txt +0 -27
- package/assets/docs/security/auditing.md +0 -160
- package/assets/docs/security/authorization-matrix.md +0 -14
- package/assets/docs/security/authorization.md +0 -87
- package/assets/docs/security/data-classification.md +0 -38
- package/assets/docs/security/zero-trust.md +0 -76
- package/assets/docs/technology-constitution.md +0 -172
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
rev-templates/ai-rules.reference.md — domain-agnostic AI OPERATING rules for
|
|
3
|
-
the reverse-engineering authors. Unlike the other files in this folder this is
|
|
4
|
-
NOT a shape skeleton — it is genuine, generic operating guidance (how to
|
|
5
|
-
behave), and it asserts NO project principle, NO domain content, and NO tech
|
|
6
|
-
stack. It is safe to load directly. Kept here (not in the greenfield docs/
|
|
7
|
-
tree) so the brownfield reverse-engineering authors are self-contained on a real
|
|
8
|
-
brownfield repo.
|
|
9
|
-
-->
|
|
10
|
-
# AI Operational Rules (reverse-engineering)
|
|
11
|
-
|
|
12
|
-
> Pure operating rules — domain-agnostic, stack-agnostic. Applies to every brownfield
|
|
13
|
-
> reverse-engineering authoring step (onboard's constitution + rule-pack authors, adopt).
|
|
14
|
-
|
|
15
|
-
The **code, the deterministic scan, and any adopted spec.md / design.md / source-map.md + the
|
|
16
|
-
OKF bundle are ground truth.** Author only what they evidence; they override any pre-trained
|
|
17
|
-
habit and any greenfield template ideal.
|
|
18
|
-
|
|
19
|
-
## Evidence discipline
|
|
20
|
-
|
|
21
|
-
- Author a principle / rule ONLY for a trait the adopted docs actually evidence. If the code does
|
|
22
|
-
not show it, it is not a rule here.
|
|
23
|
-
- CITE the concrete proof inline (a design section, a named type / port / config, a spec id). An
|
|
24
|
-
assertion you cannot ground does not belong in the output.
|
|
25
|
-
- State partial / stubbed / optional behaviour AT THE LEVEL THE CODE REACHES — never the ideal.
|
|
26
|
-
Route unmet ideals / stubs / deferrals to the as-built debt list, never assert them.
|
|
27
|
-
|
|
28
|
-
## Format vs content
|
|
29
|
-
|
|
30
|
-
- The skeletons in this folder are SHAPE ONLY. Copy their headings, frontmatter, and tone; never
|
|
31
|
-
copy a bracketed token or an example concept as if it were this project's value.
|
|
32
|
-
- Do NOT import a concept, identifier, terminology, regulatory claim, or rule that this project's
|
|
33
|
-
code / specs / designs do not evidence.
|
|
34
|
-
|
|
35
|
-
## Operating envelope
|
|
36
|
-
|
|
37
|
-
- Write ONLY the declared output target (or, for the pack, only inside the pack folder). No
|
|
38
|
-
drive-by edits to unrelated files.
|
|
39
|
-
- No secrets, connection strings, or production hostnames in any authored file.
|
|
40
|
-
- Preserve the rule partition: design and implement receive no domain file.
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
rev-templates/comandrulemap.skeleton.md — SHAPE-ONLY reference for the pack's
|
|
3
|
-
comandrulemap.md (note the exact misspelling: resolve-domain reads it by that
|
|
4
|
-
name). It shows the five per-command headings, the RULE PARTITION (design +
|
|
5
|
-
implement get NO domain file), the bullet shape, and the quick-reference
|
|
6
|
-
table. It lists NO real rule files — every bullet is a placeholder for a file
|
|
7
|
-
the pack author actually generated from THIS project's evidence.
|
|
8
|
-
|
|
9
|
-
Wire ONLY files you generated. Never list a file you did not write.
|
|
10
|
-
-->
|
|
11
|
-
# [PROJECT_NAME] Domain — Command → Rule-File Map
|
|
12
|
-
|
|
13
|
-
Per-command list of the **[PROJECT_NAME] domain** rule files loaded (via `resolve-domain` +
|
|
14
|
-
`domain-select`, into the sticky standards set) for the spec-anchored orchestrator pipeline.
|
|
15
|
-
|
|
16
|
-
**The model (see `.aw-spec/RULE-PARTITION.md`):** domain files feed only three
|
|
17
|
-
consumers — **specify** (authors them into the spec as FR/BR/CN-/DC-/IC-), **constitution** (the
|
|
18
|
-
domain principles), and the **gates** (conformance checklist). **design** and **implement** load
|
|
19
|
-
**NO** domain file — the domain reaches them solely through the spec/design ids. This is the rule
|
|
20
|
-
partition; preserve it exactly.
|
|
21
|
-
|
|
22
|
-
- All paths are workspace-relative and live in `docs/domainspecs/[domain]/`.
|
|
23
|
-
- `resolve-domain --command <name>` collects the `- ` bullets under `## /<name>`.
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## /aw-spec-constitution
|
|
28
|
-
<!-- Domain identity / regulatory / interop sources that become domain principles in
|
|
29
|
-
constitution.domain.md. -->
|
|
30
|
-
- docs/domainspecs/[domain]/[identity-or-requirements-file].md
|
|
31
|
-
- docs/domainspecs/[domain]/[each generated domain-principle source].md
|
|
32
|
-
|
|
33
|
-
## /aw-spec-specify
|
|
34
|
-
<!-- The FULL generated domain set. Specify models the domain and LIFTS the overlay constraints
|
|
35
|
-
into the spec's CN-/DC-/IC- (design/implement never see these files). -->
|
|
36
|
-
- docs/domainspecs/[domain]/[each generated domain rule file].md
|
|
37
|
-
|
|
38
|
-
## /aw-spec-design
|
|
39
|
-
_None — design loads no domain file. Domain reaches design only through the spec (BR-/CN-/DC-/IC-)._
|
|
40
|
-
|
|
41
|
-
## /aw-spec-implement
|
|
42
|
-
_None — implement loads no domain file. Domain reaches implement only through design.md._
|
|
43
|
-
|
|
44
|
-
## /aw-spec-gate
|
|
45
|
-
<!-- Conformance checklist for the gates (analyze-design · analyze-slice): the domain-derived
|
|
46
|
-
constraints design/implement were NOT given as authoring input, VALIDATED against output. -->
|
|
47
|
-
- docs/domainspecs/[domain]/[each *.domain.md overlay to validate against].md
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Quick reference (command → domain file count)
|
|
52
|
-
|
|
53
|
-
| Command | Domain rule files | Role |
|
|
54
|
-
|---|---|---|
|
|
55
|
-
| /aw-spec-constitution | [n] | domain principles |
|
|
56
|
-
| /aw-spec-specify | [n] | author into spec (lift → CN-/DC-/IC-) |
|
|
57
|
-
| /aw-spec-design | 0 | none — spec is the only domain input |
|
|
58
|
-
| /aw-spec-implement | 0 | none — design is the only domain input |
|
|
59
|
-
| /aw-spec-gate | [n] | conformance checklist (validate, don't author) |
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
rev-templates/commandtechrulemap.skeleton.md — SHAPE-ONLY reference for the
|
|
3
|
-
pack's commandtechrulemap.md (resolve-tech reads it by that exact name — the
|
|
4
|
-
TECHNICAL twin of comandrulemap.md, which resolve-domain reads). It shows the
|
|
5
|
-
per-command headings, the TECHNICAL RULE PARTITION, the bullet shape, and the
|
|
6
|
-
quick-reference table. It lists NO real rule files — every bullet is a
|
|
7
|
-
placeholder for a tech/ file the pack author actually generated from THIS
|
|
8
|
-
project's CODE.
|
|
9
|
-
|
|
10
|
-
Wire ONLY files you generated (all under docs/domainspecs/[domain]/tech/).
|
|
11
|
-
Never list a file you did not write. Never list a greenfield docs/architecture,
|
|
12
|
-
docs/security, docs/governance, or docs/interop path — those are the greenfield
|
|
13
|
-
fixture and are NOT this project's rules.
|
|
14
|
-
-->
|
|
15
|
-
# [PROJECT_NAME] — Command → Technical-Rule-File Map (as-built)
|
|
16
|
-
|
|
17
|
-
Per-command list of the **[PROJECT_NAME] technical** rule files loaded (via `resolve-tech` +
|
|
18
|
-
the `tech-select` module, into the sticky standards set) for the spec-anchored orchestrator
|
|
19
|
-
pipeline. This is the technical counterpart of `comandrulemap.md` (which maps the DOMAIN rule
|
|
20
|
-
files), and the CODE-DERIVED replacement for the greenfield technical map.
|
|
21
|
-
|
|
22
|
-
**The model:** the technical rule files (this project's own architecture / persistence /
|
|
23
|
-
concurrency / testing / security-posture set, reverse-engineered from the code into
|
|
24
|
-
`docs/domainspecs/[domain]/tech/`) are CONFIGURATION — tune this map, not the workflows. The
|
|
25
|
-
technology base itself (`constitution.technical.md`) is NOT listed here — every consumer still
|
|
26
|
-
refers to it directly, as-is.
|
|
27
|
-
|
|
28
|
-
- All paths are workspace-relative and live in `docs/domainspecs/[domain]/tech/`.
|
|
29
|
-
- `resolve-tech --command <name>` collects the `- ` bullets under `## /<name>`.
|
|
30
|
-
- **`## /aw-spec-specify` is the MODELLING-METHODOLOGY slot** — exactly one file,
|
|
31
|
-
`tech/domain-modelling.md`: HOW this code expresses a domain model. Never an architecture /
|
|
32
|
-
persistence / codegen / security file; those would break specify's domain purity. Every other
|
|
33
|
-
heading below feeds the HOW phases.
|
|
34
|
-
- A command with no heading here loads no mapped technical file (only the workflow's universal
|
|
35
|
-
`ai-rules.md` seed + `constitution.technical.md`, referred to directly).
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## /aw-spec-specify
|
|
40
|
-
<!-- MODELLING METHODOLOGY ONLY — exactly one file. HOW this codebase expresses a domain model
|
|
41
|
-
(what marks an aggregate root, entity vs value object, where invariants live, the context
|
|
42
|
-
boundary), NOT what the model is (that is the domain pack's domain-driven-design.domain.md,
|
|
43
|
-
wired via comandrulemap). No technology rule may appear under this heading. -->
|
|
44
|
-
- docs/domainspecs/[domain]/tech/domain-modelling.md
|
|
45
|
-
|
|
46
|
-
## /aw-spec-design
|
|
47
|
-
<!-- The as-built architecture / cross-cutting technical rules the design author mediates the spec
|
|
48
|
-
against. NO domain file here — domain reaches design only as spec ids. -->
|
|
49
|
-
- docs/domainspecs/[domain]/tech/[as-built-architecture].md
|
|
50
|
-
- docs/domainspecs/[domain]/tech/[each generated architecture/cross-cutting rule].md
|
|
51
|
-
|
|
52
|
-
## /aw-spec-implement
|
|
53
|
-
<!-- The framework / code-generation rule set the generator builds against (from design.md). -->
|
|
54
|
-
- docs/domainspecs/[domain]/tech/[each generated codegen/convention rule].md
|
|
55
|
-
|
|
56
|
-
## /aw-spec-implement-delta
|
|
57
|
-
<!-- The CR analog of implement — same code-generation set, scoped to the delta-design. -->
|
|
58
|
-
- docs/domainspecs/[domain]/tech/[each generated codegen/convention rule].md
|
|
59
|
-
|
|
60
|
-
## /aw-spec-build
|
|
61
|
-
<!-- The layering + convention rules the compile-fixer respects. -->
|
|
62
|
-
- docs/domainspecs/[domain]/tech/[as-built-architecture].md
|
|
63
|
-
|
|
64
|
-
## /aw-spec-analyze-slice
|
|
65
|
-
<!-- The design↔code conformance gate's TECHNICAL checklist (validate, don't author). -->
|
|
66
|
-
- docs/domainspecs/[domain]/tech/[testing/convention rule to validate against].md
|
|
67
|
-
|
|
68
|
-
## /aw-spec-adopt
|
|
69
|
-
<!-- Brownfield reverse-engineering: the technical REFERENCE set the reversed design mediates the
|
|
70
|
-
reversed spec ↔ existing code against — the CODE wins, these are reference only. -->
|
|
71
|
-
- docs/domainspecs/[domain]/tech/[architecture/cross-cutting reference rule].md
|
|
72
|
-
|
|
73
|
-
## /aw-spec-run
|
|
74
|
-
<!-- The runtime / execution conventions the app-run step honors — add ONLY if the code evidences
|
|
75
|
-
a runtime/hosting concern file. NOT data-migration (migration is the deferred later phase). -->
|
|
76
|
-
- docs/domainspecs/[domain]/tech/[runtime/hosting rule].md
|
|
77
|
-
|
|
78
|
-
<!-- Do NOT add /aw-spec-characterize or /aw-spec-parity in the DEV flow — characterize is
|
|
79
|
-
opt-on-touch and parity is deferred to the migration phase. /aw-spec-constitution is NOT
|
|
80
|
-
mapped either (constitution.technical.md is referred to directly). Add such a heading later
|
|
81
|
-
ONLY if that phase is entered AND you generated a file it should load — an absent heading
|
|
82
|
-
soft-continues (loads nothing). -->
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## Quick reference (command → technical file count)
|
|
87
|
-
|
|
88
|
-
| Command | Technical rule files | Role |
|
|
89
|
-
|---|---|---|
|
|
90
|
-
| /aw-spec-specify | 1 | the as-built modelling methodology the domain model is expressed in — no technology |
|
|
91
|
-
| /aw-spec-design | [n] | as-built architecture the design author mediates the spec against |
|
|
92
|
-
| /aw-spec-implement | [n] | code-generation set the generator builds against (from design.md) |
|
|
93
|
-
| /aw-spec-implement-delta | [n] | same code-generation set, scoped to the open change's delta-design |
|
|
94
|
-
| /aw-spec-build | [n] | layering + convention rules the compile-fixer respects |
|
|
95
|
-
| /aw-spec-analyze-slice | [n] | conformance rules the design↔code gate validates against |
|
|
96
|
-
| /aw-spec-adopt | [n] | technical reference set for the reversed design (brownfield) |
|
|
97
|
-
| /aw-spec-run | [n] | runtime/execution conventions the app-run step honors (only if evidenced) |
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
rev-templates/domain-constitution.skeleton.md — SHAPE-ONLY reference for the
|
|
3
|
-
domain-constitution SOURCE (docs/[domain]-constitution.md), the human-readable
|
|
4
|
-
charter the domain half is authored from (so the normal /aw-spec-orch
|
|
5
|
-
constitution can re-derive it later). It shows the Project-Identity + Domain-
|
|
6
|
-
Principle shape ONLY. No principle set to inherit; every principle is
|
|
7
|
-
discovered from the adopted specs and cited.
|
|
8
|
-
|
|
9
|
-
THIS IS A PROJECT CHARTER, NOT AN AGGREGATE SPEC. Even with one adopted
|
|
10
|
-
aggregate, describe the domain / bounded context AS A WHOLE — the adopted
|
|
11
|
-
aggregate(s) are the current evidence, never the subject.
|
|
12
|
-
-->
|
|
13
|
-
# [PROJECT_NAME] Domain Constitution (as-built)
|
|
14
|
-
|
|
15
|
-
> `origin: reverse-engineered` · [YYYY-MM-DD]. Domain addenda to the technology base — compose
|
|
16
|
-
> with the technical half; not ratified on its own.
|
|
17
|
-
|
|
18
|
-
## Project Identity
|
|
19
|
-
|
|
20
|
-
- **Project name:** [PROJECT_NAME] (from the OKF overview).
|
|
21
|
-
- **Mission:** [from the OKF overview Purpose].
|
|
22
|
-
- **Bounded contexts / aggregate map:** [list the adopted aggregate(s) AND named external
|
|
23
|
-
references / ports as not-yet-adopted contexts — from the overview's aggregate map + index].
|
|
24
|
-
- **Architecture posture:** [as-built posture named from the designs — not an ideal].
|
|
25
|
-
|
|
26
|
-
## Domain Principles
|
|
27
|
-
|
|
28
|
-
<!-- Numbered to CONTINUE the technology base, which is authored later and is evidenced-only (do
|
|
29
|
-
NOT assume it ends at any fixed numeral). Use a stable "D1, D2, …" convention here; the
|
|
30
|
-
composed constitution assigns the exact roman numerals. TITLE each by its DOMAIN CONCERN,
|
|
31
|
-
never by an aggregate name. State each as a rule that would still hold if a second aggregate
|
|
32
|
-
entered the same context; cite the aggregate(s) + spec ids as the evidence it generalises. -->
|
|
33
|
-
|
|
34
|
-
### D1 — [DOMAIN-CONCERN TITLE] [(NON-NEGOTIABLE)?]
|
|
35
|
-
[The rule the code ACTUALLY enforces — as-built, testable. Note an observed gap as a plain
|
|
36
|
-
principle, not a target.]
|
|
37
|
-
Extends technology [principle ref]. Evidence: [BR-/CN-/DC-/IC-/FR- ids]. → [pack file(s)]
|
|
38
|
-
|
|
39
|
-
### D2 — [DOMAIN-CONCERN TITLE] [(NON-NEGOTIABLE)?]
|
|
40
|
-
[…]
|
|
41
|
-
Extends technology [principle ref]. Evidence: [ids]. → [pack file(s)]
|
|
42
|
-
|
|
43
|
-
<!-- … one per domain concern the specs evidence … -->
|
|
44
|
-
|
|
45
|
-
## Folder Structure Additions
|
|
46
|
-
|
|
47
|
-
- [Only domain-specific additions the module actually uses; otherwise "none beyond the base".]
|
|
48
|
-
|
|
49
|
-
## Security & Governance Addenda
|
|
50
|
-
|
|
51
|
-
- [As-built posture: auditability, authorization surface, classification — named from evidence.]
|
|
52
|
-
- [Stub/permissive adapters recorded as migration debt, not claimed as satisfied ideals.]
|
|
53
|
-
|
|
54
|
-
## Governance Overrides
|
|
55
|
-
|
|
56
|
-
- [Domain change-authority / mandatory approvers — observed or TODO(GOVERNANCE): assign.]
|
|
57
|
-
- Base amendment procedure and SemVer policy in the technical half still apply.
|
|
58
|
-
|
|
59
|
-
## Domain Requirements Pointer
|
|
60
|
-
|
|
61
|
-
→ docs/domainspecs/[domain]/domain-requirements.md
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
origin: reverse-engineered
|
|
3
|
-
generated_by: aw-spec-onboard/[VERSION]
|
|
4
|
-
---
|
|
5
|
-
<!--
|
|
6
|
-
rev-templates/domain-requirements.skeleton.md — SHAPE-ONLY reference for the
|
|
7
|
-
pack's domain-requirements.md: a PROJECT-LEVEL overview of the domain the pack
|
|
8
|
-
governs (not a single-aggregate spec). It opens with a bounded-context /
|
|
9
|
-
module map (from the OKF overview + aggregate index), then per-subsection
|
|
10
|
-
pointers to the generated rule files, platform topology, and governance
|
|
11
|
-
overrides. Fill the map from the ACTUAL adopted aggregates + named external
|
|
12
|
-
references; add a subsection pointer ONLY for a file you generated.
|
|
13
|
-
-->
|
|
14
|
-
# DOMAIN REQUIREMENTS — [PROJECT_NAME] (project-level)
|
|
15
|
-
|
|
16
|
-
> Project-level enumeration and headline profiles for the **[PROJECT_NAME]** domain. Detailed
|
|
17
|
-
> domain rules are expanded in the sibling files in this folder. Reverse-engineered, as-built.
|
|
18
|
-
|
|
19
|
-
=====================================================================
|
|
20
|
-
[DOMAIN: Bounded Contexts / Modules]
|
|
21
|
-
=====================================================================
|
|
22
|
-
- [Context / module] — aggregate root: **[Aggregate]** (adopted — current evidence); owns
|
|
23
|
-
[entities] and the value objects ([named VOs]). See [[domain-driven-design.domain]].
|
|
24
|
-
- [Named external reference / port] — [role]; not adopted as an aggregate.
|
|
25
|
-
- [… list each bounded context observed in the OKF overview / aggregate index …]
|
|
26
|
-
|
|
27
|
-
=====================================================================
|
|
28
|
-
[DOMAIN: subsection pointers]
|
|
29
|
-
=====================================================================
|
|
30
|
-
[DOMAIN: <subsection>] -> docs/domainspecs/[domain]/[generated-file].md
|
|
31
|
-
[DOMAIN: <subsection>] -> docs/domainspecs/[domain]/[generated-file].md
|
|
32
|
-
[DOMAIN: Platform Topology] -> below
|
|
33
|
-
|
|
34
|
-
=====================================================================
|
|
35
|
-
[DOMAIN: Platform Topology]
|
|
36
|
-
=====================================================================
|
|
37
|
-
- [Runtime / external dependencies AS INVENTORIED — from the OKF overview/platform note, not an ideal.]
|
|
38
|
-
- [Only what the platform actually declares; unknowns are Open Questions, not assumed capabilities.]
|
|
39
|
-
|
|
40
|
-
=====================================================================
|
|
41
|
-
[DOMAIN: Governance Overrides]
|
|
42
|
-
=====================================================================
|
|
43
|
-
- [Approvers / change-authority observed or TODO(GOVERNANCE): assign at ratification.]
|
|
44
|
-
- [Any domain-specific review trigger the code/specs evidence.]
|
|
45
|
-
|
|
46
|
-
## Related
|
|
47
|
-
|
|
48
|
-
- [[domain-driven-design.domain]] · [[<generated siblings>]]
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
origin: reverse-engineered
|
|
3
|
-
generated_by: aw-spec-onboard/[VERSION]
|
|
4
|
-
concern: "[concern-slug]"
|
|
5
|
-
---
|
|
6
|
-
<!--
|
|
7
|
-
rev-templates/domain-rule-file.skeleton.md — SHAPE-ONLY reference for ONE
|
|
8
|
-
generated `<concern>.domain.md` overlay in the pack. Write one such file per
|
|
9
|
-
concern the adopted specs/designs ACTUALLY exhibit (evidenced-only, lean) —
|
|
10
|
-
e.g. domain-driven-design, persistence, auditing, authorization, cqrs,
|
|
11
|
-
eventing, data-classification, api-versioning, or a domain reference file for
|
|
12
|
-
an identifier/vocabulary the code uses.
|
|
13
|
-
|
|
14
|
-
Every rule below MUST trace to a BR-/CN-/DC-/IC-/FR- id, a named value object
|
|
15
|
-
/ port / entity, or the OKF overview. No rule the code does not evidence.
|
|
16
|
-
Keep the frontmatter (origin + generated_by + concern). Copy the SHAPE only.
|
|
17
|
-
-->
|
|
18
|
-
# [Concern] — [PROJECT_NAME] Domain Addenda
|
|
19
|
-
|
|
20
|
-
> Technology base: [[<technical-base-concern>]]. Commands: [the commands this file feeds, per the partition].
|
|
21
|
-
|
|
22
|
-
> [One-line framing of what this concern IS in this project — from evidence, not an ideal.]
|
|
23
|
-
|
|
24
|
-
## [Section — e.g. Categories / Rules / Invariants]
|
|
25
|
-
|
|
26
|
-
- [As-built rule the code enforces.] (evidence: [BR-/CN-/DC-/IC-/FR- id or named type])
|
|
27
|
-
- [As-built rule.] (evidence: […])
|
|
28
|
-
|
|
29
|
-
## [Section — e.g. Exposure & logging / Constraints / Lifecycle]
|
|
30
|
-
|
|
31
|
-
- [As-built rule.] (evidence: […])
|
|
32
|
-
|
|
33
|
-
<!-- Where the code's behaviour is a stub / partial / permissive, STATE IT AS-BUILT and note that
|
|
34
|
-
the CONTRACT still stands (stub behaviour is migration debt, not a waiver) — do not upgrade a
|
|
35
|
-
stub into a satisfied ideal. -->
|
|
36
|
-
|
|
37
|
-
## Related
|
|
38
|
-
|
|
39
|
-
- [[<sibling generated overlay>]] · [[<technical-base-concern>]]
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
═══════════════════════════════════════════════════════════════════════════
|
|
3
|
-
rev-templates/technical-constitution.skeleton.md — SHAPE-ONLY reference.
|
|
4
|
-
|
|
5
|
-
This file is the FORMAT + VOCABULARY reference for the reverse-engineered
|
|
6
|
-
TECHNICAL half (constitution.technical.md). It is loaded as a `standards:`
|
|
7
|
-
entry for the technical-half author (include_standards:true). It carries the
|
|
8
|
-
AppWeaver principle-heading style, the Sync-Impact-Report shape, the
|
|
9
|
-
evidence-line pattern, and the section skeleton — and NOTHING ELSE.
|
|
10
|
-
|
|
11
|
-
IT DELIBERATELY CONTAINS NO PRINCIPLE SET. There is no fixed I–XV list to
|
|
12
|
-
inherit. Every [BRACKET] token below is a slot the author fills from evidence
|
|
13
|
-
— never a value to copy. Copy the SHAPE, discover the CONTENT from the code.
|
|
14
|
-
|
|
15
|
-
DISCIPLINE THIS SKELETON ENFORCES (structurally — there is no project content
|
|
16
|
-
here to leak):
|
|
17
|
-
• EVIDENCE-FIRST — author a principle ONLY for a technology trait the
|
|
18
|
-
adopted design.md files + the OKF overview/platform note actually
|
|
19
|
-
evidence. If the code does not show it, it is not a principle.
|
|
20
|
-
• CITE inline — every principle ends with an `(evidence: …)` line naming a
|
|
21
|
-
design section, a concrete type / port / DbContext / config, or an OKF
|
|
22
|
-
stack line. A principle with no groundable evidence does not belong.
|
|
23
|
-
• AS-BUILT LEVEL — state a partial / stubbed / optional trait at the level
|
|
24
|
-
the code actually reaches; never the aspirational ideal.
|
|
25
|
-
• OMIT pure aspiration — a trait the code shows zero of is not softened into
|
|
26
|
-
a principle; it is left out.
|
|
27
|
-
• ROUTE gaps — an unmet ideal / stub / inactive-optional concern goes into
|
|
28
|
-
the "As-Built Debt → migration backlog" list below, never asserted.
|
|
29
|
-
• VARIABLE LENGTH — number sequentially from I with no gaps and no padding
|
|
30
|
-
to a fixed count. The final numeral is the domain half's continuation
|
|
31
|
-
point.
|
|
32
|
-
═══════════════════════════════════════════════════════════════════════════
|
|
33
|
-
-->
|
|
34
|
-
<!--
|
|
35
|
-
Sync Impact Report
|
|
36
|
-
- Version: [OLD] -> [NEW] (reverse-engineered technical baseline)
|
|
37
|
-
- Project: [PROJECT_NAME]
|
|
38
|
-
- Discovered technical principles: I–[N] (domain half continues at [N+1])
|
|
39
|
-
- Principle set (as-built):
|
|
40
|
-
I [PRINCIPLE_TITLE]
|
|
41
|
-
II [PRINCIPLE_TITLE]
|
|
42
|
-
… (only traits the code evidences — no fixed count)
|
|
43
|
-
- Template ideals DELIBERATELY OMITTED (lack of as-built evidence):
|
|
44
|
-
- [IDEAL] — [why the code does not evidence it]
|
|
45
|
-
- …
|
|
46
|
-
- As-Built Debt → migration backlog (see knowledge/migration-backlog.md; do not restate the table):
|
|
47
|
-
- [gap / stub / inactive-optional concern] — [where it is tracked]
|
|
48
|
-
- …
|
|
49
|
-
- Dependent artifacts:
|
|
50
|
-
- constitution.domain.md — ⚠ authored next; continues at [N+1]
|
|
51
|
-
- docs/[domain]-constitution.md — [✅/⚠] domain charter source
|
|
52
|
-
- docs/domainspecs/[domain]/ — [✅/⚠] pack
|
|
53
|
-
- TODOs: [none mechanical | …]
|
|
54
|
-
-->
|
|
55
|
-
# [PROJECT_NAME] Constitution — Technical Base
|
|
56
|
-
|
|
57
|
-
> Reverse-engineered, **as-built**, domain-agnostic technical half. Authority for DESIGN and
|
|
58
|
-
> IMPLEMENT. Domain principles live in `constitution.domain.md` (continues at **[N+1]**).
|
|
59
|
-
> This file asserts only technology traits evidenced by the adopted designs + OKF overview/platform.
|
|
60
|
-
|
|
61
|
-
## Core Principles
|
|
62
|
-
|
|
63
|
-
<!-- One block PER EVIDENCED TRAIT. Tag (NON-NEGOTIABLE) only where the code enforces it as such.
|
|
64
|
-
Replace the bracketed text; keep the `### <numeral>. <title>` + rule + `(evidence: …)` shape. -->
|
|
65
|
-
|
|
66
|
-
### I. [PRINCIPLE TITLE] [(NON-NEGOTIABLE)?]
|
|
67
|
-
[One declarative, testable rule the adopted designs actually evidence. State it at the level the
|
|
68
|
-
code reaches — partial/stubbed/optional traits are stated as partial, not as the ideal.]
|
|
69
|
-
(evidence: [design §X.Y named type / port / DbContext / config; or OKF overview Tech-stack line])
|
|
70
|
-
|
|
71
|
-
### II. [PRINCIPLE TITLE] [(NON-NEGOTIABLE)?]
|
|
72
|
-
[…]
|
|
73
|
-
(evidence: […])
|
|
74
|
-
|
|
75
|
-
<!-- … continue with only the principles the code evidences … -->
|
|
76
|
-
|
|
77
|
-
> **Domain half continues at principle [N+1]** in `constitution.domain.md`.
|
|
78
|
-
|
|
79
|
-
## Mandatory Folder Structure (base)
|
|
80
|
-
|
|
81
|
-
- [Solution projects / module layout AS INVENTORIED — from the OKF overview + designs, not an ideal.]
|
|
82
|
-
- [Cross-cutting host files that stay at their template levels.]
|
|
83
|
-
- Domain-specific folder additions (if any) are declared only in the domain constitution half.
|
|
84
|
-
|
|
85
|
-
## Conventions, Forbidden Patterns, AI Rules & Quality Gates (base)
|
|
86
|
-
|
|
87
|
-
- [Prefer the framework abstractions ALREADY in use — name them from evidence.]
|
|
88
|
-
- [Forbidden patterns the code's structure implies — e.g. no cross-aggregate write, endpoints do not touch persistence.]
|
|
89
|
-
- Base AI operating rules: [pointer to the operating-rules reference].
|
|
90
|
-
- Any pre-existing greenfield standards docs are **reference only** until reverse-engineered against
|
|
91
|
-
this codebase — where they conflict with the as-built evidence above, **this constitution wins**.
|
|
92
|
-
|
|
93
|
-
## Governance
|
|
94
|
-
|
|
95
|
-
- This technical half + the paired domain half supersede README / agent-context files where they
|
|
96
|
-
disagree on engineering rules.
|
|
97
|
-
- Amendments via PR that updates the affected half (+ pack/docs if needed), includes a migration
|
|
98
|
-
plan for non-compliant code, and bumps SemVer:
|
|
99
|
-
- **MAJOR** — remove/weaken a NON-NEGOTIABLE principle or break mandatory structure
|
|
100
|
-
- **MINOR** — add a principle or mandatory section
|
|
101
|
-
- **PATCH** — clarifications
|
|
102
|
-
- Reviewers cite principle numbers. Domain change-authority overrides live in the domain half.
|
|
103
|
-
- Runtime agent guidance MUST point at the composed constitution and MUST NOT restate these
|
|
104
|
-
principles at length.
|
|
105
|
-
|
|
106
|
-
**Version**: [X.Y.Z] | **Ratified**: [YYYY-MM-DD] | **Last Amended**: [YYYY-MM-DD]
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
origin: reverse-engineered
|
|
3
|
-
generated_by: aw-spec-onboard/[VERSION]
|
|
4
|
-
concern: "[concern-slug]"
|
|
5
|
-
---
|
|
6
|
-
<!--
|
|
7
|
-
rev-templates/technical-rule-file.skeleton.md — SHAPE-ONLY reference for ONE
|
|
8
|
-
generated technical rule file in the pack's tech/ folder
|
|
9
|
-
(docs/domainspecs/[domain]/tech/<concern>.md). It is the TECHNICAL twin of
|
|
10
|
-
domain-rule-file.skeleton.md. Write one such file per TECHNOLOGY concern the
|
|
11
|
-
CODE ACTUALLY exhibits (evidenced-only, lean) — e.g. as-built-architecture,
|
|
12
|
-
persistence, concurrency, testing, security-posture, api-surface, eventing,
|
|
13
|
-
observability, hosting — NOT per domain concern (those are the *.domain.md
|
|
14
|
-
overlays), NOT per greenfield ideal.
|
|
15
|
-
|
|
16
|
-
ONE concern in this pack is not a technology concern and is still written here:
|
|
17
|
-
`domain-modelling` — the as-built modelling METHODOLOGY (what marks an aggregate
|
|
18
|
-
root, entity vs value object, where invariants live, the context boundary). It is
|
|
19
|
-
the only file wired under `## /aw-spec-specify`, and it carries NO business
|
|
20
|
-
vocabulary: HOW this code models, never WHAT it models (that is the domain pack's
|
|
21
|
-
domain-driven-design.domain.md). Same shape as below — cite code coordinates.
|
|
22
|
-
|
|
23
|
-
Every rule below MUST cite a CODE COORDINATE (a real file/folder path or named
|
|
24
|
-
type) and, where it maps, the technical-constitution principle numeral it
|
|
25
|
-
details. This is the DETAIL layer under constitution.technical.md — the thin
|
|
26
|
-
ratified principle points here; here is the enforceable rule. State what the
|
|
27
|
-
code DOES (quirks, stubs, partials included), never a greenfield assumption.
|
|
28
|
-
Keep the frontmatter (origin + generated_by + concern). Copy the SHAPE only —
|
|
29
|
-
this file carries NO real technology, path, or framework name.
|
|
30
|
-
-->
|
|
31
|
-
# [Concern] — [PROJECT_NAME] Technical Rule (as-built)
|
|
32
|
-
|
|
33
|
-
> Ratified by: constitution.technical.md principle [N] ([short principle title]).
|
|
34
|
-
> Commands: [the technical commands this file feeds, per the partition — e.g. design · implement · build].
|
|
35
|
-
|
|
36
|
-
> [One-line framing of what this concern IS in this codebase — from the code, not an ideal.]
|
|
37
|
-
|
|
38
|
-
## [Section — e.g. Structure / Layering / Rules / Contracts]
|
|
39
|
-
|
|
40
|
-
- [As-built rule the code follows.] (code: [real file/folder path or named type]; principle [N])
|
|
41
|
-
- [As-built rule.] (code: […])
|
|
42
|
-
|
|
43
|
-
## [Section — e.g. Dependency direction / Constraints / Conventions]
|
|
44
|
-
|
|
45
|
-
- [As-built rule.] (code: […])
|
|
46
|
-
|
|
47
|
-
<!-- Where the code's behaviour is a stub / partial / permissive / inactive, STATE IT AS-BUILT at the
|
|
48
|
-
level the code reaches, and mark it so — do NOT upgrade a stub into a satisfied greenfield ideal,
|
|
49
|
-
and do NOT invent a rule the code does not evidence. An unmet ideal is simply omitted here
|
|
50
|
-
(migration/modernization is a separate later phase, not this pack's concern). -->
|
|
51
|
-
|
|
52
|
-
## Related
|
|
53
|
-
|
|
54
|
-
- [[<sibling generated tech rule>]] · constitution.technical.md principle [N]
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
# =============================================================================
|
|
2
|
-
# _smoke — CI smoke workflow for the orchestrator engine (no model, no writes
|
|
3
|
-
# outside .aw-spec/orchestrator/.smoke-out)
|
|
4
|
-
#
|
|
5
|
-
# Exercises every extended construct in one run: inputs, set (raw object),
|
|
6
|
-
# execute_script (read-only subcommand), verify_context gates, ask
|
|
7
|
-
# (non-interactive default), foreach + while loops + break, agent_query
|
|
8
|
-
# (mock:), agent_author (mock content), build_context, include
|
|
9
|
-
# (domain-select module), dispatch_hooks (empty).
|
|
10
|
-
#
|
|
11
|
-
# Run:
|
|
12
|
-
# python3 .aw-spec/orchestrator/orchestrator.py \
|
|
13
|
-
# .aw-spec/orchestrator/workflows/_smoke.orch.yaml --non-interactive --json
|
|
14
|
-
# Expected: status ok, echo=hello, sum of foreach passes, smoke.md written.
|
|
15
|
-
# =============================================================================
|
|
16
|
-
|
|
17
|
-
name: orch-smoke
|
|
18
|
-
dialect: aw-spec.orchestrator/v1
|
|
19
|
-
|
|
20
|
-
inputs:
|
|
21
|
-
user_input:
|
|
22
|
-
description: Optional text echoed into the authored artifact.
|
|
23
|
-
required: false
|
|
24
|
-
bind: USER_INPUT
|
|
25
|
-
|
|
26
|
-
scripts:
|
|
27
|
-
actions:
|
|
28
|
-
sh: .aw-spec/scripts/bash/aw-spec-actions.sh
|
|
29
|
-
ps1: .aw-spec/scripts/powershell/aw-spec-actions.ps1
|
|
30
|
-
|
|
31
|
-
vars:
|
|
32
|
-
out_dir: .aw-spec/orchestrator/.smoke-out
|
|
33
|
-
seen: ""
|
|
34
|
-
|
|
35
|
-
workflow:
|
|
36
|
-
|
|
37
|
-
# set with a raw list (resolve_value keeps it a real list)
|
|
38
|
-
- id: seed
|
|
39
|
-
action: set
|
|
40
|
-
vars:
|
|
41
|
-
fruits: ["apple", "banana"]
|
|
42
|
-
echo: "hello"
|
|
43
|
-
|
|
44
|
-
# F1: read-only script subcommand; outputs[] binding
|
|
45
|
-
- id: script_ro
|
|
46
|
-
action: execute_script
|
|
47
|
-
script: { ref: actions }
|
|
48
|
-
subcommand: list-domains
|
|
49
|
-
outputs:
|
|
50
|
-
- { name: domains, from: "$.domains" }
|
|
51
|
-
|
|
52
|
-
# F2: gates — value gate + non-empty gate (informational, no stop)
|
|
53
|
-
- id: gate_value
|
|
54
|
-
action: verify_context
|
|
55
|
-
require_value: echo
|
|
56
|
-
equals: "hello"
|
|
57
|
-
on_mismatch: stop
|
|
58
|
-
on_mismatch_message: "set/resolve is broken"
|
|
59
|
-
- id: gate_nonempty
|
|
60
|
-
action: verify_context
|
|
61
|
-
require_non_empty: domains
|
|
62
|
-
on_empty_message: "no domains found (allowed in smoke)"
|
|
63
|
-
|
|
64
|
-
# F7: ask — --non-interactive picks the first option
|
|
65
|
-
- id: pick_mode
|
|
66
|
-
action: ask
|
|
67
|
-
prompt: "Smoke mode?"
|
|
68
|
-
options: ["fast", "slow"]
|
|
69
|
-
answer_var: mode
|
|
70
|
-
- id: gate_mode
|
|
71
|
-
action: verify_context
|
|
72
|
-
require_value: mode
|
|
73
|
-
equals: "fast"
|
|
74
|
-
on_mismatch: stop
|
|
75
|
-
on_mismatch_message: "non-interactive ask default is broken"
|
|
76
|
-
|
|
77
|
-
# F3: foreach over a list var, binding item + item_index
|
|
78
|
-
- id: each_fruit
|
|
79
|
-
action: loop
|
|
80
|
-
over: "{{fruits}}"
|
|
81
|
-
as: fruit
|
|
82
|
-
steps:
|
|
83
|
-
- id: collect
|
|
84
|
-
action: set
|
|
85
|
-
vars:
|
|
86
|
-
seen: "{{seen}}{{fruit}}@{{fruit_index}};"
|
|
87
|
-
|
|
88
|
-
# while + break still work
|
|
89
|
-
- id: count
|
|
90
|
-
action: loop
|
|
91
|
-
while: "true"
|
|
92
|
-
max_iterations: 3
|
|
93
|
-
steps:
|
|
94
|
-
- id: stop_at_1
|
|
95
|
-
action: break
|
|
96
|
-
condition: "{{iteration}} == 1"
|
|
97
|
-
|
|
98
|
-
# F6: structured query — mock: supplies the result in mock transport
|
|
99
|
-
- id: q_shape
|
|
100
|
-
action: agent_query
|
|
101
|
-
schema: { ok: true, items: [] }
|
|
102
|
-
mock: { ok: true, items: ["one", "two"] }
|
|
103
|
-
task: Report ok plus a short list of items.
|
|
104
|
-
outputs:
|
|
105
|
-
- { name: q_ok, from: "$.ok" }
|
|
106
|
-
- { name: q_items, from: "$.items" }
|
|
107
|
-
- id: gate_q
|
|
108
|
-
action: verify_context
|
|
109
|
-
require_true: q_ok
|
|
110
|
-
on_false: stop
|
|
111
|
-
on_false_message: "agent_query mock/result binding is broken"
|
|
112
|
-
|
|
113
|
-
# F3 again: foreach over a query-produced list
|
|
114
|
-
- id: each_item
|
|
115
|
-
action: loop
|
|
116
|
-
over: "{{q_items}}"
|
|
117
|
-
as: it
|
|
118
|
-
steps:
|
|
119
|
-
- id: collect_items
|
|
120
|
-
action: set
|
|
121
|
-
vars:
|
|
122
|
-
seen: "{{seen}}{{it}};"
|
|
123
|
-
|
|
124
|
-
# context management stays with the orchestrator: envelope for the author step
|
|
125
|
-
- id: ctx_author
|
|
126
|
-
action: build_context
|
|
127
|
-
context:
|
|
128
|
-
- { path: "{{out_dir}}/smoke.md", optional: true }
|
|
129
|
-
|
|
130
|
-
# F5: authored artifact — engine writes the file (mock content here)
|
|
131
|
-
- id: author_doc
|
|
132
|
-
action: agent_author
|
|
133
|
-
output_target: { type: file, path: "{{out_dir}}/smoke.md" }
|
|
134
|
-
task: "Write a one-paragraph smoke report. Echo: {{echo}} {{USER_INPUT}}"
|
|
135
|
-
|
|
136
|
-
# F2: file gate against what the engine just wrote
|
|
137
|
-
- id: gate_file
|
|
138
|
-
action: verify_context
|
|
139
|
-
required_files: ["{{out_dir}}/smoke.md"]
|
|
140
|
-
|
|
141
|
-
# F9: include — the shared domain-select module (read-only script + asks;
|
|
142
|
-
# non-interactive: gate→continue, mode→all)
|
|
143
|
-
- id: domain
|
|
144
|
-
action: include
|
|
145
|
-
module: .aw-spec/orchestrator/modules/domain-select.orch.yaml
|
|
146
|
-
with:
|
|
147
|
-
command: specify
|
|
148
|
-
|
|
149
|
-
# F8: hooks — empty var logs 'none'
|
|
150
|
-
- id: hooks
|
|
151
|
-
action: dispatch_hooks
|
|
152
|
-
hooks_from_variable: no_hooks_declared
|
|
153
|
-
|
|
154
|
-
outputs:
|
|
155
|
-
echo: "{{echo}}"
|
|
156
|
-
mode: "{{mode}}"
|
|
157
|
-
seen: "{{seen}}"
|
|
158
|
-
q_items: "{{q_items}}"
|
|
159
|
-
domain: "{{domain}}"
|
|
160
|
-
note: "all engine constructs exercised"
|