.stencila/skills/agent-review/SKILL.md
Critically review a Stencila agent and suggest improvements. Use when asked to review, audit, critique, evaluate, or improve an agent directory or AGENT.md file. Covers frontmatter validation, system instruction quality, configuration correctness, and adherence to the Agent schema.
npx skillsauth add stencila/stencila agent-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Review an existing Stencila agent for quality, correctness, and completeness. Produce a structured report with specific, actionable suggestions. The review covers frontmatter fields, system instruction quality, configuration correctness, security posture, and adherence to the agent schema defined in schema/Agent.yaml.
AGENT.md file path.stencila/agents/<name>/AGENT.md walking up from the current directory; also check ~/.config/stencila/agents/<name>/AGENT.md for user-level agents. If given a path, use it directlyAGENT.md file and any supporting files in the agent directory (check for scripts/, references/, and assets/ subdirectories)schema/Agent.yaml to verify the checklist covers current agent schema fields and to identify any unknown frontmatter propertiesstencila agents validate <agent-name>^[a-z0-9]([a-z0-9-]{0,62}[a-z0-9])?$), follows the thing-role naming convention (e.g., code-reviewer, data-analyst)TODO, <placeholder>), recommended to be concise (under ~1,024 characters), specific enough to convey the agent's purposeCheck each present field for validity:
small, medium, large), and that it matches the agent's stated role and task complexity. Treat it as a Stencila cross-provider classification rather than an exact provider guaranteelow, medium, or high if present; custom provider-specific values are also validlow, medium, or high if present; check that it matches the agent's intended use (e.g., a read-only reviewer should not have high trust)read_file, write_file, edit_file, grep, glob, shell, web_fetch, use_skill, spawn_agent, send_input, wait, close_agent, ask_user, mcp_codemode); flag unknown tool namesSKILL.md are valid forward references (top-down design) — note them as outstanding dependencies rather than flagging them as errors*.example.com wildcards)none or full if presentstrict, balanced, or verbose if presentschema/Agent.yaml (or inherited from CreativeWork) as warnings — they may be typos or unsupported properties that will be silently ignoredNote: Agent extends CreativeWork in the schema, so agents may have additional valid fields such as license. Verify against the schema before flagging inherited properties as unknown.
If both allowed-skills and allowed-tools are present, check tool coverage across skills: the agent's allowed-tools should include all tools required by the allowed skills. use_skill is optional for exactly one allowed skill because that skill is preloaded automatically, but should be present when the agent may need to invoke skills dynamically or choose among multiple skills.
description, keywords, and when-to-use/when-not-to-use work together — they should be complementary, not redundant. Flag cases where the same text appears verbatim in multiple fieldsAGENT.md is a legitimate configuration-only agent. However, a body that exists but contains only empty sections or placeholder content should be flaggedallowed-skills contains exactly one skill, recognize that Stencila automatically preloads that skill's full instructions into the system prompt. In this case, a short body that acts as a preamble or identity-setting introduction is sufficient and should not be criticized as too sparse merely for brevityallowed-tools excludes write_file and edit_file)TODO, <placeholder>, or empty sections)shell access)high trust on agents that do not need itweb_fetch, consider whether domain restrictions are appropriateallowed-mcp-servers restricts access to only needed serversthing-role conventionmax-turns: 5 with reasoning-effort: high suggests the agent expects complex tasks but has limited turns)model-size and reasoning-effort are used coherently: model-size should reflect the desired cost/latency/capability tier, while reasoning-effort should reflect how much the selected model should deliberate. Flag cases where a very simple agent uses an unnecessarily large model tier without justification, or where a demanding analysis/review agent likely needs a larger tier than configuredStructure the review as follows:
One to three sentences giving an overall assessment and the most important finding.
For each checklist area, report one of:
Include a brief explanation for warnings and failures.
A numbered list of specific, actionable improvements ordered by priority (most impactful first). Each suggestion should explain what to change and why.
Use heading level 3 (###) for each section in your output.
Input: "Review the code-reviewer agent"
Process:
.stencila/agents/code-reviewer/AGENT.mdscripts/, references/, assets/)schema/Agent.yaml to verify field validityname is code-reviewer, matches directory, valid kebab-case, follows thing-role convention; description is specificmodel-size: medium and reasoning-effort: high are a sensible combination for a read-only reviewer; allowed-tools lists read_file, grep, glob, shell — appropriate for that rolewrite_file or edit_file — good least privilegestencila agents validate code-reviewerOutput (use ### headings in the report):
Summary
The code-reviewer agent is well-configured with appropriate read-only tool restrictions and clear instructions. One minor improvement is possible.
Findings
| Area | Status | Notes | |------|--------|-------| | Required fields | ✅ Pass | Name and description are valid and specific | | Optional fields | ✅ Pass | All present fields have valid values | | System instructions | ✅ Pass | Clear, imperative, consistent with tool restrictions | | Security | ✅ Pass | Read-only tools, appropriate trust level | | Consistency | ⚠️ Warning |
reasoning-effortis not set; considerhighfor code review tasks, and considermodel-size: mediumif the agent should consistently avoid the smallest tier |Suggestions
- Add
reasoning-effort: high— code review benefits from deeper analysis, and this matches the defaults in the agent-creation skill's configuration guide- Consider
model-size: medium— this keeps the agent portable across providers while signaling that review work typically needs more than the smallest, fastest model tier
Input: "Review the code-reviewer agent that delegates to one skill"
Process:
.stencila/agents/code-reviewer/AGENT.mdallowed-skills: with exactly one entry, code-reviewOutput (use ### headings in the report):
Summary
The code-reviewer agent is appropriately concise for a single-skill setup. Its short body works as a preamble, and the substantive workflow is supplied by the preloaded
code-reviewskill.Findings
| Area | Status | Notes | |------|--------|-------| | Required fields | ✅ Pass | Name and description are valid and specific | | Optional fields | ✅ Pass |
allowed-skillshas one valid skill name, which indicates a preloaded single-skill configuration | | System instructions | ✅ Pass | The body is brief but appropriate because it frames the agent and the detailed instructions come from the preloaded skill | | Security | ✅ Pass | Tool access matches the review-only role | | Consistency | ✅ Pass | The configuration and preamble are internally consistent |Suggestions
- Optionally expand the preamble by one sentence if you want a stronger agent identity, but do not duplicate the preloaded skill instructions
Input: "Review the quick-helper agent"
Process:
.stencila/agents/quick-helper/AGENT.mdname: quick-helper, description: Helps with stuff, trust-level: high, allowed-tools: read_file write_file edit_file shell web_fetch spawn_agent; body says "You are a helpful assistant" with a ## TODO sectionschema/Agent.yaml to check field validityOutput (use ### headings in the report):
Summary
The quick-helper agent has significant configuration issues: an overly broad tool set for an unspecified purpose, unnecessarily high trust, a vague description, and placeholder content in the body.
Findings
| Area | Status | Notes | |------|--------|-------| | Required fields | ⚠️ Warning | Description "Helps with stuff" is too vague to convey the agent's purpose | | Optional fields | ⚠️ Warning |
trust-level: highis set without clear justification | | System instructions | ❌ Fail | Body contains a## TODOplaceholder section | | Security | ❌ Fail | Agent hasshell,web_fetch, andspawn_agentwithtrust-level: highbut no clear need for these capabilities | | Consistency | ⚠️ Warning | Namequick-helperdoes not followthing-roleconvention — unclear what domain it covers |Suggestions
- Remove placeholder
## TODOsection or replace it with actual instructions- Reduce
trust-leveltomedium(orlow) unless elevated trust is justified by the agent's purpose- Restrict
allowed-toolsto only the tools the agent needs — removeshell,web_fetch, andspawn_agentunless required- Rewrite
descriptionto specifically convey what the agent does and when to use it- Rename to follow
thing-roleconvention (e.g.,general-assistantor a more specific name)
stencila agents list or by listing .stencila/agents/ directories.AGENT.md is a legitimate configuration-only agent.allowed-skills contains exactly one skill. Treat it as a preamble, because the skill content is preloaded automatically.allowed-skills lists skill names that have no corresponding SKILL.md, do not flag them as errors. These are valid forward references from top-down design — note them as outstanding dependencies and evaluate the rest of the agent definition on its own merits. The runtime produces a warning for unresolved skill names, not an error.~/.config/stencila/agents/ if the agent is not found in the workspace.model-size: Do not flag absence as a failure. Recommend it only when the agent would benefit from an explicit cross-provider size preference, such as a small tier for quick, low-stakes tasks or a medium/large tier for heavier review and analysis work.stencila agents validate <agent-name> before reporting completion.When applying suggested improvements, validate the agent before reporting completion:
# By agent name
stencila agents validate <agent-name>
# By directory path
stencila agents validate .stencila/agents/<agent-name>
# By AGENT.md path
stencila agents validate .stencila/agents/<agent-name>/AGENT.md
Validation should pass before you report the changes as complete.
documentation
An agent skill providing instructions for AI agents.
testing
Critically review a Stencila workflow and suggest improvements. Use when asked to review, audit, critique, evaluate, or improve a workflow directory or WORKFLOW.md file. Covers frontmatter validation, DOT pipeline quality, workflow structure, agent selection quality, discovery metadata, ephemeral workflow conventions, workflow composition, and adherence to Stencila workflow patterns.
development
Create a new Stencila workflow. Use when asked to create, write, scaffold, or set up a workflow directory or WORKFLOW.md file. Covers workflow discovery, duplicate-name checks, ephemeral workflows, WORKFLOW.md frontmatter, DOT pipeline authoring, goals, agents, branching, composition, and validation.
development
Critically review an existing or proposed Stencila theme artifact for correctness, token usage, target coverage, cross-target portability, dark-mode handling, maintainability, and approval readiness. Use when asked to review, critique, assess, audit, or validate a theme.css file, theme patch, theme plan, site theme, document theme, plot theme, print or PDF theme, check design tokens, assess DOCX or email behavior, review dark mode support, or validate with stencila themes validate.