estimatelisted
Install: claude install-skill Federico-Anastasi/DYLA-ai
# /estimate — The estimate
Turns the brief into a work plan measured in **days**: epics, the tasks inside them, an
end-to-end test row per epic, and a contingency.
---
**UX: chat stays conversational.** The deliverable is never presented as a markdown table
in chat — the user reads the table in the viewer next to the chat, from `estimate.json`.
In chat you discuss it in words, referring to tasks by id **and** name (e.g. "E2.T3, the
detail view"): the id alone is unreadable, the name is what makes the sentence land. In
the other direction the user does not have to type ids: every row in the viewer has a
chat icon that sends you a ready-made `[REFERENCE]` with their question — point them at
that button when they are vague about which row they mean. When you cite a chapter of the
brief, write `[[brief:Chapter title]]`: it renders as a clickable reference that opens the
document at that point.
## PROTOCOL
1. **Read context.md** — is there a data model? Has the Q&A been done?
2. **Read the brief**
3. **If the estimate already exists:** ask "The estimate already exists. Regenerate it, or edit it?"
4. **If there is no Q&A:** run the Q&A (BLOCKING)
5. **If there is no data model:** carry on, but say so — "estimating without a validated data model, so this will be rougher"
6. **Build the estimate** (see PHASE 3)
7. **Write estimate.json straight away** with `meta.status: "draft"` (validated against `schemas/estimate.schema.json`)
8. **Present a conversational summary** of the dra