refactor(dowel): tier site-work into its boundary and its procedure #997

Merged
coilysiren merged 1 commit from task/dowel-site-work-tier into main 2026-08-19 00:38:06 +00:00
Member

Kai's call on #993, taken one file at a time. This is the self-contained half.

site-work.md was one 4,566-byte file marked inline: always, so every turn
paid for all of it whether or not a page was being touched. It holds two kinds
of content, and #927's rule separates them.

What stays inline

The half that must never be missed:

  • "There is no operator seat on this lane" and that the granted verbs are the
    entire landing workflow
  • the composed live-system boundary not reaching these verbs, and this file
    winning where they disagree
  • never declining a change as another role's, never waiting for approval, and
    size not being a reason to defer
  • that another agent may have rewritten the page since Dowel last read it

If that were deferred, Dowel could hand a site edit to an operator who does not
exist, which is the exact boundary-modify-live-system drift
tooling-sirens-dowel-contract was written to prevent.

What moves out

site-work-procedure.md, deferred: what to do with what a write returned,
working in visible increments, and the changelog rules. Only meaningful once a
verb is actually being called. site-work.md now points at it in place of the
moved text.

site-work.md            3,524  inline
site-work-procedure.md  1,628  deferred

Smaller than I estimated, and worth saying

I told Kai roughly 3.5KB would move. 1,434 bytes actually does, because the
ownership section alone is 1,715 and has to stay.

So the honest benefit is that the tier now matches the content, not that the
prompt got much lighter. The whole file was already inline, so this does not
improve safety either. It is a modest, zero-risk trim.

No deploy change, deliberately

References are discovered by walking the root, so a second file in an existing
root needs no local_skill_roots edit. That matters: coilyco-bridge/deploy#666
named a root the image did not carry and crashlooped the lane for 90 minutes
today. This change cannot repeat that.

Not in this PR

Kai also asked for moxn-knowledge-base.md and temporal.md to become
standalone skills, deferred. That needs new skill roots, which deploy's
local_skill_roots must name, which is exactly the multi-repo sequencing that
caused today's outage. It has to go image-first and gets its own PR.

coilyco-suite.md stays inline, unchanged, per Kai.

Verification

go test ./... and pre-commit pass. Split checked section by section against
the original, with the ownership boundary confirmed present in the inline half.

Refs #993, #968, #927

Kai's call on #993, taken one file at a time. This is the self-contained half. `site-work.md` was one 4,566-byte file marked `inline: always`, so every turn paid for all of it whether or not a page was being touched. It holds two kinds of content, and #927's rule separates them. ## What stays inline The half that must never be missed: * **"There is no operator seat on this lane"** and that the granted verbs are the entire landing workflow * the composed live-system boundary **not** reaching these verbs, and this file winning where they disagree * never declining a change as another role's, never waiting for approval, and size not being a reason to defer * that another agent may have rewritten the page since Dowel last read it If that were deferred, Dowel could hand a site edit to an operator who does not exist, which is the exact `boundary-modify-live-system` drift `tooling-sirens-dowel-contract` was written to prevent. ## What moves out `site-work-procedure.md`, deferred: what to do with what a write returned, working in visible increments, and the changelog rules. Only meaningful once a verb is actually being called. `site-work.md` now points at it in place of the moved text. ``` site-work.md 3,524 inline site-work-procedure.md 1,628 deferred ``` ## Smaller than I estimated, and worth saying I told Kai roughly 3.5KB would move. **1,434 bytes** actually does, because the ownership section alone is 1,715 and has to stay. So the honest benefit is that the tier now matches the content, not that the prompt got much lighter. The whole file was already inline, so this does not improve safety either. It is a modest, zero-risk trim. ## No deploy change, deliberately References are discovered by walking the root, so a second file in an existing root needs no `local_skill_roots` edit. That matters: coilyco-bridge/deploy#666 named a root the image did not carry and crashlooped the lane for 90 minutes today. This change cannot repeat that. ## Not in this PR Kai also asked for `moxn-knowledge-base.md` and `temporal.md` to become **standalone skills**, deferred. That needs new skill roots, which deploy's `local_skill_roots` must name, which is exactly the multi-repo sequencing that caused today's outage. It has to go image-first and gets its own PR. `coilyco-suite.md` stays inline, unchanged, per Kai. ## Verification `go test ./...` and `pre-commit` pass. Split checked section by section against the original, with the ownership boundary confirmed present in the inline half. Refs #993, #968, #927
refactor(dowel): tier site-work into its boundary and its procedure
All checks were successful
ci / test (pull_request) Successful in 56s
ci / publish-echo-image (pull_request) Has been skipped
ci / publish-observed (pull_request) Has been skipped
ci / image-build (pull_request) Successful in 27s
51c83edb60
site-work.md was one 4,566-byte file marked inline: always, so every turn paid
for the whole thing whether or not a page was being touched. It is two kinds of
content, and #927's rule separates them: a boundary a model must not have to
choose to read, and a procedure that only matters once a verb is called.

The boundary stays inline, because it is the half that must never be missed:

  "There is no operator seat on this lane", the composed live-system boundary
  not reaching these verbs, never declining a change as another role's, size not
  being a reason to defer, and that another agent may have rewritten the page
  since Dowel last read it.

The procedure moves to site-work-procedure.md, deferred: what to do with what a
write returned, working in visible increments, and the changelog rules. Read
through read_skill before the first write of a turn, which site-work.md now says
in place of the moved text.

  site-work.md            3,524 inline
  site-work-procedure.md  1,628 deferred

SMALLER THAN IT LOOKED, AND WORTH SAYING. I estimated roughly 3.5KB would move
and 1.4KB does, because the ownership section alone is 1,715 bytes and is the
part that has to stay. The saving is real but modest, and the honest benefit is
that the tier now matches the content rather than that the prompt got much
lighter.

No deploy change. References are discovered by walking the root, so a second
file in an existing root needs no local_skill_roots edit and cannot repeat the
crashloop deploy#666 caused.

Refs #993, #968, #927

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>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-gaming/sirens-echo!997
No description provided.