feat(person): give exec and ai a personality each owns, closing the last emphasis collision #299
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!299
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/personality-catalog-gaps"
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?
The create half of the catalog refactor. Delete stayed empty, because #296 separated the merge candidates instead.
The defect
Exec and ai owned no personality uniquely:
Every slot shared, so neither role could take a distinct static emphasis without taking one from ops or qa. Six roles solved cleanly and these two forced a compromise.
The change
validateCorePersonalityMeldscaps a core role at exactly three personalities, so this is a swap, not an addition. Both roles gave up curious, which they shared with engineer and which neither was best served by.#b3be49) - checks the local answer against the world outside it, thinks in opportunity cost. Exec already ownsboundary-seek-external-validationand nothing in the catalog expressed it.#2ed1aa) - produces the measurement rather than reasoning toward the answer. States the criterion before running, freezes the other variables, keeps the raw result. Curious explores, skeptical doubts someone else's claim, meticulous checks parts. None of them was measurement discipline, which is most of whatrole-aiactually asks for.Dropping curious is a charter improvement in both cases, not only a distinctness fix.
Colors
Searched the terminal-legible band
internal/colorenforces, constrained to the catalog's own chroma and lightness range so the new pair stays in family, then picked the pair whose weakest separation from the existing sixteen is largest. The unconstrained optimum was a neon lime and a neon mint, which scored better and looked nothing like the palette.Both land 0.11 or better from every existing color. The catalog's own closest pair is 0.045.
Result
The emphasis assignment now solves completely:
All eight distinct, all at usage 1, minimum separation 0.1099 against 0.0726 before. No role is left without a personality it alone owns.
Prose follows the post-#296 rules. Content-word cosine puts both new bodies at 0.224 from their nearest neighbour, under the catalog's worst pair of 0.253. Mean across all 153 pairs is 0.1168, unchanged from the 16-personality 0.1153, so the additions did not dilute.
What this does not fix
The role favorite colors. Measured on the real
color.Favoriteoutput, not an approximation:Pairs shuffled rather than improved. design/ai went 0.047 to 0.121, but qa/ai went 0.063 to 0.035 and is now the closest pair, because both roles meld meticulous and skeptical, which are the catalog's two nearest colors at 0.045 apart. Averaging three colors where two nearly coincide lands in the same place whatever the third is.
That is the centroid, not the roster, and no personality edit reaches it. It belongs to
color.Favorite.Test change
TestValidateCoreBoundariesRejectsUnbalancedRoster/overused_personalitypushed curious to a fourth role to trip the cap. Curious is now used once, so the fixture uses meticulous, which still sits at three. The assertion is unchanged.go build ./...,go test ./..., andpre-commit run --all-filespass.docs/FEATURES.md,docs/personality.md, anddocs/person-contract.mdcarried a hardcoded count of sixteen, anddocs/role-briefings.mdused exec's real meld as its example. All four updated.