Local-first, repository-native AI engineering control plane for VS Code and MCP
AIWorkHub provides 3 tools for managing agent instruction files in repositories. All tools have explicit schemas with typed parameters and enums, which is solid. However, descriptions are terse (most under 100 chars), parameter descriptions are minimal or generic, and output schemas are completely undocumented. The tool names are action-verb-based ('preview', 'inspect', 'apply') but lack clarity on what resource they operate on without reading the description. All three tools accept a 'provider' enum and 'repo_root' string, properly constrained. The main weaknesses are: (1) no documented return type/schema for any tool, (2) terse descriptions that don't explain WHEN to use each tool vs the others, (3) no explanation of error conditions or recovery guidance, (4) no actionable differences between 'preview' and 'inspect' from description alone. The write-gating on apply_instruction is good security practice (write=False default), but it's not mentioned in the description. Tools appear well-engineered internally (managed markers, idempotence, path-escaping validation visible in code), but the surface API contract is underspecified for LLM consumption.
Activate the agent tool-use policy block for one provider. Read-only dry-run by default. Only writes when ``write=True`` AND the parent write gate (``core.writes_allowed()``) is enabled. Uses the existing managed-marker/idempotence path so a second write is a no-op and owner text outside the managed block is never altered.
READ-ONLY: inspect managed markers in one provider file. Returns marker counts and managed-block validity without mutating anything. Refuses unknown or path-escaping ``provider`` values.
READ-ONLY: dry-run preview for one or all providers. Returns the inert apply plan(s) plus unified diffs WITHOUT mutating any repository file. Defaults to all three providers when ``provider`` is omitted.
No documented output schemas for any tool. LLMs cannot plan downstream calls or extract structured data without knowing return types.
Tool descriptions do not explain WHEN to use each tool or how they differ. 'preview' vs 'inspect' distinction is unclear from descriptions alone.
No error handling guidance. Descriptions don't mention what errors are possible (invalid provider, missing repo_root, permission denied on write) or how to recover.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Tool descriptions are terse (48-120 chars for preview/inspect). Baseline for A+ tools is 194 chars. Descriptions lack context for selection and prerequisites.
The 'write' parameter default (false) is good, but the description does not explicitly state that write=False returns a dry-run without mutations. This is critical for understanding tool behavior.