尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A GST DRC-01C notice tells a taxpayer that their claimed input tax credit does not match what suppliers reported. It does not tell them why. This prototype adds that missing layer.
Live demo: https://prototype-blue-three.vercel.app
Repository: https://github.com/argaur/gst-itc-mismatch-explained
Built for Build What Moves India, a hackathon by Varun Mayya backed by OpenAI. The brief: pick a real problem on an Indian public-service platform and fix the failing moment in the process, not just the screen.
• Kriti Kandhari Kapoor
• Gaurav Gupta查看完整 README ↗A GST DRC-01C notice tells a taxpayer that their claimed input tax credit does not match what suppliers reported. It does not tell them why. This prototype adds that missing layer.
Live demo: https://prototype-blue-three.vercel.app Repository: https://github.com/argaur/gst-itc-mismatch-explained
Built for Build What Moves India, a hackathon by Varun Mayya backed by OpenAI. The brief: pick a real problem on an Indian public-service platform and fix the failing moment in the process, not just the screen.
A GST DRC-01C notice shows one number: the gap between input tax credit claimed in GSTR-3B and input tax credit available in GSTR-2B. The government portal gives the taxpayer that gap and a form to reply to it. It does not show which invoice or supplier record caused the gap.
Most recipients do not have a retained accountant or a paid reconciliation tool on hand when the notice arrives, and the reply window is fixed. A missed or wrong reply can block a later GSTR-1 filing.
It sits between the notice and the reply. It takes the same aggregate mismatch, traces it row by row against a purchase and claim record, and shows the taxpayer the exact evidence behind the number before they write anything.
Round 1 shipped the core flow:
exact_match, missing_in_2b, possible_duplicate, later_period_match).Round 2 added two things a mentor asked for directly:
The reconciliation math and the row classification are deterministic code, checked by tests. OpenAI only explains and drafts language around findings that code has already verified. It never invents a number.
Real: the reconciliation logic, the schema validation, the OpenAI call, the error handling, the deployed app.
Synthetic: the notice, the taxpayer, the source records, the amounts, and the IDs. No live GST system, GST API, PAN, Aadhaar, OTP, or payment data is used anywhere. The app discloses this on every screen: INDEPENDENT SYNTHETIC PROTOTYPE · NOT GSTN · NOT TAX ADVICE.
prototype/ the deployed app
src/domain/ deterministic reconciliation and risk logic
src/contracts/ frozen types for findings, evidence, and the explanation envelope
src/views/ the four-step citizen flow (notice, evidence, explanation, review)
api/ Vercel functions: explain.ts, explain-risk.ts, ask.ts, supplier-filing.ts
tests/ 80 tests covering domain logic, validators, and the API layer
research/ secondary research on the 10 platforms in the hackathon brief
memory/ project decision log and session history
PRD.md sealed product requirements for the DRC-01C problem and mechanism
IMPLEMENTATION_PLAN.md the agreed build plan and stage gates
cd prototype
npm install
npm run dev # local dev server
npm test # 80 tests
npm run build # type-check and production build
The OpenAI-backed endpoints (api/explain.ts, api/explain-risk.ts, api/ask.ts) need an OPENAI_API_KEY environment variable to call the live model. Every deterministic path (reconciliation, risk classification, evidence display) works without it.
The prototype/ directory is a standalone Vercel project (root directory set to prototype), deployed to production on every push to main.