@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 CHANGED
@@ -4,62 +4,54 @@
4
4
  [![npm version](https://img.shields.io/npm/v/@ncoderz/awa.svg)](https://www.npmjs.com/package/@ncoderz/awa)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
6
6
 
7
- `Supercharge your AI development.`
7
+ `Structured, traceable AI development.`
8
8
 
9
- awa is an Agent Workflow for AIs. It is also a CLI tool to powerfully manage agent workflow files using templates, awa's or yours.
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
- Divergence.
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
- Developing with AI agents requires process. Configuration files that define this process get copy-pasted between projects, then diverge. Requirements live in one place, implementation in another, tests in a third — nothing connects them. They diverge too.
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 generates agent configuration files from **templates**. The generated output includes a powerful spec-driven development workflow with full traceability:
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 artefect traces back to its requirement and acceptance criteria origin through explicit markers (`@awa-impl`, `@awa-test`, `@awa-component`). Any line of code traces back to the requirement that motivated it. Any requirement traces forward to the tests that verify it.
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
- ### Workflow & Traceability
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
- - Structured but flexible workflow from architecture through features, requirements, design, tasks, code, tests, and docs
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
- See [Workflow](docs/WORKFLOW.md) for the full workflow and traceability chain.
35
+ ## SDD & Traceability Features
45
36
 
46
- ### CLI & Template Engine
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
- The awa CLI can be used to update your AI guiding files such as AGENTS.md automatically from templates, making it easy to keep them up-to-date and in-sync for every project.
42
+ ## Template Bootstrap Features
49
43
 
50
- - [Eta](https://eta.js.org/) templates with conditionals, loops, and partials allow templating AI files (and other project files if you wish)
51
- - Pull templates from GitHub, GitLab, Bitbucket, or use a local path
52
- - Optional `.awa.toml` config, or just use CLI flags
53
- - Feature flags and presets to turn content on/off per project
54
- - `awa check` validates traceability markers against spec IDs and enforces spec file structure via YAML schemas
55
- - Template overlays (`--overlay`) allow layering custom files over a base template without forking it
56
- - `awa diff` shows exactly what has changed in a template before applying it to your project; `--watch` re-diffs on template changes, making template development easy
57
- - `awa test` verifies templates produce expected output across feature combinations by automatically diffing against fixture files
58
- - `awa features` discovers available feature flags and presets in a template
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 [CLI Reference](docs/CLI.md), [Template Engine](docs/TEMPLATE_ENGINE.md), [Template Testing](docs/TEMPLATE_TESTING.md), and [Schema Rules](docs/SCHEMA_RULES.md) for details.
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
- ### Generate
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
- Generate with specific features enabled:
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 what would change without writing files:
81
+ See the **[Quick Start guide](https://awa.ncoderz.com/guides/quick-start/)** for more.
101
82
 
102
- ```bash
103
- awa diff .
104
- ```
83
+ ## Related Tools
105
84
 
106
- Watch for template changes and re-diff automatically:
107
-
108
- ```bash
109
- awa diff . --watch
110
- ```
85
+ Several tools address AI-assisted development workflows. Each brings different strengths:
111
86
 
112
- Apply any template configured file deletions (disabled by default):
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
- ```bash
115
- awa init . --delete
116
- ```
95
+ ### What each tool does well
117
96
 
118
- Layer custom files over the base template with overlays:
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
- ```bash
121
- awa init . --overlay ./my-overrides
122
- ```
102
+ ### Where awa fits
123
103
 
124
- ### Validate
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