build: invites from the plan, and rebuilding a live site without losing its words

`invites_by` on a plan (and `invited_by` on a group) put an invite form
per fillable group on the inviting group's desk, plus a list of the
invites sent - portal's `invite:` does the onboarding. Every desk
group invites into itself by default; an inviter without a desk is
refused.

`--words-from <repo>` lifts the words an existing repo carries back
into the words map by structure: the plan is rendered with a token in
every slot and walked alongside the repo's files. Hand edits and
model-chosen icons survive a rebuild; only new slots get fallbacks,
which `--words <json>` can override. The words as used are written to
words.json. First use: Tomter Vel, additions only.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH
This commit is contained in:
Bendik Aagaard Lynghaug
2026-09-23 12:42:23 +02:00
co-authored by Claude Fable 5.1
parent 255aeb4f4b
commit 93a6fc0e10
6 changed files with 1182 additions and 4 deletions
+4
View File
@@ -24,6 +24,10 @@ groups:
- { id: pendlerforhold, label: Pendlerforhold }
- { id: trafikk, label: Trafikkforhold }
# Styret kan invitere inn i alle grupper som har en pult; hver gruppe kan
# invitere inn i seg selv. Portal oppretter kontoen og en engangslenke.
invites_by: [styret]
doors:
- id: medlem
who: en husstand i Tomter som vil bli medlem, betale kontingent, eller melde flytting, ny e-post eller utmelding