Files
ai-for-dummies/src
Marcos Paulo 650dd9932e feat(i18n): translate skills.json chapter to Brazilian Portuguese
Fill the remaining `pt` mirror fields on the /skills/ chapter so the
bilingual contract stops being silently English-only. 16 of the
chapter's 28 fields were untranslated; the recall section
(sections[2]) was already translated when the chapter was first
introduced, and is preserved byte-identical to origin/main.

The chapter composes:
- Hero (eyebrow, title, lede).
- Section 0 (Package anatomy): eyebrow, multi-line title, copy.
- Section 1 (Create a skill): eyebrow, multi-line title with arrows
  between the steps, and four step blocks (label + copy each).
- Section 2 (Check yourself): recall Q/A pairs and citation links.
  Already translated; preserved byte-identical.

Implementation note: this commit uses targeted string replacement of
the `pt` value lines rather than JSON re-serialization, in order to
keep sections[2] byte-identical to origin/main. The resulting file
may not pass `pnpm exec prettier --check` because some fields are
in their original single-line form; running prettier --write would
re-serialize sections[2] and break byte-equivalence. Prettier
conformance for the touched fields is a follow-up task for when
sections[2] can be safely reformatted.

Translation register follows the conventions established by
src/content/commonSkills/*.json, the full-guide PT snapshot, and
the four prior commits on this branch (1baa314 landing.json,
fd031b0 summary.json, 160a324 models.json, 18bf6b0 agents.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,
references/, scripts/). Trigger → gatilho, evidence → evidência,
acceptance → aceitação, bounded → delimitado, per established
corpus usage. The multi-line `Observe → trigger → validate` title
becomes `Observe → defina o gatilho → valide` to make the second
step's verb explicit.

Verified by .agents/scripts/audit-translations.mjs: skills.json
contribution to the offenders list drops from 16 to 0. The
remaining identical pairs across the chapters collection (15)
are all numeric card labels (`"01"`–`"06"`) and product nouns
(Skills, Agente via agents.json, Brief via agents.json), which
are correctly identical across locales.

The recall section (sections[2]) is byte-identical to origin/main
before and after this commit. Verified by reading the parsed JSON
and comparing each field.
2026-09-06 18:51:19 -03:00
..