aw-spec-cli 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/assets/.agents/skills/aw-spec-addcomponent/SKILL.md +129 -0
  2. package/assets/.agents/skills/aw-spec-agent-context-update/SKILL.md +31 -0
  3. package/assets/.agents/skills/aw-spec-analyze/SKILL.md +296 -0
  4. package/assets/.agents/skills/aw-spec-checklist/SKILL.md +374 -0
  5. package/assets/.agents/skills/aw-spec-clarify/SKILL.md +320 -0
  6. package/assets/.agents/skills/aw-spec-constitution/SKILL.md +194 -0
  7. package/assets/.agents/skills/aw-spec-fast-implement/SKILL.md +268 -0
  8. package/assets/.agents/skills/aw-spec-foundation/SKILL.md +358 -0
  9. package/assets/.agents/skills/aw-spec-implement/SKILL.md +279 -0
  10. package/assets/.agents/skills/aw-spec-minimal-implementation/SKILL.md +209 -0
  11. package/assets/.agents/skills/aw-spec-plan/SKILL.md +221 -0
  12. package/assets/.agents/skills/aw-spec-select-domain/SKILL.md +73 -0
  13. package/assets/.agents/skills/aw-spec-specify/SKILL.md +382 -0
  14. package/assets/.agents/skills/aw-spec-tasks/SKILL.md +259 -0
  15. package/assets/.agents/skills/aw-spec-taskstoissues/SKILL.md +107 -0
  16. package/assets/.aw-spec/domain.json +3 -0
  17. package/assets/.aw-spec/extensions/.registry +19 -0
  18. package/assets/.aw-spec/extensions/agent-context/README.md +57 -0
  19. package/assets/.aw-spec/extensions/agent-context/agent-context-config.yml +4 -0
  20. package/assets/.aw-spec/extensions/agent-context/commands/aw-spec.agent-context.update.md +26 -0
  21. package/assets/.aw-spec/extensions/agent-context/extension.yml +34 -0
  22. package/assets/.aw-spec/extensions/agent-context/scripts/bash/update-agent-context.sh +201 -0
  23. package/assets/.aw-spec/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +237 -0
  24. package/assets/.aw-spec/extensions.yml +23 -0
  25. package/assets/.aw-spec/feature.json +3 -0
  26. package/assets/.aw-spec/init-options.json +9 -0
  27. package/assets/.aw-spec/integration.json +15 -0
  28. package/assets/.aw-spec/integrations/aw-spec.manifest.json +17 -0
  29. package/assets/.aw-spec/integrations/claude.manifest.json +17 -0
  30. package/assets/.aw-spec/memory/constitution.md +50 -0
  31. package/assets/.aw-spec/scripts/bash/check-prerequisites.sh +189 -0
  32. package/assets/.aw-spec/scripts/bash/common.sh +582 -0
  33. package/assets/.aw-spec/scripts/bash/create-new-feature.sh +299 -0
  34. package/assets/.aw-spec/scripts/bash/setup-plan.sh +84 -0
  35. package/assets/.aw-spec/scripts/bash/setup-tasks.sh +91 -0
  36. package/assets/.aw-spec/templates/checklist-template.md +40 -0
  37. package/assets/.aw-spec/templates/constitution-template.md +57 -0
  38. package/assets/.aw-spec/templates/plan-template.md +113 -0
  39. package/assets/.aw-spec/templates/spec-template.md +131 -0
  40. package/assets/.aw-spec/templates/tasks-template.md +252 -0
  41. package/assets/.aw-spec/workflows/aw-spec/workflow.yml +77 -0
  42. package/assets/.aw-spec/workflows/workflow-registry.json +13 -0
  43. package/assets/.claude/skills/aw-spec-addcomponent/SKILL.md +129 -0
  44. package/assets/.claude/skills/aw-spec-agent-context-update/SKILL.md +31 -0
  45. package/assets/.claude/skills/aw-spec-analyze/SKILL.md +296 -0
  46. package/assets/.claude/skills/aw-spec-checklist/SKILL.md +374 -0
  47. package/assets/.claude/skills/aw-spec-clarify/SKILL.md +320 -0
  48. package/assets/.claude/skills/aw-spec-constitution/SKILL.md +194 -0
  49. package/assets/.claude/skills/aw-spec-fast-implement/SKILL.md +268 -0
  50. package/assets/.claude/skills/aw-spec-foundation/SKILL.md +358 -0
  51. package/assets/.claude/skills/aw-spec-implement/SKILL.md +279 -0
  52. package/assets/.claude/skills/aw-spec-minimal-implementation/SKILL.md +209 -0
  53. package/assets/.claude/skills/aw-spec-plan/SKILL.md +221 -0
  54. package/assets/.claude/skills/aw-spec-select-domain/SKILL.md +73 -0
  55. package/assets/.claude/skills/aw-spec-specify/SKILL.md +382 -0
  56. package/assets/.claude/skills/aw-spec-tasks/SKILL.md +259 -0
  57. package/assets/.claude/skills/aw-spec-taskstoissues/SKILL.md +107 -0
  58. package/assets/.kilocode/rules/specify-rules.md +4 -0
  59. package/assets/.kilocode/workflows/aw-spec-addcomponent.md +129 -0
  60. package/assets/.kilocode/workflows/aw-spec-agent-context.update.md +31 -0
  61. package/assets/.kilocode/workflows/aw-spec-analyze.md +296 -0
  62. package/assets/.kilocode/workflows/aw-spec-checklist.md +374 -0
  63. package/assets/.kilocode/workflows/aw-spec-clarify.md +320 -0
  64. package/assets/.kilocode/workflows/aw-spec-constitution.md +194 -0
  65. package/assets/.kilocode/workflows/aw-spec-fast-implement.md +263 -0
  66. package/assets/.kilocode/workflows/aw-spec-foundation.md +358 -0
  67. package/assets/.kilocode/workflows/aw-spec-implement.md +279 -0
  68. package/assets/.kilocode/workflows/aw-spec-minimal-implementation.md +204 -0
  69. package/assets/.kilocode/workflows/aw-spec-plan.md +221 -0
  70. package/assets/.kilocode/workflows/aw-spec-select-domain.md +73 -0
  71. package/assets/.kilocode/workflows/aw-spec-specify.md +382 -0
  72. package/assets/.kilocode/workflows/aw-spec-tasks.md +259 -0
  73. package/assets/.kilocode/workflows/aw-spec-taskstoissues.md +107 -0
  74. package/assets/docs/README.md +106 -0
  75. package/assets/docs/VerticalSlice/PACKAGING.md +185 -0
  76. package/assets/docs/VerticalSlice/VerticalSlice.pack.txt +2833 -0
  77. package/assets/docs/VerticalSlice/pack-foundation.ps1 +145 -0
  78. package/assets/docs/VerticalSlice/pack-foundation.sh +196 -0
  79. package/assets/docs/VerticalSlice/unpack-foundation.ps1 +126 -0
  80. package/assets/docs/VerticalSlice/unpack-foundation.sh +217 -0
  81. package/assets/docs/architecture/clean-architecture.md +71 -0
  82. package/assets/docs/architecture/cqrs.md +141 -0
  83. package/assets/docs/architecture/eventing.md +83 -0
  84. package/assets/docs/architecture/folder-structure.md +61 -0
  85. package/assets/docs/architecture/modular-monolith.md +47 -0
  86. package/assets/docs/architecture/persistence.md +269 -0
  87. package/assets/docs/architecture/testing.md +55 -0
  88. package/assets/docs/architecture/vertical-slices.md +201 -0
  89. package/assets/docs/command.txt +295 -0
  90. package/assets/docs/components/Email/README.md +112 -0
  91. package/assets/docs/components/Email/integration.md +260 -0
  92. package/assets/docs/components/Jobs/README.md +113 -0
  93. package/assets/docs/components/Jobs/integration.md +245 -0
  94. package/assets/docs/components/QrGenerator/README.md +78 -0
  95. package/assets/docs/components/QrGenerator/integration.md +185 -0
  96. package/assets/docs/components/README.md +57 -0
  97. package/assets/docs/domain/domain-driven-design.md +212 -0
  98. package/assets/docs/domainspecs/healthcare/ai-rules.domain.md +34 -0
  99. package/assets/docs/domainspecs/healthcare/api-versioning.domain.md +17 -0
  100. package/assets/docs/domainspecs/healthcare/auditing.domain.md +29 -0
  101. package/assets/docs/domainspecs/healthcare/authorization.domain.md +26 -0
  102. package/assets/docs/domainspecs/healthcare/clinical-terms.md +20 -0
  103. package/assets/docs/domainspecs/healthcare/coding-standards.domain.md +26 -0
  104. package/assets/docs/domainspecs/healthcare/comandrulemap.md +119 -0
  105. package/assets/docs/domainspecs/healthcare/consent.md +19 -0
  106. package/assets/docs/domainspecs/healthcare/cqrs.domain.md +12 -0
  107. package/assets/docs/domainspecs/healthcare/data-classification.domain.md +28 -0
  108. package/assets/docs/domainspecs/healthcare/dependency-policy.domain.md +11 -0
  109. package/assets/docs/domainspecs/healthcare/dicom.md +15 -0
  110. package/assets/docs/domainspecs/healthcare/domain-driven-design.domain.md +28 -0
  111. package/assets/docs/domainspecs/healthcare/domain-requirements.md +55 -0
  112. package/assets/docs/domainspecs/healthcare/eventing.domain.md +18 -0
  113. package/assets/docs/domainspecs/healthcare/fhir.md +36 -0
  114. package/assets/docs/domainspecs/healthcare/folder-structure.domain.md +23 -0
  115. package/assets/docs/domainspecs/healthcare/hipaa.md +34 -0
  116. package/assets/docs/domainspecs/healthcare/hl7.md +15 -0
  117. package/assets/docs/domainspecs/healthcare/integration-terms.md +21 -0
  118. package/assets/docs/domainspecs/healthcare/persistence.domain.md +20 -0
  119. package/assets/docs/domainspecs/healthcare/terminology.md +30 -0
  120. package/assets/docs/domainspecs/healthcare/testing.domain.md +15 -0
  121. package/assets/docs/domainspecs/healthcare/vertical-slices.domain.md +18 -0
  122. package/assets/docs/domainspecs/healthcare/zero-trust.domain.md +12 -0
  123. package/assets/docs/domainspecs/pharma/ai-rules.domain.md +32 -0
  124. package/assets/docs/domainspecs/pharma/api-versioning.domain.md +20 -0
  125. package/assets/docs/domainspecs/pharma/atc.md +22 -0
  126. package/assets/docs/domainspecs/pharma/auditing.domain.md +26 -0
  127. package/assets/docs/domainspecs/pharma/authorization.domain.md +25 -0
  128. package/assets/docs/domainspecs/pharma/coding-standards.domain.md +28 -0
  129. package/assets/docs/domainspecs/pharma/comandrulemap.md +136 -0
  130. package/assets/docs/domainspecs/pharma/cqrs.domain.md +16 -0
  131. package/assets/docs/domainspecs/pharma/data-classification.domain.md +24 -0
  132. package/assets/docs/domainspecs/pharma/data-provenance.md +21 -0
  133. package/assets/docs/domainspecs/pharma/dependency-policy.domain.md +11 -0
  134. package/assets/docs/domainspecs/pharma/domain-driven-design.domain.md +36 -0
  135. package/assets/docs/domainspecs/pharma/domain-requirements.md +99 -0
  136. package/assets/docs/domainspecs/pharma/eventing.domain.md +18 -0
  137. package/assets/docs/domainspecs/pharma/fhir.md +31 -0
  138. package/assets/docs/domainspecs/pharma/folder-structure.domain.md +24 -0
  139. package/assets/docs/domainspecs/pharma/hl7.md +17 -0
  140. package/assets/docs/domainspecs/pharma/idmp.md +26 -0
  141. package/assets/docs/domainspecs/pharma/integration-terms.md +21 -0
  142. package/assets/docs/domainspecs/pharma/ndc.md +28 -0
  143. package/assets/docs/domainspecs/pharma/persistence.domain.md +23 -0
  144. package/assets/docs/domainspecs/pharma/pharma-terms.md +27 -0
  145. package/assets/docs/domainspecs/pharma/product-lifecycle.domain.md +30 -0
  146. package/assets/docs/domainspecs/pharma/regulatory-compliance.md +19 -0
  147. package/assets/docs/domainspecs/pharma/terminology.md +32 -0
  148. package/assets/docs/domainspecs/pharma/testing.domain.md +19 -0
  149. package/assets/docs/domainspecs/pharma/vertical-slices.domain.md +17 -0
  150. package/assets/docs/domainspecs/pharma/zero-trust.domain.md +12 -0
  151. package/assets/docs/glossary/ai-rules.md +59 -0
  152. package/assets/docs/governance/api-versioning.md +99 -0
  153. package/assets/docs/governance/coding-standards.md +87 -0
  154. package/assets/docs/governance/dependency-policy.md +40 -0
  155. package/assets/docs/interop/ihe-conformance.md +31 -0
  156. package/assets/docs/pharma-constitution.my-ref.md +86 -0
  157. package/assets/docs/requirement-spec.txt +15 -0
  158. package/assets/docs/security/auditing.md +117 -0
  159. package/assets/docs/security/authorization-matrix.md +14 -0
  160. package/assets/docs/security/authorization.md +87 -0
  161. package/assets/docs/security/data-classification.md +38 -0
  162. package/assets/docs/security/zero-trust.md +76 -0
  163. package/assets/docs/technology-constitution.md +172 -0
  164. package/dist/commands/init.d.ts.map +1 -1
  165. package/dist/commands/init.js +3 -2
  166. package/dist/commands/init.js.map +1 -1
  167. package/dist/utils/copy-assets.d.ts +8 -1
  168. package/dist/utils/copy-assets.d.ts.map +1 -1
  169. package/dist/utils/copy-assets.js +1 -0
  170. package/dist/utils/copy-assets.js.map +1 -1
  171. package/dist/utils/paths.js +1 -1
  172. package/dist/utils/paths.js.map +1 -1
  173. package/package.json +1 -1
