Skip to content
Back to skills

Sync Tools

ASecurity

Regenerate the Codex distribution copy of the plugin skills and check it for drift. Run after changing anything under claude-plugins/*/skills. OpenCode and Pi read the source tree directly and need no sync.

  • 73 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added May 28, 2026
toolspythonbash

Works with

  • claude code

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 20, 2026

npx -y skills add doodledood/manifest-dev --skill sync-tools --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sync Tools?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Sync Tools
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/doodledood-sync-tools/badge)](https://www.skillsdirectory.com/skills/doodledood-sync-tools)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: sync-tools
description: 'Regenerate the Codex distribution copy of the plugin skills and check it for drift. Run after changing anything under claude-plugins/*/skills. OpenCode and Pi read the source tree directly and need no sync.'
user-invocable: true
metadata:
  internal: true
---

# /sync-tools — distribution sync

Every host reads the same skill files. The Claude Code plugins under `claude-plugins/` are the source; OpenCode (`dist/opencode/plugin/index.js`) and Pi (repo-root `package.json`, `pi.skills`) point straight at `claude-plugins/*/skills`. Only Codex needs a copy, because it installs a plugin into its own cache, and that copy is generated:

```bash
python3 scripts/sync_dist.py          # regenerate dist/codex/plugins/*/skills byte-identically from source
python3 scripts/sync_dist.py --check  # exit 1 on any drift (tests/test_dist_skill_references.py runs this)
```

Run the first command after any change under `claude-plugins/*/skills`, then commit the regenerated tree with the change. There is no per-host rewrite: shipped skill text names no host primitive (`tests/test_skill_frontmatter.py` enforces that), so a copy is a copy.

## Hand-maintained packaging files

These are not generated. Edit them when what they describe changes:

| File | What it carries |
|------|-----------------|
| `dist/codex/plugins/manifest-dev/.codex-plugin/plugin.json`, `dist/codex/plugins/manifest-dev-tools/.codex-plugin/plugin.json` | Codex plugin manifests; `version` must equal the source plugin's `.claude-plugin/plugin.json` version |
| `.agents/plugins/marketplace.json` | Codex marketplace registry pointing at the two plugin directories |
| `dist/opencode/plugin/index.js`, `dist/opencode/plugin/package.json` | OpenCode plugin entry (registers the source skill dirs and slash-command wrappers); `version` tracks `manifest-dev`'s |
| `dist/opencode/AGENTS.md` | OpenCode instructions file the plugin registers |
| `dist/pi/prompts/*.md` | Pi prompt-template aliases (`/do`, `/auto`, `/babysit-pr`) |
| `dist/codex/README.md`, `dist/opencode/README.md`, `dist/pi/README.md` | Per-host install and update instructions |

Version bumps follow the repo's Versioning rules; this skill does not bump anything.

Files in this skill

  • SKILL.md10.9 KB
  • references/codex-cli.md20.2 KB
  • references/opencode-cli.md24.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.