Manage AGENTS.md and sync it across all your AI coding agents (Claude Code, Codex, Gemini, Cursor, Windsurf, Cline, Copilot, DeepSeek Harness, and more). One canonical source in ~/.agents/, mirrored everywhere.
agent-cli exposes 16 tools with significant quality gaps. Tool naming is inconsistent (spect, search, sync, status, doctor, brief, files, lessonsList, inboxList, spectStatus, snapshotsList, snapshotNow, modelsList, modelsResolve, skillStatus, search, note 'search' appears twice). Descriptions exist but are terse (10-100 chars, well below the 194-char baseline for A+ tools). Input schemas are present with type declarations, but parameter descriptions are minimal or missing context. Output schemas are not documented. Error handling is present in code (emit/fail patterns) but recovery guidance is absent from tool descriptions. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Composition is reasonable, tools are single-purpose, but naming ambiguity (duplicate 'search', inconsistent verb_noun patterns like 'lessonsList' vs 'list_lessons') will confuse LLMs during tool selection.
Get agent-cli brief payload with session state, actions, and health status
Get agent-cli doctor payload with issues and checks
Get identity inventory for a scope
List inbox lessons from global and project scopes
List lessons from global and project scopes
Get model aliases
Resolve a model alias
Search lessons, identity files, and SPECT docs by relevance
Duplicate tool name 'search' (tools #2 and #16) will cause LLM confusion and tool selection errors. One must be renamed or merged.
Inconsistent naming convention: mix of verb_noun (spect, sync, status) and camelCase list patterns (lessonsList, inboxList, snapshotsList, modelsList). Should standardize to list_lessons, list_inbox, list_snapshots, list_models for clarity.
Descriptions are too terse (10-100 chars, baseline 194 chars). Examples: 'Get agent-cli status payload...' (35 chars), 'Get agent-cli doctor payload...' (30 chars). Descriptions lack WHEN to use, prerequisites, and expected outcomes. LLMs cannot reliably select tools with such sparse guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Search lessons, identity files, and SPECT docs by relevance — check before starting work to avoid duplicating existing guidance.
Get skill availability status
Create a snapshot now
List available snapshots
SPECT workflow (.spect): init|status|task list|done|open, validate, report, next, close, trace.
Get SPECT project status
Get agent-cli status payload including master file, config, targets, and skill availability
Git-backed brain sync: init|push|pull|status|log|diff|rollback|auto. Secrets are never synced.
No output schemas documented. Tools return structured payloads (e.g., spect returns {ok, reason, root, created, skipped}; search returns results array) but LLMs have no formal schema to plan downstream calls or extract fields reliably.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes (e.g., snapshotNow is WRITE but unmarked; status is READ_ONLY but unmarked). Agents may retry destructive operations or skip safe ones.