@@ -0,0 +1,279 @@
1
+ ---
2
+ name: "aw-spec-implement"
3
+ description: "Execute the implementation plan by processing and executing all tasks defined in tasks.md"
4
+ argument-hint: "Optional implementation guidance or task filter"
5
+ compatibility: "Requires aw-spec project structure with .aw-spec/ directory"
6
+ metadata:
7
+ author: "github-aw-spec"
8
+ source: "templates/commands/implement.md"
9
+ user-invocable: true
10
+ disable-model-invocation: false
11
+ ---
12
+
13
+
14
+ ## User Input
15
+
16
+ ```text
17
+ $ARGUMENTS
18
+ ```
19
+
20
+ You **MUST** consider the user input before proceeding (if not empty).
21
+
22
+ ## Context Reuse (cross-command dedup)
23
+
24
+ **Skip Read-ing any file already in this conversation.** Before loading a standards/domain/template/spec file this command names, check whether it is already in context (loaded earlier here or by a prior `/aw-spec-*` command). If present and unchanged, reuse it and **skip the Read** — only Read files not yet loaded. A file already in context still counts as loaded; this just avoids the redundant re-read.
25
+
26
+ ## Project Structure Gate (run before loading standards)
27
+
28
+ **Before loading standards or writing code, confirm a scaffolded app exists** — the output of `/aw-spec-foundation`, not just `.aw-spec/`/`docs/`/`specs/` framework files. Check the repo root (Glob/Bash) for a real build entrypoint, ignoring matches only inside `.aw-spec/`/`docs/`/`specs/`: `*.sln` or `*.csproj` under `src/` (.NET/AppWeaver), else `package.json`/`pom.xml`/`build.gradle`/`go.mod`/`Cargo.toml`/`pyproject.toml` etc.
29
+
30
+ - **None found → STOP, no side effects** (don't load standards, run hooks, or write anything): tell the developer *"No scaffolded project found — run `/aw-spec-foundation ModularMonolith <AppName>` (or `VerticalSlice <AppName>`) first, then re-run."*
31
+ - **Found →** use its solution/host-project path as the implementation target and continue.
32
+
33
+ ## Auto-Loaded Engineering Standards (Required Context)
34
+
35
+ **Before doing anything else in this command, load the project engineering-standards files listed below into context using the Read tool.** These were previously supplied manually as `@docs/...` mentions; they are now loaded automatically so the user does not need to pass them. Rules:
36
+
37
+ - Read each file below **before** starting the Pre-Execution Checks / Outline. Treat their contents as authoritative engineering standards for this command, second only to `.aw-spec/memory/constitution.md`.
38
+ - If a listed file does not exist, skip it silently and continue — do **not** error and do **not** ask the user to provide it.
39
+ - This is the **domain-agnostic technical** set, so the framework is reusable across domains. Domain-specific rule files (e.g. healthcare FHIR/HL7/PHI) are **not** part of this set — they are offered separately in the **Domain Rule-File Selection** section below (sourced from `comandrulemap.md`). You can also add any extra file directly with an `@` mention.
40
+
41
+ Standards for `/aw-spec-implement`:
42
+ - docs/architecture/folder-structure.md
43
+ - docs/architecture/vertical-slices.md
44
+ - docs/architecture/cqrs.md
45
+ - docs/architecture/persistence.md
46
+ - docs/architecture/testing.md
47
+ - docs/architecture/eventing.md
48
+ - docs/domain/domain-driven-design.md
49
+ - docs/security/authorization.md
50
+ - docs/security/auditing.md
51
+ - docs/security/data-classification.md
52
+ - docs/security/zero-trust.md
53
+ - docs/governance/coding-standards.md
54
+ - docs/governance/dependency-policy.md
55
+ - docs/governance/api-versioning.md
56
+ - docs/glossary/ai-rules.md
57
+
58
+ ## Domain Rule-File Selection (interactive)
59
+
60
+ After the technical standards above are loaded, and **before** the Pre-Execution Checks, resolve the active domain and ask the user which **domain** rule files to load for this command:
61
+
62
+ 1. **Resolve the active domain.** Read `.aw-spec/domain.json` and take its `domain` value — the active domain-specs folder name. The candidate domain rule files are the bullet list under the `## /aw-spec-implement` heading in `docs/domainspecs/<domain>/comandrulemap.md`.
63
+ 2. **Domain gate (missing domain or rules).** If `.aw-spec/domain.json` is absent or its `domain` is empty, **or** `docs/domainspecs/<domain>/comandrulemap.md` does not exist:
64
+ - Ask one single-select question with the AskUserQuestion tool — *"Domain is not set or its rule files are missing (state which: no domain set / domain '<domain>' has no comandrulemap.md). Continue without domain rules?"* — with options **"Continue (technical only)"** and **"Exit"**.
65
+ - **Continue (technical only)** → skip steps 3-5 and proceed with only the auto-loaded technical standards (plus any `@`-mentioned files).
66
+ - **Exit** → stop the command **immediately** with no side effects: do **not** run the Pre-Execution Checks, hooks, Outline, or any later step, and create/modify nothing. Tell the user to run `/aw-spec-select-domain` (or fix the domain folder) and re-run.
67
+ - If interactive questions cannot be asked (non-interactive/automated run), default to **Continue (technical only)**.
68
+ - Exception: if `comandrulemap.md` exists but has **no entries under this command's heading**, this is **not** a gate trigger — load no domain files for this command and continue normally to the Pre-Execution Checks.
69
+ 3. **Show a selection box** using the AskUserQuestion tool:
70
+ - Ask one single-select question — *"Domain rule files for /aw-spec-implement:"* — with options **"Select all (recommended)"**, **"Pick a subset"**, and **"None (technical only)"**.
71
+ - If the user chooses **"Pick a subset"**, follow up with **multi-select** questions whose options are the individual candidate files so the user can tick the ones they want. AskUserQuestion allows ≤4 options per question and ≤4 questions per call, so split the candidates into groups of ≤4 (by category: architecture overlays, clinical domain, security overlays, governance overlays, glossary) across as many calls as needed.
72
+ - If interactive questions cannot be asked (non-interactive or automated run), skip the prompt and default to **Select all**.
73
+ 4. **Load the selection.** Read every file the user selected (the full list for "Select all"; nothing extra for "None"). If any selected file does not exist on disk, skip it silently and continue — do not error.
74
+ 5. **Final context set** = the always-loaded technical standards (section above) **+** the domain files selected here **+** any files the user passed via `@` mention in their command. The `@`-mentioned files are always loaded in addition, whether or not they appear in the candidate list, and are never removed by a "None"/subset choice.
75
+ 6. Proceed to the Pre-Execution Checks only after the selected files are loaded.
76
+
77
+ ## Pre-Execution Checks
78
+
79
+ **Check for extension hooks (before implementation)**:
80
+ - Check if `.aw-spec/extensions.yml` exists in the project root.
81
+ - If it exists, read it and look for entries under the `hooks.before_implement` key
82
+ - If the YAML cannot be parsed or is invalid, skip hook checking silently and continue normally
83
+ - Filter out hooks where `enabled` is explicitly `false`. Treat hooks without an `enabled` field as enabled by default.
84
+ - For each remaining hook, do **not** attempt to interpret or evaluate hook `condition` expressions:
85
+ - If the hook has no `condition` field, or it is null/empty, treat the hook as executable
86
+ - If the hook defines a non-empty `condition`, skip the hook and leave condition evaluation to the HookExecutor implementation
87
+ - When constructing slash commands from hook command names, replace dots (`.`) with hyphens (`-`). For example, `aw-spec.git.commit` → `/aw-spec-git-commit`.
88
+ - For each executable hook, output the following based on its `optional` flag:
89
+ - **Optional hook** (`optional: true`):
90
+ ```
91
+ ## Extension Hooks
92
+
93
+ **Optional Pre-Hook**: {extension}
94
+ Command: `/{command}`
95
+ Description: {description}
96
+
97
+ Prompt: {prompt}
98
+ To execute: `/{command}`
99
+ ```
100
+ - **Mandatory hook** (`optional: false`):
101
+ ```
102
+ ## Extension Hooks
103
+
104
+ **Automatic Pre-Hook**: {extension}
105
+ Executing: `/{command}`
106
+ EXECUTE_COMMAND: {command}
107
+
108
+ Wait for the result of the hook command before proceeding to the Outline.
109
+ ```
110
+ - If no hooks are registered or `.aw-spec/extensions.yml` does not exist, skip silently
111
+
112
+ ## Outline
113
+
114
+ 1. Run `.aw-spec/scripts/bash/check-prerequisites.sh --json --require-tasks --include-tasks` from repo root and parse FEATURE_DIR and AVAILABLE_DOCS list. All paths must be absolute. For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'\''m Groot' (or double-quote if possible: "I'm Groot").
115
+
116
+ 2. **Check checklists status** (if FEATURE_DIR/checklists/ exists):
117
+ - Scan all checklist files in the checklists/ directory
118
+ - For each checklist, count:
119
+ - Total items: All lines matching `- [ ]` or `- [X]` or `- [x]`
120
+ - Completed items: Lines matching `- [X]` or `- [x]`
121
+ - Incomplete items: Lines matching `- [ ]`
122
+ - Create a status table:
123
+
124
+ ```text
125
+ | Checklist | Total | Completed | Incomplete | Status |
126
+ |-----------|-------|-----------|------------|--------|
127
+ | ux.md | 12 | 12 | 0 | ✓ PASS |
128
+ | test.md | 8 | 5 | 3 | ✗ FAIL |
129
+ | security.md | 6 | 6 | 0 | ✓ PASS |
130
+ ```
131
+
132
+ - Calculate overall status:
133
+ - **PASS**: All checklists have 0 incomplete items
134
+ - **FAIL**: One or more checklists have incomplete items
135
+
136
+ - **If any checklist is incomplete**:
137
+ - Display the table with incomplete item counts
138
+ - **STOP** and ask: "Some checklists are incomplete. Do you want to proceed with implementation anyway? (yes/no)"
139
+ - Wait for user response before continuing
140
+ - If user says "no" or "wait" or "stop", halt execution
141
+ - If user says "yes" or "proceed" or "continue", proceed to step 3
142
+
143
+ - **If all checklists are complete**:
144
+ - Display the table showing all checklists passed
145
+ - Automatically proceed to step 3
146
+
147
+ 3. Load and analyze the implementation context:
148
+ - **REQUIRED**: Read tasks.md for the complete task list and execution plan
149
+ - **REQUIRED**: Read plan.md for tech stack, architecture, and file structure
150
+ - **IF EXISTS**: Read data-model.md for entities and relationships
151
+ - **IF EXISTS**: Read contracts/ for API specifications and test requirements
152
+ - **IF EXISTS**: Read research.md for technical decisions and constraints
153
+ - **IF EXISTS**: Read .aw-spec/memory/constitution.md for governance constraints
154
+ - **IF EXISTS**: Read quickstart.md for integration scenarios
155
+
156
+ 4. **Project Setup Verification**:
157
+ - **REQUIRED**: Create/verify ignore files based on actual project setup:
158
+
159
+ **Detection & Creation Logic**:
160
+ - Check if the following command succeeds to determine if the repository is a git repo (create/verify .gitignore if so):
161
+
162
+ ```sh
163
+ git rev-parse --git-dir 2>/dev/null
164
+ ```
165
+
166
+ - Check if Dockerfile* exists or Docker in plan.md → create/verify .dockerignore
167
+ - Check if .eslintrc* exists → create/verify .eslintignore
168
+ - Check if eslint.config.* exists → ensure the config's `ignores` entries cover required patterns
169
+ - Check if .prettierrc* exists → create/verify .prettierignore
170
+ - Check if .npmrc or package.json exists → create/verify .npmignore (if publishing)
171
+ - Check if terraform files (*.tf) exist → create/verify .terraformignore
172
+ - Check if .helmignore needed (helm charts present) → create/verify .helmignore
173
+
174
+ **If ignore file already exists**: Verify it contains essential patterns, append missing critical patterns only
175
+ **If ignore file missing**: Create with full pattern set for detected technology
176
+
177
+ **Common Patterns by Technology** (from plan.md tech stack):
178
+ - **Node.js/JavaScript/TypeScript**: `node_modules/`, `dist/`, `build/`, `*.log`, `.env*`
179
+ - **Python**: `__pycache__/`, `*.pyc`, `.venv/`, `venv/`, `dist/`, `*.egg-info/`
180
+ - **Java**: `target/`, `*.class`, `*.jar`, `.gradle/`, `build/`
181
+ - **C#/.NET**: `bin/`, `obj/`, `*.user`, `*.suo`, `packages/`
182
+ - **Go**: `*.exe`, `*.test`, `vendor/`, `*.out`
183
+ - **Ruby**: `.bundle/`, `log/`, `tmp/`, `*.gem`, `vendor/bundle/`
184
+ - **PHP**: `vendor/`, `*.log`, `*.cache`, `*.env`
185
+ - **Rust**: `target/`, `debug/`, `release/`, `*.rs.bk`, `*.rlib`, `*.prof*`, `.idea/`, `*.log`, `.env*`
186
+ - **Kotlin**: `build/`, `out/`, `.gradle/`, `.idea/`, `*.class`, `*.jar`, `*.iml`, `*.log`, `.env*`
187
+ - **C++**: `build/`, `bin/`, `obj/`, `out/`, `*.o`, `*.so`, `*.a`, `*.exe`, `*.dll`, `.idea/`, `*.log`, `.env*`
188
+ - **C**: `build/`, `bin/`, `obj/`, `out/`, `*.o`, `*.a`, `*.so`, `*.exe`, `*.dll`, `autom4te.cache/`, `config.status`, `config.log`, `.idea/`, `*.log`, `.env*`
189
+ - **Swift**: `.build/`, `DerivedData/`, `*.swiftpm/`, `Packages/`
190
+ - **R**: `.Rproj.user/`, `.Rhistory`, `.RData`, `.Ruserdata`, `*.Rproj`, `packrat/`, `renv/`
191
+ - **Universal**: `.DS_Store`, `Thumbs.db`, `*.tmp`, `*.swp`, `.vscode/`, `.idea/`
192
+
193
+ **Tool-Specific Patterns**:
194
+ - **Docker**: `node_modules/`, `.git/`, `Dockerfile*`, `.dockerignore`, `*.log*`, `.env*`, `coverage/`
195
+ - **ESLint**: `node_modules/`, `dist/`, `build/`, `coverage/`, `*.min.js`
196
+ - **Prettier**: `node_modules/`, `dist/`, `build/`, `coverage/`, `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`
197
+ - **Terraform**: `.terraform/`, `*.tfstate*`, `*.tfvars`, `.terraform.lock.hcl`
198
+ - **Kubernetes/k8s**: `*.secret.yaml`, `secrets/`, `.kube/`, `kubeconfig*`, `*.key`, `*.crt`
199
+
200
+ 5. Parse tasks.md structure and extract:
201
+ - **Task phases**: Setup, Tests, Core, Integration, Polish
202
+ - **Task dependencies**: Sequential vs parallel execution rules
203
+ - **Task details**: ID, description, file paths, parallel markers [P]
204
+ - **Execution flow**: Order and dependency requirements
205
+
206
+ 6. Execute implementation following the task plan:
207
+ - **Phase-by-phase execution**: Complete each phase before moving to the next
208
+ - **Respect dependencies**: Run sequential tasks in order, parallel tasks [P] can run together
209
+ - **Follow TDD approach**: Execute test tasks before their corresponding implementation tasks
210
+ - **File-based coordination**: Tasks affecting the same files must run sequentially
211
+ - **Validation checkpoints**: Verify each phase completion before proceeding
212
+
213
+ 7. Implementation execution rules:
214
+ - **Setup first**: Initialize project structure, dependencies, configuration
215
+ - **Tests before code**: If you need to write tests for contracts, entities, and integration scenarios
216
+ - **Core development**: Implement models, services, CLI commands, endpoints
217
+ - **Integration work**: Database connections, middleware, logging, external services
218
+ - **Polish and validation**: Unit tests, performance optimization, documentation
219
+
220
+ 8. Progress tracking and error handling:
221
+ - Report progress after each completed task
222
+ - Halt execution if any non-parallel task fails
223
+ - For parallel tasks [P], continue with successful tasks, report failed ones
224
+ - Provide clear error messages with context for debugging
225
+ - Suggest next steps if implementation cannot proceed
226
+ - **IMPORTANT** For completed tasks, make sure to mark the task off as [X] in the tasks file.
227
+
228
+ 9. Completion validation:
229
+ - Verify all required tasks are completed
230
+ - Check that implemented features match the original specification
231
+ - Validate that tests pass and coverage meets requirements
232
+ - Confirm the implementation follows the technical plan
233
+
234
+ Note: This command assumes a complete task breakdown exists in tasks.md. If tasks are incomplete or missing, suggest running `/aw-spec-tasks` first to regenerate the task list.
235
+
236
+ ## Mandatory Post-Execution Hooks
237
+
238
+ **You MUST complete this section before reporting completion to the user.**
239
+
240
+ Check if `.aw-spec/extensions.yml` exists in the project root.
241
+ - If it does not exist, or no hooks are registered under `hooks.after_implement`, skip to the Completion Report.
242
+ - If it exists, read it and look for entries under the `hooks.after_implement` key.
243
+ - If the YAML cannot be parsed or is invalid, skip hook checking silently and continue to the Completion Report.
244
+ - Filter out hooks where `enabled` is explicitly `false`. Treat hooks without an `enabled` field as enabled by default.
245
+ - For each remaining hook, do **not** attempt to interpret or evaluate hook `condition` expressions:
246
+ - If the hook has no `condition` field, or it is null/empty, treat the hook as executable
247
+ - If the hook defines a non-empty `condition`, skip the hook and leave condition evaluation to the HookExecutor implementation
248
+ - When constructing slash commands from hook command names, replace dots (`.`) with hyphens (`-`). For example, `aw-spec.git.commit` → `/aw-spec-git-commit`.
249
+ - For each executable hook, output the following based on its `optional` flag:
250
+ - **Mandatory hook** (`optional: false`) — **You MUST emit `EXECUTE_COMMAND:` for each mandatory hook**:
251
+ ```
252
+ ## Extension Hooks
253
+
254
+ **Automatic Hook**: {extension}
255
+ Executing: `/{command}`
256
+ EXECUTE_COMMAND: {command}
257
+ ```
258
+ - **Optional hook** (`optional: true`):
259
+ ```
260
+ ## Extension Hooks
261
+
262
+ **Optional Hook**: {extension}
263
+ Command: `/{command}`
264
+ Description: {description}
265
+
266
+ Prompt: {prompt}
267
+ To execute: `/{command}`
268
+ ```
269
+
270
+ ## Completion Report
271
+
272
+ Report final status with summary of completed work.
273
+
274
+ ## Done When
275
+
276
+ - [ ] All tasks in tasks.md completed and marked `[X]`
277
+ - [ ] Implementation validated against specification, plan, and test coverage
278
+ - [ ] Extension hooks dispatched or skipped according to the rules in Mandatory Post-Execution Hooks above
279
+ - [ ] Completion reported to user with summary of completed work
@@ -0,0 +1,209 @@
1
+ ---
2
+ name: "aw-spec-minimal-implementation"
3
+ description: "Single-step implementation tier: takes a requirement DIRECTLY as the argument (an `Aggregate/Feature` token + free-text requirement) and implements it in one load-and-execute pass — no /aw-spec-specify, no spec.md, no plan.md/tasks.md, no analysis report. Loads a curated technical + domain rule set once, builds a structurally complete vertical slice (implementing what the loaded rules support, stubbing only genuinely-external runtime services), emits a final execution note, then offers an opt-in breakdown of unclear areas. For audited/traceable work use /aw-spec-fast-implement or the full plan→tasks→analyze→implement flow instead."
4
+ argument-hint: "<Aggregate>/<Feature> then the requirement text — e.g. MedicinalProduct/RegisterMedicinalProduct Allow an authorized user to register a new medicinal product..."
5
+ compatibility: "Requires a scaffolded application project (output of /aw-spec-foundation) and the .aw-spec/ directory. Does NOT require a spec.md or /aw-spec-specify."
6
+ metadata:
7
+ author: "github-aw-spec"
8
+ source: "templates/commands/minimal-implementation.md"
9
+ user-invocable: true
10
+ disable-model-invocation: false
11
+ ---
12
+
13
+
14
+ ## User Input
15
+
16
+ ```text
17
+ $ARGUMENTS
18
+ ```
19
+
20
+ You **MUST** consider the user input before proceeding (if not empty).
21
+
22
+ **The argument IS the requirement — this is a single-step command.** `$ARGUMENTS` contains an `Aggregate/Feature` token (two PascalCase segments separated by `/`, e.g. `MedicinalProduct/RegisterMedicinalProduct`) followed by the free-text requirement (the feature description + acceptance criteria). There is **no** `/aw-spec-specify` step and **no** `spec.md`: parse the requirement straight from this argument and implement it in one pass. If `$ARGUMENTS` is empty, or carries an `Aggregate/Feature` token but no requirement text, STOP and show usage: `/aw-spec-minimal-implementation <Aggregate>/<Feature> <requirement text>`.
23
+
24
+ ## Context Reuse (cross-command dedup)
25
+
26
+ **Skip Read-ing any file already in this conversation.** Before loading a standards/domain/template/spec file this command names, check whether it is already in context (loaded earlier here or by a prior `/aw-spec-*` command). If present and unchanged, reuse it and **skip the Read** — only Read files not yet loaded. A file already in context still counts as loaded; this just avoids the redundant re-read.
27
+
28
+ ## When to use this command
29
+
30
+ **Single-step tier.** Takes the requirement directly from the argument and implements it in one pass — **no** `/aw-spec-specify`, **no** `spec.md`/`plan.md`/`tasks.md`/research/contracts/analysis — loading a curated rule set (technical standards + the domain's single-step set) once, ending with a final note + an opt-in unclear-areas breakdown. It implements what the loaded rules support; only a **genuinely-external runtime service** (live terminology server, external FHIR endpoint) is left as an injectable fixture port, recorded as a deferral.
31
+
32
+ **Non-negotiable:** scaffolded project present (gate below), requirement supplied, constitution MUST principles honored, architecture patterns (vertical slices, CQRS, folder structure) + the aggregate's in-aggregate invariants (NDC format, ≥1 ingredient, ≥1 packaging, Draft guard) implemented, and an in-memory coverage check before writing code. **Escalate to `/aw-spec-fast-implement`** (or the full flow) if you need the heavy integrations actually built, traceable artifacts, or the work is audited/complex.
33
+
34
+ ## Project Structure Gate (run before loading standards)
35
+
36
+ **Before loading standards or writing code, confirm a scaffolded app exists** — the output of `/aw-spec-foundation`, not just `.aw-spec/`/`docs/`/`specs/` framework files. Check the repo root (Glob/Bash) for a real build entrypoint, ignoring matches only inside `.aw-spec/`/`docs/`/`specs/`: `*.sln` or `*.csproj` under `src/` (.NET/AppWeaver), else `package.json`/`pom.xml`/`build.gradle`/`go.mod`/`Cargo.toml`/`pyproject.toml` etc.
37
+
38
+ - **None found → STOP, no side effects** (don't load standards, run hooks, or write anything): tell the developer *"No scaffolded project found — run `/aw-spec-foundation ModularMonolith <AppName>` (or `VerticalSlice <AppName>`) first, then re-run."*
39
+ - **Found →** use its solution/host-project path as the implementation target and continue.
40
+
41
+ ## Auto-Loaded Engineering Standards (Required Context)
42
+
43
+ **Load these files once with the Read tool, before the Pre-Execution Checks.** Treat them as authoritative (second only to `.aw-spec/memory/constitution.md`); skip any that don't exist. This list is the domain-agnostic **technical knob** (the domain knob is the `## /aw-spec-minimal-implementation` heading in `comandrulemap.md`); edit it to tune richness, or add a file with an `@` mention.
44
+
45
+ Technical standards for `/aw-spec-minimal-implementation`:
46
+ - docs/architecture/folder-structure.md
47
+ - docs/architecture/vertical-slices.md
48
+ - docs/architecture/cqrs.md
49
+ - docs/architecture/persistence.md
50
+ - docs/architecture/eventing.md
51
+ - docs/domain/domain-driven-design.md
52
+ - docs/security/authorization.md
53
+ - docs/security/auditing.md
54
+ - docs/security/data-classification.md
55
+ - docs/governance/coding-standards.md
56
+ - docs/governance/dependency-policy.md
57
+ - docs/glossary/ai-rules.md
58
+
59
+ ## Domain Rule-File Selection (once)
60
+
61
+ After the technical standards are loaded, resolve the active domain and load the domain's curated rule set — once.
62
+
63
+ 1. **Resolve the active domain.** Read `.aw-spec/domain.json`'s `domain`. Load **exactly the files listed** under the **`## /aw-spec-minimal-implementation`** heading in `docs/domainspecs/<domain>/comandrulemap.md` (the per-domain knob; the set varies by domain).
64
+ - **Fallback:** if that heading is absent, load `domain-driven-design.domain.md` + the domain's terms file (`pharma-terms.md`/`clinical-terms.md`) + lifecycle file (`product-lifecycle.domain.md`) if present. A missing heading is **not** an error.
65
+ 2. **Domain gate (missing domain or rules).** If `.aw-spec/domain.json` is absent or its `domain` is empty, **or** `docs/domainspecs/<domain>/comandrulemap.md` does not exist:
66
+ - If no domain is set, do **not** hard-block. Note "no domain set / domain rules unavailable — running technical-only" and continue with just the technical standards (plus any `@`-mentioned files).
67
+ - Exception: if the user explicitly asked to enforce a domain and none is set, tell them to run `/aw-spec-select-domain` and stop.
68
+ 3. **Load the minimal set.** Because the set is already small, default to loading **all** of it (no selection prompt needed). Read each file once; skip missing files silently. In an interactive session you MAY offer a one-line confirm, but the default is "load all of the minimal set".
69
+ 4. **Final context set** = technical standards + the domain's rule set + any `@`-mentioned files (always loaded in addition).
70
+ 5. Proceed to the Pre-Execution Checks only after these are loaded.
71
+
72
+ ## Pre-Execution Checks
73
+
74
+ **Check for collapsed pre-hooks**:
75
+ - Check if `.aw-spec/extensions.yml` exists. If not, skip silently.
76
+ - If it exists, read it and collect enabled hook entries under `hooks.before_implement` (the only pre-point relevant to an implementation-only tier). Treat hooks without `enabled` as enabled; skip `enabled: false`.
77
+ - Do **not** evaluate `condition` expressions: run a hook only if it has no non-empty `condition`; otherwise leave it to the HookExecutor.
78
+ - When building slash commands from hook command names, replace dots with hyphens (`aw-spec.git.commit` → `/aw-spec-git-commit`).
79
+ - For each executable hook, emit:
80
+ - **Optional** (`optional: true`):
81
+ ```
82
+ ## Extension Hooks
83
+
84
+ **Optional Pre-Hook**: {extension}
85
+ Command: `/{command}`
86
+ Description: {description}
87
+
88
+ Prompt: {prompt}
89
+ To execute: `/{command}`
90
+ ```
91
+ - **Mandatory** (`optional: false`):
92
+ ```
93
+ ## Extension Hooks
94
+
95
+ **Automatic Pre-Hook**: {extension}
96
+ Executing: `/{command}`
97
+ EXECUTE_COMMAND: {command}
98
+
99
+ Wait for the result of the hook command before proceeding to the Outline.
100
+ ```
101
+
102
+ ## Outline
103
+
104
+ This is a **single-step** flow: parse the requirement from the argument, derive the design in your
105
+ head, and implement — all in one pass. No scripts seed artifacts; nothing is read from or written to
106
+ `specs/`.
107
+
108
+ ### 1. Parse the requirement (from the argument — no spec.md)
109
+
110
+ - From `$ARGUMENTS`, take the leading **`Aggregate/Feature`** token (two PascalCase segments split by `/`, e.g. `MedicinalProduct/RegisterMedicinalProduct`) and treat the remaining text as the **requirement** (description + acceptance criteria). If no `Aggregate/Feature` token is given, derive `<Feature>` from the requirement and `<Aggregate>` from its primary domain entity.
111
+ - If the argument is empty, or carries an `Aggregate/Feature` token but no requirement text, **STOP** with usage (see the User Input section). Do **not** invent a requirement.
112
+ - The **implementation target** is the scaffolded application source tree located by the Project Structure Gate above (its solution/host project). You will place the slice under that app for `<Aggregate>/<Feature>`.
113
+
114
+ ### 2. Build the internal model (in your head — collapses specify+plan+tasks)
115
+
116
+ Derive, **without writing any files**:
117
+ - **User story + acceptance criteria** from the requirement (what success looks like).
118
+ - **Functional requirements** — give them working `FR-###` keys for the coverage check and the note.
119
+ - **Key entities / aggregate shape**: the aggregate root, its value objects and child entities, and the **in-aggregate invariants** the acceptance criteria imply (e.g. NDC format + uniqueness, ≥1 ingredient, ≥1 packaging, Draft on create).
120
+ - **Constitution**: IF `.aw-spec/memory/constitution.md` exists, load it; its MUST principles are authoritative even here.
121
+ - Track every **ambiguity / missing detail / assumption** as you go — these feed the opt-in part of the Final Execution Note.
122
+ - Do **not** create `spec.md`, `plan.md`, `tasks.md`, `research.md`, `data-model.md`, `contracts/`, or `quickstart.md`.
123
+
124
+ ### 3. Resolve unclear areas without blocking
125
+
126
+ For each ambiguity or missing detail in the requirement, choose a **documented reasonable assumption** and proceed — this is single-step, so do **not** stop to ask mid-way. Keep a running list of (a) assumptions made and (b) genuinely unclear/under-specified items; both surface in the opt-in section of the Final Execution Note.
127
+
128
+ ### 4. Implement directly from the requirement
129
+
130
+ Implement straight into the scaffolded app's source tree (no design files):
131
+ - **Structure**: follow `docs/architecture/folder-structure.md` and `vertical-slices.md` — place the feature as a vertical slice under `<Aggregate>/<Feature>` inside the app located by the Project Structure Gate.
132
+ - **Behavior**: apply CQRS command/query separation per `cqrs.md`; model the entities derived in step 2; implement each Functional Requirement and the primary user-story/acceptance flow.
133
+ - **Conventions**: follow `coding-standards.md` and `ai-rules.md` (loaded in the technical set), the loaded domain rules, and the domain's ubiquitous-language/terms glossary for correct vocabulary in names/labels.
134
+ - **Implement what the loaded rules support; stub only genuinely-external services**: implement the aggregate, value objects, entities, and **in-aggregate invariants** for real, and honor whatever domain rules are in this domain's set (e.g. NDC format/structure, ATC/identifier shape, FHIR mapping shape where those files are loaded). Stub **only** a genuinely-external runtime dependency that can't exist in a self-contained build — e.g. a live terminology server or external FHIR endpoint — behind an **injectable port** with a fixture implementation (e.g. an `INdcValidator` / `ITerminologyValidator`). Never invent real coded values; use a clearly-named sentinel. Record each stub/port as a deferral in the Final Execution Note.
135
+ - **Coverage (in-memory)**: before finishing, confirm every Functional Requirement and the acceptance flow is addressed, the aggregate's structural invariants hold, and nothing violates a constitution MUST. **STOP** and recommend `/aw-spec-fast-implement` only if the *structure itself* can't be expressed simply or a constitution MUST is at stake — not merely because an integration is stubbed.
136
+ - **Tests**: only if the requirement explicitly requests them (this tier defaults to no tests).
137
+ - **Ignore files**: ensure `.gitignore` covers the stack (this is a .NET/C# project by default: `bin/`, `obj/`, `*.user`); append only missing critical patterns.
138
+
139
+ ### 5. Build check
140
+
141
+ Build/compile the affected project. Report the result in the final note. If it fails, fix obvious issues; if the failure indicates the task is more complex than "minimal," say so and recommend escalating to `/aw-spec-fast-implement`.
142
+
143
+ ## Mandatory Post-Execution Hooks
144
+
145
+ **Complete this before the Final Execution Note.**
146
+
147
+ - Check if `.aw-spec/extensions.yml` exists; if not, skip to the Final Execution Note.
148
+ - Read enabled hook entries under `hooks.after_implement` (the only post-point relevant to an implementation-only tier — this tier produces no plan, so plan/agent-context hooks do not apply). Treat missing `enabled` as enabled; skip `enabled: false`; do not evaluate `condition` expressions.
149
+ - Convert command names dots→hyphens. For each executable hook, emit:
150
+ - **Mandatory** (`optional: false`) — **emit `EXECUTE_COMMAND:`**:
151
+ ```
152
+ ## Extension Hooks
153
+
154
+ **Automatic Hook**: {extension}
155
+ Executing: `/{command}`
156
+ EXECUTE_COMMAND: {command}
157
+ ```
158
+ - **Optional** (`optional: true`):
159
+ ```
160
+ ## Extension Hooks
161
+
162
+ **Optional Hook**: {extension}
163
+ Command: `/{command}`
164
+ Description: {description}
165
+
166
+ Prompt: {prompt}
167
+ To execute: `/{command}`
168
+ ```
169
+
170
+ ## Final Execution Note
171
+
172
+ This is the **only** output record for this tier — there are no spec.md/plan.md/tasks.md files. After the build check, emit a concise note in chat:
173
+
174
+ - **Feature**: `<Aggregate>/<Feature>` (parsed from the argument).
175
+ - **Files created/changed**: each path with a one-line purpose.
176
+ - **Requirement coverage**: a short `FR-### → file(s)` map and the user-story/acceptance flow implemented.
177
+ - **Stubbed / deferred integrations (option "B")**: each heavy integration stubbed behind a port (terminology/NDC/ATC validation, FHIR projection, audit/lifecycle depth, etc.) with its fixture/sentinel name — so the reader knows what is NOT production-grade and must be built (e.g. via `/aw-spec-fast-implement`) before release.
178
+ - **Standards applied**: "technical standards + <domain> single-step rule set" (or "technical-only").
179
+ - **Build status**: pass/fail (and what was fixed).
180
+
181
+ ### Then offer the unclear-areas breakdown (opt-in)
182
+
183
+ After the note above, **ask the developer one question** (single-select, e.g. via AskUserQuestion):
184
+
185
+ > *"Want a breakdown of the unclear/ambiguous areas and the assumptions I made, so you can refine them one by one?"* — options **"Yes — list them"** / **"No — leave it"**.
186
+
187
+ - **If the developer says yes** (and in a non-interactive run, default to yes): append an **"⚠️ Unclear Areas & Assumptions to Refine"** section — an **itemized, numbered** list where each entry states: *what was unclear or missing in the requirement*, *the assumption / default chosen*, *where it shows up in the code* (file/symbol), and *how to firm it up*. Order them so the developer can fix them one at a time, and include the stubbed integrations here too (each is a thing to finish).
188
+ - **If the developer says no**: end with just the concise note plus the reminder below.
189
+
190
+ End with: *no design artifacts were persisted — re-run with `/aw-spec-fast-implement` if you need a traceable `plan.md`/`tasks.md` or the heavy integrations fully built.*
191
+
192
+ ## Key rules
193
+
194
+ - **Single step**: the requirement comes from the argument — never call `/aw-spec-specify` and never read or create a `spec.md`.
195
+ - Load each rule file **once**; never re-read context you already hold.
196
+ - **Never** create `spec.md`, `plan.md`, `tasks.md`, or Phase-1 design files in this tier — the whole point is no persisted artifacts, just the final note.
197
+ - The constitution and the loaded standards are authoritative. **STOP** on an unjustified constitution MUST violation or a requirement that cannot be met simply — escalate to `/aw-spec-fast-implement` rather than shipping partial/incorrect code.
198
+ - Do **not** block mid-way to clarify: make documented assumptions, finish, then offer the unclear-areas breakdown at the end.
199
+ - This is the tier for **simple, non-domain-rich** tasks. If the work turns out domain-rich or complex, stop and recommend `/aw-spec-fast-implement`.
200
+
201
+ ## Done When
202
+
203
+ - [ ] Project Structure Gate passed (scaffolded app present); requirement parsed from the argument
204
+ - [ ] Technical standards and the domain rule set loaded **once** (or technical-only); constitution MUST principles honored
205
+ - [ ] Internal model derived in-head (no spec.md/plan.md/tasks.md/design files created)
206
+ - [ ] Feature implemented as a vertical slice (CQRS, correct folder structure, domain vocabulary) into the scaffolded app
207
+ - [ ] In-memory coverage check passed (every FR + the acceptance flow addressed)
208
+ - [ ] Build checked; extension hooks dispatched or skipped per the rules above
209
+ - [ ] **Final Execution Note** emitted, and the developer asked whether to include the itemized unclear-areas / assumptions breakdown