fix(rendered): record the roster personality swap for ai and exec #994

Closed
coilyco-ops wants to merge 1 commit from aos/claude/ue65-roster-drift into main
Member

just role-drift-check fails on main right now, with no branch involved. I hit it while diagnosing #985 and confirmed it reproduces on a pristine main checkout against agentic-os main.

The cause is upstream of this repo. The agent-compose roster swapped one personality on two roles and the recorded selections never caught up:

  • ai - personality-curious becomes personality-empirical
  • exec - personality-curious becomes personality-outward

Both match the current identity cards, so the roster is right and the record is stale. Neither role takes a composed-skill entry in agent/compose/roles.kdl, so this is roster movement alone. No allowlist decision changed, and engineer, creator, and the rest are untouched.

Regenerated, not hand-edited

AOS_CATALOG=<agentic-os main> just compose-bundles
just role-snapshot

Diff is four lines across two files: the Personalities: header and the roster:core/personality-* entry in each.

Why separate from #985

That PR is about admitting a skill to the Dowel lane. This is unrelated pre-existing breakage that happens to block it, and anything else touching role-drift-check. Landing it on its own means #985's diff stays one line of intent plus its own snapshot.

Same shape as deploy#693: a record in one repo goes stale because another repo moved, and nothing here has a trigger to notice. There the mover is the catalogue, here it is the roster. Worth considering whether the roster deserves the same scheduled check.

`just role-drift-check` fails on `main` right now, with no branch involved. I hit it while diagnosing #985 and confirmed it reproduces on a pristine `main` checkout against agentic-os `main`. The cause is upstream of this repo. The agent-compose roster swapped one personality on two roles and the recorded selections never caught up: - **ai** - `personality-curious` becomes `personality-empirical` - **exec** - `personality-curious` becomes `personality-outward` Both match the current identity cards, so the roster is right and the record is stale. Neither role takes a `composed-skill` entry in `agent/compose/roles.kdl`, so this is roster movement alone. No allowlist decision changed, and `engineer`, `creator`, and the rest are untouched. ## Regenerated, not hand-edited ``` AOS_CATALOG=<agentic-os main> just compose-bundles just role-snapshot ``` Diff is four lines across two files: the `Personalities:` header and the `roster:core/personality-*` entry in each. ## Why separate from #985 That PR is about admitting a skill to the Dowel lane. This is unrelated pre-existing breakage that happens to block it, and anything else touching `role-drift-check`. Landing it on its own means #985's diff stays one line of intent plus its own snapshot. ## Related Same shape as [deploy#693](https://forgejo.coilysiren.me/coilyco-bridge/deploy/issues/693): a record in one repo goes stale because another repo moved, and nothing here has a trigger to notice. There the mover is the catalogue, here it is the roster. Worth considering whether the roster deserves the same scheduled check.
fix(rendered): record the roster personality swap for ai and exec
Some checks failed
ci / image-build (pull_request) Failing after 33s
ci / test (pull_request) Failing after 52s
ci / publish-echo-image (pull_request) Has been skipped
ci / publish-observed (pull_request) Has been skipped
f2ebf4b11e
role-drift-check fails on main today, before any branch touches it. The cause
is upstream of this repo: the agent-compose roster swapped a personality on two
roles and the recorded selections never caught up.

* ai - curious becomes empirical
* exec - curious becomes outward

Both match the current identity cards. Neither role takes a composed-skill
entry in agent/compose/roles.kdl, so this is roster movement alone and no
allowlist decision changed. engineer, creator, and the rest are unaffected.

Regenerated with `just compose-bundles` and `just role-snapshot` against
agentic-os main, not hand-edited.

This is the same silent-staleness shape as deploy#693: a record in one repo
goes stale because another moved, and nothing here has a trigger to notice.
There the mover is the catalogue, here it is the roster.

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>
Author
Member

Closing this. I was wrong, and merging it would have broken CI.

What I got wrong

I ran just role-drift-check on a pristine main checkout, saw ai and exec drift, and concluded main was broken. I never checked whether main's CI actually agreed with me.

It does not. sirens-echo main is green. CI recomputes curious for both roles, which is exactly what the recorded snapshots say. The records were correct the whole time.

The actual cause

This host's agent-compose roster disagrees with the CI image's:

  • this host - ai = empirical, meticulous, skeptical // exec = outward, grounded, decisive
  • CI image - ai = curious, meticulous, skeptical // exec = curious, decisive, grounded

Both are agent-compose 2.31.0, and docker/dev-base/full/Dockerfile pins AGENT_COMPOSE_VERSION=2.31.0, so the version is not the variable. The roster data resolves differently, and this PR baked the host's answer into a record CI then rejected. That is why this PR was red on its own change: CI recomputed curious and found empirical.

engineer, creator, and every other role agree across both, so the divergence is confined to ai and exec.

Consequence worth keeping

just role-drift-check is not trustworthy on a workstation, and it fails in the direction that invites a wrong fix: it reports drift that does not exist and hands you a regenerate command that produces a CI-breaking diff. Filed as #995.

That also changes how #985 gets its snapshot. I regenerated there and committed only engineer.bundle.txt, discarding the ai and exec churn this same divergence produces.

No change is needed here. The records are already right.

Closing this. **I was wrong, and merging it would have broken CI.** ## What I got wrong I ran `just role-drift-check` on a pristine `main` checkout, saw `ai` and `exec` drift, and concluded main was broken. I never checked whether main's CI actually agreed with me. It does not. **sirens-echo `main` is green.** CI recomputes `curious` for both roles, which is exactly what the recorded snapshots say. The records were correct the whole time. ## The actual cause This host's `agent-compose roster` disagrees with the CI image's: - **this host** - `ai` = empirical, meticulous, skeptical // `exec` = outward, grounded, decisive - **CI image** - `ai` = curious, meticulous, skeptical // `exec` = curious, decisive, grounded Both are `agent-compose` 2.31.0, and `docker/dev-base/full/Dockerfile` pins `AGENT_COMPOSE_VERSION=2.31.0`, so the version is not the variable. The roster data resolves differently, and this PR baked the host's answer into a record CI then rejected. That is why this PR was red on its own change: CI recomputed `curious` and found `empirical`. `engineer`, `creator`, and every other role agree across both, so the divergence is confined to `ai` and `exec`. ## Consequence worth keeping `just role-drift-check` is not trustworthy on a workstation, and it fails in the direction that invites a wrong fix: it reports drift that does not exist and hands you a regenerate command that produces a CI-breaking diff. Filed as #995. That also changes how #985 gets its snapshot. I regenerated there and committed **only** `engineer.bundle.txt`, discarding the `ai` and `exec` churn this same divergence produces. No change is needed here. The records are already right.
coilyco-ops closed this pull request 2026-08-19 00:49:20 +00:00
Author
Member

Correction: the divergence issue is #1000, not #995 as written above.

Correction: the divergence issue is #1000, not #995 as written above.
Some checks failed
ci / image-build (pull_request) Failing after 33s
ci / test (pull_request) Failing after 52s
ci / publish-echo-image (pull_request) Has been skipped
ci / publish-observed (pull_request) Has been skipped

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
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!994
No description provided.