MAWA is an AI-native operating workflow for building Nuxt 4 applications through governed discovery, architecture, specification, implementation, and validation stages.
It is not framework-agnostic. Nuxt 4 is the core runtime assumption.
Entry point: any AI agent (Claude, Codex, Cursor, …) should read AGENTS.md first. It is the tool-neutral boot and orchestration guide. CLAUDE.md only points there.
MAWA remains adapter-based for:
- UI libraries;
- design tools;
- design-to-implementation handoff rules.
Default stack:
- Nuxt 4
- pnpm
- Pinia
- TypeScript strict
- DareDash UI adapter
- Pencil design adapter
- interactive mode
Pre-configured baseline modules (installed and wired into nuxt.config.ts in every project):
@nuxt/eslint+eslint(flat config viaeslint.config.mjs)@vueuse/nuxt@pinia/nuxt
MAWA is in public beta. The stage flow is validated end-to-end and the core is internally consistent, but expect rough edges and breaking changes between betas.
Known limitations (read before adopting):
- Adapters are not all real yet. Only DareDash (UI) and Pencil (design) are implemented. Nuxt UI, Ant Design Vue, PrimeVue, Penpot, Figma, and Google Stitch are planned placeholders, not production-ready.
- The default UI stack is itself pre-1.0.
@pisandelli/daredashships as a beta package; its component API andllms.txtmay change. - No runtime enforcement. Stage chaining, the
statemachine, and the per-stage Definition-of-Done gates are followed by the agent readingAGENTS.md— they are not enforced by a runtime/hook. A weaker model may still drift. - The full design path is unproven. The optional
05adesign handoff (with a live design-tool MCP such as Pencil) has not been exercised end-to-end; the skip path has.
What is validated: the boot → 00–07 flow, state resume, stage-ID resolution, the
DoD gates, the source-URL adapter docs, and a generated module that type-checks and
unit-tests clean against real Nuxt 4 + @pisandelli/daredash.
MAWA starts from a Raw Briefing.
The Raw Briefing is the seed artifact that generates the rest of the project documentation.
inputs/raw-briefing.md
The Raw Briefing may be incomplete, informal, subjective, or messy. MAWA turns it into a structured Project Briefing before Discovery begins.
Raw Briefing
↓
Project Briefing
↓
Discovery Spec
↓
Domain Map
↓
Module Specs
↓
Design Handoff (optional)
↓
Implementation
↓
Review
Stage protocols:
00-project-init.md
01-project-briefing-prompt.md
02-environment-setup-prompt.md
03-discovery-prompt.md
04-domain-architecture-prompt.md
05-module-spec-prompt.md
05a-design-handoff-prompt.md
06-implementation-prompt.md
06a-implementation-from-approved-layout-prompt.md
07-review-validation-prompt.md
These files are stage protocols, not manual copy/paste steps.
In normal use, MAWA may proceed from one stage to the next after human approval, depending on interaction_mode.
inputs/
raw-briefing.md
specs/
briefing/
project-briefing.md
discovery/
discovery.spec.md
domain/
domain-map.md
modules/
[module-name].spec.md
layouts/
[module-name].approved-layout.md
reviews/
[module-name].review.md
mawa/
├── README.md
├── AGENTS.md
├── CLAUDE.md
├── inputs/
├── prompts/
├── governance/
├── workflow/
├── adapters/
│ ├── ui/
│ └── design/
├── dna/
│ ├── nuxt4/
│ └── nuxt4-daredash/
├── resources/
├── quickstart/
└── specs/
The Nuxt application is kept separate from the workflow files. Its directory is set in
.mawa-config.md as paths.app_root (default ./web, asked during Stage 00). All setup
and implementation happen inside it; MAWA's workflow files and specs/ stay at the root.
Use . to build the app at the repo root. Avoid ./app — it collides with Nuxt 4's
app/ srcDir.
MAWA never installs or modifies setup silently or beyond the fixed baseline. Two tiers
(full detail in workflow/setup-policy.md):
- Fixed baseline — auto-applied, always reported. In
idemode MAWA installs and configures the baseline (Nuxt scaffold,@pinia/nuxt,@nuxt/eslint+eslint,@vueuse/nuxt,pugwhen configured, and their config files) without asking, then clearly reports the commands run, packages added, and files changed. - Everything else — confirm-first. UI adapter packages, the optional test toolchain, design tooling, and any choice-bearing dependency: MAWA provides commands and snippets, the human confirms, and MAWA applies them automatically only on explicit request.
Default:
- DareDash
Planned placeholders (not production-ready):
- Nuxt UI
- Ant Vue
- PrimeVue
DareDash uses external operational docs loaded from the configured source URL when a stage requires UI-specific decisions. The docs are session-scoped; if they are not available in the current session, MAWA must load them again or ask the human to provide them in web mode. A committed local copy is not required.
Source URL:
https://raw.githubusercontent.com/pisandelli/daredash/main/llms.txt
Default:
- Pencil
Planned placeholders (not production-ready):
- Penpot
- Figma
- Google Stitch
Design MCP/tooling is configured outside MAWA.
MAWA assumes the selected design tool is already available in the execution environment.
Default:
interactive
Interactive mode asks before advancing stages and before implementation. It does not require the human to copy/paste the next prompt.
Continuous mode proceeds when safe assumptions exist and stops only for real blockers.
quickstart/ is secondary. Use it only for prototypes, small MVPs, or experiments where the full MAWA stage flow is unnecessary. The main workflow is the numbered protocol flow in prompts/.
DNA files are canonical implementation references.
dna/nuxt4/
Base Nuxt 4 architecture examples.
dna/nuxt4-daredash/
Nuxt 4 + DareDash UI examples.
MAWA moves AI-assisted development from:
Generate code from a prompt.
to:
Execute a governed Nuxt 4 engineering workflow.