gitwtfhub

wtf is civic-pulse?

celiknimani/civic-pulse — explained in plain English

Analysis updated 2026-05-18

3TypeScriptAudience · developerComplexity · 4/5LicenseSetup · moderate

TL;DR

Open-source framework for tracking government promises, parliament activity, and ministerial performance, with a Claude-powered ingestion agent that opens PRs.

Mindmap

mindmap
  root((civic-pulse))
    Inputs
      Government sites
      Parliament transcripts
      Trusted news
      sources.yaml
    Outputs
      Promise tracker
      Parliament radar charts
      Org chart with scores
      Automated pull requests
    Use Cases
      Track election promises
      Monitor a parliament
      Score ministerial performance
      Localize for a new country
    Tech Stack
      TypeScript
      Node 20
      Claude
      Cloudflare Pages

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Launch a country-specific government accountability tracker from a template

REASON 2

Track election promises with status, dated history, and sources

REASON 3

Visualize parliament activity with speech counts and topic radar charts

REASON 4

Run a Claude ingestion agent that opens PRs from official sources for human review

What's in the stack?

TypeScriptNode.jsClaudeYAML

How it stacks up

celiknimani/civic-pulsearpitbhalla/ts-backendbrijeshmarch16/ai-interview
Stars333
LanguageTypeScriptTypeScriptTypeScript
Last pushed2022-06-09
MaintenanceDormant
Setup difficultymoderatemoderatemoderate
Complexity4/53/53/5
Audiencedeveloperdeveloperpm founder

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 1h+

Needs Node 20.10 or newer plus an Anthropic API key for the agent and a GitHub token for the automated PRs.

MIT license lets anyone use, modify, and distribute the code, including commercially, as long as the copyright notice is kept.

Wtf does this do

civic-pulse is an open-source framework for tracking government accountability in any country. It lets a civic-tech team monitor election promises, parliamentary activity, and ministerial performance from one site. The repository ships only the framework, not real-world data. The README points to zotimi.com as the reference deployment that has tracked the Kosovo government since 2025, but that production dataset is kept in a separate private repo. A team that forks the project gets several built-in pieces. There is a promise tracker that categorizes commitments and labels each one Completed, In Progress, Delayed, or Pending, with dated history and sources. There is a parliament analytics view that counts speeches, words, and sessions per member and shows topic distribution as radar charts. There is also a government org chart that links ministries to the promises they own and scores their recent performance. Every route is prerendered to HTML for SEO, and the site can deploy to Cloudflare Pages, Vercel, Netlify, or any static host. The most distinctive piece is the ingestion agent. It is powered by Claude and reads a sources.yaml file that lists official government sites, parliament transcripts, and trusted news. It pulls in updates, extracts structured data with confidence scores, and opens a pull request for human review. Nothing is auto-merged. The agent can run on a cron schedule or be invoked as a subagent from Claude Code, and its extraction prompts live as reusable skills under .claude/skills/. The project defaults to English so contributors anywhere can read the demo, and supports locale files for additional languages. Currently shipped translations include English, Albanian, and German. To run a new country, a maintainer copies countries/example/ to a new code, fills in config and categories, lists the URLs to monitor, and runs the agent. Node 20.10 or newer is required, plus an Anthropic API key for the agent and a GitHub token for the automated PRs. The project is MIT-licensed.

Yoink these prompts

Prompt 1
Walk me through copying countries/example/ into a new country and wiring up its sources.yaml
Prompt 2
Show me how the Claude ingestion agent extracts promise updates and opens a pull request
Prompt 3
Help me deploy civic-pulse to Cloudflare Pages with prerendered HTML for SEO
Prompt 4
Add a new locale alongside English, Albanian, and German for a country I want to track
Prompt 5
Explain how the parliament analytics view computes the radar chart of topic distribution

Frequently asked questions

wtf is civic-pulse?

Open-source framework for tracking government promises, parliament activity, and ministerial performance, with a Claude-powered ingestion agent that opens PRs.

What language is civic-pulse written in?

Mainly TypeScript. The stack also includes TypeScript, Node.js, Claude.

What license does civic-pulse use?

MIT license lets anyone use, modify, and distribute the code, including commercially, as long as the copyright notice is kept.

How hard is civic-pulse to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is civic-pulse for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.