RAG-to-MCP Workshop Submission: participant/sarvesh-pune#13
Open
SnowKingSandy wants to merge 3 commits intonasscomAI:masterfrom
Open
RAG-to-MCP Workshop Submission: participant/sarvesh-pune#13SnowKingSandy wants to merge 3 commits intonasscomAI:masterfrom
SnowKingSandy wants to merge 3 commits intonasscomAI:masterfrom
Conversation
… keyword detection → implemented R.I.C.E framework with strict category enum, severity keyword enforcement, reason justification, ambiguity detection, and classifier results for all cities
…ts and no enforcement → implemented sentence-aware chunking (max 400 tokens), 0.6 similarity threshold, mandatory citation, context grounding from retrieved chunks only, and cross-document separation
… and no error enforcement → implemented R.I.C.E framework with explicit CMC policy scope in tool description, mandatory isError on refusals, JSON-RPC 2.0 compliant error handling, tools/list and tools/call implementation
|
Hi there, participant! Thanks for joining our RAG-to-MCP Workshop! We're reviewing your PR for the 3 Use Cases (UC-0A, UC-RAG, UC-MCP). Once your submission is validated and merged, you'll be awarded your completion badge! Next Steps:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
RAG-to-MCP — Submission PR
Name: Sarvesh
City / Group: Pune
Date: 18 April 2026
AI tool(s) used: GitHub Copilot (Claude Haiku 4.5)
Submission Checklist
UC-0A — Complaint Classifier
Which failure mode did you encounter first?
Taxonomy drift — the naive prompt without enum constraints invented category names like "Road Issue" and "Water Problem" instead of using the exact schema values (Pothole, Flooding, Streetlight, etc.).
Which enforcement rule fixed it?
"Category must be exactly one value from the allowed list: Pothole, Flooding, Streetlight, Waste, Noise, Road Damage, Heritage Damage, Heat Hazard, Drain Blockage, Other. No variations or invented names."
UC-0A Fix taxonomy drift and severity blindness: no fixed enum and no keyword detection → implemented R.I.C.E framework with strict category enum, severity keyword enforcement, reason justification, ambiguity detection, and classifier results for all cities
Verification checkpoints:
UC-MCP — MCP Server
Paste your tool description from mcp_server.py TOOL_DEFINITION:
"Answers questions about City Municipal Corporation (CMC) policy documents: HR Leave Policy, IT Acceptable Use Policy, and Finance Reimbursement Policy. Returns answers grounded in retrieved document chunks with cited sources. Questions outside these three documents return a refusal message — this tool does not answer general knowledge questions, budget forecasts, or topics not covered by the indexed CMC policy documents."
Does it state the document scope explicitly?
Yes — names all three policy documents and explicitly states what the tool will not answer.
Run result: python test_client.py --port 8765 --run-all
Did the budget forecast question return isError: true?
Yes — no chunk scored above 0.3 for this query. The refusal template was returned with isError: true and no LLM call was made.
In one sentence — why is the tool description the enforcement?
The agent reads the tool description to decide when to call the tool, so a specific scope description prevents implicit permission to call it for out-of-scope questions.
UC-MCP Fix vague tool description and context breach: no scope stated and no error enforcement → implemented R.I.C.E framework with explicit CMC policy scope in tool description, mandatory isError on refusals, JSON-RPC 2.0 compliant error handling, tools/list and tools/call implementation
Verification checkpoints:
CRAFT Reflection
Which step of the CRAFT loop was hardest across all three UCs?
Constrain — specifically calibrating the similarity threshold in UC-RAG. The README specified 0.6, but empirical testing showed SentenceTransformer (all-MiniLM-L6-v2) produces scores of 0.2–0.5 for semantically related policy text. Lowering to 0.3 threshold while maintaining refusal for truly out-of-scope queries (budget forecasts) required end-to-end testing and observation of actual distance values.
What did you add to agents.md manually that the AI did not generate?
In UC-RAG agents.md, the explicit cross-document separation rule: "If a query spans two documents, retrieve from each separately. Never merge retrieved chunks from different documents into a single blended answer." The AI generated a generic grounding rule but did not restrict per-document retrieval, which is the specific enforcement needed to prevent IT+HR policy blending.
One specific task in your real work where you will use R.I.C.E in the next 7 days:
Building an internal complaint routing bot for a civic platform — complaints are currently routed manually to 12 different departments. I will apply RICE to scope the router strictly to the complaint taxonomy and enforce that misclassified complaints are flagged for manual review rather than auto-routed with false confidence.
Technical Notes