Roster recall pass: retitle the seats Kai cannot recall, keep the slugs #344

Closed
opened 2026-08-25 18:24:38 +00:00 by coilyco-ops · 3 comments
Owner

Design record for a seat naming pass. Kai opened it by naming which seats she can recall on demand and which she cannot. Nothing is decided yet, and the open questions are at the bottom.

The observed signal

Kai recalls three seats without effort: Delphi (frontend), Angie (platform), Gem (devrel). She gave Gale (gamedev) an explicit pass on different grounds, that gamedev does not intersect the other lanes until it becomes the sole point of contact. She cannot recall Olaf (sysadmin), Lucia (eval), or Saiya (tpm), and she named Olaf as a name she regrets choosing.

What separates the keepers from the misses

Reading the seven internal/person/data/role-*/role.kdl identities against that signal, the keepers are each hooked to their own domain and the misses are opaque.

  • Delphi - frontend - phonetic hook, Delphi and design share the opening de
  • Angie - platform - phonetic hook, Angie and engineering share the ngi cluster
  • Gale - gamedev - phonetic hook on the initial, Gale and game
  • Gem - devrel - semantic hook, a gem is the polished artifact you hand to a reader
  • Olaf - sysadmin - carries a franchise association that fights the protective and grounded meld
  • Lucia - eval - means light, which says nothing about measurement
  • Saiya - tpm - no hook of either kind

So the generative rule is that a seat name earns recall by carrying its own job, either in sound or in meaning, and every current miss carries neither.

The second problem, title collision

Three of the seven display names lead with or contain Developer, and Kai says three different words for one seat. For platform she says engineering, the title says Developer Platform Engineer, and the slug says platform. That gap is its own recall tax, separate from the name.

  • Developer Platform Engineer - platform
  • Developer Advocate - devrel
  • Game Developer - gamedev

Kai floated Agentic Platform for the first one. That resolves the collision and adds an A hook for Angie at the same time. It introduces a new collision with the eval title Agent Evaluation Engineer, which drops cleanly by shortening eval to Evaluation Engineer.

Proposed roster

  • platform - Agentic Platform Engineer - Angie (she) - retitle only, Kai's own proposal, restores the A hook
  • sysadmin - Systems Administrator - rename the seat - candidates below
  • eval - Evaluation Engineer - rename the seat - candidate Evie, which carries eval in its first two letters
  • frontend - Design Engineer - Delphi (she) - retitle only, leads with the word Kai actually says
  • gamedev - Game Developer - Gale (they) - untouched by Kai's explicit pass
  • tpm - retitle open, see below - rename the seat
  • devrel - Developer Advocate - Gem (they) - untouched, the collision resolves itself once platform drops Developer

The tpm retitle

Kai called tpm very misnamed and had no starting point. The role definition says the purpose is to decide what the portfolio does next and carry each decision to its gate, it owns seek-external-validation, and its meld is decisive plus outward. That is a seat that decides priority and scouts outside the local frame, which Technical Program Manager does not describe, because that title implies coordinating programs other people own.

  • Portfolio Strategist - fits both the stated purpose and the owned boundary
  • Chief of Staff - fits deciding and carrying to a gate, implies serving a principal
  • Portfolio Director - accurate, but director already names Ward's merge lane, so it collides
  • Technical Program Manager - keep

Cost, and why slugs should probably not move

Blast radius measured across the checkouts on 2026-08-25.

  • seat names - 3 files each for Lucia and Saiya, 7 files for Olaf inside agent-compose, plus 4 files in sirens-echo - cheap
  • display names - 8 to 18 files each inside agent-compose, 1 to 4 files in agentic-os and agentic-os-kai - moderate
  • slugs - tpm alone is 25 files in agent-compose and 30 in agentic-os - expensive

The decisive evidence against another slug move is agentic-os#1223. The v3 roster reflow renamed twenty composed sources on 2026-08-23 and deliberately stopped, leaving roughly 169 candidate stale prose sites that need a per-occurrence read rather than a regex. That debt is open and unpaid. A second slug rename two days later doubles it before the first pass has run.

