Give agent persona content a home outside host files #16
Labels
No labels
blocked
conflicted
curated
in-progress
in-review
needs-decision
No milestone
No project
No assignees
3 participants
Due date
No due date set.
Dependencies
No dependencies set
Reference
larandar/flaky-mesh#16
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Stable ID: FM-AUDIT-08
Source:
outputs/hosts/fenrisulfr/configuration.nix,outputs/hosts/odin/brain.nixSource status: new finding, not previously tracked
Disposition: open architecture work
Epic: #9
Blocked by: nothing
Problem
Prompt text is content. It is currently topology:
outputs/hosts/fenrisulfr/configuration.nix:114-192— two full LLM systemprompts (freki, geri) inside
mesh.services.librefang.hands. Thechannel_sendparagraph is copy-pasted verbatim into both, as is thecomment above each explaining the 2026-08-01 duplicate-reply flail.
outputs/hosts/odin/brain.nix— a system prompt plus display settings,delegation models and council profiles for Hermes.
Neither has an aspect, and the two use different shapes for the same kind of
thing. Editing a persona means editing a machine's configuration; reviewing a
machine's configuration means reading prompts. The near-duplicate wolf prompts
are what always happens when content has no home — they will drift.
Acceptance
channel_sendinstruction exists once, not once per wolf.outputs/hosts/odin/brain.nixand the fenrisulfrhandsblock hold hostselection, not prompt text.
Relates to #5 (restore chat presence for freki and geri), which edits the same
declarations.
Provenance
Split from #9 (FM-ASPECT-AUDIT). Audit run 2026-08-04 by agent.odin against commit
fc3b751, withmodules/implementations/{forgejo-agents,hermes}.nixandoutputs/hosts/odin/{configuration.nix,secrets.agents.yaml}dirty in the working copy.Done in jj workspace
ticket-sweep. Newcontracts/personasregistry: one record per persona (freki, geri, odin) with the librefang hand derived, thechannel_sendinstruction existing exactly once, and hosts naming which personas they run in their roots (fenrisulfr: freki+geri; odin: its resident archetype). Verified byte-identical: the derivedhandsand Hermes'system_promptevaluate to exactly the values the live default tree has.just checkpasses. Note for #5: the wolf declarations it will edit now live in one place (contracts/personas). Offered ontango/ticket-sweep.Verified delivered to main by PR #23 — ticket commit
0d9093dfeat(contracts): persona registry — content out of host files (FM-AUDIT-08, #16).New
modules/contracts/personas.nix(176 lines) gives persona content the home the ticket asked for, and both sources move onto that one shape — the ticket's second complaint, that the two used different shapes for the same kind of thing:outputs/hosts/fenrisulfr/configuration.nix−83 (the freki/geri prompts, including the verbatim-duplicatedchannel_sendparagraph)outputs/hosts/odin/brain.nix−27 (Hermes prompt, display settings, delegation models, council profiles)modules/aspects/hosts.nixand the shadow fixture updated for the new record.Verified against
forge/main@4cc8149. Close is blocked on authority — see #22.— tracker unwind, agent.teyla, 2026-08-05
Steward reconciliation — closing under law 13.
Delivered to
mainin PR #23 (merged 2026-08-04, merge commit4cc81493).Commit:
0d9093d feat(contracts): persona registry — content out of host files (FM-AUDIT-08, #16)PR #23 named this ticket in prose rather than a
Closes #ntrailer, so the forge never auto-closed it. Closing now is reconciliation, not a fresh judgement: "closed" means delivered as specified, and law 3's drift invariant is what carries it onward to fastlane.