Skip to content

docs(blog): re-measure the Todo and showcase sizes in the context-window post and correct the "half a window free" sentence - #22293

Merged
objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-22273-blog-example-sizes
Oct 8, 2026
Merged

objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-22273-blog-example-sizes

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

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.

-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).

$ 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 58707166ff -- 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:

✓ 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 docs: re-measure the example CRM size on the four pages that state it (31 files, 1,929 lines, ~18.5k tokens) #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 docs: re-measure the example CRM size on the four pages that state it (31 files, 1,929 lines, ~18.5k tokens) #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

…dow post and rewrite the sentence they no longer support

The post's Todo and showcase figures (~14.5k, 83 files / ~101k) were derived
as bytes of non-test .ts files under examples/<app>/src divided by 4. At this
base the same method gives app-todo 27 files / 97,653 bytes (~24.4k) and
app-showcase 91 files / 696,149 bytes (~174k), which is about 87% of the 200k
window the post already uses for the CRM paragraph. "leaves half a modern
context window free" is false at those numbers; the maximalist example still
fits, with about 13% to spare.

Claude-Session: https://claude.ai/code/session_0115N1oNnQS5WqofZ2DzaT3q
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Oct 8, 2026
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Oct 8, 2026
@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 8, 2026 12:54
@objectstack-fleet
objectstack-fleet Bot enabled auto-merge October 8, 2026 12:54
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 8, 2026
Merged via the queue into main with commit 2c52e43 Oct 8, 2026
37 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-22273-blog-example-sizes branch October 8, 2026 13:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants