Case Study, Part 2 of 5: Ideation Phase
Where we are: Building synth-data, a synthetic-data CLI. Setup is done, we kicked off with feature scope, and Initialization just finished. Now the workflow enters Ideation — the phase that turns a brief into a confirmed, scoped intent before any design or code happens.
In plain English: Before any code gets written, the AI first makes sure it actually understands the idea — who it's for, what "done" looks like, whether it's even worth building, and what's deliberately left out. Think of this phase as the conversation you'd have with a teammate before opening your code editor, just written down and agreed on instead of assumed.
Every prompt we actually type is highlighted like this.
Stage 1.1: Intent Capture (product agent)
The status line at the bottom of the terminal updates:
[AIDLC] IDEATION > Intent Capture [▓░░░░░░░░░] 1/7 -- product
The product agent asks how we want to work:
▸ Choose interaction mode:
(1) Guide Me — agent asks structured questions
(2) Edit File — write directly to the artifact
(3) Chat — freeform discussion
You: 1
It asks its questions one at a time; we answer inline:
Claude Code: Who is this for — you personally, or a wider audience? You: Just me and my team at first, but I'd like to publish it publicly if it turns out useful.
Claude Code: What counts as "done" for the MVP? You: All four output formats work, and a schema with 5-10 columns generates 10,000 rows in under a few seconds.
Claude Code writes intent-statement.md and intent-capture-questions.md itself, then opens the gate:
# Intent Capture & Framing Complete
| Artifact | Contents |
|---|---|
| intent-statement.md | Problem statement, target users, success criteria |
| intent-capture-questions.md | 2 questions, all answered |
▸ How would you like to proceed?
(1) Approve — Continue to Market Research
(2) Request Changes
You: Approve
Behind the scenes: Each answer fires
QUESTION_ANSWERED; writing the two files firesARTIFACT_CREATEDviaaidlc-write-audit-log. The same write triggersaidlc-run-sensors, which checks the new files against whatever sensors this stage declares — aSENSOR_PASSED(orSENSOR_FAILED, which would block the gate) follows. Approving firesGATE_APPROVED, andaidlc-state.md's checkbox for this stage flips[?] → [x].
Stage 1.2: Market Research (product agent)
Claude Code looks at what already exists in this space — Faker as a library, Mockaroo as a hosted tool, SDV for statistically-realistic synthetic data — and writes market-research.md:
Claude Code: The gap: Faker generates realistic values but has no schema/constraint layer or multi-format export; Mockaroo does both but is a hosted web tool, not a CLI you can script into a test pipeline.
synth-datasits in that gap — a scriptable CLI with a constraint-aware schema and native multi-format export. Approve
Stage 1.3: Feasibility & Constraints (product agent)
Claude Code: Feasible — every dependency (Faker, pandas, pyarrow, click) is mature and MIT/BSD licensed. One real constraint: Parquet output requires pyarrow, a heavier dependency than the others — worth making it an optional extra later, not blocking the MVP now. Written to
constraints.md. Approve
Stage 1.4: Scope Definition (product agent)
Claude Code:
scope-document.mdconfirms the MVP boundary from vision.md: schema definition, generation, four export formats. Explicitly out: a web UI, cross-table referential integrity, streaming generation. Approve
Stage 1.5: Team Formation (product agent)
For a solo project this stage still runs, just briefly:
Claude Code: Single owner, no team to form — recorded in
team-formation.mdas "solo, no delegation needed." If contributors join later, this file is where their areas of ownership would get defined. Approve
Stage 1.6: Rough Mockups (design agent)
Claude Code: A mockup of the CLI's actual usage, since there's no visual UI to sketch:
text $ synth-data generate --schema schema.yaml --rows 10000 --format csv --out data.csv Generating 10,000 rows... done (0.8s) Wrote data.csvWritten torough-mockups.md. Approve
Stage 1.7: Approval & Handoff (product agent)
The last Ideation stage summarizes everything above into one handoff artifact:
# Ideation Complete — Handoff to Inception
| Artifact | Decision |
|---|---|
| intent-statement.md | Personal + eventual public tool |
| market-research.md | Fills a real gap vs. Faker/Mockaroo |
| constraints.md | Parquet needs pyarrow — flag as optional extra |
| scope-document.md | Schema, generation, 4 formats — no UI, no streaming |
| rough-mockups.md | CLI usage sketch |
▸ [Approve — Continue to Inception / Request Changes]
You: Approve
Behind the scenes:
aidlc-state.mdnow showsProgress: 7/33 overall | 7/7 IDEATION stages complete. Every artifact this phase produced is committed underaidlc/spaces/default/intents/260909-synthetic-data-generator/ideation/— nothing here is thrown away once we move on; Inception's Requirements Analysis readsintent-statement.mdandscope-document.mddirectly rather than re-asking us the same questions.
‹ Back to: Part 1 — Setup & Kickoff Continue to: Part 3 — Inception Phase