AI coding agent runtime with a Turing-complete .at flow DSL, supporting headless daemon, CLI, and TUI interfaces
Atman provides 6 tools with complete JSON schemas and descriptions, but quality is uneven. Tool names lack action verbs (output.read, context.record, memory.* are noun-heavy). Descriptions are present but brief (avg 80 chars, below 194-char baseline). Parameters are typed but lack detailed constraints and usage guidance. No error handling guidance visible. Tools appear to be session/memory management utilities rather than domain-specific agents, limiting practical applicability. Schema completeness is good, but descriptions and parameter documentation need expansion to meet production standards.
Record context information with a key and content for agent memory and decision-making
Get total count of messages in session history with optional role filtering
Read session history with pagination and optional role filtering
Search through session history for messages matching a query
Get the most recent N turns from session history
Read a registered oversized tool output from the current session. Use line_offset + line_limit for page-by-page continuation, byte_offset + byte_limit for byte continuation, or query + match_index + match_limit to search matching lines. The returned next_offset/next_match fields are ready for the next call; output_id cannot address arbitrary paths.
Tool names lack action verbs. 'output.read', 'context.record', 'memory.history.search' use noun-first naming instead of verb_noun pattern (get_output, record_context, search_history). LLMs infer intent from verb-first names; noun-first names reduce clarity.
Descriptions are too brief (avg 80 chars vs 194-char baseline). 'Record context information with a key and content for agent memory and decision-making' lacks WHEN to use, prerequisites, or side effects. Expand to 100-200 chars with actionable guidance.
Parameter descriptions lack constraints and format guidance. 'query' in memory.history.search has no length limits, regex patterns, or examples. 'offset' and 'limit' in memory.history.read lack min/max bounds. Add explicit constraints to prevent invalid LLM inputs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
No error handling guidance visible in tool definitions. Tools do not document what happens on invalid input (e.g., output_id not found, offset out of range, query too long). Add recovery hints like 'If output_id is invalid, call memory.history.read() to find valid IDs.'
No output schema documentation. Tools return results but no schema is visible for response structure (e.g., what fields does memory.history.read return? Is it an array of messages? What fields per message?). Document return types so LLMs know what to expect.