Runtime, compiler, lint, CLI, and dashboard for Skillscript — a small declarative language for authoring agent workflows.
skillscript-runtime exposes 17 tools with schemas and descriptions present, but quality is inconsistent. Naming follows verb_noun convention (skill_read, execute_skill, lint_skill) which is good. However, descriptions are terse (10-80 chars) and lack actionable context for LLM selection. Many parameters lack descriptions entirely (e.g., 'filter' in skill_list has no description of what fields it accepts). Output schemas are not documented, callers cannot know what fields to expect from responses. Error handling is absent from tool definitions. The server mixes read-only and write operations without clear separation or confirmation patterns for destructive actions (skill_write, execute_skill, skill_status). No evidence of idempotency hints or recovery guidance.
allowlist-refused shell ops (observe→promote loop)
rendered artifact + errors + exec order (pre-commit)
PortableData | null (direct lookup; no data_write MCP by design)
run + return result (write)
per-skill/connector aggregates
language quickstart + deep topics
tiered diagnostics (inner loop)
Output schemas not documented. Tool definitions show input schemas but no return type documentation. LLMs cannot plan downstream calls or extract required fields (e.g., does skill_read return version, status, source as separate fields or nested?). This violates pattern:tool and pattern:response-shaper.
Parameter descriptions missing or vague. 'filter' in skill_list has no description of accepted fields. 'trigger_source' in register_trigger is described as 'trigger source configuration' but does not explain what fields it expects. LLMs cannot construct valid payloads without trial-and-error.
Destructive operations lack confirmation or dry-run patterns. skill_write (overwrite=true), skill_status (state change), execute_skill, and unregister_trigger can modify or delete state without explicit confirmation. Agents may accidentally overwrite skills or disable triggers. Violates pattern:confirmation-request.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
list registered autonomous triggers
register an autonomous trigger for a skill
wired connectors + shell-exec mode
enable or disable a registered trigger
SkillCatalog (grouped by audience; entries carry the full contract)
one skill's contract: takes/returns/requires/touches + approval + lifecycle
{name, version, status, source} (the body itself)
Draft/Approved/Disabled (write; secured promote needs a signature)
store the body (write; secured mode forces unsigned→Draft)
unregister an autonomous trigger
No error handling guidance in tool definitions. No indication of which errors are retryable, user-fixable, or fatal. No recovery hints (e.g., 'If skill not found, call skill_list() first'). Violates pattern:recovery-guide and pattern:error-classification.
Tool descriptions too brief (10-50 chars). Examples: 'wired connectors + shell-exec mode' (runtime_capabilities), 'SkillCatalog (grouped by audience; entries carry the full contract)' (skill_list). These lack context for LLM selection. Baseline is 194 chars; these are 30-80% below. Violates pattern:tool-description baseline.