Work from another session, committed as found (tests green): - `plan` reads an intake into a plan.yaml (a model decides needs, stages, forms and budgets; a person reads the result before build). - Plans gain `doors` (a first question before the forms, when a front door would carry more than five needs), `groups` with labels that a select may draw its options from (`options_from: groups`), `private` fields kept off public pages, `multiple` selects, and `max_fields` as what the intake said the person will tolerate. - `card.rs`: an alternative as the visitor meets it, in text, so the answering visitor and `rate` read the served card, not the heading. - `rate` reads followup pages from the repo and reports "what happens next" as not measured rather than zero when it cannot. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH
101 lines
2.6 KiB
YAML
101 lines
2.6 KiB
YAML
needs:
|
|
- also_moved_by:
|
|
- yard
|
|
done_when:
|
|
- returned
|
|
- cancelled
|
|
enters: /
|
|
handled_by: counter
|
|
id: hire-request
|
|
lands_in: hires
|
|
max_fields: 5
|
|
max_steps: 2
|
|
stages:
|
|
- open
|
|
- reserved
|
|
- out
|
|
- returned
|
|
- cancelled
|
|
success:
|
|
- returned
|
|
via: Need a machine for a while?
|
|
wants: the right machine, from a date, for as long as they need it
|
|
who: a private person or a firm who needs a machine for a while
|
|
- done_when:
|
|
- resolved
|
|
enters: /
|
|
handled_by: yard
|
|
id: breakdown
|
|
lands_in: breakdowns
|
|
max_fields: 3
|
|
max_steps: 2
|
|
stages:
|
|
- open
|
|
- in_hand
|
|
- resolved
|
|
success:
|
|
- resolved
|
|
via: Need a machine for a while?
|
|
wants: it running again, or swapped, today
|
|
who: someone whose hired machine has stopped working
|
|
- done_when:
|
|
- approved
|
|
- declined
|
|
enters: /
|
|
handled_by: office
|
|
id: account-request
|
|
lands_in: accounts
|
|
max_fields: 4
|
|
max_steps: 2
|
|
stages:
|
|
- open
|
|
- checked
|
|
- approved
|
|
- declined
|
|
success:
|
|
- approved
|
|
via: Frequent hire? Set up an account
|
|
wants: to send anyone to collect, and get one invoice a month
|
|
who: a firm that hires often
|
|
- done_when:
|
|
- invoiced
|
|
- written_off
|
|
enters: /yard/damage-on-return
|
|
enters_as: yard
|
|
handled_by: office
|
|
id: damage-on-return
|
|
lands_in: damage_reports
|
|
max_fields: 3
|
|
max_steps: 1
|
|
stages:
|
|
- open
|
|
- invoiced
|
|
- written_off
|
|
success:
|
|
- invoiced
|
|
via: Record damage on return
|
|
wants: it written down before the customer has left
|
|
who: someone in the yard who finds damage when a machine comes back
|
|
personas:
|
|
- id: garden-wall
|
|
need: hire-request
|
|
text: I'm building a stone wall in the garden and need a small digger for a weekend. I've never driven one.
|
|
- id: roofer-lift
|
|
need: hire-request
|
|
text: We're a roofing crew and need a scissor lift on site in Dalen from Monday for about two weeks.
|
|
- id: stuck-compactor
|
|
need: breakdown
|
|
text: The plate compactor I picked up this morning won't start. I've got a crew standing around.
|
|
- id: lift-error
|
|
need: breakdown
|
|
text: The lift you delivered keeps showing an error and stops halfway up. It's on our site at the school.
|
|
- id: landscaper-account
|
|
need: account-request
|
|
text: We're a landscaping firm hiring from you almost every month and I'm tired of paying by card each time. Can we get invoiced monthly?
|
|
- id: builder-account
|
|
need: account-request
|
|
text: Small building firm, six people. We'd like to be able to send whoever is nearest to pick things up and have it on our account.
|
|
- id: yard-window
|
|
need: damage-on-return
|
|
text: The mini digger from the Berg job came back with a smashed rear window and hydraulic oil everywhere.
|