Hook Development for Claude Code Plugins
anthropics/claude-plugins-official
Explains how to write Claude Code plugin hooks, both prompt-based checks and bash commands, for events such as PreToolUse, Stop and SessionStart.
Safe cc10x upgrade through the Claude Code plugin CLI. An agent skill from romiluz13/cc10x.
$ npx skills add romiluz13/cc10x --skill update -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install romiluz13/cc10x update --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/romiluz13/cc10x.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/cc10x/skills/update .claude/skills/update && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "update" agent skill from https://github.com/romiluz13/cc10x/tree/main/plugins/cc10x/skills/update into .claude/skills/update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/romiluz13/cc10x/tree/main/plugins/cc10x/skills/updateType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add romiluz13/cc10x --skill update -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install romiluz13/cc10x update --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/romiluz13/cc10x.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/cc10x/skills/update .agents/skills/update && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "update" agent skill from https://github.com/romiluz13/cc10x/tree/main/plugins/cc10x/skills/update into .agents/skills/update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add romiluz13/cc10x --skill update -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install romiluz13/cc10x update --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/romiluz13/cc10x.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/cc10x/skills/update .cursor/skills/update && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "update" agent skill from https://github.com/romiluz13/cc10x/tree/main/plugins/cc10x/skills/update into .cursor/skills/update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/romiluz13/cc10x.git --path plugins/cc10x/skills/update--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add romiluz13/cc10x --skill update -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install romiluz13/cc10x update --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/romiluz13/cc10x.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/cc10x/skills/update .gemini/skills/update && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "update" agent skill from https://github.com/romiluz13/cc10x/tree/main/plugins/cc10x/skills/update into .gemini/skills/update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install romiluz13/cc10x updateInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add romiluz13/cc10x --skill update -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/romiluz13/cc10x.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/cc10x/skills/update .github/skills/update && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "update" agent skill from https://github.com/romiluz13/cc10x/tree/main/plugins/cc10x/skills/update into .github/skills/update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add romiluz13/cc10x --skill update -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install romiluz13/cc10x update --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/romiluz13/cc10x.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/cc10x/skills/update .opencode/skills/update && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "update" agent skill from https://github.com/romiluz13/cc10x/tree/main/plugins/cc10x/skills/update into .opencode/skills/update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
updateSafe cc10x upgrade through the Claude Code plugin CLI. An agent skill from romiluz13/cc10x.
Update is an agent skill from romiluz13/cc10x. Safe cc10x upgrade through the Claude Code plugin CLI. Lists every installed scope, refreshes the marketplace, updates each scope, and optionally carries local patches over to the new install. Use this skill when: updating cc10x, upgrading, pulling latest cc10x, syncing plugin, refreshing cache, or checking for new versions. Triggers: update cc10x, upgrade cc10x, pull cc10x, sync plugin, refresh cc10x, check for updates, new version, update plugin, upgrade plugin.
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering Hooks and plugins. The repository describes itself as: The Loop Engine for Claude Code — engineer the loop, not the prompt. 1 router · 9 agents · 16 skills · 4 workflows. Fail-closed gates, test honesty, anti-anchored review. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f346ebe. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadBashAskUserQuestionFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
claudegitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Update loads about 1.7k tokens when it runs. Until then it costs about 119 tokens; SKILL.md has 880 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Bash, AskUserQuestionAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from romiluz13/cc10x at commit f346ebe, republished under its MIT licence (© romiluz13). 880 words, ~1,702 tokens.
.claude/skills/update/SKILL.md (or your agent's skills folder).Upgrade cc10x with the claude plugin CLI. The CLI owns the plugin registry and the install cache; this skill never edits either one directly and never assumes where they live.
Workflow: Discover installs → Locate the marketplace → (optional) Capture local patches → Refresh marketplace → Update each scope → Re-apply patches → Restart or reload.
Capture comes before the refresh on purpose: marketplace update moves the marketplace checkout to the new version, and the pristine baseline is read from that checkout. The marketplace checkout is often a shallow clone, so the baseline for an installed version is resolvable only when that version's commit is within the checkout depth; for an older install it usually is not. Carry-over is best-effort, and the skill says so plainly when it cannot run.
claude plugin list --jsonThe output is a JSON array. Keep only entries whose id is cc10x@cc10x. Each entry has version, scope (user, project, local, or managed), enabled, installPath, and, for project and local scopes, projectPath.
The same plugin can appear several times: once per scope, and once per project for project and local scopes. Different entries may point at different versions and different installPath values.
If no cc10x@cc10x entry exists → STOP and tell the user cc10x is not installed (install it with claude plugin install cc10x@cc10x).
Show the user one row per entry (scope, projectPath if present, version, installPath). For a project or local entry whose projectPath no longer exists on disk, mark it "skipped: project directory no longer exists"; it cannot be updated from there.
claude plugin marketplace list --jsonTake the entry named cc10x and set LOC to its installLocation. The plugin source is $LOC/plugins/cc10x. If the entry or that directory is missing → STOP and tell the user the marketplace is not registered (claude plugin marketplace add romiluz13/cc10x).
Ask the user whether they have modified cached cc10x files. Skip this phase only if they say no. Run it before Phase 4.
The scope gate comes later (Phase 4), so capture covers every discovered entry, not only those chosen afterwards. For each distinct old version among them, pin the pristine baseline: the commit that set that version in the marketplace checkout.
SHA=$(git -C "$LOC" log --format=%H -S"\"version\": \"<old>\"" -- plugins/cc10x/.claude-plugin/plugin.json | tail -1)
git -C "$LOC" show "$SHA:plugins/cc10x/.claude-plugin/plugin.json"tail -1 takes the oldest match, the commit that introduced the version string. The show output must contain "version": "<old>". The baseline is resolvable only if SHA is non-empty and the show output contains the old version string. If not (checkout depth is the usual cause: a one-commit shallow clone only resolves the version it currently holds) → ABORT carry-over: say plainly that carry-over is unavailable for that version because local modifications cannot be separated from upstream content, then offer the two safe choices: continue the update without carry-over, or stop so the user can save their edits by hand first. Do not guess a baseline from the new marketplace version.
With a pinned SHA, for each file in git -C "$LOC" ls-tree -r --name-only "$SHA" -- plugins/cc10x, save a per-file patch (pristine to locally modified, so applying it later re-adds the user's changes). A file that differs exits 1 from diff; a file missing from the install, or any exit 2, is reported rather than patched:
git -C "$LOC" show "$SHA:plugins/cc10x/<file>" | diff -u - "<old installPath>/<file>" > "<backup dir>/<file with / replaced by __>.patch"Entries that share an installPath share one result; capture it once. Use a backup directory the user approves (for example a cc10x-update-backup-<date> directory under the system temp directory). Report the modified files, files missing from the install, and files present only in the old installPath.
Gate: if local modifications exist, ask: "Save these patches and carry them over after the update?"
claude plugin marketplace update cc10xIf it exits non-zero, show its output and STOP: the available version is unknown, so do not claim success or continue to Phase 5. Saved patches stay in the backup directory.
Installed versions only change in Phase 5. To learn the available version, read .claude-plugin/plugin.json under $LOC/plugins/cc10x. If every entry already matches that version → report "already up to date" and STOP.
Gate: show installed versus available versions and ask the user which scopes to update.
For each selected entry:
claude plugin update cc10x@cc10x --scope <scope>For project and local entries, run the command from the entry's projectPath so the CLI resolves the right project; if that directory no longer exists, skip the entry and say so. Do not run it for managed scope; tell the user managed installs are updated by whoever administers them.
If a command fails, report its output and continue with the remaining scopes; do not retry with other flags.
Run claude plugin list --json again and read the new installPath for each updated entry. For each saved patch, apply it to the same file under the new installPath (the explicit target file makes header paths irrelevant):
patch --forward "<new installPath>/<file>" "<patch file>"If a hunk is rejected (a .rej file), show both versions and ask the user how to resolve it. Copy files that existed only in the old installPath into the new one. Report patches applied clean, conflicts, and files restored.
Updates apply only to a fresh session. Tell the user to restart Claude Code or run /reload-plugins. Report old version → new version for each scope updated.
You cannot restart or reload the session yourself, and you cannot verify the new version is active until the user does.
© romiluz13, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/cc10x/skills/update of romiluz13/cc10x.
Open the folder on GitHubat commit f346ebe
Update next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Update this skillromiluz13/cc10x | 164 | — | ~1.7k | Automated safety check: Notes | MIT | |
| Hook Development for Claude Code Pluginsanthropics/claude-plugins-official | 38k | 11 repos | ~4.1k | Automated safety check: Notes | Apache-2.0 | |
| Claude Code Agent Developmentanthropics/claude-plugins-official | 38k | 8 repos | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Claude Code Skill Developer Guidediet103/claude-code-infrastructure-showcase | 10k | 11 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Plugin Settings Patternanthropics/claude-plugins-official | 38k | 7 repos | ~3k | Automated safety check: Pass | Apache-2.0 | |
| MCP Integration for Pluginsanthropics/claude-plugins-official | 38k | 11 repos | ~3.1k | Automated safety check: Pass | Apache-2.0 |
anthropics/claude-plugins-official
Explains how to write Claude Code plugin hooks, both prompt-based checks and bash commands, for events such as PreToolUse, Stop and SessionStart.
anthropics/claude-plugins-official
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
diet103/claude-code-infrastructure-showcase
A guide to creating and managing Claude Code skills with auto-activation: skill-rules.json triggers, hooks, enforcement levels, YAML frontmatter and progressive disclosure.
anthropics/claude-plugins-official
Shows how Claude Code plugins keep per-project settings and state in .claude/plugin-name.local.md files with YAML frontmatter and a markdown body.
anthropics/claude-plugins-official
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
anthropics/claude-plugins-official
Explains how to write Claude Code slash commands: Markdown files with YAML frontmatter, arguments, file references, bash context and interactive prompts.
romiluz13/cc10x
A skill your agent uses when writing production code test-first: the RED-GREEN-REFACTOR cycle, false-RED detection, vertical slicing, scope escalation, test process discipline, and code generation…
romiluz13/cc10x
A skill your agent uses when a BUILD phase completes, a commit is staged, or a PR is about to be created, and the diff has not yet been reflected in documentation.
romiluz13/cc10x
A skill your agent uses when writing an execution plan or a decision RFC: task decomposition, context references, validation levels, risk-based testing, ADR format, plan completeness gate, and…
romiluz13/cc10x
A skill your agent uses when judging whether a task reached its goal, not just finished: the gate function, self-critique gate, validation levels, evidence array protocol, and goal-backward lens.
romiluz13/cc10x
A skill your agent uses when a cc10x agent starts a task: the shared preamble for the memory protocol, the contract format, and the output rules.
romiluz13/cc10x
Answers questions about cc10x itself — what it is, how to install and configure it, how the router, workflows, memory, and hooks operate, and how to troubleshoot.
Categories
Safe cc10x upgrade through the Claude Code plugin CLI. An agent skill from romiluz13/cc10x. Update is an agent skill from romiluz13/cc10x. Safe cc10x upgrade through the Claude Code plugin CLI.
Update fits situations like: : updating cc10x; pulling latest cc10x; refreshing cache; checking for new versions.
Run `npx skills add romiluz13/cc10x --skill update -a claude-code`. Or copy the skill folder (plugins/cc10x/skills/update in romiluz13/cc10x) into .claude/skills/update in your project. Claude Code loads it when a task matches its description.
Run `npx skills add romiluz13/cc10x --skill update -a codex`. Or copy the skill folder (plugins/cc10x/skills/update in romiluz13/cc10x) into .agents/skills/update in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add romiluz13/cc10x --skill update -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/update, .gemini/skills/update, .github/skills/update and .opencode/skills/update in your project.
Going by SKILL.md and its folder, Update needs the command-line tools its instructions call (claude and git). Its frontmatter pre-approves these tools: Read, Bash, AskUserQuestion.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Update is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Update: Hook Development for Claude Code Plugins (anthropics/claude-plugins-official, 38k stars), Claude Code Agent Development (anthropics/claude-plugins-official, 38k stars), Claude Code Skill Developer Guide (diet103/claude-code-infrastructure-showcase, 10k stars) and Plugin Settings Pattern (anthropics/claude-plugins-official, 38k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
romiluz13 (a GitHub user) maintains it in romiluz13/cc10x, which has 164 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 7, 2026.
Source: romiluz13/cc10x on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.