Sarkar 100 — Devpost Submission


Inspiration

On Chaitra 13, 2082 BS — March 27, 2026 — Nepal's Council of Ministers approved 100 governance reform tasks in a single sitting. The list covered everything from reducing federal ministries from 21 to 17, digitizing citizenship services, forming an anti-corruption asset investigation committee, launching a PM Delivery Unit, providing free hospital beds to the poor, and removing party student unions from universities.

It was the most concrete, time-bound governance commitment Nepal had seen in years. Many tasks had deadlines of just 7, 15, or 30 days.

We are students who watched this announcement closely. We opened the official PDF. We read all 100 tasks. Then we waited.

Three weeks passed. A month. Then 74 days.

There was no public tracking dashboard. No ministry progress reports. No way for an ordinary citizen to ask: "Did the government actually do task #42? Was the anti-corruption committee ever formed? Has the PM Delivery Unit started?"

Nepal has a long history of governments making commitments and filing them away. Reports sit unread. Deadlines pass silently. There is no accountability infrastructure for citizens.

We built Sarkar 100 because a promise with no tracker is just a press release.


What it does

Sarkar 100 is a civic AI accountability system that tracks all 100 of Nepal Government's official governance reform tasks in real time.

For citizens, it provides a bilingual (Nepali/English) dashboard where you can:

  • See which of the 100 tasks are completed, in progress, overdue, or delayed
  • Filter by ministry, category, deadline, or priority
  • Click any task to read the full commitment, deadline, responsible ministry, and logged evidence

Under the hood, four AI agents run continuously:

The News Monitor Agent is the core innovation. Every morning at 6 AM Nepal time, it automatically scans eight Nepali news sources — Gorkhapatra, Setopati, Onlinekhabar, My Republica, Kantipur, Ratopati, The Himalayan Times, and Nepali Times — using Gemini with Google Search grounding. It finds news about each task cluster, determines whether a task has started, been completed, or been delayed, and writes a timestamped update with evidence and source directly into MongoDB.

The Query Agent answers citizen and journalist questions by reading live from MongoDB via the MongoDB MCP server, so every answer reflects the latest state of the database.

The Alert Agent runs after each news scan, auto-flags tasks that are severely overdue with zero updates, ranks ministries by accountability score, and writes daily alert reports.

The Orchestrator Agent sits above all three, routing incoming queries to the right specialist and maintaining conversation context across turns.


How we built it

We started with the original government PDF — the official Council of Ministers document from Chaitra 13, 2082 BS — and manually read all 100 tasks. We extracted each task's title in both Nepali and English, identified the responsible ministry, noted the deadline (ranging from "immediate" to "1000 days"), and assigned a priority level. This produced a 100-document seed dataset that we imported into MongoDB Atlas using a Node.js seed script.

For the agent layer, we used Google Cloud Agent Builder with Gemini as the reasoning model. We designed four agents with distinct system prompts: the Orchestrator routes and delegates, the News Monitor searches and updates, the Query Agent retrieves and explains, and the Alert Agent audits and flags. Each agent accesses MongoDB through the MongoDB MCP server, which lets them read and write task data as a natural part of their reasoning loop rather than via separate API calls.

The News Monitor Agent runs as a Google Cloud Function triggered daily by Cloud Scheduler. It processes 15 task clusters per run, using Gemini's Google Search grounding to find Nepal-specific news, then writes structured updates — status, evidence, source URL, confidence level — back into the update_log array of each task document.

The citizen dashboard is a single-page HTML/JS application deployed on Google Cloud Run. It connects to MongoDB Atlas directly and renders live task data with filtering, search, and a modal detail view where users can also manually log updates they find themselves.

The entire stack costs under $0.50 per month to run.


Challenges we ran into

The language problem was the first and most persistent challenge. All 100 tasks are written in Nepali Devanagari script, with official terminology that does not translate cleanly. We had to write bilingual titles for all 100 tasks ourselves, ensuring that the English version preserved the exact scope and deadline of the Nepali original without softening or generalizing.

News signal is weak. Nepal's digital news ecosystem is fragmented. Many significant government actions — a committee being formed, a draft bill being circulated — are reported in a single Setopati article that disappears from search results within days. Getting Gemini to reliably find and correctly interpret low-signal Nepali news required careful prompt engineering, confidence scoring, and a fallback to "no news found" rather than hallucinating progress.

Status ambiguity. Many tasks have sub-tasks within a single numbered item. Task #85, for example, covers free hospital beds, digital health records, attendance monitoring, burn wards, and air ambulances — all in one entry. We had to decide whether to mark a task in_progress if one sub-task started, or hold it to completed only when all sub-tasks were done. We chose the stricter interpretation: a task only becomes "completed" when the primary deliverable is done, not a sub-component.

