Summary
Add cora gain subcommand that tracks local review statistics and enables viral sharing of productivity gains — all privacy-first (no telemetry, local SQLite).
Motivation
- User engagement: Shows tangible value (time saved, issues caught)
- Virality:
--share generates screenshot-ready TUI output for Twitter/LinkedIn
- Retention: Users see ROI, less likely to churn
- Community:
--badge generates markdown badge for README
Data Model
~/.cora/gain.db (SQLite)
CREATE TABLE reviews (
id TEXT PRIMARY KEY,
timestamp TEXT NOT NULL,
mode TEXT NOT NULL, -- staged, branch, scan, unpushed
files_changed INTEGER,
lines_changed INTEGER,
issues_found INTEGER,
issues_by_severity TEXT, -- JSON: {"critical":1,"major":3}
tokens_used INTEGER,
duration_ms INTEGER,
provider TEXT,
model TEXT,
project_hash TEXT, -- hashed project path (privacy)
has_rules_fired BOOLEAN,
has_context_chain BOOLEAN
);
CREATE TABLE issues (
id TEXT PRIMARY KEY,
review_id TEXT REFERENCES reviews(id),
severity TEXT,
category TEXT,
file_path TEXT,
rule_id TEXT,
was_fixed BOOLEAN
);
CLI Interface
# Dashboard (default)
cora gain
# TUI-style output:
# ┌─ Cora Gain ─────────────────────┐
# │ Reviews: 142 Issues caught: 89│
# │ Time saved: ~14h Tokens: 2.1M │
# │ Top provider: openai/gpt-4o │
# └─────────────────────────────────┘
# Period stats
cora gain --week
cora gain --month
# Share (copy-ready text for social)
cora gain --share
# Markdown badge for README
cora gain --badge
Tracking Hooks
Hook into review.rs pipeline:
- Pre-review: record
mode, files_changed, lines_changed, start timer
- Post-review: record
issues_found, tokens_used, duration_ms, provider, model
- Per-issue: record severity, category, rule_id (from rules engine)
Privacy
- All data local at
~/.cora/gain.db
- Project paths hashed (not stored in plain)
- No network calls, no telemetry
--share output includes NO file paths or code content
Implementation
- Add
Gain variant to Commands enum in main.rs
- Create
src/commands/gain.rs with dashboard, period, share, badge sub-commands
- Add tracking hooks in
src/commands/review.rs
- Schema migration in
src/gain/mod.rs
- TUI output formatting
- Tests for all modes
Acceptance Criteria
Summary
Add
cora gainsubcommand that tracks local review statistics and enables viral sharing of productivity gains — all privacy-first (no telemetry, local SQLite).Motivation
--sharegenerates screenshot-ready TUI output for Twitter/LinkedIn--badgegenerates markdown badge for READMEData Model
~/.cora/gain.db(SQLite)CLI Interface
Tracking Hooks
Hook into
review.rspipeline:mode,files_changed,lines_changed, start timerissues_found,tokens_used,duration_ms,provider,modelPrivacy
~/.cora/gain.db--shareoutput includes NO file paths or code contentImplementation
Gainvariant toCommandsenum inmain.rssrc/commands/gain.rswith dashboard, period, share, badge sub-commandssrc/commands/review.rssrc/gain/mod.rsAcceptance Criteria
cora gainshows dashboard with all-time statscora gain --week/--monthshows period statscora gain --sharegenerates social-ready textcora gain --badgegenerates markdown badge