What you clone
A public-safe template, not someone else’s operations.
The repository ships with example configs, prompts, schemas, scripts, a static landing page, and opinionated docs. Real portfolio data stays local.
Codex-first portfolio governance
Run a scheduled Codex or Claude task, reconcile GitHub activity through `gh`, append only what is new, and catch work that never made it into the board.
$ node scripts/reconcile.mjs --config config/sources.local.json
{ "runId": "run-2026-08-05T12:00:00.000Z", "newEventCount": 28, "newExceptionCount": 2 }
$ node scripts/render-report.mjs
{ "projects": 4, "open_exceptions": 2, "notable_events": 12 }
What you clone
The repository ships with example configs, prompts, schemas, scripts, a static landing page, and opinionated docs. Real portfolio data stays local.
How it runs
No public ingest endpoint, no webhook signing, no mandatory database. Start with a repeatable task loop and add complexity only when latency becomes a real problem.
Map repos, Projects, owners and exception rules through local JSON config.
Collect repo events, commits, issues, PRs and Project items using GitHub CLI and GraphQL.
Persist only new normalized events. Re-run safely with event IDs and dedupe keys.
Flag unregistered work with evidence, severity and a next step.
Public capability catalog
Why this shape
Current limits