From 18bf6b0943efd48c6f0afe26f88dc5c86cde45fc Mon Sep 17 00:00:00 2001 From: Marcos Paulo Date: Sun, 6 Sep 2026 18:39:48 -0300 Subject: [PATCH] feat(i18n): translate agents.json chapter to Brazilian Portuguese MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fill the `pt` mirror fields on the /agents/ chapter so the bilingual contract stops being silently English-only. 24 fields: hero eyebrow, title, lede, three role cards (FRAME/HAND OFF/PROVE), and two sections (the worktree-map panel and the handoff steps). The chapter adds two shapes that the prior translations did not need: the FRAME/HAND OFF/PROVE chip labels (uppercase action verbs in the source) and the tree-drawing `panelCode` block. Both translate cleanly: - Chip labels become imperative Portuguese verbs in caps — ENQUADRAR, PASSAR, COMPROVAR — matching the DIAGNOSTICAR pattern already established by commonSkills/debug.json. - Tree-drawing characters (├──, └──, │) in panelCode are language-neutral and preserved byte-for-byte. The English and Portuguese forms are visually parallel at every column. Translation register follows the conventions established by src/content/commonSkills/*.json, the full-guide PT snapshot, and the three prior commits on this branch (1baa314 landing.json, fd031b0 summary.json, 160a324 models.json): imperative voice, second-person `você`, sentence-case prose, all-caps labels, and English kept for product nouns (skill, worktree, brief, gate, pipeline, recall, prompt, enforcement, runs, orchestrator). `Worker` becomes `Agente` because the card title is a prose role-noun (per the glossary rule: worker in tab labels and code-like fragments, agente in prose). `Brief` (the handoff step) stays English as a product noun. `Passagem` for "Handoff" follows full-guide-pt.json. Verified by .agents/scripts/audit-translations.mjs: agents.json contribution to the offenders list drops from 24 to 0 (one field, `steps.0.label` for "Brief", remains identical by design — Brief is a product noun and is intentionally kept in English). Remaining identical fields live in skills.json (16) and the 7-each numeric card-label residues in landing.json and summary.json, which land in subsequent commits. The English side is byte-identical to origin/main, including the tree-drawing panelCode. Confirmed via byte-level diff before commit. --- src/content/chapters/agents.json | 46 ++++++++++++++++---------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/content/chapters/agents.json b/src/content/chapters/agents.json index f5093a0..22f1971 100644 --- a/src/content/chapters/agents.json +++ b/src/content/chapters/agents.json @@ -2,57 +2,57 @@ "id": "agents", "eyebrow": { "en": "Subagent workflow", - "pt": "Subagent workflow" + "pt": "Fluxo de subagentes" }, "title": { "en": "One branch
per hand.", - "pt": "One branch
per hand." + "pt": "Uma branch
por mão." }, "lede": { "en": "Agents work when roles, files, and evidence are bounded. A worktree gives each worker its own checkout while the orchestrator protects intent.", - "pt": "Agents work when roles, files, and evidence are bounded. A worktree gives each worker its own checkout while the orchestrator protects intent." + "pt": "Agentes funcionam quando papéis, arquivos e evidências são delimitados. Um worktree dá a cada agente seu próprio checkout enquanto o orquestrador protege a intenção." }, "cards": [ { "label": { "en": "FRAME", - "pt": "FRAME" + "pt": "ENQUADRAR" }, "title": { "en": "Orchestrator", - "pt": "Orchestrator" + "pt": "Orquestrador" }, "copy": { "en": "Owns scope, task graph, boundaries, and integration.", - "pt": "Owns scope, task graph, boundaries, and integration." + "pt": "Dono do escopo, do grafo de tarefas, das fronteiras e da integração." } }, { "label": { "en": "HAND OFF", - "pt": "HAND OFF" + "pt": "PASSAR" }, "title": { "en": "Worker", - "pt": "Worker" + "pt": "Agente" }, "copy": { "en": "Owns one coherent slice and one worktree.", - "pt": "Owns one coherent slice and one worktree." + "pt": "Dono de uma fatia coerente e de um worktree." } }, { "label": { "en": "PROVE", - "pt": "PROVE" + "pt": "COMPROVAR" }, "title": { "en": "Verifier", - "pt": "Verifier" + "pt": "Verificador" }, "copy": { "en": "Re-runs gates and reports remaining gaps.", - "pt": "Re-runs gates and reports remaining gaps." + "pt": "Roda gates novamente e reporta o que ainda falta." } } ], @@ -60,29 +60,29 @@ { "eyebrow": { "en": "The tree", - "pt": "The tree" + "pt": "A árvore" }, "title": { "en": "Split at
the seam.", - "pt": "Split at
the seam." + "pt": "Divida na
costura." }, "panelLabel": { "en": "MAIN / ORCHESTRATOR", - "pt": "MAIN / ORCHESTRATOR" + "pt": "MAIN / ORQUESTRADOR" }, "panelCode": { "en": "├── agent/ui → components + visual states\n├── agent/tests → acceptance + regressions\n└── agent/docs → guide + examples\n\nmerge after each leaf returns a diff and evidence", - "pt": "├── agent/ui → components + visual states\n├── agent/tests → acceptance + regressions\n└── agent/docs → guide + examples\n\nmerge after each leaf returns a diff and evidence" + "pt": "├── agent/ui → componentes + estados visuais\n├── agent/tests → aceitação + regressões\n└── agent/docs → guia + exemplos\n\nfaça merge depois que cada folha devolver um diff e evidências" } }, { "eyebrow": { "en": "Handoff", - "pt": "Handoff" + "pt": "Passagem" }, "title": { "en": "Context that
can travel.", - "pt": "Context that
can travel." + "pt": "Contexto que
pode viajar." }, "steps": [ { @@ -92,27 +92,27 @@ }, "copy": { "en": "Goal, owned files, dependencies, non-goals, acceptance.", - "pt": "Goal, owned files, dependencies, non-goals, acceptance." + "pt": "Objetivo, arquivos sob sua posse, dependências, fora de escopo, aceitação." } }, { "label": { "en": "Isolation", - "pt": "Isolation" + "pt": "Isolamento" }, "copy": { "en": "One branch and worktree per independent change.", - "pt": "One branch and worktree per independent change." + "pt": "Uma branch e um worktree por mudança independente." } }, { "label": { "en": "Evidence", - "pt": "Evidence" + "pt": "Evidência" }, "copy": { "en": "Commands, result, changed files, screenshots, gaps.", - "pt": "Commands, result, changed files, screenshots, gaps." + "pt": "Comandos, resultado, arquivos alterados, capturas de tela, lacunas." } } ]