Phase 2 · Show: their business, as stories on the diagram
The only creative phase. Produce actors, stories (with Given/When/Then and a path), entities with
natural keys, and a master-data decision per entity. Start from the spec's reference; correct it
with the customer. Back: dodil://erp/build.
Steps
- Actors: who uses it, what each may do and see. Becomes the role catalogue.
- Stories, three kinds, ids prefixed with the module (
HR-01):- person (someone acts through a screen), system (on a schedule or event), integration (crosses into a module that owns it). For each reference story: keep, change or drop.
- Ask what is missing: "is there anything that should happen on its own, or when something else happens?"
- Propose, don't interrogate. Read out each
customer_variesdefault with itsstandard:ortypical:and ask them to correct it. Record "they keep the standard" as a decision too. - Give every story a path through the process view (the choices at each gateway). Walk it with them on the diagram. A branch no story walks is a question: ask it.
- Entities: meaning, natural key (DataK3 has no sequences), relationships, owner.
- Master data: shared (one module is the sole writer) or module-owned (prefixed table).
- Rules, and where each is enforced (a guarded write path, almost never a constraint).
- Write it into
ERP_<MODULE>.md(Actors, Stories, Workflows, Scenarios, Entities, Master data), and say back each part in one line as you go. Workflows in the table format ofmodules/template.md: it is what the diagram is drawn from. - Draw it and show it IN YOUR MESSAGE, with or without a brick (erp-platform v0.8.2):
brick-hr:
uvx --from git+https://git.dodil.io/dodil/erp-platform.git@v0.8.2 erp-compose process --module hr --playbook <playbook> --calls config/hr.calls.yaml; no brick:… erp-compose bpmn --from ERP_<MODULE>.md --out processes/<module>.bpmn. The signed artifact is the BPMN: render it and paste its step names in order, with who does each (grep -o 'Task_[a-z_]*" name="[^"]*"' processes/<file>.bpmn). Never prose in your own words, never "open it in bpmn.io" (lab, 2026-10-18: both were taken for showing, and were not).
Example (a story and its scenario)
- id: HR-01
kind: person
story: As the office manager, I want a freelancer's company details collected before day one.
given: a freelancer engaged through their own company, starting Monday
when: I record the hire
then: they get an intake link; the IR35 status is recorded before the contract is drafted
path: { process: hr.onboarding, choices: { Gateway_worker_type: freelancer_company, Gateway_ir35: recorded } }
For HR, brick-hr's scenario_paths lists each catalogue scenario as the step keys it walks
(Task_<key> on the diagram) and says whether it still walks on the customer's playbook. For a
story of your own, walk it by hand on the diagram and list the element ids in order.
Done when
- Every story has Given/When/Then and a path; every gateway outcome is walked or asked about.
- Every entity has a natural key and a master-data decision.
-
Every
customer_variesquestion was asked or defaulted, and the answer recorded.
Next: dodil://erp/phase/fit