Starting a greenfield project with ARDD¶
Use this guide when you're starting from scratch — no code yet, just an idea.
The short version: talk through your project with Claude until you've made the
key decisions, then run /ardd-init to capture them.
Quickstart¶
If you have nothing installed yet, one command does everything below through Step 2:
curl -fsSL https://raw.githubusercontent.com/moui72/artifact-driven-dev/release/new.sh \
| sh -s -- my-project
It creates and git inits my-project/, installs ARDD into it via
install.sh, and offers to open Claude Code on /ardd-init — which, on
a cold start, conducts the Step 1 design conversation as an interview (its
greenfield interview) and then writes your artifacts. Pick the guide back up at
Step 3.
Pass --kickoff to skip the question and launch, or --no-kickoff to
install and stop.
The rest of this guide is the same path done by hand, which is worth reading either way — the built-in interview is a convenience, not a different workflow.
Prerequisites¶
If you skipped the quickstart: install ARDD into your new project directory (all the routes, channels, and flags are in install.md):
cd /path/to/your/project
curl -fsSL https://raw.githubusercontent.com/moui72/artifact-driven-dev/release/new.sh | sh -s -- --existing
Then open Claude Code in your project.
Step 1: Have the design conversation¶
Before running any skill, talk through your project with Claude. This is where
the real work happens. (/ardd-init conducts exactly this conversation
as an interview, if you'd rather be asked than lead.) Cover:
- What the system does — one or two sentences; what problem it solves
- Who uses it — role, technical level, how often
- Data — what entities exist, where they come from, how they relate
- External integrations — APIs, third-party services, EHR systems, etc.
- Storage — SQL vs NoSQL, hosted vs embedded, why
- Tech stack — language, framework, any constraints
- Principles — what you won't compromise on (latency, privacy, simplicity)
You don't need to resolve everything. Unresolved decisions become [OPEN: ...]
items in the artifacts. The goal is to get the known decisions out of your head
and into the conversation so /ardd-init has something to work with.
Step 2: Initialize your artifacts¶
/ardd-init
Claude reads the conversation and writes initial versions of the standard
artifacts to .project/artifacts/:
constitution.md— your principles and non-negotiablesdatamodel.md— entities, fields, relationships, normalization rulesinfrastructure.md— storage, sync strategy, external integrationsapi.md— HTTP routes or RPC surface (if applicable)ui.md— views, components, interaction patterns (if applicable)
Each artifact gets status: draft if there are open questions, status: stable
if it's complete. Expect most to start as draft.
Step 3: Refine each artifact¶
Read through each generated artifact. For anything unclear or incomplete:
/ardd-refine datamodel
/ardd-refine infrastructure add a note about the CarePoint sync window
/ardd-refine constitution
/ardd-refine reads the current artifact, applies your guidance, asks up to
three clarifying questions for unresolved items, and writes it back. Repeat
until each artifact reflects your actual decisions.
Tips for greenfield:
- Start with
constitution.md— it sets principles that constrain everything else, so catching violations early is cheaper than fixing them after planning. - Resolve data model decisions before infrastructure ones — the storage and sync strategy should follow the schema, not the other way around.
- It's fine to leave
[OPEN: ...]items in place for decisions you genuinely can't make yet./ardd-statuswill surface them and tell you which ones block planning.
Step 4: Check consistency¶
/ardd-status
This reads all artifacts and reports:
- Conflicts — artifact A says one thing, artifact B says another
- Gaps — artifact A implies something artifact B never defines
- Violations — decisions that break a constitution principle
- Draft blockers — artifacts still at
status: draft
Fix issues with /ardd-refine until /ardd-status reports clean and all
artifacts are stable.
Step 5: Research open questions¶
For technical decisions you haven't made yet — library choices, API behaviour, algorithmic approaches:
/ardd-research sqlite full-text search options
/ardd-research rate limiting strategy for external EHR API
Research outputs land in .project/plans/research-<topic>-<date>-<hex>.md —
one-off documents nothing reads back automatically. Fold standing
decisions into the relevant artifact with /ardd-refine so planning
sees them; log new backlog-worthy scope with /ardd-backlog.
Step 6: Plan, task, implement¶
Once artifacts are stable:
/ardd-plan
Claude drafts the phased plan, saves it as status: draft, and pauses at an
approve / revise / stop checkpoint. Approve it and /ardd-plan continues
in the same run to produce .project/tasks/tasks-<slug>-<hex>.md — an ordered
checklist you can review and adjust before execution. (To task an
already-written plan without re-drafting it, run /ardd-plan --from <plan>.)
Then:
/ardd-implement
Claude asks which tasks file to work on, then executes tasks sequentially: loads the relevant artifacts for each task, writes and runs tests per whatever paradigm the constitution declares (TDD, test-after, or none), implements to pass them, marks the task complete, and commits. It surfaces blockers rather than working around them.
After initial implementation¶
You're now in the recurring delivery loop — logging features, capturing feedback, planning batches. See core-loop.md.
Step 7: Resume if interrupted¶
If /ardd-implement gets interrupted, or you pick the project up in a new
session:
/ardd-implement --reconcile <tasks-file>
Reconcile mode compares the codebase to the tasks file, marks completed work, notes partial
work, and appends gaps as new tasks. Then run /ardd-implement again to
continue.
Visualizing your artifacts¶
At any point, generate Mermaid diagrams into README.md:
/ardd-diagram datamodel
/ardd-diagram infrastructure
/ardd-diagram ui
GitHub renders Mermaid code fences natively — no extra tooling needed. Full details (render targets, hints, staleness): diagrams.md.
What a clean greenfield run looks like¶
Session 1: /ardd-init (step 2 interviews you, or lead the design yourself) → /ardd-refine × 3
Session 2: /ardd-status → /ardd-refine (fixes) → /ardd-status (clean)
Session 3: /ardd-plan (checkpoint → tasks) → /ardd-implement
Session N: /ardd-implement (reconcile, then resume)
Each session can stand alone. /ardd-status is your re-entry point after
any gap — it tells you exactly where things stand and what to do next.