Skip to content

[G9b] Docs site: Arabic translations, guides rewritten around createAgent() (part 1) #207

Closed

Description

@LinuxDevil

Goal

G1, G2a, G2b, G2c and G7 rewrote and reshuffled the guides that opened with the executor API, and moved the event schema and the queue and steer sections out of the streaming guide. Arabic pages on lousho.com are translated from the English pages (which are generated from the SDK's docs/*.md), and the site's CI fails when an Arabic page is stale or missing. After G9a the pages below are listed in ar/pending.json, so CI is green but the Arabic text is out of date. Bring them current. Plan row G9 (part of four).

Current state

Checked in E:\agent-sdk-docs at 40cb386, before G9a. This is a separate repository from the SDK: work in your own git worktree of it, branch lou-g9b-<slug>, pull request to LinuxDevil/agent-sdk-docs main (a merge deploys the site; the SDK repository's BRIEF-2 rules about worktrees, never forcing and never deleting branches, and reporting apply the same way).

  • Arabic pages are ar/<slug>.mdx, one per English <slug>.mdx; the English pages are generated and must not be edited here. scripts/TRANSLATING.md has the rules (what to translate, what stays byte for byte, the glossary). ar/translations.json records the SHA-1 prefix of the English page each translation matches.
  • node scripts/check-translations.mjs checks, per page: front matter with a quoted title, Arabic text present, the same number of fenced code blocks and identical bytes in each (Mermaid labels excepted), the same number of ## to #### headings, internal links under /ar/, valid heading anchors (anchors are mapped by heading position: the n-th heading of the English page is the n-th of the Arabic page), and not stale. --fix-links rewrites internal links and anchors to the Arabic ids; --record stores the hashes. G9a adds ar/pending.json: a slug listed there is skipped by every check. .github/workflows/check.yml runs npx mint validate, npx mint broken-links and the check on every pull request.
  • The English pages changed in wave 1 by moving, adding and renaming headings (sections moved between pages), so a patch by heading position does not work: re-sync each page in full.

Scope

In:

  • Re-translate these pages (the slugs G9a left in ar/pending.json; if one of them is not pending, say so): quickstart (rewritten around createAgent(); the executor section moved to the new executor-api page), durable-execution, workspace-tools, approvals, sessions, streaming (the event schema moved to stream-events, queued input and steering to queue-and-steer), sub-agents, compaction, skills, structured-output.
  • For each page: diff the English page against the version it was translated from (use git log -p -- <slug>.mdx in the docs repository) to see what moved; move the existing Arabic text of moved sections instead of retranslating; translate new and changed text following scripts/TRANSLATING.md and the glossary; keep every fenced code block byte for byte; keep the heading structure identical to the English page.
  • Run node scripts/check-translations.mjs --fix-links, fix what node scripts/check-translations.mjs reports, remove the page's slug from ar/pending.json, and run node scripts/check-translations.mjs --record once all pages of this ticket pass.
  • Run npx mint validate and npx mint broken-links.
    Out: pages in other tickets' lists; English pages; the comparison section (G9a); anything in the SDK repository.

Acceptance criteria

  • Every page listed above has been removed from ar/pending.json, its Arabic text matches the English page's structure and content, and node scripts/check-translations.mjs exits 0 with the page checked (not pending).
  • ar/translations.json records the new hashes for those pages.
  • npx mint validate and npx mint broken-links pass.
  • The pull request description lists the pages done and, for each, whether text was moved or newly translated; any page in the list that G9a did not leave pending is reported, not skipped silently.
  • The Arabic quickstart keeps the same section order as the English page (hello, tool, streaming, session, approval, offline test, custom provider, spec files, advanced executor).

Live test

None: this ticket spends nothing.

Dependencies

G9a (creates ar/pending.json and the regenerated English pages). Independent of G9c and G9d, which edit different pages; all three edit ar/pending.json and ar/translations.json, so rebase and keep both sides' changes.

Notes for the implementer

  • Use the terms of the glossary on every page; where the glossary has no term, follow the first-use rule (Arabic term with the English in parentheses) and add the term to the glossary table in scripts/TRANSLATING.md if more than one page uses it.
  • Code blocks, inline code, link targets, error codes and product names stay as they are.
  • If the English pages of your list changed after G9a (a later SDK sync), run npm run sync again first; do not translate a stale page.
  • Do not translate changelog (it is exempt).

Round 2 ticket G9b. Before starting, read the agent brief (worktree rules, verification list, live-test budget) and the plan. One ticket is one pull request; put Closes #<this issue> in it.

Activity

  1. added
    round-2Round 2 plan ticket
    wave-1Round 2, wave 1
    model:sonnetWell specified; a Sonnet agent can take it
    on Oct 2, 2026
  2. LinuxDevil commented on Oct 3, 2026

    @LinuxDevil
    OwnerAuthor

    Done through the docs-site catch-up passes: LinuxDevil/agent-sdk-docs#8 (all Arabic pages current at SDK e255525), #9 (SDK 1c3fd16) and #10 (SDK 78b079d). check-translations reports 60 pages, 0 pending, 0 stale; mint validate and broken-links pass; the Arabic navigation mirrors the English one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    model:sonnetWell specified; a Sonnet agent can take itround-2Round 2 plan ticketwave-1Round 2, wave 1

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions