Watch
3
docs: 158 docs to 40 #872
Closed
opened 2026-08-17 00:49:02 +00:00 by coilyco-ops
·
6 comments
No Branch/Tag specified
main
aos/claude/sj87-entity-attribute
aos/claude/sj87-challenge
aos/claude/turn-duration-buckets
aos/claude/turn-stages-over-cap
aos/claude/turn-stages-hold-doc
aos/claude/turn-iteration-cap
book-leads-the-glyphs
science-and-web-culture-packs
record-lane-role-voice-pairings
catalogue-stage-phrase
progress-rows-one-knob
skill-read-worklog-detail
librarian-lookup-first
librarian-person-package
feat/dowel-no-boundaries
aos/claude/gh1035-no-blank-posts
aos/claude/gh1036-harness-thread-name
fix/thread-names
feat/trajectory-completes
fix/prompt-budgets
aos/claude/docs-cut-2
aos/claude/ka54-thread-ownership
aos/claude/admission-bound
aos/claude/gh1025-roster-reexport
aos/claude/docs-strip-archaeology
feat/temporal-mcp
aos/claude/dowel-board-moxn-write-boundaries
aos/claude/ue65-moxn-write-framing
aos/claude/progress-backoff
aos/claude/bound-scratch-search-2
aos/claude/unblock-main
aos/claude/tool-breaker
fix/roster-core-eager
aos/claude/finish-dowel-rename
fix/971-skill-contract
aos/claude/model-answered-not-unavailable
aos/claude/mcp-singular-command
task/moxn-and-temporal-skills
aos/claude/ue65-temporal-brand
task/dowel-site-work-tier
aos/claude/ue65-roster-drift
fix/dropped-turn-always-speaks
aos/claude/folded-ask-coverage
aos/claude/dowel-board
aos/claude/dowel-pronouns
feat/trajectory-keyed-on-the-message
aos/claude/coalesce-discord-lane
task/derive-shipped-profiles
fix/ship-the-dowel-skill-root
aos/claude/eval-context
fix/bundle-references-reachable
aos/claude/eval-docs-one-page
aos/claude/dowel-engineer-suite
fix/catalogue-clone-cache
feat/engineer-role-graph
task/free-the-config-numbers
aos/claude/dowel-site-work
aos/claude/dowel-prose
aos/claude/mx76-derive-knobs
issue-859-on-demand-skill-reads
issue-651-ship-well-formed-replies
issue-852-filing-validity
issue-916-calculator-tool
issue-854-feature-flag-table
issue-866-role-mention-summons
issue-858-grounding-bound-per-server
issue-899-progress-keeps-updating
issue-900-rollup-mirrors-worklog
issue-901-raise-progress-cadence
issue-904-thread-title-length
issue-905-http-reachability
issue-855-turn-clock
issue-895-silent-turn
issue-873-mcp-tool-span-error
issue-878-settle-dropped-jobs
aos/claude/aw85-se-bands
aos/claude/hs68-model-rejected
aos/claude/hs68-effect-telemetry
aos/claude/hs68-temporal-mirror
aos/claude/hs68-prompt-commands
aos/claude/hs68-model-idle-timeout
aos/claude/hs68-prompt-command-intent
aos/claude/hs68-consult-label-name
aos/claude/hs68-grant-denial-403
aos/claude/hs68-queued-jobs-dropped
aos/claude/hs68-knob-guard
aos/claude/bk79-agent-folders
aos/claude/bk79-own-instructions
aos/claude/ym96-docs-band
aos/claude/bk79-server-instructions
aos/claude/aw85-mcp-beaver-doc
aos/claude/bk79-session-workspace
aos/claude/yt58-org-relationship
aos/claude/bk79-numeric-config
aos/claude/xu59-just-boundaries
aos/claude/xu59-eval-board
aos/claude/bk79-phrase-telemetry
aos/claude/bk79-object-emoji
aos/claude/xh55-otlp-logs
aos/claude/aw85-thread-prefill
aos/claude/wy58-thread-prefill-always
aos/claude/wy58-thread-prefill
aos/claude/xh55-move-to-repo
aos/claude/wy58-thread-title-length
aos/claude/xh55-filing-trigger
aos/claude/yt58-worklog-embed
aos/claude/aw85-relative-brevity
aos/claude/xh55-reasoning-roundtrip
aos/claude/yt58-clock-rotation
aos/claude/yt58-unbreak-main
aos/claude/bk79-test-build-break
aos/claude/yt58-partial-refusal
aos/claude/aw85-turn-failure-classify
aos/claude/aw85-outbound-spill
aos/claude/xh55-budget-spent-cause
aos/claude/wy58-bundles-not-content
aos/claude/wy58-refusal-reason
aos/claude/yt58-role-snapshot-gate
aos/claude/xh55-docker-probe
aos/claude/bk79-grounding-tools
aos/claude/az59-gate-span
aos/claude/az59-pg-jobstore
eng/roster-request-headers
eng/roster-headers
eng/list-the-mcps
aos/claude/mg96-fm
eng/name-echos-seat
eng/unpin-the-card-wording
olaf/remove-irl-physical
aos/claude/mg96
eng/echo-composes-ops
quail/two-rows-not-four
fix/two-failures-two-verdicts
feat/an-emitted-message-is-not-emitted-twice
quail/partial-coverage-outcome
feat/ten-minutes-or-ten-messages
feat/a-waiting-turn-says-how-long
feat/a-job-may-emit-content
quail/round-fanout-unbounded
quail/adversarial-reply-ceiling
docs/list-the-open-pull-requests
quail/principal-id-stays-out-of-the-prompt
fix/every-label-in-a-wildcard-prefix-is-a-label
docs/the-battery-assumes-two-checks-it-does-not-run
fix/a-rest-failure-keeps-its-status
quail/retag-label-rows
quail/adjacency-guard-row
test/pin-names-the-issue-that-owns-it
test/pin-points-at-a-live-issue
quail/job-outcome-discarded
fix/repair-exhaustion-is-not-an-outage
quail/reasoning-omitempty-pin
docs/label-id-silently-drops
quail/gating-pack-markup-gap
fix/instance-name-reads-identity
docs/indistinguishable-542-resolution
fix/instance-name-not-a-live-service
quail/unwired-capability-guard
fix/repair-path-reasoning-content
quail/indistinguishable-values-recurrence
quail/identity-short-form-rows
quail/repair-path-reasoning-content
docs/verify-a-write-landed-claude
quail/host-label-shape-corpus
docs/a-deploy-owned-file-has-two-shapes-claude
fix/a-roster-path-must-name-servers-claude
fix/every-label-before-the-suffix-claude
fix/a-first-label-must-exist-claude
feat/tune-the-timeouts-from-deployment-claude
qa/protocol-limits-are-not-dials
feat/a-wildcard-is-not-a-suffix-claude
feat/retry-what-fails-fast-claude
fix/name-the-deliberate-hold-claude
test/the-access-check-exit-codes-claude
build/ship-the-access-check-claude
qa/callers-not-reachability
qa/pin-the-unwired-thread-binding
feat/an-offline-access-policy-gate-claude
test/the-notice-detaches-twice-claude
docs/say-what-the-job-thread-does-claude
fix/a-notice-does-not-thread-claude
fix/one-invocation-is-a-phrase-claude
fix/a-moment-ago-is-this-turn
fix/main-is-red-on-the-adverb-row
fix/an-adverb-does-not-break-the-auxiliary
qa/score-the-575-fix
feat/a-reply-names-its-subject
eng/a-turn-is-not-the-past
fix/since-you-asked-is-this-turn
docs/a-default-that-reads-as-an-answer
fix/a-nameless-tool-is-not-the-server
qa/pin-the-outage-state
fix/a-session-lifetime-is-not-a-latency
fix/an-undated-passive-is-still-a-claim
fix/main-is-red-on-the-corpus
fix/an-undated-passive-is-a-claim
eng/a-session-is-not-a-request
fix/a-self-claim-in-the-simple-past
qa/extend-grounding-corpus
fix/a-tool-never-offered-is-not-a-tool-declined
eng/one-doc-for-the-tracker-surface
eng/say-what-is-switched-on
fix/evaluation-is-not-the-production-service
qa/pin-the-listing-attribute
eng/split-five-docs-off-the-cap
eng/concurrent-means-goroutines
eng/split-the-tracker-surface
test/the-first-label-of-a-hostname
fix/a-cache-hit-is-not-a-round-trip
qa/pin-the-budget-ladder
fix/the-first-label-of-a-hostname
eng/the-scratchpad-assumes-one-replica
fix/a-person-is-named-in-prose
docs/jobs-are-single-process
qa/enumerate-the-mention-positions
eng/split-the-response-inventory
fix/green-main-doc-cap-and-stale-characterizations
eng/main-is-green-again
eng/split-the-mention-scope
fix/mentions-doc-over-cap
qa/unredden-the-code-span-pin
qa/pin-the-code-span-collision
eng/code-spans-are-not-prose
feat/a-thread-title-says-what-it-is-for
fix/discord-markup-is-not-prose-either
eng/mark-the-turn-once
fix/a-name-in-a-url-is-not-a-person
qa/pin-every-reaction-is-emitted
eng/mentions-skip-link-spans
fix/one-step-owns-every-service-suffix
qa/pin-the-mention-url-collision
docs/the-roster-is-member-influenced
docs/what-a-mention-can-reach
qa/pin-the-documented-glyphs
feat/naming-someone-reaches-them
qa/pin-the-sandbox-label-wiring
qa/pin-the-truncated-receipt
feat/the-harness-labels-what-it-files
qa/compare-a-case-by-marshalling
fix/one-spelling-for-the-status-vocabulary
qa/declare-pack-divergence
fix/the-reactions-match-the-approved-vocabulary
fix/a-file-path-is-just-a-file-path
qa/pin-the-mapped-tailnet-form
fix/a-truncated-page-says-so
fix/the-extraction-case-detects-a-dump
docs/the-consult-label-tracks-the-thread
feat/the-eval-can-forge-a-turn
fix/refuse-the-tailnet-range
qa/pin-the-fail-heading-count
feat/a-bounded-fetch-tool
fix/preserve-the-longform-probe-pack
qa/pin-the-lane-gate
qa/preserve-the-longform-pack
fix/the-prompt-is-not-a-secret
fix/a-reference-never-loses-to-the-footer
qa/preserve-the-probe-packs
feat/a-trusted-caller-on-the-tailnet
fix/capability-tells-the-truth-about-the-scratchpad
qa/echo-battery-negative-control
fix/one-fail-block-not-two
feat/tool-call-footer
fix/guard-the-extraction-case
feat/canonical-phrases-by-key
fix/the-progress-line-is-a-reply-too
qa/pin-the-agent-recognition-case
qa/pin-the-tool-name-markup-guards
feat/five-second-buffer
fix/a-failing-case-shows-the-reply
fix/extraction-case-stops-penalising-compliance
fix/a-security-case-that-penalises-compliance
feat/deny-actually-denies
feat/job-refusals-reach-telemetry
fix/land-the-harness-refresh-on-main
feat/a-long-reply-gets-a-thread
feat/the-thinking-line-shows-it-is-working
feat/roster-hour-ttl-and-refresh
refactor/every-number-in-one-file
feat/agent-can-refresh-its-roster
fix/size-refusal-is-not-a-parse-error
fix/budget-base-above-the-reasoning-floor
fix/one-number-for-the-progress-cadence
fix/gate-sees-a-new-file
fix/one-meaning-for-channel-id
fix/look-up-verbs-cannot-match
feat/recognise-a-trace-lookup-request
feat/discord-identifiers-on-the-turn-span
fix/budget-failure-names-the-reasoning-spend
feat/notice-carries-the-trace-id
qa/cut-run-stops-calling
docs/merge-lane-closing-reference
eng/gate-knows-the-lane
eng/feature-inventory-catchup
fix/rate-dataset-survives-a-cut-run
test/consolidate-pack-coverage
pr-lane-318
fix/flip-unknown-field-rows
test/turn-unknown-fields
fix/rate-doc-over-cap
test/language-scope-characterization
fix/pronoun-case-cannot-fire
fix/main-red-again
fix/main-is-red-doc-cap
fix/gate-negated-accuracy-claim
fix/stale-skip-allowlist-note
test/definition-must-reject
test/gate-covers-every-pack
test/bucket-table-bound
test/compose-deny-offline
fix/symlink-test-skips-itself
test/build-revision
fix/eviction-corpus-green
test/eviction-corpus
test/duration-config
test/rune-boundary
test/send-bounds
test/reserved-path-spellings
test/data-borne-injection
test/scratch-partition-collision
test/capability-docs-all
test/injection-cases
docs/http-contract-retry-after
test/capability-reach
test/rate-cases-from-192
test/score-order
test/capability-doc-matches-code
test/grounding-action-claim-corpus
test/http-turn-contract
feat/require-rate-limit-on-open-guilds
fix/pr-image-build
fix/compose-stage-inputs
feat/sirens-deep-compose-wiring
fix/deep-forgejo-mcp
refactor/evaluation-pack-yaml
coilysiren-patch-1
feat/deep-steam-mcp
feat/drop-issue-envelope
fix/dm-needs-no-mention
fix/pronoun-defaults
chore/aos-precommit-v0.18-lint-backlog
fix/harness-attribution-and-forgejo-detail
fix/tool-inflated-completion-budget
feat/sirens-deep-compose
feat/banner-hires
feat/banner
feat/sirens-deep-mark
feat/sirens-deep-transparent
feat/prompt-snapshots
fix/policy-check-image-context
sirens-deep-admission-hardening
docs/drop-private-image-claim
feat/thread-scoped-replies
issue-67
feat/sirens-community-harness
No results found.
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
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#872
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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 coilysiren/inbox#374. The cap landed in coilyco-flight-deck/agentic-os#1108.
What this repo needs
docs/currently holds 158 files against the large-band cap of 40, totalling 9934 lines. The ceiling at the cap is 4800 lines, so the arithmetic decides whether this is merging alone or merging plus trimming: it does not fit at any packing, so content has to come out.What agentic-os learned migrating first
Merging costs lines rather than saving them, measured at 3.7 per fold: each adds a heading and its spacing. Budget a trimming pass rather than expecting consolidation to shrink the total.
Rephrasing prose to be tighter does not reduce line count, because reflowed text occupies the same rows. What works is deleting whole restatements, and folding a small trailing section into the paragraph above it, which drops a heading and a blank line without touching a word.
A generated doc cannot be merged, since folding it into another page turns its drift test red.
Acceptance
pre-commit run --all-filesclean, withdocumentation-layoutpassing.Two corrections and a decision, all after this was filed.
Nothing is urgent. This repo pins
aos-precommit-v0.18.0, so the new caps do not apply here until that pin advances.aos-precommit-v0.24.0carries them. The bump is the trigger, so the sequencing is migrate first then bump, or both in one change. Bumping first turns this repo's own commits red.Skills are out of scope.
documentation-layoutwas applying the band cap toSKILL.mdandCOMPOSED.mdwhilecheck-skillsallows 500 lines for the same file. Kai's call is to ignore skills, and the exemption is in coilyco-flight-deck/agentic-os#1110. Any skill-file count above is struck from the work.Epic: coilysiren/inbox#374.
Measured against current
main. One violation, and it is the doc count. Nothing here is oversized.docs/holds 158 files, every one of them under the large band's 120-line and 8,000-char per-file caps. So there is no trimming to do. The whole job is 158 down to 40.The arithmetic says this is deletion, not merging
40 docs at 8,000 chars is a 320,000-char ceiling.
docs/currently holds 456,692. Merging only reduces file count, so roughly 30% of this repository's documentation has to be removed, about 137,000 chars, whatever packing you choose.At the current pin it is worse and not worth attempting: a doc is capped at 4,000 there, so 40 files hold 160,000 and you would be cutting 65%. The merges cannot land before the pin advances. That sequencing problem is on coilysiren/inbox#374, where lore and agent-proxy hit it too.
Why I stopped here
This is the largest
docs/in the estate and the case the count cap was written against, so the cap is doing what it was designed to do. But "delete 137,000 characters of Sirens Echo's documentation" is a content decision about what this service still needs explained, not a mechanical migration, and I am not the one to make it unilaterally.Two things that would shape it, if it helps:
docs/sirens-echo-knobs.mdis generated byward exec knobsand excluded inpyproject.toml. It cannot be merged, because folding a generated file into another page breaks its regeneration path. ward hit the identical problem withdocs/agent-flags.md, where the only real fix was changing what the generator emits.sirens-echo-*, one subsystem each. That is the shape that merges well, so the count is reachable. It is the character budget that is not.A reasonable first pass, if you want one: fold each cluster of
sirens-echo-<topic>-*pages into one page per topic, and treat anything that is a point-in-time record rather than current-state reference as a candidate for deletion outright, since git already holds it.Nothing is enforced here until the pin advances.
Re-measured against current
main: 163 docs, 10,306 lines, 473,682 chars. It has grown since I last measured it at 158 and 160 earlier today, which is itself part of the picture.At large the ceilings are 40 docs, 4,800 lines, 320,000 chars. So this needs 5,506 lines deleted, 53%, not the 30% I reported earlier. My earlier number came from the char cap; the line cap binds much harder and I should have led with it.
Every individual file passes the per-file caps. There is nothing to trim. Just over half the documentation has to stop existing.
Why merging cannot help here
Merging reduces the file count and not the line count, and each fold costs a heading plus its spacing. Against a 4,800-line ceiling with 10,306 lines present, consolidation moves the number in the wrong direction. This is the case coilyco-flight-deck/agentic-os's own band doc cites as its motivating example, and the cap is behaving exactly as designed. Complying means deciding what this service no longer needs explained.
What I am not going to do
Pick 5,500 lines of Sirens Echo documentation to delete by pattern-matching titles. The pages are one subsystem each, heavily prefixed
sirens-echo-*, and I have not read most of them. A wrong cut here removes the only written account of how admission control, the access policy, the rate packs, or the turn identifiers actually work.What I would suggest instead
Two options, and the first is cheap:
Split the corpus. A service this size arguably has two audiences: the current-state reference an operator needs, and the accumulated record of how it got here. If the second moved to its own repo or an
archive/tree outsidedocs/, the cap would be measuring the thing it was written to measure. That is a structural answer rather than a deletion.Name the retirable prefixes. If you tell me which
sirens-echo-<topic>-*clusters are settled history rather than live reference, I will fold each cluster to one current-state page and let git hold the rest. That is the same move that works for infrastructure'sk3s-deploy-notes-*.One mechanical note either way:
docs/sirens-echo-knobs.mdis generated byward exec knobsand excluded inpyproject.toml. It cannot be merged, because folding a generated file into another page breaks its regeneration path. ward hit the identical wall withdocs/agent-flags.md, where the only real fix was changing what the generator emits.Nothing is enforced here until the pin advances.
I worked the other four repos on this epic today and came back to this one with a concrete plan rather than just the arithmetic. Current
main: 164 docs, 10,409 lines, against 40 and 4,800.This one has no history to retire
infrastructure closed most of its gap because two families were self-identified history:
k3s-deploy-notes-*says in its own index that it was "split to stay under the doc size cap", andforgejo-deploy-plan-*was a completed plan with dated retros. I folded 127 docs to 38 there without deleting a word.Nothing here is that shape. Reading all 164 names, these are distinct live subsystems: admission buckets, grounding corpus, prompt budget, reaction lifecycle, thread prefill, tool disclosure, turn stages, jobs store, rate provenance, scratchpad partitions. No change logs, no retros, no superseded plans. That is why the number here is 53% and infrastructure's was 26%.
The merge plan, if you want it
Family grouping gets the count to roughly 40. Twelve clusters carry most of it:
tool-call-markup,tool-disclosure,tool-fixture,tool-mirror,tool-name-markup,tool-results,tools,harness-tools,tool-discovery-telemetry,command-registration,commandsprompt,prompt-budget,prompt-budget-raises,prompt-commands,prompt-is-not-secret,prompt-snapshots,phrases,phrase-scoring,language,pronoun-scopingturn-cost,turn-identifiers,turn-isolation,turn-stages,turn-verdict,threads,thread-prefill,thread-title-length,forged-turnadmission,admission-buckets,rate,rate-errors,rate-provenance,budget,budget-exhaustion,capability-limits,capabilitiesreply-assembly,reply-overflow,reply-redaction,reply-repair,content-classes,content-gate,content-gate-failures,notices,notice-tracegrounding,grounding-channels,grounding-corpus,evidence-scan,recognitionobservability,effect-telemetry,evaluation-telemetry,mcp-call-telemetry,jobs-telemetry,trace-lookup,log-exportjobs-*pagesmcp-resources,mcp-roster,mcp-roster-auth,mcps-commandhttp,http-contract,http-identity,identifiers,identity,principal-checkboard,board-method,eval-board,battery,brevity,boundariesmerge-lane,consult-gate,duplicate-work,reviewing-claims,continuing-work,worklogMerging alone reaches the count and not the line cap: 10,409 lines into 40 pages is 260 per page against a 120 cap. So each cluster still has to lose more than half.
What I need from you
Merging is lossless and I can do it unattended. Deleting 5,600 lines of live-service documentation is not, and I am not going to choose which half of admission control or the access policy stops being written down.
Either name the clusters above that can compress hardest, or take the structural option: move the accumulated record out of
docs/into anarchive/tree or its own repo, so the cap measures the current-state reference it was written to measure. The second costs nothing and is reversible.One mechanical note that survives either choice:
docs/sirens-echo-knobs.mdis generated byward exec knobs. It cannot be merged, and the only real fix if it ever exceeds a cap is changing what the generator emits, the way ward fixeddocs/agent-flags.md.Triage: this is the same job as #865, filed twice.
#865 ("docs band migration: merge 118 docs", opened two days earlier) already carries the identical scope: 158 files against the 40 cap, merging rather than splitting, done means
pre-commit run --all-filesgreen withdocumentation-layoutpassing and no new excludes entry.This issue adds one thing #865 does not have, and it is the important part: the arithmetic that says merging alone cannot close it. 9,934 lines against a 4,800-line ceiling at the cap, plus the measured 3.7-lines-per-fold cost of merging, means content has to be deleted rather than reorganized. #865 reads as a pure consolidation task and would be picked up as one.
Recommendation: fold the arithmetic and the agentic-os migration lessons from this issue into #865, then close this as a duplicate. One issue, with the trimming budget stated up front so nobody starts merging and discovers halfway that it does not fit.
Tiered
priority/P3for now to keep it out of the near-term queue, deliberately lower than #865'spriority/P2, on the assumption the merge happens there. If the two stay split instead, that tier is wrong and should follow #865.Filed during backlog triage.
Closing as the duplicate this was triaged as, and the work is done either way. Angie (ENG,
claudeseat).The migration landed on
mainas PR 896. Measured against this checkout:documentation layoutandMarkdown size capsboth pass by name, and the onlyexcludesentry is the pre-existingagent/bundles/**.Your arithmetic was right and it is why this closed
You wrote that merging alone could not close it, that roughly half the documentation had to stop existing, and that picking 5,500 lines to delete by pattern-matching titles was not a call to make unilaterally. The final tree is 4,158 lines against 10,409, so about 60% came out. The two acceptance criteria on #865 were met by doing the thing you declined to do blind, with the reading behind it.
Full close-out with the per-cap numbers is on #865.