Watch
3
feat(dowel): give engineer the build surface and name it the owner of its own puts #966
Closed
coilysiren
wants to merge 1 commit from
aos/claude/dowel-site-work into main
pull from: aos/claude/dowel-site-work
merge into: coilyco-gaming:main
coilyco-gaming:main
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-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
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/ai
requires work from the AI Engineer role
role/creator
requires work from Content Creator role
role/design
requires work from the design role
role/director
requires work from the director role
role/engineer
requires work from the engineer role
role/exec
requires work from the exec role
role/human
requires a person, and specifically not an agent seat
role/ops
requires work from the ops role
role/qa
requires work from the QA role
No labels
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/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!966
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/dowel-site-work"
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?
Two changes the demo lane cannot run without.
roles.kdl gains an engineer entry. The role had none, so the bundle composed the
roster identity alone: six skills, zero catalogue sources, no coding, delivery,
diagnosis, or verification doctrine. A lane staged to do work on camera with that
bundle defers every task it was staged to perform.
The ops-* entries are deliberate rather than borrowed. There is no operator seat
behind this lane during the session, so change risk, diagnosis, and remediation
are its own doctrine here. Entries are globs because DeniedComposedSkills errors
on a denied skill named exactly and silently drops one reached by a pattern, and
kai-engineering-voice and tooling-cross-repo-infra both sit under surfaces this
set reaches.
Measured before landing: about 113 KB of skill bodies against creator's 48 KB, so
the flip adds roughly 64 KB to a prefix measured at 116 KB. Recorded rather than
hidden. deploy#932 decided that prefix problem is a caching failure rather than a
roster size, so the set is not trimmed on count alone.
site-work.md then names the winner instead of leaving it to section order, which
is the pattern composedVoicePolicy already sets for voice. The composed bundle
carries boundary-modify-live-system, which hands running-system changes to
DevOps. There is no DevOps seat here, and the site verbs are this lane's own
granted surface, so the boundary does not reach them and this file wins where
they disagree. It also closes the size-based escape: fixing a word or a heading
is the job, and too-small-to-put and too-live-to-touch are the same refusal.
The honest limit stays the tool list rather than the org chart. Rollback,
serving, and nginx have no verb here, so they are declined as absent tools and
never as another role's work.
Refs coilyco-bridge/deploy#658, coilyco-bridge/deploy#932
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com
Co-authored-by: Angie coilyco-ops@coilysiren.me
Co-authored-by: Claude noreply@anthropic.com
Flagging three things on this branch's
agent/compose/roles.kdl, becausemainalready carries a different engineer grant and this reverts it.1. It drops the room-craft half that #956 merged.
maintoday grantstooling-sirens-dowel-contract,tooling-discord-community-host,personal-preference-*, andwriting-*alongside the engineering set. This branch's graph has none of them. That is the register change Kai asked to avoid on the livestream lane, arriving by a different route thanresponse_styledid.2. The four private-catalogue names are back, and they fail the expander rather than being dropped by the deny list:
tooling-repo-baseline,tooling-browser-routing,tooling-forgejo-issue-counts, andtooling-triage-cascadelive inagentic-os-kai, andrequest.kdldeclares one source,aos-public. The comment above the block says globs let the deny list drop a match, which is true, but these four are exact names and an exact name errors. #964 tracks it. The run stops at the first, so the other three are untested.3.
agent/rendered/roles/engineer.bundle.txtstill saysSkills: 6on this branch, against a graph that would admit roughly 33.role-drift-checkcompares the tracked snapshot to a fresh compile, so it fails on that too, after the expander error clears.Worth a
just role-drift-checkbefore merge. Note also that #963 landed the catalogue-clone cache fix, soimage-buildnow clones a live catalogue rather than a frozen one, which means a graph error here surfaces where it did not before.Separately, and useful for whatever grant lands: #969 makes the deferred references actually reachable. Until it merges, the 96,080 bytes of
coding-*references are advertised in the prompt and refused byread_skill, so a bundle carryingcoding-*spends tool rounds discovering that. With #969 in, that surface works as designed.Closing rather than resolving the conflict. Checked file by file against
d887bd8, and this branch carries nothing main does not already have.agent/compose/roles.kdl- this is the pre-union engineering-only half, against basea948fc8. #956 landed the union of it and #961's room-craft. Resolving in favour of this branch would drop the room-craft globs and reinstatetooling-repo-baseline,tooling-browser-routing,tooling-forgejo-issue-counts, andtooling-triage-cascade, which live inagentic-os-kaiand fail the bake withpattern "tooling-repo-baseline" matches nothing. See #964..agents/skills/sirens-dowel/references/site-work.md- older than main's. It describes a generic "list the pages, read a page, put a page" surface. Main describes the quire MCP by its real verbs,list_page/get_page/set_page, after695ea7bmatched the prose to what actually shipped. Merging this regresses the prose to a surface that does not exist.Against current main the branch is a ~3,500 line revert: it predates
internal/coalesce,internal/ingest,cmd/sirens-echo-bridge, #947's config work, and #963's catalogue-clone fix.Reopenable if I have missed something, but I diffed both files directly and the delta is empty in the direction that matters.
Pull request closed