Skip to content
Back to skills

Yun Sync Repo

ASecurity

Bring an external repo into the workspace as work material — cloned into repos/<name>/, gitignored, with its own .git.

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 19, 2026
ai-agentsshellgit

Security analysis

A100/100

Scanned September 19, 2026

npx -y skills add matiinchauspe/yunque --skill yun-sync-repo --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Yun Sync Repo?

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

Security grade badge for Yun Sync Repo
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/matiinchauspe-yun-sync-repo/badge)](https://www.skillsdirectory.com/skills/matiinchauspe-yun-sync-repo)

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: yun-sync-repo
description: Bring an external repo into the workspace as work material — cloned into repos/<name>/, gitignored, with its own .git.
disable-model-invocation: true
---

# yun-sync-repo

Brings an external repository into the workspace as work material. The repo is cloned
into `repos/<name>/`, which is gitignored — the workspace versions only the harness,
never the projects' code.

## Preconditions

- You MUST be at the workspace root (the directory containing `AGENTS.md` and `skills/`).
  Verify with the shell test `[ -e AGENTS.md ] && [ -d skills ]`, never a lister piped to a
  matcher — given no path argument it prints nothing and still exits 0.
  If you are not at the root, STOP and tell the user to open their agent from the
  workspace root (see AGENTS.md rule 1). Do not clone from anywhere else.

## Inputs

- A git URL (`https://…/repo.git`, `git@…:owner/repo.git`), OR
- A GitHub shorthand `owner/repo`, OR
- An explicit `<name>` for the target folder (optional; defaults to the repo basename).

## Steps

1. **Resolve the target name.** Use the explicit name if the user gave one; otherwise
   derive it from the URL basename without the `.git` suffix. Keep it kebab-case.

2. **Check for collision.** Look at `repos/<name>/`:
   - If it already exists and is a clone of the same remote → do NOT re-clone. Report it
     is already synced, and offer `git -C repos/<name> fetch --all --prune` to update.
   - If it exists but points to a different remote, or is a dirty non-repo directory →
     STOP and ask the user how to proceed. Never overwrite blindly.

3. **Clone.** `git clone <url> repos/<name>` — a full clone (worktrees need full history;
   do NOT use `--depth`). Expand a GitHub shorthand first — `owner/repo` →
   `https://github.com/owner/repo.git` — or `git clone` reads it as a local path.

4. **Verify the clone.**
   - `git -C repos/<name> rev-parse --is-inside-work-tree` returns `true`.
   - `git -C repos/<name> remote -v` shows the expected remote.

5. **Confirm isolation.** `repos/` is gitignored at the workspace level, so `git status`
   at the workspace root must NOT list the new repo. If it does, the workspace
   `.gitignore` is broken — fix it before continuing.

6. **Report.** Give the ready path `repos/<name>/` and its default branch.

## Notes

- Never clone into the workspace root or into `skills/`. Only into `repos/<name>/`.
- Do NOT `cd` into `repos/<name>/` to keep working — stay at the workspace root so the
  harness stays loaded (AGENTS.md rule 1). Operate on the repo via `git -C repos/<name>`,
  or spawn an isolated worktree with `yun-spawn-worktree`.

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.