aw-spec-cli 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +2 -2
- 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,231 +0,0 @@
|
|
|
1
|
-
# =============================================================================
|
|
2
|
-
# aw-spec-implement-delta (orchestrator) — generate the DELTA's code from the design
|
|
3
|
-
#
|
|
4
|
-
# The CR analog of implement, SCOPED to the open change. GENERATE / edit exactly the
|
|
5
|
-
# source files + paired tests that delta-design.md marks ADDED or MODIFIED, into the
|
|
6
|
-
# existing project tree, using the master design.md as the base context. The delta
|
|
7
|
-
# design is the authoritative source for WHAT the change is — analyze-delta-design already
|
|
8
|
-
# conformed it to the delta spec. The target STACK is bound from the constitution.
|
|
9
|
-
# implement-delta does NOT touch spec.md / design.md and does NOT close the change —
|
|
10
|
-
# finalize-delta merges the delta into the master docs afterward, and close-delta bumps
|
|
11
|
-
# the version at the very end.
|
|
12
|
-
#
|
|
13
|
-
# specify → design → ⟨review⟩ → analyze-delta-design → implement-delta ← you are here
|
|
14
|
-
# → build → finalize-delta → analyze-slice → close-delta
|
|
15
|
-
#
|
|
16
|
-
# Prereqs: run /aw-spec-orch analyze-delta-design first (the delta design is conformed),
|
|
17
|
-
# and the project must already be scaffolded (/aw-spec-orch foundation) — implement-delta
|
|
18
|
-
# GENERATES into that tree.
|
|
19
|
-
#
|
|
20
|
-
# Launch: /aw-spec-orch implement-delta [strategy] [guidance]
|
|
21
|
-
# =============================================================================
|
|
22
|
-
|
|
23
|
-
name: aw-spec-implement-delta
|
|
24
|
-
description: Generate only the source files + paired tests the open change's delta-design.md marks ADDED/MODIFIED, into the existing project tree, bound to the project's stack. Model-driven, delta-design-scoped; does not touch the master docs or close the change.
|
|
25
|
-
version: 1.0.0
|
|
26
|
-
agent_agnostic: true
|
|
27
|
-
dialect: aw-spec.orchestrator/v1
|
|
28
|
-
|
|
29
|
-
inputs:
|
|
30
|
-
user_input:
|
|
31
|
-
description: Optional implementation guidance (stack hints, focus area).
|
|
32
|
-
required: false
|
|
33
|
-
bind: USER_INPUT
|
|
34
|
-
|
|
35
|
-
scripts:
|
|
36
|
-
actions:
|
|
37
|
-
sh: .aw-spec/scripts/bash/aw-spec-actions.sh
|
|
38
|
-
ps1: .aw-spec/scripts/powershell/aw-spec-actions.ps1
|
|
39
|
-
xref:
|
|
40
|
-
sh: .aw-spec/scripts/bash/aw-xref.sh
|
|
41
|
-
ps1: .aw-spec/scripts/powershell/aw-xref.ps1
|
|
42
|
-
|
|
43
|
-
# Sticky standards seed = the UNIVERSAL always-on rule only (ai-rules). Same FRAMEWORK /
|
|
44
|
-
# code-generation set as the forward implement — HOW to build — but no longer hardcoded:
|
|
45
|
-
# it is CONFIGURATION, loaded per-command from docs/domainspecs/<domain>/commandtechrulemap.md
|
|
46
|
-
# by the tech-select module (see the tech_select step below). No domain rule files:
|
|
47
|
-
# everything domain reached the delta via delta-spec → delta-design; the tech map lists
|
|
48
|
-
# only technical files. The architecture principles come via constitution.technical.md
|
|
49
|
-
# (referred to directly, as-is — NOT mapped); the structure via design.md. (missing skipped)
|
|
50
|
-
standards:
|
|
51
|
-
- { path: docs/glossary/ai-rules.md, optional: true }
|
|
52
|
-
|
|
53
|
-
workflow:
|
|
54
|
-
|
|
55
|
-
# 0. TECHNICAL rule files → sticky standards (configuration, not hardcoded).
|
|
56
|
-
# tech-select reads docs/domainspecs/<domain>/commandtechrulemap.md under
|
|
57
|
-
# "## /aw-spec-implement-delta" and loads that set into the sticky standards the
|
|
58
|
-
# agent_generate step ALWAYS prepends. No domain rule file is loaded here — the tech
|
|
59
|
-
# map lists only technical files (rule-partition intact). No blocking gate: an
|
|
60
|
-
# unconfigured project soft-continues (constitution.technical.md still carries the
|
|
61
|
-
# tech base, referred to directly below).
|
|
62
|
-
- id: tech_select
|
|
63
|
-
action: include
|
|
64
|
-
module: .aw-spec/orchestrator/modules/tech-select.orch.yaml
|
|
65
|
-
with: { command: aw-spec-implement-delta }
|
|
66
|
-
|
|
67
|
-
# 1. Resolve the current feature + its master design (the base context).
|
|
68
|
-
- id: feature_paths
|
|
69
|
-
action: execute_script
|
|
70
|
-
on_error: continue # never crash raw on 'no feature set' — the gate below explains it
|
|
71
|
-
script: { ref: actions }
|
|
72
|
-
subcommand: feature-paths
|
|
73
|
-
outputs:
|
|
74
|
-
- { name: feature_dir, from: "$.feature_dir" }
|
|
75
|
-
- { name: design_doc, from: "$.design_file" }
|
|
76
|
-
- { name: design_exists, from: "$.design_exists" }
|
|
77
|
-
|
|
78
|
-
- id: require_feature
|
|
79
|
-
action: verify_context
|
|
80
|
-
require_non_empty: feature_dir
|
|
81
|
-
on_empty: stop
|
|
82
|
-
on_empty_message: "No active feature. Run /aw-spec-orch select-feature first (pick or create the aggregate, e.g. Order), then re-run implement-delta."
|
|
83
|
-
|
|
84
|
-
- id: verify_design
|
|
85
|
-
action: verify_context
|
|
86
|
-
require_true: design_exists
|
|
87
|
-
on_false: stop
|
|
88
|
-
on_false_message: "No design.md for the current feature. Run /aw-spec-orch design (and, for a change, /aw-spec-orch specify + design + analyze-delta-design) first."
|
|
89
|
-
|
|
90
|
-
# 1b. Read the OPEN change (opened by cr). implement-delta needs a change to implement.
|
|
91
|
-
- id: read_change
|
|
92
|
-
action: execute_script
|
|
93
|
-
script: { ref: actions }
|
|
94
|
-
subcommand: version-read
|
|
95
|
-
args: ["--feature-dir", "{{feature_dir}}"]
|
|
96
|
-
outputs:
|
|
97
|
-
- { name: active_change, from: "$.active_change" }
|
|
98
|
-
- { name: has_change, from: "$.has_change" }
|
|
99
|
-
|
|
100
|
-
- id: require_change
|
|
101
|
-
action: verify_context
|
|
102
|
-
require_true: has_change
|
|
103
|
-
on_false: stop
|
|
104
|
-
on_false_message: "No open change on this feature. Run /aw-spec-orch specify <change> then /aw-spec-orch design, review the delta docs, and /aw-spec-orch analyze-delta-design before implement-delta."
|
|
105
|
-
|
|
106
|
-
# 1c. Require the FOUNDATION — a scaffolded, compiling project — to be present.
|
|
107
|
-
# implement-delta GENERATES the delta's code INTO that tree; with no project there
|
|
108
|
-
# is nowhere to place the files.
|
|
109
|
-
- id: detect_foundation
|
|
110
|
-
action: execute_script
|
|
111
|
-
script: { ref: actions }
|
|
112
|
-
subcommand: detect-project
|
|
113
|
-
outputs:
|
|
114
|
-
- { name: foundation_present, from: "$.scaffolded" }
|
|
115
|
-
- { name: project_markers, from: "$.markers" }
|
|
116
|
-
|
|
117
|
-
- id: foundation_gate
|
|
118
|
-
action: verify_context
|
|
119
|
-
require_true: foundation_present
|
|
120
|
-
on_false: stop
|
|
121
|
-
on_false_message: "No scaffolded project found — run /aw-spec-orch foundation <FoundationName> <AppName> first. implement-delta GENERATES the delta's code into the foundation's project tree (.sln/.csproj); there is nowhere to place files without it."
|
|
122
|
-
|
|
123
|
-
# 2. Pre-execution hooks.
|
|
124
|
-
- id: resolve_pre_hooks
|
|
125
|
-
action: execute_script
|
|
126
|
-
script: { ref: actions }
|
|
127
|
-
subcommand: resolve-hooks
|
|
128
|
-
args: ["--phase", "before_implement_cr"]
|
|
129
|
-
outputs:
|
|
130
|
-
- { name: before_hooks, from: "$.hooks" }
|
|
131
|
-
- id: dispatch_pre_hooks
|
|
132
|
-
action: dispatch_hooks
|
|
133
|
-
hooks_from_variable: before_hooks
|
|
134
|
-
|
|
135
|
-
# 3. Model-driven generation SCOPED to the delta: delta-design.md → the ADDED/MODIFIED
|
|
136
|
-
# source files + paired tests. The master design.md is the base (unchanged elements
|
|
137
|
-
# the delta depends on); the constitution/stack profile fixes HOW. The delta spec is
|
|
138
|
-
# in context ONLY to cite traceability ids on the paired tests.
|
|
139
|
-
# Context is fed via build_context — agent_generate reads the ENVELOPE, not a
|
|
140
|
-
# step-level context: key (unlike agent_author/agent_query which read both).
|
|
141
|
-
- id: ctx_generate
|
|
142
|
-
action: build_context
|
|
143
|
-
context:
|
|
144
|
-
- { path: "{{feature_dir}}/changes/{{active_change}}/delta-design.md" }
|
|
145
|
-
- { path: "{{feature_dir}}/changes/{{active_change}}/delta-spec.md" }
|
|
146
|
-
- { path: "{{design_doc}}" }
|
|
147
|
-
- { path: .aw-spec/memory/constitution.technical.md, optional: true } # technology base ONLY — no domain
|
|
148
|
-
- id: generate
|
|
149
|
-
action: agent_generate
|
|
150
|
-
tools: "Read,Write,Edit"
|
|
151
|
-
permission_mode: acceptEdits
|
|
152
|
-
task: |
|
|
153
|
-
Implement ONLY this change into the existing project tree, STRICTLY from its
|
|
154
|
-
delta-design.md (in context). The delta design is the authoritative source of
|
|
155
|
-
WHAT changed — analyze-delta-design already conformed it to the delta spec. The
|
|
156
|
-
master design.md (in context) is the BASE: the unchanged elements the delta
|
|
157
|
-
depends on; do NOT regenerate them. Guidance: {{USER_INPUT}}
|
|
158
|
-
Rules:
|
|
159
|
-
- SCOPE = THE DELTA ONLY. Realise exactly the elements delta-design.md marks
|
|
160
|
-
ADDED (create the new file) or MODIFIED (edit the existing file in place).
|
|
161
|
-
Touch NOTHING the delta does not list, except the regression re-tests below.
|
|
162
|
-
- THE DELTA DESIGN IS THE ONLY DOMAIN INPUT. You have the delta design + master
|
|
163
|
-
design.md + framework/code standards, and NO domain rule files. Introduce NO
|
|
164
|
-
domain rule, identifier, terminology, or behaviour the delta design does not
|
|
165
|
-
state. If something domain seems missing, STOP and surface it (fix it in cr /
|
|
166
|
-
analyze-delta-design); never invent it from memory.
|
|
167
|
-
- BIND THE STACK from the constitution's technology base + the active stack
|
|
168
|
-
profile (language, framework, persistence, test framework). The design is
|
|
169
|
-
technology-agnostic; do not re-decide anything the constitution already fixes.
|
|
170
|
-
- Follow the project's existing folder/layer convention + the loaded
|
|
171
|
-
coding-standards, dependency-policy and testing standards for HOW to structure,
|
|
172
|
-
name, and place files. Match the surrounding code already in the tree.
|
|
173
|
-
- Realise EVERY ADDED/MODIFIED delta element as code: one file per Domain type /
|
|
174
|
-
Application use-case / API endpoint / Infrastructure adapter, placed by layer.
|
|
175
|
-
Preserve the ubiquitous-language names verbatim. Enforce each new/changed
|
|
176
|
-
Domain invariant, handler orchestration, API error contract, and the §5
|
|
177
|
-
cross-cutting realisations (audit / retention / data-exposure — CN-/DC-) and
|
|
178
|
-
§4.2 integration contracts (IC-) exactly as the delta design states.
|
|
179
|
-
- COMPONENTS: if a delta element depends on a framework component, code against
|
|
180
|
-
its ABSTRACTION / port as the delta design declares — do NOT hand-roll it.
|
|
181
|
-
Installing the component (packages, wiring, config) is /aw-spec-orch
|
|
182
|
-
add-component <Component>; if the port isn't present, code to it and note that
|
|
183
|
-
as the prerequisite.
|
|
184
|
-
- Author a paired test for every ADDED/MODIFIED behaviour / use-case / endpoint;
|
|
185
|
-
derive the cases from the delta design's pre/post/invariant contracts and cite
|
|
186
|
-
the delta-spec id (FR / BR / CN / DC / IC / US).
|
|
187
|
-
- REGRESSION: for each element in the delta design's "Regression targets", verify
|
|
188
|
-
(add/adjust a test where needed) that the existing behaviour still holds after
|
|
189
|
-
a shared element changed — but do NOT rewrite that existing behaviour.
|
|
190
|
-
- Where generated code depends on a delta Assumption (DA-n) / Workaround (WA-n),
|
|
191
|
-
mark it with a comment citing that id.
|
|
192
|
-
outputs:
|
|
193
|
-
- { name: files, from: "$.files" }
|
|
194
|
-
|
|
195
|
-
- id: verify_generated
|
|
196
|
-
action: verify_context
|
|
197
|
-
require_non_empty: files
|
|
198
|
-
on_empty: stop
|
|
199
|
-
on_empty_message: "No files generated. Ensure /aw-spec-orch design produced a filled delta-design.md (not the empty template) and it passed /aw-spec-orch analyze-delta-design, then re-run."
|
|
200
|
-
|
|
201
|
-
# 3b. Refresh THIS slice's OKF concept source_files with the delta's changed files —
|
|
202
|
-
# UNION, never replace (the delta is scoped; {{files}} is only the ADDED/MODIFIED
|
|
203
|
-
# files). The cross-slice EDGES are refreshed later in finalize-delta, AFTER the delta
|
|
204
|
-
# merges into the master design.md (here the master still holds the pre-change deps,
|
|
205
|
-
# so recording edges now would read stale references). Best-effort enrichment.
|
|
206
|
-
- id: xref_concept_merge
|
|
207
|
-
action: execute_script
|
|
208
|
-
on_error: continue
|
|
209
|
-
script: { ref: xref }
|
|
210
|
-
subcommand: concept-upsert
|
|
211
|
-
args: ["--feature-dir", "{{feature_dir}}", "--source-files", "{{files}}", "--merge"]
|
|
212
|
-
outputs:
|
|
213
|
-
- { name: okf_concept, from: "$.concept" }
|
|
214
|
-
|
|
215
|
-
# 4. Post-execution hooks.
|
|
216
|
-
- id: resolve_post_hooks
|
|
217
|
-
action: execute_script
|
|
218
|
-
script: { ref: actions }
|
|
219
|
-
subcommand: resolve-hooks
|
|
220
|
-
args: ["--phase", "after_implement_cr"]
|
|
221
|
-
outputs:
|
|
222
|
-
- { name: after_hooks, from: "$.hooks" }
|
|
223
|
-
- id: dispatch_post_hooks
|
|
224
|
-
action: dispatch_hooks
|
|
225
|
-
hooks_from_variable: after_hooks
|
|
226
|
-
|
|
227
|
-
outputs:
|
|
228
|
-
feature_dir: "{{feature_dir}}"
|
|
229
|
-
cr_id: "{{active_change}}"
|
|
230
|
-
files: "{{files}}"
|
|
231
|
-
next: "/aw-spec-orch build → finalize-delta → analyze-slice → close-delta. COMPILE FIRST (build), then finalize-delta runs the downstream fence and merges the delta into spec.md + design.md — but leaves the change OPEN. analyze-slice then verifies the slice against that now-merged master (tests, domain conformance, referrer blast radius) while a red result is still recoverable. close-delta LAST archives the change and bumps the version."
|
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
# =============================================================================
|
|
2
|
-
# aw-spec-implement (orchestrator) — model-driven code generation from the DESIGN
|
|
3
|
-
#
|
|
4
|
-
# The spec-anchored Implement phase: GENERATE the source files + paired tests for
|
|
5
|
-
# the aggregate STRICTLY from its single high-level design.md — the mediator between
|
|
6
|
-
# spec and code. Implement does NOT read spec.md: `analyze` already guaranteed the
|
|
7
|
-
# design conforms to the spec (spec is the anchor), so the design is the complete,
|
|
8
|
-
# authoritative source for WHAT to build. The target STACK is bound here from the
|
|
9
|
-
# constitution + the active stack profile (the design is technology-agnostic).
|
|
10
|
-
# Prereqs: run /aw-spec-orch design then analyze-design first (the gate conforms the
|
|
11
|
-
# design to the spec + closes any open change), and scaffold the project once via
|
|
12
|
-
# /aw-spec-orch foundation — implement GENERATES into that project tree, so with no
|
|
13
|
-
# foundation there is nowhere to place the files.
|
|
14
|
-
#
|
|
15
|
-
# Next: Build (compile + fix; reconcile only high-level variations into design.md).
|
|
16
|
-
#
|
|
17
|
-
# Launch: /aw-spec-orch implement [strategy] [guidance]
|
|
18
|
-
# =============================================================================
|
|
19
|
-
|
|
20
|
-
name: aw-spec-implement
|
|
21
|
-
description: Generate the aggregate's source files and paired tests STRICTLY from its design.md, bound to the project's stack. Model-driven, design-only (does not read the spec — analyze already conformed the design to it).
|
|
22
|
-
version: 2.1.0
|
|
23
|
-
agent_agnostic: true
|
|
24
|
-
dialect: aw-spec.orchestrator/v1
|
|
25
|
-
|
|
26
|
-
inputs:
|
|
27
|
-
user_input:
|
|
28
|
-
description: Optional implementation guidance (stack hints, focus area).
|
|
29
|
-
required: false
|
|
30
|
-
bind: USER_INPUT
|
|
31
|
-
|
|
32
|
-
scripts:
|
|
33
|
-
actions:
|
|
34
|
-
sh: .aw-spec/scripts/bash/aw-spec-actions.sh
|
|
35
|
-
ps1: .aw-spec/scripts/powershell/aw-spec-actions.ps1
|
|
36
|
-
xref:
|
|
37
|
-
sh: .aw-spec/scripts/bash/aw-xref.sh
|
|
38
|
-
ps1: .aw-spec/scripts/powershell/aw-xref.ps1
|
|
39
|
-
|
|
40
|
-
# Sticky standards seed = the UNIVERSAL always-on rule only (ai-rules). The
|
|
41
|
-
# FRAMEWORK / code-generation rule files are no longer hardcoded here — they are now
|
|
42
|
-
# CONFIGURATION, loaded per-command from docs/domainspecs/<domain>/commandtechrulemap.md
|
|
43
|
-
# by the tech-select module (see the workflow's tech_select step), exactly as design's
|
|
44
|
-
# technical rules are. Per the rule-partition, implement still generates from design.md +
|
|
45
|
-
# these HOW-to-build standards and loads NO domain rule file — the tech map lists only
|
|
46
|
-
# technical files. The architecture principles come via constitution.technical.md
|
|
47
|
-
# (referred to directly, as-is — NOT mapped); the structure via design.md. Component
|
|
48
|
-
# rule docs are NOT loaded here — implement codes against a component's PORT; adding the
|
|
49
|
-
# component itself is a separate step, /aw-spec-orch add-component. (missing files skipped)
|
|
50
|
-
standards:
|
|
51
|
-
- { path: docs/glossary/ai-rules.md, optional: true }
|
|
52
|
-
|
|
53
|
-
workflow:
|
|
54
|
-
|
|
55
|
-
# 0. TECHNICAL rule files → sticky standards (configuration, not hardcoded).
|
|
56
|
-
# tech-select reads docs/domainspecs/<domain>/commandtechrulemap.md under
|
|
57
|
-
# "## /aw-spec-implement" and loads that set into the sticky standards the
|
|
58
|
-
# agent_generate step ALWAYS prepends. No domain rule file is loaded here — the
|
|
59
|
-
# tech map lists only technical files (rule-partition intact). No blocking gate:
|
|
60
|
-
# an unconfigured project soft-continues (constitution.technical.md still carries
|
|
61
|
-
# the tech base, referred to directly below).
|
|
62
|
-
- id: tech_select
|
|
63
|
-
action: include
|
|
64
|
-
module: .aw-spec/orchestrator/modules/tech-select.orch.yaml
|
|
65
|
-
with: { command: aw-spec-implement }
|
|
66
|
-
|
|
67
|
-
# 1. Resolve the current feature + its design; require the DESIGN (implement's
|
|
68
|
-
# only input). No spec — analyze already conformed the design to the spec.
|
|
69
|
-
- id: feature_paths
|
|
70
|
-
action: execute_script
|
|
71
|
-
on_error: continue # never crash raw on 'no feature set' — the gate below explains it
|
|
72
|
-
script: { ref: actions }
|
|
73
|
-
subcommand: feature-paths
|
|
74
|
-
outputs:
|
|
75
|
-
- { name: feature_dir, from: "$.feature_dir" }
|
|
76
|
-
- { name: design_doc, from: "$.design_file" }
|
|
77
|
-
- { name: design_exists, from: "$.design_exists" }
|
|
78
|
-
|
|
79
|
-
- id: require_feature
|
|
80
|
-
action: verify_context
|
|
81
|
-
require_non_empty: feature_dir
|
|
82
|
-
on_empty: stop
|
|
83
|
-
on_empty_message: "No active feature. Run /aw-spec-orch select-feature first (pick or create the aggregate, e.g. Order), then re-run implement."
|
|
84
|
-
|
|
85
|
-
- id: verify_design
|
|
86
|
-
action: verify_context
|
|
87
|
-
require_true: design_exists
|
|
88
|
-
on_false: stop
|
|
89
|
-
on_false_message: "No design.md for the current feature. Run /aw-spec-orch design then /aw-spec-orch analyze-design first — implement generates STRICTLY from the conformed design."
|
|
90
|
-
|
|
91
|
-
# 1b. Require the FOUNDATION — a scaffolded, compiling project — to be present.
|
|
92
|
-
# Implement GENERATES the aggregate's code INTO the project tree the `foundation`
|
|
93
|
-
# phase unpacked; with no project there is nowhere to place the files. Deterministic
|
|
94
|
-
# structure gate: looks for a real .sln/.csproj (or other ecosystem manifest),
|
|
95
|
-
# ignoring the framework/spec/docs dirs — never trusts the model for this.
|
|
96
|
-
- id: detect_foundation
|
|
97
|
-
action: execute_script
|
|
98
|
-
script: { ref: actions }
|
|
99
|
-
subcommand: detect-project
|
|
100
|
-
outputs:
|
|
101
|
-
- { name: foundation_present, from: "$.scaffolded" }
|
|
102
|
-
- { name: project_markers, from: "$.markers" }
|
|
103
|
-
|
|
104
|
-
- id: foundation_gate
|
|
105
|
-
action: verify_context
|
|
106
|
-
require_true: foundation_present
|
|
107
|
-
on_false: stop
|
|
108
|
-
on_false_message: "No scaffolded project found — run /aw-spec-orch foundation <FoundationName> <AppName> first. Implement GENERATES code into the foundation's project tree (.sln/.csproj); there is nowhere to place files without it."
|
|
109
|
-
|
|
110
|
-
# 2. Pre-execution hooks.
|
|
111
|
-
- id: resolve_pre_hooks
|
|
112
|
-
action: execute_script
|
|
113
|
-
script: { ref: actions }
|
|
114
|
-
subcommand: resolve-hooks
|
|
115
|
-
args: ["--phase", "before_implement"]
|
|
116
|
-
outputs:
|
|
117
|
-
- { name: before_hooks, from: "$.hooks" }
|
|
118
|
-
- id: dispatch_pre_hooks
|
|
119
|
-
action: dispatch_hooks
|
|
120
|
-
hooks_from_variable: before_hooks
|
|
121
|
-
|
|
122
|
-
# 3. Model-driven generation: design.md → source files + paired tests.
|
|
123
|
-
# The design constrains WHAT to build; the constitution/stack profile fixes HOW.
|
|
124
|
-
# The spec is deliberately NOT in context — the design is the single source here.
|
|
125
|
-
- id: ctx_generate
|
|
126
|
-
action: build_context
|
|
127
|
-
context:
|
|
128
|
-
- { path: "{{design_doc}}" }
|
|
129
|
-
- { path: .aw-spec/memory/constitution.technical.md, optional: true } # technology base ONLY — no domain
|
|
130
|
-
- id: generate
|
|
131
|
-
action: agent_generate
|
|
132
|
-
tools: "Read,Write,Edit"
|
|
133
|
-
permission_mode: acceptEdits
|
|
134
|
-
task: |
|
|
135
|
-
Generate the production code AND paired tests for this aggregate STRICTLY from
|
|
136
|
-
its design.md (in context). The design is the complete, authoritative source of
|
|
137
|
-
WHAT to build — do NOT consult or infer from the spec; `analyze` already
|
|
138
|
-
conformed the design to the spec. This phase is the HOME of the
|
|
139
|
-
technology-specific, solution-wide code-generation rules. Guidance: {{USER_INPUT}}
|
|
140
|
-
Rules:
|
|
141
|
-
- THE DESIGN IS THE ONLY DOMAIN INPUT. You have design.md + framework/code
|
|
142
|
-
standards, and NO domain rule files. Introduce NO domain rule, identifier,
|
|
143
|
-
terminology, or behaviour that the design does not state — everything domain
|
|
144
|
-
already passed through spec → design. If a domain specific seems missing, STOP
|
|
145
|
-
and surface it; never invent it from memory.
|
|
146
|
-
- BIND THE STACK from the constitution's technology base + the active stack
|
|
147
|
-
profile (language, framework, persistence, test framework). The design is
|
|
148
|
-
technology-agnostic; do not re-decide anything the constitution already fixes.
|
|
149
|
-
- Follow the project's folder/layer convention + the loaded coding-standards,
|
|
150
|
-
dependency-policy and testing standards for HOW to structure, name, and place
|
|
151
|
-
files — the design says WHAT to build; these standards (identical for every
|
|
152
|
-
feature) say HOW.
|
|
153
|
-
- COMPONENTS: when the design's §4.2 depends on a framework component (e.g.
|
|
154
|
-
`IEmailService`, `IJobScheduler`), code against that component's ABSTRACTION /
|
|
155
|
-
port as the design declares — do NOT hand-roll it. Installing the component into
|
|
156
|
-
the project (packages, provider wiring, config) is a SEPARATE step:
|
|
157
|
-
/aw-spec-orch add-component <Component>. If the port isn't present yet, code to
|
|
158
|
-
it and note add-component as the prerequisite; do not load component rule docs here.
|
|
159
|
-
- Realise EVERY design element as code, changing nothing about WHAT it specifies:
|
|
160
|
-
one file per Domain type / Application use-case / API endpoint / Infrastructure
|
|
161
|
-
adapter, placed by layer. Preserve the ubiquitous-language names verbatim.
|
|
162
|
-
- Enforce EXACTLY as the design states: every Domain invariant, Application
|
|
163
|
-
handler orchestration, and API error contract; the cross-cutting constraints in
|
|
164
|
-
§5 (audit / retention / data-exposure — the CN-/DC- realisations); and each
|
|
165
|
-
§4.2 integration contract (IC-). Implement every port the design declares.
|
|
166
|
-
- Author a paired test for every design behaviour / use-case / endpoint; derive
|
|
167
|
-
the cases from the design's pre/post/invariant contracts and cite the spec id
|
|
168
|
-
(FR / BR / CN / DC / IC / US) from the design's §6 Traceability. Include tests
|
|
169
|
-
for the constraints — e.g. an audit record is emitted, a DC-restricted field is
|
|
170
|
-
NOT exposed on the public surface, an IC- projection round-trips.
|
|
171
|
-
- Do NOT add behaviour the design does not state, and do NOT omit any it does.
|
|
172
|
-
If the design looks wrong or incomplete, STOP and surface it (it is fixed in
|
|
173
|
-
design/analyze) — never compensate from the spec or from memory.
|
|
174
|
-
- This aggregate OWNS its files; never regenerate a file another feature owns.
|
|
175
|
-
- Where generated code depends on a design Assumption (DA-n) or Workaround
|
|
176
|
-
(WA-n), mark it with a comment citing that id so it is easy to revisit later.
|
|
177
|
-
outputs:
|
|
178
|
-
- { name: files, from: "$.files" }
|
|
179
|
-
|
|
180
|
-
- id: verify_generated
|
|
181
|
-
action: verify_context
|
|
182
|
-
require_non_empty: files
|
|
183
|
-
on_empty: stop
|
|
184
|
-
on_empty_message: "No files generated. Ensure /aw-spec-orch design produced a filled design.md (not the empty template) and passed analyze, then re-run."
|
|
185
|
-
|
|
186
|
-
# 3b. OKF knowledge + cross-references (deterministic, design-derived). Greenfield's
|
|
187
|
-
# entry into the shared OKF bundle: author THIS aggregate's concept (its source_files
|
|
188
|
-
# = the files just generated), then record its cross-slice edges — write a
|
|
189
|
-
# Cross-References row into every SIBLING aggregate it uses (from design.md §1
|
|
190
|
-
# References-by-id + its External integrations table), reconcile-on-write so a dropped
|
|
191
|
-
# dependency self-heals and a used sibling with no concept yet is stubbed. Finally
|
|
192
|
-
# author the concept's Overview prose (3c). This is enrichment downstream of a
|
|
193
|
-
# successful generate — it never re-decides WHAT was built.
|
|
194
|
-
- id: xref_concept
|
|
195
|
-
action: execute_script
|
|
196
|
-
script: { ref: xref }
|
|
197
|
-
subcommand: concept-upsert
|
|
198
|
-
args: ["--feature-dir", "{{feature_dir}}", "--source-files", "{{files}}", "--origin", "greenfield"]
|
|
199
|
-
outputs:
|
|
200
|
-
- { name: okf_concept, from: "$.concept" }
|
|
201
|
-
|
|
202
|
-
- id: xref_record
|
|
203
|
-
action: execute_script
|
|
204
|
-
script: { ref: xref }
|
|
205
|
-
subcommand: record
|
|
206
|
-
args: ["--feature-dir", "{{feature_dir}}", "--design", "{{design_doc}}", "--origin", "greenfield"]
|
|
207
|
-
outputs:
|
|
208
|
-
- { name: xref_wrote, from: "$.wrote" }
|
|
209
|
-
- { name: xref_edge_count, from: "$.edge_count" }
|
|
210
|
-
|
|
211
|
-
# 3c. The concept's Overview — the ONE part of the OKF concept a deterministic script
|
|
212
|
-
# cannot produce (prose distilled from design.md §1). The model authors the text
|
|
213
|
-
# only; concept-overview splices it into the `## Overview` section alone, so the
|
|
214
|
-
# Cross-References rows other slices own are structurally out of reach.
|
|
215
|
-
- id: okf_overview
|
|
216
|
-
action: agent_query
|
|
217
|
-
context: ["{{design_doc}}"]
|
|
218
|
-
include_standards: false
|
|
219
|
-
schema: { overview: "<2-4 sentences of prose>" }
|
|
220
|
-
mock: { overview: "" }
|
|
221
|
-
task: |
|
|
222
|
-
Write the OKF knowledge-concept Overview for the aggregate that design.md (in
|
|
223
|
-
context) describes. 2-4 sentences of PROSE, distilled from §1 Domain Model:
|
|
224
|
-
- name the aggregate ROOT and what the aggregate IS;
|
|
225
|
-
- state the INVARIANTS it guards (from §1 / the design's business rules);
|
|
226
|
-
- state its TRANSACTION BOUNDARY — what it OWNS inside the boundary vs what it
|
|
227
|
-
only REFERENCES by id.
|
|
228
|
-
Plain prose only: no headings, no bullets, no code fences, no file paths, and no
|
|
229
|
-
restating of the dependency edges (those live in the Depends-On / Cross-References
|
|
230
|
-
tables). Describe only what the design states — invent nothing.
|
|
231
|
-
outputs:
|
|
232
|
-
- { name: okf_overview, from: "$.overview" }
|
|
233
|
-
|
|
234
|
-
- id: okf_overview_write
|
|
235
|
-
action: execute_script
|
|
236
|
-
script: { ref: xref }
|
|
237
|
-
subcommand: concept-overview
|
|
238
|
-
args: ["--feature-dir", "{{feature_dir}}", "--text", "{{okf_overview}}"]
|
|
239
|
-
|
|
240
|
-
# 4. Post-execution hooks.
|
|
241
|
-
- id: resolve_post_hooks
|
|
242
|
-
action: execute_script
|
|
243
|
-
script: { ref: actions }
|
|
244
|
-
subcommand: resolve-hooks
|
|
245
|
-
args: ["--phase", "after_implement"]
|
|
246
|
-
outputs:
|
|
247
|
-
- { name: after_hooks, from: "$.hooks" }
|
|
248
|
-
- id: dispatch_post_hooks
|
|
249
|
-
action: dispatch_hooks
|
|
250
|
-
hooks_from_variable: after_hooks
|
|
251
|
-
|
|
252
|
-
outputs:
|
|
253
|
-
feature_dir: "{{feature_dir}}"
|
|
254
|
-
design_doc: "{{design_doc}}"
|
|
255
|
-
files: "{{files}}"
|
|
256
|
-
okf_concept: "{{okf_concept}}"
|
|
257
|
-
xref_edge_count: "{{xref_edge_count}}"
|
|
258
|
-
next: "/aw-spec-orch build (OKF concept authored at {{okf_concept}}; {{xref_edge_count}} cross-slice edge(s) recorded into sibling aggregates)"
|