Live, typed, repo-scoped context for AI agents and the humans they work with.
Six tools with complete schemas and descriptions, but quality is uneven. Tool names lack action verbs (register, query, list, show, close, update are weak; prefer create_entry, search_entries, list_entries, get_entry, close_entry, update_entry). Descriptions are present but brief (avg ~60 chars, below 194-char baseline). Parameter descriptions exist but lack format/constraint details. Output schemas are not documented. Error handling is minimal. No tool annotations (readOnlyHint/destructiveHint). Composition is reasonable, tools are single-purpose and chainable via IDs.
Close a carn entry, moving it from in-flight to closed status
List entries with optional filtering by status and type
Find entries whose paths overlap one or more queries (agent read API)
Register a new carn entry (forbid-pattern, prefer-pattern, or coordinate type)
Show one entry by id (prefix-matched)
Update an entry's description, paths, ttl, or metadata fields
Tool names lack action verbs. 'register', 'query', 'list', 'show' are weak; LLMs infer intent poorly. Rename to 'create_entry', 'search_entries', 'list_entries', 'get_entry' to match verb_noun convention.
Descriptions are too brief (avg ~60 chars vs 194-char baseline). Missing WHEN to use each tool and prerequisites. E.g., 'register' should explain: 'Create a new carn entry to track a code pattern, constraint, or coordination point. Requires type (forbid-pattern, prefer-pattern, or coordinate) and description.'
Output schemas are not documented. LLMs cannot plan downstream calls or extract fields. Document what each tool returns: register returns {id, created_at}, query returns {entries: [{id, type, description, paths, status}]}, etc.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint). LLMs cannot distinguish safe reads from destructive writes. Add readOnlyHint to query/list/show; add destructiveHint to close/update.
Parameter descriptions lack format/constraint details. E.g., 'ttl' says 'Optional time-to-live duration (e.g. 7d, 24h)' but does not state valid format or range. Add: 'Format: <number><unit> where unit is s|m|h|d. Example: 7d, 24h, 3600s.'