Multi-product autonomous agent platform with FastAPI backend, React UI, and extensible tool system for managing products, workstreams, objectives, and delegating tasks to specialized sub-agents.
Adjutant defines 12 tools with complete input schemas and descriptions. Naming follows verb_noun convention (delegate_task, save_note, create_review_item, etc.). Descriptions are present and contextual (avg ~120 chars), meeting the 10-1024 char baseline. However, output schemas are entirely undocumented, no tool specifies what fields are returned, breaking the pattern:tool-chain requirement. Parameters lack type constraints (e.g., product_id is a bare string with no format guidance). Error handling is absent from all tool definitions. Destructive tools (delete_product, delete_workstream) lack confirmation/dry-run patterns. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present despite MCP support. Parameter descriptions are minimal (avg ~40 chars) and lack dependency hints or validation rules.
Create a new objective (goal or target) for a product.
Create a new product in Adjutant.
Add an item to the user's approval queue before taking any consequential, irreversible, or public-facing action.
Add a new workstream (operational area) to a product.
Delegate a task to a specialized sub-agent for autonomous execution.
Permanently delete a product and all its data. Irreversible.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., product_id returned by create_product). Breaks tool-chain composition.
Destructive tools (delete_product, delete_workstream) lack confirmation/dry-run patterns. Agents can permanently delete data without user approval.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. LLMs cannot distinguish safe reads from destructive writes without parsing descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Remove a workstream from a product.
Read previously saved notes, optionally filtered by keyword.
Save an important note, decision, or action item for later retrieval.
Update progress on an active objective after completing work that advances a measurable goal.
Update a product's display info or brand configuration.
Change the status of a workstream (running / warn / paused).
Parameter descriptions lack validation rules and constraints. E.g., product_id has no format guidance, color has no hex validation hint, status enums are defined but not explained in descriptions.
No error handling guidance. Tools lack recovery hints (e.g., 'If product not found, call list_products() first'). LLMs cannot self-correct on failures.