Skip to content

Privacy

Z-M-Huang edited this page Mar 20, 2026 · 3 revisions

[English] · Privacy-zh

Privacy

All analysis happens on your machine. The tool never sends session content, file paths, or prompts anywhere.

Data flow overview

Your Claude Code sessions (local only)
  ↓
Transcript JSONL files (~/.claude/projects/)  [never leave your machine]
  ↓
cc-proficiency process (local analysis)
  ↓
Aggregate signals only (counts, ratios, booleans)
  ↓
~/.cc-proficiency/store.json              [local — never uploaded]
  ↓ (if gh authenticated)
Private Gist: cc-proficiency.json        [private — secret URL]
  ↓ (only if you run cc-proficiency share)
Public Gist: cc-proficiency-public.json  [public — scores only]

What stays local

The following data never leaves your machine under any circumstance:

Data Where it lives
Claude Code session transcripts ~/.claude/projects/ (managed by Claude Code)
File paths from sessions Transcripts only, never extracted to store
Prompt content Transcripts only, never stored or uploaded
Tool inputs/outputs Transcripts only, never stored or uploaded
Project names Sanitized slugs in store.json, never uploaded
~/.cc-proficiency/store.json Local store, never pushed
~/.cc-proficiency/queue.jsonl Queue file, never pushed
~/.cc-proficiency/hook.log Hook log, never pushed
~/.cc-proficiency/cc-proficiency.svg Local static badge copy
~/.cc-proficiency/cc-proficiency-animated.svg Local animated badge copy

What goes to your private Gist

If you run cc-proficiency init with gh authenticated, a private (secret) Gist is created at cc-proficiency.json. This contains:

Field Example Description
username "yourname" GitHub username
memberSince "2026-01-01" First session date
recentSessions [{id, date, hours}] Session IDs, dates, and durations (last 90 days)
archivedStats {sessions, hours, projects} Aggregated older data
domains [{id, score, confidence}] Domain scores (5 numbers)
featureScores {hooks: 80, mcp: 60, ...} Mini-bar heatmap values
streak {current, longest, lastActiveDate} Streak data
achievements [{id, unlockedAt}] Achievement IDs and dates
weeklyTrends [{week, domains, hours}] Weekly score history

What is NOT in the private Gist:

  • Session transcript content
  • Prompts or responses
  • File paths or project names
  • Tool call details

The private Gist uses a secret URL. It does not appear on your GitHub profile. Only someone with the exact URL can access it.

The SVG badge

The SVG badge (cc-proficiency.svg) pushed to your Gist contains:

  • Domain score bars and numbers
  • Feature mini-bar heatmap
  • Session count and project count
  • Total hours
  • Achievement count and streak (if available)
  • Your GitHub username (as display label)

It does not contain file paths, project names, tool usage details, or any transcript content.

What goes to the public Gist (leaderboard only)

If you opt in via cc-proficiency share, a second, separate, public Gist is created. It contains only your PublicProfile:

Field Example
username "yourname"
memberSince "2026-01-01"
domains 5 domain scores
streak Current and longest streak
achievementCount Total unlocked achievements
totalSessions Session count
totalHours Hours total
lastUpdated Timestamp

This Gist is public and anyone can view it. It contains no session content, no project names, no file paths. It has only what the leaderboard needs to display.

CI/CD detection

cc-proficiency automatically detects and excludes CI/CD sessions. Sessions running in GitHub Actions, CircleCI, Jenkins, or other CI environments are skipped by the Stop hook. They never enter the queue.

Offline mode

Everything works fully offline. Without gh CLI:

  • Analysis runs locally
  • Badges are saved to ~/.cc-proficiency/cc-proficiency.svg
  • No data leaves your machine at all

Auditing your data

To see exactly what is stored locally:

cat ~/.cc-proficiency/store.json

To see your private Gist content:

gh gist view <your-gist-id> --filename cc-proficiency.json

To see your public profile (if on leaderboard):

gh gist view <your-public-gist-id> --filename cc-proficiency-public.json

Removing your data

To remove everything:

# Remove hook and local data
cc-proficiency uninstall

# Remove the npm package
npm uninstall -g cc-proficiency

# If you joined the leaderboard, leave first
cc-proficiency share --remove

To delete your private Gist:

gh gist delete <your-gist-id>

After uninstall, no data remains on your machine. The Gist must be deleted separately.

Summary table

Data Local Private Gist Public Gist SVG Badge
Session transcripts
File paths / prompts
Project names slug only
Domain scores ✓ (opt-in)
Feature heatmap
Session count ✓ (opt-in)
Total hours ✓ (opt-in)
Achievement IDs count only (opt-in) count only
Streak ✓ (opt-in)
Username ✓ (opt-in)

Clone this wiki locally