agent-common
Use when a cc10x agent starts a task: the shared preamble for the memory protocol, the contract format, and the output rules.
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,
Claude Code
$ npx -y skills add romiluz13/cc10x --skill update --agent claude-code
Codex
$ npx skills add romiluz13/cc10x --skill update -a codex -y
Cursor
$ npx skills add romiluz13/cc10x --skill update -a cursor -y
Gemini CLI
$ npx skills add romiluz13/cc10x --skill update -a gemini-cli -y
GitHub Copilot
$ npx skills add romiluz13/cc10x --skill update -a github-copilot -y
OpenCode
$ npx skills add romiluz13/cc10x --skill update -a opencode -y
Windsurf
$ npx skills add romiluz13/cc10x --skill update -a windsurf -y
name: update description: | 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. allowed-tools: Read, Bash, AskUserQuestion
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 --json
The 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 --json
Take 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 cc10x
If 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
The Loop Engine for Claude Code — engineer the loop, not the prompt. 1 router · 14 agents · 21 skills · 8 workflows. Fail-closed gates, test honesty, anti-anchored review.
Use when a cc10x agent starts a task: the shared preamble for the memory protocol, the contract format, and the output rules.
Greenfield architecture design: map functionality flows, draw components, design APIs, classify dependencies, plan observability.…
Use when writing production code test-first: the RED-GREEN-REFACTOR cycle, false-RED detection, vertical slicing, scope…
Answers questions about cc10x itself — what it is, how to install and configure it, how the router, workflows, memory, and hooks…
Routes build, debug, review, plan, QA, and triage requests through the cc10x workflows (task graphs, workflow artifacts, gates);…
Two-mode skill: (1) adversarial review — spec compliance + code quality + security, confidence-scored findings with file:line…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.