refactor(person): break the shared personality template so the sixteen stop converging #296
No reviewers
Labels
No labels
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agent-compose!296
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/personality-prose-distinctiveness"
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?
What
Rewrites all 16 personality bodies in
internal/person/data/. Prose only. No schema, no code, no eval changes.Why
Every one of the 16 ran an identical four-move skeleton:
You bringopening paragraph two (16/16)You notice(15/16) andYou soundnaming a register in three adjectives (14/16)Healthy X ...closer that walked the trait back toward balance (16/16)Two consequences. Every personality ended by regressing to the same center, so bold was told to stay proportional, decisive not to be impulsive, skeptical not to block. And none of them ever demonstrated the register it named, because all 16 files read in one measured voice regardless of the trait they described.
Where a spec names a voice without showing one, the model supplies its own default. That is why the roles were landing on top of each other. The traits were already well separated as concepts (mean content-word cosine 0.143) and identical as prose.
Measurements
Content-word cosine over the bodies, before and after:
bring,healthy,notice,sound,without) to 0Near-synonyms carried together inside a single role, where overlap costs that role its distinctness directly:
Each pair is now separated on an explicit axis rather than by wording alone. Bold is magnitude and decisive is timing. Nurturing is a trajectory and warm is the present tense. Curious widens a question and skeptical tests an answer. Meticulous checks parts and skeptical checks claims.
Verification
go build ./...,go test ./..., andpre-commit run --all-filesall pass. No em-dashes, semicolons, italics, or middots. Frontmatter contract intact on all 16.Not in this pass
internal/color.Favoritetakes the OKLab centroid of a role's three personality colors, which structurally pulls every role toward the band center. Engineer and exec sit 0.033 apart, design and ai 0.047.All 16 personality bodies ran one four-move skeleton: an abstract definition, "You bring" opening paragraph two, "You notice", "You sound" naming a register in three adjectives, and a "Healthy X ..." closer that walked the trait back toward balance. Every personality therefore ended by regressing to the same center, and none of them ever demonstrated the register it named. Where a spec names a voice without showing one, the model falls back on its own default, so sixteen distinct traits arrived in one voice. Rewrite all sixteen. No shared skeleton, no "Healthy X" closer, register demonstrated rather than named, and explicit cross-references that hold the near-synonyms apart where a single role carries both. Measured on content-word cosine over the bodies: skeleton vocabulary in 12+/16 files 5 words -> 0 mean pairwise similarity (120 pairs) 0.1427 -> 0.1153 worst pair 0.2911 -> 0.2525 co-held inside one role: director bold / decisive 0.286 -> 0.103 creator nurturing / warm 0.273 -> 0.099 exec curious / decisive 0.238 -> 0.125 qa + ai meticulous / skeptical 0.120 -> 0.046 engineer meticulous / curious 0.178 -> 0.035 ai curious / skeptical 0.251 -> 0.228 The traits were already well separated as concepts. They were identical as prose. This pass fixes the prose only. Color derivation, the static emphasis mechanism, and the create/delete half of the catalog refactor stay open. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: Kai Siren <coilysiren@gmail.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Kai Siren <coilysiren@gmail.com> Co-authored-by: Claude <noreply@anthropic.com>