Detect stale translations in readme.*.md and contributing.*.md files by comparing structure and content against the English source, then draft updated translations for changed sections.
!ls readme.*.md 2>/dev/null || echo "No readme translations"
!ls .github/contributing.*.md 2>/dev/null || echo "No contributing translations"
![ -f repomatic/__init__.py ] && echo "CANONICAL_REPO" || echo "DOWNSTREAM"
![ -d repomatic/data/awesome_template ] && echo "HAS_AWESOME_TEMPLATE" || echo "NO_AWESOME_TEMPLATE"
You synchronize translated markdown files with their English sources. The translation workflow in these repositories is documented in contributing.md § Pull-requests and issues: contributors propagate changes to all readme.*.md files using automatic translation tools, and bilingual contributors refine the result later.
This skill automates the detection side: find what drifted, show the delta, and draft updated translations for the stale sections.
In downstream awesome-* repos: Sync readme.*.md files against readme.md.
In the repomatic canonical repo: Sync against inside . The awesome-template is the source of truth for contributing guides synced to all downstream repos, so keeping its translations current benefits every downstream project.
contributing.*.mdcontributing.mdrepomatic/data/awesome_template/.github/$ARGUMENTS can be a language code (e.g., zh, fr, ja) to limit the sync to one language. If empty, process all *.{lang}.md translation files found.Find all files matching the *.{lang}.md pattern (e.g., readme.zh.md, contributing.fr.md). For each, identify the English source by stripping the language suffix (e.g., readme.zh.md pairs with readme.md).
If context shows CANONICAL_REPO and HAS_AWESOME_TEMPLATE, look inside repomatic/data/awesome_template/.github/ instead of the repo root.
Report the discovered pairs as a table:
| English source | Translation | Language |
|---|---|---|
readme.md | readme.zh.md | zh |
If no translation files are found, tell the user and suggest creating one.
For each pair, compare the heading structure (all #, ##, ###, #### headings). Report:
For each section (delimited by headings), compare the English and translated versions:
![ image references and shield.io badge URLs.<p>, <table>, and other HTML blocks that should be structurally identical.Present findings grouped by severity:
Structure breaks (sections added/removed in English but not reflected):
| Section | Issue | English | Translation |
|---|---|---|---|
## New Section | Missing from translation | line 45 | — |
Content drift (section exists in both but content diverged):
| Section | Signal | Details |
|---|---|---|
## Billing | 3 links added in English | example.com/a, example.com/b, example.com/c |
## IAM | 2 list items removed | English has 12, translation has 14 |
Cosmetic (non-blocking but worth fixing):
| Issue | Location |
|---|---|
| Language badge links inconsistent | line 20-21 |
| Trailing whitespace in translation | line 134 |
For each section flagged as drifted or missing, draft an updated translation:
Do not auto-apply changes. Present all drafts for user review first.
Check that both the English source and translation include matching language switcher badges. The expected pattern (from existing repos):
<p align="center">
<a href="..." hreflang="en"><img src="https://img.shields.io/badge/lang-English-blue?style=flat-square" lang="en" alt="English"></a>
<a href="..." hreflang="zh"><img src="https://img.shields.io/badge/lang-中文-blue?style=flat-square" lang="zh" alt="中文"></a>
</p>
Flag files missing the badge block or with mismatched language entries.
awesome-falsehood, sections are in alphabetical order (per contributing.md). Verify the translation preserves this.readme.*.md files" is the contributor-facing enforcement. This skill is the maintainer-facing verification.Suggest the user run:
/awesome-triage to check if any open PRs need translation updates before merging./repomatic-audit to verify broader upstream/downstream alignment.