Best for
- Use when creating, updating, or validating shared skills.
vasilyu1983/AI-Agents-public/frameworks/shared-skills/skills/agents-skills/SKILL.md
Creates and audits agent skills with SKILL.md, references, scripts, and platform-scoped metadata. Use when creating, updating, or validating shared skills.
Decision brief
Use this skill to create or modernize skill bundles without conflating the portable core contract with runtime-specific extensions.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Declared | Source record | Install path and trigger |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/vasilyu1983/AI-Agents-public --skill "frameworks/shared-skills/skills/agents-skills"Inspect the Agent Skill "agents-skills" from https://github.com/vasilyu1983/AI-Agents-public/blob/53f6cb73ea53a2646e3e7d4665062ad66f3683ac/frameworks/shared-skills/skills/agents-skills/SKILL.md at commit 53f6cb73ea53a2646e3e7d4665062ad66f3683ac. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Start with 2-3 concrete user tasks and write the evals first. 2. Draft the portable core: folder name, SKILL.md, name, description, and minimal instructions. 3. Keep the portable core functional and reference-like unless the runtime explicitly benefits from a richer overlay.…
Review the “Quick Reference” section in the pinned source before continuing.
Repo-local Codex metadata:
Shared skills in this repo should default to a functional reference style:
Each row maps a real request to the smallest correct action. Pick the row, load only what it names.
Permission review
The documentation asks the agent to run terminal commands or scripts.
python3 scripts/validate_skill.py .The documentation asks the agent to run terminal commands or scripts.
python3 scripts/test_validate_skill.pyEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 80 | Source | Repository attention, not individual Skill quality |
| Compatibility | 1 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Use this skill to create or modernize skill bundles without conflating the portable core contract with runtime-specific extensions.
Scope — this is a delta on the standard, not a replacement. Generic skill authoring, scaffolding, and eval mechanics are owned by the Agent Skills open spec and the standard
skill-creatorskill (andplugin-dev:skill-development). Use those for boilerplate. This skill owns only the repo-specific delta the standard cannot provide: dual-runtime portability (Claude Code + Codex), catalog/graph gating, and router/composition patterns. Do not replicate the standard here — link to it.
| Task | Read or Run | Outcome |
|---|---|---|
| Scaffold a new skill | skill-creator (standard skill) | Generates the boilerplate; then apply portability discipline from references/frontmatter-reference.md |
| Modernize an existing skill | python3 scripts/validate_skill.py <skill-dir> | Finds contract drift, broken links, stale sources, and missing TOCs |
| Add runtime-specific metadata | references/frontmatter-reference.md | Scopes extensions to the target runtime instead of treating them as universal |
| Decide how to split content | references/skill-patterns.md | Keeps SKILL.md small and moves detail into references/ or scripts/ |
| Validate behavior, not just syntax | references/skill-validation.md | Builds trigger, non-trigger, and navigation evals |
| Check Anthropic-specific details | references/anthropic-skills-guide.md | Uses Anthropic guidance without treating it as the portable baseline |
| Ship one skill to multiple runtimes without drift | references/dual-distribution.md | Single canonical system prompt + wrapper distributions + drift-check gate |
| Design router/composable skill flow | references/skill-patterns.md#pattern-10-stage-based-selection-pipeline | Separates sources, enrichment, filters, scoring, selection, validation, and side effects |
Portable baseline:
skill-name/SKILL.md is required.name and description are the portable required frontmatter fields.license, compatibility, and metadata are portable optional fields in the open spec.allowed-tools is part of the open spec, but implementation support may vary by runtime.references/, scripts/, assets/, and data/sources.json are optional support directories.Runtime extensions:
argument-hint, arguments, disable-model-invocation, user-invocable, when_to_use, context, agent, model, effort, hooks, paths, shell, and disallowed-tools as runtime-specific until verified in that runtime's current official docs.user-invocable, disable-model-invocation, $ARGUMENTS, $name (from arguments), ${CLAUDE_SESSION_ID}, ${CLAUDE_EFFORT}, ${CLAUDE_SKILL_DIR}, and ${CLAUDE_PROJECT_DIR} are not portable assumptions.compatibility note naming the target runtime.argument-hint, arguments, disable-model-invocation, context, agent, model, effort, hooks, paths, shell, disallowed-tools) is runtime-scoped: add a compatibility note naming the target runtime and remove any claim of portability.name and description, but Claude Code alone treats every frontmatter field (including those two) as optional and falls back to the directory name for display. Keep setting both explicitly — the portable contract is stricter than any single runtime's tolerance.Repo-local Codex metadata:
agents/openai.yaml as adjunct metadata, not as part of the portable core.SKILL.md description trigger-rich and portable.agents/openai.yaml short_description brief enough for UI surfaces.agents/openai.yaml default_prompt focused on when Codex should load the skill.Shared skills in this repo should default to a functional reference style:
That is the safest portable baseline across runtimes, especially for Codex-style skill loading.
Some runtimes also benefit from a problem-approach overlay:
Use that style only in runtime-specific layers, references, or scoped extensions. Do not let the portable core become a blend of incompatible authoring philosophies.
SKILL.md, name, description, and minimal instructions.references/, deterministic helpers in scripts/, and output templates in assets/.sources.json.frameworks/shared-skills/graph/ via scripts/graph-export.py and refresh audit-baseline.json; do not shorten full SKILL.md bodies to fit discovery budgets.Each row maps a real request to the smallest correct action. Pick the row, load only what it names.
| Scenario | First action | Then | Done when |
|---|---|---|---|
| Create a new portable skill | Copy Minimal Template above; set name + trigger-rich description | Write 2-3 evals (references/skill-validation.md), then split detail into references/ | Validator passes and a trigger eval fires on real user language |
| Audit / modernize an existing skill | python3 scripts/validate_skill.py <skill-dir> | Fix contract drift, broken links, stale sources.json; re-verify field semantics against live docs | 0 errors and no unscoped runtime field alongside a portability claim |
| Skill must use Claude-only fields | Add the field (disable-model-invocation, paths, context: fork, agent, shell) | Add a compatibility note naming the runtime; drop any portability claim | Field appears only inside a runtime-scoped layer |
Turn a reference skill into a /command workflow | Set disable-model-invocation: true + use $ARGUMENTS in the body | Keep the body as the task prompt (see Invocation Control) | /name arg runs the procedure; model no longer auto-triggers it |
| Ship one skill to Claude Code and Codex | Keep portable core canonical; mirror intent into agents/openai.yaml | Run drift gate from references/dual-distribution.md | Both surfaces describe the same intent; no field copied across runtimes unverified |
| Build a router / composable skill | Model it as Pattern 10 (stage-based selection pipeline) | Keep sources → hydrators → filters → scorers → selector → validation → side effects separate | Every dropped candidate has a named filter reason; selection is traceable |
SKILL.md grew past ~500 lines | Apply progressive disclosure (references/skill-patterns.md) | Move reference detail to references/, helpers to scripts/, templates to assets/; wire each into Navigation | Body is navigation-first; no orphan support files |
| Skill under-triggers or over-triggers | Rewrite description per Description Rules (what + when + real trigger words) | Add a non-trigger eval for the over-fire case | Trigger and non-trigger evals both pass |
| Discovery / routing structure changed | Regenerate frameworks/shared-skills/graph/ via scripts/graph-export.py | Refresh audit-baseline.json; do not shrink full bodies to fit budgets | audit-coverage.py --check passes |
| Skill needs cross-session state | Use Pattern 7; store under ${CLAUDE_PLUGIN_DATA}/ | Degrade gracefully when state is missing; never store secrets | First run works with no state present |
If a request matches no row, treat it as "create" or "audit" and fall back to the Workflow section.
Skill change request
-> Define 2-3 real trigger tasks
-> Draft portable core: folder, SKILL.md, name, description
-> Split support material
+-- reference detail -> references/
+-- deterministic helper -> scripts/
+-- templates/assets -> assets/
-> Add runtime metadata only in scoped layers
-> Validate structure, links, sources, and behavior
-> Update catalog when names, counts, or router ownership change
SKILL.md instead of progressive disclosure filesdata/sources.json present but stale, secondary-only, or disconnected from the actual workflowreferences/, scripts/, assets/) created but not wired into navigationGeneric description craft — third person, what + when, trigger words, single-line YAML, <1024 chars, good/bad examples — is owned by the open spec and skill-creator. Do not re-derive it here. This repo adds one rule on top:
Do not hand-author boilerplate. For a fresh SKILL.md skeleton (frontmatter, Quick Reference, Workflow, Navigation), invoke the standard skill-creator skill, then apply this skill's portability discipline before handoff:
compatibility: Portable core only. Add runtime-specific notes if extensions are used. unless the skill is deliberately runtime-scoped.references/, scripts/, and assets/ file into Navigation.agents/openai.yaml adjunct (see Core Contract).Field mechanics — disable-model-invocation, user-invocable, paths, argument-hint, context: fork / agent, $ARGUMENTS — are Claude Code features. The when-to-disable decision and field semantics live in the Claude Code skills docs, references/frontmatter-reference.md, and skill-creator. Do not duplicate them here. The repo-specific rules:
compatibility note and drop any portability claim.disable-model-invocation: true so the model cannot auto-trigger them.disable-model-invocation, user-invocable, paths, disallowed-tools, and when_to_use are Claude Code fields. For Codex, the equivalent behavior comes from how you register the skill in the runtime layer. Keep the flag in the Claude frontmatter and document the Codex equivalent in a compatibility note if you're targeting both runtimes.
| Target | Safe assumptions | What to verify separately |
|---|---|---|
| Portable core | name, description, optional license / compatibility / metadata, SKILL.md, support folders | Runtime-specific fields and any implementation-specific behavior |
| Anthropic / Claude Code | Portable core plus: argument-hint, arguments, disable-model-invocation, user-invocable, when_to_use, allowed-tools, disallowed-tools, model, effort, context, agent, hooks, paths, shell | Exact field semantics, hook behavior, model controls, UI behavior; verify each in current Claude Code docs |
| VS Code | Portable core and VS Code's documented skill packaging | Any metadata beyond the official VS Code docs |
| Codex in this repo | Portable core; adjunct metadata may live outside frontmatter | Repo-local conventions such as agents/openai.yaml when present |
Rules of thumb:
When to split:
references/.scripts/.assets/.SKILL.md under 500 lines and bias toward navigation over duplication.Run the validator before handoff:
python3 scripts/validate_skill.py .
python3 scripts/test_validate_skill.py
python3 scripts/validate_catalog.py /path/to/skills/root
python3 scripts/audit_skill_metadata.py /path/to/skills/root
python3 scripts/build_skill_graph.py /path/to/skills/root --check
What the validator checks:
SKILL.md exists and has valid portable frontmatterQuick Reference, workflow, Navigation, Fact-Checking)namedata/sources.json is valid and fresh enough to trustscripts/audit-coverage.py --check)metadata.graph resolve to real skill directories when graph metadata is presentBehavioral checks still require human review. Use references/skill-validation.md for the eval matrix.
Pilot benchmark commands:
# Deterministic harness check
python3 frameworks/shared-skills/evals/test_run_skill_bench.py
# Live Codex-backed pilot benchmark
python3 frameworks/shared-skills/evals/run_skill_bench.py \
frameworks/shared-skills/evals/tasks/pilot-router-and-long-skills.json \
--adapter codex \
--repo-root . \
--output frameworks/shared-skills/evals/outputs/pilot-router-and-long-skills-codex-YYYY-MM-DD.jsonl
Store benchmark runs as JSONL artifacts in frameworks/shared-skills/evals/outputs/. Do not create standalone Markdown run summaries unless explicitly requested.
Resources:
Scripts:
scripts/validate_skill.pyscripts/validate_catalog.pyscripts/audit_skill_metadata.pyscripts/build_skill_graph.pyscripts/test_validate_skill.pyStandard skills to defer to (not in this repo; invoke via the Skill tool):
skill-creator - Scaffold, modify, and benchmark/eval skills (generic authoring mechanics)plugin-dev:skill-development - Authoring skills inside pluginsRelated skills:
agents-subagents - Agent creation and delegation contractsRepo-local note:
.codex/skills/.system/skill-creator/SKILL.md locally. Do not treat that path as portable.Before applying this skill on a non-trivial task, read learnings.consolidated.md in this directory (and learnings.md if present).
After applying it, if you encountered a pattern worth remembering, a mistake worth preventing, or a domain fact that surprised you, append one dated bullet to learnings.md via agents-skills-feedback-loop/scripts/append_learning.py. Do not modify SKILL.md itself.
Frequently asked questions
Use this skill to create or modernize skill bundles without conflating the portable core contract with runtime-specific extensions.
The source record exposes this install command: npx skills add https://github.com/vasilyu1983/AI-Agents-public --skill "frameworks/shared-skills/skills/agents-skills". Inspect the command and pinned source before running it.
The pinned source record declares support for: codex.
Static rules flagged exec-script in the source; the page lists the matching lines and excerpts.
Alternatives
vasilyu1983/AI-Agents-public
Configures Claude Code hooks and Codex hooks.json/notify callbacks. Use when adding guardrails, preflight, audit trails, worktree automation, or budget enforcement.
vasilyu1983/AI-Agents-public
Guides iOS testing with XCTest, XCUITest, Swift Testing, simctl, and xcresult. Use when choosing destinations, controlling flakes, or parsing test artifacts for native apps.
wanshuiyin/Auto-claude-code-research-in-sleep
Use it for operations tasks; the detail page covers purpose, installation, and practical steps.
cameronfreer/lean4-skills
Use when editing .lean files, debugging Lean 4 builds (type mismatch, sorry, failed to synthesize instance, axiom warnings, lake build errors), searching mathlib for lemmas, formalizing mathematics in Lean, finding a counterexample to, refuting, or disproving a Lean statement, or learning Lean 4 concepts. Also trigger when the user asks for help with Lean 4, mathlib, or lakefile. Do NOT trigger for Coq/Rocq, Agda, Isabelle, HOL4, Mizar, Idris, Megalodon, or other non-Lean theorem provers.