Split person profiles from composable personality libraries #111
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agent-compose#111
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?
External person packages currently replace the embedded default as one complete unit and must carry every role, seat, personality binding, definition, invariant, and evaluation asset they use. The engine also assumes every role has exactly two or three personalities and contains behavior paths coupled to the built-in personal profile.
That blocks a portable corporate profile from defining a manager role with one unique personality while reusing shared personalities from another library.
Goal
Keep exactly one selected person profile for role and identity policy, while allowing that profile to compose personalities from any number of admitted libraries.
Ownership
Resolution
Melds
Compatibility and migration
Acceptance
ward exec testandward exec smokepass.Follow-up: the structured alias and affinity-sphere projection should depend on this effective profile/library graph rather than the current built-in roster.
Execution contract for Terra medium
Release posture
The goal agent records current canonical
mainand its latest verified v1.x release as the pre-migration baseline. Every change in this issue lands as an additive v1.x change. The v1.x line keeps the current package input,--person-source,agentseat syntax, and existing generated compatibility artifacts readable. A later v2 issue may remove them, but this batch does not.New source contract
Exactly one person profile remains selected. The profile root retains
person.kdland owns:roles/<slug>/SKILL.mdplus structured role metadataevaluations/definitions/INVARIANT.mdlibraries/Each personality-library root contains a stable
library.kdllogical ID and owns:personalities/definitions/skills/<skill>/SKILL.mdThe current complete-person layout loads through a compatibility adapter as one profile plus one implicit package-local personality library. The adapter records logical provenance and never exposes its local path.
Admission surfaces
--person-sourcecontinues selecting the profile root.--personality-libraryflag admits additional local library roots for direct commands.personality-library "<path>"locator nodes.personality_librarieslist.libraries/, discovered in lexical order.The effective library order is package-local lexical order, then host-config order, then request or direct-flag order. The order controls deterministic catalogue and alias presentation only. It never permits a later library to override a conflict.
Resolution and provenance
Meld cardinality
The engine accepts any nonempty ordered role meld. Personality definitions remain atomic. Roles compose personalities into melds, but one personality definition does not inherit from or expand into other personalities. A profile may impose a narrower profile-owned authoring rule, but engine code carries no two-or-three limit.
Compatibility outputs
The goal agent keeps
person.jsonschema v3 available throughout v1.x. The resolved graph exposes the provenance needed for issue 112's parallel next-generation snapshot and human-readable personality index. Existing overlay, palette, roster, bundle, and evaluation outputs retain their current compatibility surfaces while consuming the new resolved graph internally.Required fixtures
Done condition
ward exec testandward exec smokepass.mainand closes this issue.Reconciliation with role skills
#121 defines each profile role as one canonical
role-<slug>skill under the finalroles/layout. Structured profile data continues to own slug, purpose, seats, ordered meld, inspirations, identity primitives, and the stable role-skill binding. The compatibility adapter exposes legacy inline briefings as logical role skills without writing a second mutable source tree.Remove Kai encoded highly personal defaults from codebaseto Split person profiles from composable personality librariesLanded on canonical main through
daa9996. One selected profile now composes package-local and repeatable admitted personality libraries with stable logical provenance, deterministic order, byte-identical deduplication, conflict failure, no fetch behavior, symlink rejection, arbitrary nonempty melds, and legacy complete-package adaptation. The executable example proves a single-personality role and a local-plus-shared meld across every person surface. ward exec test and ward exec smoke passed.