Skip to content

feat: i18n translation skills and CI workflows#77

Open
tobomobo wants to merge 3 commits intoCopexit:mainfrom
bitcoinaustria:feat/i18n-skills-workflows
Open

feat: i18n translation skills and CI workflows#77
tobomobo wants to merge 3 commits intoCopexit:mainfrom
bitcoinaustria:feat/i18n-skills-workflows

Conversation

@tobomobo
Copy link
Copy Markdown

@tobomobo tobomobo commented Mar 26, 2026

Summary

Three Claude Code skills (tools/skills/) and two GitHub Actions workflow examples for translating and reviewing locale files.

  • transcreation-exposed - 5-step translation process with am-i.exposed voice rules, Bitcoin privacy terminology, subagent chunking for large jobs
  • qc-review - 5-dimension scored review, posts report as PR comment
  • stop-slop - AI writing pattern removal, final pass on translations

Voice rules and terminology constraints are derived from CLAUDE.md.

CI pipeline

transcreation.yml.example diffs EN against target locales, finds missing and stale keys (compares current EN values against EN at last translation commit), translates the delta, validates JSON and placeholder integrity, opens a PR.

translation-qc.yml.example triggers on that PR, extracts changed keys from the diff, reviews per locale in parallel, posts a scored report as a comment.

Both use anthropics/claude-code-action with OAuth token auth. Rename to .yml and add CLAUDE_CODE_OAUTH_TOKEN secret to activate.

Not included

Updated translations. Locale files are untouched. I will do a separate PR for the full transcreation when I have more tokens to spare.

Setup

Run once after cloning (see tools/skills/README.md for details):

mkdir -p .claude && ln -sf ../tools/skills .claude/skills

tobomobo and others added 3 commits March 26, 2026 13:25
Three Claude Code skills (transcreation-exposed, qc-review, stop-slop)
in tools/skills/ with symlink into .claude/skills/ for discovery.

Two GitHub Actions workflows:
- transcreation.yml: diffs EN against target locales, detects missing
  and stale keys via git history, translates the delta, validates JSON
- translation-qc.yml: triggers on locale PRs, runs scoped QC review
  per locale in parallel, posts scored report as PR comment

Both use anthropics/claude-code-action with OAuth token auth.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix shell/Python injection via summary output in Create PR step
  by passing diff summary through env var instead of ${{ }} interpolation
- Remove unnecessary id-token: write permission (only needed for OIDC,
  not OAuth token auth)
- Document stale-detection limitation in get_en_at_last_sync
- Document dry_run behavior on schedule trigger
- Replace hardcoded locale status table with pointer to diff job

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Prevents workflows from running until explicitly enabled by
removing the .example suffix.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@tobomobo tobomobo force-pushed the feat/i18n-skills-workflows branch from c299001 to d8be9bf Compare March 26, 2026 12:26
@tobomobo tobomobo marked this pull request as ready for review March 26, 2026 12:35
tobomobo added a commit to bitcoinaustria/transcreation that referenced this pull request Mar 26, 2026
7-part transcreation skill with configurable voice, terminology,
UI string rules, subagent strategy, and delivery checklists.

Includes QC review framework (5-dimension scoring) and GitHub
Actions workflow templates for automated translation sync and review.

Generalized from Copexit/am-i-exposed#77.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jesterhodl
Copy link
Copy Markdown

I was about to contribute translations to polish. Seeing this, does it mean, instead of translating, I could just add a definition for a language and the CI could do the honors? Or would you still recommend doing the translation in bulk?

@tobomobo
Copy link
Copy Markdown
Author

I was about to contribute translations to polish. Seeing this, does it mean, instead of translating, I could just add a definition for a language and the CI could do the honors? Or would you still recommend doing the translation in bulk?

Are you a polish native speaker? Would love some more feedback and quality spot checking of the skill output.

I'd recommend running the skills locally first and then submitting a PR. Beware of your token rate limits.

The CI automation is intended for changes und updates.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants