Tooling for a versioned skills monorepo catalog. Manages skill metadata, installation workflows, validation, and documentation generation.
Three tools with basic descriptions and partial schemas. All tools have descriptions (10-80 chars), but parameter descriptions are sparse or missing. Input schemas visible for all tools with type info, but output schemas are undocumented. No error handling guidance, no tool annotations, no idempotency hints. Naming is verb-based (build, validate, install) but descriptions lack WHEN/WHY context. Parameters like 'repo' and 'target' lack format constraints. No pagination support despite install accepting a 'list' flag. Overall: functional but well below production baseline (194 char avg description, 100% param coverage expected).
Build catalog and documentation from skill metadata. Generates catalog.json, README files, and skill documentation.
Install a skill from the repository to a target location. Supports version selection, platform validation, and deprecation checks.
Validate repository structure and skill metadata. Checks required files, semantic versioning, status values, and generated outputs.
Parameter descriptions missing or incomplete. 'repo' has minimal description; 'target', 'target_root', 'allow_deprecated' lack any description. LLMs cannot infer parameter meaning from names alone.
Output schemas undocumented. No specification of what build(), validate(), or install() return. LLMs cannot plan downstream calls or extract required data.
No error handling guidance. Tools do not indicate what errors are retryable, user-fixable, or fatal. No recovery hints (e.g., 'If validation fails, check skill.yaml format').
Tool descriptions too brief (40-50 chars). Lack WHEN/WHY context. 'Validate repository structure...' does not explain when to call validate vs build, or what the agent should do with results.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
No parameter constraints. 'version' accepts any string; 'target' has no enum of valid platforms; 'target_root' has no path format guidance. Invites invalid LLM input.