@ncoderz/awa 1.7.1 → 1.8.0
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/LICENSE +23 -16
- package/README.md +25 -27
- package/dist/{chunk-OQZTQ5ZI.js → chunk-LRQWZCYL.js} +1 -4
- package/dist/chunk-LRQWZCYL.js.map +1 -0
- package/dist/chunk-WGGMDWBE.js +760 -0
- package/dist/chunk-WGGMDWBE.js.map +1 -0
- package/dist/{config-WL3SLSP6.js → config-EJIXC7D7.js} +2 -2
- package/dist/index.js +1285 -466
- package/dist/index.js.map +1 -1
- package/dist/renumber-ZCI2H5HZ.js +9 -0
- package/dist/renumber-ZCI2H5HZ.js.map +1 -0
- package/package.json +13 -6
- package/templates/awa/.agent/skills/spec-merge/SKILL.md +3 -0
- package/templates/awa/.agent/skills/spec-tidy/SKILL.md +3 -0
- package/templates/awa/.agent/workflows/spec-merge.md +3 -0
- package/templates/awa/.agent/workflows/spec-tidy.md +3 -0
- package/templates/awa/.agents/skills/spec-merge/SKILL.md +3 -0
- package/templates/awa/.agents/skills/spec-tidy/SKILL.md +3 -0
- package/templates/awa/.awa/.agent/schemas/ALIGN_REPORT.schema.yaml +1 -1
- package/templates/awa/.awa/.agent/schemas/API.schema.yaml +1 -1
- package/templates/awa/.awa/.agent/schemas/ARCHITECTURE.schema.yaml +7 -0
- package/templates/awa/.awa/.agent/schemas/DESIGN.schema.yaml +1 -1
- package/templates/awa/.awa/.agent/schemas/{EXAMPLES.schema.yaml → EXAMPLE.schema.yaml} +4 -4
- package/templates/awa/.awa/.agent/schemas/FEAT.schema.yaml +8 -1
- package/templates/awa/.awa/.agent/schemas/PLAN.schema.yaml +1 -1
- package/templates/awa/.awa/.agent/schemas/README.schema.yaml +1 -1
- package/templates/awa/.awa/.agent/schemas/REQ.schema.yaml +1 -1
- package/templates/awa/.awa/.agent/schemas/TASK.schema.yaml +1 -1
- package/templates/awa/.claude/skills/spec-merge/SKILL.md +3 -0
- package/templates/awa/.claude/skills/spec-tidy/SKILL.md +3 -0
- package/templates/awa/.gemini/commands/spec-merge.md +3 -0
- package/templates/awa/.gemini/commands/spec-tidy.md +3 -0
- package/templates/awa/.gemini/skills/spec-merge/SKILL.md +3 -0
- package/templates/awa/.gemini/skills/spec-tidy/SKILL.md +3 -0
- package/templates/awa/.github/prompts/awa.spec-merge.prompt.md +8 -0
- package/templates/awa/.github/prompts/awa.spec-tidy.prompt.md +7 -0
- package/templates/awa/.github/skills/spec-merge/SKILL.md +3 -0
- package/templates/awa/.github/skills/spec-tidy/SKILL.md +3 -0
- package/templates/awa/.kilocode/skills/spec-merge/SKILL.md +3 -0
- package/templates/awa/.kilocode/skills/spec-tidy/SKILL.md +3 -0
- package/templates/awa/.kilocode/workflows/spec-merge.md +3 -0
- package/templates/awa/.kilocode/workflows/spec-tidy.md +3 -0
- package/templates/awa/.opencode/commands/spec-merge.md +3 -0
- package/templates/awa/.opencode/commands/spec-tidy.md +3 -0
- package/templates/awa/.opencode/skills/spec-merge/SKILL.md +3 -0
- package/templates/awa/.opencode/skills/spec-tidy/SKILL.md +3 -0
- package/templates/awa/.qwen/commands/spec-merge.md +3 -0
- package/templates/awa/.qwen/commands/spec-tidy.md +3 -0
- package/templates/awa/.qwen/skills/spec-merge/SKILL.md +3 -0
- package/templates/awa/.qwen/skills/spec-tidy/SKILL.md +3 -0
- package/templates/awa/.roo/skills/spec-merge/SKILL.md +3 -0
- package/templates/awa/.roo/skills/spec-tidy/SKILL.md +3 -0
- package/templates/awa/.windsurf/skills/spec-merge/SKILL.md +3 -0
- package/templates/awa/.windsurf/skills/spec-tidy/SKILL.md +3 -0
- package/templates/awa/_delete.txt +4 -0
- package/templates/awa/_partials/_cmd.spec-merge.md +6 -0
- package/templates/awa/_partials/_cmd.spec-tidy.md +5 -0
- package/templates/awa/_partials/_skill.spec-merge.md +6 -0
- package/templates/awa/_partials/_skill.spec-tidy.md +6 -0
- package/templates/awa/_partials/awa.align.md +1 -1
- package/templates/awa/_partials/awa.brainstorm.md +1 -1
- package/templates/awa/_partials/awa.code.md +1 -1
- package/templates/awa/_partials/awa.core.md +8 -4
- package/templates/awa/_partials/awa.design.md +3 -2
- package/templates/awa/_partials/awa.documentation.md +1 -1
- package/templates/awa/_partials/awa.examples.md +4 -4
- package/templates/awa/_partials/awa.feature.md +2 -1
- package/templates/awa/_partials/awa.plan.md +2 -2
- package/templates/awa/_partials/awa.requirements.md +4 -2
- package/templates/awa/_partials/awa.spec-merge.md +97 -0
- package/templates/awa/_partials/awa.spec.tidy.md +92 -0
- package/templates/awa/_partials/awa.tasks.md +1 -1
- package/templates/awa/_partials/awa.upgrade.md +3 -3
- package/templates/awa/_partials/awa.usage.md +74 -6
- package/templates/awa/_partials/awa.vibe.md +1 -1
- package/templates/awa/_tests/claude/.awa/.agent/awa.core.md +126 -0
- package/templates/awa/_tests/claude/.awa/.agent/schemas/ALIGN_REPORT.schema.yaml +83 -0
- package/templates/awa/_tests/claude/.awa/.agent/schemas/API.schema.yaml +7 -0
- package/templates/awa/_tests/claude/.awa/.agent/schemas/ARCHITECTURE.schema.yaml +257 -0
- package/templates/awa/_tests/claude/.awa/.agent/schemas/DESIGN.schema.yaml +351 -0
- package/templates/awa/_tests/claude/.awa/.agent/schemas/EXAMPLE.schema.yaml +89 -0
- package/templates/awa/_tests/claude/.awa/.agent/schemas/FEAT.schema.yaml +142 -0
- package/templates/awa/_tests/claude/.awa/.agent/schemas/PLAN.schema.yaml +146 -0
- package/templates/awa/_tests/claude/.awa/.agent/schemas/README.schema.yaml +137 -0
- package/templates/awa/_tests/claude/.awa/.agent/schemas/REQ.schema.yaml +160 -0
- package/templates/awa/_tests/claude/.awa/.agent/schemas/TASK.schema.yaml +204 -0
- package/templates/awa/_tests/claude/.claude/agents/awa.md +137 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-align/SKILL.md +67 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-architecture/SKILL.md +50 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-brainstorm/SKILL.md +57 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-check/SKILL.md +79 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-code/SKILL.md +179 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-design/SKILL.md +62 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-documentation/SKILL.md +91 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-examples/SKILL.md +58 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-feature/SKILL.md +56 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-plan/SKILL.md +53 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-refactor/SKILL.md +53 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-requirements/SKILL.md +58 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-tasks/SKILL.md +158 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-upgrade/SKILL.md +68 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-usage/SKILL.md +368 -0
- package/templates/awa/_tests/claude/.claude/skills/awa-vibe/SKILL.md +72 -0
- package/templates/awa/_tests/claude/.claude/skills/spec-merge/SKILL.md +102 -0
- package/templates/awa/_tests/claude/.claude/skills/spec-tidy/SKILL.md +97 -0
- package/templates/awa/_tests/claude/CLAUDE.md +132 -0
- package/templates/awa/_tests/copilot/.awa/.agent/awa.core.md +126 -0
- package/templates/awa/_tests/copilot/.awa/.agent/schemas/ALIGN_REPORT.schema.yaml +83 -0
- package/templates/awa/_tests/copilot/.awa/.agent/schemas/API.schema.yaml +7 -0
- package/templates/awa/_tests/copilot/.awa/.agent/schemas/ARCHITECTURE.schema.yaml +257 -0
- package/templates/awa/_tests/copilot/.awa/.agent/schemas/DESIGN.schema.yaml +351 -0
- package/templates/awa/_tests/copilot/.awa/.agent/schemas/EXAMPLE.schema.yaml +89 -0
- package/templates/awa/_tests/copilot/.awa/.agent/schemas/FEAT.schema.yaml +142 -0
- package/templates/awa/_tests/copilot/.awa/.agent/schemas/PLAN.schema.yaml +146 -0
- package/templates/awa/_tests/copilot/.awa/.agent/schemas/README.schema.yaml +137 -0
- package/templates/awa/_tests/copilot/.awa/.agent/schemas/REQ.schema.yaml +160 -0
- package/templates/awa/_tests/copilot/.awa/.agent/schemas/TASK.schema.yaml +204 -0
- package/templates/awa/_tests/copilot/.github/agents/awa.agent.md +137 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.align.prompt.md +67 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.architecture.prompt.md +50 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.brainstorm.prompt.md +57 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.check.prompt.md +79 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.code.prompt.md +179 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.design.prompt.md +62 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.documentation.prompt.md +91 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.examples.prompt.md +58 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.feature.prompt.md +56 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.plan.prompt.md +53 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.refactor.prompt.md +53 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.requirements.prompt.md +58 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.spec-merge.prompt.md +102 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.spec-tidy.prompt.md +96 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.tasks.prompt.md +158 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.upgrade.prompt.md +68 -0
- package/templates/awa/_tests/copilot/.github/prompts/awa.vibe.prompt.md +72 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-align/SKILL.md +67 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-architecture/SKILL.md +50 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-brainstorm/SKILL.md +57 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-check/SKILL.md +79 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-code/SKILL.md +179 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-design/SKILL.md +62 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-documentation/SKILL.md +91 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-examples/SKILL.md +58 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-feature/SKILL.md +56 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-plan/SKILL.md +53 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-refactor/SKILL.md +53 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-requirements/SKILL.md +58 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-tasks/SKILL.md +158 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-upgrade/SKILL.md +68 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-usage/SKILL.md +368 -0
- package/templates/awa/_tests/copilot/.github/skills/awa-vibe/SKILL.md +72 -0
- package/templates/awa/_tests/copilot/.github/skills/spec-merge/SKILL.md +102 -0
- package/templates/awa/_tests/copilot/.github/skills/spec-tidy/SKILL.md +97 -0
- package/dist/chunk-OQZTQ5ZI.js.map +0 -1
- /package/dist/{config-WL3SLSP6.js.map → config-EJIXC7D7.js.map} +0 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: awa-code
|
|
3
|
+
description: Implement code and tests based on architecture, requirements, and design (or a set of tasks). Use this when asked to implement features, write code, or create tests.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Implement Code and Tests from Architecture, Requirements, Design, and (optional) Tasks
|
|
7
|
+
|
|
8
|
+
## Bootstrap
|
|
9
|
+
|
|
10
|
+
<tool name="read_file">
|
|
11
|
+
<read path=".awa/.agent/awa.core.md" required="true" error="on not found" />
|
|
12
|
+
<read path=".awa/rules/*.md" required="true" />
|
|
13
|
+
<read path=".awa/specs/ARCHITECTURE.md" required="true" error="on not found" />
|
|
14
|
+
</tool>
|
|
15
|
+
|
|
16
|
+
## User Input
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
${input}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
23
|
+
|
|
24
|
+
## Inputs
|
|
25
|
+
|
|
26
|
+
<file type="architecture" path=".awa/specs/ARCHITECTURE.md" />
|
|
27
|
+
<file type="feat" path=".awa/specs/FEAT-{CODE}-{feature-name}.md" required="if relevant" />
|
|
28
|
+
<file type="examples" path=".awa/specs/EXAMPLE-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
|
|
29
|
+
<file type="requirements" path=".awa/specs/REQ-{CODE}-{feature-name}.md" required="if relevant" />
|
|
30
|
+
<file type="design" path=".awa/specs/DESIGN-{CODE}-{feature-name}.md" required="if relevant" />
|
|
31
|
+
<file type="api" path=".awa/specs/API-{CODE}-{feature-name}.md" required="if relevant" />
|
|
32
|
+
<file type="tasks" path=".awa/tasks/TASK-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
|
|
33
|
+
<file type="code" required="if relevant" />
|
|
34
|
+
|
|
35
|
+
## Action
|
|
36
|
+
|
|
37
|
+
Implement code and tests based on architecture, requirements, and design (tasks optional) as specified in the instruction above, following awa conventions.
|
|
38
|
+
|
|
39
|
+
## Traceability Markers
|
|
40
|
+
|
|
41
|
+
You MUST add these markers to create explicit traces:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
// @awa-component: {CODE}-{ComponentName}
|
|
45
|
+
```
|
|
46
|
+
Place at the top of each file/module that implements a design component.
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
// @awa-impl: {CODE}-{n}[.{p}]_AC-{m}
|
|
50
|
+
```
|
|
51
|
+
Place above code that satisfies an acceptance criterion. Multiple markers allowed per block.
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
// @awa-test: {CODE}_P-{n}
|
|
55
|
+
// @awa-test: {CODE}-{n}[.{p}]_AC-{m}
|
|
56
|
+
```
|
|
57
|
+
Place above tests. Use P- for property-based tests, AC- for direct acceptance tests.
|
|
58
|
+
|
|
59
|
+
## Implementation Process
|
|
60
|
+
|
|
61
|
+
1. PARSE DESIGN
|
|
62
|
+
- Identify components and their interfaces
|
|
63
|
+
- Note IMPLEMENTS references (which ACs each component covers)
|
|
64
|
+
- Note properties ({CODE}_P-{n}) and what they VALIDATE
|
|
65
|
+
|
|
66
|
+
2. PARSE REQ
|
|
67
|
+
- Understand acceptance criteria being implemented
|
|
68
|
+
- Note criterion types (event, ubiquitous, conditional, etc.)
|
|
69
|
+
|
|
70
|
+
3. IF TASKS PROVIDED
|
|
71
|
+
- Follow task order strictly
|
|
72
|
+
- Implement one task at a time
|
|
73
|
+
- Update TASK file checkmark, and report completion of each task before proceeding to the next
|
|
74
|
+
|
|
75
|
+
4. IF NO TASKS
|
|
76
|
+
- Implement components in dependency order
|
|
77
|
+
- Start with bootstrapping, then types/interfaces, then core logic, then entry points
|
|
78
|
+
|
|
79
|
+
5. FOR EACH COMPONENT
|
|
80
|
+
- Add @awa-component marker at file/module top
|
|
81
|
+
- Implement interface as specified in DESIGN
|
|
82
|
+
- Add @awa-impl marker above code satisfying each AC
|
|
83
|
+
- One AC may require multiple @awa-impl markers across files
|
|
84
|
+
|
|
85
|
+
6. FOR EACH TEST
|
|
86
|
+
- Property tests (@awa-test: {CODE}_P-{n}): Use property-based testing framework
|
|
87
|
+
- Acceptance tests (@awa-test: {CODE}-{n}[.{p}]_AC-{m}): Use example-based assertions
|
|
88
|
+
- A single test may verify multiple ACs or properties
|
|
89
|
+
|
|
90
|
+
7. UPDATE DOCUMENTATION
|
|
91
|
+
- If user-facing behavior changed: update user docs
|
|
92
|
+
- If CLI commands or options changed: update CLI reference docs
|
|
93
|
+
- If project structure changed: update ARCHITECTURE.md
|
|
94
|
+
- If no user-facing changes: skip this step
|
|
95
|
+
|
|
96
|
+
## Outputs
|
|
97
|
+
|
|
98
|
+
- source code files with appropriate markers
|
|
99
|
+
- test files with appropriate markers
|
|
100
|
+
- associated project configuration files if needed
|
|
101
|
+
- updated documentation if necessary
|
|
102
|
+
|
|
103
|
+
## Constraints
|
|
104
|
+
|
|
105
|
+
- Never implement without a corresponding DESIGN component
|
|
106
|
+
- Never add @awa-impl without understanding the AC's criterion type
|
|
107
|
+
- Prefer one @awa-component per file; split if file covers multiple components
|
|
108
|
+
- Keep @awa-impl markers close to the implementing code, not at file top
|
|
109
|
+
- If AC cannot be fully satisfied, add marker with comment: `// @awa-impl: {CODE}-{n}[.{p}]_AC-{m} (partial: reason)`
|
|
110
|
+
- If PLAN task is blocked, report blocker and await instruction
|
|
111
|
+
|
|
112
|
+
## Example
|
|
113
|
+
|
|
114
|
+
Given:
|
|
115
|
+
- CFG-1: Config Loading with CFG-1_AC-1 (load from path), CFG-1_AC-2 (merge with defaults)
|
|
116
|
+
- DESIGN component CFG-ConfigLoader with IMPLEMENTS: CFG-1_AC-1, CFG-1_AC-2
|
|
117
|
+
- DESIGN property CFG_P-1 [Default Preservation] VALIDATES: CFG-1_AC-2
|
|
118
|
+
|
|
119
|
+
Output:
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
// FILE: src/config/loader.ts
|
|
123
|
+
|
|
124
|
+
// @awa-component: CFG-ConfigLoader
|
|
125
|
+
|
|
126
|
+
import { Config, RawConfig } from './types';
|
|
127
|
+
import { defaults } from './defaults';
|
|
128
|
+
|
|
129
|
+
// @awa-impl: CFG-1_AC-1
|
|
130
|
+
export async function load(path: string): Promise {
|
|
131
|
+
const content = await fs.readFile(path, 'utf8');
|
|
132
|
+
return parse(content);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// @awa-impl: CFG-1_AC-2
|
|
136
|
+
export function merge(raw: RawConfig): Config {
|
|
137
|
+
return { ...defaults, ...raw };
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
```typescript
|
|
142
|
+
// FILE: tests/config/loader.test.ts
|
|
143
|
+
|
|
144
|
+
import * as fc from 'fast-check';
|
|
145
|
+
|
|
146
|
+
// @awa-test: CFG_P-1
|
|
147
|
+
test.prop([fc.object()])('preserves defaults for missing keys', (partial) => {
|
|
148
|
+
const result = merge(partial);
|
|
149
|
+
for (const [key, value] of Object.entries(defaults)) {
|
|
150
|
+
if (!(key in partial)) {
|
|
151
|
+
expect(result[key]).toBe(value);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
// @awa-test: CFG-1_AC-1
|
|
157
|
+
test('loads config from valid path', async () => {
|
|
158
|
+
const config = await load('fixtures/valid.toml');
|
|
159
|
+
expect(config).toBeDefined();
|
|
160
|
+
});
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Rules
|
|
164
|
+
|
|
165
|
+
You SHALL write code at the level of a technical lead.
|
|
166
|
+
You SHALL consider edge cases and error handling.
|
|
167
|
+
You SHALL use KISS, and YAGNI principles. Do not create more than requested.
|
|
168
|
+
You SHALL write tests to cover the requirements and success criteria. If no tests exist for the written code, you MUST create them.
|
|
169
|
+
You SHALL actively research existing code to apply the DRY principle.
|
|
170
|
+
You SHALL consider edge cases, UX, technical constraints, success criteria.
|
|
171
|
+
You MUST NOT add features or functionality beyond what is specified or requested.
|
|
172
|
+
You SHALL use any tools you need to help write and test code (e.g. MCP tools for result visualization).
|
|
173
|
+
You MUST add traceability markers (`@awa-component`, `@awa-impl`, `@awa-test`) to all code and tests.
|
|
174
|
+
You MUST ensure every feature implementation traces to at least one acceptance criterion.
|
|
175
|
+
You MUST ensure every test file traces to at least one design property.
|
|
176
|
+
You MUST run `awa check` after implementation to verify all traceability markers resolve to spec IDs and no acceptance criteria are left uncovered.
|
|
177
|
+
You SHALL update user-facing documentation when implementation changes user-facing behavior, CLI, API, or configuration.
|
|
178
|
+
You SHALL clarify open points with user.
|
|
179
|
+
You MAY use todos and tools as needed.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: awa-design
|
|
3
|
+
description: Create or update design documents. Use this when asked to create, update or modify feature designs.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Create or Update Design(s)
|
|
7
|
+
|
|
8
|
+
## Bootstrap
|
|
9
|
+
|
|
10
|
+
<tool name="read_file">
|
|
11
|
+
<read path=".awa/.agent/awa.core.md" required="true" error="on not found" />
|
|
12
|
+
<read path=".awa/rules/*.md" required="true" />
|
|
13
|
+
<read path=".awa/specs/ARCHITECTURE.md" required="true" error="on not found" />
|
|
14
|
+
<read path=".awa/.agent/schemas/DESIGN.schema.yaml" required="true" error="on not found" />
|
|
15
|
+
<read path=".awa/.agent/schemas/REQ.schema.yaml" optional="true" />
|
|
16
|
+
</tool>
|
|
17
|
+
|
|
18
|
+
## User Input
|
|
19
|
+
|
|
20
|
+
```text
|
|
21
|
+
${input}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
25
|
+
|
|
26
|
+
## Inputs
|
|
27
|
+
|
|
28
|
+
<file type="architecture" path=".awa/specs/ARCHITECTURE.md" />
|
|
29
|
+
<file type="feat" path=".awa/specs/FEAT-{CODE}-{feature-name}.md" required="if relevant" />
|
|
30
|
+
<file type="examples" path=".awa/specs/EXAMPLE-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
|
|
31
|
+
<file type="requirements" path=".awa/specs/REQ-{CODE}-{feature-name}.md" required="if relevant" />
|
|
32
|
+
<file type="design" path=".awa/specs/DESIGN-{CODE}-{feature-name}.md" required="if relevant" />
|
|
33
|
+
<file type="api" path=".awa/specs/API-{CODE}-{feature-name}.md" required="if relevant" />
|
|
34
|
+
<file type="code" required="if reverse workflow" />
|
|
35
|
+
|
|
36
|
+
## Action
|
|
37
|
+
|
|
38
|
+
Update or create the design document(s) as specified in the instruction above, following awa conventions.
|
|
39
|
+
|
|
40
|
+
If deriving from existing code (reverse workflow), analyze the codebase to extract component structure, interfaces, data models, and design patterns.
|
|
41
|
+
|
|
42
|
+
## Outputs
|
|
43
|
+
|
|
44
|
+
<file path=".awa/specs/DESIGN-{CODE}-{feature-name}.md" />
|
|
45
|
+
<file path=".awa/specs/API-{CODE}-{api-name}.tsp" />
|
|
46
|
+
|
|
47
|
+
## Rules
|
|
48
|
+
|
|
49
|
+
You SHALL ensure the {CODE} matches the corresponding REQ {CODE} for the same feature if one exists.
|
|
50
|
+
You SHALL run `awa spec codes` to help choose the {CODE} extending existing one if logical.
|
|
51
|
+
You SHALL solidify design with respect to architecture and requirements.
|
|
52
|
+
You SHALL create and maintain design specifications for features.
|
|
53
|
+
You SHALL create and maintain API specifications in TypeSpec format.
|
|
54
|
+
You SHALL define component interfaces, data models, and error handling strategies.
|
|
55
|
+
You SHALL identify existing requirements to update, or new requirements to create.
|
|
56
|
+
You SHALL consider edge cases, UX, technical constraints, success criteria.
|
|
57
|
+
You MUST identify areas where research is needed based on the feature requirements.
|
|
58
|
+
You MUST conduct research and build up context in the conversation thread.
|
|
59
|
+
You SHALL ensure IMPLEMENTS and VALIDATES cross-references in design components resolve to real requirement IDs and AC IDs.
|
|
60
|
+
You SHALL support reverse workflow: deriving design from existing code when requested.
|
|
61
|
+
You SHALL clarify open points with user.
|
|
62
|
+
You MAY use todos and tools as needed.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: awa-documentation
|
|
3
|
+
description: Create or update project documentation (README.md and /docs). Use this when asked to write, update or improve documentation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Create or Update Documentation
|
|
7
|
+
|
|
8
|
+
## Bootstrap
|
|
9
|
+
|
|
10
|
+
<tool name="read_file">
|
|
11
|
+
<read path=".awa/.agent/awa.core.md" required="true" error="on not found" />
|
|
12
|
+
<read path=".awa/rules/*.md" required="true" />
|
|
13
|
+
<read path=".awa/specs/ARCHITECTURE.md" required="true" error="on not found" />
|
|
14
|
+
<read path=".awa/.agent/schemas/README.schema.yaml" required="true" error="on not found" />
|
|
15
|
+
</tool>
|
|
16
|
+
|
|
17
|
+
## User Input
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
${input}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
24
|
+
|
|
25
|
+
## Inputs
|
|
26
|
+
|
|
27
|
+
<file type="architecture" path=".awa/specs/ARCHITECTURE.md" />
|
|
28
|
+
<file type="requirements" path=".awa/specs/REQ-{CODE}-{feature-name}.md" required="if relevant" />
|
|
29
|
+
<file type="design" path=".awa/specs/DESIGN-{CODE}-{feature-name}.md" required="if relevant" />
|
|
30
|
+
<file type="readme" path="README.md" required="if exists" />
|
|
31
|
+
<file type="docs" path="docs/*.md" required="if exists and relevant" />
|
|
32
|
+
|
|
33
|
+
## Action
|
|
34
|
+
|
|
35
|
+
Update or create documentation as specified in the instruction above, following awa conventions.
|
|
36
|
+
|
|
37
|
+
## Documentation Structure Example
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
README.md # Project entry point (user-facing)
|
|
41
|
+
docs/
|
|
42
|
+
├── {topic}.md # Documentation on a specific topic
|
|
43
|
+
├── getting-started.md # Quick start guide
|
|
44
|
+
├── configuration.md # Configuration reference
|
|
45
|
+
├── cli-reference.md # CLI command reference (if CLI project)
|
|
46
|
+
├── api.md # API reference (if library)
|
|
47
|
+
├── templates.md # Template authoring (if template-based)
|
|
48
|
+
├── architecture.md # Public architecture overview (optional)
|
|
49
|
+
└── contributing.md # Contribution guidelines (or CONTRIBUTING.md at root)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Documentation Principles
|
|
53
|
+
|
|
54
|
+
1. README.md is the entry point
|
|
55
|
+
- User-facing, not developer-facing
|
|
56
|
+
- Brief and scannable
|
|
57
|
+
- Links to /docs for details
|
|
58
|
+
- Shows quick start, not comprehensive guide
|
|
59
|
+
|
|
60
|
+
2. /docs contains detailed documentation
|
|
61
|
+
- Each file covers one topic
|
|
62
|
+
- Reference style for commands/APIs
|
|
63
|
+
- Tutorial style for guides
|
|
64
|
+
- Keep files under the specified line-limit; split if larger
|
|
65
|
+
|
|
66
|
+
3. Derive from specifications
|
|
67
|
+
- Do not duplicate; summarize and link
|
|
68
|
+
|
|
69
|
+
4. Keep synchronized
|
|
70
|
+
- Update docs when specs change
|
|
71
|
+
- Remove docs for deprecated features
|
|
72
|
+
|
|
73
|
+
## Output Files
|
|
74
|
+
|
|
75
|
+
<file path="README.md" />
|
|
76
|
+
<file path="docs/{topic}.md" />
|
|
77
|
+
|
|
78
|
+
## Rules
|
|
79
|
+
|
|
80
|
+
You SHALL write documentation for end users, not internal developers.
|
|
81
|
+
You SHALL keep README.md concise and link to /docs for details.
|
|
82
|
+
You SHALL derive documentation content from architecture and design specs.
|
|
83
|
+
You SHALL NOT duplicate specification content; summarize and reference.
|
|
84
|
+
You SHALL ensure code examples are accurate and runnable.
|
|
85
|
+
You SHALL use consistent terminology matching the glossary in specs.
|
|
86
|
+
You SHALL organize /docs by topic, not by component.
|
|
87
|
+
You SHALL include practical examples for each feature documented.
|
|
88
|
+
You SHOULD update documentation when related specifications change.
|
|
89
|
+
You SHOULD include troubleshooting sections for common issues.
|
|
90
|
+
You SHALL clarify open points with user.
|
|
91
|
+
You MAY use todos and tools as needed.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: awa-examples
|
|
3
|
+
description: Create or update usage examples for a feature. Use this when asked to provide detailed code examples, CLI demonstrations, or configuration samples.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Create or Update Usage Examples
|
|
7
|
+
|
|
8
|
+
## Bootstrap
|
|
9
|
+
|
|
10
|
+
<tool name="read_file">
|
|
11
|
+
<read path=".awa/.agent/awa.core.md" required="true" error="on not found" />
|
|
12
|
+
<read path=".awa/rules/*.md" required="true" />
|
|
13
|
+
<read path=".awa/specs/ARCHITECTURE.md" required="if exists" />
|
|
14
|
+
<read path=".awa/.agent/schemas/EXAMPLE.schema.yaml" required="true" error="on not found" />
|
|
15
|
+
</tool>
|
|
16
|
+
|
|
17
|
+
## User Input
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
${input}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
24
|
+
|
|
25
|
+
## Inputs
|
|
26
|
+
|
|
27
|
+
<file type="architecture" path=".awa/specs/ARCHITECTURE.md" />
|
|
28
|
+
<file type="feat" path=".awa/specs/FEAT-{CODE}-{feature-name}.md" required="if relevant" />
|
|
29
|
+
<file type="requirements" path=".awa/specs/REQ-{CODE}-{feature-name}.md" required="if relevant" />
|
|
30
|
+
<file type="design" path=".awa/specs/DESIGN-{CODE}-{feature-name}.md" required="if relevant" />
|
|
31
|
+
<file type="examples" path=".awa/specs/EXAMPLE-{CODE}-{feature-name}-{nnn}.md" required="if updating" />
|
|
32
|
+
<file type="code" required="if relevant" />
|
|
33
|
+
|
|
34
|
+
## Action
|
|
35
|
+
|
|
36
|
+
Create or update concrete usage examples for a feature as specified in the instruction above, following awa conventions.
|
|
37
|
+
|
|
38
|
+
If deriving from existing code (reverse workflow), extract representative usage patterns, CLI invocations, and configuration samples.
|
|
39
|
+
|
|
40
|
+
## Outputs
|
|
41
|
+
|
|
42
|
+
<file path=".awa/specs/EXAMPLE-{CODE}-{feature-name}-{nnn}.md" />
|
|
43
|
+
|
|
44
|
+
## Rules
|
|
45
|
+
|
|
46
|
+
You SHALL provide concrete, detailed, reproducible examples (code, CLI, config).
|
|
47
|
+
You SHALL include context for each example explaining when to use it and what it demonstrates.
|
|
48
|
+
You SHALL use the same {CODE} as the corresponding FEAT/REQ for the feature.
|
|
49
|
+
You SHALL mark the document as INFORMATIVE (not normative).
|
|
50
|
+
You SHALL split into multiple files (-001, -002, ...) if a single file would exceed the line-limit.
|
|
51
|
+
You SHALL NOT use normative language (SHALL/SHOULD/MAY) — that belongs in REQ documents.
|
|
52
|
+
You SHALL NOT define acceptance criteria or traceability IDs — that belongs in REQ documents.
|
|
53
|
+
You SHALL NOT describe design decisions or implementation details — that belongs in DESIGN documents.
|
|
54
|
+
You SHALL support reverse workflow: extracting examples from existing code when requested.
|
|
55
|
+
You SHALL clarify open points with user.
|
|
56
|
+
You MAY include prerequisites, expected output, and notes for each example.
|
|
57
|
+
You MAY create examples proactively when detailed demonstrations would aid understanding.
|
|
58
|
+
You MAY use todos and tools as needed.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: awa-feature
|
|
3
|
+
description: Create or update feature context documents. Use this when asked to describe a feature, explain motivation, or provide non-normative context.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Create or Update Feature Context
|
|
7
|
+
|
|
8
|
+
## Bootstrap
|
|
9
|
+
|
|
10
|
+
<tool name="read_file">
|
|
11
|
+
<read path=".awa/.agent/awa.core.md" required="true" error="on not found" />
|
|
12
|
+
<read path=".awa/rules/*.md" required="true" />
|
|
13
|
+
<read path=".awa/specs/ARCHITECTURE.md" required="true" error="on not found" />
|
|
14
|
+
<read path=".awa/.agent/schemas/FEAT.schema.yaml" required="true" error="on not found" />
|
|
15
|
+
</tool>
|
|
16
|
+
|
|
17
|
+
## User Input
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
${input}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
24
|
+
|
|
25
|
+
## Inputs
|
|
26
|
+
|
|
27
|
+
<file type="architecture" path=".awa/specs/ARCHITECTURE.md" />
|
|
28
|
+
<file type="feat" path=".awa/specs/FEAT-{CODE}-{feature-name}.md" required="if updating" />
|
|
29
|
+
<file type="requirements" path=".awa/specs/REQ-{CODE}-{feature-name}.md" required="if relevant" />
|
|
30
|
+
<file type="code" required="if reverse workflow" />
|
|
31
|
+
|
|
32
|
+
## Action
|
|
33
|
+
|
|
34
|
+
Create or update a non-normative feature context document as specified in the instruction above, following awa conventions.
|
|
35
|
+
Consider existing specifications before making changes.
|
|
36
|
+
|
|
37
|
+
If deriving from existing code or requirements (reverse workflow), analyze the codebase and specs to extract the problem statement, conceptual model, and usage scenarios.
|
|
38
|
+
|
|
39
|
+
## Outputs
|
|
40
|
+
|
|
41
|
+
<file path=".awa/specs/FEAT-{CODE}-{feature-name}.md" />
|
|
42
|
+
|
|
43
|
+
## Rules
|
|
44
|
+
|
|
45
|
+
You SHALL run `awa spec codes` to help choose the {CODE} extending existing one if logical.
|
|
46
|
+
You SHALL describe the problem, motivation, and conceptual model for the feature.
|
|
47
|
+
You SHALL provide concrete usage scenarios that illustrate the feature in action.
|
|
48
|
+
You SHALL mark the document as INFORMATIVE (not normative).
|
|
49
|
+
You SHALL NOT use normative language (SHALL/SHOULD/MAY) — that belongs in REQ documents.
|
|
50
|
+
You SHALL NOT define acceptance criteria or traceability IDs — that belongs in REQ documents.
|
|
51
|
+
You SHALL NOT describe design decisions or implementation details — that belongs in DESIGN documents.
|
|
52
|
+
You SHALL use clear, accessible language; define jargon in a glossary if needed.
|
|
53
|
+
You SHALL support reverse workflow: deriving feature context from existing code or requirements when requested.
|
|
54
|
+
You SHALL clarify open points with user.
|
|
55
|
+
You MAY include diagrams, background, and non-normative notes as needed.
|
|
56
|
+
You MAY use todos and tools as needed.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: awa-plan
|
|
3
|
+
description: Create or update ad-hoc plan documents. Use this when asked to create plans, break down work, or organize tasks, but not when specifically asked to create tasks from requirements and design documents.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Create or Update Plan(s)
|
|
7
|
+
|
|
8
|
+
## Bootstrap
|
|
9
|
+
|
|
10
|
+
<tool name="read_file">
|
|
11
|
+
<read path=".awa/.agent/awa.core.md" required="true" error="on not found" />
|
|
12
|
+
<read path=".awa/rules/*.md" required="true" />
|
|
13
|
+
<read path=".awa/specs/ARCHITECTURE.md" required="true" error="on not found" />
|
|
14
|
+
<read path=".awa/.agent/schemas/PLAN.schema.yaml" required="true" error="on not found" />
|
|
15
|
+
</tool>
|
|
16
|
+
|
|
17
|
+
## User Input
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
${input}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
24
|
+
|
|
25
|
+
## Inputs
|
|
26
|
+
|
|
27
|
+
<file type="architecture" path=".awa/specs/ARCHITECTURE.md" />
|
|
28
|
+
<file type="feat" path=".awa/specs/FEAT-{CODE}-{feature-name}.md" required="if relevant" />
|
|
29
|
+
<file type="examples" path=".awa/specs/EXAMPLE-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
|
|
30
|
+
<file type="requirements" path=".awa/specs/REQ-{CODE}-{feature-name}.md" required="if relevant" />
|
|
31
|
+
<file type="design" path=".awa/specs/DESIGN-{CODE}-{feature-name}.md" required="if relevant" />
|
|
32
|
+
<file type="api" path=".awa/specs/API-{CODE}-{feature-name}.md" required="if relevant" />
|
|
33
|
+
<file type="code_and_tests" path="various" required="if relevant" />
|
|
34
|
+
|
|
35
|
+
## Action
|
|
36
|
+
|
|
37
|
+
Update or create the ad-hoc plan document(s) as specified in the instruction above, following awa conventions.
|
|
38
|
+
|
|
39
|
+
## Outputs
|
|
40
|
+
|
|
41
|
+
<file path=".awa/plans/PLAN-{nnn}-{plan-name}.md" />
|
|
42
|
+
|
|
43
|
+
## Rules
|
|
44
|
+
|
|
45
|
+
You SHALL create and maintain ad-hoc plans for features, improvements, refactors, or other user requests.
|
|
46
|
+
You SHALL break down work into detailed, actionable steps
|
|
47
|
+
You SHALL identify risks, dependencies, and completion criteria
|
|
48
|
+
You SHALL ensure the 3-number {nnn} used in the filename follows the previous plans within the project.
|
|
49
|
+
You SHOULD NOT write significant code in the plan documents. Code can be used to define data structures and for explanation.
|
|
50
|
+
You SHOULD consider edge cases, user experience, technical constraints, and success criteria.
|
|
51
|
+
You SHOULD suggest specific areas where the plan might need clarification or expansion.
|
|
52
|
+
You SHALL clarify open points with user.
|
|
53
|
+
You MAY use todos and tools as needed.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: awa-refactor
|
|
3
|
+
description: Refactor code or docs while preserving behavior, meaning, and traceability. Use this when asked to refactor, restructure, or improve code quality.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Refactor Code
|
|
7
|
+
|
|
8
|
+
## Bootstrap
|
|
9
|
+
|
|
10
|
+
<tool name="read_file">
|
|
11
|
+
<read path=".awa/.agent/awa.core.md" required="true" error="on not found" />
|
|
12
|
+
<read path=".awa/rules/*.md" required="true" />
|
|
13
|
+
<read path=".awa/specs/ARCHITECTURE.md" required="true" error="on not found" />
|
|
14
|
+
</tool>
|
|
15
|
+
|
|
16
|
+
## User Input
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
${input}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
23
|
+
|
|
24
|
+
## Inputs
|
|
25
|
+
|
|
26
|
+
<file type="architecture" path=".awa/specs/ARCHITECTURE.md" />
|
|
27
|
+
<file type="requirements" path=".awa/specs/REQ-{CODE}-{feature-name}.md" required="if relevant" />
|
|
28
|
+
<file type="design" path=".awa/specs/DESIGN-{CODE}-{feature-name}.md" required="if relevant" />
|
|
29
|
+
<file type="api" path=".awa/specs/API-{CODE}-{feature-name}.md" required="if relevant" />
|
|
30
|
+
<file type="tasks" path=".awa/tasks/TASK-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
|
|
31
|
+
<file type="code" required="if relevant" />
|
|
32
|
+
|
|
33
|
+
## Action
|
|
34
|
+
|
|
35
|
+
Refactor the specified cod or docs as instructed, following awa conventions.
|
|
36
|
+
|
|
37
|
+
## Outputs
|
|
38
|
+
|
|
39
|
+
- Refactored source code files with preserved markers
|
|
40
|
+
- Updated test files if structure changed
|
|
41
|
+
- Refactored documentation
|
|
42
|
+
|
|
43
|
+
## Rules
|
|
44
|
+
|
|
45
|
+
You SHALL preserve existing behavior unless explicitly asked to change it.
|
|
46
|
+
You SHALL maintain all traceability markers (@awa-component, @awa-impl, @awa-test).
|
|
47
|
+
You SHALL run `awa check` after refactoring to verify all traceability markers are preserved and still resolve correctly.
|
|
48
|
+
You SHALL ensure tests pass before and after refactoring.
|
|
49
|
+
You SHALL make incremental changes, not wholesale rewrites.
|
|
50
|
+
You SHALL NOT change public interfaces without explicit approval.
|
|
51
|
+
You SHALL update user-facing documentation when implementation changes user-facing behavior, CLI, API, or configuration.
|
|
52
|
+
You SHALL clarify scope and risks with user before major refactors.
|
|
53
|
+
You MAY use todos and tools as needed.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: awa-requirements
|
|
3
|
+
description: Create or update requirements documents. Use this when asked to create, update or modify requirements.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Create or Update Requirements
|
|
7
|
+
|
|
8
|
+
## Bootstrap
|
|
9
|
+
|
|
10
|
+
<tool name="read_file">
|
|
11
|
+
<read path=".awa/.agent/awa.core.md" required="true" error="on not found" />
|
|
12
|
+
<read path=".awa/rules/*.md" required="true" />
|
|
13
|
+
<read path=".awa/specs/ARCHITECTURE.md" required="true" error="on not found" />
|
|
14
|
+
<read path=".awa/.agent/schemas/REQ.schema.yaml" required="true" error="on not found" />
|
|
15
|
+
</tool>
|
|
16
|
+
|
|
17
|
+
## User Input
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
${input}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
24
|
+
|
|
25
|
+
## Inputs
|
|
26
|
+
|
|
27
|
+
<file type="architecture" path=".awa/specs/ARCHITECTURE.md" />
|
|
28
|
+
<file type="feat" path=".awa/specs/FEAT-{CODE}-{feature-name}.md" required="true" />
|
|
29
|
+
<file type="examples" path=".awa/specs/EXAMPLE-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
|
|
30
|
+
<file type="requirements" path=".awa/specs/REQ-{CODE}-{feature-name}.md" required="if relevant" />
|
|
31
|
+
<file type="code" required="if reverse workflow" />
|
|
32
|
+
|
|
33
|
+
## Action
|
|
34
|
+
|
|
35
|
+
Create or update the requirements document(s) as specified in the instruction above, following awa conventions.
|
|
36
|
+
Consider existing specifications before making changes.
|
|
37
|
+
|
|
38
|
+
If deriving from existing code (reverse workflow), analyze the codebase to extract implicit requirements, acceptance criteria, and behavioral expectations.
|
|
39
|
+
|
|
40
|
+
## Outputs
|
|
41
|
+
|
|
42
|
+
<file path=".awa/specs/REQ-{CODE}-{feature-name}.md" />
|
|
43
|
+
|
|
44
|
+
## Rules
|
|
45
|
+
|
|
46
|
+
You SHALL ensure the {CODE} matches the corresponding FEAT {CODE} for the same feature if one exists.
|
|
47
|
+
You SHALL run `awa spec codes` to help choose the {CODE} extending existing one if logical.
|
|
48
|
+
You SHALL read the corresponding FEAT document before writing requirements.
|
|
49
|
+
You SHALL solidify requirements with respect to architecture, feature context, and existing requirements.
|
|
50
|
+
You SHALL create set of requirements in EARS format (INCOSE-compliant) based on the feature context.
|
|
51
|
+
You SHALL identify existing requirements to update, or new requirements to create.
|
|
52
|
+
You SHALL consider edge cases, UX, technical constraints, success criteria.
|
|
53
|
+
You SHOULD focus on requirements which will later be turned into a design.
|
|
54
|
+
You SHOULD keep requirements at a manageable level of detail.
|
|
55
|
+
You SHALL ensure requirement IDs and AC IDs follow the format defined in the traceability chain (e.g. `{CODE}-{n}`, `{CODE}-{n}_AC-{m}`, `{CODE}-{n}.{p}_AC-{m}`).
|
|
56
|
+
You SHALL support reverse workflow: deriving requirements from existing code when requested.
|
|
57
|
+
You SHALL clarify open points with user.
|
|
58
|
+
You MAY use todos and tools as needed.
|