How to use
- Copy the installation command and review the source package before installing it in your own agent environment.
- Check the source document for required tools, credentials and supported hosts.
- Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/sjunepark/agent-scripts --skill explore-repoBefore you start
- Installation does not include a model subscription, API allowance or permission to access your files.
- Repository stars and installation counts describe activity, not an independent quality or security test.
Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.
Explore Repo
Inspect external source from a stable cache outside the current project.
Workflow
- Decide whether external source inspection is warranted.
- Prefer installed source or primary documentation when it answers the question directly.
- Inspect the external repo when behavior depends on implementation details, version-specific control flow, defaults, generated files, or undocumented edge cases.
- If the user names a repository, branch, tag, commit, or package version, treat that as the target source unless local evidence points to a more exact ref.
- Use the central repo cache.
- Default cache root:
~/.repos. - Use a host-qualified path:
~/.repos/github.com/<owner>/<repo>
~/.repos/<host>/<owner-or-group>/<repo>- Strip a trailing
.gitfrom the directory name. - Do not clone external repos into the current project,
.tmp/, or a tracked worktree unless the user explicitly asks for that location.
- Reuse or create the clone.
- If the cache path already exists, inspect it before updating:
git -C ~/.repos/github.com/<owner>/<repo> status --short --branch
git -C ~/.repos/github.com/<owner>/<repo> remote -v- If the clone is dirty, do not reset, clean, pull, checkout, or overwrite it without explicit user approval. Report the dirty state and either inspect read-only or create a separate worktree under
~/.repos/.worktrees/. - If the clone is clean and current source is acceptable, update with:
git -C ~/.repos/github.com/<owner>/<repo> fetch --prune --tags- For a new clone, prefer a partial clone:
mkdir -p ~/.repos/github.com/<owner>
git clone --filter=blob:none <url> ~/.repos/github.com/<owner>/<repo>- Add
--depth=1only when history is not needed. Avoid shallow clones when comparing commits, inspecting history, or checking old tags.
- Check out the needed ref.
- If a branch, tag, commit, release, or dependency version matters, fetch and check out that exact ref.
- Record the inspected ref for the final answer:
git -C ~/.repos/github.com/<owner>/<repo> rev-parse --short HEAD
git -C ~/.repos/github.com/<owner>/<repo> status --short --branch- Explore with focused reads.
- Use
rg,rg --files,git grep,git log, and narrow file reads before opening broad source files. - Delegate broad or independent exploration to subagents when available. Use a
fast, low-reasoning configuration for routine source scans and a more capable configuration when the subagent must understand complex logic, architecture, cross-module behavior, or subtle implementation tradeoffs. Ask for concise findings, supporting paths, refs, and minimal quoted code.
- Use worktrees for experiments.
- Keep cached clones read-only by default.
- If builds, edits, generated files, or risky checkouts are needed, create an isolated worktree:
mkdir -p ~/.repos/.worktrees
git -C ~/.repos/github.com/<owner>/<repo> worktree add --detach ~/.repos/.worktrees/<repo>-<task> <ref>- Remove worktrees only when they were created for the current task and are no longer needed.
- Report the result.
- Cite the cache path, remote URL, inspected ref, and relevant files or symbols.
- Separate direct source observations from inference.
Guardrails
- Do not create or update project-local ignore rules just to hide external clones.
- Do not delete cached repos unless the user asks for cleanup.
- Do not wire cached external repos into the current project as dependencies.
- Do not paste large source files into the answer.
Cleanup
Use ~/.repos as an intentional cache, not disposable task output. When storage cleanup is requested, inspect size and age first, then propose or remove specific stale repos:
du -sh ~/.repos/* 2>/dev/null
find ~/.repos -mindepth 2 -maxdepth 4 -type d -name .git -prune -exec dirname {} \;