The one argument for moving the tpm slug anyway is that the #1223 editorial pass has to walk those sites by hand regardless, so folding a single slug rename into that same pass costs one judgement pass rather than two.

Open questions for Kai

  1. Which tpm retitle, from the four above.
  2. Which sysadmin seat name. Candidates are Orla (she), which keeps the O to ops hook that was already working under the franchise problem, Otis (he), which keeps that hook and preserves the roster's only he seat, and Vera (she), which has no letter hook but reads as vigil and matches the protective meld.
  3. Whether eval renames at all. Kai attributed the recall miss partly to running fewer evals lately rather than to the name.
  4. Whether the tpm slug moves with its title, or whether this pass changes titles and seat names only.

Boundary

Filed from the eval seat. Landing this in internal/person/data is boundary-build-foundational-software, which eval defers to platform. This issue is the specification and the handover.

Design record for a seat naming pass. Kai opened it by naming which seats she can recall on demand and which she cannot. Nothing is decided yet, and the open questions are at the bottom. ## The observed signal Kai recalls three seats without effort: Delphi (frontend), Angie (platform), Gem (devrel). She gave Gale (gamedev) an explicit pass on different grounds, that gamedev does not intersect the other lanes until it becomes the sole point of contact. She cannot recall Olaf (sysadmin), Lucia (eval), or Saiya (tpm), and she named Olaf as a name she regrets choosing. ## What separates the keepers from the misses Reading the seven `internal/person/data/role-*/role.kdl` identities against that signal, the keepers are each hooked to their own domain and the misses are opaque. * `Delphi` - frontend - phonetic hook, `Delphi` and `design` share the opening `de` * `Angie` - platform - phonetic hook, `Angie` and `engineering` share the `ngi` cluster * `Gale` - gamedev - phonetic hook on the initial, `Gale` and `game` * `Gem` - devrel - semantic hook, a gem is the polished artifact you hand to a reader * `Olaf` - sysadmin - carries a franchise association that fights the protective and grounded meld * `Lucia` - eval - means light, which says nothing about measurement * `Saiya` - tpm - no hook of either kind So the generative rule is that a seat name earns recall by carrying its own job, either in sound or in meaning, and every current miss carries neither. ## The second problem, title collision Three of the seven display names lead with or contain `Developer`, and Kai says three different words for one seat. For platform she says `engineering`, the title says `Developer Platform Engineer`, and the slug says `platform`. That gap is its own recall tax, separate from the name. * `Developer Platform Engineer` - platform * `Developer Advocate` - devrel * `Game Developer` - gamedev Kai floated `Agentic Platform` for the first one. That resolves the collision and adds an `A` hook for Angie at the same time. It introduces a new collision with the eval title `Agent Evaluation Engineer`, which drops cleanly by shortening eval to `Evaluation Engineer`. ## Proposed roster * `platform` - `Agentic Platform Engineer` - Angie (she) - retitle only, Kai's own proposal, restores the `A` hook * `sysadmin` - `Systems Administrator` - rename the seat - candidates below * `eval` - `Evaluation Engineer` - rename the seat - candidate `Evie`, which carries `eval` in its first two letters * `frontend` - `Design Engineer` - Delphi (she) - retitle only, leads with the word Kai actually says * `gamedev` - `Game Developer` - Gale (they) - untouched by Kai's explicit pass * `tpm` - retitle open, see below - rename the seat * `devrel` - `Developer Advocate` - Gem (they) - untouched, the collision resolves itself once platform drops `Developer` ## The tpm retitle Kai called tpm very misnamed and had no starting point. The role definition says the purpose is to decide what the portfolio does next and carry each decision to its gate, it owns `seek-external-validation`, and its meld is decisive plus outward. That is a seat that decides priority and scouts outside the local frame, which `Technical Program Manager` does not describe, because that title implies coordinating programs other people own. * `Portfolio Strategist` - fits both the stated purpose and the owned boundary * `Chief of Staff` - fits deciding and carrying to a gate, implies serving a principal * `Portfolio Director` - accurate, but `director` already names Ward's merge lane, so it collides * `Technical Program Manager` - keep ## Cost, and why slugs should probably not move Blast radius measured across the checkouts on 2026-08-25. * seat names - 3 files each for Lucia and Saiya, 7 files for Olaf inside agent-compose, plus 4 files in sirens-echo - cheap * display names - 8 to 18 files each inside agent-compose, 1 to 4 files in agentic-os and agentic-os-kai - moderate * slugs - `tpm` alone is 25 files in agent-compose and 30 in agentic-os - expensive The decisive evidence against another slug move is `agentic-os#1223`. The v3 roster reflow renamed twenty composed sources on 2026-08-23 and deliberately stopped, leaving roughly 169 candidate stale prose sites that need a per-occurrence read rather than a regex. That debt is open and unpaid. A second slug rename two days later doubles it before the first pass has run. The one argument for moving the `tpm` slug anyway is that the `#1223` editorial pass has to walk those sites by hand regardless, so folding a single slug rename into that same pass costs one judgement pass rather than two. ## Open questions for Kai 1. Which tpm retitle, from the four above. 2. Which sysadmin seat name. Candidates are `Orla` (she), which keeps the `O` to `ops` hook that was already working under the franchise problem, `Otis` (he), which keeps that hook and preserves the roster's only `he` seat, and `Vera` (she), which has no letter hook but reads as vigil and matches the protective meld. 3. Whether eval renames at all. Kai attributed the recall miss partly to running fewer evals lately rather than to the name. 4. Whether the `tpm` slug moves with its title, or whether this pass changes titles and seat names only. ## Boundary Filed from the eval seat. Landing this in `internal/person/data` is `boundary-build-foundational-software`, which eval defers to platform. This issue is the specification and the handover.
Author
Owner

Kai's decisions, 2026-08-25

Three of the four open questions are settled. The tpm title is reopened rather than answered, on new information.

Settled

  • sysadmin seat name - Vera (she) - chosen over Orla and Otis. No letter hook, so the roster loses its only he seat and the O-to-ops mnemonic. Kai took the vibe fit with the protective and grounded meld instead.
  • eval - rename to Evie, retitle to Evaluation Engineer
  • slug scope - titles and seat names only. No slug moves. agentic-os#1223 keeps the prose debt it already has and gains none.

Carried from the proposal unvetoed:

  • platform - retitle to Agentic Platform Engineer, Angie unchanged
  • frontend - retitle to Design Engineer, Delphi unchanged
  • gamedev - untouched
  • devrel - untouched, Developer Advocate stays, and it is the only leading-Developer title once platform retitles

The tpm title, reopened

Kai answered the title question with new information rather than a pick: Ward is being fully deprecated, and the mismatch resolves through that deprecation.

That voids the only objection this issue raised against Portfolio Director, which was the collision with Ward's director merge lane. With Ward going away, Portfolio Director is available and arguably the better of the two candidates, because the purpose sentence leads with Decide what the portfolio does next and Director carries deciding authority where Strategist carries advice.

Both candidates lead with Portfolio, so the say-it handle is portfolio either way and the seat name wants a P hook. Saiya has no successor yet. Candidates put to Kai:

  • Portia - shares Port with portfolio, the tightest phonetic hook in the roster, and its literary namesake renders the decisive verdict, which matches the decisive meld
  • Piper - real, warm, short, no sound collision with Angie, Delphi, Gem, Gale, Evie, or Vera
  • Pia - shortest option, weakest semantic hook

Pronouns stay they unless Kai says otherwise, preserving the existing tpm seat and consistent with the estate rule that a name is not a source for pronouns.

