Reading: Appendix B. AgentClinic Domain Map

Lesson 1 of 5 in module «Appendix B. AgentClinic Domain Map»
You are viewing the lesson without signing in. Sign in to save progress and take tests.

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

EntityMeaningExample
Agentsoftware assistant or bot"SpecWriter", "BugFixer"
Ailmentrecurring problem of an agent"hallucinates API", "refactors without asking"
Therapyway to help an agent"strict validation.md", "short session after /clear"
Appointmentuser requestname, message, selected ailment
Feedbackfeedback about the clinicname, message, date

Minimum Routes

By the end of the tutorial, the project may have these routes:

RouteMeaning
/home page
/agentslist of agents
/agents/:idagent card and related ailments
/ailmentslist of ailments
/therapieslist of therapies
/appointmentsappointment form
/feedbackfeedback 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

PhaseDeliverableMinimum Facts
Hello Honoapplication responds on /GET / returns 200
Agents and Ailmentslist of agents and agent cardhas related list of ailments
Therapiestherapy pagesroutes return 200
Appointmentform and saving of requestinvalid form is rejected
Feedbackfeedback formlatest feedback is visible after saving
Admin Panelentity counterscounters 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.

My notes
0 / 10000

Notes are saved in this browser. They will not appear on another device.

Course menu

Course

Specification-Driven Development with Qwen Code CLI
Progress 0 / 135