This commit is contained in:
Alex Verkhovsky 2026-03-23 21:12:55 -06:00 committed by GitHub
commit 4466104e10
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 99 additions and 0 deletions

View File

@ -0,0 +1,98 @@
---
name: bmad-editorial-review-translation
description: 'Review translated documentation for content fidelity — detect injected, off-topic, or unauthorized content by comparing against the English source. Use when reviewing translation PRs or translated docs.'
---
# Editorial Review - Translation Fidelity
**Goal:** Detect any material in translated documents that has no basis in the English source: injected messaging, off-topic additions, unauthorized links, or other non-faithful content.
**Role:** Strict translation fidelity auditor. Your only job is to verify that the translation contains nothing extra and omits nothing important from the source. Do not comment on fluency, grammar, or style. Assume suspicious until proven faithful. Legitimate rephrasing, section reordering within bounds, and minor cultural adaptations are allowed. New topics, opinions, promotions, or external agendas are not.
**Inputs:**
- **content** (required) — Translated file(s) or PR diff
- **source_root** (optional) — English source directory. Infer by stripping language code prefix if missing (e.g. zh-cn/ -> /).
## PRINCIPLES
1. **Structure anchors everything.** Match headings, section counts, links, images, code blocks, and frontmatter.
2. **Back-translate suspicious content.** Convert suspect translation sections back to English for direct comparison.
3. **Links are critical.** Any URL in translation not in source requires explanation.
4. **Omissions count.** Missing source content can indicate censorship or incompleteness.
5. **Adaptation vs Injection.** Cultural examples or clarifications that aid understanding = INFO. Agenda-driven changes = violation.
## STEPS
### Step 1: File Pairing
Map each translated file to its English source. Flag files without sources as **ORPHAN**.
### Step 2: Structural Analysis
- Compare all headings (flag new/missing/altered)
- Compare section order and count
- Inventory and compare all links and assets
- Check frontmatter differences
- Note sections >2x longer (language variance considered)
### Step 3: Semantic Fidelity
For flagged sections:
- Back-translate to English
- Identify content without source equivalent
- Scan for common injections: politics, promotions, personal commentary, hidden text, SEO, unrelated CTAs
### Step 4: Classify
- **INJECTION**: Clear added material serving different purpose (primary concern)
- **DRIFT**: Significant meaning shift from source
- **ORPHAN**: No source exists
- **OMISSION**: Source content absent
- **LINK**: URL discrepancies
- **INFO**: Benign adaptations/translator notes
### Step 5: Report
Use this exact format:
## Translation Fidelity Review
**Files reviewed:** [N] translated vs [N] English sources
**Language:** [detected]
## Findings
### INJECTION (requires immediate review)
[If none: "None found."]
#### [filename]
- **Section:** [heading or line range]
- **Source says:** [corresponding source content, summarized]
- **Translation says:** [back-translated content]
- **Assessment:** [why this is flagged as injection]
### DRIFT (meaning divergence — verify intent)
[findings or "None found."]
### ORPHAN (no source counterpart)
[findings or "None found."]
### OMISSION (source content missing)
[findings or "None found."]
### LINK (URL discrepancies)
[findings or "None found."]
### INFO (noted, likely legitimate)
[findings or "None found."]
## Summary
- **INJECTION:** [count] — [CLEAN / REVIEW REQUIRED]
- **DRIFT:** [count]
- **ORPHAN:** [count]
- **OMISSION:** [count]
- **LINK:** [count]
- **INFO:** [count]
If zero INJECTION and zero DRIFT findings: state "Translation appears faithful to source material."
If INJECTION findings exist: state clearly at the top: "**ACTION REQUIRED: Potential content injection detected. Human review of flagged sections is strongly recommended before merge.**"
## HALT CONDITIONS
- No translated files identifiable
- No English sources can be located
- Input content empty

View File

@ -6,6 +6,7 @@ core,anytime,Index Docs,ID,,skill:bmad-index-docs,bmad-index-docs,false,,,"Creat
core,anytime,Shard Document,SD,,skill:bmad-shard-doc,bmad-shard-doc,false,,,"Split large documents into smaller files by sections. Use when doc becomes too large (>500 lines) to manage effectively.",, core,anytime,Shard Document,SD,,skill:bmad-shard-doc,bmad-shard-doc,false,,,"Split large documents into smaller files by sections. Use when doc becomes too large (>500 lines) to manage effectively.",,
core,anytime,Editorial Review - Prose,EP,,skill:bmad-editorial-review-prose,bmad-editorial-review-prose,false,,,"Review prose for clarity, tone, and communication issues. Use after drafting to polish written content.",report located with target document,"three-column markdown table with suggested fixes", core,anytime,Editorial Review - Prose,EP,,skill:bmad-editorial-review-prose,bmad-editorial-review-prose,false,,,"Review prose for clarity, tone, and communication issues. Use after drafting to polish written content.",report located with target document,"three-column markdown table with suggested fixes",
core,anytime,Editorial Review - Structure,ES,,skill:bmad-editorial-review-structure,bmad-editorial-review-structure,false,,,"Propose cuts, reorganization, and simplification while preserving comprehension. Use when doc produced from multiple subprocesses or needs structural improvement.",report located with target document, core,anytime,Editorial Review - Structure,ES,,skill:bmad-editorial-review-structure,bmad-editorial-review-structure,false,,,"Propose cuts, reorganization, and simplification while preserving comprehension. Use when doc produced from multiple subprocesses or needs structural improvement.",report located with target document,
core,anytime,Editorial Review - Translation Fidelity,ET,,skill:bmad-editorial-review-translation,bmad-editorial-review-translation,false,,,"Review translated docs for content injection, off-topic additions, or unauthorized content by comparing against English source. Use when reviewing translation PRs.",report located with target document,findings report with severity categories
core,anytime,Adversarial Review (General),AR,,skill:bmad-review-adversarial-general,bmad-review-adversarial-general,false,,,"Review content critically to find issues and weaknesses. Use for quality assurance or before finalizing deliverables. Code Review in other modules run this automatically, but its useful also for document reviews",, core,anytime,Adversarial Review (General),AR,,skill:bmad-review-adversarial-general,bmad-review-adversarial-general,false,,,"Review content critically to find issues and weaknesses. Use for quality assurance or before finalizing deliverables. Code Review in other modules run this automatically, but its useful also for document reviews",,
core,anytime,Edge Case Hunter Review,ECH,,skill:bmad-review-edge-case-hunter,bmad-review-edge-case-hunter,false,,,"Walk every branching path and boundary condition in code, report only unhandled edge cases. Use alongside adversarial review for orthogonal coverage - method-driven not attitude-driven.",, core,anytime,Edge Case Hunter Review,ECH,,skill:bmad-review-edge-case-hunter,bmad-review-edge-case-hunter,false,,,"Walk every branching path and boundary condition in code, report only unhandled edge cases. Use alongside adversarial review for orthogonal coverage - method-driven not attitude-driven.",,
core,anytime,Distillator,DG,,skill:bmad-distillator,bmad-distillator,false,,,"Lossless LLM-optimized compression of source documents. Use when you need token-efficient distillates that preserve all information for downstream LLM consumption.",adjacent to source document or specified output_path,distillate markdown file(s) core,anytime,Distillator,DG,,skill:bmad-distillator,bmad-distillator,false,,,"Lossless LLM-optimized compression of source documents. Use when you need token-efficient distillates that preserve all information for downstream LLM consumption.",adjacent to source document or specified output_path,distillate markdown file(s)

Can't render this file because it has a wrong number of fields in line 2.