## Kai's decisions, 2026-08-25 Three of the four open questions are settled. The tpm title is reopened rather than answered, on new information. ### Settled * sysadmin seat name - `Vera` (she) - chosen over `Orla` and `Otis`. No letter hook, so the roster loses its only `he` seat and the O-to-ops mnemonic. Kai took the vibe fit with the protective and grounded meld instead. * eval - rename to `Evie`, retitle to `Evaluation Engineer` * slug scope - titles and seat names only. No slug moves. `agentic-os#1223` keeps the prose debt it already has and gains none. Carried from the proposal unvetoed: * platform - retitle to `Agentic Platform Engineer`, `Angie` unchanged * frontend - retitle to `Design Engineer`, `Delphi` unchanged * gamedev - untouched * devrel - untouched, `Developer Advocate` stays, and it is the only leading-`Developer` title once platform retitles ### The tpm title, reopened Kai answered the title question with new information rather than a pick: Ward is being fully deprecated, and the mismatch resolves through that deprecation. That voids the only objection this issue raised against `Portfolio Director`, which was the collision with Ward's director merge lane. With Ward going away, `Portfolio Director` is available and arguably the better of the two candidates, because the purpose sentence leads with `Decide what the portfolio does next` and `Director` carries deciding authority where `Strategist` carries advice. Both candidates lead with `Portfolio`, so the say-it handle is `portfolio` either way and the seat name wants a `P` hook. `Saiya` has no successor yet. Candidates put to Kai: * `Portia` - shares `Port` with `portfolio`, the tightest phonetic hook in the roster, and its literary namesake renders the decisive verdict, which matches the decisive meld * `Piper` - real, warm, short, no sound collision with Angie, Delphi, Gem, Gale, Evie, or Vera * `Pia` - shortest option, weakest semantic hook Pronouns stay `they` unless Kai says otherwise, preserving the existing tpm seat and consistent with the estate rule that a name is not a source for pronouns.
Author
Owner

Buildable specification, ready for platform

All four questions are answered. tpm becomes Portfolio Director with seat Portia, on Kai's confirmation that Ward's full deprecation removes the director-lane collision this issue originally raised against it.

Handing this to platform as a bounded buildable definition. Filed from eval, which defers build-foundational-software: internal/person/data is executable configuration every seat's bundle consumes, so it sits past eval's scope of its own runners, probes, graders, and aggregation.

Final roster

  • platform - Agentic Platform Engineer - Angie (she) - title only
  • sysadmin - Systems Administrator - Olaf (he) becomes Vera (she) - seat only
  • eval - Agent Evaluation Engineer becomes Evaluation Engineer - Lucia (she) becomes Evie (she)
  • frontend - Frontend Design Engineer becomes Design Engineer - Delphi (she) - title only
  • gamedev - Game Developer - Gale (they) - unchanged
  • tpm - Technical Program Manager becomes Portfolio Director - Saiya (they) becomes Portia (they)
  • devrel - Developer Advocate - Gem (they) - unchanged

No slug moves. No personality, boundary, model-tier, skill, or agent-list changes. Favorite colors and theme tokens derive from personalities rather than names, so internal/palette/role-palette.txt and every palette-derived color stay byte-identical and the theme files need only their name string swapped.

Source of truth, five files

  • internal/person/data/role-platform/role.kdl:3 - display-name
  • internal/person/data/role-frontend/role.kdl:3 - display-name
  • internal/person/data/role-eval/role.kdl:3 - display-name, and :12 - identity
  • internal/person/data/role-sysadmin/role.kdl:12 - identity, both name and pronouns
  • internal/person/data/role-tpm/role.kdl:3 - display-name, and :11 - identity name only, pronouns stay they

Downstream in agent-compose

Role and boundary bodies, where a title names the owning role and a stale one makes the doctrine point at a role that no longer exists:

  • internal/person/data/role-eval/SKILL.md - :3 frontmatter description, :6 heading, :22
  • internal/person/data/role-frontend/SKILL.md - :3, :6, :34
  • internal/person/data/role-platform/SKILL.md - :3, :6
  • internal/person/data/role-tpm/SKILL.md - :3, :6
  • internal/person/data/role-devrel/SKILL.md - :25, :40, :41
  • internal/person/data/role-gamedev/SKILL.md - :36
  • internal/person/data/boundary-build-foundational-software/SKILL.md:3 and boundary.kdl:1
  • internal/person/data/boundary-seek-external-validation/SKILL.md:3 and boundary.kdl:1

Tests, which assert rendered names and will fail loudly rather than silently:

  • internal/compose/compose_test.go:460
  • internal/statusline/subagent_test.go:120,138
  • internal/schema/schema_test.go:155
  • internal/nativelaunch/shortid_test.go:38, internal/nativelaunch/launch_test.go:305,306,363,365
  • internal/roster/roster_test.go:184,186
  • internal/overlay/overlay_test.go:49,50,52,53,77
  • evalkit/tests/test_matrix.py:21,63,226

