A local-first outline editor built with TanStack Start and TanStack DB
dotflowy provides 12 tools with consistent naming (verb_noun pattern: search_nodes, add_node, delete_node, etc.) and descriptions present for all tools. However, parameter descriptions are minimal or absent in most tools. Input schemas show type declarations but lack detailed constraints, enums, or format specifications. Output schemas are not documented. Error handling guidance is absent. The server demonstrates basic structure but lacks the depth needed for production-grade agent integration.
Add a new node to the outline at a specified location
Add a subtree of nodes to the outline
Add a node or subtree to today's daily note
Delete a node from the outline
Export the outline or a subtree as OPML format
Retrieve the complete outline structure as formatted text
Import an OPML file into the outline
Output schemas not documented. LLMs cannot infer what fields are returned by tools like get_outline, add_node, or export_opml. This forces agents to guess at response structure and breaks tool chaining.
Parameter descriptions are minimal or missing. 'parentId' is described as 'The parent node ID' but does not explain what null means, whether it refers to root, or how to discover valid parent IDs. 'index' lacks guidance on bounds or behavior when out of range.
No error handling guidance. Tools like delete_node and import_opml are destructive but provide no recovery hints. Agents cannot distinguish retryable errors from user-fixable ones.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Create a mirror reference to an existing node
Create a mirror reference to a node in today's daily note
Move a node to a different parent
Search the outline for nodes matching a query string
Update a node's text, completion status, or other fields
No confirmation or dry-run pattern for destructive operations. delete_node and import_opml (which can overwrite content) lack a confirmation step, risking accidental data loss when agents make mistakes.
No pagination or result limits documented. get_outline may return arbitrarily large outlines; no indication of max size, pagination support, or truncation behavior. Large responses risk context window exhaustion.