@ncoderz/awa 1.3.1 → 1.5.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/README.md +52 -209
- package/dist/index.js +1149 -49
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/templates/awa/.awa/.agent/schemas/EXAMPLES.schema.yaml +2 -2
- package/templates/awa/.awa/.agent/schemas/FEAT.schema.yaml +3 -3
- package/templates/awa/.awa/.agent/schemas/README.schema.yaml +4 -4
- package/templates/awa/_README.md +7 -7
- package/templates/awa/_partials/awa.core.md +9 -1
- package/templates/awa/_partials/awa.usage.md +34 -12
package/README.md
CHANGED
|
@@ -4,62 +4,54 @@
|
|
|
4
4
|
[](https://www.npmjs.com/package/@ncoderz/awa)
|
|
5
5
|
[](LICENSE)
|
|
6
6
|
|
|
7
|
-
`
|
|
7
|
+
`Structured, traceable AI development.`
|
|
8
8
|
|
|
9
|
-
awa is an Agent Workflow for AIs. It
|
|
9
|
+
awa is an Agent Workflow for AIs. It provides a Spec-Driven Design (SDD) workflow with full end-to-end traceability, with tools to enforced consistency and help the AI follow the connections. It is also a powerful templating tool for agent configuration files.
|
|
10
10
|
|
|
11
11
|
> awa was written by awa (AI-assisted development using its own workflows). The workflows themselves are designed and crafted by a human who uses Copilot. If something is wrong, let's fix it together.
|
|
12
12
|
|
|
13
|
+
**[Documentation](https://awa.ncoderz.com)** · **[Quick Start](https://awa.ncoderz.com/guides/quick-start/)** · **[CLI Reference](https://awa.ncoderz.com/reference/cli/)**
|
|
13
14
|
|
|
14
15
|
## The Problem
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
AI agents produce output that looks right but isn't connected. Requirements live in one place, implementation in another, tests in a third — nothing links them. The AI doesn't know when it has drifted from the original intent. You don't either, until something breaks.
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
Without structure, work drifts and nobody, including the AI, can trace what happened or why.
|
|
19
|
+
Agent configuration files diverge too: copy-pasted between projects, modified by hand, silently out of date.
|
|
21
20
|
|
|
22
21
|
## How awa Solves It
|
|
23
22
|
|
|
24
|
-
awa
|
|
23
|
+
awa provides a structured SDD workflow:
|
|
25
24
|
|
|
26
25
|
```
|
|
27
26
|
ARCHITECTURE → FEAT → REQUIREMENTS → DESIGN → TASKS → CODE & TESTS → DOCUMENTATION
|
|
28
27
|
```
|
|
29
28
|
|
|
30
|
-
Every code and test
|
|
31
|
-
|
|
32
|
-
Not only this, but awa actively checks that specs match a high quality schema, and that all requirements and acceptance criteria map to code and tests. This helps guide the AI to produce higher quality output.
|
|
33
|
-
|
|
34
|
-
## Features
|
|
29
|
+
Every code and test artifact carries an explicit traceability marker (`@awa-impl`, `@awa-test`, `@awa-component`) that links it back to its originating requirement and acceptance criterion. Any line of code traces back to why it was written. Any requirement traces forward to the tests that verify it.
|
|
35
30
|
|
|
36
|
-
|
|
31
|
+
`awa check` enforces this chain — validating spec structure via YAML schemas and ensuring every acceptance criterion maps to code and tests. `awa trace` assembles the chain into context so AI agents can navigate it rather than guess.
|
|
37
32
|
|
|
38
|
-
|
|
39
|
-
- Requirements written in [EARS format](https://en.wikipedia.org/wiki/Easy_Approach_to_Requirements_Syntax) (INCOSE) — structured, testable, unambiguous
|
|
40
|
-
- Every requirement has an ID, every line of code links back to it via `@awa-impl` and `@awa-test` markers
|
|
41
|
-
- `awa check` checks that specs match their schemas, and that all traceability markers resolve to real spec IDs. Any acceptance criteria missing tests are flagged to the AI automatically
|
|
42
|
-
- All AI orchestration documents all live in `.awa/`
|
|
33
|
+
Agent configuration files are generated from **templates** — and can be added to your project or updated consistently with a single `awa init` call.
|
|
43
34
|
|
|
44
|
-
|
|
35
|
+
## SDD & Traceability Features
|
|
45
36
|
|
|
46
|
-
|
|
37
|
+
- **Structured workflow with full traceability** - every requirement, acceptance critera and property test has an ID, every line of code links back via `@awa-component`, `@awa-impl` and `@awa-test` code markers
|
|
38
|
+
- **`awa check`** - allows AI or humans to enforces spec structure via YAML schemas, and to validate traceability markers against spec IDs
|
|
39
|
+
- **`awa trace`** - allows AI or humans to explore traceability chains and quickly assemble context from specs, code, and tests
|
|
40
|
+
- **Agent-agnostic** - Copilot, Claude, Cursor, Windsurf, and more from a single template set
|
|
47
41
|
|
|
48
|
-
|
|
42
|
+
## Template Bootstrap Features
|
|
49
43
|
|
|
50
|
-
- [Eta](https://eta.js.org/) templates with conditionals, loops, and partials
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
- `
|
|
59
|
-
- `--json` flag for machine-readable output in CI pipelines
|
|
60
|
-
- `--summary` flag for compact one-line counts output
|
|
44
|
+
- **[Eta](https://eta.js.org/) templates** with conditionals, loops, and partials for AI configuration files
|
|
45
|
+
- **Feature flags and presets** — turn content on/off per project
|
|
46
|
+
- **Template overlays** — layer customizations without forking
|
|
47
|
+
- **`awa template diff`** — shows exactly what changed before you commit; `--watch` re-diffs on template changes
|
|
48
|
+
- **`awa template test`** — verifies templates against fixtures and snapshots
|
|
49
|
+
- **`awa template features`** — discovers available feature flags and presets
|
|
50
|
+
- **Multi-target configuration** — for generating different agent setups in one command
|
|
51
|
+
- **Git or local** — template sources (GitHub, GitLab, Bitbucket, or local path)
|
|
52
|
+
- **`--json` and `--summary`** — flags for CI integration
|
|
61
53
|
|
|
62
|
-
See
|
|
54
|
+
See the **[full documentation](https://awa.ncoderz.com)** for details.
|
|
63
55
|
|
|
64
56
|
## Quick Start
|
|
65
57
|
|
|
@@ -75,197 +67,41 @@ Or use with npx:
|
|
|
75
67
|
npx @ncoderz/awa init .
|
|
76
68
|
```
|
|
77
69
|
|
|
78
|
-
###
|
|
79
|
-
|
|
80
|
-
Generate files into the current directory using the bundled default template:
|
|
70
|
+
### Initialise Project
|
|
81
71
|
|
|
82
72
|
```bash
|
|
73
|
+
# Current directory, default template
|
|
83
74
|
awa init .
|
|
84
|
-
```
|
|
85
75
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
```bash
|
|
76
|
+
# With specific features
|
|
89
77
|
awa init . --features copilot claude cursor
|
|
90
78
|
```
|
|
91
79
|
|
|
92
|
-
Generate to a specific output directory:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
awa init ./my-project
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### Preview Changes
|
|
99
80
|
|
|
100
|
-
See
|
|
81
|
+
See the **[Quick Start guide](https://awa.ncoderz.com/guides/quick-start/)** for more.
|
|
101
82
|
|
|
102
|
-
|
|
103
|
-
awa diff .
|
|
104
|
-
```
|
|
83
|
+
## Related Tools
|
|
105
84
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
```bash
|
|
109
|
-
awa diff . --watch
|
|
110
|
-
```
|
|
85
|
+
Several tools address AI-assisted development workflows. Each brings different strengths:
|
|
111
86
|
|
|
112
|
-
|
|
87
|
+
| Tool | Description | Runtime |
|
|
88
|
+
|---|---|---|
|
|
89
|
+
| **awa** | Templated agent config generation with spec-driven workflow and traceability | Node + CLI |
|
|
90
|
+
| **[Kiro](https://kiro.dev)** | IDE with built-in spec-driven development and agent hooks | Standalone IDE + CLI |
|
|
91
|
+
| **[Spec Kit](https://github.com/github/spec-kit)** | Python CLI for structured specs with broad agent support (18+) | Python 3.11+ / uv |
|
|
92
|
+
| **[BMAD Method](https://github.com/bmad-code-org/BMAD-METHOD)** | Agile workflow with role-based AI personas | Shell / Python / yq |
|
|
93
|
+
| **[AI RPI Protocol](https://github.com/MiguelAxcar/ai-rpi-protocol)** | Zero-dependency markdown rules for disciplined AI development | None (markdown only) |
|
|
113
94
|
|
|
114
|
-
|
|
115
|
-
awa init . --delete
|
|
116
|
-
```
|
|
95
|
+
### What each tool does well
|
|
117
96
|
|
|
118
|
-
|
|
97
|
+
- **Kiro** — Deep IDE integration with agent hooks that trigger on file save, giving a seamless spec-driven experience without leaving your editor
|
|
98
|
+
- **Spec Kit** — Supports 18+ agents out of the box and brings GitHub's backing; great if you work in Python and want broad compatibility
|
|
99
|
+
- **BMAD Method** — Role-based AI personas (architect, PM, developer) that mirror agile team structures, useful for larger or more formal projects
|
|
100
|
+
- **AI RPI Protocol** — Works instantly with no tooling to install; a simple, proven mental model for disciplined AI-assisted development
|
|
119
101
|
|
|
120
|
-
|
|
121
|
-
awa init . --overlay ./my-overrides
|
|
122
|
-
```
|
|
102
|
+
### Where awa fits
|
|
123
103
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
Check traceability markers and spec file structure:
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
awa check
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
### Test Templates
|
|
133
|
-
|
|
134
|
-
Verify templates produce expected output across feature combinations:
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
awa test
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
### Discover Features
|
|
141
|
-
|
|
142
|
-
List all feature flags available in a template:
|
|
143
|
-
|
|
144
|
-
```bash
|
|
145
|
-
awa features
|
|
146
|
-
awa features --json # machine-readable output
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
## The `.awa/` Directory
|
|
150
|
-
|
|
151
|
-
Each workflow stage produces artifacts in `.awa/`:
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
.awa/
|
|
155
|
-
├── specs/
|
|
156
|
-
│ ├── ARCHITECTURE.md # System overview
|
|
157
|
-
│ ├── FEAT-{CODE}-*.md # Feature context & motivation
|
|
158
|
-
│ ├── EXAMPLES-{CODE}-*-{nnn}.md # Usage examples per feature
|
|
159
|
-
│ ├── REQ-{CODE}-*.md # Requirements (EARS format)
|
|
160
|
-
│ ├── DESIGN-{CODE}-*.md # Design & components
|
|
161
|
-
│ └── API-{CODE}-*.tsp # TypeSpec API definitions
|
|
162
|
-
├── tasks/
|
|
163
|
-
│ └── TASK-{CODE}-*-{nnn}.md # Implementation steps
|
|
164
|
-
├── plans/
|
|
165
|
-
│ └── PLAN-{nnn}-*.md # Ad-hoc plans
|
|
166
|
-
├── align/
|
|
167
|
-
│ └── ALIGN-{x}-WITH-{y}-{nnn}.md # Alignment reports
|
|
168
|
-
└── rules/
|
|
169
|
-
└── *.md # Project-specific rules
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
## The Traceability Chain
|
|
173
|
-
|
|
174
|
-
Every artifact links to its origin through IDs and markers:
|
|
175
|
-
|
|
176
|
-
```
|
|
177
|
-
REQ-{CODE}-*.md
|
|
178
|
-
└── {CODE}-1: Requirement title
|
|
179
|
-
└── {CODE}-1_AC-1: Acceptance criterion
|
|
180
|
-
│
|
|
181
|
-
▼
|
|
182
|
-
DESIGN-{CODE}-*.md
|
|
183
|
-
└── {CODE}-ComponentName
|
|
184
|
-
├── IMPLEMENTS: {CODE}-1_AC-1
|
|
185
|
-
└── {CODE}_P-1: Correctness property
|
|
186
|
-
│
|
|
187
|
-
▼
|
|
188
|
-
Source code
|
|
189
|
-
└── // @awa-component: {CODE}-ComponentName
|
|
190
|
-
└── // @awa-impl: {CODE}-1_AC-1
|
|
191
|
-
│
|
|
192
|
-
▼
|
|
193
|
-
Tests
|
|
194
|
-
├── // @awa-test: {CODE}_P-1 ← verifies property
|
|
195
|
-
└── // @awa-test: {CODE}-1_AC-1 ← verifies acceptance criterion
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
Every link is explicit. Nothing is implied.
|
|
199
|
-
|
|
200
|
-
See [Workflow](docs/WORKFLOW.md) for IDs, markers, and how to read a trace.
|
|
201
|
-
|
|
202
|
-
## CI Integration
|
|
203
|
-
|
|
204
|
-
Use `--json` for structured output in CI pipelines, or `--summary` for compact build-log output:
|
|
205
|
-
|
|
206
|
-
```bash
|
|
207
|
-
# Detect template drift (exit code 1 = differences found)
|
|
208
|
-
awa diff . --json > diff-result.json
|
|
209
|
-
|
|
210
|
-
# Compact summary for build logs
|
|
211
|
-
awa diff . --summary
|
|
212
|
-
# Output: changed: 2, new: 1, matching: 10, deleted: 0
|
|
213
|
-
|
|
214
|
-
# Validate traceability
|
|
215
|
-
awa check --format json > check-result.json
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
See [CI Integration](docs/CLI.md#ci-integration) in the CLI reference for JSON output formats.
|
|
219
|
-
|
|
220
|
-
## Exit Codes
|
|
221
|
-
|
|
222
|
-
| Command | 0 | 1 | 2 |
|
|
223
|
-
|---------|---|---|---|
|
|
224
|
-
| `awa init` / `awa generate` | Success | — | Internal error |
|
|
225
|
-
| `awa diff` | All files match | Differences found | Internal error |
|
|
226
|
-
| `awa check` | All checks pass | Errors found | Internal error |
|
|
227
|
-
| `awa test` | All fixtures pass | Failures found | Internal error |
|
|
228
|
-
| `awa features` | Success | Error | — |
|
|
229
|
-
|
|
230
|
-
## Documentation
|
|
231
|
-
|
|
232
|
-
| Document | Description |
|
|
233
|
-
|----------|-------------|
|
|
234
|
-
| [Workflow](docs/WORKFLOW.md) | The awa workflow, `.awa/` structure, traceability chain, IDs and markers |
|
|
235
|
-
| [CLI Reference](docs/CLI.md) | Commands, options, configuration, presets, and how it works |
|
|
236
|
-
| [Template Engine](docs/TEMPLATE_ENGINE.md) | Template sources, Eta syntax, partials, file handling, delete lists |
|
|
237
|
-
| [Template Testing](docs/TEMPLATE_TESTING.md) | The `awa test` command, fixture format, snapshots, CI setup |
|
|
238
|
-
| [Traceability Check](docs/TRACEABILITY_CHECK.md) | The `awa check` command, checks, configuration, JSON output |
|
|
239
|
-
| [Schema Rules](docs/SCHEMA_RULES.md) | Declarative YAML rules for validating spec file structure |
|
|
240
|
-
|
|
241
|
-
## Community
|
|
242
|
-
|
|
243
|
-
- [Contributing Guide](CONTRIBUTING.md)
|
|
244
|
-
- [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
245
|
-
- [Security Policy](SECURITY.md)
|
|
246
|
-
- [Support](SUPPORT.md)
|
|
247
|
-
- [Maintainers](MAINTAINERS.md)
|
|
248
|
-
- [Funding](.github/FUNDING.yml)
|
|
249
|
-
|
|
250
|
-
## Alternatives
|
|
251
|
-
|
|
252
|
-
Several tools address parts of the AI-assisted development workflow. Here's how they compare:
|
|
253
|
-
|
|
254
|
-
| | awa | [Kiro](https://kiro.dev) | [Spec Kit](https://github.com/github/spec-kit) | [BMAD Method](https://github.com/bmad-code-org/BMAD-METHOD) | [AI RPI Protocol](https://github.com/MiguelAxcar/ai-rpi-protocol) | Manual files |
|
|
255
|
-
|---|---|---|---|---|---|---|
|
|
256
|
-
| **What it is** | CLI that generates agent config from templates | IDE with built-in spec-driven development | Python CLI for Spec-Driven Development | Agile workflow with role-based AI skills | Markdown rules for AI behavior governance | Hand-written CLAUDE.md, .cursorrules, etc. |
|
|
257
|
-
| **Structured workflow** | Architecture →</br> Features →</br> Requirements →</br> Design →</br> Tasks →</br> Code & Tests →</br> Docs | Requirements →</br> Design →</br> Tasks | Specify →</br> Plan →</br> Tasks →</br> Implement | Analysis →</br> Planning →</br> Solutioning →</br> Implementation | Research →</br> Plan →</br> Implement | Whatever you put in the file |
|
|
258
|
-
| **Workflow flexibility** | ✅ Start at any stage, skip what's not needed | ⚠️ Two variants (Req-First or Design-First), always 3 phases | ⚠️ Optional clarify/analyze steps, otherwise fixed order | ⚠️ Project levels determine required phases | ⚠️ Hard gates between phases, escape commands to bypass | ✅ No workflow to constrain you |
|
|
259
|
-
| **Traceability** | ✅ Requirement IDs →</br> design →</br> `@awa-impl` / `@awa-test` code markers</br> + `awa check` | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
260
|
-
| **Template engine** | ✅ Eta with conditionals, loops, partials | ❌ | ❌ Static templates copied on init | ❌ Static skill files | ❌ Static markdown | ❌ |
|
|
261
|
-
| **Feature flags** | ✅ Enable/disable content per project | ❌ | ❌ | ❌ | ⚠️ Lite/Full modes | ❌ |
|
|
262
|
-
| **Presets** | ✅ Named flag bundles | ❌ | ❌ | ⚠️ Complexity levels | ⚠️ Operation levels | ❌ |
|
|
263
|
-
| **AI Instructions Drift detection** | ✅ `awa diff` shows what changed vs. templates | ❌ | ❌ | ❌ | ⚠️ Manual compliance checklist | ❌ |
|
|
264
|
-
| **Re-generation** | ✅ Generates from templates on every run | ❌ Specs created per feature | ❌ One-time `specify init` | ❌ One-time install | ❌ One-time copy | ❌ One-time manual creation |
|
|
265
|
-
| **Agent hooks** | ❌ | ✅ Event-driven agent triggers on file save | ❌ | ❌ | ❌ | ❌ |
|
|
266
|
-
| **Built-in IDE** | ❌ | ✅ VS Code-compatible IDE | ❌ | ❌ | ❌ | ❌ |
|
|
267
|
-
| **Runtime** | Node + CLI | Standalone IDE + CLI | Python 3.11+ / uv | Shell / Python / yq | None (markdown only) | None |
|
|
268
|
-
| **Agent support** | Agent-agnostic (generate config for any agent) | Kiro only | 18+ agents | Codex-focused | Cursor, VS Code, Claude Code, Windsurf | One agent at a time |
|
|
104
|
+
awa focuses on two things other tools don't combine: **end-to-end traceability** (every line of code links back to a requirement via `@awa-impl` / `@awa-test` markers, validated by `awa check`) and **templateable agent configuration** (feature flags, presets, overlays, diff detection). It's agent-agnostic — one template set generates config for Copilot, Claude, Cursor, Windsurf, and more.
|
|
269
105
|
|
|
270
106
|
|
|
271
107
|
## Development
|
|
@@ -301,7 +137,14 @@ npm run build
|
|
|
301
137
|
| `npm run gen:awa:this` | Generate awa templates to current directory |
|
|
302
138
|
| `npm run diff:awa:this` | Diff awa templates against current directory |
|
|
303
139
|
|
|
140
|
+
## Community
|
|
304
141
|
|
|
142
|
+
- [Contributing Guide](CONTRIBUTING.md)
|
|
143
|
+
- [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
144
|
+
- [Security Policy](SECURITY.md)
|
|
145
|
+
- [Support](SUPPORT.md)
|
|
146
|
+
- [Maintainers](MAINTAINERS.md)
|
|
147
|
+
- [Funding](.github/FUNDING.yml)
|
|
305
148
|
|
|
306
149
|
## License
|
|
307
150
|
|