-
Notifications
You must be signed in to change notification settings - Fork 0
Gamification Guide
[English] · Gamification-Guide-zh
cc-proficiency is a progression system for Claude Code. Sessions earn points, good habits unlock achievements, and your badge shows how much of the tool you actually use.
This guide walks through going from a fresh install to a maxed-out badge.
- How the progression system works
- Your first day
- Week one: building momentum
- Power user: intermediate level
- Expert: advanced techniques
- Domain walkthrough
- Achievement unlock guide
- Feature mini-bars: 0 to 100
- The streak system
- Leaderboard
- Depth scoring: the math
- Badge embedding
- Anti-gaming transparency
Your badge evolves as you accumulate sessions:
| Phase | Sessions | What happens |
|---|---|---|
| Calibrating | 0--2 | Config signals boosted 2x. Your setup efforts count double. Badge shows a setup checklist. |
| Early | 3--9 | Config boost drops to 1.5x. Behavior signals start counting at full weight. Domain bars and feature mini-bars appear. |
| Full | 10+ | Behavior boosted to 1.15x, config at 1x. This is the steady state -- your real usage patterns drive the score. |
In practice: Set up your CLAUDE.md, hooks, and plugins early. During calibration, config alone can push a domain to ~50. After 10 sessions, your actual behavior (investigation chains, prompt structure, agent usage) determines the score.
Every rule in the engine checks one of two things:
| Type | Source | Cap Per Domain |
|---|---|---|
| Config | Files on disk: CLAUDE.md, hooks, plugins, .claude/rules/, etc. |
25 points max |
| Behavior | Transcript evidence: tool sequences, prompt patterns, agent usage | 75 points max |
Config gets you started. Behavior gets you to 100.
| Domain | What it rewards |
|---|---|
| CC Mastery | Knowing your tool: CLAUDE.md, hooks, plugins, skills, plan mode, rules |
| Tool & MCP | Smart tool usage: investigation chains, Read-before-Edit, MCP servers |
| Agentic | Orchestration: subagents, parallel dispatch, worktrees, background tasks |
| Prompt Craft | Communication: structured requests, code blocks, error traces, file references |
| Context Mgmt | Memory: CLAUDE.md updates, memory files, sustained multi-session projects |
Each domain is 20% of your overall score. You cannot compensate for a weak domain by over-investing in another.
Note: Scores are displayed as percentages of each domain's theoretical maximum, not raw points out of 100. Different domains have different achievable ceilings based on their rule mix and phase scaling, so percentage normalization ensures fair comparison across domains.
Goal: Install, configure, get into the Calibrating phase.
npm install -g cc-proficiency
cc-proficiency initThis installs the Stop hook, runs an initial analysis, and creates your Gist badge (if gh is authenticated).
Points from init alone: 0. You need config or sessions first.
If you do not have a global CLAUDE.md yet:
mkdir -p ~/.claude
cat > ~/.claude/CLAUDE.md << 'EOF'
# My Preferences
## Code Style
- Use TypeScript strict mode
- Prefer functional patterns
- Always add error handling
## Project Conventions
- Tests go in `tests/` mirroring `src/`
- Use vitest for testing
EOFRules triggered:
| Rule | Points | Domain |
|---|---|---|
ccm-claudemd-exists |
+5 | CC Mastery |
Use @import directives or ## Section Headers in your CLAUDE.md:
@import .claude/rules/code-style.md
@import .claude/rules/architecture.md
# My Preferences
## Code Style
...
## Architecture
...Bonus rule triggered:
| Rule | Points | Domain |
|---|---|---|
ccm-claudemd-structured |
+10 | CC Mastery |
# In Claude Code settings, add a plugin:
claude plugins add @anthropic/github| Rule | Points | Domain |
|---|---|---|
ccm-plugins-installed |
+5 | CC Mastery |
Just use Claude Code normally. Work on a real task. When the session ends, the hook fires automatically.
cc-proficiency analyzeFirst session unlocks:
| Achievement | Description |
|---|---|
| First Steps | Complete your first session |
After your first day, expect:
- CC Mastery: 15--25 (config signals boosted during calibration)
- Other domains: 0--15 depending on session behavior
- 1 achievement unlocked
Goal: Hit 3 sessions (Early phase), fill out config signals, start accumulating behavior evidence.
Work normally. At 3 sessions, the phase shifts from Calibrating to Early. Config boost drops from 2x to 1.5x, but behavior signals now count at full weight.
Add a custom hook to your Claude Code settings. For example, a pre-commit lint check:
{
"hooks": {
"PreToolUse:Edit": [
{ "command": "echo 'Editing file: $CC_FILE_PATH'" }
],
"PostToolUse:Bash": [
{ "command": "echo 'Bash command completed'" }
]
}
}| Rule | Points | Domain |
|---|---|---|
ccm-hooks-exist |
+10 | CC Mastery |
ccm-hooks-with-matchers |
+15 | CC Mastery (if 2+ hooks with tool matchers) |
In your project root:
cat > CLAUDE.md << 'EOF'
# Project: my-app
## Architecture
- src/ -- source code
- tests/ -- vitest tests
## Conventions
- Use kebab-case for filenames
- All exports must have JSDoc
EOF| Rule | Points | Domain |
|---|---|---|
ccm-project-claudemd |
+10 | CC Mastery |
During sessions, let Claude follow this pattern:
- Search first (Grep or Glob) to find the relevant code
- Read the file to understand it before changing anything
- Edit with precision, targeted edits not rewrites
This triggers tool-investigation-chain (+15 per occurrence, up to 3x per session = +45 max).
| Task | Points Impact | Achievement Progress |
|---|---|---|
| 3 sessions completed | Phase -> Early | Getting Started: 3/10 |
| Global CLAUDE.md with structure | +15 CC Mastery | -- |
| Project CLAUDE.md | +10 CC Mastery | -- |
| Hooks configured with matchers | +25 CC Mastery | -- |
| 1 plugin installed | +5 CC Mastery | -- |
| Investigation chains in sessions | +15--45 Tool & MCP | -- |
Expected scores after Week One:
- CC Mastery: 40--65
- Tool & MCP: 20--40
- Other domains: 5--20
Goal: All domains above 50. Unlock Well-Rounded achievement.
Configure and use MCP servers. These are some of the highest-value signals.
{
"mcpServers": {
"github": { "command": "mcp-github", "args": [] },
"linear": { "command": "mcp-linear", "args": [] }
}
}Using MCP tools in sessions:
| Rule | Points | Domain |
|---|---|---|
tool-mcp-configured |
+10 | Tool & MCP |
tool-mcp-used |
+15 | Tool & MCP |
tool-mcp-multi-server |
+20 | Tool & MCP (2+ servers used) |
Start delegating tasks to subagents:
Use an agent to refactor the authentication module while I work on the API routes.
| Rule | Points | Domain |
|---|---|---|
agent-used |
+5 | Agentic |
agent-detailed-prompt |
+10 | Agentic (prompt >100 chars) |
agent-multi-types |
+15 | Agentic (2+ subagent types) |
agent-background |
+10 | Agentic (background agent) |
Instead of:
fix the login bug
Write:
The login endpoint returns 403 for valid tokens. Here is the error:
Error: JWT validation failed at src/auth/validate.ts:42The relevant file is
src/auth/validate.ts. Please:
- Read the file first
- Check the token expiry logic
- Fix the validation without changing the public API
This single prompt can trigger multiple rules:
| Rule | Points | Domain |
|---|---|---|
prompt-structured-request |
+15 | Prompt Craft |
prompt-code-block |
+15 | Prompt Craft |
prompt-error-trace |
+15 | Prompt Craft |
prompt-file-reference |
+10 | Prompt Craft |
prompt-context-first |
+15 | Prompt Craft (code + file + >100 chars) |
That is +70 Prompt Craft points from a single prompt.
Create memory files so context persists between sessions:
mkdir -p ~/.claude/projects/-your-project/memory
cat > ~/.claude/projects/-your-project/memory/MEMORY.md << 'EOF'
# Project Memory
## Key Decisions
- Migrated from Express to Fastify (2026-02)
- Using Drizzle ORM for database layer
## Current Sprint
- Implementing OAuth2 flow
EOF| Rule | Points | Domain |
|---|---|---|
ctx-memory-exists |
+10 | Context Mgmt |
ctx-memory-active |
+15 | Context Mgmt (2+ active files) |
ctx-memory-diverse |
+15 | Context Mgmt (3+ memory files) |
| Milestone | What to Do |
|---|---|
| 5+ tool types per session | Use Grep, Glob, Read, Edit, Bash in natural workflow |
| Plan mode | Start a session with claude --plan for deliberate design |
| 3+ skills used | Use slash commands like /commit, /review-pr, /explain
|
| Deep sessions | Have 10+ back-and-forth exchanges (triggers ctx-session-depth) |
| Iterative refinement | Correct and refine Claude's output ("actually, change X to Y") |
| Multiple projects | Work across 5+ repos for the Explorer achievement |
Expected scores at Power User level:
- All domains: 50--75
- Achievement: Well-Rounded unlocked (all 5 domains at 50+)
Goal: All domains above 80. Get a Perfect Score (100 in any domain).
Send multiple agents to work at the same time:
I need three things done in parallel:
1. Agent: Write unit tests for the payment module
2. Agent: Refactor the email templates to use the new design system
3. Agent: Update the API documentation for the v2 endpoints
| Rule | Points | Domain |
|---|---|---|
agent-parallel |
+20 | Agentic |
Use worktrees so agents can work on separate branches without conflicts:
Use a worktree to implement the new caching layer on a separate branch.
| Rule | Points | Domain |
|---|---|---|
agent-worktree |
+15 | Agentic |
Use language server protocol tools before editing:
Use LSP to find all references to the `AuthService` class, then read the main implementation, then update the constructor.
| Rule | Points | Domain |
|---|---|---|
tool-lsp-before-edit |
+15 | Tool & MCP |
Create project-level definitions:
.claude/
skills/
deploy/SKILL.md # Custom deployment skill
review/SKILL.md # Custom code review skill
agents/
refactor.md # Refactoring specialist agent
test-writer.md # Test generation agent
rules/
architecture.md # Architecture constraints
code-style.md # Style guide
error-handling.md # Error handling patterns
naming.md # Naming conventions
testing.md # Testing standards
security.md # Security rules
| Rule | Points | Domain |
|---|---|---|
ccm-custom-skills |
+10 | CC Mastery |
ccm-custom-agents |
+10 | CC Mastery |
ccm-rules-files |
+10 | CC Mastery |
The Rules feature bar saturates at 6 rules files, so the above gets you 100% on that mini-bar.
Update your CLAUDE.md during sessions as the project evolves:
Update the CLAUDE.md to add our new database migration conventions.
| Rule | Points | Domain |
|---|---|---|
ctx-claudemd-updated |
+20 | Context Mgmt |
| Technique | Rules Triggered | Points |
|---|---|---|
| Parallel agents | agent-parallel |
+20 |
| Worktree isolation | agent-worktree |
+15 |
| Agent resume | agent-resume |
+15 |
| LSP before edit | tool-lsp-before-edit |
+15 |
| 3+ slash commands | prompt-slash-commands |
+15 |
| Update CLAUDE.md | ctx-claudemd-updated |
+20 |
| Write memory files | ctx-memory-write |
+15 |
| 5+ plugins | ccm-plugins-diverse |
+10 |
Expected scores at Expert level:
- All domains: 80--100
- Achievements: Master Class unlocked (all 5 at 80+)
Config actions (up to 25 pts after cap):
| Action | Points | Difficulty |
|---|---|---|
Create ~/.claude/CLAUDE.md
|
5 | Easy |
Add @import or structured sections to CLAUDE.md |
10 | Easy |
| Create project-level CLAUDE.md | 10 | Easy |
| Configure custom hooks | 10 | Medium |
Add 2+ hooks with tool matchers (PreToolUse:Edit) |
15 | Medium |
| Install 1 plugin | 5 | Easy |
| Install 5+ plugins | 10 | Medium |
Create .claude/rules/ files |
10 | Medium |
Create .claude/agents/ definitions |
10 | Medium |
Create .claude/skills/ definitions |
10 | Medium |
Set effort level to high
|
5 | Easy |
Behavior actions (up to 75 pts after cap):
| Action | Points | How |
|---|---|---|
| Use plan mode | 10 | Start with claude --plan or switch to plan mode |
| Invoke a skill | 10 | Use /commit, /review-pr, or custom skills |
| Use 3+ different skills | 15 | Use diverse slash commands in one session |
| Hooks actively firing | 10 | Configure hooks that trigger on tool use |
Total possible raw points: ~155. After the 25 config cap + 75 behavior cap = 100 max.
| Action | Points | How |
|---|---|---|
| Use 3+ tool types | 5 | Natural workflow: Grep + Read + Edit |
| Use Grep or Glob | 5 | Search before editing |
| Investigation chain (Grep/Glob -> Read -> Edit) | 15 x3 | The gold standard workflow |
| Read before Edit | 10 | Always read a file before modifying |
| 5+ tool types in session | 10 | Add Bash and Glob to your repertoire |
| Selective Edit | 10 | Use targeted old_string replacements |
| MCP servers configured | 10 | Add MCP config |
| Use MCP tools | 15 | Actually call MCP tools in sessions |
| 2+ MCP servers used | 20 | Use tools from different MCP providers |
| LSP before edit | 15 | Navigate with LSP, then edit |
Anti-pattern to avoid: Firing 5+ tools in parallel and having >50% fail. That costs -10 points.
| Action | Points | How |
|---|---|---|
| Use Agent tool | 5 | Delegate any subtask to an agent |
| 2+ subagent types | 15 | Use different agent specializations |
| Detailed agent prompt (>100 chars) | 10 | Give agents clear, specific instructions |
| Resume an agent | 15 | Continue work from a prior agent run |
| Parallel agents (same timestamp) | 20 | Dispatch multiple agents simultaneously |
| Background agent | 10 | Use run_in_background for async work |
| Worktree isolation | 15 | Isolate agent work in git worktrees |
| Task management | 10 | Use TaskCreate/TaskUpdate for coordination |
| Parallel tool execution | 10 | Any 2+ tools dispatched simultaneously |
| 3+ sessions in project | 10 | Sustained multi-session work |
| Action | Points | How |
|---|---|---|
| Meaningful prompts (avg >20 chars) | 5 | Write real sentences, not single words |
| Structured request (markdown list) | 15 | Use - item or 1. step formatting |
| Include code block | 15 | Paste relevant code in triple backticks |
| Include error trace | 15 | Paste the actual error message |
| Reference file path | 10 | Mention src/auth/validate.ts explicitly |
| Iterative refinement | 10 x3 | Follow up with "actually, change X" |
| 3+ slash commands | 15 | Use /commit, /review-pr, /explain, etc. |
| Context-first prompt | 15 | Code block + file path + detailed request (>100 chars) |
Anti-pattern to avoid: Walls of text over 2000 characters with no code, lists, or structure. That costs -5 points.
| Action | Points | How |
|---|---|---|
| Memory files configured | 10 | Create files in .claude/projects/.../memory/
|
| 2+ active memory files | 15 | Keep memory files recently updated |
| 3+ memory files total | 15 | Maintain separate memory for different concerns |
| Work on 2+ projects | 5 | Use Claude Code across different repositories |
| 3+ sessions in a project | 15 | Sustained engagement, not one-off usage |
| Read CLAUDE.md in session | 10 | Consult guidelines during work |
| Update CLAUDE.md in session | 20 | Evolve project knowledge actively |
| Write to memory files | 15 | Persist decisions and context for future sessions |
| 3+ hook events in session | 10 | Active hook integration |
| 10+ prompts in session | 10 | Deep, engaged sessions |
| Achievement | Unlock | Strategy |
|---|---|---|
| First Steps | 1 session | Just use Claude Code once |
| Getting Started | 10 sessions | Use Claude Code daily for 2 weeks |
| Century Club | 100 sessions | Sustained daily usage over 3--4 months |
| Achievement | Unlock | Strategy |
|---|---|---|
| 10 Hour Mark | 10 hours total | ~1 hour/day for 10 days |
| Centurion | 100 hours total | ~1 hour/day for 3+ months |
| Achievement | Unlock | Strategy |
|---|---|---|
| Perfect Score | Any domain = 100 | Focus on one domain -- Prompt Craft is often easiest |
| Well-Rounded | All 5 domains >= 50 | Follow the Power User checklist above |
| Master Class | All 5 domains >= 80 | Follow the Expert checklist; requires breadth |
Fastest path to Perfect Score: Prompt Craft. One good session with code blocks, error traces, file references, iterative refinement, and slash commands can max this domain.
Fastest path to Well-Rounded: Fix your weakest domain first. Run cc-proficiency analyze to see which one needs work.
| Achievement | Unlock | Strategy |
|---|---|---|
| Week Warrior | 7-day streak | Use Claude Code every day for a week -- even a short session counts |
| Monthly Grinder | 30-day streak | Build the daily habit. Weekends included. |
| Achievement | Unlock | Strategy |
|---|---|---|
| Explorer | 5+ projects | Use Claude Code across different repositories |
| Agent Master | Agents feature score > 0 | Use subagents for any delegated task |
| MCP Explorer | 2+ MCP servers used | Configure and use multiple MCP integrations |
| Night Owl | Have at least one active session day | Unlocks automatically after your first session |
| Achievement | Unlock | Strategy |
|---|---|---|
| Community | Join leaderboard | Run cc-proficiency share
|
Below your domain bars, the badge shows 8 feature mini-bars. These use depth-based scoring, not simple on/off checks. Here is how to progress each one.
| Score Range | What Gets You There |
|---|---|
| 0 | No hooks configured |
| ~15 | Custom hooks configured (binary(hasCustomHooks, 15)) |
| ~30 | Hooks + 2 tool matchers (binary(matcherCount >= 2, 15)) |
| ~50 | Config maxed + ~10 total hook fires across sessions |
| ~75 | ~40 hook fires + 4 unique hooks |
| 100 | ~100 hook fires + 8 unique hooks |
Formula: config(30 max) + logCurve(totalFires, 20, 25) + cappedRatio(uniqueHooks, 8) * 0.3
| Score Range | What Gets You There |
|---|---|
| 0 | No plugins |
| ~25 | 3 plugins installed |
| ~50 | 6 plugins installed |
| ~75 | 9 plugins + some actual usage |
| 100 | 12+ plugins installed + 5 actively used |
Formula: cappedRatio(pluginCount, 12) + cappedRatio(pluginsUsed, 5) * 0.3
Plugins are unique: install count IS depth. Using them adds a bonus.
| Score Range | What Gets You There |
|---|---|
| 0 | No custom skills, no skill invocations |
| ~15 | Custom skill definitions in .claude/skills/
|
| ~30 | Config + ~5 skill invocations |
| ~60 | ~20 skill calls + 4 unique skills |
| 100 | ~80 skill calls + 8 unique skills |
Formula: binary(hasCustomSkills, 15) + logCurve(totalCalls, 15, 25) + cappedRatio(uniqueSkills, 8) * 0.35
| Score Range | What Gets You There |
|---|---|
| 0 | No MCP config |
| ~15 | MCP servers configured |
| ~30 | Config + ~5 MCP tool calls |
| ~60 | ~30 MCP calls + 2 servers used |
| 100 | ~100 MCP calls + 4 servers used |
Formula: binary(hasMcpServers, 15) + logCurve(mcpCalls, 20, 25) + cappedRatio(serverCount, 4) * 0.35
| Score Range | What Gets You There |
|---|---|
| 0 | Never used agents |
| ~15 | Custom agent definitions in .claude/agents/
|
| ~30 | Config + ~3 agent calls |
| ~60 | ~15 agent calls + 3 agent types |
| 100 | ~50 agent calls + 5 agent types |
Formula: binary(hasCustomAgents, 15) + logCurve(agentCalls, 10, 25) + cappedRatio(agentTypes, 5) * 0.35
| Score Range | What Gets You There |
|---|---|
| 0 | Never used plan mode |
| ~25 | ~1 plan-mode prompt |
| ~50 | ~4 plan-mode prompts |
| ~75 | ~8 plan-mode prompts |
| 100 | ~15+ plan-mode prompts |
Formula: logCurve(planModePrompts, 2, 40)
Plan mode has no config component -- it is purely behavioral.
| Score Range | What Gets You There |
|---|---|
| 0 | No memory files |
| ~20 | Memory files exist (binary(hasMemoryFiles, 20)) |
| ~50 | Memory exists + 2--3 files |
| ~70 | 3 files + 2 actively maintained |
| 100 | 5+ memory files + 2+ actively maintained (recent mtime) |
Formula: binary(hasMemoryFiles, 20) + cappedRatio(fileCount, 5) * 0.5 + binary(activeCount >= 2, 30)
| Score Range | What Gets You There |
|---|---|
| 0 | No .claude/rules/ files |
| ~17 | 1 rules file |
| ~33 | 2 rules files |
| ~50 | 3 rules files |
| ~83 | 5 rules files |
| 100 | 6+ rules files |
Formula: cappedRatio(rulesFileCount, 6)
Rules is the simplest feature bar -- purely a count of rule files. Create 6 well-organized rules files and you hit 100%.
A streak is a run of consecutive days with at least one Claude Code session. The system tracks:
- Current streak -- your active consecutive-day count
- Longest streak -- your all-time best (never decreases)
- Last active date -- the most recent day you used Claude Code
Streaks are computed from unique UTC dates in your session history (last 90 days). A day counts if you had at least one session that day.
| Scenario | Effect |
|---|---|
| Use Claude Code today | Current streak += 1 (if yesterday was also active) |
| Skip one day | Current streak resets to 0 (checked on next session) |
| Skip a day, then resume | New streak starts at 1. Longest streak unchanged |
Note: Streaks are recalculated each time scores are updated. The current streak reflects the trailing consecutive run in your session history.
Tips:
- Even a 30-second session counts as an active day
- The streak uses UTC dates -- know your timezone offset
- Your longest streak can never decrease, so a broken streak does not erase your record
- Streak data syncs to your Gist, so it persists across machines
| Streak Length | Achievement | Icon |
|---|---|---|
| 7 days | Week Warrior | Fire |
| 30 days | Monthly Grinder | Muscle |
cc-proficiency shareThis command:
- Shows a privacy summary of exactly what will be shared
- Creates a public Gist with your profile (scores, streak, achievement count)
- Opens a GitHub Issue to register you in the leaderboard
- Unlocks the Community achievement
| Shared | NOT Shared |
|---|---|
| GitHub username | Session details |
| 5 domain scores (0--100 each) | Project names |
| Current and longest streak | File paths or code |
| Achievement count | Prompt content |
| Total sessions and hours | Which specific tools you used |
| Member since date | Private Gist content |
# Default: top 20 by average score
cc-proficiency leaderboard
# Sort by specific domain
cc-proficiency leaderboard --sort=agentic
# Sort by hours
cc-proficiency leaderboard --sort=hours --limit=10Your profile updates automatically after each session (via the Stop hook). You can also force an update:
cc-proficiency pushcc-proficiency share --removeThis removes your entry from the registry and deletes the public Gist. Your private data and badge are untouched.
The feature mini-bars use three mathematical curves. Here is what each one does.
score = min(100, k * log(1 + value / scale))
The first few uses earn the most points, and each subsequent use earns less. Going from 0 to 10 MCP calls might gain you 40 points; going from 90 to 100 calls gains about 2 more. This prevents gaming by repetition.
score = min(100, (value / cap) * 100)
Linear progression up to a cap, then flat. If the cap is 6 rules files, then 3 files = 50%, 6 files = 100%, 12 files = still 100%. Some features have a natural ceiling where more is not meaningfully better.
score = present ? value : 0
You either have it or you don't. Custom hooks configured = 15 points. Configuring them twice is still 15.
Most features use a pattern like:
total = config_component + depth_component
Where:
- config_component = binary checks for whether files/settings exist (maxes around 15--30)
- depth_component = logCurve on usage counts + cappedRatio on variety (drives the remaining 70--85)
Installing something gets you started. Actually using it is what drives the score up.
After running cc-proficiency init with gh authenticated, add to your README:
<!-- Static badge -->

