Context
Phase 5.5 of the unified review skill now captures Claude's critic judgments (elevated vs dismissed findings) and user reactions. But the signal is implicit — inferred from conversation flow. An explicit feedback tool would provide cleaner labels.
Related: 5-model review of ACT integration (2026-03-10) — all models converged on "explicit user feedback > git-diff correlation." Grok proposed a 200 LoC alternative that captures 80% of the value.
Depends on: Phase 5.5 skill capture (done, in SKILL.md)
Related to: #12 (session transcript layer)
Proposal
Add a feedback tool to Squall MCP:
squall feedback <review_id> <model> <score>
review_id: matches the results file timestamp
model: which model's output is being rated
score: 0 (noise), 1 (okay), 2 (actionable)
Schema change
ALTER TABLE model_events ADD COLUMN feedback_score INTEGER DEFAULT NULL;
Recommendation update
Extend query_recommendations to weight by feedback:
bayesian_success = (successes + feedback_up + 2) / (quality_n + feedback_n + 5)
UX
After a review synthesis, Claude can prompt: "Rate any standout models? (e.g. feedback 20260310 codex 2)" — but this should be optional, never blocking.
Implementation (~200 LoC)
- New tool handler in
src/server.rs (~30 lines)
- Schema migration in
src/memory/schema.rs (~10 lines)
- Feedback write path in
src/memory/local.rs (~40 lines)
- Update
query_recommendations in src/memory/global.rs (~30 lines)
- Tests (~80 lines)
Success criteria
- Feedback scores persist in DuckDB and local models.md
memory recommend output reflects feedback-weighted rankings
- No workflow disruption — feedback is always optional
Labels
ACT, memory, UX
Context
Phase 5.5 of the unified review skill now captures Claude's critic judgments (elevated vs dismissed findings) and user reactions. But the signal is implicit — inferred from conversation flow. An explicit feedback tool would provide cleaner labels.
Related: 5-model review of ACT integration (2026-03-10) — all models converged on "explicit user feedback > git-diff correlation." Grok proposed a 200 LoC alternative that captures 80% of the value.
Depends on: Phase 5.5 skill capture (done, in SKILL.md)
Related to: #12 (session transcript layer)
Proposal
Add a
feedbacktool to Squall MCP:review_id: matches the results file timestampmodel: which model's output is being ratedscore: 0 (noise), 1 (okay), 2 (actionable)Schema change
Recommendation update
Extend
query_recommendationsto weight by feedback:UX
After a review synthesis, Claude can prompt: "Rate any standout models? (e.g.
feedback 20260310 codex 2)" — but this should be optional, never blocking.Implementation (~200 LoC)
src/server.rs(~30 lines)src/memory/schema.rs(~10 lines)src/memory/local.rs(~40 lines)query_recommendationsinsrc/memory/global.rs(~30 lines)Success criteria
memory recommendoutput reflects feedback-weighted rankingsLabels
ACT, memory, UX