Parent
#1
What to build
The tracer bullet: a Go CLI that produces a real (if minimal) CodeRepute report end-to-end against one GitHub repository using a plain token. It exercises every layer thinly: a Provider interface with a GitHub adapter fetching the subject's authored PRs, a pure metrics stage computing one metric (PRs authored/merged), a versioned schema-v0 report carrying subject identity (platform, username, immutable account ID), a coverage stamp (repo list, time window, token scope), and a mandatory verification block (value: unverified for local runs), plus a minimal self-contained HTML rendering.
Authorship must be resolved via the GitHub API bound to the account ID — not git author emails — from day one. The tool must use only API metadata; it never clones the repo or reads file contents.
This slice fixes the module seams (provider / metrics / report / render / CLI) that every later slice plugs into.
Acceptance criteria
Blocked by
None - can start immediately
Parent
#1
What to build
The tracer bullet: a Go CLI that produces a real (if minimal) CodeRepute report end-to-end against one GitHub repository using a plain token. It exercises every layer thinly: a
Providerinterface with a GitHub adapter fetching the subject's authored PRs, a puremetricsstage computing one metric (PRs authored/merged), a versioned schema-v0 report carrying subject identity (platform, username, immutable account ID), a coverage stamp (repo list, time window, token scope), and a mandatory verification block (value:unverifiedfor local runs), plus a minimal self-contained HTML rendering.Authorship must be resolved via the GitHub API bound to the account ID — not git author emails — from day one. The tool must use only API metadata; it never clones the repo or reads file contents.
This slice fixes the module seams (provider / metrics / report / render / CLI) that every later slice plugs into.
Acceptance criteria
codereputeCLI runs against a real GitHub repo with a token and producesreport.json+report.htmlmetricshas table-driven unit tests; the GitHub adapter has tests against recorded HTTP fixtures (httptest);reporthas marshal→validate→unmarshal round-trip testscollaboration,cadence,coverage,verification);ActivitySetcarries its full v1 type shape (fields may be unpopulated); metrics are implemented as one file per concern registering into a metrics registry; the renderer composes per-section templates. Follow-up issues extend by adding files, not editing shared ones.Blocked by
None - can start immediately