Shared code intelligence for agent fleets — AST-aware semantic search + multi-agent memory with git-concurrent coordination
Fleet-mem has 6 tools with complete input schemas and descriptions, but quality is uneven. Naming follows verb_noun convention (index_codebase, search_code, memory_store). Descriptions are present but brief (avg ~60 chars, below 194-char baseline). Parameters are typed and mostly described, but lack constraints (enums, ranges, patterns). Output schemas are not documented in the visible code. Error handling is absent, no recovery guidance or categorization. The memory_store tool conflates three distinct operations (store/search/list) into one enum-based tool, violating single-responsibility. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Security: index_codebase and index_files are WRITE operations but lack confirmation/dry-run patterns.
Get the current indexing status for a project or branch.
Index a codebase for semantic search. Runs in background.
Index specific files into a codebase collection.
List all indexed projects and their collection statistics.
Store and retrieve agent memory entries with semantic search.
Semantic search across indexed codebases using vector similarity.
memory_store conflates three operations (store/search/list) into one tool with an enum action parameter. Violates single-responsibility principle, should be split into store_memory, search_memory, list_memory.
No output schemas documented. LLMs cannot infer what fields to expect from tool responses, forcing them to guess or make wasteful follow-up calls. Affects all 6 tools.
No error handling or recovery guidance. Tools lack actionable error messages, categorization (retryable/user-fixable/fatal), or suggestions for next steps. Agents cannot self-correct on failure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | <=2025-11-25 | v2 |
Destructive/write operations (index_codebase, index_files) lack confirmation or dry-run patterns. No tool annotations (destructiveHint) to signal to LLMs that these modify state.
Parameter descriptions lack constraints. 'extensions' and 'ignore_patterns' accept free-form arrays with no format guidance. 'limit' has no min/max bounds. Invites invalid LLM inputs.