skills-scout
npx skills add https://github.com/servaltullius/skills-scout --skill skills-scout
Agent 安装分布
Skill 文档
Skills Scout
Overview
Discover relevant skills from skills.sh and install them globally for Codex only after the user reviews options and explicitly approves installation.
Core principle: Search before building; ask before installing.
How this differs from find-skills (vercel-labs/skills)
There is an upstream skill that covers âhow to use npx skills findâ. skills-scout is intentionally stricter and Codex-focused:
- Adds hardâmode vetting (repo metadata + risky command scan) before recommending installs.
- Enforces explicit consent gates and Codex global install defaults (
-g -a codex). - Optionally pins installed skills into the repo
AGENTS.mdso theyâre actually visible per repo.
Reference: https://github.com/vercel-labs/skills/blob/main/skills/find-skills/SKILL.md
When to Use
Use this skill when the user:
- Asks âis there a skill for X?â / âfind a skill for Xâ
- Mentions wanting to extend agent capabilities for the task
- Says âinstall whatever you needâ but still expects transparency/consent
- Has a common task where a skill likely exists (testing, CI/CD, PR review, docs, deploy)
Do not use this skill when the user:
- Explicitly forbids installs or network access
- Only wants an explanation (no execution)
Workflow
0) Confirm constraints (Codex global install)
- Install scope: global (
-g) - Target agent: codex (
-a codex) - Search scope: allow all (entire ecosystem), but vet credibility before recommending
- Install count: unlimited, but never install without explicit consent
If the user wants the âproject startâ workflow to happen by default in new repos, recommend adding a small routine to their global ~/.codex/AGENTS.md (do not edit without consent):
- Preview (dry-run):
node ~/.codex/skills/skills-scout/scripts/pin-agents-md.mjs --repo . - Apply (write):
node ~/.codex/skills/skills-scout/scripts/pin-agents-md.mjs --repo . --write
1) Check whatâs already installed
npx -y skills ls -g -a codex
ls -la ~/.codex/skills
If a suitable skill is already installed, use it instead of installing duplicates.
1.5) Quick project scan (to refine search + compatibility)
Before searching, do a quick scan to identify the projectâs stack so you donât recommend irrelevant skills.
Look for:
- Language/runtime (Node/Python/Go/etc.)
- Package manager (pnpm/npm/yarn/bun)
- Framework (Next.js/React/Vite/etc.)
- CI system (GitHub Actions, etc.)
Example commands (keep it fast; donât read secrets like .env):
ls
rg --files | rg -i '^(package\\.json|pnpm-lock\\.yaml|yarn\\.lock|package-lock\\.json|bun\\.lockb|bun\\.lock|next\\.config\\.|vite\\.config\\.|tsconfig\\.json|pyproject\\.toml|requirements\\.txt|go\\.mod|cargo\\.toml|dockerfile|docker-compose\\.|\\.github/workflows/)'
Use this context to:
- build a better query (e.g., âplaywright e2e pnpm nextjsâ)
- mark candidates Caution/Avoid if they assume the wrong stack (e.g., bun-only skill on a pnpm repo)
2) Search for candidate skills
Turn the user request into a short keyword query (2â6 words), then run:
npx -y skills find "<query>"
Never invent results. Always run the search and present the real output (or say âno skills foundâ).
Tip (clean output for copy/paste/notes):
npx -y skills find "<query>" | sed -r 's/\x1B\[[0-9;]*[mK]//g'
3) Vet candidates (credibility + risk)
Before recommending any skill for installation, do a quick credibility/risk pass. âAllow allâ means search all, not trust all.
Hard mode (default): evidence before labels.
- Never claim âMITâ, ârecent pushâ, âsafeâ, âmaintainedâ, etc. unless you actually verified it.
- If you cannot verify key facts (license/activity/archived), treat it as unknown and classify as Caution or Avoid.
Credibility signals (prefer):
- Maintained repo (recent activity, not archived)
- Clear owner identity (org or known maintainer)
- License present
- Multiple users/adoption signals (stars/downloads/usage), where available
- Skill text is specific, not vague marketing
- Looks compatible with this repoâs stack (package manager/framework/CI)
Risk signals (avoid or require explicit âI accept riskâ):
- Asks for secrets/tokens in plaintext, or to paste credentials
- Contains destructive commands (
rm -rf,sudo, editing~/.ssh, changing shells/rc files) - Pipes remote scripts to shell (
curl ... | sh,wget ... | bash) - Downloads/runs opaque binaries without provenance
- Broad filesystem operations outside the current repo without justification
Hard gating checks (do these, donât guess):
- Identify the backing repo (
owner/repo) from the skill spec. - Fetch repo metadata (GitHub API) and record the facts:
curl -fsSL "https://api.github.com/repos/<owner>/<repo>" \
| python -c 'import sys,json; d=json.load(sys.stdin); print(\"archived:\", d.get(\"archived\")); print(\"pushed_at:\", d.get(\"pushed_at\")); print(\"license:\", (d.get(\"license\") or {}).get(\"spdx_id\")); print(\"stars:\", d.get(\"stargazers_count\"))'
If gh is available, you may use it instead of curl:
gh api repos/<owner>/<repo> --jq '{archived, pushed_at, license:(.license.spdx_id // \"NONE\"), stars:.stargazers_count}'
If rate-limited, do not ask the user to paste a token. Ask them to set GITHUB_TOKEN in the environment (out of band) or proceed without installs.
- Skim the skillâs
SKILL.md(and any scripts it references) for the risk signals above.
Assign one of: Recommended, Caution, Avoid.
Classification rules (harder defaults):
- Avoid if any are true:
archived: truelicense: None/NOASSERTION/ missing- Any risk signal is present (secrets-in-chat, destructive commands,
curl|sh, opaque binaries, etc.) pushed_atis very old (e.g., > ~12 months)
- Caution if any are true:
- Repo activity is not clearly recent (e.g., pushed > ~6 months ago) or you canât easily tell
- Low adoption signal (e.g., very low stars) or unclear scope (project-specific)
- The skill references helper scripts/binaries you have not reviewed yet
- You canât verify metadata due to tooling/rate limits
- Recommended only if:
- Not archived, license is present, activity is recent, and no risk signals were found.
Minimum info to show the user per candidate:
- Skill spec (e.g.
owner/repo@skill) skills.shlink- The exact install command
- Your assessment: Recommended / Caution / Avoid (with 1-line reason)
- Evidence summary (donât paste huge blobs):
archived=⦠license=⦠pushed_at=⦠stars=â¦
4) Present options and ask for consent
Always present choices first. Use a numbered list and ask the user to pick:
- âInstall 1 and 3â
- âInstall allâ
- âInstall none; proceed without skillsâ
Hard mode consent rules:
- Install Recommended only after the user explicitly chooses.
- Install Caution only after the user explicitly chooses and acknowledges risk.
- Do not offer Avoid for installation by default. Only proceed if the user names it explicitly and says they accept the risk.
5) Install the selected skills (global)
npx -y skills add -g -a codex -y <owner/repo@skill>
If the skill spec contains spaces, quote it:
npx -y skills add -g -a codex -y 'owner/repo@Skill With Spaces'
Install multiple skills by repeating the command for each selection.
6) Verify installation and proceed
npx -y skills ls -g -a codex
Then load and follow the installed skill(s)â instructions while doing the userâs task.
7) (Optional) Pin installed skills into this repoâs AGENTS.md
If you install skills globally, Codex may not âseeâ them for this repo unless theyâre listed in the repoâs AGENTS.md.
This repo includes a helper script that:
- scans the current repo to infer stack keywords
- scans installed skills (global + repo-local)
- writes/updates a generated pinned section in
<repo>/AGENTS.md(creates it if missing)
Dry-run (prints the would-be AGENTS.md):
node ~/.codex/skills/skills-scout/scripts/pin-agents-md.mjs --repo .
Apply changes:
node ~/.codex/skills/skills-scout/scripts/pin-agents-md.mjs --repo . --write
Notes:
- Only the block between
<!-- skills-scout:start -->and<!-- skills-scout:end -->is managed. - Re-running is idempotent.
Quick Reference
| Goal | Command |
|---|---|
| Search skills | npx -y skills find "<query>" |
| Install (global) | npx -y skills add -g -a codex -y <owner/repo@skill> |
| List installed (global) | npx -y skills ls -g -a codex |
| Remove (global) | npx -y skills remove -g -a codex -y <skill-name> |
Example (Playwright e2e setup)
User: âPlaywrightë¡ e2e í ì¤í¸ ì ì í´ì¤. íìí ì¤í¬ ìì¼ë©´ ì¤ì¹í´ë ë¼.â
- Search:
npx -y skills find "playwright e2e"
- Present options (example format):
-
microsoft/playwright@playwright-cliâ https://skills.sh/microsoft/playwright/playwright-cli
- Install:
npx -y skills add -g -a codex -y microsoft/playwright@playwright-cli
-
sickn33/antigravity-awesome-skills@playwright-skillâ https://skills.sh/sickn33/antigravity-awesome-skills/playwright-skill
- Install:
npx -y skills add -g -a codex -y sickn33/antigravity-awesome-skills@playwright-skill
- Ask:
âWhich ones should I install (e.g.,
1,2,1 2, ornone)? Iâll install globally for Codex.â
Common Mistakes
- Installing immediately because âthe user said itâs okâ (still must ask per-task)
- Making up skill search results instead of running
npx skills find - Recommending skills without vetting credibility/risk
- Installing project-level (forgetting
-g) when the user wants global - Forgetting
-a codexand installing to the wrong agent - Treating unknown repos as trusted (always show source + ask first)
Red Flags â STOP and Ask
- âIâll install first and explain afterâ
- âI can just recommend skills without searchingâ
- âItâs probably fine; no need to vet the repo/scriptsâ
- âSearching is slow; Iâll skip itâ
- âThey approved once, so I can keep installingâ
Rationalizations to Counter
| Rationalization | Counter-rule |
|---|---|
| âTime pressure: just start fixing CIâ | Run a quick skills find first; then ask. If user says âskipâ, proceed without installs. |
| âUser said âinstall whateverâ, so no need to askâ | Still present options and ask which to install (explicit consent each time). |
| âItâs faster to proceed without skillsâ | At least check; if nothing relevant shows up, proceed normally. |
| âI already know what skills existâ | Donât guess. Run npx skills find and present the real results. |
| âWe can trust any skill from skills.shâ | Search is open; trust is earned. Vet credibility and scan for risky commands. |