Docs and examples:

  • README.md:48,49
  • challenges.yaml:102,131
  • docs/identity.md:84,102, docs/role-adjacency.md:9, docs/role-briefings.md:15,51,59,68, docs/eval-engineer.md:3,7, docs/claude-launch-identity.md:14, docs/overlay.md:45
  • examples/claude-native-ui/settings.{platform,frontend,eval,sysadmin,tpm}.json:25
  • examples/claude-native-ui/themes/aos-{platform,frontend,eval,sysadmin,tpm}.json:2

Downstream outside agent-compose

  • coilyco-flight-deck/agentic-os - agent-terminal/brand_test.go at 118, 119, 122, 149, 153, 175, 180, 280 and its fixture agent-terminal/testdata/tpm-overlay.json at 6, 10, 13. Then docs/role-composed-skills.md at 84, 86, 88, 89, 97, 99, 118 and docs/FEATURES.md:31.
  • coilyco-bridge/agentic-os-kai - docs/role-skill-coverage-audit.md at 19, 24, 27, 31 and docs/role-composed-skill-loading.md:42.
  • coilyco-gaming/sirens-echo - internal/community/continuingwork_test.go:42 and internal/community/exceptions_test.go:208 are seat names inside explanatory test comments, cosmetic only.

Four judgement calls, not mechanical

  1. docs/release.md:54,56,57 records what the v3 release did, in the form engineer becomes platform, displayed as Developer Platform Engineer. That is a historical record and rewriting it makes it false. Leave those lines and add a new release entry for this pass.
  2. docs/role-composed-skills.md:117 records that Executive Strategist merged into Technical Program Manager. Same reasoning, leave it.
  3. docs/identity.md:84 uses Olaf as the live worked example of why seat renaming exists, in the sirens-echo case. That one is current behavior rather than history, so update it to Vera. Note the line also carries an em-dash against house voice, worth fixing on contact.
  4. sirens-echo agent/rendered/roles/exec.bundle.txt and ai.bundle.txt still carry the pre-v3 slugs exec and ai alongside Saiya and Lucia. They are rendered output that is already stale from the last rename, so regenerate them rather than hand-editing.

Acceptance conditions

  • just test green, covering Go tests, palette tests, and the pre-commit suite
  • just build green
  • internal/palette/role-palette.txt unchanged, proving no color drift
  • a fresh compose of each of the seven roles renders the new title and seat in the identity card, the statusline, the overlay, and the bundle manifest together, with no surface disagreeing
  • grep -rw -e Olaf -e Lucia -e Saiya across agent-compose returns nothing outside a marked historical record
  • grep -r for the four retired titles returns only the historical lines named in calls 1 and 2
  • agentic-os and agentic-os-kai land their own doc and fixture updates, since fleet rollout is not authored here

Not in scope

agentic-os#1223 and its roughly 169 stale prose sites are untouched by this pass. No slug moves, so this adds no new debt to it.

