skill-installer
Plan and install skills into a Codex skills directory from a curated list or repo. Use when a user asks to list or install skills.
SKILL.md
| Name | skill-installer |
| Description | Plan and install skills into a Codex skills directory from a curated list or repo. Use when a user asks to list or install skills. |
name: skill-installer description: Plan and install skills into a Codex skills directory from curated or repo sources; use when a user asks to list available skills, install/update a skill, or validate a source before installation.
Skill Installer
Table of Contents
- Compliance
- Philosophy
- Guiding questions
- Scope and triggers
- Required inputs
- Deliverables
- Constraints / Safety
- Communication
- Live feedback (AskQuestion)
- Variation rules
- Empowerment principles
- Anti-patterns to avoid
- Scripts
- Behavior and Options
- Notes
- Example prompts
- Validation
- Procedure
Compliance
- Check against GOLD Industry Standards guide in ~/.codex/AGENTS.override.md
Philosophy
- Prefer curated sources; verify before installing.
- Minimize changes and avoid overwriting without consent.
- Keep installs reproducible and auditable.
Guiding questions
- What is the exact skill source (curated vs repo path)?
- Why is this skill needed (new capability vs update)?
- Is overwrite permitted if the skill exists?
- How will we verify installation success?
Scope and triggers
- When the user asks to list installable skills.
- When the user asks to install a curated skill by name.
- When the user provides a GitHub repo/path for skill installation.
- For workflow safety checks: when intent is unclear, run a dry-run first.
Required inputs
- Skill source (curated list, repo URL, or repo/path).
- Destination path or
AGENT_SKILLS_HOME/CODEX_HOMEoverride. - User confirmation for overwrites or updates.
- For curated installs, accept a single skill name (
--skill) when path is omitted.
Codex ask-questions collection (required)
- In Codex Plan mode, use
request_user_inputfor missing install decisions (source, destination, overwrite/update consent) when a compact multiple-choice prompt fits. - In Codex Default mode (or when
request_user_inputis unavailable), ask direct numbered questions in chat and wait for explicit confirmation before writes. - Do not install or overwrite until required decisions are explicitly confirmed.
Deliverables
- Installed skill directory under a category folder (e.g.,
~/dev/agent-skills/utilities/<skill-name>) or an override path. - A summary of what was installed and from where.
- An
analyze_skill.pyquality report for each installed target. - An OpenClaw-style readiness + security report (critical/warn/info) for each installed skill.
- A reminder to restart Codex to pick up new skills.
- Post-install decision-feedback readiness check:
- Verify installed
SKILL.mdcontainsdecision-feedback-protocol:v2(or a stronger equivalent). - If missing, patch it and report that AskQuestion parity feedback capture was enabled.
- Verify the workspace can run subject analytics via
python3 utilities/skill-creator/scripts/skill_subject_scoreboard.py --workspace <workspace>.
- Verify installed
- For
--dry-run, provide a compact plan summary instead of filesystem changes.
Constraints / Safety
- Redact secrets/PII by default.
- Do not overwrite existing skills without explicit consent.
- Use network access only when required; request escalation in restricted sandboxes.
- Avoid installing from untrusted or ambiguous sources.
- Warn on prompt-injection or risky command patterns before installing; default to interactive prompt (investigate / continue / stop).
- High-severity risk findings are blocked by default; require explicit
--force-unsafeoverride to continue. - Prompt patterns are configurable via
references/prompt-injection-patterns.json(supportsseverity; this skill’s config, not the target skill). - Investigate option runs a read-only summary (file counts, largest files, binary attachments, warning matches).
- Investigate output includes a macOS
openhelper and triage labels (docs-context / code-context / unknown). - Local allow/block config (not in repo) can override matches:
~/.codex/skill-security/allow-block.jsonorCODEX_SKILL_SECURITY_CONFIG.
Helps install skills. By default these are from https://github.com/openai/skills/tree/main/skills/.curated, but users can also provide other locations.
Use the helper scripts based on the task:
- List curated skills when the user asks what is available, or if the user uses this skill without specifying what to do.
- Install from the curated list when the user provides a skill name.
- For direct curated installs, prefer
--skill <name>. - Install from another repo when the user provides a GitHub repo/path (including private repos).
Install skills with the helper scripts.
Communication
When listing curated skills, output approximately as follows, depending on the context of the user's request: """ Skills from {repo}:
- skill-1
- skill-2 (already installed)
- ... Which ones would you like installed? """
After installing a skill, tell the user: "Restart Codex to pick up new skills."
Live feedback (AskQuestion)
- Use AskQuestion parity (
request_user_input) for live user decisions at each non-trivial gate:- before overwrite/replace/update of an existing skill directory;
- after deconflict analysis when overlap is high (default threshold: 20%);
- when same-job intent detection flags an existing skill as functionally equivalent;
- when risk scan reports warnings and more than one safe action exists;
- after install/merge to capture outcome quality feedback.
- Required response fields for decision capture:
decision:accepted|partial|rejected|deferredoutcome:good|neutral|bad|unknownconfidence:high|medium|low
- Persist feedback with
record_skill_feedback.pyusing concise notes and selected subject tags. - Do not close the run before collecting post-action feedback for non-trivial installs/merges.
Variation rules
- Vary install method by auth context (download vs git).
- Vary output detail by user intent (listing vs install vs update).
- Prefer
--dry-runor listing when intent is unclear. - Use different verification depth for updates vs first installs.
Empowerment principles
- Empower users to confirm overwrite decisions.
- Empower reviewers with a clear source + ref summary.
- Empower maintainers with a rollback note (remove installed folder).
Anti-patterns to avoid
- Installing from an unverified or ambiguous source.
- Overwriting existing skills without explicit consent.
- Skipping the restart reminder after install.
Scripts
All of these scripts use network, so when running in the sandbox, request escalation when running them.
scripts/list-skills.py(canonical curated listing with installed annotations)scripts/list-skills.py --format jsonscripts/list-curated-skills.py(backward-compatible wrapper tolist-skills.py)scripts/install-skill-from-github.py --repo <owner>/<repo> --path <path/to/skill> [<path/to/skill> ...] --category <category>scripts/install-skill-from-github.py --url https://github.com/<owner>/<repo>/tree/<ref>/<path> --category <category>scripts/install-skill-from-github.py --skill <name> --category <category>scripts/install-skill-from-github.py --dry-run --skill <name> --category <category>scripts/install-skill-from-github.py --deconflict --deconflict-threshold 0.2 --skill <name> --category <category>scripts/install-skill-from-github.py --deconflict --deconflict-block-threshold 0.45 --deconflict-engine auto --skill <name> --category <category>scripts/install-skill-from-github.py --deconflict --merge-proposal --skill <name> --category <category>scripts/install-skill-from-github.py --run-deconflict-benchmark
Behavior and Options
- Defaults to direct download for public GitHub repos.
- If download fails with auth/permission errors, falls back to git sparse checkout.
- Aborts if the destination skill directory already exists.
--dry-runperforms source resolution + risk scan only and does not mutate destination.--deconflictperforms advisory overlap analysis against installed skills before install.--deconflict-threshold <0..1>sets overlap cutoff (default0.2) for merge-vs-install decisioning.--deconflict-block-threshold <0..1>sets hard-stop cutoff (default0.45) for likely duplicates.- Same-job detection uses intent coverage + command overlap to flag skills aiming at the same outcome, even when wording differs.
- Same-job detection also applies name-alignment heuristics (for example
skill-installervariants across categories/repos) to catch near-duplicates early. - Deconflict scoring uses section-aware intent weighting and a negative-overlap guard to reduce false positives.
- When a same-job match is detected, include concrete improvement ideas (missing commands, sections, or protocol markers) for merge-first decisions.
--deconflict-engine auto|harness|lexicalcontrols overlap signals (autoprefers localharness searchand falls back topnpm dlx --allow-build=better-sqlite3 @brainwav/coding-harness search).--deconflict-cache-pathenables reusable profile cache across repeated runs.--deconflict-artifact-pathwrites a structured overlap artifact with knowledge-graph nodes/edges.- Knowledge-graph artifacts include
candidate_skill/installed_skillnodes withoverlaps_withandsame_job_candidateedges for downstream analysis. --merge-proposalwrites markdown patch plans underartifacts/deconflict/proposals(or--merge-proposal-dir).--run-deconflict-benchmarkruns labeled benchmark pairs fromreferences/deconflict-benchmarks.json.--skill <name>installs fromopenai/skills/skills/.curated/<name>.- Requires a category when
--destis not provided. - Installs into
~/dev/agent-skills/<category>/<skill-name>by default. - Overrides:
AGENT_SKILLS_HOME, thenCODEX_HOME, then--dest. - Multiple
--pathvalues install multiple skills in one run, each named from the path basename unless--nameis supplied. - Options:
--ref <ref>(defaultmain),--dest <path>,--category <category>,--method auto|download|git,--dry-run,--deconflict,--deconflict-threshold,--deconflict-block-threshold,--deconflict-engine,--deconflict-cache-path,--deconflict-artifact-path,--merge-proposal,--merge-proposal-dir,--run-deconflict-benchmark,--benchmark-file. - Security override:
--force-unsafeallows continuation when high-severity findings are detected.
Notes
- Curated listing is fetched from
https://github.com/openai/skills/tree/main/skills/.curatedvia the GitHub API. If it is unavailable, explain the error and exit. - Private GitHub repos can be accessed via existing git credentials or optional
GITHUB_TOKEN/GH_TOKENfor download. - Git fallback tries HTTPS first, then SSH.
- The skills at https://github.com/openai/skills/tree/main/skills/.system are preinstalled, so no need to help users install those. If they ask, just explain this. If they insist, you can download and overwrite.
- Installed annotations come from the destination folder (category or overrides).
Example prompts
- "List the curated skills I can install."
- "Install the
frontend-designskill from the curated list." - "Install a skill from this GitHub repo path."
Remember
The agent is capable of extraordinary work in this domain. These guidelines unlock that potential—they don't constrain it. Use judgment, adapt to context, and push boundaries when appropriate.
Validation
- Fail fast and report errors before proceeding.
- Confirm AskQuestion checkpoints were executed for overwrite/deconflict/warning decisions.
- For
--dry-run, report source/risk summary and skip destination mutations/validation checks. - Run required checks on each installed target:
~/.venvs/pyyaml/bin/python utilities/skill-creator/scripts/quick_validate.py <installed-skill-dir>~/.venvs/pyyaml/bin/python utilities/skill-creator/scripts/skill_gate.py <installed-skill-dir>~/.venvs/pyyaml/bin/python utilities/skill-creator/scripts/analyze_skill.py <installed-skill-dir>~/.venvs/pyyaml/bin/python utilities/skill-creator/scripts/openclaw_skill_guard.py <installed-skill-dir> --mode both
- For installs that actually write files (non-dry-run):
- If the skill is new (not an overwrite/update), run evals:
~/.venvs/pyyaml/bin/python utilities/skill-creator/scripts/run_skill_evals.py <installed-skill-dir>
- Run deconflict benchmark before changing scoring logic:
~/.venvs/pyyaml/bin/python utilities/skill-installer/scripts/install-skill-from-github.py --run-deconflict-benchmark
- If critical findings exist, stop and ask for approval before enabling/using the skill.
- Verify decision-feedback protocol presence in each installed
SKILL.md:rg -n \"decision-feedback-protocol:v2|Decision Quality Feedback|request_user_input\" <installed-skill-dir>/SKILL.md
Procedure
- Clarify scope and inputs.
- Run discovery + optional deconflict scan.
- Use AskQuestion (
request_user_input) for live decision gates. - Execute the selected install/merge workflow.
- Summarize outputs, ask for outcome feedback, and record it.
Antipatterns
- Do not add features outside the agreed scope.
Philosophy and tradeoffs
- Use this skill when consistent decision-making matters more than one-off execution because project context should drive the approach.
- Principle and mindset: prioritize tradeoffs and constraints over rigid checklists; understand why each step exists.
- Ask this to keep outcomes robust: Why is this the right default, and what could change this outcome?
- How do we adapt if constraints shift?
- What evidence is needed before choosing one path over another?
Anti-patterns and caveats
- Avoid applying this playbook generically without checking repository-specific context.
- NEVER skip required validation gates when behavior changes.
- DO NOT use this skill as a rigid replacement for engineering judgment.
- DON'T ignore warnings or assume one pattern fits all repos.
- Common pitfall: treating anti-patterns as optional.
- Incorrect assumptions here can lead to fragile guidance.
- Warning: wrong sequencing can create avoidable regressions.
Variation and adaptation
- Vary the workflow by team size, risk, and deployment target.
- Use different strategies for small, medium, and large changes.
- Adapt recommendations to the specific environment and avoid repetitive templates.
- Avoid generic or cookie-cutter responses; craft context-specific alternatives.
- Keep outputs diverse and not repetitive.
- Converge on a custom path only after evidence review.
- Different constraints should produce different, non-generic recommendations.
Empowering execution style
- Be capable of exploring multiple options and enabling the team to make safe decisions.
- Unlock confidence by explaining options and tradeoffs clearly.
- Feel free to be creative while staying rigorous and precise.
- Push boundaries with practical alternatives when simple recipes fail.
- Enable outcomes-oriented problem solving.
Decision feedback protocol (required):
- If post-run feedback capture is enabled for this runtime, emit a non-blocking
post_run_feedbackevent viarequest_user_inputafter result delivery. - Capture:
decision(accepted|partial|rejected|deferred),outcome(good|neutral|bad|unknown), andconfidence(high|medium|low). - Persist with:
python3 utilities/skill-creator/scripts/record_skill_feedback.py --skill-path <path/to/SKILL.md> --decision <...> --outcome <...> --confidence <...> --notes "...". - The recorder tags
subject(for exampleui,code_review,backend,security) for cross-domain quality analytics.