Skip to content

Workflow Overview

awa defines a structured development workflow. Each stage produces artifacts that trace forward and backward through the chain.

ARCHITECTURE → FEAT → REQUIREMENTS → DESIGN → TASKS → CODE & TESTS → DOCUMENTATION
StageArtifactPurpose
ArchitectureARCHITECTURE.mdSystem overview, components, constraints
FeatureFEAT-{CODE}-*.mdContext, motivation, scenarios for a feature
RequirementsREQ-{CODE}-*.mdWhat must be built, in EARS format (INCOSE)
DesignDESIGN-{CODE}-*.mdHow it gets built — components, interfaces, properties
TasksTASK-{CODE}-*-{nnn}.mdStep-by-step implementation work items
Code & TestsSource filesImplementation with trace markers
DocumentationREADME.md, docs/User-facing docs

All spec artifacts live in .awa/:

.awa/
├── specs/
│ ├── ARCHITECTURE.md # System overview
│ ├── FEAT-{CODE}-*.md # Feature context & motivation
│ ├── REQ-{CODE}-*.md # Requirements (EARS format)
│ ├── DESIGN-{CODE}-*.md # Design & components
│ ├── API-{CODE}-*.tsp # TypeSpec API definitions
│ └── EXAMPLES-{CODE}-*-{nnn}.md # Usage examples per feature
├── tasks/
│ └── TASK-{CODE}-*-{nnn}.md # Implementation steps
├── plans/
│ └── PLAN-{nnn}-*.md # Ad-hoc plans
├── align/
│ └── ALIGN-{x}-WITH-{y}-{nnn}.md # Alignment reports
└── rules/
└── *.md # Project-specific rules

The standard direction is top-down (architecture → code). But the workflow supports any direction:

  • Top-down — start from architecture, work toward implementation
  • Bottom-up — start from code, extract requirements retroactively
  • Lateral — documentation updates, refactors, or ad-hoc plans

You can start at any stage and skip what isn’t needed. awa is flexible.

Here are some example prompts you can use with your AI agent at each stage.

Let's brainstorm how to add a PKI flow for the bobcat server.
Update the architecture for the changes we just discussed,
then follow the standard awa workflow to update the specs.
Create REQ and DESIGN for bulk export jobs with retry support.
Keep scope MVP and generate implementation tasks.
Implement the tasks in tasks 006.

Extracting Specs from Existing Code (Bottom-Up)

Section titled “Extracting Specs from Existing Code (Bottom-Up)”
Analyze src/core/differ.ts and tests, then derive FEAT and REQ
docs for the existing diff behavior.
Let's create a plan to implement a --delete flag in the CLI.
Let's implement plan 004.
Update README and docs to match current CLI options
(--delete, --list-unknown) without changing code.