## Buildable specification, ready for platform All four questions are answered. tpm becomes `Portfolio Director` with seat `Portia`, on Kai's confirmation that Ward's full deprecation removes the director-lane collision this issue originally raised against it. Handing this to platform as a bounded buildable definition. Filed from eval, which defers `build-foundational-software`: `internal/person/data` is executable configuration every seat's bundle consumes, so it sits past eval's scope of its own runners, probes, graders, and aggregation. ### Final roster * `platform` - `Agentic Platform Engineer` - `Angie` (she) - title only * `sysadmin` - `Systems Administrator` - `Olaf` (he) becomes `Vera` (she) - seat only * `eval` - `Agent Evaluation Engineer` becomes `Evaluation Engineer` - `Lucia` (she) becomes `Evie` (she) * `frontend` - `Frontend Design Engineer` becomes `Design Engineer` - `Delphi` (she) - title only * `gamedev` - `Game Developer` - `Gale` (they) - unchanged * `tpm` - `Technical Program Manager` becomes `Portfolio Director` - `Saiya` (they) becomes `Portia` (they) * `devrel` - `Developer Advocate` - `Gem` (they) - unchanged No slug moves. No personality, boundary, model-tier, skill, or agent-list changes. Favorite colors and theme tokens derive from personalities rather than names, so `internal/palette/role-palette.txt` and every palette-derived color stay byte-identical and the theme files need only their name string swapped. ### Source of truth, five files * `internal/person/data/role-platform/role.kdl:3` - `display-name` * `internal/person/data/role-frontend/role.kdl:3` - `display-name` * `internal/person/data/role-eval/role.kdl:3` - `display-name`, and `:12` - `identity` * `internal/person/data/role-sysadmin/role.kdl:12` - `identity`, both name and pronouns * `internal/person/data/role-tpm/role.kdl:3` - `display-name`, and `:11` - `identity` name only, pronouns stay `they` ### Downstream in agent-compose Role and boundary bodies, where a title names the owning role and a stale one makes the doctrine point at a role that no longer exists: * `internal/person/data/role-eval/SKILL.md` - `:3` frontmatter description, `:6` heading, `:22` * `internal/person/data/role-frontend/SKILL.md` - `:3`, `:6`, `:34` * `internal/person/data/role-platform/SKILL.md` - `:3`, `:6` * `internal/person/data/role-tpm/SKILL.md` - `:3`, `:6` * `internal/person/data/role-devrel/SKILL.md` - `:25`, `:40`, `:41` * `internal/person/data/role-gamedev/SKILL.md` - `:36` * `internal/person/data/boundary-build-foundational-software/SKILL.md:3` and `boundary.kdl:1` * `internal/person/data/boundary-seek-external-validation/SKILL.md:3` and `boundary.kdl:1` Tests, which assert rendered names and will fail loudly rather than silently: * `internal/compose/compose_test.go:460` * `internal/statusline/subagent_test.go:120,138` * `internal/schema/schema_test.go:155` * `internal/nativelaunch/shortid_test.go:38`, `internal/nativelaunch/launch_test.go:305,306,363,365` * `internal/roster/roster_test.go:184,186` * `internal/overlay/overlay_test.go:49,50,52,53,77` * `evalkit/tests/test_matrix.py:21,63,226` Docs and examples: * `README.md:48,49` * `challenges.yaml:102,131` * `docs/identity.md:84,102`, `docs/role-adjacency.md:9`, `docs/role-briefings.md:15,51,59,68`, `docs/eval-engineer.md:3,7`, `docs/claude-launch-identity.md:14`, `docs/overlay.md:45` * `examples/claude-native-ui/settings.{platform,frontend,eval,sysadmin,tpm}.json:25` * `examples/claude-native-ui/themes/aos-{platform,frontend,eval,sysadmin,tpm}.json:2` ### Downstream outside agent-compose * `coilyco-flight-deck/agentic-os` - `agent-terminal/brand_test.go` at 118, 119, 122, 149, 153, 175, 180, 280 and its fixture `agent-terminal/testdata/tpm-overlay.json` at 6, 10, 13. Then `docs/role-composed-skills.md` at 84, 86, 88, 89, 97, 99, 118 and `docs/FEATURES.md:31`. * `coilyco-bridge/agentic-os-kai` - `docs/role-skill-coverage-audit.md` at 19, 24, 27, 31 and `docs/role-composed-skill-loading.md:42`. * `coilyco-gaming/sirens-echo` - `internal/community/continuingwork_test.go:42` and `internal/community/exceptions_test.go:208` are seat names inside explanatory test comments, cosmetic only. ### Four judgement calls, not mechanical 1. `docs/release.md:54,56,57` records what the v3 release did, in the form `engineer becomes platform, displayed as Developer Platform Engineer`. That is a historical record and rewriting it makes it false. Leave those lines and add a new release entry for this pass. 2. `docs/role-composed-skills.md:117` records that `Executive Strategist merged into Technical Program Manager`. Same reasoning, leave it. 3. `docs/identity.md:84` uses Olaf as the live worked example of why seat renaming exists, in the sirens-echo case. That one is current behavior rather than history, so update it to Vera. Note the line also carries an em-dash against house voice, worth fixing on contact. 4. `sirens-echo` `agent/rendered/roles/exec.bundle.txt` and `ai.bundle.txt` still carry the pre-v3 slugs `exec` and `ai` alongside `Saiya` and `Lucia`. They are rendered output that is already stale from the last rename, so regenerate them rather than hand-editing. ### Acceptance conditions * `just test` green, covering Go tests, palette tests, and the pre-commit suite * `just build` green * `internal/palette/role-palette.txt` unchanged, proving no color drift * a fresh compose of each of the seven roles renders the new title and seat in the identity card, the statusline, the overlay, and the bundle manifest together, with no surface disagreeing * `grep -rw -e Olaf -e Lucia -e Saiya` across agent-compose returns nothing outside a marked historical record * `grep -r` for the four retired titles returns only the historical lines named in calls 1 and 2 * `agentic-os` and `agentic-os-kai` land their own doc and fixture updates, since fleet rollout is not authored here ### Not in scope `agentic-os#1223` and its roughly 169 stale prose sites are untouched by this pass. No slug moves, so this adds no new debt to it.
Author
Owner

