allow shared skills to meld into roles #231
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#231
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?
so you would meld the shared live-ops skill into engineer, and then do evals on the melded role
an item of importance: the meld itself should not contribute to your role description limit
Mechanism and extraction are implemented and pushed to
meld/231-shared-role-melds. The evaluation half is blocked on a live run.Meld primitive.
meld "<id>"is a new role child alongsideskill,method, andpersonality. Catalog entries live in a personality library (melds/*.kdlplusdefinitions/skills/meld-<id>/SKILL.md), any number of roles may reference one, and the body is delivered as an ordinary skill. The identity card names melds underShared doctrineand lists them inActive doctrinebetween the charter and the personalities, so they load eagerly. Wired through the loader, library merge, resolver decision trace, bundle manifest and verification, native and compiled delivery, and the v3 person snapshot as additive optional fields.Budget. Meld bodies never enter
Role.Briefing, so they spend none of the 400-word role ceiling. They carry their own separate 400-word ceiling so the melded total stays bounded.TestMeldBodiesDoNotConsumeTheRoleWordBudgetpins this with a role at its cap and a meld at its own.Extraction.
meld-live-opsbinds engineer, qa, and ai, the roles sealed against live mutation. DevOps owns the opposite authority and does not meld it.meld-commsbinds every role except creator, which owns the other side of that boundary. Role body prose fell 2,759 to 2,157 words, a 22% reduction, with no doctrine removed from any role:Defect found and fixed mid-change. Evaluation packs carried only
briefing, so moving doctrine into melds would have silently removed it from the evaluated context and scored an incomplete charter. Packs now carry ameldsblock beside the briefing. Verified per role: comms doctrine present in all seven declaring roles and absent from creator, live-ops present in engineer, qa, and ai only.Naming note.
meldwas already taken internally for the three-personality blend and its derived favorite color. I kept themeldkeyword on the KDL surface and renamed the internal validator tovalidateCorePersonalityMelds. ThemeldedColorvocabulary in rendered cards and transcripts is untouched, since renaming it changes user-visible output beyond this issue. Worth a separate decision if the overlap bothers you.Blocker.
TestLatestScoredResultsMatchCurrentPacksfails for all eight packs. This is correct: the melded doctrine changes every pack digest, so the recorded scores no longer apply. Re-earning them needs a driver run at commodity/medium and a separate frontier/high reviewer perdocs/evaluation-policy.md. This repo renders packs and scores records but ships no runner, so the execution is outside it. I also authored the melded doctrine, so I cannot be its sole reviewer.Everything else is green:
go build ./..., the fullgo test ./...outside that gate, andpre-commit run --all-files.Needed to land: run the eight
evaluations/latest/*-codex.yamlpacks against the melded roles, have an independent reviewer score them, and commit the refreshed records with provenance pointing at this issue.Finishing work tracked in #240: re-earning the eight evaluation records, plus the two methodology concerns that should be diagnosed before the re-run (ambient host-context contamination, and the pack being a hand-assembled mirror rather than a derivation of the verified bundle).
Branch
meld/231-shared-role-meldsat6b22254holds the complete mechanism and extraction.PR #243 is now merge-clean against
mainand green on everything except the evaluation gate.Merged and fixed.
mainhad advanced nine commits, including the #240 driver and the native-UI work. The only conflict wasdocs/FEATURES.md, where both sides had independently reworded the same two entries for the size cap. Main's newer wording won both hunks. The merged inventory then ran 20 chars past the 4000-char catalog cap, so four inventory lines were tightened without dropping a capability.go build ./...,go vet, andpre-commit run --all-filesare green.Codex lane is blocked.
codex execreturnsYou've hit your usage limit ... try again at Aug 12th, 2026. No Agent Proxy, LiteLLM, or Ollama endpoint is reachable from this host, and no OpenAI API key is available, so the recorded codex baseline cannot be re-earned right now. Kai chose to move the evidence lane to theclaudeseat rather than park the PR.Toolchain built. The repo could render packs and validate records but had no way to produce them, which is why the previous session stopped here. Added:
scripts/evaluation_reviewer.py- scores a preserved response in a separate session with--tools "", supplying judgement only.scripts/evaluation-record- joins a driver run with its review and writes records throughMarshalResult, deriving every total and verdict from the pack review rule rather than trusting the reviewer's arithmetic.scripts/earn-evaluation-baseline.shbehindward exec evaluation-baseline- renders packs, drives, reviews, records, and refreshes the scorecard in one pass.Claude-seat packs render for all eight roles: 67 active frontier cases.
Current wall. The driver and reviewer each need their own isolated authenticated home, and OAuth login is interactive. A run against the host home is plumbing only and cannot be evidence, so the two homes at
/tmp/acompose-eval-driverand/tmp/acompose-eval-reviewerneed one/logineach from an operator. Everything after that is mechanical and runs unattended.Branch
meld/231-shared-role-meldsat24eb173holds the merge, the size fix, and the toolchain.