Using Agent Skills
addyosmani/agent-skills
Meta-skill for choosing which workflow skill fits the task at hand, plus always-on habits: surface assumptions, stop on confusion, push back, keep it simple and stay in scope.
Evaluate an agent instructions or agent definition for achievability and produce a structured, evidence-backed report artifact with per-dimension scores, findings, deterministic signals, and…
$ npx skills add IBM/ibm-watsonx-orchestrate-adk --skill agent-instructions-evaluator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install IBM/ibm-watsonx-orchestrate-adk agent-instructions-evaluator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/IBM/ibm-watsonx-orchestrate-adk.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/agent-instructions-evaluator .claude/skills/agent-instructions-evaluator && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "agent-instructions-evaluator" agent skill from https://github.com/IBM/ibm-watsonx-orchestrate-adk/tree/main/skills/agent-instructions-evaluator into .claude/skills/agent-instructions-evaluator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-instructions-evaluator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/IBM/ibm-watsonx-orchestrate-adk/tree/main/skills/agent-instructions-evaluatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add IBM/ibm-watsonx-orchestrate-adk --skill agent-instructions-evaluator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install IBM/ibm-watsonx-orchestrate-adk agent-instructions-evaluator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/IBM/ibm-watsonx-orchestrate-adk.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/agent-instructions-evaluator .agents/skills/agent-instructions-evaluator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "agent-instructions-evaluator" agent skill from https://github.com/IBM/ibm-watsonx-orchestrate-adk/tree/main/skills/agent-instructions-evaluator into .agents/skills/agent-instructions-evaluator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-instructions-evaluator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add IBM/ibm-watsonx-orchestrate-adk --skill agent-instructions-evaluator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install IBM/ibm-watsonx-orchestrate-adk agent-instructions-evaluator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/IBM/ibm-watsonx-orchestrate-adk.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/agent-instructions-evaluator .cursor/skills/agent-instructions-evaluator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "agent-instructions-evaluator" agent skill from https://github.com/IBM/ibm-watsonx-orchestrate-adk/tree/main/skills/agent-instructions-evaluator into .cursor/skills/agent-instructions-evaluator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-instructions-evaluator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/IBM/ibm-watsonx-orchestrate-adk.git --path skills/agent-instructions-evaluator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add IBM/ibm-watsonx-orchestrate-adk --skill agent-instructions-evaluator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install IBM/ibm-watsonx-orchestrate-adk agent-instructions-evaluator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/IBM/ibm-watsonx-orchestrate-adk.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/agent-instructions-evaluator .gemini/skills/agent-instructions-evaluator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "agent-instructions-evaluator" agent skill from https://github.com/IBM/ibm-watsonx-orchestrate-adk/tree/main/skills/agent-instructions-evaluator into .gemini/skills/agent-instructions-evaluator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-instructions-evaluator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install IBM/ibm-watsonx-orchestrate-adk agent-instructions-evaluatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add IBM/ibm-watsonx-orchestrate-adk --skill agent-instructions-evaluator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/IBM/ibm-watsonx-orchestrate-adk.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/agent-instructions-evaluator .github/skills/agent-instructions-evaluator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "agent-instructions-evaluator" agent skill from https://github.com/IBM/ibm-watsonx-orchestrate-adk/tree/main/skills/agent-instructions-evaluator into .github/skills/agent-instructions-evaluator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-instructions-evaluator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add IBM/ibm-watsonx-orchestrate-adk --skill agent-instructions-evaluator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install IBM/ibm-watsonx-orchestrate-adk agent-instructions-evaluator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/IBM/ibm-watsonx-orchestrate-adk.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/agent-instructions-evaluator .opencode/skills/agent-instructions-evaluator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "agent-instructions-evaluator" agent skill from https://github.com/IBM/ibm-watsonx-orchestrate-adk/tree/main/skills/agent-instructions-evaluator into .opencode/skills/agent-instructions-evaluator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-instructions-evaluator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
agent-instructions-evaluatorEvaluate an agent instructions or agent definition for achievability and produce a structured, evidence-backed report artifact with per-dimension scores, findings, deterministic signals, and…
Agent Instructions Evaluator is an agent skill from IBM/ibm-watsonx-orchestrate-adk, published by the product's own GitHub organization. Evaluate an agent instructions or agent definition for achievability and produce a structured, evidence-backed report artifact with per-dimension scores, findings, deterministic signals, and high-impact recommendations.
Its SKILL.md is about 17k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including scripts (for example `README.md`, `dimension-definitions.md` and `report-template.md`).
It sits in Agent Workflows, covering Agent instruction files. The repository describes itself as: The command line client for watsonx Orchestrate's agent builder experience. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 15d588c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 4 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Agent Instructions Evaluator loads about 17k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 8,324 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from IBM/ibm-watsonx-orchestrate-adk at commit 15d588c, republished under its MIT licence (© IBM). 8,324 words, ~16,507 tokens.
.claude/skills/agent-instructions-evaluator/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.Evaluate agent instructions or agent definitions for operational achievability in production settings. This skill focuses on runtime reliability and runtime efficiency rather than writing quality, identifying issues from hidden state, conflicting rules, vague scope, brittle exact phrasing, underspecified tool behavior, instruction overload, and performance friction caused by excessive or contradictory runtime reasoning.
Use this skill when you need:
Score the artifact not by how much behavior it describes, but by how much behavior the agent can reliably execute. More rules do not automatically make a better prompt—more rules often lower achievability. An instruction set that is technically understandable but expensive to reconcile at runtime should still be considered lower-achievability, because slow, unstable, or tool-heavy execution reduces production reliability.
<Steps>
<Step>
**Gather all relevant data**
Before beginning analysis, collect all available metadata and context. The raw JSON files produced by the extraction scripts are a required deliverable — save them into the eval/ folder alongside the report files. Every report in the set must reference them.
Path note: All
scripts/paths below are relative to the skill directory (skills/agent-instructions-evaluator/). Run these commands from that directory, or prefix the path accordingly (e.g.skills/agent-instructions-evaluator/scripts/extract_agent_info.py).
Extract agent metadata (if evaluating a YAML file):
# Preferred — single command; auto-scans the project tree for tool source files
python scripts/extract_agent_info.py <agent.yaml> \
--search-root /path/to/project \
--output-dir eval/ --json
# Alternative — explicit toolkit directory (faster on large trees)
python scripts/extract_agent_info.py <agent.yaml> \
--search-root /path/to/project \
--tools-root /path/to/toolkit \
--output-dir eval/ --json
# Alternative — use pre-extracted tool JSONs from step 2 below
python scripts/extract_agent_info.py <agent.yaml> \
--search-root /path/to/project \
--tools-dir eval/ \
--output-dir eval/ --json--tools-root / auto-scan behaviour:
--tools-root is supplied, the script recursively scans that directory for tool source files.--tools-root nor --tools-dir is supplied, the scan runs automatically against --search-root (or the agent YAML's directory if --search-root is also absent). This means in most cases a single command is sufficient..py files are included only when they contain at least one @tool, @flow, or @<any>.tool() decorated function (e.g. @mcp.tool() in MCP server source files) — all other Python files are silently skipped..json files are included only when detect_json_tool_type() identifies them as an agentic workflow (spec.kind == "flow") or Langflow format — all other JSON is silently skipped.--tools-dir and --tools-root are supplied, --tools-dir entries take priority; --tools-root fills gaps.This produces eval/agent_<name>_extracted.json — a full snapshot including:
name, display_name, kind, llm, context_variables, guidelines_count
instructions_length, instructions_chars, instructions_est_tokens
skill_catalog_est_tokens, collaborator_routing_est_tokens, tool_list_est_tokens, tools_spec_est_tokens
resolved_tools — each agent-level tool with spec_chars, spec_est_tokens, type, file_path, resolved
resolved_collaborators — each collaborator with display_name, description, kind, llm, tools, skills, instructions_length, guidelines_count, routing_est_tokens, collocated
skills — each skill fully resolved: description, name_length, description_length, name_too_long, description_too_long, unmatched_placeholders, allowed_tools, resolved_allowed_tools (with per-tool spec_est_tokens), allowed_tools_spec_est_tokens, body_chars, body_est_tokens, catalog_est_tokens, tool_binding_shadows, scripts, references, skill_file
Always pass --output-dir eval/ so the JSON is saved alongside the report files.
Co-located collaborator YAML files (same directory as the agent) are found automatically; remote files require --search-root.
Tool: extract_agent_info.py
Extract individual tool metadata (optional — only needed when --tools-root auto-scan is insufficient, e.g. tools in a remote registry or a non-standard format):
python scripts/extract_tool_info.py <tool.py|tool.json|tool.yaml> --output-dir eval/ --jsonAuto-detects file type:
.py: @tool decorator → regular Python tool; @flow decorator → Python flow tool.json: spec.kind == "flow" → WxO Agentic Workflow; data.nodes (list) → Langflow workflow.yaml/.yml: kind: knowledge_base → WxO Knowledge Base; kind: mcp → MCP ToolkitThis produces eval/tool_<name>_extracted.json per tool. Pass the containing directory to extract_agent_info.py via --tools-dir eval/ to enrich all tool entries.
extract_tool_info.pyToken estimation rules applied during extraction:
@tool / @flow functions: spec = function name + docstring + each parameter serialised as its JSON Schema representation (not the bare type string). Literal["a","b"] → {"type":"string","enum":["a","b"]}; list[str] → {"type":"array","items":{"type":"string"}}; unknown custom classes → {"type":"object"} (conservative fallback). Return type is excluded — output schema is not injected into the agent context.~200 est. tokens (fallback — definition not found).Identify missing tool definitions: Note which tools/collaborators are referenced but not available for inspection.
Organize the data: Create a complete picture of:
When reviewing tool metadata, flag any tool as a potential retrieval surface if:
kind is knowledge_base, ORsearch, query, retrieve, lookup, knowledge, kb, rag, find, fetch, document, semantictop_k, max_results, limit, or num_passages parameter and its default value. If none exists, record the passage count as unbounded.Only after gathering all data, proceed to analysis. This ensures:
</Step>
<Step>
**Understand the input**
Accept any of these input types:
- Raw system prompt
- Instruction block for an agent
- watsonx Orchestrate native agent YAML
- External agent definition
- Design document describing agent behavior
- Partial excerpt from a larger prompt or policy
If the input is partial, state that the evaluation scope is partial and score only what is visible.
When evaluating a watsonx Orchestrate native agent YAML file, extract and evaluate these key sections:
Instructions field (instructions:): This contains the primary agent prompt. Evaluate this as the main instruction content for all dimensions.
Guidelines field (guidelines:): These are structured rules that supplement the instructions. Count these as additional constraints and conditional logic. Each guideline typically adds:
Collaborators list (collaborators:): Each entry names a subordinate agent the supervisor can delegate to. The script now resolves each name to its YAML file (co-located first, then --search-root) and extracts: display_name, description, kind, llm, tools, nested collaborators, skills, instructions_length, guidelines_count, and collocated flag.
Recursive traversal: Collaborators are themselves agents and may have their own collaborators: lists. Resolve and analyze collaborators at all depths — not just the immediate children of the root agent. For each resolved collaborator, check its own collaborators: list and apply the same resolution, CO-1 through CO-7 analysis, and report generation recursively. Stop only when a collaborator has no further collaborators: entries, or when a YAML cannot be resolved (note it as unresolved). Use a visited-set (by agent name or file path) to detect and break cycles — if a collaborator's YAML has already been resolved at a higher level, record the back-edge as a dependency loop (CO-4 violation) and do not recurse into it again.
For each resolved collaborator at every depth, apply the Collaborator Health checks (CO-1 through CO-7) described below — these are the exact parallel of the SK-1 through SK-7 skill checks, applied to the collaborator's agent YAML instead of a SKILL.md body.
CO-1 — Single Responsibility: Does the collaborator agent cover exactly one domain or capability? Count the distinct tool categories and top-level behavioral sections in its instructions:. More than one primary workflow is a smell; three or more is a violation.
CO-2 — Distinct, Non-Overlapping Scope: Do any two collaborators share coverage for the same user intent, topic, or trigger condition? Compare each collaborator's description field and instructions: scope statements against every other collaborator in the parent agent's collaborators: list. Overlapping descriptions force the supervisor to make an ambiguous routing decision — this is a systematic reliability failure, not an edge case. Flag every pair with detectable overlap, quote the overlapping text, and rate the overlap: Exact, High, Moderate, or Low.
CO-3 — Routing Clarity (Name + Description): Is the collaborator name specific enough to be meaningfully different from all other collaborator names? Is the description field clear, specific, and complete enough that the supervisor — without reading the instructions body — can decide whether to route to this collaborator for a given user turn? Check: does the description explicitly state what intents it covers AND what intents it does NOT cover (boundary conditions)?
CO-4 — No Cross-Collaborator Dependencies (including dependency loops): Does the collaborator's instructions assume that another collaborator has already run, set state, or returned a value? Look for references to "after X agent", "the result from the previous agent", or implicit state assumptions that could only come from a prior collaborator execution. Collaborators must be independently invocable.
Additionally, check for dependency loops across the full collaborator set. A dependency loop exists when collaborator A depends on state from collaborator B, and collaborator B depends on state from collaborator A — or any longer chain. Use the same directed-graph / cycle-detection approach as SK-4.
Signals that indicate a dependency edge from collaborator A to collaborator B:
tools: listcollaborators: list nests collaborator B (creating a direct dispatch dependency)CO-5 — Instruction Complexity Budget: Apply the same complexity analysis used for agent instructions to each collaborator's instructions: and guidelines:. Collaborators are just agents with their own instruction surface — the same rules apply:
CO-6 — Collaborator Correlation and Consolidation: Are any two collaborators so closely related in domain or trigger conditions that they are likely to be dispatched in the same turn or in immediate succession? Assess each collaborator pair for:
tools: create coupling that requires co-dispatch.Note on shared tools: Two collaborators sharing tools is common and expected — it is not itself a consolidation signal. Do not recommend merging collaborators solely because they share tools.
Consolidation recommendation rule: Recommend merging two collaborators into one when:
CO-7 — Collaborator Architecture Performance Surface: Assess the aggregate runtime cost of the collaborator architecture as a whole (see Rule N thresholds):
Collaborator depth notation: When reporting multi-level collaborators, qualify each collaborator's identity with its depth and parent, e.g. account_agent (depth 2, parent: supervisor_agent). Cross-collaborator checks (CO-2, CO-4, CO-6) are applied within each depth level — compare siblings only. Parent-to-child relationships are already captured by CO-4 (dispatch dependency), not CO-2 (sibling overlap).
Structural checks for each resolved collaborator:
description: Does it give the supervisor enough routing signal (CO-3)? Vague descriptions cause misdirected dispatch.tools:: The tool list available to the collaborator. Check whether every tool referenced in its instructions is present. Missing tools are execution gaps (feeds CO-1 and CO-5).collaborators:: Nested collaborators. Each nested entry adds another dispatch hop and potential CO-4 dependency edge.instructions_length / guidelines_count: Directly feeds CO-5 complexity budget.collocated: Whether the YAML was found co-located with the parent agent or resolved via --search-root. Remote collaborators may not be available for inspection in all environments.Tools list (tools:): Count the number of tools referenced. Add these to the tool-required behaviors count.
Context variables (context_variables:): Note which variables are available. Check if the instructions require tracking additional state beyond these variables.
Skills list (skills:): A list of skill names that the agent can load_skill into context at runtime. Each skill is a dynamic instruction module — the agent swaps the active skill's SKILL.md content into its context window when routing to that domain.
Skill directory structure (resolved by extract_agent_info.py):
<skill-name>/
├── SKILL.md # frontmatter: name, description, allowed-tools
├── scripts/ # optional: Python scripts (.py) available to the skill at runtime
│ └── *.py
└── references/ # optional: reference files (any extension) loaded at runtime
└── *For each skill, apply the following checks. These are Skill Health criteria — distinct from the five agent-level dimensions but equally important for production reliability.
SK-1 — Single Responsibility: Does the skill do exactly one thing? A skill body that covers multiple unrelated intents, sub-topics, or tool categories is doing too much. Count the distinct tool calls or workflows described in the body. More than one primary workflow is a smell; three or more is a violation.
SK-2 — Distinct, Non-Overlapping Scope: Do any two skills share coverage for the same user intent, topic, or trigger condition? Compare each skill's description frontmatter and body scope statements against every other skill in the agent's skills: list. Overlapping descriptions force the agent to make an ambiguous routing decision at every turn where both skills could plausibly apply — this is a systematic reliability failure, not an edge case. Flag every pair with detectable overlap, quote the overlapping text from both descriptions, and rate the overlap: Exact (same intent, same words), High (same intent, different words), Moderate (shared edge cases or boundary conditions), or Low (tangential but distinct).
SK-3 — Routing Clarity (Name + Description): Is the skill name specific enough to be meaningfully different from all other skill names? Is the description frontmatter clear, specific, and complete enough that the agent — without reading the body — can decide whether this skill applies to a given user turn? A description that requires the agent to already know the domain details to understand it is circular. A description that is vague enough to match multiple domains is ambiguous. Check: does the description explicitly state what intents it covers AND what intents it does NOT cover (boundary conditions)?
SK-3a — Frontmatter validation (hard limits that prevent the skill from loading):
name field must be ≤ 64 characters. A name exceeding 64 characters will prevent the skill from importing. Flag immediately as a hard failure — the skill will not be reachable at all.description field must be ≤ 1024 characters. Past this limit the skill will not load. Flag immediately as a hard failure.{{placeholder}} tokens: Any {{identifier}} in the description or body with no matching param entry quietly becomes a hole — the model reads a sentence with a gap in it. Scan both the description and the body for {{...}} patterns and verify each has a matching param. Flag unmatched placeholders as a hard failure.SK-4 — Cross-Skill Dependencies, Mid-Body Handoffs, and Dependency Loops: This check covers three distinct cases. Assess each independently.
Case 1 — Backward assumption (violation): Does the skill body assume that another skill has already run, set state, or returned a value? Look for references like "after X skill", "the result from the previous skill", "the intent identified earlier", or implicit state assumptions that could only come from a prior skill's execution. Skills must be independently executable — a skill that requires a prior skill to have run cannot be reliably activated in all valid routing paths.
Case 2 — Mid-body load_skill (violation): Does the skill body issue a load_skill call before its own work is complete, and then expect to resume its own steps after? When the new skill loads, the current skill's instructions are gone — there is no returning. Any steps written after a mid-body load_skill are unreachable. Detect this by checking whether the load_skill call appears before the skill's terminal step and whether subsequent steps depend on coming back to this body.
Case 3 — Terminal handoff (document, do not flag as violation): A skill body may issue a load_skill call as its last action, after all of its own steps are complete. This is a valid one-way handoff — the skill has finished its work, and the next skill picks up from the conversation state. Document these handoffs neutrally in the report (note the target skill). If a chain of terminal handoffs exists (A → B → C → …), note the chain depth — multiple hops mean each skill's instructions are replaced in sequence, which is a "telephone game" risk worth flagging for the author to assess. Document; do not penalise.
Dependency loop check (violation): Build a directed graph using forward load_skill pointers: draw an edge A → B if skill A's body contains a load_skill call to skill B (mid-body or terminal). Check this graph for cycles. A cycle means whichever skill loads second erases the one that loaded first — neither finishes. Any cycle is a violation regardless of where in the body the load_skill call appears.
How to detect loops:
load_skill call in its body — note both mid-body and terminal calls.Signals that indicate a dependency edge from skill A to skill B:
load_skill call targeting skill B (mid-body: violation; terminal: document)allowed-tools (and not in A's own allowed-tools or the agent's top-level tools:)SK-5 — Instruction Complexity Budget: Apply the same complexity analysis used for agent instructions to each skill's SKILL.md body. Skills are just agent instructions scoped to a domain — the same rules apply:
SK-6 — Skill Correlation, Consolidation, and Tool-Shadowing: Assess each skill pair for sequential-load coupling, and separately assess the agent's tool declarations for shadowing gaps.
Tool declaration model (check this first): Every tool any skill uses must be declared in agent tools: — that is the authoritative registry. A skill's allowed-tools restricts which declared tools are visible in the skill's context. This produces three categories:
agent tools:, not in any allowed-tools): callable at base level ✓agent tools: AND in one or more allowed-tools): callable only inside those skill contexts — shadowed at agent base level ✗instructions:/guidelines:): informational only — no execution gap because the agent never intended to call them at base levelCorrelation checks (per skill pair):
load_skill calls. Each call replaces the active skill body — the first skill's instructions are gone by the time the second loads.load_skill references: A skill body that instructs the agent to load_skill another skill before the first body's own work is complete creates an instruction-loss risk (see SK-4). This is a coupling signal, not just a performance signal.Tool-shadowing execution gap (Trigger 3 — High severity): Cross-reference every tool named in the agent's instructions: or guidelines: against shadowed_resolved_tools. If any match, the agent has written an instruction it cannot execute at base level — the tool is declared but unreachable outside a skill context. This is a deterministic silent execution gap. Flag every affected tool individually. Fix: either remove the tool from the relevant skill's allowed-tools (making it callable at base level), or move the agent-level instruction into the skill body where the tool is accessible.
Zero-tool base coverage (Trigger 3a — intentionality check): Check whether active_resolved_tools is empty (all declared tools are skill-filtered). If so, the agent has no tools before any skill loads. This is a valid and common design for a pure skill-routing agent — it is not an error. Check whether the agent instructions: contain an explicit statement confirming that every user intent is handled through a skill. If yes: record as confirmed, no note needed. If no such statement exists: raise a lightweight intentionality note asking the author to confirm. Either way, Trigger 3a does not lower any dimension score.
Consolidation recommendation rule: Recommend merging two skills into one when:
load_skill call to the other mid-workflow (indicating inseparable sequential dependency).SK-7 — Skill Architecture Performance Surface: Assess the aggregate runtime cost of the skill architecture as a whole using these components (see Rule N in signal-rules.md for thresholds). Because only one skill body is in the prompt at a time, the cost is per-load, not per-turn-sum.
load_skill calls per turn for multi-step intents (>1 per turn: Medium; >2 per turn: High)SK-8 — Redundant or conflicting platform content: Does the skill body or the agent instructions contain content that the platform already injects, or describe fixed platform behavior the author cannot change? Both produce token waste and risk in-context contradictions when the author's description drifts from actual platform behavior.
Canonical item list and triggers: see Rule J2 in
signal-rules.md. Items are organized into three categories: A (platform-injected content), B (fixed behavior the author cannot override), and C (content misplaced in the wrong location). Apply each trigger as defined there.
Effect: Category A — remove (already provided). Category B — remove (conflict risk). Category C — move to the right location or omit.
Structural checks for each skill:
description (frontmatter): Does it give the agent enough signal to decide when to load this skill (SK-3)? Vague descriptions cause misdirected routing.allowed-tools: The explicit tool allowlist for this skill context. Check whether every tool the SKILL.md body instructs the agent to call is present here. Tools referenced in SKILL.md body but absent from allowed-tools cannot be called — this is an execution gap (feeds SK-1 and SK-5).scripts/: Python scripts uploaded to the skill and available for the agent to invoke as sandboxed compute — no network access, no file-system access. Check all of the following:scripts/calculate_fee.py)? If not, the invocation may fail silently.references/: Reference files (lookup tables, policy docs, etc.) available to the skill at runtime. They are read on demand and stay in context until the skill changes. Check all of the following:instructions: field (exclude YAML structure, metadata, and guidelines)instructions: and guidelines: sectionsinstructions: plus each guideline's condition→action pairinstructions: and guidelines:instructions: independently — report these separately from agent-level counts (CO-5)load_skill) plus the full instruction surface of that skill's SKILL.md bodySKILL.md body independently — report these separately from agent-level counts (SK-5)load_skill creates inseparable coupling (SK-6 Triggers 1 and 2)instructions: or guidelines:, check whether it also appears in shadowed_resolved_tools. Each match is a SK-6 Trigger 3 violation (High severity — agent instruction it cannot execute at base level). Count each affected tool separately.active_resolved_tools is empty — SK-6 Trigger 3a (intentionality check only; valid design pattern; raise a lightweight note if no explicit confirmation in agent instructions; no score impact either way)skill_only_tools — informational only; not a violation (SK-6 Trigger 3b)Important: Use the utility scripts (extract_agent_info.py, extract_tool_info.py) to extract tool, collaborator, and skill metadata before scoring the "Execution & Tool Grounding" dimension. Both scripts live under scripts/ relative to this skill file — not the top-level workspace. extract_agent_info.py now resolves both collaborator agent YAMLs (co-located first, then --search-root) and skills (SKILL.md). Pass --search-root pointing at the project root when collaborator YAMLs or SKILL.md files are not co-located with the agent YAML. If collaborators, tools, or skills are referenced but their formal definitions cannot be extracted, note this as a limitation and proceed — recommend that the user provide definitions and re-run for a complete assessment.
</Step>
<Step>
**Extract evidence**
Use the gathered data to identify and count:
- Exact phrase requirements
- Nested conditional branches
- Implicit state requirements
- Critical constraints (MUST, NEVER, ALWAYS, EXACTLY, etc.)
- Exception clauses
- Subjective classifiers
- Tool-required behaviors
- Hard conflicts between rules
- **Knowledge base / retrieval surfaces** — for each tool identified as a retrieval surface in Step 1:
- **Passage count limit**: stated `top_k`/`max_results`/`limit` value, or "unbounded" if none
- **Call condition**: is the tool called unconditionally on every turn, on most turns, or conditionally? Quote the trigger phrase from the instructions.
- **Number of KB calls per turn**: count how many times the tool (or different retrieval tools) appear in a single turn's workflow
- **Location**: agent instructions, collaborator instructions, or skill body (note the skill name and its estimated load frequency from SK-7)
- **Estimated payload**: stated passage count × ≥500 tokens (conservative lower bound; actual chunk size is a runtime variable not visible from static analysis — state this as an approximation and flag the exact value as unverifiable without runtime inspection), or flag as unknown if unbounded
For each resolved collaborator, additionally extract:
description explicitly states covered intents AND boundary conditions (what it does NOT cover)For each resolved skill, additionally extract:
description explicitly states covered intents AND boundary conditions (what it does NOT cover)load_skill calls (note position: before or at terminal step; flag if before). Case 3 — terminal load_skill handoffs (document neutrally, note chain depth if > 1 hop). Plus: build the forward-pointer graph across all skills and check for cycles — report any loop as a separate finding with all skills in the cycle named.load_skill references; tool-shadowing execution gaps (Trigger 3 — High) — for each tool named in agent instructions:/guidelines:, check shadowed_resolved_tools for a match (each match = agent cannot execute that instruction at base level); zero-tool base coverage (Trigger 3a — intentionality check, no score impact) — is active_resolved_tools empty? if yes, is skill-only operation confirmed in agent instructions?; skill-only tools (Trigger 3b — informational) — tools in skill_only_tools (filtered but never referenced in agent text); consolidation recommendation (yes/no with justification)Document the analysis mode in the report:
collaborators: list but some collaborator YAMLs could not be resolved — Collaborator Health assessment is limited to the name/description visible in the parent agent's instructionsskills: list but SKILL.md files could not be resolved — Skill Health assessment is limited to description frontmatter only</Step>
<Step>
**Score five dimensions + Skill Health**
Evaluate the artifact across these dimensions using the scoring rubrics in [`dimension-definitions.md`](dimension-definitions.md):
Apply the deterministic signal rules from signal-rules.md to bound your judgment.
When collaborators are present, also produce a Collaborator Health assessment for each resolved collaborator using the CO-1 through CO-7 criteria. Collaborator Health is reported per-collaborator with a Pass / Warn / Fail rating for each criterion — it does not produce a single numeric score but feeds directly into the five agent dimensions and the Runtime Performance Risk section:
collaborator_dispatch_overhead_risk in the Runtime Performance Risk section — correlated collaborators that are co-dispatched per turn add measurable latency and instruction interference; paired with a consolidation recommendation when the trigger threshold is metWhen skills are present, also produce a Skill Health assessment for each skill using the SK-1 through SK-8 criteria. Skill Health is reported per-skill with a Pass / Warn / Fail rating for each criterion.
Important: skill health findings are reported in the per-skill reports, not as caps on the agent's five dimension scores. A single bad skill does not make the whole agent unachievable — it only affects the achievability of that skill's own domain. The agent report shows a Skill Health Summary table (pass/warn/fail per SK criterion per skill) as context, but the agent's five dimension scores reflect only the agent's own instructions, guidelines, tools, and collaborators.
The one exception is where a skill defect directly affects the agent's routing or execution behavior (SK-2 overlap, SK-3/SK-3a description failures, SK-6 Trigger 3) — these affect the agent's Dimension 2 (Scope & Applicability) and Dimension 3 (Execution & Tool Grounding):
instructions:/guidelines: references a skill-filtered tool): lower agent Dimension 3 — the agent has written an instruction it cannot execute at base level (deterministic silent gap — High severity)active_resolved_tools): intentionality note only — does not lower any dimension score; valid design for a pure skill-routing agent; raise a lightweight note if unconfirmedAll other SK findings (SK-1, SK-4, SK-5, SK-7, SK-8) stay in the per-skill report only:
</Step>
<Step>
**Generate findings**
For each major issue identified, create a finding with:
- **Evidence**: Direct quotes from the input
- **Why it matters**: Operational impact explanation
- **Deterministic or judgment-based**: Classification of the finding
- **Score impact**: Which dimensions are affected and how
- **Recommended change**: Specific, actionable fix
</Step>
<Step>
**Produce the report set**
Generate one report per evaluated artifact — the agent instructions plus one report for each resolved skill — and a lightweight index file. Each report is independent and can be written to disk as soon as its analysis is complete; do not wait for all reports to finish before saving any.
Token optimization side report (token_optimization_report.md): Always produced as part of every evaluation. Covers both optimization surfaces: agent instructions (every turn) and skill bodies (per load). Runs the full Rule O checklist; reports each pattern with a severity (High / Medium / Low / None found). If no issues are found, records the current per-turn token budget as a verified baseline.
Performance optimization side report (performance_optimization_report.md): Always produced. Targets execution call-graph depth: unconditional tool calls, sequential tool chains, next_action multi-hop dispatch, deep skill/collaborator stacks, guidelines overhead, correlated tool sets. For every identified sequential chain, recommends the appropriate offload mechanism: nextTool chaining (_meta.nextTool) if ≤5 steps, single Python MCP server, branching (if any) is stable and acceptable to hardcode in the tool, user interaction is simple Q&A at most, and no transaction audit is required; Agentic Workflow (@flow / WxO Agentic Workflow JSON) if branch logic may evolve, multi-step user confirmation needed, cross-server tools, >5 steps, or transaction audit/observability required. Both mechanisms eliminate LLM reasoning between steps, reducing token cost and inference passes simultaneously. Runs the full Rule P checklist with severity per pattern. If no issues are found, records the current call-graph baseline.
Reliability optimization side report (reliability_optimization_report.md): Always produced. Synthesises findings from the main agent and skill reports into a prioritised, implementation-ready rewrite plan grouped by failure class (implicit state, exact-phrase, scope/routing, conflicting rules, tool underspecification, skill body). Every REL-N item traces back to evidence already in the main reports — no new findings. Runs the full Rule Q checklist with severity per pattern. If no issues are found, records a stability baseline.
Report set layout:
instructions_eval/
├── index.md ← manifest listing all reports and their overall verdicts
├── rules-summary.md ← copy of evaluation rules reference (copy from skill directory)
├── agent_<name>_extracted.json ← raw extraction data from extract_agent_info.py ← REQUIRED
├── tool_<name>_extracted.json ← raw extraction data per tool (when produced by extract_tool_info.py)
├── token_optimization_report.md ← token consumption optimization (Rule O — always produced)
├── performance_optimization_report.md ← runtime performance optimization (Rule P — always produced)
├── reliability_optimization_report.md ← reliability optimization (Rule Q — always produced)
├── agent_<name>_report.md ← agent-level report (main instructions only)
├── agent_<name>_report_harness.json ← agent-level JSON harness
├── collaborator_<collab-name>_report.md ← one per resolved collaborator at any depth
├── collaborator_<collab-name>_report_harness.json
├── ... ← repeat for every collaborator across all depth levels
├── skill_<skill-name>_report.md ← one per resolved skill (attached to agent or any collaborator)
├── skill_<skill-name>_report_harness.json
└── ...All collaborator and skill reports live flat in the same eval/ directory regardless of depth. Depth and parent context are encoded inside each report's header metadata, not in the file path.
The agent_<name>_extracted.json file is the authoritative source for all token estimates, tool spec data, and skill resolution metadata used across every report. It is produced by extract_agent_info.py --output-dir eval/ and must be present in every complete report set. The index.md must link to it in the Reference Documents section.
Filename conventions:
agent_<name>_report.md / agent_<name>_report_harness.json<name> = the agent's name field (snake_case, no spaces)skill_<skill-name>_report.md / skill_<skill-name>_report_harness.json<skill-name> = the skill's name frontmatter field (snake_case, no spaces)index.mdeval/ relative to the agent YAML's directory. Create it if it does not exist.What goes in each report:
| Content | Agent report | Collaborator report | Skill report |
|---|---|---|---|
| Agent-level instructions analysis (all 5 dimensions) | ✓ | — | — |
| Agent-level Runtime Performance Risk | ✓ | — | — |
| Collaborator Health Assessment table (direct children, CO-2/CO-6/CO-7) | ✓ | ✓ (if has sub-collaborators) | — |
| Collaborator consolidation recommendations (CO-6) | ✓ | ✓ (if has sub-collaborators) | — |
| Collaborator architecture performance surface (CO-7) | ✓ | ✓ (if has sub-collaborators) | — |
| Skill Health Assessment table (all skills, cross-skill SK-2/SK-6/SK-7) | ✓ | ✓ (if has skills) | — |
| Skill consolidation recommendations (SK-6) | ✓ | ✓ (if has skills) | — |
| Skill architecture performance surface (SK-7) | ✓ | ✓ (if has skills) | — |
| Collaborator instructions analysis (5 dimensions applied to collaborator body) | — | ✓ | — |
| CO-1, CO-3, CO-4, CO-5 deep analysis for this collaborator | — | ✓ | — |
| Runtime Performance Risk for this collaborator body | — | ✓ | — |
Depth + parent metadata header (Depth: N | Parent: <name>) | — | ✓ | — |
| Back-reference to parent report (agent or collaborator) | — | ✓ | ✓ |
| Forward-references to own sub-collaborator and skill reports | ✓ | ✓ (if has sub-collaborators or skills) | — |
| Skill body analysis (5 dimensions applied to skill body) | — | — | ✓ |
| SK-1, SK-3, SK-4, SK-5 deep analysis for this skill | — | — | ✓ |
| Runtime Performance Risk for this skill body | — | — | ✓ |
Filename conventions (extended):
collaborator_<name>_report.md / collaborator_<name>_report_harness.json<name> = the collaborator's name field from its agent YAML (snake_case, no spaces)Evaluation order and save-as-you-go:
⚠️ Three mandatory side reports —
token_optimization_report.md,performance_optimization_report.md, andreliability_optimization_report.md— must ALL be written before the index. Set up your todo list to track all three explicitly and do not mark any of them complete until the file exists on disk. Missing any one of them is a hard omission failure.
extract_agent_info.py with --search-root and --output-dir eval/ so agent_<name>_extracted.json is saved before analysis begins. The script auto-scans for tool source files; use --tools-root to narrow the scan or --tools-dir eval/ to use pre-extracted tool JSONs. These files are the grounding source for all tool and token claims in every report. Confirm agent_<name>_extracted.json exists in the eval/ directory before proceeding.rules-summary.md from the skill directory into the output eval/ directory — do this once, before writing any reportscollaborators: lists); continue batches of at most 2name or file path) has already been resolved at any earlier depth, do not process it again — record the back-edge as a dependency loop in the nearest parent's collaborator report and skipcollaborator_<name>_report.md regardless of depth; depth and parent are recorded inside the report's header metadatatoken_optimization_report.md, performance_optimization_report.md, reliability_optimization_report.md) exist in the output directory. If any is missing, write it now before proceeding.When collaborator YAMLs cannot be resolved: produce the agent report with a "Partial Collaborator Mode" note; omit collaborator reports for unresolved collaborators; list them in the index as unresolved. Still produce all three side reports — note partial mode as a limitation on collaborator-body coverage.
When SKILL.md files cannot be resolved: produce the agent report with a "Partial Skill Mode" note; omit skill reports for unresolved skills; list them in the index as unresolved. Produce all three side reports — note partial mode as a limitation on skill-body coverage.
When there are no collaborators and no skills: produce all reports including all three side reports. Reports will note the reduced surface (agent instructions only) and may be brief if no issues are found.
</Step>
</Steps>
Be evidence-based:
[Translation]: ... line in English. This is mandatory — do not omit it, do not paraphrase it away, and do not assume the reviewer reads the source language. Every finding Evidence block that contains a non-English quote must have a corresponding translation on the very next line.Be operational, not academic:
Prefer deterministic recommendations:
Do not overpraise:
Prioritize high-impact changes:
Refer to these files for detailed guidance:
dimension-definitions.md: Complete scoring rubrics for all five dimensionssignal-rules.md: Deterministic rules to reduce subjectivity (Rules A-N)report-template.md: Required report structure and section orderrules-summary.md: Standalone rules reference document — copy into every report set so reviewers can interpret scores without accessing the skill directoryEvery evaluation must produce:
Agent report (agent_<name>_report.md + agent_<name>_report_harness.json):
instructions: and guidelines:See collaborator report: [collaborator_<name>_report.md](collaborator_<name>_report.md) — include depth and parent annotation for sub-collaborators, e.g. (depth 2, parent: supervisor_agent)See skill report: [skill-<name>_report.md](skill-<name>_report.md)Per-collaborator report (collaborator_<name>_report.md + harness JSON), one per resolved collaborator at any depth:
instructions: and guidelines: (treated as the instruction content)Depth: N | Parent agent: <name> (root agent = depth 0; direct children = depth 1; etc.)Part of agent evaluation: [<parent>_report.md](<parent>_report.md)Per-skill report (skill_<skill-name>_report.md + harness JSON), one per resolved skill:
SKILL.md body (treated as the instruction content)Part of agent evaluation: [agent-<name>_report.md](agent-<name>_report.md)Token optimization report (token_optimization_report.md) — always produced:
~X lines (~Y% of current size) → ~Z tokens saved per [turn type]Side report to: [agent_<name>_report.md]Performance optimization report (performance_optimization_report.md) — always produced:
nextTool chaining vs. Agentic Workflow vs. pre-invoke plugin) per chain based on step count, branch structure, and server scopeSide report to: [agent_<name>_report.md]Reliability optimization report (reliability_optimization_report.md) — always produced:
Side report to: [agent_<name>_report.md]Index file (index.md) + rules-summary.md (copied from skill directory):
rules-summary.md present in the same eval/ directory (copied, not regenerated)The markdown report must be:
The JSON harness file must be:
.json file alongside the markdown report© IBM, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 9 other files (scripts) in skills/agent-instructions-evaluator of IBM/ibm-watsonx-orchestrate-adk.
Open the folder on GitHubat commit 15d588c
Agent Instructions Evaluator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Agent Instructions Evaluator this skillIBM/ibm-watsonx-orchestrate-adk | 178 | — | ~17k | Automated safety check: Pass | MIT | |
| Using Agent Skillsaddyosmani/agent-skills | 103k | 4 repos | ~2.4k | Automated safety check: Pass | MIT | |
| Claude ReflectBayramAnnakov/claude-reflect | 1.7k | 2 repos | ~627 | Automated safety check: Pass | MIT | |
| Writing For Agentsbestofjs/bestofjs | 3.1k | 19 repos | ~2.7k | Automated safety check: Pass | MIT | |
| Neat-Freak Knowledge CloseoutKKKKhazix/khazix-skills | 21k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Task Observerrebelytics/one-skill-to-rule-them-all | 3.2k | 1 repos | ~12k | Automated safety check: Pass | CC-BY-4.0 |
addyosmani/agent-skills
Meta-skill for choosing which workflow skill fits the task at hand, plus always-on habits: surface assumptions, stop on confusion, push back, keep it simple and stay in scope.
BayramAnnakov/claude-reflect
Self-learning system that captures corrections during sessions and reminds users to run /reflect to update CLAUDE.md.
bestofjs/bestofjs
Writing documents for agents. An agent skill from bestofjs/bestofjs.
KKKKhazix/khazix-skills
Brings project docs, agent rule files, authorized memory and leftover workspace files back in line with what the code and runtime actually do at the end of a work session.
rebelytics/one-skill-to-rule-them-all
Monitors task execution for skill improvement opportunities.
microsoft/SkillOpt
Runs an on-demand or nightly sleep cycle that reviews past Claude Code sessions and proposes validated updates to CLAUDE.md and skills.
IBM/ibm-watsonx-orchestrate-adk
Analyzes IBM watsonx Orchestrate agentic workflow artefacts (JSON or Python @flow) and returns prioritised architecture recommendations grouped by impact.
IBM/ibm-watsonx-orchestrate-adk
A skill your agent uses when the user wants to analyze agent telemetry traces to find bugs and get fix recommendations — walks through exporting traces from a local or remote watsonx Orchestrate…
IBM/ibm-watsonx-orchestrate-adk
Build MCP servers for customer care agents following Watson Orchestrate specifications.
IBM/ibm-watsonx-orchestrate-adk
A skill your agent uses when building, testing, debugging, or publishing IBM watsonx Orchestrate agents, tools, flows, connections, knowledge bases, or custom models with the orchestrate CLI or ADK…
IBM/ibm-watsonx-orchestrate-adk
Expert guidance for creating high-level solution architecture documents from business requirements, use cases, or problem statements.
IBM/ibm-watsonx-orchestrate-adk
Expert guidance for building a Standard Operating Procedure (SOP) from a workflow diagram, Langflow JSON, n8n JSON, BPMN model or workflow description.
Categories
Evaluate an agent instructions or agent definition for achievability and produce a structured, evidence-backed report artifact with per-dimension scores, findings, deterministic signals, and…. Agent Instructions Evaluator is an agent skill from IBM/ibm-watsonx-orchestrate-adk, published by the product's own GitHub organization. Evaluate an agent instructions or agent definition for achievability and produce a structured, evidence-backed report artifact with per-dimension scores, findings, deterministic signals, and high-impact recommendations.
Agent Instructions Evaluator fits situations like: tasks that involve Agent instruction files.
Run `npx skills add IBM/ibm-watsonx-orchestrate-adk --skill agent-instructions-evaluator -a claude-code`. Or copy the skill folder (skills/agent-instructions-evaluator in IBM/ibm-watsonx-orchestrate-adk) into .claude/skills/agent-instructions-evaluator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add IBM/ibm-watsonx-orchestrate-adk --skill agent-instructions-evaluator -a codex`. Or copy the skill folder (skills/agent-instructions-evaluator in IBM/ibm-watsonx-orchestrate-adk) into .agents/skills/agent-instructions-evaluator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add IBM/ibm-watsonx-orchestrate-adk --skill agent-instructions-evaluator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/agent-instructions-evaluator, .gemini/skills/agent-instructions-evaluator, .github/skills/agent-instructions-evaluator and .opencode/skills/agent-instructions-evaluator in your project.
Going by SKILL.md and its folder, Agent Instructions Evaluator needs Python for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Agent Instructions Evaluator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 17k tokens (SKILL.md is roughly 66k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Agent Instructions Evaluator: Using Agent Skills (addyosmani/agent-skills, 103k stars), Claude Reflect (BayramAnnakov/claude-reflect, 1.7k stars), Writing For Agents (bestofjs/bestofjs, 3.1k stars) and Neat-Freak Knowledge Closeout (KKKKhazix/khazix-skills, 21k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
IBM (a GitHub organization, an official publisher) maintains it in IBM/ibm-watsonx-orchestrate-adk, which has 178 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 7, 2026.
Source: IBM/ibm-watsonx-orchestrate-adk on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.