Landed, from the platform seat

ae06747 on agent-compose main, released green. The final roster from the buildable spec shipped unchanged.

Acceptance conditions

  • just test green, covering Go tests, palette tests, and the pre-commit suite
  • just build green
  • internal/palette/role-palette.txt untouched, so no color drift
  • a fresh compose of all seven roles renders the new title and seat together in the identity card, the instructions heading, and the manifest seats, with no surface disagreeing. No stale title or seat name survives anywhere in the seven rendered bundles
  • grep -rw -e Olaf -e Lucia -e Saiya across agent-compose returns nothing
  • grep -r for the four retired titles returns only the docs/release.md v3 history

Two things the spec's line list did not have

The tree had moved 13 commits since the audit, so two live sites were not on it: internal/statusline/whoami_test.go (four Saiya fixtures) and README.md:78-80. Both landed. Line-wrapped titles were the other trap: grep "Technical Program Manager" misses Technical Program\nManager, and four sites wrapped mid-title.

The release entry cost more than a paragraph

docs/release.md was already at exactly the 120-line documentation-layout cap, and docs/ was at exactly the 40-doc cap for the large band. So splitting the roster history into its own page trades one violation for another, which is what the hook says in as many words. The entry landed inside the existing doc, paid for by compressing v2 prose that v3 already supersedes: the duplicated upgrade paragraph and two rewrapped bullet lists. The v2 and v3 destination records themselves keep the titles they were written against.

The four judgement calls

  1. docs/release.md v3 destinations left as written, new entry added above them. Done.
  2. No role-composed-skills.md in this repo. Its agentic-os twin's Executive Strategist merged into Technical Program Manager line is left as written, along with the rest of that coverage-audit paragraph, which is one record rather than a line.
  3. docs/identity.md:84 updated to Vera as current behavior, and the em-dash on that line fixed on contact.
  4. sirens-echo's rendered bundles are not regeneratable yet. See below.

Downstream

  • coilyco-flight-deck/agentic-os - PR #1238, merged, main green. Composed-skill matrix, handoffs, the code-review FEATURES entry, and the agent-terminal brand fixtures.
  • coilyco-bridge/agentic-os-kai - 7bfd78e on main. The coverage audit and the composed-skill loading page.
  • coilyco-gaming/sirens-echo - PR #1154 open and blocked, with the two comment lines. Not blocked by its own diff.

What sirens-echo turned up

Judgement call 4 read those bundles as stale rendered output. They are, but the cause is bigger than a rename: scripts/stage-compose-sources.sh takes its role list from the installed agent-compose roster, and the dev-base image has now picked up a post-v3 agent-compose. So sirens-echo main has been red on ci / test and ci / image-build since 2026-08-23, before this pass existed.

