CtrlK
BlogDocsLog inGet started
Tessl Logo

opencode-build-tool

Build custom tools and plugins using the OpenCode SDK packages. Use when creating custom tools, implementing tool schemas, building plugins, managing OpenCode sessions, using opencode-ai/sdk or opencode-ai/plugin, creating a tool.ts file, writing an execute handler, using tool.schema, ToolContext, createOpencode, plugin hooks, custom auth, automating OpenCode from a script, building a CI tool, or integrating external APIs. Keywords: Zod schema, execute handler, event streaming, session management, abort signal, tool discovery, multiple tools per file, tool factory.

73

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, lean skill body with executable examples and effective anti-pattern guidance. Its main flaws are an orphaned YAML keyword block that wastes tokens, dead eval-scenario links, and a missing error-recovery loop around the tool-discovery verification step.

Suggestions

Delete the stray YAML frontmatter block after the verification command — it duplicates the SKILL.md description, serves no purpose in the body, and reads as a copy-paste mistake.

Remove or fix the three evals/scenario-*/task.md links, since the evals/ directory does not exist in the bundle; dead links break navigation and mislead the reader.

Add one or two lines of error-recovery guidance after the verification command (e.g., what to check if the tool is not listed or is named `filename_exportname` unexpectedly), turning the verify step into a true feedback loop.

DimensionReasoningScore

Conciseness

The body is efficient — a minimal quick-start snippet, a two-line package mindset table, and terse WHY-annotated anti-patterns with BAD/GOOD pairs, assuming Claude's competence throughout. It is not a 5 because of the orphaned YAML block ("description: custom tools opencode SDK plugin execute handler abort signal Zod schema...") that sits unexplained after the verification command, duplicating frontmatter content and adding pure token waste; not a 3 because that block is the only significant trimming needed.

4 / 5

Actionability

Guidance is fully executable: a copy-paste-ready tool template ("import { tool } from \"@opencode-ai/plugin\"" with a complete execute handler), concrete file locations (".opencode/tool/*.ts", "~/.config/opencode/tool/*.ts"), a runnable verification command ("bun run opencode run \"list tools\""), and BAD/GOOD code pairs for each anti-pattern. Common cases are covered, matching the anchor-5 example format.

5 / 5

Workflow Clarity

The Quick Start gives a clear sequenced path (create the file → restart for auto-discovery → filename=naming rule) and closes with a verification step, so most checkpoints are present. It is not a 5 because there is no error-recovery guidance — nothing says what to do if the tool is not discovered or is misnamed after running the verify command; not a 3 because validation is present, just without an explicit feedback loop.

4 / 5

Progressive Disclosure

The body is a well-organized overview with one-level-deep, clearly labeled references ("advanced-patterns.md — patterns, anti-patterns, SDK examples", "sdk-api.md", "plugin-api.md", plus two example .ts files), all of which exist in the bundle. It is not a 5 because the three eval scenario links (evals/scenario-0/task.md through scenario-2) point to files that do not exist in the bundle — dead navigation links; not a 3 because the actual reference structure is appropriately split and clearly signaled.

4 / 5

Total

17

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: concrete capability statement, explicit and extensive 'Use when' triggers, third-person voice, and a clearly distinct OpenCode-specific niche. The only nit is mild redundancy between the 'Use when' clause and the trailing 'Keywords:' list, which costs a few tokens without adding new trigger coverage.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "Build custom tools and plugins", "implementing tool schemas", "writing an execute handler", "managing OpenCode sessions", "custom auth", "integrating external APIs" — with comprehensive coverage of the skill's domain. It is not a 4 because there are no meaningful gaps in the action coverage; every capability of the skill is explicitly named.

5 / 5

Completeness

It explicitly answers both questions: the "what" is "Build custom tools and plugins using the OpenCode SDK packages", and the "when" is a full "Use when creating custom tools, ... or integrating external APIs" clause with concrete trigger phrases. This matches the anchor-5 example structure (statement of capability followed by explicit trigger guidance), so it cannot be a 4 where the 'when' would be less explicit.

5 / 5

Trigger Term Quality

Keyword coverage is comprehensive and includes natural user phrasings, synonyms, and technical identifiers users would actually say: "opencode-ai/sdk or opencode-ai/plugin", "creating a tool.ts file", "Zod schema", "execute handler", "plugin hooks", "abort signal", "building a CI tool". It is not a 4 because both layman triggers ("custom tools", "plugins") and expert-level identifiers ("tool.schema", "ToolContext", "createOpencode") are present.

5 / 5

Distinctiveness Conflict Risk

The niche is unambiguous — OpenCode-specific identifiers ("opencode-ai/sdk", "opencode-ai/plugin", "createOpencode", ".opencode" implied via tool.ts) appear throughout, making confusion with generic plugin-building or API-integration skills very unlikely. It is not a 4 because the borderline-broad triggers ("building a CI tool", "integrating external APIs") are all qualified by the OpenCode context established in the same sentence.

5 / 5

Total

20

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 3 missing, 3 deeper-than-1-level

Warning

Total

15

/

16

Passed

Repository
pantheon-org/tekhne
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.