Skip to content
AI-DLC in feature scopea real run, through Ideation
Step 0 of 11
Start at the top

The same API, a bigger request, run in feature scope.

The hello-world run used /aidlc express: 10 of 33 stages and 4 gates. This page is a real run of /aidlc feature on the next request for the same priorauth-api, with AI-DLC 2.11.0 and Claude Code. It stops early, partway into 1.4 Scope Definition, when the API key ran out of credit. That still covers the first 6 stages, and they are where feature scope differs most from express: a reviewer agent, sensors, summary confirmations, learnings, and an Ideation phase that express skips entirely. Every Claude answer below is copied from the run, not written for the page.

6 of 33stages behind it when it stopped: 5 done, 1 skipped (express: 10 in all)
2gates approved, after 1 Request Changes
2reviews by the product-lead reviewer agent
26sensor checks, 6 failed and fixed before the gate
14turns, about 30 minutes
$8.54API cost for those turns

Express and feature, side by side

Express (the hello-world run)Feature (this run)
Stages10 of 33: Initialization, 2.1, 2.3, 3.5, 3.6, and three conditional Operation stagesAll 33 are planned; conditional ones skip themselves at run time (1.2 did)
Ideation (1.1–1.7)Skipped as a whole phaseRuns: intent, market research (skipped itself), feasibility, scope, team, mockups, approval
DepthMinimalStandard
Reviewer agentNoneThe product-lead reviewer rates each artifact before you decide (1.1: R-01 Major, R-02–R-05 Minor)
Sensorsoff (from scope express)on: 26 checks in Ideation alone
Summary confirmationoffon: “does this all look correct” before every set of artifacts
Learningsoffon: before each gate, which notes to keep for next time
Plan approvalon only because a command turned it onon (from scope feature)
Stops in the first 18 minutesthe whole run had 4 gates + the plan stop1.1 alone: answer mode, 2 summary confirmations, learnings, follow-up Q9, 2 reviews, Request Changes, approval
What it surfacedRequirements and assumptions for one changeA compliance ruling (no member ID by email), a 2027-calendar deadline, a new tenant TX-02, a RAID log
Read this as a record, not a recipe. Steps 3–7 show what Claude asked and what was answered, turn by turn. The answers were given on behalf of the course's cast: Kiran types, Meena Iyer approves, Ravi Menon decides product questions, and compliance rules on what may leave the system by email.
Setupsteps 1–2 · the same workspace, a different scope
1
yours, not the tool

The same workspace, a new request

Feature scope needs nothing extra in the workspace: the same team files, the same aidlc config and workspace-sync as the setup page. Two differences from the hello-world start: the code starts at v1.1.0, because the age column has shipped, and the request is Ravi's next message.

