Every prompt and reply is now kept under <out>/llm/. An empty reply is a retry, not a fatal error; a spec that never parses stops the run before the structure phase; --visitor-llm lets a different model play the visitor. The file-block parser finds markers anywhere in a line, accepts a short END and lets a new FILE close an open one, after a reply glued two files together with `<<<END>></think>`. The reference gains a language section: copy in the intake's language, identifiers in ASCII. runs/rehab-entreprenor-no-2026-09-21: nemotron-3.5-lightning:30b-a3b did not produce a loadable site. Written up with the reason and the way forward: structure from needs.yaml deterministically, words from the model. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH
9.5 KiB
<<>> needs:
-
id: henvendelse-til-byggr who: styreleder i borettslag eller sameie, eller privat huseier wants: at noen skal se på et problem med bygget enters: / lands_in: henvendelser handled_by: prosjektledere done_when:
- vunnet
- tapt max_steps: 1 max_fields: 4 success: [vunnet] stages: [open, avtale, tilbud, vunnet, tapt] personas:
- id: styreleder-hus need: henvendelse-til-byggr text: > Vi har et problem med huset vårt og trenger at dere kommer og ser på det.
- id: huseier-vedtatt need: henvendelse-til-byggr text: > Jeg vet nøyaktig hva jeg vil bygge eller endre, og trenger tegninger, søknad til kommunen og en pris.
- id: håndverksfirma need: henvendelse-til-byggr text: > Vi lurer på om Dere trenger folk på arbeidsplassen deres.
-
id: underentreprenor-anmeldelse who: underentreprenør (tømrer, murer, lærling) wants: å melde seg på listen over underentreprenører enters: / lands_in: underentreprenører handled_by: prosjektledere done_when: [godkjent, avslått] max_steps: 1 max_fields: 3 success: [godkjent] stages: [open, sjekk, godkjent, avslått] personas:
- id: tømrer-anmeldelse need: underentreprenor-anmeldelse text: > Jeg er tømrer og vil jobbe med Dere.
- id: murer-anmeldelse need: underentreprenor-anmeldelse text: > Jeg er murer og har papirene i orden.
- id: lærling-uklar need: underentreprenor-anmeldelse text: > Jeg er lærling og har ikke fått sertifisert alt enda.
-
id: jobbansøker who: person som søker jobb som tømrer, murer eller lærling wants: å bli ansatt som håndverker enters: / lands_in: jobbansøkninger handled_by: prosjektledere done_when: [ansatt, takk-nei] max_steps: 2 max_fields: 5 success: [ansatt] stages: [open, samtale, ansatt, takk-nei] personas:
- id: jobb-søker-energisk need: jobbansøker text: > Jeg er en energisk håndverker som lurer på om Dere har plasser ledige.
- id: jobb-søker-rolig need: jobbansøker text: > Jeg jobber allerede men vil skifte arbeidsplass til en bedre atmosfære.
-
id: avvik-og-ulykke who: HMS-ansvarlig på byggeplassen, eller ansatt/underentreprenør som melder fra wants: å rapportere avvik eller uønsket hendelse enters: / lands_in: avvik handled_by: hms-ansvarlig done_when: [lukket] max_steps: 1 max_fields: 3 success: [lukket] stages: [open, utbedret, lukket] personas:
- id: hms-ansvarlig-rapport need: avvik-og-ulykke text: > Det skjedde en hendelse på byggeplassen som krever oppmærksomhet.
- id: tømrer-ukjent need: avvik-og-ulykke text: > Noe gikk galt i jobbingen i dag, men det er løst nå.
- id: maskinoperatør-rolig need: avvik-og-ulykke text: > Vi klarte å løse problemet selv uten at noe brøt.
aggregates:
- bucket: henvendelser initial: open states: open: { event: received } avtale: { event: avtale } tilbud: { event: tilbud } vunnet: { event: vunnet } tapt: { event: tapt } transitions: open: [avtale, tapt] avtale: [tilbud, tapt] tilbud: [vunnet, tapt]
- bucket: underentreprenører initial: open states: open: { event: meldt } sjekk: { event: sjekket } godkjent: { event: godkjent } avslått: { event: avslått } transitions: open: [sjekk, avslått] sjekk: [godkjent, avslått]
- bucket: jobbansøkninger initial: open states: open: { event: mottatt } samtale: { event: samtale } ansatt: { event: ansett } takk-nei: { event: takk_nei } transitions: open: [samtale, takk-nei] samtale: [ansatt, takk-nei]
- bucket: avvik initial: open states: open: { event: meldt } utbedret: { event: utbedret } lukket: { event: lukket } transitions: open: [utbedret, lukket] utbedret: [lukket]
desk:
-
group: prosjektledere bucket: henvendelser transitions: open: [avtale, tapt] avtale: [tilbud, tapt] tilbud: [vunnet, tapt]
-
group: prosjektledere bucket: underentreprenører transitions: open: [sjekk, avslått] sjekk: [godkjent, avslått]
-
group: prosjektledere bucket: jobbansøkninger transitions: open: [samtale, takk-nei] samtale: [ansatt, takk-nei]
-
group: hms-ansvarlig bucket: avvik transitions: open: [utbedret, lukket] utbedret: [lukket] <<><<>> needs:
-
id: henvendelse-til-byggr who: styreleder i borettslag eller sameie, eller privat huseier wants: at noen skal se på et problem med bygget enters: / lands_in: henvendelser handled_by: prosjektledere done_when:
- vunnet
- tapt max_steps: 1 max_fields: 4 success: [vunnet] stages: [open, avtale, tilbud, vunnet, tapt] personas:
- id: styreleder-hus need: henvendelse-til-byggr text: > Vi har et problem med huset vårt og trenger at dere kommer og ser på det.
- id: huseier-vedtatt need: henvendelse-til-byggr text: > Jeg vet nøyaktig hva jeg vil bygge eller endre, og trenger tegninger, søknad til kommunen og en pris.
- id: håndverksfirma need: henvendelse-til-byggr text: > Vi lurer på om Dere trenger folk på arbeidsplassen deres.
-
id: underentreprenor-anmeldelse who: underentreprenør (tømrer, murer, lærling) wants: å melde seg på listen over underentreprenører enters: / lands_in: underentreprenører handled_by: prosjektledere done_when: [godkjent, avslått] max_steps: 1 max_fields: 3 success: [godkjent] stages: [open, sjekk, godkjent, avslått] personas:
- id: tømrer-anmeldelse need: underentreprenor-anmeldelse text: > Jeg er tømrer og vil jobbe med Dere.
- id: murer-anmeldelse need: underentreprenor-anmeldelse text: > Jeg er murer og har papirene i orden.
- id: lærling-uklar need: underentreprenor-anmeldelse text: > Jeg er lærling og har ikke fått sertifisert alt enda.
-
id: jobbansøker who: person som søker jobb som tømrer, murer eller lærling wants: å bli ansatt som håndverker enters: / lands_in: jobbansøkninger handled_by: prosjektledere done_when: [ansatt, takk-nei] max_steps: 2 max_fields: 5 success: [ansatt] stages: [open, samtale, ansatt, takk-nei] personas:
- id: jobb-søker-energisk need: jobbansøker text: > Jeg er en energisk håndverker som lurer på om Dere har plasser ledige.
- id: jobb-søker-rolig need: jobbansøker text: > Jeg jobber allerede men vil skifte arbeidsplass til en bedre atmosfære.
-
id: avvik-og-ulykke who: HMS-ansvarlig på byggeplassen, eller ansatt/underentreprenør som melder fra wants: å rapportere avvik eller uønsket hendelse enters: / lands_in: avvik handled_by: hms-ansvarlig done_when: [lukket] max_steps: 1 max_fields: 3 success: [lukket] stages: [open, utbedret, lukket] personas:
- id: hms-ansvarlig-rapport need: avvik-og-ulykke text: > Det skjedde en hendelse på byggeplassen som krever oppmærksomhet.
- id: tømrer-ukjent need: avvik-og-ulykke text: > Noe gikk galt i jobbingen i dag, men det er løst nå.
- id: maskinoperatør-rolig need: avvik-og-ulykke text: > Vi klarte å løse problemet selv uten at noe brøt.
aggregates:
- bucket: henvendelser initial: open states: open: { event: received } avtale: { event: avtale } tilbud: { event: tilbud } vunnet: { event: vunnet } tapt: { event: tapt } transitions: open: [avtale, tapt] avtale: [tilbud, tapt] tilbud: [vunnet, tapt]
- bucket: underentreprenører initial: open states: open: { event: meldt } sjekk: { event: sjekket } godkjent: { event: godkjent } avslått: { event: avslått } transitions: open: [sjekk, avslått] sjekk: [godkjent, avslått]
- bucket: jobbansøkninger initial: open states: open: { event: mottatt } samtale: { event: samtale } ansatt: { event: ansett } takk-nei: { event: takk_nei } transitions: open: [samtale, takk-nei] samtale: [ansatt, takk-nei]
- bucket: avvik initial: open states: open: { event: meldt } utbedret: { event: utbedret } lukket: { event: lukket } transitions: open: [utbedret, lukket] utbedret: [lukket]
desk:
- group: prosjektledere bucket: henvendelser transitions: open: [avtale, tapt] avtale: [tilbud, tapt] tilbud: [vunnet, tapt]
- group: prosjektledere bucket: underentreprenører transitions: open: [sjekk, avslått] sjekk: [godkjent, avslått]
- group: prosjektledere bucket: jobbansøkninger transitions: open: [samtale, takk-nei] samtale: [ansatt, takk-nei]
- group: hms-ansvarlig bucket: avvik transitions: open: [utbedret, lukket] utbedret: [lukket] <<>