Repository navigation
Commit 2c52e43
docs(blog): re-measure the Todo and showcase sizes in the context-window post and correct the "half a window free" sentence (#22293)
Fixes #22273
Clause-②: no
## What this changes
One paragraph of `content/blog/context-window-is-the-constraint.mdx`
(lines 49-52): the Todo and kitchen-sink showcase sizes, and the clause
built on them. Nothing else on the page changes; the CRM table above it
(corrected by PR #22267) is untouched.
```diff
-The Todo example is ~14.5k tokens. The kitchen-sink showcase app — which
-deliberately exercises every metadata type in the protocol, 83 files of it — is
-~101k. Even that one, the maximalist case, leaves half a modern context window
-free for the actual work.
+The Todo example is ~24.5k tokens. The kitchen-sink showcase app — which
+deliberately exercises every metadata type in the protocol, 91 files of it — is
+~174k. Even that one, the maximalist case, still fits in a 200k-token window —
+about 87% of it, leaving about 13% free for the actual work.
```
**The argument is kept; one clause is not.** The paragraph argues that
even the maximalist example fits in one window. At ~174k of the
200k-token window the post already uses for the CRM paragraph two lines
above, it still does, so that claim stays. "Leaves half a modern context
window free" does not survive the new numbers (about 13% is free, not
half), so it is replaced with the measured fraction. "A modern context
window" became the explicit 200k so the CRM paragraph's "about 9%" and
this paragraph's "about 87%" share one denominator. No other sentence on
the page depends on the half-window claim; the rest of the post argues
from the CRM example.
## Measured at this PR's base
Base: `origin/main` 5870716 (the merge
base, read in this PR's worktree). Method: bytes of the non-test `.ts`
files under the example's `src/`, divided by 4, as recovered on #22248
and applied in PR #22267. No new method and no new gate (triage ruling
on the card).
```text
$ find examples/app-todo/src -name '*.ts' -not -name '*.test.ts' | wc -l
27
$ find examples/app-todo/src -name '*.ts' -not -name '*.test.ts' | xargs cat | wc -c
97653
$ find examples/app-todo/src -name '*.ts' -not -name '*.test.ts' | xargs cat | wc -l
2383
$ find examples/app-showcase/src -name '*.ts' -not -name '*.test.ts' | wc -l
91
$ find examples/app-showcase/src -name '*.ts' -not -name '*.test.ts' | xargs cat | wc -c
696149
$ find examples/app-showcase/src -name '*.ts' -not -name '*.test.ts' | xargs cat | wc -l
14229
```
A second reading through git, not the filesystem, agrees on every file
count and byte total: `git ls-tree -r -l 5870716 --
examples/APP/src`, summing the sizes of files ending `.ts` and not
`.test.ts`.
| example | files | bytes | bytes / 4 | the post now says |
|:--|--:|--:|--:|:--|
| `app-todo` | 27 | 97,653 | 24,413 | ~24.5k |
| `app-showcase` | 91 | 696,149 | 174,037 | 91 files, ~174k |
Rounding follows the precision the post already uses, as PR #22267
recorded it: the Todo figure to the nearest 500 (the post's "~14.5k"),
the showcase figure to the nearest 1k (the post's "~101k"). 174,037 /
200,000 = 87.0%, so about 87% used and about 13% (25,963 tokens) free.
Control for the method: the same count over the tree the figures were
first written on (`a6058728de`) gives `app-todo` 25 files / 58,255 bytes
/ 14,564 and `app-showcase` 83 files / 405,447 bytes / 101,362, i.e. the
post's original "~14.5k", "83 files" and "~101k". The card's readings at
`8cbe255ef` also reproduce exactly (Todo 95,787 bytes / 23,947; showcase
695,310 bytes / 173,828). Between that commit and this base `app-todo`
grew by 1,866 bytes (+1.9%) and `app-showcase` by 839 (+0.1%): the
figures move with `main`. The Todo rounding band (24,250 to 24,750
tokens, i.e. 97,000 to 99,000 bytes) holds the current reading at
97,653.
The old sentence has no other copy: `git grep` for "half a modern
context window" finds nothing in the tree after this change, and a grep
of the tracked tree for the old figures ("~14.5k", "~101k", "83 files";
release notes and changelogs excluded) found them only in this
paragraph; the other pattern hits are unrelated test-shard and vitest
comments.
## Verification
Docs-only. The gate list was derived from the actual diff with `node
scripts/pm/dispatch-gates.mjs --commands --repo
objectstack-ai/objectstack` (no path arguments; 1 path against merge
base 5870716, 8 changed lines), every command run with its exit code
recorded to a file before any pipe, and the record reconciled with
`--ran`:
```text
✓ dispatch-gates --ran: 15 derived famil(ies) accounted for — 15 run, 0 NOT-MEASURED (a DERIVED zero — all 15 recorded an exit code and none of them is 3).
```
All 15 exit 0 at head bad1420 (including `check:doc-frontmatter` and
its self-test, `check:doc-anchors`, `check:doc-authoring`,
`check:nul-bytes`, `check:closing-keyword-parity` and its self-test).
One of them, `pnpm --filter @objectstack/lint run
check:doc-formula-expressions`, first refused on the fresh worktree with
exit 3 (PREREQUISITE NOT MET: `@objectstack/formula` and
`@objectstack/lint` were not built). That first pass measured nothing
and is not counted as a pass; the two closures were built under the
shared verify lock (`turbo run build --filter=@objectstack/formula
--filter=@objectstack/lint --concurrency=2`, VERDICT command-exit 0) and
the gate was re-run: exit 0.
No changeset, `skip-changeset` on the PR: no published package ships
`content/**`. Of the 82 tracked `package.json` files, 69 are non-private
and all 69 declare a `files` array; none of those entries reaches
`content/` or `blog/`, and the same scan counts 69 entries naming `dist`
as its positive control. No governed surface is touched
(`content/blog/**` is not in the register).
## Acceptance notes
- **The numbers will drift again.** Every figure in the paragraph is a
hard-coded reading of two example apps that change on `main` daily; the
card names no gate and none is added.
- **The CRM row beside it already reads 3 lines high.** The table's
"Lines | 1,929" (set by #22267, measured at its base `3513ac778`)
answers 1,932 at this base by the post's own `find ... | xargs cat | wc
-l` command (`app-crm`, 31 files, 74,182 bytes, ~18,545 tokens);
`app-crm/src` changed between #22267's base and its merge commit
`c8bb3c8d9` (73,889 bytes then, 74,182 at the merge commit), and the
bytes are identical at the merge commit and at this base. The tokens and
"about 9%" figures still hold. Not edited here: the CRM row is carved
out of this card. Same drift class the card already declares; noted, not
filed.
- **What the post now claims.** The card asked whether a numbers-only
fix changes what the post claims: it does, from "half a window left
over" to "about 13% left over". The triage ruling (rewrite the sentence
to whatever the new numbers support) is what this PR does; whether the
post wants a fuller rewrite of its framing is not decided here.
---
_Generated by [Claude
Code](https://claude.ai/code/session_0115N1oNnQS5WqofZ2DzaT3q)_
Co-authored-by: Claude <noreply@anthropic.com>1 parent 6d2da32 commit 2c52e43
1 file changed
Lines changed: 4 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| |||
0 commit comments