Appendix B. AgentClinic Domain Map
AgentClinic is a learning project used to demonstrate the SDD cycle. It is a small satirical application about a "clinic" for software agents.
The domain is not just for the joke. It provides enough entities to demonstrate routes, databases, phases, validations, and MVP extension, while remaining simple.
Entities
| Entity | Meaning | Example |
|---|---|---|
| Agent | software assistant or bot | "SpecWriter", "BugFixer" |
| Ailment | recurring problem of an agent | "hallucinates API", "refactors without asking" |
| Therapy | way to help an agent | "strict validation.md", "short session after /clear" |
| Appointment | user request | name, message, selected ailment |
| Feedback | feedback about the clinic | name, message, date |
Minimum Routes
By the end of the tutorial, the project may have these routes:
| Route | Meaning |
|---|---|
/ | home page |
/agents | list of agents |
/agents/:id | agent card and related ailments |
/ailments | list of ailments |
/therapies | list of therapies |
/appointments | appointment form |
/feedback | feedback form |
| /dashboard | simple admin panel |
Not all routes are needed in the first phase. In SDD, the important thing is not to build everything at once, but to sequentially add verifiable fragments.
Possible SQLite Tables
agents
id
name
description
ailments
id
title
description
therapies
id
title
description
agent_ailments
agent_id
ailment_id
appointments
id
name
message
ailment_id
created_at
feedback
id
name
message
created_at
This is not a mandatory schema. It serves as a reference for specifications and verification facts.
How the Domain Breaks Down by Phases
| Phase | Deliverable | Minimum Facts |
|---|---|---|
| Hello Hono | application responds on / | GET / returns 200 |
| Agents and Ailments | list of agents and agent card | has related list of ailments |
| Therapies | therapy pages | routes return 200 |
| Appointment | form and saving of request | invalid form is rejected |
| Feedback | feedback form | latest feedback is visible after saving |
| Admin Panel | entity counters | counters match the database |
What Is Not Included in the Learning Domain
To keep the project educational, do not add without a separate specification:
- real medical terminology;
- real personal data;
- payment scenarios;
- authorization with roles;
- external email sending;
- complex charts;
- integrations with real services.
If you want to add such a feature, make it a separate phase and start with requirements.md, plan.md, and validation.md.
Domain Vocabulary for Specifications
Use the same words in all chapters and specifications:
- "agent", not a mix of "bot", "assistant", "model";
- "ailment", not "problem" in one file and "symptom" in another;
- "therapy", not "solution" where it refers to the domain entity;
- "appointment", not "request" without explanation;
- "feedback", not "feedback" in Russian text.
Leave technical names of routes, tables, and files in English if they are already used in code.