What this project would ship
credit_eventstable: append-only ledger of credit accruals withsubject_user_id,kindenum (project,engagement,adjustment),amount,reference(project P-NNN, action id, or null),note,created_at.credit_balancesview (or materialized view): per-user totals derived fromcredit_events.- Public balance display on the roadmap landing (aggregate posted vs. accrued; founder accrued).
- Per-user dashboard view at
/profile/creditsfor registered users to see their own ledger.
Blocks
- G-037 — pre-launch engagement-based credit accrual rate. Without this, the engagement side of the ledger has no values to record.
- G-038 — project-based credit calibration. Without this, the project side of the ledger doesn't have its values pinned either.
- G-006 / G-033 — broader platform economics. The conversion from pre-launch credits to post-launch Power has to fit inside whatever these resolve.
Why this is its own project, not bundled into the gateway
The ledger is the substrate for both engagement-based and project-based credits. Building it once, with a single representation that both sides write to, prevents the two systems from diverging into two parallel ledgers that have to be reconciled later. That kind of divergence is exactly the failure mode that turns founder Power and contributor Power into incommensurable units.