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
2.2 KiB
The whole contractor, tiered behind three doors, worded and scored
plans/contractor-full.yaml as restructured on 2026-09-22: the six
public needs behind your-building (survey, build, warranty claim)
and work-with-us (subcontractor, job), with the neighbour's
complaint straight on the front door. Thirteen needs, six roles,
thirty pages. Built with nemotron-3.5-lightning:30b-a3b writing the
words, all pages worded, verifier green by construction (the earlier
dry build of the same plan, before doors, is in
../contractor-full-2026-09-21/). Visitor: qwen3:8b, one task per
call. Twenty held-out personas, twenty-two tasks.
| Visitor could read | Routed right |
|---|---|
| Headings and descriptions | 18 of 22 |
| Headings only | 15 of 22 |
- One page, two headings that mean the same thing. Behind
work-with-usnemotron wrote "Apply to work with us" for the subcontractor form and "Find a job with us" for the job form. All four personas crossed over on headings alone: both firms chose "Find a job", both jobseekers chose "Apply to work with us". Two of the four still crossed with descriptions. This is the clearest case of the copy rule in the whole set: two alternatives separable only by a distinction the business makes (a firm on a contract, a person on the payroll) and the visitor does not. The heading has to say "firm" and "carpenter", not "apply" and "job". - "Your building project" does not cover a problem. On headings alone, the housing board with damp and the customer with a leaking bathroom both chose "Neighbour complaint" over "Your building project": neither has a project, both have a complaint about a building. The door's description rescues them; the heading fails.
- The electrical firm chose the building door both times, from "Your building project" reading as the general door.
- A warranty claim and a building problem are one thing to the customer with cracked render, and the page offers both.
The two doors did their job: nobody was lost on the front door for lack of a door. What went wrong is the wording on the pages behind them, and the plan's own split of warranty from survey, which the customer does not make.
rate.txt is the page-by-page rate; see rate.json.