The eval and tpm slugs moved to science and director, and this repository still keys role residency and six composed skills to the old ones #1354

Closed
opened 2026-08-28 19:15:52 +00:00 by coilyco-ops · 1 comment
Owner

Handover from the eval seat. Kai renamed two role slugs and I landed the agent-compose and housecast halves. The agentic-os half is roles.kdl policy, composed skill packages, aterm, and Python, all of which are build-foundational-software and belong to platform.

Separate from #1347, which is display names in aterm fixtures. This is the slug.

What landed elsewhere

  • eval becomes science - the slug now matches Applied Scientist and stops one token naming both the seat and the activity
  • tpm becomes director

In coilyco-flight-deck/agent-compose@97d6852 and housecast-v0.1.11, with coilyco-flight-deck/infrastructure PR 978 carrying the role/* labels.

The live consequence, and why nothing is on fire

.agents/roles.kdl declares role eval { and role tpm {, and it is the policy input that compiles ~/.agent-compose/repository-plan.yaml, whose roles: map is still keyed eval and tpm.

So acompose science <harness> and acompose director <harness> now name roles the plan does not carry. Per native-agent-workspaces that is the documented fallback rather than a failure: "a role the plan does not name" falls back to full residency, links no role-scoped worktree, and still reports itself isolated. Those two seats lose role-scoped projection until the plan is recompiled. Everything else is unaffected.

This is the one item worth doing first. The rest is naming.

Six composed skills carry a slug in their package name

roles.kdl binds them by glob, so the names and the globs move together or not at all:

  • composed-skill "tooling-eval-*" - tooling-eval-adversarial-verification, tooling-eval-state-machine-verification, tooling-eval-visual-verification
  • composed-skill "tooling-tpm-*" - tooling-tpm-product-brainstorming, tooling-tpm-product-signal-triangulation, tooling-tpm-program-decomposition

roles.kdl also names three tooling-tpm-* skills individually on the eval role, so those references move even if the packages do not.

This is a real decision rather than a mechanical edit, and it is platform's to make with Kai: either rename the six packages to tooling-science-* and tooling-director-* and update the globs, or decide the skill prefix names a practice rather than a seat and leave it. Renaming touches each directory, each SKILL.md frontmatter name, the globs, and every cross-reference. Not renaming leaves a permanent mismatch between the seat and its own tooling.

Measured blast radius

Counted on main at filing.

  • tpm - 117 occurrences across 36 files, and every one I sampled is role-sense. tpm has no other meaning in this repository.
  • eval - 172 occurrences, but the split matters: 94 are activity-sense (aos-eval, which ships from here, plus evalkit, eval-ref, evaluations) and only 13 are role-shaped. The rest need a per-occurrence read. aos-eval is the grading tool and must not move.

That asymmetry is the whole shape of the work: tpm is mechanical, eval is an editorial pass like #1223.

Known cost, accepted deliberately by Kai

director is a resurrected slug. It named a different seat before the v3 migration, and committed evaluation datasets in agent-compose still carry role: director and entity: eval meaning the retired seats. Those are frozen evidence and were left alone, so both tokens read differently depending on whether you are in a dataset or in current config.

director also already names Ward's merge lane in this repository, in agentic_os/generators/generate_git_workflow.py, tests/test_generate_git_workflow.py, tests/test_shell_agent_launch.py, docker/dev-base/ward-shell-entrypoint.sh, and .specgen/guardfiles/aosguard/forgejo.kdl. That is prose-level ambiguity rather than a parse collision, but a reader will now meet two senses of the word.

Acceptance

  • .agents/roles.kdl names science and director, and the repository plan recompiles so both seats get role-scoped projection again.
  • A decision is recorded on whether tooling-eval-* and tooling-tpm-* rename, and the globs match whatever is decided.
  • tpm no longer appears as a role slug anywhere in this repository.
  • Role-sense eval is renamed and activity-sense eval is untouched, aos-eval included.
  • Ward merge-lane director and role director are distinguishable to a reader wherever both could be meant.

#1347 for the display names in the same fixtures, #1223 for the standing prose sweep this joins, coilyco-flight-deck/agent-compose#344 for the slug-cost argument this takes the exception to.

Filed by Evie, eval seat, session ad84.

Handover from the eval seat. Kai renamed two role slugs and I landed the agent-compose and housecast halves. The agentic-os half is `roles.kdl` policy, composed skill packages, aterm, and Python, all of which are `build-foundational-software` and belong to platform. Separate from #1347, which is display names in aterm fixtures. This is the slug. ## What landed elsewhere * `eval` becomes **`science`** - the slug now matches Applied Scientist and stops one token naming both the seat and the activity * `tpm` becomes **`director`** In `coilyco-flight-deck/agent-compose@97d6852` and `housecast-v0.1.11`, with `coilyco-flight-deck/infrastructure` PR 978 carrying the `role/*` labels. ## The live consequence, and why nothing is on fire `.agents/roles.kdl` declares `role eval {` and `role tpm {`, and it is the policy input that compiles `~/.agent-compose/repository-plan.yaml`, whose `roles:` map is still keyed `eval` and `tpm`. So `acompose science <harness>` and `acompose director <harness>` now name roles the plan does not carry. Per [native-agent-workspaces](../src/branch/main/docs/native-agent-workspaces.md) that is the documented fallback rather than a failure: "a role the plan does not name" falls back to full residency, links no role-scoped worktree, and still reports itself isolated. Those two seats lose role-scoped projection until the plan is recompiled. Everything else is unaffected. **This is the one item worth doing first.** The rest is naming. ## Six composed skills carry a slug in their package name `roles.kdl` binds them by glob, so the names and the globs move together or not at all: * `composed-skill "tooling-eval-*"` - `tooling-eval-adversarial-verification`, `tooling-eval-state-machine-verification`, `tooling-eval-visual-verification` * `composed-skill "tooling-tpm-*"` - `tooling-tpm-product-brainstorming`, `tooling-tpm-product-signal-triangulation`, `tooling-tpm-program-decomposition` `roles.kdl` also names three `tooling-tpm-*` skills individually on the `eval` role, so those references move even if the packages do not. **This is a real decision rather than a mechanical edit**, and it is platform's to make with Kai: either rename the six packages to `tooling-science-*` and `tooling-director-*` and update the globs, or decide the skill prefix names a practice rather than a seat and leave it. Renaming touches each directory, each `SKILL.md` frontmatter `name`, the globs, and every cross-reference. Not renaming leaves a permanent mismatch between the seat and its own tooling. ## Measured blast radius Counted on `main` at filing. * `tpm` - 117 occurrences across 36 files, and every one I sampled is role-sense. `tpm` has no other meaning in this repository. * `eval` - 172 occurrences, but the split matters: **94 are activity-sense** (`aos-eval`, which ships from here, plus `evalkit`, `eval-ref`, `evaluations`) and only **13 are role-shaped**. The rest need a per-occurrence read. `aos-eval` is the grading tool and must not move. That asymmetry is the whole shape of the work: `tpm` is mechanical, `eval` is an editorial pass like #1223. ## Known cost, accepted deliberately by Kai `director` is a resurrected slug. It named a different seat before the v3 migration, and committed evaluation datasets in agent-compose still carry `role: director` and `entity: eval` meaning the retired seats. Those are frozen evidence and were left alone, so both tokens read differently depending on whether you are in a dataset or in current config. `director` also already names Ward's merge lane in this repository, in `agentic_os/generators/generate_git_workflow.py`, `tests/test_generate_git_workflow.py`, `tests/test_shell_agent_launch.py`, `docker/dev-base/ward-shell-entrypoint.sh`, and `.specgen/guardfiles/aosguard/forgejo.kdl`. That is prose-level ambiguity rather than a parse collision, but a reader will now meet two senses of the word. ## Acceptance - [ ] `.agents/roles.kdl` names `science` and `director`, and the repository plan recompiles so both seats get role-scoped projection again. - [ ] A decision is recorded on whether `tooling-eval-*` and `tooling-tpm-*` rename, and the globs match whatever is decided. - [ ] `tpm` no longer appears as a role slug anywhere in this repository. - [ ] Role-sense `eval` is renamed and activity-sense `eval` is untouched, `aos-eval` included. - [ ] Ward merge-lane `director` and role `director` are distinguishable to a reader wherever both could be meant. ## Related #1347 for the display names in the same fixtures, #1223 for the standing prose sweep this joins, `coilyco-flight-deck/agent-compose#344` for the slug-cost argument this takes the exception to. Filed by Evie, eval seat, session `ad84`.
Author
Owner

A third slug moved, and it adds two more composed skills

devrel becomes advocate, in coilyco-flight-deck/agent-compose@d1395f8 and housecast-v0.1.12, with coilyco-flight-deck/infrastructure PR 979 carrying the label.

This one exists because of the title revert: Developer Relations went back to Developer Advocate, which left devrel as the only slug that no longer derived from its own title. Every slug on the roster now derives from its title.

The full target set for this issue is now:

  • eval to science
  • tpm to director
  • devrel to advocate

What it adds here

.agents/roles.kdl gains a third stale role key, and ~/.agent-compose/repository-plan.yaml a third stale entry, so acompose advocate <harness> joins the two seats falling back to full residency. Same documented fallback, same fix: update roles.kdl and recompile.

Two more composed skills carry the slug in their package name, bound by the same glob mechanism:

  • composed-skill "tooling-devrel-*" - tooling-devrel-signal-routing, tooling-devrel-trust-repair

So the rename-or-keep decision now covers eight packages across three prefixes, not six. It is still one decision, and it is still platform's to make with Kai: either the prefix names the seat and all eight move, or it names a practice and none do. Splitting it would be the worst outcome.

.agents/harness-launch-profiles.yaml also keys on devrel.

Cost

Cheapest of the three. devrel carries exactly one sense across both repositories, and it appears nowhere in frozen evaluation evidence, so unlike eval it needs no per-occurrence read and unlike director it resurrects nothing. Roughly 30 occurrences here.

Regenerate against a build containing d1395f8 or later.

Evie, science seat, session ad84.

## A third slug moved, and it adds two more composed skills `devrel` becomes **`advocate`**, in `coilyco-flight-deck/agent-compose@d1395f8` and `housecast-v0.1.12`, with `coilyco-flight-deck/infrastructure` PR 979 carrying the label. This one exists because of the title revert: Developer Relations went back to Developer Advocate, which left `devrel` as the only slug that no longer derived from its own title. Every slug on the roster now derives from its title. The full target set for this issue is now: * `eval` to **`science`** * `tpm` to **`director`** * `devrel` to **`advocate`** ## What it adds here `.agents/roles.kdl` gains a third stale role key, and `~/.agent-compose/repository-plan.yaml` a third stale entry, so `acompose advocate <harness>` joins the two seats falling back to full residency. Same documented fallback, same fix: update `roles.kdl` and recompile. Two more composed skills carry the slug in their package name, bound by the same glob mechanism: * `composed-skill "tooling-devrel-*"` - `tooling-devrel-signal-routing`, `tooling-devrel-trust-repair` So the rename-or-keep decision now covers **eight** packages across three prefixes, not six. It is still one decision, and it is still platform's to make with Kai: either the prefix names the seat and all eight move, or it names a practice and none do. Splitting it would be the worst outcome. `.agents/harness-launch-profiles.yaml` also keys on `devrel`. ## Cost Cheapest of the three. `devrel` carries exactly one sense across both repositories, and it appears nowhere in frozen evaluation evidence, so unlike `eval` it needs no per-occurrence read and unlike `director` it resurrects nothing. Roughly 30 occurrences here. Regenerate against a build containing `d1395f8` or later. Evie, science seat, session `ad84`.
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/agentic-os#1354
No description provided.