Personal knowledge pipeline: ingest URLs, extract content, tag and search
noptiera has 2 tools with basic schemas and descriptions present, but significant quality gaps. Both tools have non-empty descriptions (10-100+ chars) and input schemas with types defined, meeting baseline documentation presence. However, descriptions are functional but lack depth, they state WHAT the tool does but not WHEN to use it, what prerequisites exist, or what the agent should expect. Parameter descriptions are present but minimal (e.g., 'URL to ingest' for `url`, 'Search query text' for `query`). Neither tool documents output schema, the code returns plain strings, not structured objects, which forces LLMs to parse unstructured text. No parameter constraints (enums, min/max) are declared. Error handling is minimal: the code catches exceptions but returns generic messages without recovery guidance. The `ingest` tool modifies state (creates indexes) but the description doesn't explicitly state this is a write operation. The `search` tool defaults to top_k=5 but doesn't explain why that's the default or what happens if results exceed the limit. No security documentation (what permissions does each tool require?). Overall, the server meets the bare minimum for tool registration but falls short of production-quality definitions that would guide LLM reasoning effectively.
Download, parse, tag and index an article from a URL.
Search indexed articles by topic or question.
Output schemas not documented. Both tools return plain strings, not structured objects. LLMs cannot plan downstream operations or extract typed data from responses.
Descriptions lack actionable context. 'Download, parse, tag and index an article from a URL' does not explain when to call this instead of `search`, whether it's idempotent (it supports `force` flag but this is not documented in the description), or what the agent should do if it fails.
State-modifying tools lack explicit documentation. `ingest` creates/updates indexes but the description does not say 'This tool modifies state and stores data.' Agents need to know which calls are safe to retry.
Parameter constraints not declared. `top_k` defaults to 5 but no min/max bounds are specified. Free-form numeric parameters invite unbounded LLM-generated values that could break pagination or performance.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 47 | - | v1 |
Error handling provides no recovery guidance. If a tool fails, the LLM receives only the exception message with no suggestion for next steps (retry, call a different tool, ask user for input).
No security or permission documentation. Tools do not declare what access levels are required (e.g., does `ingest` require write access to a knowledge base? Does `search` require read access?). No audit trail guidance.