Uh oh!
There was an error while loading. Please reload this page.
docs: adopt the new tagline across README and the docs homepage hero - #9242
Merged
Conversation
Replaces the retired "A complex CRM system in 170k tokens" / "ObjectStack compresses an entire app" copy with the maintainer's definitive text, used verbatim, and adds the business-logic split line. Number discipline held on both surfaces: 150k is always the whole app including UI, 100k is always the business logic alone; the two numbers never swap host nouns. Surfaces: root README.md first screen, and the docs site hero (h1, lead paragraph, and the page metadata title/description that mirror it). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017TNzEetykdh7ceZGwuAPLq
os-zhuang
marked this pull request as ready for review
August 17, 2026 06:01
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Aug 17, 2026
os-steve pushed a commit
that referenced
this pull request
Aug 18, 2026
…-is-the-constraint The 2026-07-17 post is a fourth host of the ~16k-token app-crm measurement that #9293 already renamed on three other surfaces (README, two docs pages). It called the measured app "the entire business system", which collides with the adopted "complete CRM in under 150k tokens" tagline (#9242) — two claims both claiming to be the whole business system at different sizes. Per the other three hosts' post-#9293 wording, rename only the host noun in the sentence immediately following the table ("entire business system" -> "whole example app"), matching the canonical phrasing now used everywhere else. Numbers (31 / 1,792 / ~16,000 / 8% / 200k) and the surrounding argument are untouched -- this is a dated blog post, not a living doc, so only the characterisation collision is in scope. Fixes#9305
akarma-synetal pushed a commit
to akarma-synetal/framework
that referenced
this pull request
Aug 23, 2026
…-is-the-constraint (objectstack-ai#9422) The 2026-07-17 post is a fourth host of the ~16k-token app-crm measurement that objectstack-ai#9293 already renamed on three other surfaces (README, two docs pages). It called the measured app "the entire business system", which collides with the adopted "complete CRM in under 150k tokens" tagline (objectstack-ai#9242) — two claims both claiming to be the whole business system at different sizes. Per the other three hosts' post-objectstack-ai#9293 wording, rename only the host noun in the sentence immediately following the table ("entire business system" -> "whole example app"), matching the canonical phrasing now used everywhere else. Numbers (31 / 1,792 / ~16,000 / 8% / 200k) and the surrounding argument are untouched -- this is a dated blog post, not a living doc, so only the characterisation collision is in scope. Fixesobjectstack-ai#9305 Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#9241
Adopts the maintainer's definitive tagline (2026-08-17) on the root README first screen and the docs-site homepage hero, and adds the business-logic split line. Both blocks are used verbatim — not one word rewritten or polished. Verified mechanically rather than by eye: the flowed text of each surface is normalized for whitespace and asserted to contain the definitive strings as substrings (README hero, docs hero, docs page metadata: all three green).
Number discipline held everywhere the copy landed: 150k is always the whole app including UI; 100k is always the business logic alone. The two numbers never swap host nouns.
Changed — 2 files, 6 spots
README.md:7## A complex CRM system in 170k tokens.## Apps small enough for AI to hold whole.README.md:9-13ObjectStack compresses an entire app … refactor whole ([a complete CRM is under 170k tokens](#why-the-mistakes-dont-ship))apps/docs/app/[lang]/page.tsx:21ObjectStack — A complete business system in 16k tokensObjectStack — Apps small enough for AI to hold whole.apps/docs/app/[lang]/page.tsx:24ObjectStack compresses an entire business app … a complete CRM is under 2,000 linesapps/docs/app/[lang]/page.tsxh1A complete business system/in 16k tokens.Apps small enough/for AI to hold whole.(gradient span kept on the second half)apps/docs/app/[lang]/page.tsxlead paragraphcompresses an entire appparagraphTwo shape notes, both formatting only, no words touched:
[a complete CRM is under 170k tokens](#why-the-mistakes-dont-ship)is dropped, not re-pointed: the definitive copy carries no link, and inserting one would be editing it. The heading it pointed at is untouched and still reachable from the README table of contents.The ontology / TypeScript / runtime-derives tail of both paragraphs is retained — it is separate content, not the retired tagline, and the definitive copy does not replace it.
Swept and deliberately NOT changed
Grep sweep over
README*,content/docs/**,apps/docs/app/**,content/blog/**for170k,A complex business system,compresses an entire app,hold in context,one context window,entire/whole app, and every100k/150k/2,000 linestoken claim. Residual old copy after this PR: zero hits.README.md"The other half is size"examples/app-crmis31 files, 1,792 lines, roughly 16k tokens— "the whole business system, in about 8% of a 200k-token context window"find … wc -lcommand printed directly beneath it. Not the retired tagline and not a 150k/100k host-noun claim. See the flag below.content/docs/concepts/metadata-driven.mdx:219-232content/docs/getting-started/how-ai-development-works.mdx:29-34content/docs/concepts/metadata-driven.mdx:11-14(Callout)content/blog/context-window-is-the-constraint.mdx:43-52content/blogis neitherREADME*nor acontent/docshome/overview page), and the ~101k is a measurement of the kitchen-sink showcase app including UI — it is not the 100k business-logic host noun. Listed for sweep completeness.content/docs/references/**contextWindow,compressionfield rowscontent/docs/capabilities/approvals.mdx:22,content/docs/protocol/objectui/index.mdx:511,skills/**,packages/**100k/100Kas currency amounts, row counts, log-rotation sizescontent/docs/index.mdxand the section overview pages (capabilities,build-without-code,getting-started,concepts)content/docs/releases/**descriptionfieldOne thing for the maintainer to decide (not fixed here). The tagline says a complete CRM is under 150k tokens, while three docs surfaces measure the bundled
examples/app-crmat ~16k. Both claims read as "a complete CRM". This tension is pre-existing, not introduced here — the retired tagline said 170k while the same pages already said 16k, so the two figures have coexisted onmainby prior arrangement (tagline = a full-featured CRM; the example = the minimal bundled one). Re-measuring or reconciling them would mean either inventing numbers or editing the definitive copy, so this PR does neither and surfaces it instead.Verification
Union re-run after the final commit, at
89e946c50(git rev-parse --short HEAD):node scripts/check-nul-bytes.mjs --self-test— 75 assertions green;node scripts/check-nul-bytes.mjs— OK, 6039 text files, no raw control bytes. Plus a targetedgrep -naPcontrol-byte self-scan of both changed files: clean.pnpm --filter @objectstack/docs types:check(fumadocs-mdx && next typegen && tsc --noEmit) — green, exit 0. The apostrophe inagent'sinside JSX is the same construct the retired paragraph already used at that spot.node scripts/pm/dispatch-gates.mjs README.md 'apps/docs/app/[lang]/page.tsx'— re-derived against the actual changed paths: no check family names these paths and no workflow path filter schedules one for them; no model-tier path mandate.check:nul-byteswas run anyway as the every-edit family.No changeset: both surfaces are unpublished (
@objectstack/docsisprivate: true, the README ships in no package), so this PR releases nothing —skip-changesetapplied.Generated by Claude Code