Skip to content
cccskills
FreePublished on GitHub

sync-skills

Copy this repo's skills into another agent harness's skills directory by name — resolves the harness alias to its path via scripts/sync-targets.json and runs sync-skills.sh. Use only when the user asks to copy/sync/push the skills to another harness (oh-my-pi, opencode, kimi, codex, etc.) — never trigger automatically.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md4.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Sync-Skills

Thin natural-language wrapper over scripts/sync-skills.sh. The user names a harness ("copy the skills to oh-my-pi"); you resolve it to a skills directory and run the sync. All copying, marker safety, and dir resolution live in the script — you only parse intent, invoke, and relay.

Prerequisites

Requires jq on PATH. --to <alias> and list-targets resolve scripts/sync-targets.json through jq; the script fails fast with a clear error if jq is missing. Confirm jq is installed before invoking — command -v jq should print a path.

Resolve the repo + script (every run)

The script derives its source dir from its own location. Resolve the repo root once:

ROOT="$(git -C "$PWD" rev-parse --show-toplevel)"

Then use "$ROOT/scripts/sync-skills.sh". If $ROOT/scripts/sync-skills.sh does not exist, stop and tell the user to run this from the skills repo checkout.

Steps

  1. Parse the request into:

    • a harness alias — normalize the user's phrasing to a canonical key using this table (additions to scripts/sync-targets.json are how the table grows over time):

      User phrasingCanonical alias
      claude, ~/.claude, claude-codeclaude
      omp, oh-my-pi, "oh my pi"oh-my-pi
      oc, opencodeopencode
      kimikimi (unmapped — discovery fallback)
      codexcodex (unmapped — discovery fallback)

      Quote any alias that contains a space or shell metacharacter when passing it to --to. To see the full current list:

      bash "$ROOT/scripts/sync-skills.sh" list-targets
      
    • skill names, if any were named (otherwise all skills are pushed).

    • the verb: default push ("copy to X"). Only use pull / import / nuke if the user explicitly asked for that direction.

  2. Run (push, the common case):

    bash "$ROOT/scripts/sync-skills.sh" --to "<alias>" push [skill...]
    

    Echo the resolved destination (from list-targets) before/with the run, then relay the script's summary verbatim.

  3. Unknown alias → discovery fallback. If --to exits non-zero with "unknown harness", do NOT retry blindly. Instead:

    • Probe a few conventional locations and show what exists:
      ls -d ~/."<name>"/skills ~/.config/"<name>"/skills ~/."<name>" 2>/dev/null
      
    • Ask the user to confirm which is the harness's skills bucket (or supply the path).
    • Run once against the confirmed path with the literal escape hatch:
      bash "$ROOT/scripts/sync-skills.sh" --target <confirmed-dir> push [skill...]
      
    • Offer to remember it: append "<alias>": "<dir>" to $ROOT/scripts/sync-targets.json (use ~ for a $HOME-relative path) so next time --to <alias> just works. Only edit the file after the user agrees.

Confirm before running when

  • The target is brand-new / unmapped (first push to a harness) — show the resolved path and get a yes.
  • The verb is nuke or any --force — these delete/overwrite at the target. State exactly what will be removed/overwritten and where, then wait.

A normal push to an already-mapped harness needs no confirmation — just echo the destination and go.

You Must NOT

  • Copy files yourself (cp, rsync, manual mkdir) — the script owns all mutation and its marker logic protects unmanaged dirs at the target.
  • Call the script via {base_directory} — that points at this skill's dir, not the repo's scripts/. Always resolve $ROOT via git.
  • Push to a path you guessed without the user confirming it (fallback path).
  • Edit sync-targets.json before the user agrees to persist a new mapping.
  • Run nuke/--force without an explicit go-ahead.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Retire a closed issue's working artifacts out of specs/ into the GitHub wiki. Use only when the user asks to archive a finished issue, empty out specs/ for a done task, or move an issue's requirements/architecture/tasks/review/QA docs to the wiki.

The English summary is being prepared. Showing the original description.

foyzulkarim/skills43Updated Sep 4, 2026

commit

Free

One-shot conventional commit; bundled scripts adaptively gather diff context, draft the message, and stage+commit — pass `ask` to confirm first or add a hint for the title. Use only when the user asks for a commit.

The English summary is being prepared. Showing the original description.

foyzulkarim/skills43Updated Sep 4, 2026

Executes a QA specification (specs/qa/QA-<N>-<slug>.md) written by /plan-qa: drives every step with the plan's drivers, verifies each Expected line mechanically ([assert]) or by evidence-backed judgment against the plan's written criterion ([judge]), pauses at named operator handoffs, and writes the results artifact QA-RESULTS-<N>-<slug>.md. Use only when the user asks to run or execute a QA plan — never trigger automatically.

The English summary is being prepared. Showing the original description.

foyzulkarim/skills43Updated Sep 4, 2026

After an issue's PR has squash-merged on GitHub and its issue has closed: fast-forward the default branch, remove the issue-numbered nested worktree (.worktrees/<issue#>), and delete the local feature branch. Use when the user says to finish, tear down, or clean up a lane or worktree for a merged issue.

The English summary is being prepared. Showing the original description.

foyzulkarim/skills43Updated Sep 4, 2026

Phase 3 of 5 — slices the ARCH doc into verification-ready task specs (tdd/test-after/ui/checklist), emitted as a separate TASKS-<N>-<slug>.md file alongside ARCH for the implement skill. Use only when the user asks to run Phase 3 or generate tasks from an ARCH doc — never trigger automatically.

The English summary is being prepared. Showing the original description.

foyzulkarim/skills43Updated Sep 4, 2026

Phase 4 of 5 — implements tasks from TASKS-<N>-<slug>.md (with ARCH-<N>-<slug>.md as architecture-only context) using mode-appropriate verification (tdd, test-after, ui, checklist); pass 'auto' to run without stepping. Use only when the user asks to run Phase 4 or implement tasks from an ARCH doc — never trigger automatically from a coding request.

The English summary is being prepared. Showing the original description.

foyzulkarim/skills43Updated Sep 4, 2026

See all skills by foyzulkarim

Report a problem with this skill