Writing the Harbormaster
Series: raising-an-island · Part 1
The reliable public fallback lives in archipelago.toml:
[realm.harbormaster]
name = "Old Cael"
brief = "A weathered man in an oilskin coat, standing by the gate."
lines = [
"Welcome to the Stair. Road's washed out tonight. You'll stay.",
"Your cargo's your own, long as it stays sheathed.",
"The beacon's been dark since sundown. Don't expect news from the north.",
]
Write three lines that establish voice under failure. They should still work when no model, memory record, customs scan, or federation status is available.
Personality system
The deeper system composes two to five traits into a 20-axis matrix. Eighteen archetypes provide starting traits and seed lines. Visit memory classifies arrivals, a situation key selects from an approved speech bank, and secret triggers can deliver one guarded line.
Admin commands include:
watch> harbormaster traits
watch> harbormaster add-trait taciturn
watch> harbormaster matrix
watch> harbormaster test arrival.stranger
watch> harbormaster stats
watch> harbormaster create --archetype weathered-keeper
Several joins are unfinished: the admin dispatcher lacks persistence callbacks for some edits, border arrival does not universally invoke the greeter, and cargo, federation health, mood, and clock dimensions are not fully supplied. Generated candidates are filtered and scored, but the background generation/review loop is incomplete.
Write the harbormaster as an NPC with a functioning authored voice. Treat the matrix as an evolving instrument, not as a replacement for the lines.