docs(site): drop the count-based claims from the homepage - #17355
Merged
Conversation
Remove every count-shaped claim from the objectstack.ai homepage: - `HOME_DESCRIPTION` (feeds `metadata.description`, `openGraph`, `twitter` and the JSON-LD `SoftwareSourceCode.description`) and the hero paragraph now say "typed metadata that fits in a single context window" instead of "a complete CRM in under 150k tokens". - The two-column prose section loses its token-budget paragraph; the ontology paragraph becomes the section's single full-width `<p>`, and the section wrapper is kept so vertical rhythm is unchanged. - The "1,600+ typed schemas | 5 database drivers | 7 framework adapters | MCP built-in" strip is deleted outright. Its third cell was also false on this tree: `packages/adapters/` holds exactly one adapter (`hono`). - `GATES[2].copy` reads "not a pile of generated glue". The section comment above the prose block described the deleted paragraph, so it is amended to describe what remains. Claude-Session: https://claude.ai/code/session_016gFSzdPX4324QMRKCjccTc Co-authored-by: Claude <noreply@anthropic.com>
os-sales
marked this pull request as ready for review
September 10, 2026 08:45
os-sales
enabled auto-merge
September 10, 2026 08:45
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 free
to 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 #17351
Applies the maintainer's ruling to the homepage, in the maintainer's own words:
(given 2026-09-10, after the same ruling was applied to
README.md: 「数量 相关的统计都去掉」)What changed —
apps/docs/app/[lang]/page.tsx, and nothing elseThe five sites the card names, in order:
HOME_DESCRIPTION— now "…into typed metadata that fits in a single context window." It feedsmetadata.description,openGraph.description,twitter.descriptionand the JSON-LDSoftwareSourceCode.descriptionviahomeGraph(), so all four move together, which is what the file's own comments require.<p>; the<section>wrapper and its padding are untouched, so vertical rhythm is unchanged.1,600+ typed schemas | 5 database drivers | 7 framework adapters | MCP built-inis deleted outright, not replaced with a number-free strip. The "Browse the full vocabulary in the docs" link that follows is the section's exit, and it already carries its ownmt-8.GATES[2].copy— "not a pile of generated glue".One comment amended, because the edit falsified it: the section header above (3) read
{/* ── the claim the video makes, in prose ── */}and that claim was the paragraph now deleted. It now reads{/* ── what that metadata is, in prose ── */}. The long comment abovemetadataand the two comments inhomeGraph()describe how the description is shared — still true after the edit, so they are untouched.The "7 framework adapters" cell was also false
packages/adapters/on this tree holds exactly one adapter:Deleting the strip removes the false claim; it is not corrected in place, per the card.
Evidence
The card's constraint grep, before and after, over the same file:
A wider sweep for the same claims by literal spelling —
150k|100k|50k|1,600|N database|N framework|N typed— also returns nothing.The rendered page, not just the source. After
pnpm docs:build, overapps/docs/.next/server/app:The short form is the
<meta>/ OpenGraph / Twitter / JSON-LD description; the long form is the hero. Both moved, together.Gates
Derived in the worktree with
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack(no hand-written path list) at commitdd66285, then reconciled with--ran:All 27 exited 0. Plus, beyond the derivation:
pnpm --filter @objectstack/docs typecheckfumadocs-mdx && next typegen && tsc --noEmit)pnpm lint(whole repo, not narrowed)pnpm docs:buildunderbash scripts/pm/os-verify-lock.sh -cVERDICT command-exit 0 · held the lock 173s (2m53s) · waited 0spnpm lintwas run over the whole population rather than the changed file, so no narrowing needs proving. For the record, the population figure comes from eslint's own resolution (--format json, 6488 entries), and this repo'seslint.config.mjsnever enables type-aware linting for any file (its own comment aboveQUERY_OPTIONS_TEST_GLOBSstates and measures this) — so a one-file diff could not have moved an untouched file's verdict in any case.Not measured here, by design: the CI job
[ci.yml · Build Docs]runs 4 steps in CI's own shell that no local family names; the 49 artifact-roster families, the 11 wide-population families and the always-runs tail are outside the derived union. CI owns those.Changeset
None, and
skip-changesetis on the PR.apps/docs/package.jsonis"private": truewith nofiles[], so this diff publishes nothing from any released package — confirmed against the repo's own gates rather than assumed:pnpm check:published-filesand the 26 other derived gates are green with no changeset present, andpr-automation.ymlreads theskip-changesetlabel live.Acceptance notes
Observed while working on this file; not changed here, and not filed:
README.mdon this tree still carries all four count claims (lines 10, 14, 144, 199 —150k tokens,100k tokens; the UI adds just 50k more,fifty thousand lines of glue,1,600+ of them). The card describes docs(readme): rewrite root README for developer onboarding #17347 as having already landed that rewrite; onorigin/mainat706ad0fit has not. That is docs(readme): rewrite root README for developer onboarding #17347's surface, not this card's, and the wording used for site (5) here is the wording that card specifies, so the two land consistent whichever order they merge in. Carrier: docs(readme): rewrite root README for developer onboarding #17347.npx create-objectstack my-appspelling inSTEPS[0].cmd(which differs from thenpm create objectstack@latestform used elsewhere). Carrier: none — noted only.01/02/03section numerals and the90 Secondsvideo title". That regex cannot match either —01and90are followed by neitherknor+— so the correct post-state is zero matches, which is what we get. No match survived that the card did not name.🤖 Generated with Claude Code
https://claude.ai/code/session_016gFSzdPX4324QMRKCjccTc