Kiran · Fri 16 Oct, 20:08
You type a new foldera new folder
mkdir C:\work\feature-workspace -Force | Out-Null; cd C:\work\feature-workspace
git clone https://github.com/varasrinivas/aidlc-java-workspace.git .
mkdir docs-in -Force | Out-Null
[IO.File]::WriteAllText("$PWD\docs-in\request.md", (@'
# Per-tenant overdue limit and a morning digest

From: Ravi Menon (Nurse Manager, Utilization Management) · Slack #prior-auth-platform · Tue 20 Oct, 08:40

> The age column works, thank you. Two things now. First, the over-5 flag is one limit for everyone, but each
> tenant has its own: Northside says 5 business days, Lakeview says 3. The flag should use the tenant's limit.
> Second, I want an email at 7 every morning listing everything that is over its limit, per tenant, so I do not
> have to open the screen to find out. Same age rule as before: weekends and the tenant's holidays do not count.

Attachments: none. Repo: priorauth-api (the API behind the reviewer screen).
'@ -replace "`r", "") + "`n")
aidlc config --harness claude
aidlc system workspace-sync
cd priorauth-api; git reset --hard v1.1.0; cd ..
scripts\verify.cmd
mkdir -p ~/work/feature-workspace && cd ~/work/feature-workspace
git clone https://github.com/varasrinivas/aidlc-java-workspace.git .
mkdir -p docs-in
cat > docs-in/request.md <<'EOF'
# Per-tenant overdue limit and a morning digest

From: Ravi Menon (Nurse Manager, Utilization Management) · Slack #prior-auth-platform · Tue 20 Oct, 08:40

> The age column works, thank you. Two things now. First, the over-5 flag is one limit for everyone, but each
> tenant has its own: Northside says 5 business days, Lakeview says 3. The flag should use the tenant's limit.
> Second, I want an email at 7 every morning listing everything that is over its limit, per tenant, so I do not
> have to open the screen to find out. Same age rule as before: weekends and the tenant's holidays do not count.

Attachments: none. Repo: priorauth-api (the API behind the reviewer screen).
EOF
aidlc config --harness claude
aidlc system workspace-sync
(cd priorauth-api && git reset --hard v1.1.0)
./scripts/verify.sh
What was run. The run copied the three team files (CLAUDE.md, repos.json, scripts/) from the course's java-workspace, which is what main of aidlc-java-workspace holds, then ran the same aidlc config, workspace-sync and git reset. The baseline verify passed on JDK 21. Pushes from the run's clone were disabled, so nothing could reach GitHub. The story is dated Tue 20 Oct; the run was done on 16 Oct, so the intent ID is 261016-….
In plain words. Nothing about feature scope lives in the workspace. You choose it when you start the run.
2
Claude Code

Start the run in feature scope

Naming the scope in the command starts the run without a scope question, as /aidlc express did. The engine then plans all 33 stages and turns on the checks express leaves off.

Kiran · 20:15
You type in claude, in the workspace
/aidlc feature Build what ./docs-in/request.md describes
In the terminal real · aidlc engine status, after the run stopped
Scope:          feature
Depth:          Standard (from scope feature)
Guard Policy:   off (from scope feature)
Sensors: on (from scope feature)
Learnings: on (from scope feature)
Summary Confirmation: on (from scope feature)
Plan Approval: on (from scope feature)
Collaborators: off (from scope feature)
SettingexpressfeatureWhat it does in the run
DepthMinimalStandardLonger artifacts: 1.1 wrote 9 questions and a stakeholder map
SensorsoffonAutomatic checks on each draft (step 8)
LearningsoffonA question before each gate: which notes to keep in the project's memory
Summary confirmationoffonClaude restates your answers and waits before writing artifacts
Plan approvalon (set by a command)on (from scope feature)The plan stop before code generation, per unit
Guard policy, collaboratorsoffoffSame in both
How this run was driven. Headless: claude -p "<reply>" --resume <session> --output-format json, one call per turn, from PowerShell, so every reply and its cost could be logged. You would just type in claude. Headless mode showed one wrinkle: once, an answer did not reach the engine, and Claude asked for it again (step 4).
Ideationsteps 3–7 · the phase express skips · a real run
3
the run · 1.1

Intent Capture: 9 questions, 2 confirmations, a learnings stop

Express never asks what the problem is or who it is for; Requirements Analysis starts from the message. In feature scope the product agent frames the intent first, and asks how you want to answer.

Kiran, Ravi, Meena · 20:15 → 20:26
Claude answers real · turn 1
I'm bringing in the product manager's view for this first step: framing what Ravi asked for and who it's for.

I've created 8 questions at `aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/intent-capture/intent-capture-questions.md`. They confirm what the request means: which of the two asks this work covers, who gets the 7 a.m. email, where the per-tenant limits come from, and what the first version leaves out.

How would you like to answer them?

1. Guide me: we go through each question here
2. I'll edit the file: you fill in the answers in the file yourself
3. Chat: we talk it through and I pull the decisions out of the conversation
4. Other

Reply with a number (or just tell me).
You reply turn 2 · Kiran, after a call with Ravi and Meena
3. Kiran here; I just went through these with Ravi (requester) and Meena Iyer (tech lead). Our answers:
Q1: A, both the per-tenant flag and the morning email.
Q2: A.
Q3: A.
Q4: C. Ravi says each tenant's limit comes from its contract, so a wrong flag is a compliance risk, and the shared limit was what he noticed.
Q5: A, B, C, D, E.
Q6: B. Meena Iyer, tech lead for #prior-auth-platform, decides scope and priority; Ravi influences as the requester.
Q7: B. One email per tenant, to that tenant's nurse manager(s); the addresses live in configuration.
Q8: A, B and C.
Claude answers real · turn 2, abridged: then the summary confirmation
Thanks, Kiran. Here is what I took from your answers:

- **Q1:** this work covers both the per-tenant over-limit flag and the 7 a.m. email of over-limit requests per tenant.
- **Q2:** nurse managers in Utilization Management get the email; reviewers benefit from a correct flag.
- **Q3:** success means the flag matches each request's tenant limit, and an email arrives by 07:00 every morning listing every over-limit request, grouped by tenant, with none missing.
- **Q4:** the trigger is both operational (Ravi noticed the shared limit) and contractual (each tenant's limit comes from its contract, so a wrong flag is a compliance risk).
- **Q5:** the stakeholders are Ravi Menon, the reviewers, the priorauth-api team, whoever owns each tenant's limit and holiday list, and compliance / quality.
- **Q6:** Meena Iyer, tech lead for #prior-auth-platform, decides scope and priority; Ravi influences as the requester.
- **Q7:** one email per tenant, to that tenant's nurse manager(s); the addresses live in configuration.
- **Q8:** this first version leaves out a screen for changing limits, channels other than email, and "about to go over" warnings.

…
You reply turn 3 · looks correct
1
Claude answers real · turn 3: artifacts written, then the learnings stop
# :bulb: Intent Capture & Framing Complete

- **Problem:** the over-limit flag uses one shared limit, but each tenant's limit comes from its contract. Managers also have to open the screen to find overdue work.
- **This work covers:** a flag that uses each tenant's own limit, plus one 7 a.m. email per tenant to that tenant's nurse manager(s), listing every request over its limit.
- **Success:** for every pending request the flag matches its tenant's limit, and the email arrives by 07:00 with every over-limit request and none missing.
- **Decides:** Meena Iyer (tech lead). **Influences:** Ravi Menon (requester).
- **Not in this first version:** a screen for editing limits, channels other than email, and "about to go over" warnings.

| Artifact | Contents |
|----------|----------|
| intent-statement.md | Problem, target customer, 3 success metrics, trigger, scope boundary (2 in, 3 out) |
| stakeholder-map.md | 6 stakeholder groups, decision-maker and influencer, the morning-email requirement |
| intent-capture-questions.md | 8 questions, all answered, summary confirmed |

Before the approval, two quick questions about notes for future runs.

**Which notes from this stage should be kept for next time?** (pick any)
1. Keep none of these
2. "Kiran answered for the group (Ravi Menon and Meena Iyer)" → `project.md ## Corrections` (can be widened to the team)

**Anything to add for next time?**
1. Nothing to add
2. Add a note

Reply with each question's number and your choice (for example `Q1: 1, Q2: 1`), or just tell me.
You reply turn 4 · keep the note, add nothing
Q1: 2, Q2: 1
aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/intent-capture/intent-statement.mdthe approved version
aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/intent-capture/stakeholder-map.md
aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/intent-capture/intent-capture-questions.md9 questions, answered
The kept note. It went to the project's memory, aidlc/spaces/default/memory/project.md under Corrections, and every later stage reads it: When one person answers the stage questions on behalf of a group (for example Kiran for Ravi Menon and Meena Iyer), record the answers as the group's confirmed answers, and list that person as a stakeholder only when their role is stated. (learned 2026-10-16)
4
the run · 1.1 gate

The reviewer, Request Changes, and a second review

Before the gate, a separate reviewer agent (the product lead) checks the artifacts against your answers. It caught Claude stating an outcome nobody had chosen. Express has no reviewer; you would have had to spot that yourself.

Meena · 20:26 → 20:37
Claude answers real · turn 4: the first review and the gate
I saved the note to the project rules (`project.md`, under Corrections).

Intent Capture & Framing is ready for your review: what it produced is in aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/intent-capture/.

**Stage:** Intent Capture & Framing
**Review outcome:** Concerns remain for your decision.
**Why now:** First review completed.

**Review artifact:** `aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/intent-capture/intent-statement.md`

| ID | Severity | Where | Status |
|---|---|---|---|
| R-01 | Major | intent-statement.md > Target Customer, first... | New |
| R-02 | Minor | intent-statement.md > Success Metrics (Email... | New |
| R-03 | Minor | stakeholder-map.md > Communication Requiremen... | New |
| R-04 | Minor | intent-statement.md > Initial Scope Signal (b... | New |

> R-01 Finding: The bullet says nurse managers "no longer need to open the screen to learn what is overdue". That outcome is Q3 option B, and the human did not select it (Q3 answer is A). Q2 only confirms the current pain. The artifact states an unselected outcome as a goal and cites [Q2].

> R-01 Where: intent-statement.md > Target Customer, first bullet

> R-01 Required action: Reword to the confirmed Q2 pain, for example that nurse managers currently have to open the screen to find overdue work. Or ask a follow-up to confirm the outcome as a success criterion.

> R-02 Finding: The "over-limit" definition is never stated. The request says weekends and each tenant's holidays do not count, but no confirmed [Q] answer carries that rule, so "none missing" is not testable from this artifact. The "07:00" has no time zone. The case of a tenant with no over-limit requests (empty email, or no email) is not addressed.

> R-02 Where: intent-statement.md > Success Metrics (Email timeliness, Email completeness)

> R-02 Required action: Add an Assumptions & Open Questions entry tagged [assumption], or a follow-up Q, covering the age rule, the time zone of 07:00, and the empty-digest behaviour. Requirements analysis can then settle each one.

> R-03 Finding: Q7 chose one email per tenant to that tenant's nurse managers. The requester Ravi Menon (Utilization Management, a cross-tenant role) is not stated as a recipient. His interest row says he "wants the morning email".

> R-03 Where: stakeholder-map.md > Communication Requirements and Decision-Makers

> R-03 Required action: Confirm whether Ravi also receives the emails, or whether he is covered only as a tenant nurse manager. Record the answer as a follow-up Q or an open question.

> R-04 Finding: The boundary entries "limits are set in configuration" and, in the stakeholder map, "addresses live in configuration" are implementation-level detail in an ideation artifact.

> R-04 Where: intent-statement.md > Initial Scope Signal (boundary tables)

> R-04 Required action: Restate them as needs (limits and recipients are maintained without a screen). Leave the mechanism to later stages.

**Decision options:**
- **Approve** - continue with the open findings accepted.
- **Request Changes** - return to the listed artifacts so the required actions can be addressed.

My take: R-01 is a real wording slip on my part. The fix is a one-line rewording back to the pain you confirmed. R-02 and R-03 are details Requirements Analysis will settle anyway: the time zone for 07:00, whether weekends get an email, the empty-email case, and whether Ravi also gets every tenant's email.

**Review:** `aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/intent-capture/`

If you approve, the next step is Market Research.

1. Approve: continue to Market Research
2. Request Changes: tell me what to revise

Reply with a number (or just tell me).
You reply turn 5 · Meena
2. Request Changes, from Meena Iyer (tech lead):
R-01: reword to the confirmed pain (managers have to open the screen to find overdue work).
R-02: add them as open questions for Requirements Analysis (age rule, time zone of 07:00, empty-digest behaviour).
R-03: Ravi gets a copy of every tenant's email; record that.
R-04: restate as needs, as the reviewer suggests.
Claude answers real · turn 5: R-03 becomes a follow-up question
I've recorded your change request and added Ravi's copy of every email as a follow-up question in the questions file.

Your answer didn't reach AI-DLC. Please give it once more. If it happens again, type /aidlc --doctor.

**Q9. Does Ravi Menon also receive the morning emails?**
1. Yes: Ravi gets a copy of every tenant's email
2. No: only each tenant's own nurse manager(s) receive it
3. Not yet defined
4. Other

Reply with a number (or just tell me).
You reply turn 6
1
Claude answers real · turn 7, after confirming the new summary (turn 6)
I've revised both documents with Meena's four changes:

- **R-01:** the Target Customer line now states the confirmed pain: today managers have to open the screen to find overdue work.
- **R-02:** the age rule, the time zone of 07:00, and the empty-email case are listed as open questions for Requirements Analysis.
- **R-03:** Ravi now receives a copy of every tenant's email, in both the intent statement and the stakeholder map.
- **R-04:** "in configuration" is restated as a need: limits and recipients are maintained by the team without a screen.

One last check before the re-review. Those three open questions are marked as unconfirmed in the documents. Meena asked to leave them for Requirements Analysis, which is option 1.

1. Accept assumptions: keep them as open questions for Requirements Analysis
2. Convert to follow-up questions: answer them now, in this stage
3. Other

Reply with a number (or just tell me).
You reply turn 8
1
Claude answers real · turn 8, abridged: the re-review
| ID | Severity | Where | Status |
|---|---|---|---|
| R-01 | Major | intent-statement.md > Target Customer, first... | Resolved (reviewer) |
| R-02 | Minor | intent-statement.md > Success Metrics (Email... | Resolved (reviewer) |
| R-03 | Minor | stakeholder-map.md > Communication Requiremen... | Resolved (reviewer) |
| R-04 | Minor | intent-statement.md > Initial Scope Signal (b... | Resolved (reviewer) |
| R-05 | Minor | intent-statement.md > Initial Scope Signal, "... | New |

> R-05 Finding: The row says limits and recipients are "maintained by the team without one". The Q7 and Q8 answers only say the addresses and limits "live in configuration". They do not say who maintains them or that it is "the team".

> R-05 Where: intent-statement.md > Initial Scope Signal, "Not in this first version" row 1

> R-05 Required action: Say only that no screen is provided and changes are made outside the product. Leave who maintains them to Requirements Analysis as an open question.

…
You reply turn 9 · Meena approves
1. Approved by Meena Iyer. R-05 accepted as open: who maintains limits and recipients goes to Requirements Analysis.
real · the gate in the audit log: R-05 recorded as an accepted risk
## Gate Approved
**Timestamp**: 2026-10-16T15:04:12Z
**Event**: GATE_APPROVED
**Stage**: intent-capture
**User Input**: Approve
**Review Finding Dispositions**: {"version":1,"dispositions":[{"artifact":"aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/intent-capture/intent-statement.md","id":"R-05","fingerprint":"sha256:8c0aac6717a3ac6e04168e41a0fe86ffad470ce0518ae0fffe5792af26e601eb","status":"Accepted risk","decided_at_severity":"Minor","reviewed_record":{"path":".aidlc-engine/reviews/intent-capture/stage/907b2b9a917ac3ae/1.json","digest":"sha256:57d1b1fd1dfa41ba46e75df3c7417ca6ab68f270c61e6f2f9dd9c441d845f73b"}}]}
aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/intent-capture/reviews/review-01.mditeration 1
aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/intent-capture/reviews/review-02.mditeration 2
In plain words. Request Changes is the normal way to steer. Your feedback is recorded, the artifact is rewritten, the reviewer checks it again, and the same gate comes back. What you leave open is recorded with your decision, as R-05 was.
5
the engine

1.2 Market Research skipped itself

Feature scope plans all 33 stages, but many are conditional. This one checks whether the work has a market to research. No question, no gate: the engine records the reason and moves on. The next gate offers it back.

automatic · 20:35
real · the audit log
## Stage Skip
**Timestamp**: 2026-10-16T15:05:28Z
**Event**: STAGE_SKIPPED
**Stage**: market-research
**Reason**: Internal enhancement to the priorauth-api reviewer screen and an internal morning email for nurse managers; no external market positioning, and no build-vs-buy question was raised in Intent Capture. The stage condition says to skip internal tools.
**Skip Kind**: conditional-runtime
Claude answers real · the 1.3 gate, turn 12: the skipped stage can be added back
If you approve, the next step is Scope Definition.

1. Approve: continue to Scope Definition
2. Request Changes: tell me what to revise
3. Add Market Research: run the stage I skipped

Reply with a number (or just tell me).
6
the run · 1.3

Feasibility: the code, compliance and a 2027 deadline

The feasibility stage reads the code before asking anything. It found that the API cannot send mail or run timed jobs, that only one tenant has a holiday calendar, and that the email would carry patient data out of the system. None of this would surface in express until code review, if at all.

Kiran, Meena, compliance · 20:37 → 20:43
Claude answers real · turn 9: right after the 1.1 approval
Answering the way you chose earlier: Chat. Say if you'd rather be guided through them here or edit the file.

The code turned up a few things that affect feasibility:
- The API can't send email or run timed jobs yet.
- Only one tenant has a holiday calendar (`TX-01`), and only for 2026.
- The email will carry health-plan request data out of the system.

The 8 questions are in `aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/feasibility/feasibility-questions.md`. Answer in whatever form suits you, as you did last time:

- **Q1. What may the email contain?** A: request ID, tenant, service, received date and age, with no member ID. B: A plus the member ID. C: only a count per tenant and a link to the screen. D: not yet defined, compliance decides.
- **Q2. How can the API send email?** A: an organisation mail relay it may use. B: another team's notification service. C: nothing exists yet. D: not known.
- **Q3. Where does the 7 a.m. list come from?** A: the same live source as the screen, read at send time. B: the nightly export, as of last night. C: not known.
- **Q4. How many tenants today?** A: two, Northside and Lakeview. B: more (please list them, with IDs if you have them). C: not known.
- **Q5. Holiday calendars.** A missing calendar counts holidays as working days, which can wrongly flag a request. A: tenant owners supply 2026 and 2027 calendars for every tenant before go-live. B: accept today's behaviour as a known risk. C: not known.
- **Q6. How does the API run in production?** A: one always-on instance. B: several instances behind a load balancer. C: a platform with its own job scheduler. D: not known.
- **Q7. Timeline.** A: no fixed date. B: a fixed date. C: a freeze or competing priority is coming. D: not known.
- **Q8. A new email library.** A: the framework's standard email library is fine if the plan names it. B: Meena approves first. C: no new libraries, use an internal service. D: not yet defined.

When you're ready to proceed, say **done** and I'll summarize our decisions.
You reply turn 10 · after checking with Meena and compliance
Kiran, after checking with Meena and with compliance:
Q1: A. Compliance says no member ID in email; request ID, tenant, service, received date and age only.
Q2: A. The organisation's SMTP relay; the API may use it (host and credentials come from configuration).
Q3: B. The same nightly export the API already reads, as of last night.
Q4: B. Two tenants: Northside is TX-01 (the one in the data today) and Lakeview is TX-02 (new; it needs its data and limit added).
Q5: A. Tenant owners supply 2026 and 2027 calendars for both tenants before go-live.
Q6: A. One always-on instance.
Q7: A. No fixed date.
Q8: A. The framework's standard mail starter is fine if the plan names it.
done
Claude answers real · turn 11, after confirming the summary
# :test_tube: Feasibility & Constraints Complete

- **Verdict:** feasible, with low-to-moderate risk. Every capability has a confirmed route: the organisation's mail relay, one always-on instance, and the standard mail library. The real risks are data being ready and correct.
- **Biggest risk:** holiday calendars for 2027 must be in place by 1 January 2027, about ten weeks away. Without them, holidays count as working days and requests are flagged wrongly.
- **Other risks:** a stale nightly export, a missed email if the instance is down at 07:00, silent send failures, and Ravi seeing every tenant's requests in his copies (to confirm with compliance).
- **Dependencies:** Lakeview's (`TX-02`) data and limit, both tenants' 2026 and 2027 calendars, how the export is refreshed, the relay settings, and the recipients' addresses.

| Artifact | Contents |
|----------|----------|
| feasibility-assessment.md | Verdict, 6 capabilities rated, risk rating by area |
| constraint-register.md | 3 compliance, 6 technical, 4 organisational, 3 scope constraints |
| raid-log.md | 6 risks, 3 assumptions, 2 issues, 5 dependencies |
| feasibility-questions.md | 8 questions, all answered, summary confirmed |

Two quick questions about notes before the approval:

**Which notes from this stage should be kept for next time?** (pick any)
1. Keep none of these
2. "The specialists were off for this work; compliance input came from the human compliance team" → `project.md ## Corrections`

**Anything to add for next time?**
1. Nothing to add
2. Add a note

Reply with each question's number and your choice (for example `Q1: 1, Q2: 1`), or just tell me.
You reply turn 12
Q1: 1, Q2: 1
You reply turn 13 · Meena approves 1.3
1. Approved by Meena Iyer. Ravi will confirm the two limits (A-02) against the contracts before Requirements Analysis.
aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/feasibility/feasibility-assessment.md
aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/feasibility/raid-log.mdrisks, assumptions, issues, dependencies
aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/feasibility/constraint-register.md
aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/feasibility/feasibility-questions.md
Northside and Lakeview. The data in priorauth-api has one tenant, TX-01. The answers made Northside TX-01 and Lakeview a new tenant, TX-02, whose requests, limit and calendar this work must add. Both limits (5 and 3) are recorded as assumption A-02 until Ravi checks them against the contracts.
7
the run · 1.4

Scope Definition: where the run stopped

The scope stage asked only four questions; everything already decided upstream is listed at the top and not asked again. The next turn, the answers below, failed: the API key had run out of credit. The record stops here, consistent: aidlc engine status reads it, and /aidlc in a new session would continue from these questions.

Kiran · 20:43
Claude answers real · turn 13: right after the 1.3 approval
Answering the way you chose earlier: Chat. Say if you'd rather be guided through them here or edit the file.

Most of the scope is already settled by the intent and feasibility answers, so I have only 4 questions, all about how to slice and protect the first release. They're in `aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/scope-definition/scope-definition-questions.md`:

- **Q1. How should the two capabilities ship?**
  - A: together, in one release.
  - B: the per-tenant flag first, then the email. The flag fixes a contractual risk on the screen today.
  - C: the email first.
  - D: decide at delivery planning.
- **Q2. Is getting Lakeview (`TX-02`) set up part of this work?**
  - A: partly. This work adds its limit, calendar and recipients; its request data comes through the export from the data owners.
  - B: fully, including its request data.
  - C: no. This work only has to behave correctly once Lakeview's data and settings exist.
  - D: not yet defined.
- **Q3. Which safeguards are must-haves for the first release?** Pick any:
  - A: the email says which day's data it was built from.
  - B: a failed send is logged and visible.
  - C: a missed 07:00 send goes out late after a restart.
  - D: the API refuses to start when a tenant has no limit or no recipients.
  - E: none beyond the core.
- **Q4. Is any one capability tied to a deadline?**
  - A: no.
  - B: the flag must be live before Lakeview goes live.
  - C: everything before 1 January 2027, when the calendars change year.
  - D: not known.

When you're ready to proceed, say **done** and I'll summarize our decisions.
You reply turn 14 · not recorded
Kiran, continuing the AI-DLC workflow. My answers to the open Scope Definition questions (Chat mode), agreed with Meena:
Q1: B. The per-tenant flag first, then the email.
Q2: A.
Q3: A and B.
Q4: B. The flag must be live before Lakeview goes live.
done
Claude Code answers real · turn 14
Credit balance is too low
aidlc/spaces/default/intents/261016-tenant-overdue-digest/ideation/scope-definition/scope-definition-questions.mdwritten, not yet answered
aidlc/spaces/default/intents/261016-tenant-overdue-digest/aidlc-state.mdthe engine's state file
The recordsteps 8–10 · what was written, what it cost, what comes next
8
the record

What the audit log recorded

Everything above is in one audit log under the intent, written by AI-DLC's hooks, not by Claude's prose: each question, each answer, each sensor, each review, each gate. These are its event counts, read from the file.

the engine
Sensors26 checks ran on drafts as they were written. All 6 failures were the claim-sources sensor on the 1.1 drafts, for example “intent-statement.md ## Initial Scope Signal: claim block has no source tag”. Each was fixed before the gate. This is why every line in the artifacts ends in a source tag such as [Q1].
GuardsThe engine refused 3 steps Claude tried to take and told it what to do instead. Those are the 3 ERROR_LOGGED events, listed below the table. None reached a file.
People13 human turns, 6 questions answered, 3 summaries confirmed, 2 gates approved and 1 rejected, 1 rule learned. Each event carries the reply's text.
EventCount
ARTIFACT_UPDATED35
SENSOR_FIRED26
SENSOR_PASSED20
SESSION_ENDED14
HUMAN_TURN13
DECISION_RECORDED12
SESSION_RESUMED12
ARTIFACT_CREATED11
STAGE_STARTED7
QUESTION_ANSWERED6
SENSOR_FAILED6
STAGE_COMPLETED5
ERROR_LOGGED3
REVIEW_REQUESTED3
STAGE_AWAITING_APPROVAL3
SUBAGENT_COMPLETED3
SUMMARY_CONFIRMATION_RECORDED3
GATE_APPROVED2
PHASE_STARTED2
REVIEW_COMPLETED2
GATE_REJECTED1
GUARDRAIL_LOADED1
HEALTH_CHECKED1
PHASE_COMPLETED1
PHASE_VERIFIED1
RULE_LEARNED1
SESSION_STARTED1
STAGE_REVISING1
STAGE_SKIPPED1
WORKFLOW_STARTED1
WORKSPACE_INITIALISED1
WORKSPACE_SCAFFOLDED1
WORKSPACE_SCANNED1
real · the three ERROR_LOGGED messages
· Refusing to reject "intent-capture": Request Changes requires nonblank revision feedback in --feedback (or --reason through aidlc-orchestrate.ts report). Ask "What should change?", end the turn, and pass their answer.
· Cannot record this answer because no new human reply has arrived for the question. Wait for the human to type an answer, then try again. If the person already replied, that reply was not recorded for this question. Tell them exactly this, with nothing about why: "Your answer didn't reach AI-DLC. Please give it once more. If it happens again, type /aidlc --doctor." Never offer to turn a check off for them.
· Cannot start review iteration 2 for "intent-capture" because the next iteration is 1. Retry with --iteration 1.
aidlc/spaces/default/intents/261016-tenant-overdue-digest/audit/varalaptop-aba87d66420c.mdone log per machine (2.11)
9
the log

Every turn: time, tool calls and cost

One row per reply typed; times are local (UTC+5:30), model turns are Claude's steps inside that reply. The cost is each turn's own, from Claude Code's JSON output. A resumed session reports its running total, so each row is the difference from the row before.

measured
TurnStartTookModel turnsCostEnded at
0120:153:2035$1.141.1 questions written · how to answer?
0220:191:1012$0.271.1 summary confirmation
0320:212:5317$1.011.1 artifacts · learnings stop
0420:241:506$0.241.1 review 1 · gate
0520:261:057$0.36Request Changes → follow-up Q9
0620:270:434$0.171.1 summary confirmation (with Q9)
0720:281:2710$0.38artifacts revised · keep open questions?
0820:303:1212$1.001.1 review 2 · gate
0920:333:1239$1.401.1 approved · 1.2 skipped · 1.3 questions
1020:371:1412$0.391.3 summary confirmation
1120:392:0713$0.811.3 artifacts · learnings stop
1220:410:333$0.171.3 gate
1320:421:4421$0.801.3 approved · 1.4 questions
1420:440:4717$0.40failed: credit balance too low
$8.54 for 6 stages and about 30 minutes. A first attempt at turn 1 (another $1.48) was discarded and the workspace reset. Turn 14 went to a fresh session, the way to keep long runs cheap: AI-DLC's state is on disk, so any session can continue. The long turns are the ones that start a stage (1, 9, 13): Claude reads the code, the upstream artifacts and the stage rules before writing questions.
10
expected · not run

What would come next, and how to continue

Not run, so labelled expected: the stage list is the engine's plan for this intent; what each stage would do is from the stage definitions. To continue the real run, type /aidlc in Claude Code in the workspace; it resumes at the 1.4 questions.

expected
StagesExpected for this request
1.4 → 1.7Scope: the flag ships first, then the email (the answers drafted for turn 14). Team formation and rough mockups skip themselves: one developer, no new screen. 1.7 hands off the initiative.
2.1, 2.2Reverse engineering scans priorauth-api (no codekb in this workspace yet); practices discovery reads the team's CLAUDE.md: verify script, one unit = one branch = one PR, no new pom dependency without the plan.
2.3, 2.4Requirements settle the open questions: age rule, time zone of 07:00, empty-email morning, who maintains limits. User stories for the reviewer, the nurse manager and Ravi.
2.6 → 2.9Domain design: where per-tenant limits and recipients live, how the job is scheduled, the mail starter. Units, likely three: per-tenant limit, Lakeview TX-02 data, morning digest. Contract design for the email. Bolt plan and the verification command.
3.xPer unit: functional design, NFRs (by 07:00, failed sends logged), plan approval, code, scripts/verify, a checkpoint. Three branches and three PRs under the team's rule: step 11.
4.xConditional. A scheduled email job is the first thing in the course with something to observe, so 4.4 Observability and 4.5 runbooks may run.
You type in claude, in the same workspace
/aidlc
Construction, expectedstep 11 · one unit from plan to pull request, three times
11
expected · yours and the tool's

Each unit: plan, branch, checkpoint, pull request

AI-DLC has no pull-request stage in any scope. The PR comes from the team's CLAUDE.md (one unit = one branch = one PR), as PR #58 did in the express run. What feature scope adds is units: express had none, so it had one branch and one PR. Here each unit ends at its own checkpoint, so the branch-to-PR loop below runs three times. Not run: the engine's steps and the checkpoint question are from AI-DLC 2.11's Construction protocol, the git and gh lines are the express run's step 14 applied to one unit.

expected
What happensWhose stepWhere it is recorded
1Plan approval. Claude writes the unit's code-generation plan, naming the branch and any new pom dependency (the team's rule), and stops: Approve Plan.the engine stops; Meena answersconstruction/u1-tenant-limit/code-generation/code-generation-plan.md, the audit log
2Branch. git -C priorauth-api switch -c overdue/u1-tenant-limit main, the name from the plan.Claude, because CLAUDE.md says sothe code repo
3Code and tests, then scripts/verify, never an ad hoc mvn.Claudecode-summary.md, traceability.json for the unit
4Verification command, first unit only. “Use this command to verify each completed Unit?” with scripts\verify.cmd (or ./scripts/verify.sh). Approved once, reused for every unit.the engine asks; Kiran answersthe intent's state: Construction Verification Command
5Unit checkpoint. The engine runs that command itself and keeps the proof, then asks: “Verified with scripts\verify.cmd (exit 0). Approve this completed u1-tenant-limit?”the engine; Meena answersa CHECKPOINT_VERIFICATION_RECORDED receipt, then the approval
6Commit. The code on the unit branch; the record on the workspace's main (“commit it after every gate”). Claude Code asks before each git commit.Claude, under the team's ruleboth repos' history
7Push and open the PR, with the unit's code summary as the description (below).KiranGitHub
8Review and squash-merge. AI-DLC's own default in memory/org.md is trunk-based with squash-merge, so each unit lands on main as one commit.MeenaGitHub; main
You type in Claude Code, two ! lines, once per unit
! git -C priorauth-api push -u origin overdue/u1-tenant-limit
! gh pr create --repo acme-health/priorauth-api --base main --head overdue/u1-tenant-limit --title "Per-tenant over-limit flag (U1, intent 261016-tenant-overdue-digest)" --body-file aidlc/spaces/default/intents/261016-tenant-overdue-digest/construction/u1-tenant-limit/code-generation/code-summary.md
UnitBranchIn the PRStarts from
U1 per-tenant limitoverdue/u1-tenant-limitLimits per tenant in configuration (Northside 5); the flag reads its tenant's limit instead of priorauth.aging.threshold-daysmain at v1.1.0
U2 Lakeview dataoverdue/u2-lakeview-tx02Tenant TX-02: its requests, its holiday file, limit 3main; it does not need U1's code
U3 morning digestoverdue/u3-morning-digestThe 07:00 job, recipients per tenant plus Ravi's copy, no member ID in the email (the 1.3 compliance ruling). Adds a mail starter to pom.xml, so the plan must say somain after PRs 1 and 2 merge: it needs both
Merge before the next unit, or stack. In feature scope the engine runs units one at a time (unit-major, serial) and starts the next unit when the previous checkpoint is approved, not when its PR merges. U2 can branch from main regardless. U3 needs both: its plan approval is the natural place to wait, so answer it once PRs 1 and 2 are on main. Stacking U3 on an unmerged branch works too, but short-lived branches merged in order are what org.md asks for.
Fix the branch pattern first. The team's CLAUDE.md says request-age/<slug>, written for the last request. Claude follows it as written, so change it (here, to overdue/<slug>) and commit that before Construction starts.
When the engine makes branches itself. Only with Construction Execution: swarm, which builds independent units in parallel: each gets a git worktree on a bolt-<id8>_<slug> branch, and the engine merges the passing ones back into the base branch locally, with no PR. A team that reviews every change by PR keeps the default, serial.
After the last unit. Build and Test runs once across all three units' work, with every PR merged on main. Then Operation: 4.4 Observability may run this time, because a scheduled email job has something to watch.
In plain words. Three courses instead of one dish. The tool tastes each course and the chef signs it off, but carrying it to the table is the house's job: the menu never mentions the waiter, the house rules do.

What is real here, and what is not

Real: the run, on Fri 16 Oct 2026, AI-DLC 2.11.0 and Claude Code 2.1.301 on Windows: every Claude answer (copied from the JSON output of each turn), every file under the intent, the audit log and its counts, the learned rule, aidlc engine status, and each turn's time and cost. The files are in the repo under aidlc-hello-world-java/feature-run/, and this page is built from them. Chosen for the story: the answers, given on behalf of the course's fictional cast, and the request itself. Not run: everything after the 1.4 questions; steps 10 and 11 are labelled expected, and acme-health on GitHub is the story's. The run stopped because the API key ran out of credit, not because of AI-DLC.

Sources: AI-DLC docs on phases and stages, scopes, depth and test strategy and interaction modes.