NDI's DO-07 is a Claude plugin that keeps every language version of a document saying the same thing. It is a synchroniser, not a translator: for each managed family it diffs the source against the state recorded at the last sync, carries across only the segments that moved, preserves the formatting, and records what it did so the next run can tell a real change from one it has already handled.
v0.1 — first testable version. Two reductions from the role spec are deliberate and recorded in
sync-config.yaml: there is no translation-memory bridge, and it does not watch folders. See Known limits below.
/do-07-translation-assistant Sample Input/Warranty_Policy_EN.docx
Or attach the family and say what you want:
DO-07: sync this family. First time, no index.
/plugin marketplace add new-digital-intelligence-com/DO-07-Translation-Assistant
/plugin install do-07-translation-assistant@ndi-ai-employees
Auto-update is off by default for a third-party marketplace — it defaults on only for Anthropic's own. Enable it in Customize → Plugins, or pull manually:
/plugin marketplace update ndi-ai-employees
.
├── .claude-plugin/
│ └── marketplace.json
├── plugins/
│ └── do-07-translation-assistant/
│ ├── .claude-plugin/
│ │ └── plugin.json
│ └── skills/
│ └── do-07-translation-assistant/
│ ├── SKILL.md
│ ├── sync-config.yaml [the pack's configuration, as built]
│ ├── scripts/
│ │ └── sync_index.py [what was synced, from which source state]
│ └── references/
│ └── segment-fidelity.md [what does not survive translation cleanly]
├── Sample Input/ [test family: source, family rule, glossary]
├── Sample Output/ [empty — see the note in that folder]
└── Templates/ [sync.yaml and glossary.csv examples]
The skill lives inside the plugin because Claude's loader blocks path traversal outside the plugin root.
- Propagate only what changed. A variant is never regenerated — regenerating silently discards every human edit anyone ever made to it.
- Two-sided change is a conflict, not a merge. If source and variant have both moved since the last recorded sync, the family freezes and escalates. Nothing guesses which side wins.
- The sync index is the memory. Nothing in a document store records what a previous run already handled.
- Out of date is a valid, reportable state. A frozen locale is reported behind, never quietly brought level.
The Sample Input/ family is built to trip every trap in references/segment-fidelity.md —
a three-column table that expands ~25% in German, a cross-reference, a decimal separator that
flips, units that must not be converted, product and entity names that must not be translated,
and two defined terms used throughout. Everything in it is invented.
Three runs worth doing, in order:
| Run | What to check |
|---|---|
| First sync, no index | Says plainly there is no previous state to diff and no conflict to detect |
| Edit two source paragraphs, re-run | Reports how many segments moved and where. Proposing to regenerate a whole variant is the failure to catch |
| Edit the source and a variant, re-run | Freezes the family rather than picking a side |
Plus: DO-07: freeze FR, reviewer is on leave, then sync — FR should be reported behind with
its reason and no work proposed for it.
- No translation memory. The role spec assumes a TMS bridge (Phrase or memoQ over a custom MCP). None exists in the tenant, so there is no segment reuse across runs and no "the deprecated term stops resurfacing" behaviour. The glossary is a file in the family folder, enforced within a run and remembered between runs only by the index.
- It does not watch. A skill runs when invoked or when a scheduled task fires, so change detection is by comparison against the recorded fingerprint. A change made and reverted between two runs is invisible.
- Formatting fidelity is untested at volume.
.docxsegment replacement preserves runs by design, but only the warranty family has been exercised.
Unlike a hand-authored skill, this bundle is a build output. It is generated by the NDI
factory from three inputs — the sync-across-variants archetype, the do-07 pack, and the
component column for DO-07 in the architecture sheet — via the build-ai-employee skill.
So edit the pack, not the files here. A change made directly to SKILL.md or
sync-config.yaml in this repository is discarded by the next rebuild. The factory currently
lives on Google Drive under 00 Factory; moving it into version control is the open task that
makes this repository's contents reproducible rather than just archived.
plugin.json carries no version field, so the plugin is versioned by commit SHA — every push
updates installations that have auto-update enabled.