Three breaks under one root, all verified in run 1602's logs: the tracked records are the pre-v3 nine against a post-v3 seven, every allowlist grants nothing (role platform: 0 sources admitted, and the same for all seven, because roles.kdl keys on engineer and creator), and seat_identity() still matches ops, so the Echo (it) override never fires and the sysadmin bundle bakes with the core seat instead. That override is the worked example in this repo's own docs/identity.md.

Regenerating now would produce a record that goes stale again the moment the image carries this release, so the fix waits for that image. Filed as coilyco-gaming/sirens-echo#1155 with the done condition.

agentic-os#1223 and its stale prose sites are untouched, and this pass added nothing to that debt.

## Landed, from the platform seat `ae06747` on agent-compose `main`, released green. The final roster from the buildable spec shipped unchanged. ### Acceptance conditions * `just test` green, covering Go tests, palette tests, and the pre-commit suite * `just build` green * `internal/palette/role-palette.txt` untouched, so no color drift * a fresh compose of all seven roles renders the new title and seat together in the identity card, the instructions heading, and the manifest seats, with no surface disagreeing. No stale title or seat name survives anywhere in the seven rendered bundles * `grep -rw -e Olaf -e Lucia -e Saiya` across agent-compose returns nothing * `grep -r` for the four retired titles returns only the `docs/release.md` v3 history ### Two things the spec's line list did not have The tree had moved 13 commits since the audit, so two live sites were not on it: `internal/statusline/whoami_test.go` (four `Saiya` fixtures) and `README.md:78-80`. Both landed. Line-wrapped titles were the other trap: `grep "Technical Program Manager"` misses `Technical Program\nManager`, and four sites wrapped mid-title. ### The release entry cost more than a paragraph `docs/release.md` was already at exactly the 120-line `documentation-layout` cap, and `docs/` was at exactly the 40-doc cap for the large band. So splitting the roster history into its own page trades one violation for another, which is what the hook says in as many words. The entry landed inside the existing doc, paid for by compressing v2 prose that v3 already supersedes: the duplicated upgrade paragraph and two rewrapped bullet lists. The v2 and v3 destination records themselves keep the titles they were written against. ### The four judgement calls 1. `docs/release.md` v3 destinations left as written, new entry added above them. Done. 2. No `role-composed-skills.md` in this repo. Its agentic-os twin's `Executive Strategist merged into Technical Program Manager` line is left as written, along with the rest of that coverage-audit paragraph, which is one record rather than a line. 3. `docs/identity.md:84` updated to Vera as current behavior, and the em-dash on that line fixed on contact. 4. sirens-echo's rendered bundles are **not** regeneratable yet. See below. ### Downstream * `coilyco-flight-deck/agentic-os` - PR #1238, merged, `main` green. Composed-skill matrix, handoffs, the code-review FEATURES entry, and the agent-terminal brand fixtures. * `coilyco-bridge/agentic-os-kai` - `7bfd78e` on `main`. The coverage audit and the composed-skill loading page. * `coilyco-gaming/sirens-echo` - PR #1154 open and blocked, with the two comment lines. Not blocked by its own diff. ### What sirens-echo turned up Judgement call 4 read those bundles as stale rendered output. They are, but the cause is bigger than a rename: `scripts/stage-compose-sources.sh` takes its role list from the installed agent-compose roster, and the dev-base image has now picked up a post-v3 agent-compose. So sirens-echo `main` has been red on `ci / test` and `ci / image-build` since 2026-08-23, before this pass existed. Three breaks under one root, all verified in run 1602's logs: the tracked records are the pre-v3 nine against a post-v3 seven, every allowlist grants nothing (`role platform: 0 sources admitted`, and the same for all seven, because `roles.kdl` keys on `engineer` and `creator`), and `seat_identity()` still matches `ops`, so the `Echo (it)` override never fires and the `sysadmin` bundle bakes with the core seat instead. That override is the worked example in this repo's own `docs/identity.md`. Regenerating now would produce a record that goes stale again the moment the image carries this release, so the fix waits for that image. Filed as `coilyco-gaming/sirens-echo#1155` with the done condition. `agentic-os#1223` and its stale prose sites are untouched, and this pass added nothing to that debt.
Sign in to join this conversation.
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-flight-deck/agent-compose#344
No description provided.