Skip to content
Merged
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
7b4fd19
docs: SEO titles for the 67 English pages whose title tag was two wor…
objectstack-fleet[bot] Oct 6, 2026
50f7841
Merge remote-tracking branch 'origin/main' into ff/issue-301
claude Oct 6, 2026
b421fbd
docs: muted-text and code-comment contrast, phone table affordance, F…
claude Oct 6, 2026
c5740f9
docs: record the measured search cold start and the smoke search requ…
claude Oct 6, 2026
21ef209
docs: state the measured contrast ratios in the theme and code-theme …
claude Oct 6, 2026
911a174
docs(views): declare views in a defineView container; list only the s…
claude Oct 6, 2026
c49dc6d
Merge remote-tracking branch 'origin/main' into ff/issue-311
claude Oct 6, 2026
5e666c3
fix(docs): run the awaited fumadocs-mdx write after next typegen in t…
claude Oct 6, 2026
5ad14ce
Merge remote-tracking branch 'origin/main' into ff/issue-305
claude Oct 6, 2026
41a1994
docs: localize fumadocs' accessible names, mark English page-tree ent…
claude Oct 6, 2026
c47c544
Merge remote-tracking branch 'origin/main' into ff/issue-307
claude Oct 6, 2026
69f7f1e
docs: make the views and flows code samples parse with @objectstack/s…
claude Oct 6, 2026
9709c50
Merge remote-tracking branch 'origin/main' into ff/issue-308
claude Oct 6, 2026
7c161c3
docs: a main landmark, a language switcher named by its text, a decor…
claude Oct 6, 2026
cc14430
ci: read the built pages for English chrome names and unmarked page-t…
claude Oct 6, 2026
77ad6ba
docs: the docs page's table-of-contents bar is not a second banner
claude Oct 6, 2026
5a07fbc
docs: the heading-anchor and code-copy buttons keep their own languag…
claude Oct 6, 2026
fa2390f
ci: the built-pages guard counts docs pages only
claude Oct 6, 2026
f8920d5
Merge remote-tracking branch 'origin/main' into ff/issue-312
claude Oct 6, 2026
482ff8f
docs: legal pages mark their English fallback lang="en" with the noti…
claude Oct 6, 2026
7c17974
docs: legal pages render an article inside HomeLayout's main, not a s…
claude Oct 6, 2026
0dd5019
Merge remote-tracking branch 'origin/main' into ff/issue-256-p3
claude Oct 7, 2026
e463447
docs(translation): delete siblings only when a correction reverses a …
claude Oct 6, 2026
c886c06
Merge remote-tracking branch 'origin/main' into ff/issue-316-a
claude Oct 7, 2026
c57caa2
docs: data model, actions and automation samples parse with @objectst…
claude Oct 7, 2026
2fce23d
Merge remote-tracking branch 'origin/main' into ff/issue-316-b
claude Oct 7, 2026
88c91c8
docs: the rest of the docs code samples parse with @objectstack/spec …
claude Oct 7, 2026
a8ce2ea
ci: parse every docs code sample against the pinned @objectstack/spec
claude Oct 7, 2026
2fda342
Merge remote-tracking branch 'origin/main' into ff/issue-256-p2
claude Oct 7, 2026
d8b19cd
docs(agents): delete locale siblings when an English correction rever…
claude Oct 6, 2026
239f044
docs(agents): record the type-check order and why it is load-bearing
claude Oct 6, 2026
86fd18c
docs(agents): drop the zh-Hans coverage count that nothing keeps current
claude Oct 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@ pnpm --filter @objectos/docs gen:zh-hant --check # what CI runs
every PR and fails on any byte of drift.
- Retiring a page or its Simplified sibling takes the Traditional file with it —
re-run the generator, which prunes what it no longer produces.
- Coverage tracks Simplified exactly (62 of 79 pages today). The 17 without a
Simplified sibling have no Traditional one either, so they are never
advertised in the sitemap or an hreflang cluster — they simply render English.
- Coverage tracks Simplified exactly. A page without a Simplified sibling has no
Traditional one either, so it is never advertised in the sitemap or an
hreflang cluster — it simply renders English.
- Committed output, not on-the-fly conversion, because `lib/seo.ts` tells a real
translation from an English fallback by the presence of a locale-suffixed
file. A conversion done while rendering produces no such file, and the locale
Expand All @@ -81,7 +81,7 @@ pnpm --filter @objectos/docs gen:zh-hant --check # what CI runs
When the English source changes:
1. Edit the English `.mdx`; verify it renders. That is the whole task.
2. Leave the locale siblings alone. They are stale now, the freshness gate says so on your PR, and the next pass fixes them. Stale is **reported, not blocking** — English landing on its own is the design, not an oversight.
3. **Retiring or renaming a page is the exception:** delete its locale siblings in the same PR. An orphaned translation blocks the gate, and a translation of a page that was rewritten to assert something different is worse than none — a missing translation renders correct English, a stale one renders content the English source no longer claims.
3. **Retiring or renaming a page is the exception, and so is an English correction that removes or reverses a capability assertion:** delete its locale siblings in the same PR. An orphaned translation blocks the gate, and a translation of a page that was rewritten to assert something different is worse than none — a missing translation renders correct English, a stale one renders content the English source no longer claims. Wording drift and number drift (a port number, a timing) do not count: they stay with the translation pass, as step 2 says ([ruling on #256](https://github.com/objectstack-ai/objectos/issues/256#issuecomment-5989567068)).
4. Never hand-write the `translation:` frontmatter block. Only `check-translations.mjs --stamp` writes it; a hand-typed sha is a lie the gate cannot catch.

Status at any time:
Expand All @@ -104,7 +104,7 @@ node .github/scripts/check-translations.mjs --worklist # what the next pass wil

From `apps/docs/`:
- `npm run dev` — dev server on http://localhost:3000
- `npm run type-check` — `fumadocs-mdx && next typegen && tsc --noEmit`
- `npm run type-check` — `next typegen && fumadocs-mdx && tsc --noEmit`. ⛔ Keep this order (#311): `next typegen` can exit mid-way through the un-awaited `.source/*` rewrite that `createMDX()` in `next.config.mjs` starts, leaving a truncated `.source/server.ts` that `tsc` rejects (TS2306), so the awaited `fumadocs-mdx` CLI goes after it as the last writer.
- `npm run build` — production build

## Turbo caching and content changes
Expand Down
Loading