feat(compose): add the librarian role via a community person package #1065

Merged
coilysiren merged 4 commits from librarian-person-package into main 2026-08-19 08:30:42 +00:00
Member

Adds an external agent-compose person package under agent/compose/person for roles the community owns and the Core Roster does not, with librarian as its first role: custodian of the community record, provenance-first retrieval, composed for a possible fourth lane.

What changed

  • agent/compose/person/ - the package: person "sirens", the librarian role and charter, and verbatim restatements of the core meticulous, skeptical, and editorial personality bodies (agent-compose never merges entities across packages).
  • scripts/stage-compose-sources.sh - bakes package roles beside the core roster ones, each from a request gaining a person-source "person" node, and fails on a slug owned by both rosters.
  • agent/rendered/roles/librarian.bundle.txt - the new selection record. The existing eight are untouched.
  • docs/sirens-echo-person.md - the package walkthrough, linked from the compose doc and FEATURES.

Verification

  • agent-compose roster --person-source loads the package cleanly (needs agent-compose >= v2.32.0, already required by the tracked boundary-omit request node).
  • just role-drift-check exits 0 against the public catalogue: all nine roles bake, verify, and match their records.
  • just test and pre-commit run --all-files pass.

What deliberately does not change

No lane composes the role, so no live behavior changes and the #929 freeze surface is untouched. Deployment of a fourth lane, its eval coverage, and the seat name review are #1063. The complementary Echo-framing decision is #1062.

Refs #1063, #1062

🤖 Generated with Claude Code

Adds an external agent-compose person package under `agent/compose/person` for roles the community owns and the Core Roster does not, with `librarian` as its first role: custodian of the community record, provenance-first retrieval, composed for a possible fourth lane. ## What changed * `agent/compose/person/` - the package: `person "sirens"`, the librarian role and charter, and verbatim restatements of the core meticulous, skeptical, and editorial personality bodies (agent-compose never merges entities across packages). * `scripts/stage-compose-sources.sh` - bakes package roles beside the core roster ones, each from a request gaining a `person-source "person"` node, and fails on a slug owned by both rosters. * `agent/rendered/roles/librarian.bundle.txt` - the new selection record. The existing eight are untouched. * `docs/sirens-echo-person.md` - the package walkthrough, linked from the compose doc and FEATURES. ## Verification * `agent-compose roster --person-source` loads the package cleanly (needs agent-compose >= v2.32.0, already required by the tracked `boundary-omit` request node). * `just role-drift-check` exits 0 against the public catalogue: all nine roles bake, verify, and match their records. * `just test` and `pre-commit run --all-files` pass. ## What deliberately does not change No lane composes the role, so no live behavior changes and the #929 freeze surface is untouched. Deployment of a fourth lane, its eval coverage, and the seat name review are #1063. The complementary Echo-framing decision is #1062. Refs #1063, #1062 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(compose): add the librarian role via a community person package
All checks were successful
ci / image-build (pull_request) Successful in 36s
ci / test (pull_request) Successful in 1m4s
ci / publish-echo-image (pull_request) Has been skipped
ci / publish-observed (pull_request) Has been skipped
20f3f7e97d
A new external agent-compose person package under agent/compose/person
carries roles the community owns and the Core Roster does not. Its first
role is librarian, custodian of the community record, composed for a
possible fourth lane (#1063). The stage script bakes package roles beside
the core ones, each from a request gaining a person-source node, and fails
on a slug owned by both rosters. No lane composes the role yet, so no live
behavior changes.

Refs #1063, #1062

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Kai Siren <coilysiren@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Update agent/compose/person/roles/01-librarian.kdl
Some checks failed
ci / image-build (pull_request) Failing after 48s
ci / publish-echo-image (pull_request) Has been cancelled
ci / publish-observed (pull_request) Has been cancelled
ci / test (pull_request) Has been cancelled
6a790abc9b
Update agent/compose/person/roles/01-librarian.kdl
Some checks failed
ci / image-build (pull_request) Failing after 33s
ci / test (pull_request) Failing after 55s
ci / publish-echo-image (pull_request) Has been skipped
ci / publish-observed (pull_request) Has been skipped
a1d22f4f2d
feat(compose): fail the bake when a vendored personality drifts from core
All checks were successful
ci / image-build (pull_request) Successful in 37s
ci / test (pull_request) Successful in 1m3s
ci / publish-echo-image (pull_request) Has been skipped
ci / publish-observed (pull_request) Has been skipped
5b1864f06a
Each restated personality body in the community person package is now
compared against the same skill as baked from the embedded roster, so the
copies are checked mirrors rather than silent forks. Verified to fire on a
mutated body and pass clean. Also rebakes the librarian selection record
for the seat rename that landed in a1d22f4.

Refs #1063

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Kai Siren <coilysiren@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Author
Member

Second commit 5b1864f adds the vendored-personality drift check Kai asked for: the bake now compares each restated body against the same skill as delivered from the embedded roster and fails on a byte difference. Verified to fire on a mutated body and pass clean. It also rebakes the librarian selection record for the seat rename in a1d22f4, so the record now reads Excel (sheet) and the drift gate is green again. The upstream feature that would retire the vendoring entirely is filed as agent-compose#311.

Second commit 5b1864f adds the vendored-personality drift check Kai asked for: the bake now compares each restated body against the same skill as delivered from the embedded roster and fails on a byte difference. Verified to fire on a mutated body and pass clean. It also rebakes the librarian selection record for the seat rename in a1d22f4, so the record now reads Excel (sheet) and the drift gate is green again. The upstream feature that would retire the vendoring entirely is filed as agent-compose#311.
Author
Member

Third commit 23d0d80 makes lookup-first the charter's opening doctrine per Kai's request: every interaction starts with at least one retrieval against whatever sources the runtime grants (MCP servers, indexes, skill roots), recall is a hypothesis the lookup checks, and a reply with no reachable source says the record was not consulted. The role purpose line and docs/sirens-echo-person.md carry the same emphasis. Charter body is 359 of the 400-word cap, all gates green. Runtime enforcement of lookup-first belongs to the lane eval, noted on #1063.

Third commit 23d0d80 makes lookup-first the charter's opening doctrine per Kai's request: every interaction starts with at least one retrieval against whatever sources the runtime grants (MCP servers, indexes, skill roots), recall is a hypothesis the lookup checks, and a reply with no reachable source says the record was not consulted. The role purpose line and docs/sirens-echo-person.md carry the same emphasis. Charter body is 359 of the 400-word cap, all gates green. Runtime enforcement of lookup-first belongs to the lane eval, noted on #1063.
Author
Member

Correction to the comment above: this PR merged at 5b1864f before the third commit landed, so 23d0d80 is not in this merge. The lookup-first charter change now rides #1066 on a fresh branch off main. The librarian-person-package branch can be deleted; its only unmerged commit is carried there as a953130.

Correction to the comment above: this PR merged at 5b1864f before the third commit landed, so 23d0d80 is not in this merge. The lookup-first charter change now rides #1066 on a fresh branch off main. The librarian-person-package branch can be deleted; its only unmerged commit is carried there as a953130.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-gaming/sirens-echo!1065
No description provided.