harden-task-file
Harden a manifest-dev task guidance file for one-shot quality — either /define''s quality-gate/Default set or figure-out''s probe set. Iterates: orthogonality…
Sync the prompt-engineering plugin from a local clone of claude-code-plugins into .claude/ so the repo is self-contained for isolated/web environments. Copies agents/skills, removes only previously-synced items that disappeared upstream. Other content in .claude/ is left alone.
$ npx -y skills add doodledood/manifest-dev --skill sync-claude-code-plugins --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/sync-claude-code-pluginsContext preview
The summary Claude sees to decide when to auto-load this skill.
Sync the prompt-engineering plugin from a local clone of claude-code-plugins into .claude/ so the repo is self-contained for isolated/web environments. Copies agents/skills, removes only previously-synced items that disappeared upstream. Other content in .claude/ is left alone.
name: sync-claude-code-plugins description: 'Sync the prompt-engineering plugin from a local clone of claude-code-plugins into .claude/ so the repo is self-contained for isolated/web environments. Copies agents/skills, removes only previously-synced items that disappeared upstream. Other content in .claude/ is left alone. Use when asked to sync claude-code-plugins, pull prompt-engineering, refresh prompt-engineering plugin.' user-invocable: true metadata: internal: true
**User request**: $ARGUMENTS
Sync prompt-engineering plugin components from a local sibling clone of `claude-code-plugins` into this repo's `.claude/` directory. The plugin OWNS only the files it ships — other content in `.claude/agents/` and `.claude/skills/` (manifest-dev sync, KB skills, anything else) must be left alone.
| Role | Path | |------|------| | Source repo | `../claude-code-plugins` (relative to this repo's root) | | Source components | `<source_repo>/claude-plugins/prompt-engineering/` | | Target | `.claude/` in this repo | | Tracking file | `.claude/.claude-code-plugins-sync.json` |
| Component | Source dir | Target dir | |-----------|-----------|------------| | Agents | `agents/` | `.claude/agents/` | | Skills | `skills/` | `.claude/skills/` |
prompt-engineering ships no hooks today.
**Deletion invariant**: only items in `tracked` (the previously-synced set) are eligible for removal when they disappear upstream. Items never in `tracked` are invisible — that's how project-local content stays safe.
The tracked set lives in `.claude/.claude-code-plugins-sync.json`:
{
"version": 1,
"last_synced_at": "ISO-8601 timestamp",
"agents": ["<agent-file>.md", "..."],
"skills": ["<skill-dir>", "..."]
}First run (file missing): `tracked` is empty, no deletions happen, file is written at end.
Pre-flight: if the source is a clean git repo, `git pull --ff-only` first; surface a warning and proceed if pulling fails.
Then, when `<source_repo>/claude-plugins/prompt-engineering/` is missing, decide which of two different situations produced that one signal before doing anything else. A misconfigured path and a retired-upstream plugin look identical from the target side, and treating retirement as misconfiguration is what strands a retirement: the tracked items stay forever, because the only machinery that could remove them refuses to run.
When the evidence for removal is not available — no access to the source repo's history, or history that does not settle it — take the misconfigured-path branch. Aborting costs a stale copy that a later run fixes; deleting on a wrong reading costs files no run restores.
For each component (agents/skills):
Source listing excludes `README.md` and `.claude-plugin/` (plugin metadata, not content).
**Retirement denylist** (never copy or track, regardless of upstream):
| Component | Why it may not come back | |-----------|--------------------------| | `skills/prompt-engineering` | manifest-dev-tools ships its own, as a plugin-owned symlink at `.claude/skills/prompt-engineering` | | `agents/prompt-reviewer.md` | manifest-dev ships **zero agents**; `review-prompt` covers the capability as a plugin-owned symlink at `.claude/skills/review-prompt` | | `agents/prompt-compression-verifier.md` | retired upstream 2026-08-17 | | `agents/prompt-token-efficiency-verifier.md` | retired upstream 2026-08-17 | | `skills/auto-optimize-prompt` | retired upstream 2026-08-17 | | `skills/compress-prompt` | retired upstream 2026-08-17 | | `skills/optimize-prompt-token-efficiency` | retired upstream 2026-08-17 |
The last five were retired as *capability lost, not capability moved* — there is no replacement to point at, and an older upstream checkout that still ships them must not reintroduce them. All seven are already dropped from the tracked set.
After each sync, ensure `.agents/skills/<name>` is a symlink to `../../.claude/skills/<name>` for every tracked skill, and remove the symlink for any skill removed from `tracked`. This lets non-Claude coding agents (Codex, etc.) read the sam
Skills for agentic coding CLIs. They keep three things in your project instead of in your head: what it's becoming, what's worth doing next, and what done means here. The agent reads them, works against them, and checks the result before reporting it finished.
Harden a manifest-dev task guidance file for one-shot quality — either /define''s quality-gate/Default set or figure-out''s probe set. Iterates: orthogonality…
Analyze Claude Code sessions to learn what went right/wrong and suggest high-confidence improvements to skills. Use when asked to analyze a session, learn from…
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…
Analyzes the current project structure and tech stack. Use when asked to explore, understand, or summarize a project. Trigger terms: project overview, analyze…
Author-side PR lifecycle babysitter and companion to review-pr. Use when the user wants to tend an existing GitHub PR through CI, review threads, description…
Explain a topic like I'm a 5 year old. Use when the user types /eli5 <topic> or asks for a dead-simple picture explainer of how something works.