---
name: bilingual-content-check
description: Check English and Portuguese portfolio articles and short notes for matching publication slugs, required content, duplicates, and static view counts. Use before publishing content in this schema, or when adapting a content export to it.
---

# Bilingual content check

Inspect the project's publication sources and distinguish published entries from drafts. For this portfolio, published content lives in `src/content/published/{en,pt}.ts`; never promote files from `drafts/` just to satisfy the checker.

Read [the schema](references/schema.md) when preparing an export. Export only data into a JSON object with `en` and `pt`, each containing `posts` and `shorts` arrays. Preserve slugs across translations, including when titles differ. Do not execute unknown content modules to obtain the export.

Run `node <skill-directory>/scripts/check.mjs <content.json>`. It reads the JSON without modifying files and prints structured diagnostics. Exit codes: 0 passes, 1 has validation findings, 2 has an input or execution error. Run `node <skill-directory>/scripts/check.mjs <skill-directory>/examples/valid.json` to try the included fictional example.

For this portfolio's trusted, local sources, `npm run check:content` also checks draft imports. The standalone checker does not scan imports or routes.

Report findings by path and code, with the smallest useful correction. A missing translation requires a reviewed counterpart or withholding the entry; copying the same text into both languages does not establish translation quality. Do not invent dates, results, attribution, or translations to obtain a passing report. Make edits only within the requested scope, then rerun the check.

A pass confirms structural consistency only. Review facts, translation quality, permissions, links, and rendered pages separately. Do not describe this as a security audit or an automatic publication approval. This skill does not publish or deploy.
