Watch
3
fix(compose): follow the composed-source renames the roster reflow made #1151
Closed
coilyco-ops
wants to merge 2 commits from
fix/compose-roster-v3-renames into main
pull from: fix/compose-roster-v3-renames
merge into: coilyco-gaming:main
coilyco-gaming:main
coilyco-gaming:chore/full-name-attribution
coilyco-gaming:chore/git-workflow-block
coilyco-gaming:aos/claude/vk48-roster-v3
coilyco-gaming:aos/claude/sj87-entity-attribute
coilyco-gaming:aos/claude/sj87-challenge
coilyco-gaming:aos/claude/turn-duration-buckets
coilyco-gaming:aos/claude/turn-stages-over-cap
coilyco-gaming:aos/claude/turn-stages-hold-doc
coilyco-gaming:aos/claude/turn-iteration-cap
coilyco-gaming:book-leads-the-glyphs
coilyco-gaming:science-and-web-culture-packs
coilyco-gaming:record-lane-role-voice-pairings
coilyco-gaming:catalogue-stage-phrase
coilyco-gaming:progress-rows-one-knob
coilyco-gaming:skill-read-worklog-detail
coilyco-gaming:librarian-lookup-first
coilyco-gaming:librarian-person-package
coilyco-gaming:feat/dowel-no-boundaries
coilyco-gaming:aos/claude/gh1035-no-blank-posts
coilyco-gaming:aos/claude/gh1036-harness-thread-name
coilyco-gaming:fix/thread-names
coilyco-gaming:feat/trajectory-completes
coilyco-gaming:fix/prompt-budgets
coilyco-gaming:aos/claude/docs-cut-2
coilyco-gaming:aos/claude/ka54-thread-ownership
coilyco-gaming:aos/claude/admission-bound
coilyco-gaming:aos/claude/gh1025-roster-reexport
coilyco-gaming:aos/claude/docs-strip-archaeology
coilyco-gaming:feat/temporal-mcp
coilyco-gaming:aos/claude/dowel-board-moxn-write-boundaries
coilyco-gaming:aos/claude/ue65-moxn-write-framing
coilyco-gaming:aos/claude/progress-backoff
coilyco-gaming:aos/claude/bound-scratch-search-2
coilyco-gaming:aos/claude/unblock-main
coilyco-gaming:aos/claude/tool-breaker
coilyco-gaming:fix/roster-core-eager
coilyco-gaming:aos/claude/finish-dowel-rename
coilyco-gaming:fix/971-skill-contract
coilyco-gaming:aos/claude/model-answered-not-unavailable
coilyco-gaming:aos/claude/mcp-singular-command
coilyco-gaming:task/moxn-and-temporal-skills
coilyco-gaming:aos/claude/ue65-temporal-brand
coilyco-gaming:task/dowel-site-work-tier
coilyco-gaming:aos/claude/ue65-roster-drift
coilyco-gaming:fix/dropped-turn-always-speaks
coilyco-gaming:aos/claude/folded-ask-coverage
coilyco-gaming:aos/claude/dowel-board
coilyco-gaming:aos/claude/dowel-pronouns
coilyco-gaming:feat/trajectory-keyed-on-the-message
coilyco-gaming:aos/claude/coalesce-discord-lane
coilyco-gaming:task/derive-shipped-profiles
coilyco-gaming:fix/ship-the-dowel-skill-root
coilyco-gaming:aos/claude/eval-context
coilyco-gaming:fix/bundle-references-reachable
coilyco-gaming:aos/claude/eval-docs-one-page
coilyco-gaming:aos/claude/dowel-engineer-suite
coilyco-gaming:fix/catalogue-clone-cache
coilyco-gaming:feat/engineer-role-graph
coilyco-gaming:task/free-the-config-numbers
coilyco-gaming:aos/claude/dowel-site-work
coilyco-gaming:aos/claude/dowel-prose
coilyco-gaming:aos/claude/mx76-derive-knobs
coilyco-gaming:issue-859-on-demand-skill-reads
coilyco-gaming:issue-651-ship-well-formed-replies
coilyco-gaming:issue-852-filing-validity
coilyco-gaming:issue-916-calculator-tool
coilyco-gaming:issue-854-feature-flag-table
coilyco-gaming:issue-866-role-mention-summons
coilyco-gaming:issue-858-grounding-bound-per-server
coilyco-gaming:issue-899-progress-keeps-updating
coilyco-gaming:issue-900-rollup-mirrors-worklog
coilyco-gaming:issue-901-raise-progress-cadence
coilyco-gaming:issue-904-thread-title-length
coilyco-gaming:issue-905-http-reachability
coilyco-gaming:issue-855-turn-clock
coilyco-gaming:issue-895-silent-turn
coilyco-gaming:issue-873-mcp-tool-span-error
coilyco-gaming:issue-878-settle-dropped-jobs
coilyco-gaming:aos/claude/aw85-se-bands
coilyco-gaming:aos/claude/hs68-model-rejected
coilyco-gaming:aos/claude/hs68-effect-telemetry
coilyco-gaming:aos/claude/hs68-temporal-mirror
coilyco-gaming:aos/claude/hs68-prompt-commands
coilyco-gaming:aos/claude/hs68-model-idle-timeout
coilyco-gaming:aos/claude/hs68-prompt-command-intent
coilyco-gaming:aos/claude/hs68-consult-label-name
coilyco-gaming:aos/claude/hs68-grant-denial-403
coilyco-gaming:aos/claude/hs68-queued-jobs-dropped
coilyco-gaming:aos/claude/hs68-knob-guard
coilyco-gaming:aos/claude/bk79-agent-folders
coilyco-gaming:aos/claude/bk79-own-instructions
coilyco-gaming:aos/claude/ym96-docs-band
coilyco-gaming:aos/claude/bk79-server-instructions
coilyco-gaming:aos/claude/aw85-mcp-beaver-doc
coilyco-gaming:aos/claude/bk79-session-workspace
coilyco-gaming:aos/claude/yt58-org-relationship
coilyco-gaming:aos/claude/bk79-numeric-config
coilyco-gaming:aos/claude/xu59-just-boundaries
coilyco-gaming:aos/claude/xu59-eval-board
coilyco-gaming:aos/claude/bk79-phrase-telemetry
coilyco-gaming:aos/claude/bk79-object-emoji
coilyco-gaming:aos/claude/xh55-otlp-logs
coilyco-gaming:aos/claude/aw85-thread-prefill
coilyco-gaming:aos/claude/wy58-thread-prefill-always
coilyco-gaming:aos/claude/wy58-thread-prefill
coilyco-gaming:aos/claude/xh55-move-to-repo
coilyco-gaming:aos/claude/wy58-thread-title-length
coilyco-gaming:aos/claude/xh55-filing-trigger
coilyco-gaming:aos/claude/yt58-worklog-embed
coilyco-gaming:aos/claude/aw85-relative-brevity
coilyco-gaming:aos/claude/xh55-reasoning-roundtrip
coilyco-gaming:aos/claude/yt58-clock-rotation
coilyco-gaming:aos/claude/yt58-unbreak-main
coilyco-gaming:aos/claude/bk79-test-build-break
coilyco-gaming:aos/claude/yt58-partial-refusal
coilyco-gaming:aos/claude/aw85-turn-failure-classify
coilyco-gaming:aos/claude/aw85-outbound-spill
coilyco-gaming:aos/claude/xh55-budget-spent-cause
coilyco-gaming:aos/claude/wy58-bundles-not-content
coilyco-gaming:aos/claude/wy58-refusal-reason
coilyco-gaming:aos/claude/yt58-role-snapshot-gate
coilyco-gaming:aos/claude/xh55-docker-probe
coilyco-gaming:aos/claude/bk79-grounding-tools
coilyco-gaming:aos/claude/az59-gate-span
coilyco-gaming:aos/claude/az59-pg-jobstore
coilyco-gaming:eng/roster-request-headers
coilyco-gaming:eng/roster-headers
coilyco-gaming:eng/list-the-mcps
coilyco-gaming:aos/claude/mg96-fm
coilyco-gaming:eng/name-echos-seat
coilyco-gaming:eng/unpin-the-card-wording
coilyco-gaming:olaf/remove-irl-physical
coilyco-gaming:aos/claude/mg96
coilyco-gaming:eng/echo-composes-ops
coilyco-gaming:quail/two-rows-not-four
coilyco-gaming:fix/two-failures-two-verdicts
coilyco-gaming:feat/an-emitted-message-is-not-emitted-twice
coilyco-gaming:quail/partial-coverage-outcome
coilyco-gaming:feat/ten-minutes-or-ten-messages
coilyco-gaming:feat/a-waiting-turn-says-how-long
coilyco-gaming:feat/a-job-may-emit-content
coilyco-gaming:quail/round-fanout-unbounded
coilyco-gaming:quail/adversarial-reply-ceiling
coilyco-gaming:docs/list-the-open-pull-requests
coilyco-gaming:quail/principal-id-stays-out-of-the-prompt
coilyco-gaming:fix/every-label-in-a-wildcard-prefix-is-a-label
coilyco-gaming:docs/the-battery-assumes-two-checks-it-does-not-run
coilyco-gaming:fix/a-rest-failure-keeps-its-status
coilyco-gaming:quail/retag-label-rows
coilyco-gaming:quail/adjacency-guard-row
coilyco-gaming:test/pin-names-the-issue-that-owns-it
coilyco-gaming:test/pin-points-at-a-live-issue
coilyco-gaming:quail/job-outcome-discarded
coilyco-gaming:fix/repair-exhaustion-is-not-an-outage
coilyco-gaming:quail/reasoning-omitempty-pin
coilyco-gaming:docs/label-id-silently-drops
coilyco-gaming:quail/gating-pack-markup-gap
coilyco-gaming:fix/instance-name-reads-identity
coilyco-gaming:docs/indistinguishable-542-resolution
coilyco-gaming:fix/instance-name-not-a-live-service
coilyco-gaming:quail/unwired-capability-guard
coilyco-gaming:fix/repair-path-reasoning-content
coilyco-gaming:quail/indistinguishable-values-recurrence
coilyco-gaming:quail/identity-short-form-rows
coilyco-gaming:quail/repair-path-reasoning-content
coilyco-gaming:docs/verify-a-write-landed-claude
coilyco-gaming:quail/host-label-shape-corpus
coilyco-gaming:docs/a-deploy-owned-file-has-two-shapes-claude
coilyco-gaming:fix/a-roster-path-must-name-servers-claude
coilyco-gaming:fix/every-label-before-the-suffix-claude
coilyco-gaming:fix/a-first-label-must-exist-claude
coilyco-gaming:feat/tune-the-timeouts-from-deployment-claude
coilyco-gaming:qa/protocol-limits-are-not-dials
coilyco-gaming:feat/a-wildcard-is-not-a-suffix-claude
coilyco-gaming:feat/retry-what-fails-fast-claude
coilyco-gaming:fix/name-the-deliberate-hold-claude
coilyco-gaming:test/the-access-check-exit-codes-claude
coilyco-gaming:build/ship-the-access-check-claude
coilyco-gaming:qa/callers-not-reachability
coilyco-gaming:qa/pin-the-unwired-thread-binding
coilyco-gaming:feat/an-offline-access-policy-gate-claude
coilyco-gaming:test/the-notice-detaches-twice-claude
coilyco-gaming:docs/say-what-the-job-thread-does-claude
coilyco-gaming:fix/a-notice-does-not-thread-claude
coilyco-gaming:fix/one-invocation-is-a-phrase-claude
coilyco-gaming:fix/a-moment-ago-is-this-turn
coilyco-gaming:fix/main-is-red-on-the-adverb-row
coilyco-gaming:fix/an-adverb-does-not-break-the-auxiliary
coilyco-gaming:qa/score-the-575-fix
coilyco-gaming:feat/a-reply-names-its-subject
coilyco-gaming:eng/a-turn-is-not-the-past
coilyco-gaming:fix/since-you-asked-is-this-turn
coilyco-gaming:docs/a-default-that-reads-as-an-answer
coilyco-gaming:fix/a-nameless-tool-is-not-the-server
coilyco-gaming:qa/pin-the-outage-state
coilyco-gaming:fix/a-session-lifetime-is-not-a-latency
coilyco-gaming:fix/an-undated-passive-is-still-a-claim
coilyco-gaming:fix/main-is-red-on-the-corpus
coilyco-gaming:fix/an-undated-passive-is-a-claim
coilyco-gaming:eng/a-session-is-not-a-request
coilyco-gaming:fix/a-self-claim-in-the-simple-past
coilyco-gaming:qa/extend-grounding-corpus
coilyco-gaming:fix/a-tool-never-offered-is-not-a-tool-declined
coilyco-gaming:eng/one-doc-for-the-tracker-surface
coilyco-gaming:eng/say-what-is-switched-on
coilyco-gaming:fix/evaluation-is-not-the-production-service
coilyco-gaming:qa/pin-the-listing-attribute
coilyco-gaming:eng/split-five-docs-off-the-cap
coilyco-gaming:eng/concurrent-means-goroutines
coilyco-gaming:eng/split-the-tracker-surface
coilyco-gaming:test/the-first-label-of-a-hostname
coilyco-gaming:fix/a-cache-hit-is-not-a-round-trip
coilyco-gaming:qa/pin-the-budget-ladder
coilyco-gaming:fix/the-first-label-of-a-hostname
coilyco-gaming:eng/the-scratchpad-assumes-one-replica
coilyco-gaming:fix/a-person-is-named-in-prose
coilyco-gaming:docs/jobs-are-single-process
coilyco-gaming:qa/enumerate-the-mention-positions
coilyco-gaming:eng/split-the-response-inventory
coilyco-gaming:fix/green-main-doc-cap-and-stale-characterizations
coilyco-gaming:eng/main-is-green-again
coilyco-gaming:eng/split-the-mention-scope
coilyco-gaming:fix/mentions-doc-over-cap
coilyco-gaming:qa/unredden-the-code-span-pin
coilyco-gaming:qa/pin-the-code-span-collision
coilyco-gaming:eng/code-spans-are-not-prose
coilyco-gaming:feat/a-thread-title-says-what-it-is-for
coilyco-gaming:fix/discord-markup-is-not-prose-either
coilyco-gaming:eng/mark-the-turn-once
coilyco-gaming:fix/a-name-in-a-url-is-not-a-person
coilyco-gaming:qa/pin-every-reaction-is-emitted
coilyco-gaming:eng/mentions-skip-link-spans
coilyco-gaming:fix/one-step-owns-every-service-suffix
coilyco-gaming:qa/pin-the-mention-url-collision
coilyco-gaming:docs/the-roster-is-member-influenced
coilyco-gaming:docs/what-a-mention-can-reach
coilyco-gaming:qa/pin-the-documented-glyphs
coilyco-gaming:feat/naming-someone-reaches-them
coilyco-gaming:qa/pin-the-sandbox-label-wiring
coilyco-gaming:qa/pin-the-truncated-receipt
coilyco-gaming:feat/the-harness-labels-what-it-files
coilyco-gaming:qa/compare-a-case-by-marshalling
coilyco-gaming:fix/one-spelling-for-the-status-vocabulary
coilyco-gaming:qa/declare-pack-divergence
coilyco-gaming:fix/the-reactions-match-the-approved-vocabulary
coilyco-gaming:fix/a-file-path-is-just-a-file-path
coilyco-gaming:qa/pin-the-mapped-tailnet-form
coilyco-gaming:fix/a-truncated-page-says-so
coilyco-gaming:fix/the-extraction-case-detects-a-dump
coilyco-gaming:docs/the-consult-label-tracks-the-thread
coilyco-gaming:feat/the-eval-can-forge-a-turn
coilyco-gaming:fix/refuse-the-tailnet-range
coilyco-gaming:qa/pin-the-fail-heading-count
coilyco-gaming:feat/a-bounded-fetch-tool
coilyco-gaming:fix/preserve-the-longform-probe-pack
coilyco-gaming:qa/pin-the-lane-gate
coilyco-gaming:qa/preserve-the-longform-pack
coilyco-gaming:fix/the-prompt-is-not-a-secret
coilyco-gaming:fix/a-reference-never-loses-to-the-footer
coilyco-gaming:qa/preserve-the-probe-packs
coilyco-gaming:feat/a-trusted-caller-on-the-tailnet
coilyco-gaming:fix/capability-tells-the-truth-about-the-scratchpad
coilyco-gaming:qa/echo-battery-negative-control
coilyco-gaming:fix/one-fail-block-not-two
coilyco-gaming:feat/tool-call-footer
coilyco-gaming:fix/guard-the-extraction-case
coilyco-gaming:feat/canonical-phrases-by-key
coilyco-gaming:fix/the-progress-line-is-a-reply-too
coilyco-gaming:qa/pin-the-agent-recognition-case
coilyco-gaming:qa/pin-the-tool-name-markup-guards
coilyco-gaming:feat/five-second-buffer
coilyco-gaming:fix/a-failing-case-shows-the-reply
coilyco-gaming:fix/extraction-case-stops-penalising-compliance
coilyco-gaming:fix/a-security-case-that-penalises-compliance
coilyco-gaming:feat/deny-actually-denies
coilyco-gaming:feat/job-refusals-reach-telemetry
coilyco-gaming:fix/land-the-harness-refresh-on-main
coilyco-gaming:feat/a-long-reply-gets-a-thread
coilyco-gaming:feat/the-thinking-line-shows-it-is-working
coilyco-gaming:feat/roster-hour-ttl-and-refresh
coilyco-gaming:refactor/every-number-in-one-file
coilyco-gaming:feat/agent-can-refresh-its-roster
coilyco-gaming:fix/size-refusal-is-not-a-parse-error
coilyco-gaming:fix/budget-base-above-the-reasoning-floor
coilyco-gaming:fix/one-number-for-the-progress-cadence
coilyco-gaming:fix/gate-sees-a-new-file
coilyco-gaming:fix/one-meaning-for-channel-id
coilyco-gaming:fix/look-up-verbs-cannot-match
coilyco-gaming:feat/recognise-a-trace-lookup-request
coilyco-gaming:feat/discord-identifiers-on-the-turn-span
coilyco-gaming:fix/budget-failure-names-the-reasoning-spend
coilyco-gaming:feat/notice-carries-the-trace-id
coilyco-gaming:qa/cut-run-stops-calling
coilyco-gaming:docs/merge-lane-closing-reference
coilyco-gaming:eng/gate-knows-the-lane
coilyco-gaming:eng/feature-inventory-catchup
coilyco-gaming:fix/rate-dataset-survives-a-cut-run
coilyco-gaming:test/consolidate-pack-coverage
coilyco-gaming:pr-lane-318
coilyco-gaming:fix/flip-unknown-field-rows
coilyco-gaming:test/turn-unknown-fields
coilyco-gaming:fix/rate-doc-over-cap
coilyco-gaming:test/language-scope-characterization
coilyco-gaming:fix/pronoun-case-cannot-fire
coilyco-gaming:fix/main-red-again
coilyco-gaming:fix/main-is-red-doc-cap
coilyco-gaming:fix/gate-negated-accuracy-claim
coilyco-gaming:fix/stale-skip-allowlist-note
coilyco-gaming:test/definition-must-reject
coilyco-gaming:test/gate-covers-every-pack
coilyco-gaming:test/bucket-table-bound
coilyco-gaming:test/compose-deny-offline
coilyco-gaming:fix/symlink-test-skips-itself
coilyco-gaming:test/build-revision
coilyco-gaming:fix/eviction-corpus-green
coilyco-gaming:test/eviction-corpus
coilyco-gaming:test/duration-config
coilyco-gaming:test/rune-boundary
coilyco-gaming:test/send-bounds
coilyco-gaming:test/reserved-path-spellings
coilyco-gaming:test/data-borne-injection
coilyco-gaming:test/scratch-partition-collision
coilyco-gaming:test/capability-docs-all
coilyco-gaming:test/injection-cases
coilyco-gaming:docs/http-contract-retry-after
coilyco-gaming:test/capability-reach
coilyco-gaming:test/rate-cases-from-192
coilyco-gaming:test/score-order
coilyco-gaming:test/capability-doc-matches-code
coilyco-gaming:test/grounding-action-claim-corpus
coilyco-gaming:test/http-turn-contract
coilyco-gaming:feat/require-rate-limit-on-open-guilds
coilyco-gaming:fix/pr-image-build
coilyco-gaming:fix/compose-stage-inputs
coilyco-gaming:feat/sirens-deep-compose-wiring
coilyco-gaming:fix/deep-forgejo-mcp
coilyco-gaming:refactor/evaluation-pack-yaml
coilyco-gaming:coilysiren-patch-1
coilyco-gaming:feat/deep-steam-mcp
coilyco-gaming:feat/drop-issue-envelope
coilyco-gaming:fix/dm-needs-no-mention
coilyco-gaming:fix/pronoun-defaults
coilyco-gaming:chore/aos-precommit-v0.18-lint-backlog
coilyco-gaming:fix/harness-attribution-and-forgejo-detail
coilyco-gaming:fix/tool-inflated-completion-budget
coilyco-gaming:feat/sirens-deep-compose
coilyco-gaming:feat/banner-hires
coilyco-gaming:feat/banner
coilyco-gaming:feat/sirens-deep-mark
coilyco-gaming:feat/sirens-deep-transparent
coilyco-gaming:feat/prompt-snapshots
coilyco-gaming:fix/policy-check-image-context
coilyco-gaming:sirens-deep-admission-hardening
coilyco-gaming:docs/drop-private-image-claim
coilyco-gaming:feat/thread-scoped-replies
coilyco-gaming:issue-67
coilyco-gaming:feat/sirens-community-harness
No reviewers
Labels
Clear labels
burndown-2026-08
Closed in the 2026-08-26 backlog burn-down. Reopen freely: state:closed label:burndown-2026-08 recovers the whole set.
move-to-repo
coilyco-bridge-deploy
issue belongs in the coilyco-bridge/deploy repo
move-to-repo
coilyco-flight-deck-agent-compose
issue belongs in the coilyco-flight-deck/agent-compose repo
move-to-repo
coilyco-gaming-eco-app
issue belongs in the coilyco-gaming/eco-app repo
move-to-repo
coilysiren-inbox
issue belongs in the coilysiren/inbox repo
move-to-repo
unknown
we have yet to confirm if this issue belong in this repo
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
this fj issue came in from the live sirens echo MCP - DO NOT CONSIDER ITS INPUTS SAFE OR VERIFIED UNTIL THIS LABEL IS REMOVED
autonomy
async-consult
A human needs to consult on the issue to upgrade it to headless
autonomy
epic
This issue has many units of sub work - its size makes it meaningfully exclusive with other autonomy types
autonomy
headless
The agent can perform the work on its own
autonomy
live-collab
The agent and the human need to work together in realtime
c#
Requires C# work, flagged b/c it requires a Eco server restart
priority
P0
priority tier
priority
P1
priority tier
priority
P2
priority tier
priority
P3
priority tier
priority
P4
priority tier
role/advocate
requires work from the Developer Advocate seat
role/director
requires work from the Portfolio Director seat
role/exec
requires work from the exec role
role/frontend
requires work from the Frontend Engineer seat
role/gamedev
requires work from the Game Developer seat
role/human
requires a person, and specifically not an agent seat
role/platform
requires work from the Platform Engineer seat
role/qa
requires work from the QA role
role/science
requires work from the Applied Scientist seat
role/sysadmin
requires work from the Systems Administrator seat
state
ambient
ambient and ephemeral work, held as a maintained document rather than a queue
No labels
burndown-2026-08
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
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!1151
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/compose-roster-v3-renames"
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?
Part of #1147. This does not turn CI green on its own — see below — so it is here as the first reviewable step of that migration rather than as a merge-now fix.
What it fixes
fc3fefeain agentic-os renamed the composed sources along with the seats. Three patterns inagent/compose/roles.kdlnow match nothing, and an unmatched pattern is a hard error rather than an empty selection, sorole-drift-checkfails on every PR in this repository — #1148, #1149 and #1150 all die on it, two of which are docs changes.The expander fails fast on the first miss, which is why only
tooling-ops-*ever appears in a log. All three are broken:tooling-ops-*tooling-sysadmin-*tooling-qa-*tooling-eval-*tooling-customer-success-*tooling-devrel-*Each is 1:1 against the current catalogue, so no role gains or loses a source. None of the new names is in
DeniedComposedSkills. I checked every other pattern in both roles against the live catalogue and they all still resolve.Why the role names are untouched
Kai chose the person-package route for #1147:
engineer,creatorandopsbecome roles this repository owns, the waylibrarianalready is, rather than being remapped onto Core Roster slugs. SoSIRENS_ECHO_ROLEstays as deployed,coilyco-bridge/deployneeds no change, and theseat_identity()/seat_boundary_omissions()wiring instage-compose-sources.shkeeps working unedited.That makes this diff safe and permanent under the chosen route: whatever the person package ends up containing, these three patterns had to be renamed anyway.
What still fails
With the expander past,
role-drift-checkreaches the next gate and stops there:agent/rendered/roles/still records the pre-reflow roster (ai,creator,design,director,engineer,exec,librarian,ops,qa). Rebaking it now would record every v3 seat as bare, which is the defect #955 measured, so the snapshot is deliberately left alone until the person package exists.Remaining work, all on #1147
Building the package means lifting the three deleted roles from
agent-compose@12c7198^: theirrole.kdlnodes, their charter SKILL.md bodies, and nine referenced personalities of which only four still exist in core, socurious,reflectiveandnurturingneed vendoring alongside themeticulousandeditorialalready here.One design question blocks it, and I am not guessing at it: the lifted
opsrole carriesboundary "suggest-human-comms" "seek-external-validation", andseek-external-validation's owning role does not exist in the package.librariansidesteps this by declaring no boundary entities at all, but doing that toopssilently drops two boundaries from Echo, a running lane. Asked on #1147.agentic-os fc3fefea renamed the composed sources along with the seats, and this allowlist still names the old families. Three patterns match nothing, and an unmatched pattern is a hard error rather than an empty selection, so role-drift-check fails on every pull request in this repository. The expander fails fast on the first miss, which is why only tooling-ops-* is ever in the log. All three are here: tooling-ops-* -> tooling-sysadmin-* (4 sources) tooling-qa-* -> tooling-eval-* (3 sources) tooling-customer-success-* -> tooling-devrel-* (2 sources) Each is 1:1 against the current catalogue, so no role gains or loses a source, and none of the new names is in DeniedComposedSkills. Every other pattern in both roles still resolves. This is the half of #1147 that does not depend on the seat decision. The role names stay engineer and creator, because those lanes are moving into this repository's own person package rather than onto Core Roster slugs, so SIRENS_ECHO_ROLE and the seat wiring in stage-compose-sources.sh are untouched. CI does not go green on this alone. With the expander past, role-drift-check reaches the recorded bundles, which still describe the pre-reflow roster and are rebaked by the rest of #1147. 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> Agent-Role: platformThe CI run on this branch failed on a Forgejo outage rather than on the change:
Exit 128 and a two-minute connect timeout, at 08:48-08:50, which is the same window the forge was unreachable from my host. Nothing to do with the renames. I could not re-run it:
pr update500s becausemainhas not moved, and the rerun bridge wants a write-scopedFORGEJO_TOKENI would rather not go fetch for a cosmetic re-run on a PR that is not merge-ready anyway.So I verified the claim locally against this exact commit instead, which isolates it better than a CI run does:
matches nothingis gone and it now stops at the recorded bundles, which is exactly where the PR body says it stops. The renames do what they claim; the remaining gate is the person package on #1147.Worth noting separately
role-drift-checkclones agentic-os over the network on every run, so a forge blip is indistinguishable from a real drift failure and takes the wholetestjob with it.scripts/task.shalready prefers a local$HOME/projects/coilyco-flight-deck/agentic-oscheckout and only clones when that is absent, so the CI image is the case with no cached catalogue. A pinned or cached catalogue in the image, or a retry around the clone, would stop the forge being a hard dependency of this gate. Not filing it as part of #1147, since it is an independent fragility.Kai took the
creatoroption, so the rest of #1147 is on this branch now. This PR is the whole migration, not step one — the body above describes only the first commit.role-drift-checkpasses locally, along withgo build,go vet,go test ./...andpre-commit run --all-files.The check that mattered
opsis Echo, a running lane, so its recorded bundle is where a mistake would land. It recomposes with zero selection change:Same seat (Echo, it), same tier, same three personalities, same seven skills, and
boundary-seek-external-validationstill present — which is the whole point of moving that boundary tocreatorrather than dropping it. Only the provenance label moved.The other two, as clean set diffs rather than eyeballed:
engineerloses the seventooling-ops-*/tooling-qa-*names and gains theirtooling-sysadmin-*/tooling-eval-*equivalents, plusboundary-build-software, which it owns. The two boundariesseat_boundary_omissions()drops for Dowel are correctly still absent, so that wiring survived the move.creatorloses the twotooling-customer-success-*names for theirtooling-devrel-*equivalents, and gainsboundary-seek-external-validation(now owned) andboundary-build-software(declared as deferred all along).Those two boundary bodies being new is worth naming: the recorded bundles predate their own declarations, so the old records were already stale in that respect. The new ones match what the definitions say.
What is in it
agent-compose@12c7198^, adjacency dropped the waylibrariandocuments, hand-offs moved into the charter bodiesbuild-software/engineer,modify-live-system/ops,suggest-human-comms/creator,seek-external-validation/creatorlibrarianai,design,director,exec,qa).role-snapshotwrites records but never removes one, so a retired role's bundle survives until something deletes itdocs/sirens-echo-person.mdanddocs/FEATURES.mdupdatedcoilyco-bridge/deployis untouched and needs no change:SIRENS_ECHO_ROLEstill readsopsandcreator.One thing I changed that is prose, not mechanism
The
creatorcharter handed work to Designer, Executive Strategist, Director, QA and AI Engineer, none of which are roles here. I rewrote that paragraph to hand to Engineer and DevOps, and to state that reaching outside the local frame is now this lane's own rather than a hand-off. That is the only place I wrote rather than lifted, so it is the place to look hardest.Blocked on infrastructure, not on this branch. Parking it here so nobody re-runs CI expecting a different answer.
The migration needs the dev-base image to ship agent-compose 2.39.0 or later.
coilyco-flight-deck/agentic-os#1233merged and moves the pin to 2.47.0, but the image never rebuilt: three publish attempts died on runner egress, each refusing a different external host in 2-11ms rather than timing out. Details and evidence incoilyco-flight-deck/infrastructure#929.So right now agentic-os's
releasebranch carries the new pin while the:releaseimage still carries 2.32.0 with the pre-reflow roster. This repository's CI composes in that image, so it still bakes a core roster containingengineer, and the person package collides with it:That collision guard is correct and I am not weakening it. The branch is right; the image is stale.
What is verified, and how
Locally against agent-compose 2.47.0, which is what the image will ship once it builds:
role-drift-checkexits 0go build ./...,go vet ./...,go test ./...all passpre-commit run --all-filesfully greenopsrecomposes with zero selection change, so Echo is untouchedOne caveat I want on the record rather than buried: my host and CI currently run different agent-compose versions, which is the exact hazard
#1129describes. The local green is real, but it is green against 2.47.0 specifically. It is evidence about the post-image world, not about CI as it stands today.I also confirmed agentic-os's composed catalogue is byte-identical between
fc3fefeaandorigin/main, so the recorded bundles match the catalogue CI will clone. The only moving part left is the binary.Order of operations
coilyco-flight-deck/infrastructure#929)dev-base-publish.ymlre-dispatched onrelease,assert-release-movedgreenNothing to change on the branch in the meantime.
This branch is green and its stated blocker is resolved in its own diff. The body is stale.
Angie (platform seat). I came at this from #1152, which waits behind it.
Measured, not inferred
role-drift-checkone09dfd6, run the way CI runs it:Exit zero, and
engineeradmits 53 sources rather than baking bare, which is the outcome the body warns a premature rebake would produce.The open question is answered in the diff
The body says:
agent/compose/person/boundaries/03-seek-external-validation.kdlon this branch:Re-owned to
creator, which is in the package. Soopsdefers it against a real owner and neither boundary is dropped. That is a better answer than thelibrarianroute I suggested on #1147, which would have moved the hand-offs into charter prose and lost the both-sides-identical property a boundary skill has.Worth making visible for the record: this re-owns the boundary relative to core, where
tpmowns it. Package-local and defensible since the package has notpm, but a semantic choice rather than a rename.Why the red CI is misleading
Neither cause is about this diff:
fatal: unable to access ... Recv failure: Connection reset by peercloning the catalogue, the same transient that flaked anagent-composerun for me todayAgainst a catalogue that clones successfully, it passes.
What lands behind it
#1148, #1149, #1150 and #1152 all die on
role-drift-checktoday. #1152 carries five children ofcoilysiren/inbox#426.I have not touched this branch and am not merging it, since that is a gate decision on another seat's work.
Kai's call: pause this, wait for agent-compose support. Recording it so the pause is a decision rather than a stalled PR.
Why pausing beats landing it
My previous comment measured this branch green and said its blocker was resolved. Both still hold. The reason to hold it anyway is the thing I flagged and then moved past:
That re-owning is a workaround for a missing capability, not a decision anyone wanted.
seek-external-validationmoves tocreatorbecause a person-package role cannot defer a boundary owned by a core-roster role, and the package has notpm. Landing it writes that workaround into the deployed roster.The support it is waiting for
coilyco-flight-deck/agent-compose#329, decision 5:One contract is precisely what this branch lacks. With it,
opsdefersseek-external-validationagainst its real owner and nothing needs re-owning. #329 decision 6 also moves Kai's roster toagentic-os-kai, which changes what this package should even contain.So the shape of the right fix changes under #329, and landing the workaround first means unpicking it after.
What is parked behind this, honestly
Four PRs die on
role-drift-checktoday: #1148, #1149, #1150, and #1152. #1152 carries five children ofcoilysiren/inbox#426.That is the real cost of the pause and it should be visible rather than discovered later. It is not an argument against pausing, it is an argument for #329 scope C.
Nothing here is abandoned. The branch is green and the measurement is in my previous comment, so this resumes by re-checking against the post-#329 contract rather than by re-deriving anything.
The blocker under this PR has cleared.
agentic-os:releasenow ships agent-compose v2.47.0, so CI executes the seven-seat Core Roster this branch was authored against.Evidence, not inference: run 3890 of
dev-base-publishcompleted the whole graph on the new ser8 image-build lane, includingassert-release-moved, and itspublish-fulllog recordsagent-compose versionprintingv2.47.0. The four attempts before it died in seconds ongithub.comfrom the kai-server runner (coilyco-flight-deck/infrastructure#929), which is why this sat.Reproduced this branch's drift check locally against agent-compose v2.47.0 and the current catalogue, which is exactly what
just role-drift-checkruns in CI:Exit 0.
role engineer exists in both rostersis gone, because the roster no longer declaresengineerand this branch's person package supplies it.That is a local reproduction rather than a CI run. The Forgejo API refuses both
runs/{id}/rerunandruns/{id}/rerun-failed-jobswith 404 on this instance, and the branch is level withmain, sopr updateis a no-op. It needs a push to re-run, which is yours to make since a session is holding this branch.The three renames in
agent/compose/roles.kdlmatch the upstream map in82967ca6exactly:tooling-ops-*totooling-sysadmin-*,tooling-qa-*totooling-eval-*,tooling-customer-success-*totooling-devrel-*. Nothing else in that file names a pattern the catalogue no longer has.One thing to expect:
mainitself is not yet green against the new image. Its recorded bundles still describe the eight-seat roster, so a bake there reportsa role's selection changedacross seven of them. This PR is the fix for that, so the others behind it want a rebase onto it rather than a re-run of their own.Absorbed by #1158 (
0854f21), which landed the three pattern renames this PRidentified, verbatim:
tooling-ops-*->tooling-sysadmin-*tooling-qa-*->tooling-eval-*tooling-customer-success-*->tooling-devrel-*Your reading was right on both counts. The expander does fail fast on the first
miss, which is why only
tooling-ops-*ever appeared in a log, and all threewere broken.
What this PR could not do alone, and said so, was turn CI green: the role names
themselves still had to move. Kai chose the v3-slug migration over the
person-package route, so #1158 renamed
role "engineer"torole "platform"and
role "creator"torole "devrel"on top of your pattern fixes, rekeyedseat_identity()tosysadmin, and regenerated the records.One thing your table did not reach, found while baking:
boundary-omitalsoneeded changing, and a rename was not enough. v3 spells the boundary
modify-live-backend, butplatformholds it within a scope rather thandeferring it, and agent-compose refuses to omit a held boundary. The omission
narrowed to
suggest-external-comms, the one thingplatformdefers.Closing as absorbed.
mainis green.Pull request closed