A terminal-native agentic coding harness — streaming ReAct loop with reflection and planning, MCP/A2A protocols, cross-session semantic memory, subagent orchestration, YAML skills and agent roles, shell lifecycle hooks, and a Textual TUI.
Server exposes 9 tools with complete JSON Schema input definitions and descriptions. Naming follows verb_noun convention (create_note, read_note, list_notes, delete_note, list_files, read_file, write_file, delete_file, search_files). All tools have non-empty descriptions (range 50-180 chars, within baseline 34-392). However, descriptions lack actionable context: they state WHAT but not WHEN or WHY to use each tool. Parameter descriptions are minimal (e.g., 'Title of the note' vs 'A unique identifier for the note; alphanumeric + hyphens, 1-100 chars'). Output schemas are not documented, callers must infer return types from implementation. Error handling is present but generic (e.g., 'Note not found' without recovery guidance). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (READ_ONLY, WRITE, DESTRUCTIVE). Composition is sound: tools are single-responsibility and chainable (list_notes → read_note). Security: no secrets in parameters, but no audit logging or permission gates visible.
Create a note with a title and content, storing it in ~/.minion/notes/
Delete a file within the workspace.
Delete a saved note by title
List files in a directory within the workspace.
List all saved notes
Read the text contents of a file within the workspace.
Read the contents of a saved note by title
Output schemas not documented. Tools return strings or lists, but LLMs cannot infer field structure, types, or pagination. Callers must reverse-engineer from implementation.
Parameter descriptions lack actionable constraints. 'Title of the note' does not specify length, character restrictions, or uniqueness. 'Directory path' does not clarify relative vs absolute or symlink handling.
Tool descriptions lack WHEN/WHY context. 'Create a note with a title and content' does not explain when to use this vs write_file, or what happens if title already exists (overwrite vs error).
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Search for a query string across all text files in the workspace. Results are streamed progressively as files are scanned — the response uses Server-Sent Events so matches appear as they are found.
Write or overwrite a file within the workspace.
No tool annotations despite explicit risk levels. Tools marked DESTRUCTIVE (delete_note, delete_file) lack destructiveHint=true. READ_ONLY tools lack readOnlyHint=true. Agents cannot infer safety without annotations.
Error handling is generic. 'Note not found' does not guide recovery (e.g., 'Try list_notes to see available notes'). No distinction between retryable vs user-fixable errors.