Planning + knowledge layer for AI coding agents. Routes any task to the best of 60+ curated specialists, returns a structured PlanCard (steps, gotchas, success criteria) with progressive memory, and ships an optional Claude Code status line.
forgent exposes 12 tools with complete input schemas and descriptions. Naming follows verb_noun convention (advise_task, report_outcome, forge_agent, list_agents, search_agents, show_agent, recall_memory, memory_stats, route_only, memory_view, memory_write). Descriptions are substantive (100-300 chars typical), explaining WHAT each tool does and WHEN to use it. However, output schemas are not documented, LLMs cannot see what fields PlanCard, RoutingDecision, or memory responses contain. Parameter descriptions are present but some lack format/constraint details (e.g., 'session_id' lacks length/format guidance). Error handling is minimal, no recovery guidance, no categorization of retryable vs fatal errors. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (READ_ONLY vs WRITE). Security: no secrets in params (good), but no audit trail or permission gate documentation.
Plan a task and return a PlanCard for you (the host LLM) to execute. This is the PRIMARY tool. Call it for any non-trivial task. It will: 1. Route to the best-matching knowledge pack from 60+ curated agents. 2. Auto-forge a new knowledge pack if none fits (confidence < 0.4). 3. Recall relevant memory from prior sessions in this project. 4. Pull past outcomes on similar tasks (so prior failures surface as gotchas). 5. Build a PlanCard: steps, gotchas, success criteria, knowledge synthesis. Then display the plan card block to the user, work through the steps with your own tools, and call `report_outcome` when finished.
Synthesize a new specialist knowledge pack on demand. When the curated catalog doesn't cover a task class you care about, ask the forge to design a specialist for it. The new pack gets a full system prompt, capabilities, and a category — and is persisted so it's reused next time.
List curated agents in the registry with optional filters.
Show counts of what's in the memory store by type.
Drill into a specific memory path to retrieve detailed context. Used when a PlanCard's memory index points at a relevant path (e.g. /outcomes/backbone/, /notes/auth/).
Output schemas not documented. LLMs cannot see what fields PlanCard, RoutingDecision, or memory responses contain. This forces agents to guess at response structure and risks failed downstream tool calls.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are marked with Risk levels in comments but not exposed to the MCP client. Agents cannot distinguish safe reads from destructive writes without parsing descriptions.
Parameter constraints lack specificity. 'session_id' described as '8+ char' but no regex or length bounds in schema. 'limit' parameters default to 10/5 but no min/max documented. LLMs may pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Leave breadcrumbs in memory at /notes/<topic>/ that future sessions on the same project should know (e.g. locations, conventions, gotchas you discovered).
Query the memory store by keyword. Returns relevant prior context from past sessions in this project.
Record whether a planned task worked. Call this after every advise_task. Closes the feedback loop: outcomes are recalled by the planner on future tasks and surfaced as gotchas, so the system learns from failure without manual curation. Routing also down-weights agents with repeated failures on similar tasks.
Re-plan mid-execution when the original PlanCard no longer fits. Classic pattern from Cline/Roo Code: the model is halfway through a plan, discovers the approach is wrong (misread the codebase, new constraint, step that can't work), and needs a fresh plan that accounts for what WAS tried. forgent produces a v2 PlanCard preserving the session id so memory and outcome tracking stay linked to the original task.
Return the routing decision without planning. Cheaper than advise_task — just picks the best agent(s) and returns the RoutingDecision with confidence and reasoning.
Keyword search the registry for agents matching a query.
Print the full system prompt and metadata for a curated agent.
Error handling minimal. No recovery guidance (e.g., 'If session_id not found, call advise_task again'). No categorization of retryable vs fatal errors. Agents cannot self-correct on failures.
No pagination guidance for list_agents, search_agents, recall_memory. If registry grows to 100+ agents or memory store to 1000+ entries, unbounded results will exhaust context window.