`portal-trainer generate` turns a plain-words business intake into a content repo in three phases, each held to portal's question_lint: needs.yaml (then frozen, so the generator cannot weaken the spec to pass), structure (revised against the lint's findings until green), and wording (personas answered blind, misroutes fed back; a rewrite that breaks structure is reverted). Model output is written to disk only under aggregates.yaml, site.yaml and questions/**.yaml. `portal-trainer answer` is the blind answerer alone. The LLM is an external command, prompt on stdin, text on stdout: engines/ollama.sh (local Ollama), engines/anthropic.sh (API key), engines/mailbox.sh (hand each prompt to an agent or a person). portal-portal/ is the onboarding site as a portal content repo: the front door is the intake interview, records land in `onboardings` (open -> drafted <-> revising -> live | declined), and it passes its own needs spec. runs/uhhm-2026-09-21/ollama: qwen3:8b and granite4.1:8b as blind answerers on the same eight tasks. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH
42 lines
1.5 KiB
YAML
42 lines
1.5 KiB
YAML
# The onboarding site is a portal site, so it is held to a needs spec
|
|
# like any other.
|
|
needs:
|
|
- id: onboard-business
|
|
who: someone who runs a business where requests, approvals and handovers get lost
|
|
wants: a working site for their own roles, without commissioning software
|
|
via: Describe your business and get a first draft
|
|
lands_in: onboardings
|
|
handled_by: owners
|
|
done_when: [live, declined]
|
|
max_steps: 1
|
|
# The intake is the interview: two to reach them, four about the work.
|
|
max_fields: 6
|
|
|
|
personas:
|
|
- id: contractor-owner
|
|
need: onboard-business
|
|
text: >
|
|
I run a building firm. Enquiries come by phone, text and email
|
|
and we lose track of who promised what. I want one place where
|
|
they land and my project managers pick them up.
|
|
|
|
- id: clinic-manager
|
|
need: onboard-business
|
|
text: >
|
|
We are a physiotherapy clinic with six therapists. Referrals,
|
|
cancellations and insurance approvals all go through one inbox
|
|
that only our receptionist understands. I'd like that sorted.
|
|
|
|
- id: sports-club
|
|
need: onboard-business
|
|
text: >
|
|
I volunteer for a youth football club. Parents sign kids up,
|
|
coaches need to approve them, and the treasurer chases fees.
|
|
Right now it's a spreadsheet and a group chat.
|
|
|
|
- id: sceptical-founder
|
|
need: onboard-business
|
|
text: >
|
|
I've been burned by agencies before. If I can explain my
|
|
workflow and see something real before paying anyone, I'm in.
|