<!-- Animated badge (bars fill on load, numbers fade in) -->
The init command prints the exact URLs to copy. Both SVGs update in place after every session; the URLs never change.
If you prefer not to use Gist:
cc-proficiency badge --output ./my-badge.svg
cc-proficiency badge --animated --output ./my-badge-animated.svg| Element | Description |
|---|---|
| Username | Your GitHub username |
| 5 domain bars | Color-coded progress bars (0--100) with confidence dots |
| 8 feature mini-bars | Heatmap row showing depth of each feature area |
| Achievement count | How many of the 15 achievements you have unlocked |
| Total hours | Cumulative time in Claude Code |
| Streak | Current consecutive-day streak (if on leaderboard) |
The scoring engine is designed so that gaming does not work. Here is why.
Every rule has a maxPerSession limit. Most rules cap at 1 fire per session. The investigation chain caps at 3. This means:
- Running Grep -> Read -> Edit 100 times in one session scores the same as doing it 3 times
- Invoking the same skill 50 times counts as 1 skill invocation
- A single "mega session" cannot substitute for regular usage over time
Each domain has hard limits:
| Bucket | Cap |
|---|---|
| Config evidence | 25 points max per domain |
| Behavior evidence | 75 points max per domain |
| Anti-pattern penalty | -15 points max per domain |
You cannot max a domain purely through configuration (the ceiling is 25 during full phase, or ~50 during calibration with the 2x boost). You need real behavioral evidence.
Feature depth scores use log curves with diminishing returns:
| MCP Calls | Approximate Score Gain |
|---|---|
| 0 -> 5 | +0 -> ~20 |
| 5 -> 20 | ~20 -> ~40 |
| 20 -> 50 | ~40 -> ~55 |
| 50 -> 100 | ~55 -> ~65 |
Doubling your usage does not double your score. Varied usage beats repetitive grinding.
Bad habits cost points:
| Pattern | Penalty | What It Detects |
|---|---|---|
| Shotgun parallel calls | -10 | 5+ tools fired simultaneously with >50% error rate |
| Wall of text | -5 | Prompt >2000 chars with no code, lists, or structure |
These deductions are capped at -15 per domain, so a bad session cannot destroy your score. But they do prevent inflated scores from low-quality usage.
Sessions are weighted by age:
| Age | Weight |
|---|---|
| Last 7 days | 1.0x |
| 8--30 days | 0.7x |
| 31--90 days | 0.4x |
| 90+ days | 0.2x |
This means your score reflects your current habits, not historical peaks. You cannot coast on a great month from three months ago.
The most effective way to improve your score is to use Claude Code well: search before editing, structure your prompts, use agents for parallel work, keep your project context up to date, and configure your environment. No shortcut.
Phases: Calibrating (0-2) → Early (3-9) → Full (10+)
Domains: CC Mastery · Tool & MCP · Agentic · Prompt Craft · Context Mgmt
Features: Hooks · Plugins · Skills · MCP · Agents · Plan · Memory · Rules
Achievements: 15 total across sessions, hours, scores, streaks, features, community
Caps: Config 25 | Behavior 75 | Penalty -15 (per domain)
Commands:
cc-proficiency init # Setup hook + first analysis
cc-proficiency analyze # Incremental analysis
cc-proficiency analyze --full # Full re-analysis
cc-proficiency achievements # View achievement progress
cc-proficiency leaderboard # View community rankings
cc-proficiency share # Join the leaderboard
cc-proficiency explain # Explain your current scores
cc-proficiency push # Force-push badge to Gist
English
中文
- Home-zh
- Getting-Started-zh
- Gamification-Guide-zh
- Commands-zh
- Scoring-zh
- Achievements-zh
- Leaderboard-zh
- Privacy-zh
Español
- Home-es
- Getting-Started-es
- Gamification-Guide-es
- Commands-es
- Scoring-es
- Achievements-es
- Leaderboard-es
- Privacy-es
Français
- Home-fr
- Getting-Started-fr
- Gamification-Guide-fr
- Commands-fr
- Scoring-fr
- Achievements-fr
- Leaderboard-fr
- Privacy-fr
日本語
- Home-ja
- Getting-Started-ja
- Gamification-Guide-ja
- Commands-ja
- Scoring-ja
- Achievements-ja
- Leaderboard-ja
- Privacy-ja
한국어