160a324317
Fill the `pt` mirror fields on the /models/ chapter so the bilingual contract stops being silently English-only. 24 fields: hero eyebrow, title, lede, three effort-tier cards, and two sections (the routing rule panel and the sequence steps). The chapter reuses the same six surface primitives as landing.json and summary.json, with one new shape: the routing-rule panel (panelLabel + panelCode) on the first section, and a three-step sequence (steps[].label / steps[].copy) on the second. The English panel code mixes prose and prose-like tokens (→, ×, ·); the Portuguese preserves all of those. Translation register follows the conventions established by src/content/commonSkills/*.json, the full-guide PT snapshot, and the two prior commits on this branch (1baa314landing.json,fd031b0summary.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, model-tier names). Numeric and tier labels (LOW / BAIXO, MEDIUM / MÉDIO, HIGH / ALTO) translate as established by the efforts collection. `Ambiguidade` for "ambiguity" follows phases/plan.json's established usage; `execução delimitada` for "bounded execution" mirrors routes/build.json. The English metaphor "spend judgment / compounds" is rendered as `Invista julgamento onde ele compensa`, which carries the same meaning in Portuguese; the literal calque `compostos` would be opaque. Verified by .agents/scripts/audit-translations.mjs: models.json contribution to the offenders list drops from 24 to 0. Remaining identical fields live in agents.json (24) and skills.json (16), which will land in subsequent commits.
122 lines
3.5 KiB
JSON
122 lines
3.5 KiB
JSON
{
|
||
"id": "models",
|
||
"eyebrow": {
|
||
"en": "Model routing",
|
||
"pt": "Roteamento de modelos"
|
||
},
|
||
"title": {
|
||
"en": "Choose the<br><em>engine.</em>",
|
||
"pt": "Escolha o<br><em>motor.</em>"
|
||
},
|
||
"lede": {
|
||
"en": "A model has a capability ceiling. Effort controls how much room it gets to reason. Route by uncertainty and verification cost.",
|
||
"pt": "Um modelo tem um teto de capacidade. O esforço controla quanto espaço ele ganha para raciocinar. Roteie por incerteza e custo de verificação."
|
||
},
|
||
"cards": [
|
||
{
|
||
"label": {
|
||
"en": "LOW",
|
||
"pt": "BAIXO"
|
||
},
|
||
"title": {
|
||
"en": "Bounded rhythm",
|
||
"pt": "Ritmo delimitado"
|
||
},
|
||
"copy": {
|
||
"en": "Lookup, small edits, formatting, and transformations with clear checks.",
|
||
"pt": "Consultas, edições pequenas, formatação e transformações com checagens claras."
|
||
}
|
||
},
|
||
{
|
||
"label": {
|
||
"en": "MEDIUM",
|
||
"pt": "MÉDIO"
|
||
},
|
||
"title": {
|
||
"en": "Default work",
|
||
"pt": "Trabalho padrão"
|
||
},
|
||
"copy": {
|
||
"en": "Normal implementation where the contract is clear but context matters.",
|
||
"pt": "Implementação normal em que o contrato é claro, mas o contexto importa."
|
||
}
|
||
},
|
||
{
|
||
"label": {
|
||
"en": "HIGH",
|
||
"pt": "ALTO"
|
||
},
|
||
"title": {
|
||
"en": "Ambiguity",
|
||
"pt": "Ambiguidade"
|
||
},
|
||
"copy": {
|
||
"en": "Planning, architecture, security judgment, and hard failures.",
|
||
"pt": "Planejamento, arquitetura, julgamento de segurança e falhas difíceis."
|
||
}
|
||
}
|
||
],
|
||
"sections": [
|
||
{
|
||
"eyebrow": {
|
||
"en": "Two knobs",
|
||
"pt": "Dois controles"
|
||
},
|
||
"title": {
|
||
"en": "Capability<br>× effort",
|
||
"pt": "Capacidade<br>× esforço"
|
||
},
|
||
"panelLabel": {
|
||
"en": "ROUTING RULE",
|
||
"pt": "REGRA DE ROTEAMENTO"
|
||
},
|
||
"panelCode": {
|
||
"en": "strong model + high effort → frame ambiguity\nlight model + low effort → bounded execution\nraise one knob at a time → compare evidence",
|
||
"pt": "modelo forte + esforço alto → enquadrar ambiguidade\nmodelo leve + esforço baixo → execução delimitada\nsuba um controle por vez → compare evidências"
|
||
}
|
||
},
|
||
{
|
||
"eyebrow": {
|
||
"en": "Sequence",
|
||
"pt": "Sequência"
|
||
},
|
||
"title": {
|
||
"en": "Spend judgment<br>where it <em>compounds.</em>",
|
||
"pt": "Invista julgamento<br>onde ele <em>compensa.</em>"
|
||
},
|
||
"steps": [
|
||
{
|
||
"label": {
|
||
"en": "Plan",
|
||
"pt": "Planejar"
|
||
},
|
||
"copy": {
|
||
"en": "Strong model: scope, risks, acceptance, and worktree split.",
|
||
"pt": "Modelo forte: escopo, riscos, aceitação e divisão de worktrees."
|
||
}
|
||
},
|
||
{
|
||
"label": {
|
||
"en": "Build",
|
||
"pt": "Construir"
|
||
},
|
||
"copy": {
|
||
"en": "Focused worker: smallest context and lightest model that can pass.",
|
||
"pt": "Worker focado: o menor contexto e o modelo mais leve que passa."
|
||
}
|
||
},
|
||
{
|
||
"label": {
|
||
"en": "Review",
|
||
"pt": "Revisar"
|
||
},
|
||
"copy": {
|
||
"en": "Independent pass when missed issues cost more than the call.",
|
||
"pt": "Revisão independente quando erros perdidos custam mais que a chamada."
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|