You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
zh-Hant: the generator writes 籤 (lottery slip) where Traditional uses 簽 (sign): 籤核, 會籤, 請求籤名, 中籤發 on landed pages #366
Found by the #347 translation pass (batch 5, PR #365) and confirmed by the seat on main at 5fa5ff4.
What is wrong
apps/docs/scripts/gen-zh-hant.mjs converts zh-Hans to zh-Hant with OpenCC.Converter({ from: 'cn', to: 'twp' }). Simplified 签 maps to two Traditional characters, 簽 (sign, approve) and 籤 (lottery slip, tag). The twp phrase layer picks 籤 in places where every Taiwan reader expects 簽. There are two causes:
Wrong segmentation across a word boundary. 请求签名 is segmented as 请 + 求签 (draw a fortune lot) + 名, which gives 請求籤名. 中签发 is segmented as 中签 (win a lottery) + 发, which gives 中籤發 (here 中 is "in" and 签发 means "issue a key"). 上签发 does the same.
标签 → 標籤 (tag, tab) is correct and is not part of this finding.
Reproduce: grep -rnP '(中|上|求|都|次|待|人)籤|會籤' content/docs --include=*.zh-Hant.mdx. #365 adds more 籤核 on the automation pages.
Fix shape
Correct the conversion in the generator. Do not hand-edit the generated files: they carry the do-not-edit marker, and CI checks them byte for byte with gen-zh-hant.mjs --check.
Use a small override layer after the converter, for example an ordered list of exact [wrong, right] string pairs. It must cover 籤核→簽核, 會籤→會簽, 籤名→簽名 and 籤發→簽發, and it must leave 標籤 alone.
Keep the fence handling: the override runs only on the prose runs that the converter sees.
Regenerate the whole corpus in the same PR.
The header says the preset matches www.objectos.ai's src/lib/zhconvert.ts. That site likely has the same defect, so the PR names that file as a follow-up for its owner.
Claim: PM loop round 3 · 2026-10-28T00:24Z
Session: session_01QsR2jTaZ2GeyfjANMwstiw (seat thread; the dev is card thread session_01QsR2jRd8W1US76Cj78zAM8, identity by branch)
Account: zhuangjianguo
Branch: claude/project-thread-zpl8n0 (platform-assigned; a card thread can push only this branch)
Worktree: the card thread's own docs.objectos.ai checkout
Domain: domain:docs (single-lane repository)
Seat: repo:docs.objectos.ai#1
File surface: apps/docs/scripts/gen-zh-hant.mjs, plus the regenerated content/docs/**/*.zh-Hant.mdx and meta.zh-Hant.json, plus the three fixed zh-Hant pairs only if they change. No zh-Hans and no English. If the work goes beyond this surface, stop and explain why in the report.
Container & model: S, mode:thread, model: default tier (TIER_DEFAULT — sister repository, hand-derived: no packages/spec, no protocol-semantic surface), effort: project default
Clause-②: no
Metadata-protocol: none
Responsibility: n/a — generator defect, filed by this seat
Thread-read: none
Premise: confirmed. On main at 5fa5ff4, the grep in the card body finds 籤核, 會籤, 請求籤名, 中籤發 and 上籤發 in the generated zh-Hant. The generator is OpenCC.Converter({ from: 'cn', to: 'twp' }) at gen-zh-hant.mjs:117.
Tier: none.
Serial constraints cleared: the #347 translation pass also regenerates zh-Hant in each batch. After each merge of main, this card re-runs gen:zh-hant and does not resolve generated files by hand. The www.objectos.ai converter parity (src/lib/zhconvert.ts) is named in the PR as a follow-up for that site's owner and is not changed here.
Merged through the merge queue as 7f4042d (squash), on head 8e81f99, the head the seat ACCEPTed (comment 6457442280)
main CI run 40610342358 on 7f4042d
build success · Deploy docs / Publish the tested Worker success, with "Assert a new version is serving" success · Deploy docs / Smoke-check the live site success · rollback and failure-card jobs skipped
Closed by Fixes #366. Follow-up outside this repository: the PR body names www.objectos.aisrc/lib/zhconvert.ts for that site's owner.
Activity
objectstack-fleet commentedon Oct 28, 2026
Claim: PM loop round 3 · 2026-10-28T00:24Z
Session:
session_01QsR2jTaZ2GeyfjANMwstiw(seat thread; the dev is card threadsession_01QsR2jRd8W1US76Cj78zAM8, identity by branch)Account:
zhuangjianguoBranch:
claude/project-thread-zpl8n0(platform-assigned; a card thread can push only this branch)Worktree: the card thread's own
docs.objectos.aicheckoutDomain:
domain:docs(single-lane repository)Seat:
repo:docs.objectos.ai#1File surface:
apps/docs/scripts/gen-zh-hant.mjs, plus the regeneratedcontent/docs/**/*.zh-Hant.mdxandmeta.zh-Hant.json, plus the three fixed zh-Hant pairs only if they change. No zh-Hans and no English. If the work goes beyond this surface, stop and explain why in the report.Container & model: S,
mode:thread,model: default tier (TIER_DEFAULT — sister repository, hand-derived: no packages/spec, no protocol-semantic surface),effort: project defaultClause-②: no
Metadata-protocol: none
Responsibility: n/a — generator defect, filed by this seat
Thread-read: none
Premise: confirmed. On
mainat5fa5ff4, the grep in the card body finds 籤核, 會籤, 請求籤名, 中籤發 and 上籤發 in the generated zh-Hant. The generator isOpenCC.Converter({ from: 'cn', to: 'twp' })atgen-zh-hant.mjs:117.Tier: none.
Serial constraints cleared: the #347 translation pass also regenerates zh-Hant in each batch. After each merge of
main, this card re-runsgen:zh-hantand does not resolve generated files by hand. Thewww.objectos.aiconverter parity (src/lib/zhconvert.ts) is named in the PR as a follow-up for that site's owner and is not changed here.fix(i18n): type the private-use guard in gen-zh-hant as ASCII escapes (…
objectstack-fleet commentedon Oct 28, 2026
Landing · 2026-10-28T00:45Z ·
session_01QsR2jTaZ2GeyfjANMwstiw· seatrepo:docs.objectos.ai#17f4042d(squash), on head8e81f99, the head the seat ACCEPTed (comment 6457442280)mainCI run 40610342358 on7f4042dbuildsuccess ·Deploy docs / Publish the tested Workersuccess, with "Assert a new version is serving" success ·Deploy docs / Smoke-check the live sitesuccess · rollback and failure-card jobs skippedClosed by
Fixes #366. Follow-up outside this repository: the PR body nameswww.objectos.aisrc/lib/zhconvert.tsfor that site's owner.