AI memory that learns from developer feedback. Portable RAG learning system for Claude Code — works on any codebase. Exposes RLHF knowledge base as tools for Claude Code via MCP.
SmartAssist exposes 9 tools with reasonable naming (verb-prefixed) and basic descriptions. However, critical gaps undermine production readiness: parameter descriptions are sparse or missing entirely (e.g., rag_search 'limit' lacks guidance on valid range; boost_lesson 'amount' has no bounds), output schemas are not documented anywhere in the visible code, and error handling is absent. Tool names are clear (rag_search, create_lesson, merge_lessons) but descriptions average ~80 chars, below the 194-char baseline for A+ tools. No tool declares what it returns or how to chain results. The codebase shows sophisticated internal logic (Thompson sampling, similarity profiles, auto-merge heuristics) but none of this is surfaced to the LLM via structured output documentation.
High-level feedback-to-memory workflow
Increase a lesson's score (V2 per-lesson feedback)
Draft a lesson for A/B comparison without storing it
Create new project-specific lesson (dual-path: feedback_log + curated)
Decrease a lesson's score, auto-retire if warranted
Consolidate overlapping lessons into one
View current reliability scores and system stats
No output schemas documented. Tools return unstructured results; LLMs cannot predict fields or chain calls. rag_dashboard returns 'stats' but structure is unknown. create_lesson returns a lesson_id but no confirmation of storage path or metadata.
Numeric parameters lack bounds. boost_lesson 'amount' and demote_lesson 'amount' have no min/max guidance. rag_search 'limit' has no upper bound stated. Unbounded numbers let LLMs pass absurd values (e.g., boost by 1e9, search limit 1e6).
Missing parameter descriptions. rag_dashboard has empty input schema but no explanation of what stats are returned. apply_feedback_protocol 'category' parameter lacks enum or valid values list. No guidance on when to use apply_feedback_protocol vs rag_feedback.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
Record feedback on suggestions
Semantic search across past lessons, corrections, and feedback
No error handling or recovery guidance. Code shows sophisticated duplicate detection and merge logic, but tools do not document failure modes (e.g., what if merge_lessons finds no survivors? What if lesson_id does not exist?). LLMs receive no actionable error messages.
Tool descriptions are generic and lack context. 'Record feedback on suggestions' (rag_feedback) does not explain when to use it vs apply_feedback_protocol. 'View current reliability scores' (rag_dashboard) does not explain what scores mean or how they influence search ranking. Descriptions average 65 chars; baseline is 194.