Files
ai-for-dummies/src/content/chapters/agents.json
T
Marcos Paulo 18bf6b0943 feat(i18n): translate agents.json chapter to Brazilian Portuguese
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.
2026-09-06 18:39:48 -03:00

122 lines
3.5 KiB
JSON

{
"id": "agents",
"eyebrow": {
"en": "Subagent workflow",
"pt": "Fluxo de subagentes"
},
"title": {
"en": "One branch<br>per <em>hand.</em>",
"pt": "Uma branch<br>por <em>mão.</em>"
},
"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": "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": "ENQUADRAR"
},
"title": {
"en": "Orchestrator",
"pt": "Orquestrador"
},
"copy": {
"en": "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": "PASSAR"
},
"title": {
"en": "Worker",
"pt": "Agente"
},
"copy": {
"en": "Owns one coherent slice and one worktree.",
"pt": "Dono de uma fatia coerente e de um worktree."
}
},
{
"label": {
"en": "PROVE",
"pt": "COMPROVAR"
},
"title": {
"en": "Verifier",
"pt": "Verificador"
},
"copy": {
"en": "Re-runs gates and reports remaining gaps.",
"pt": "Roda gates novamente e reporta o que ainda falta."
}
}
],
"sections": [
{
"eyebrow": {
"en": "The tree",
"pt": "A árvore"
},
"title": {
"en": "Split at<br>the <em>seam.</em>",
"pt": "Divida na<br><em>costura.</em>"
},
"panelLabel": {
"en": "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 → 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": "Passagem"
},
"title": {
"en": "Context that<br>can <em>travel.</em>",
"pt": "Contexto que<br>pode <em>viajar.</em>"
},
"steps": [
{
"label": {
"en": "Brief",
"pt": "Brief"
},
"copy": {
"en": "Goal, owned files, dependencies, non-goals, acceptance.",
"pt": "Objetivo, arquivos sob sua posse, dependências, fora de escopo, aceitação."
}
},
{
"label": {
"en": "Isolation",
"pt": "Isolamento"
},
"copy": {
"en": "One branch and worktree per independent change.",
"pt": "Uma branch e um worktree por mudança independente."
}
},
{
"label": {
"en": "Evidence",
"pt": "Evidência"
},
"copy": {
"en": "Commands, result, changed files, screenshots, gaps.",
"pt": "Comandos, resultado, arquivos alterados, capturas de tela, lacunas."
}
}
]
}
]
}