aboutsummaryrefslogtreecommitdiff
path: root/working/context-engineering-rightsizing/rollout.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-27 13:46:32 -0500
committerCraig Jennings <c@cjennings.net>2026-07-27 13:46:32 -0500
commitd74d98d03e7321b6c69dae9ef427da66b0f6fbc6 (patch)
tree4d61b604085afc019b40903a9e8db9072b46147c /working/context-engineering-rightsizing/rollout.org
parent2c664cb5651fbf03bc52d7848add0c571708adcd (diff)
downloadrulesets-d74d98d03e7321b6c69dae9ef427da66b0f6fbc6.tar.gz
rulesets-d74d98d03e7321b6c69dae9ef427da66b0f6fbc6.zip
docs: correct the rightsizing docs against live measurements
I had the goal backwards in the lead. Craig's framing is output quality first, with token reduction real but second, and where they conflict quality wins. Anthropic's 80% was a finding rather than a target, and aiming at it directly optimizes the thing we don't care about. P4 falls to that and is dropped: lowering effort buys tokens by spending quality. P5 rises for the same reason, since positive framing over prohibition is what actually targets guardrails working against output. My token figures were low by about 45%. I converted word counts at a guessed ratio when /context reports real per-file numbers, so I used an estimate because it was easier to compute from inside the repo. The live ratio is 2.28 tokens per word. commits.md is 12,800 tokens rather than the 7,000 I estimated, and claude-rules was near 57,800 per session before today. I also conflated two loading paths. Memory files come in through the harness at session start. protocols.org and the workflows are read by startup and land in Messages, so they never appear under Memory files at all. They shrink by editing the workflow, not by scoping a rule, and treating them as one surface made protocols.org look like it competed with commits.md for the same fix. Path-scoping is confirmed working at user level, and the de-duplication holds. That splits the remaining work: anything scopable to a file type or directory ships with no trial, because a glob match is deterministic. Only the semantic rules need the skills route and the stop conditions, and commits.md is the one that matters there at 12,800 tokens of publish machinery that only applies when a commit is in play. I recorded one caution the confirmation doesn't cover. Path-scoping fires when a matching file is read, so creating a new org file from scratch never triggers todo-format.md. Edits are safe because Edit requires a prior read. I also wrote up the day's two guard failures, both mine. wrap-org-table reflowed a table into a worse shape and lint-org certified it clean, and the teardown hook consumed a stale sentinel and killed a live work session. The plan leans on mechanical detectors because they have no stake, which is still right, but a detector can be confidently wrong and a green check from a guard that never looked is indistinguishable from one that did.
Diffstat (limited to 'working/context-engineering-rightsizing/rollout.org')
-rw-r--r--working/context-engineering-rightsizing/rollout.org77
1 files changed, 71 insertions, 6 deletions
diff --git a/working/context-engineering-rightsizing/rollout.org b/working/context-engineering-rightsizing/rollout.org
index 4afc27f..d641ce7 100644
--- a/working/context-engineering-rightsizing/rollout.org
+++ b/working/context-engineering-rightsizing/rollout.org
@@ -34,7 +34,73 @@ Two consequences:
This is why the posts' value here is subtractive, not additive.
-* Phase 0 — Free wins (this session, no dependencies)
+* Status — 2026-07-27, end of first working session
+
+Phase 0 and the deterministic half of Phase 1 are done and verified in a live
+session. The pilot's central question is answered, which changes what remains.
+
+** Shipped
+
+- =paths:= frontmatter on the three rules that already declared a file-type
+ scope in prose (=todo-format=, =org-tables=, =emacs=), plus a =lint.sh=
+ checker that catches the prose/frontmatter mismatch, plus a heading check
+ taught to skip frontmatter. Commit 0adcb1a.
+- Generic rules no longer ship per project. =install-lang= stopped copying them
+ and =sync-language-bundle= sweeps what earlier installs left, guarded on the
+ global rule existing. Swept 20 files each from work and =.emacs.d=. Commit
+ 7ea1d7b.
+- The live session anchor is gitignored, so rulesets stops reporting
+ sync-blocked for the whole of every session. Same commit.
+
+** Verified in a live work session
+
+=/context= lists 17 generic rules under Memory files. =todo-format.md=,
+=org-tables.md=, and =emacs.md= are absent, and only =python-testing.md= and
+=publishing.md= come from the project's own rules directory.
+
+So *path-scoping works at user level* and *the de-duplication holds*. Both were
+open questions this morning.
+
+** What that changes
+
+Path-scoping is a glob match, not a model judgment. It is deterministic, so the
+silent-miss risk the whole pilot was designed around does not apply to it. That
+splits the remaining work in two:
+
+1. *Path-scopable* — any rule whose scope is a file type or directory. Ships
+ immediately, no trial, no detectors. =docs-lifecycle.md= is the obvious next
+ one (=docs/**=), and parts of =working-files.md= may qualify.
+2. *Semantic* — rules whose condition can't be written as a glob ("any spec
+ with a non-trivial UI", "when a commit is in play"). These still need the
+ skills route, and they are the only place the pilot's detectors and stop
+ conditions apply.
+
+=commits.md= is the case that matters: 12,800 tokens, the single largest item,
+and almost all of it is publish machinery that only applies when a commit is in
+play. That is a task scope rather than a path scope, so it is the skills route
+and the real test of the risky tier.
+
+** Correction carried from the live numbers
+
+Earlier phases in this document quote word counts converted at a guessed ratio
+and understate by about 45%. The real ratio is 2.28 tokens per word. Read the
+targets below as token figures needing that correction, and see proposals.org
+for the corrected table.
+
+** A pattern worth designing around
+
+Two mechanical guards failed in the same day, both mine, both reporting success
+while doing damage: =wrap-org-table.el= reflowed a table into a worse shape and
+=lint-org= then certified it clean, and the wrap-teardown hook consumed a
+two-hour-old sentinel and killed a live work session.
+
+This plan leans on mechanical detectors precisely because they have no stake in
+the outcome. Both incidents say that is necessary but not sufficient — a
+detector can be confidently wrong. Whatever Phase 3 decides, the verification
+step should include "did the guard's own claim get checked," not just "did the
+guard report clean."
+
+* Phase 0 — Free wins [DONE except /doctor]
*Scope.* Three items that interact with nothing.
@@ -58,7 +124,7 @@ filter step. =/doctor= output read and reconciled against this schedule.
*Rollback.* Single revert; nothing downstream depends on it.
-* Phase 1 — The pilot migration (next working session)
+* Phase 1 — The pilot migration [deterministic half DONE; semantic half pending]
*Scope.* Six rule files move from always-loaded to on-demand skills. Roughly
3,000 words, about 12% of the rules surface.
@@ -243,14 +309,13 @@ rather than early.
- *D6 — Which practices you actually want.* I have low confidence on the quiz
fitting how you work, and medium-high on the rest.
-* Phase 8 — Effort calibration (independent, any time after Phase 2)
+* Phase 8 — Effort calibration [DROPPED 2026-07-27]
*Scope.* Set effort levels for the unattended loops: sentry's hourly fires,
work-the-backlog, the no-approvals speedrun.
-*Reasoning.* Independent of everything else and safe to run in parallel. The
-guide says to sweep effort on your own evals rather than trusting carried-over
-defaults; we have no evals, so this is a trial and a judgment.
+*Dropped.* Buys tokens by spending quality, which inverts the stated goal.
+D7 is withdrawn with it.
*Decision needed.*