Deadlines in Bikram Sambat. The original document uses the Nepali calendar (BS). Converting Chaitra 13, 2082 to the correct Gregorian date, and then computing all relative deadlines accurately, required careful calendar arithmetic. One wrong conversion would cascade into every overdue calculation in the system.

Keeping agents honest. LLMs can hallucinate news that does not exist, especially in low-resource languages. We addressed this with confidence scoring (high/medium/low), a strict instruction to return an empty array when no news is found, and a cross-check that compares the claimed source URL against the actual search results.


Accomplishments that we're proud of

We are proudest of the fact that this is built on a real government document tracking real commitments made to real Nepali citizens. This is not a demo with fake data. Every one of the 100 tasks in our database is a verbatim entry from the official Council of Ministers decision.

We are proud that the system works in both Nepali and English — a citizen in Kathmandu can ask "अर्थ मन्त्रालयका कार्यहरू के के छन्?" and get a direct, data-backed answer.

We are proud of the News Monitor Agent's architecture — the idea of an agent that wakes up every morning, reads the news, and updates a civic accountability database without any human input is exactly the kind of automation that makes governance transparency sustainable. It does not require an NGO to maintain it or a journalist to update it manually.

We are proud that within 74 days of the original announcement, we can already show that 62+ of the 100 tasks are overdue — a fact that no Nepali news outlet had compiled in one place. That number alone justifies the existence of this tool.

And we are proud that the entire system, from MongoDB Atlas to Cloud Run to Cloud Scheduler, costs less than one cup of coffee per month to operate.


What we learned

We learned that civic tech is most powerful when it is specific. A generic "government tracker" for Nepal would have no traction. A tracker for exactly these 100 tasks, approved on exactly this date, with exactly these deadlines, is a different tool — it is something journalists, civil society organizations, and engaged citizens can point to and argue from.

We learned how to design multi-agent systems where each agent has a narrow, well-defined job. The temptation is to build one omnipotent agent. The reality is that a query agent optimized for retrieval accuracy performs better than an orchestrator trying to also do news searches and also generate alerts. Separation of concerns applies to agents exactly as it applies to software modules.

We learned that MongoDB's document model is a natural fit for civic data. Each task is a document with a nested update_log array that grows over time. Querying by ministry, deadline date range, or overdue status is a single find query. The MCP integration means agents can read and write this structure without a separate API layer.

We learned that Gemini's Google Search grounding is genuinely useful for low-resource language news — but it requires careful prompt design to prevent the model from confabulating when no search results match the query. The discipline of returning an empty array rather than guessing was the most important guardrail we built.

We also learned a great deal about Nepal's governance structure — which ministries own which reform areas, how the Bikram Sambat calendar works, and how much of Nepal's public administration remains deeply analog even as the government commits to digital transformation.


What's next for Sarkar 100

Expand to all 100 tasks with full sub-task tracking. Right now the dashboard tracks each numbered item as one unit. Many items contain 3-5 distinct deliverables. The next version will break these into atomic sub-tasks, each with its own status and deadline, for finer-grained accountability.

SMS and WhatsApp alerts for citizens. Most Nepali citizens do not use a web dashboard. We plan to integrate with Twilio to send weekly SMS summaries — "3 tasks due this week. Task #97 (Blue Bus) is 26 days away. Task #9 (Ministry Merger) is 44 days overdue." — so accountability reaches people who are offline.

Crowdsourced updates from journalists and civil society. Any citizen should be able to submit evidence of a task being completed — a news link, a government notice, a photo of a new office opening. The system will queue these for agent review and merge credible submissions into the official update log.

Ministry scorecards. A public-facing page ranking each ministry by its on-time completion rate, average days overdue, and tasks with no news whatsoever. This gives civil society a single shareable number for each ministry's accountability record.

Open the API. Any researcher, journalist, or NGO should be able to query api.sarkar100.np/tasks?ministry=Home&status=overdue and get a JSON response. Making the data freely accessible in a machine-readable format multiplies its civic value.

Extend the model to provincial and local government. All seven provinces and 753 local governments in Nepal also make commitments. The Sarkar 100 architecture — PDF → seed data → MongoDB → news agent → dashboard — is replicable for any government body that publishes a structured commitment list. We want to become the accountability infrastructure layer for all of Nepali public governance.

The name says 100. The ambition is much larger.

Built With

Share this project:

Updates