claude-code-achievements 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/README.es.md +1 -1
- package/README.ja.md +1 -1
- package/README.ko.md +1 -1
- package/README.md +1 -1
- package/README.zh.md +1 -1
- package/commands/achievements.md +28 -23
- package/data/achievements.json +0 -8
- package/data/i18n/en.json +0 -5
- package/data/i18n/es.json +0 -5
- package/data/i18n/ja.json +0 -5
- package/data/i18n/ko.json +0 -5
- package/data/i18n/zh.json +0 -5
- package/hooks/track-achievement.sh +10 -7
- package/package.json +1 -1
package/README.es.md
CHANGED
|
@@ -108,10 +108,10 @@ node bin/install.js
|
|
|
108
108
|
| 🤖 **Maestro de Delegación** | Usar herramienta `Task` para sub-agentes |
|
|
109
109
|
| 🔌 **Pionero MCP** | Usar cualquier herramienta MCP |
|
|
110
110
|
| 🌐 **Explorador Web** | Usar herramienta `WebSearch` |
|
|
111
|
-
| ⚡ **Maestro de Habilidades** | Usar comandos slash skills |
|
|
112
111
|
| ⚙️ **Personalizador** | Modificar configuración de Claude Code |
|
|
113
112
|
| 📜 **Creador de Skills** | Crear skill personalizado en `.claude/skills/` |
|
|
114
113
|
| ⌨️ **Artesano de Comandos** | Crear comando slash personalizado |
|
|
114
|
+
| 🧩 **Explorador de Plugins** | Instalar un plugin desde el marketplace |
|
|
115
115
|
|
|
116
116
|
</details>
|
|
117
117
|
|
package/README.ja.md
CHANGED
|
@@ -108,10 +108,10 @@ node bin/install.js
|
|
|
108
108
|
| 🤖 **デリゲーションマスター** | `Task` ツールでサブエージェントを使用 |
|
|
109
109
|
| 🔌 **MCP パイオニア** | 任意の MCP ツールを使用 |
|
|
110
110
|
| 🌐 **ウェブエクスプローラー** | `WebSearch` ツールを使用 |
|
|
111
|
-
| ⚡ **スキルマスター** | スラッシュコマンドスキルを使用 |
|
|
112
111
|
| ⚙️ **カスタマイザー** | Claude Code の設定を変更 |
|
|
113
112
|
| 📜 **スキルクリエイター** | `.claude/skills/` にカスタムスキルを作成 |
|
|
114
113
|
| ⌨️ **コマンドクラフター** | カスタムスラッシュコマンドを作成 |
|
|
114
|
+
| 🧩 **プラグイン探検家** | マーケットプレイスからプラグインをインストール |
|
|
115
115
|
|
|
116
116
|
</details>
|
|
117
117
|
|
package/README.ko.md
CHANGED
|
@@ -108,10 +108,10 @@ node bin/install.js
|
|
|
108
108
|
| 🤖 **위임의 달인** | `Task` 도구로 서브 에이전트 생성 |
|
|
109
109
|
| 🔌 **MCP 개척자** | MCP 도구 사용 |
|
|
110
110
|
| 🌐 **웹 탐험가** | `WebSearch` 사용 |
|
|
111
|
-
| ⚡ **스킬 마스터** | 슬래시 명령 스킬 사용 |
|
|
112
111
|
| ⚙️ **커스터마이저** | Claude Code 설정 수정 |
|
|
113
112
|
| 📜 **스킬 창조자** | `.claude/skills/`에 커스텀 스킬 생성 |
|
|
114
113
|
| ⌨️ **명령어 장인** | 커스텀 슬래시 명령 생성 |
|
|
114
|
+
| 🧩 **플러그인 탐험가** | 마켓플레이스에서 플러그인 설치 |
|
|
115
115
|
|
|
116
116
|
</details>
|
|
117
117
|
|
package/README.md
CHANGED
|
@@ -108,10 +108,10 @@ node bin/install.js
|
|
|
108
108
|
| 🤖 **Delegation Master** | Use `Task` tool for sub-agents |
|
|
109
109
|
| 🔌 **MCP Pioneer** | Use any MCP tool |
|
|
110
110
|
| 🌐 **Web Explorer** | Use `WebSearch` tool |
|
|
111
|
-
| ⚡ **Skill Master** | Use slash command skills |
|
|
112
111
|
| ⚙️ **Customizer** | Modify Claude Code settings |
|
|
113
112
|
| 📜 **Skill Creator** | Create custom skill in `.claude/skills/` |
|
|
114
113
|
| ⌨️ **Command Crafter** | Create custom slash command |
|
|
114
|
+
| 🧩 **Plugin Explorer** | Install a plugin from marketplace |
|
|
115
115
|
|
|
116
116
|
</details>
|
|
117
117
|
|
package/README.zh.md
CHANGED
|
@@ -108,10 +108,10 @@ node bin/install.js
|
|
|
108
108
|
| 🤖 **委派大师** | 使用 `Task` 工具创建子代理 |
|
|
109
109
|
| 🔌 **MCP 先驱** | 使用任意 MCP 工具 |
|
|
110
110
|
| 🌐 **网络探索者** | 使用 `WebSearch` 工具 |
|
|
111
|
-
| ⚡ **技能大师** | 使用斜杠命令技能 |
|
|
112
111
|
| ⚙️ **定制者** | 修改 Claude Code 设置 |
|
|
113
112
|
| 📜 **技能创造者** | 在 `.claude/skills/` 创建自定义技能 |
|
|
114
113
|
| ⌨️ **命令工匠** | 创建自定义斜杠命令 |
|
|
114
|
+
| 🧩 **插件探索者** | 从市场安装插件 |
|
|
115
115
|
|
|
116
116
|
</details>
|
|
117
117
|
|
package/commands/achievements.md
CHANGED
|
@@ -22,13 +22,21 @@ Use the Read tool to read these files:
|
|
|
22
22
|
- `~/.claude/plugins/local/claude-code-achievements/data/achievements.json` (default data with icons, categories)
|
|
23
23
|
- `~/.claude/plugins/local/claude-code-achievements/data/i18n/{language}.json` (localized name, description, tip)
|
|
24
24
|
|
|
25
|
-
### Step 2:
|
|
25
|
+
### Step 2: Count Achievements
|
|
26
|
+
|
|
27
|
+
**IMPORTANT: Calculate these counts from the JSON files, do NOT use hardcoded numbers!**
|
|
28
|
+
|
|
29
|
+
1. **Total count**: Count all keys in `achievements.json` → `achievements` object
|
|
30
|
+
2. **Unlocked count**: Count achievements in `state.json` → `achievements` object where `unlocked: true`
|
|
31
|
+
3. **Per category**: Count achievements by their `category` field
|
|
32
|
+
|
|
33
|
+
### Step 3: Format Output
|
|
26
34
|
|
|
27
35
|
**IMPORTANT: Output directly in your response text, NOT via bash. Bash output gets collapsed.**
|
|
28
36
|
|
|
29
37
|
#### Default View (unlocked)
|
|
30
38
|
```
|
|
31
|
-
🎮 **Claude Code Achievements** —
|
|
39
|
+
🎮 **Claude Code Achievements** — {unlocked}/{total} unlocked ({percentage}%)
|
|
32
40
|
▰▰▰▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱
|
|
33
41
|
|
|
34
42
|
✓ Unlocked
|
|
@@ -37,55 +45,52 @@ Use the Read tool to read these files:
|
|
|
37
45
|
💡 Be specific: instead of 'fix the bug', say 'fix the TypeError in login.js line 42'
|
|
38
46
|
|
|
39
47
|
📝 **Creator** — Create a new file
|
|
40
|
-
💡 Claude can create entire files from description.
|
|
41
|
-
|
|
42
|
-
🔍 **Code Detective** — Search codebase with Glob or Grep
|
|
43
|
-
💡 Glob finds files by pattern, Grep searches content. Faster than manual searching!
|
|
44
|
-
|
|
45
|
-
🤖 **Delegation Master** — Use Task tool to spawn sub-agents
|
|
46
|
-
💡 Task tool creates specialized agents for complex work. Great for parallel exploration.
|
|
48
|
+
💡 Claude can create entire files from description.
|
|
47
49
|
```
|
|
48
50
|
|
|
49
51
|
#### Locked View (/achievements locked)
|
|
50
52
|
```
|
|
51
|
-
🎮 **Claude Code Achievements** —
|
|
53
|
+
🎮 **Claude Code Achievements** — {unlocked}/{total} unlocked ({percentage}%)
|
|
52
54
|
▰▰▰▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱
|
|
53
55
|
|
|
54
56
|
○ Locked
|
|
55
57
|
📋 Project Curator — Create CLAUDE.md for project context
|
|
56
58
|
🎯 Strategic Thinker — Use Plan mode for complex tasks
|
|
57
|
-
📦 Version Controller — Commit changes with Claude
|
|
58
59
|
...
|
|
59
60
|
```
|
|
60
61
|
|
|
61
62
|
#### All View (/achievements all)
|
|
63
|
+
Show each category with unlocked/total count:
|
|
64
|
+
|
|
62
65
|
```
|
|
63
|
-
🎮 **Claude Code Achievements** —
|
|
66
|
+
🎮 **Claude Code Achievements** — {unlocked}/{total} unlocked ({percentage}%)
|
|
64
67
|
|
|
65
|
-
**Getting Started**
|
|
66
|
-
✓ ✏️ First Touch — Edit a file with Claude's help
|
|
67
|
-
✓ 📝 Creator — Create a new file
|
|
68
|
+
**Getting Started** ({category_unlocked}/{category_total})
|
|
69
|
+
✓ ✏️ **First Touch** — Edit a file with Claude's help
|
|
70
|
+
✓ 📝 **Creator** — Create a new file
|
|
68
71
|
○ 📋 Project Curator — Create CLAUDE.md
|
|
69
72
|
|
|
70
|
-
**Workflow**
|
|
71
|
-
|
|
73
|
+
**Workflow** ({category_unlocked}/{category_total})
|
|
74
|
+
✓ 🎯 **Strategic Thinker** — Use Plan mode
|
|
75
|
+
○ 📦 Version Controller — Commit changes with Claude
|
|
72
76
|
...
|
|
73
77
|
```
|
|
74
78
|
|
|
75
|
-
Rules
|
|
79
|
+
### Formatting Rules
|
|
80
|
+
|
|
76
81
|
- ✓ = unlocked: icon + **name** (bold) + description + 💡 tip
|
|
77
|
-
- ○ = locked: icon + name + description only
|
|
82
|
+
- ○ = locked: icon + name (not bold) + description only
|
|
83
|
+
- Category header: `**Category Name** (unlocked/total)` - count ONLY that category's achievements
|
|
84
|
+
- Progress bar: 20 blocks, filled proportionally to percentage
|
|
78
85
|
- Tips should be informative but concise (1-2 sentences max)
|
|
79
|
-
- Group by category when showing all
|
|
80
|
-
- Use proper spacing for readability
|
|
81
86
|
|
|
82
|
-
### Step
|
|
87
|
+
### Step 4: Suggest Next
|
|
83
88
|
|
|
84
89
|
For unlocked/locked views, suggest ONE easy achievement to unlock next with a brief actionable hint.
|
|
85
90
|
|
|
86
91
|
## Hint Mode (/achievements hint)
|
|
87
92
|
|
|
88
|
-
Show tips for 2-3 locked achievements
|
|
93
|
+
Show tips for 2-3 locked achievements:
|
|
89
94
|
|
|
90
95
|
```
|
|
91
96
|
💡 **Tips to unlock more:**
|
package/data/achievements.json
CHANGED
|
@@ -102,14 +102,6 @@
|
|
|
102
102
|
"category": "tools",
|
|
103
103
|
"icon": "🌐"
|
|
104
104
|
},
|
|
105
|
-
"skill_invoker": {
|
|
106
|
-
"id": "skill_invoker",
|
|
107
|
-
"name": "Skill Master",
|
|
108
|
-
"description": "Use a slash command skill",
|
|
109
|
-
"tip": "Skills are shortcuts. Try /commit, /pr, /init. Create custom skills in ~/.claude/commands/",
|
|
110
|
-
"category": "tools",
|
|
111
|
-
"icon": "⚡"
|
|
112
|
-
},
|
|
113
105
|
"config_modifier": {
|
|
114
106
|
"id": "config_modifier",
|
|
115
107
|
"name": "Customizer",
|
package/data/i18n/en.json
CHANGED
|
@@ -78,11 +78,6 @@
|
|
|
78
78
|
"description": "Search the web for information",
|
|
79
79
|
"tip": "Claude can search for latest docs, solutions, and APIs."
|
|
80
80
|
},
|
|
81
|
-
"skill_invoker": {
|
|
82
|
-
"name": "Skill Master",
|
|
83
|
-
"description": "Use a slash command skill",
|
|
84
|
-
"tip": "Skills are shortcuts. Try /commit, /pr, /init. Create custom skills in ~/.claude/commands/"
|
|
85
|
-
},
|
|
86
81
|
"config_modifier": {
|
|
87
82
|
"name": "Customizer",
|
|
88
83
|
"description": "Modify Claude Code settings",
|
package/data/i18n/es.json
CHANGED
|
@@ -78,11 +78,6 @@
|
|
|
78
78
|
"description": "Buscar información en la web",
|
|
79
79
|
"tip": "Claude puede buscar documentación actualizada, soluciones y APIs."
|
|
80
80
|
},
|
|
81
|
-
"skill_invoker": {
|
|
82
|
-
"name": "Maestro de Habilidades",
|
|
83
|
-
"description": "Usar un comando slash skill",
|
|
84
|
-
"tip": "Los skills son atajos. Prueba /commit, /pr, /init. Crea skills personalizados en ~/.claude/commands/"
|
|
85
|
-
},
|
|
86
81
|
"config_modifier": {
|
|
87
82
|
"name": "Personalizador",
|
|
88
83
|
"description": "Modificar configuración de Claude Code",
|
package/data/i18n/ja.json
CHANGED
|
@@ -78,11 +78,6 @@
|
|
|
78
78
|
"description": "Web で情報を検索",
|
|
79
79
|
"tip": "Claude は最新のドキュメント、ソリューション、API を検索できます。"
|
|
80
80
|
},
|
|
81
|
-
"skill_invoker": {
|
|
82
|
-
"name": "スキルマスター",
|
|
83
|
-
"description": "スラッシュコマンドスキルを使用",
|
|
84
|
-
"tip": "スキルはショートカット。/commit、/pr、/init を試そう。~/.claude/commands/ でカスタムスキルも作れます。"
|
|
85
|
-
},
|
|
86
81
|
"config_modifier": {
|
|
87
82
|
"name": "カスタマイザー",
|
|
88
83
|
"description": "Claude Code の設定を変更",
|
package/data/i18n/ko.json
CHANGED
|
@@ -78,11 +78,6 @@
|
|
|
78
78
|
"description": "웹 검색하기",
|
|
79
79
|
"tip": "Claude가 최신 문서, 솔루션, API를 검색할 수 있어요."
|
|
80
80
|
},
|
|
81
|
-
"skill_invoker": {
|
|
82
|
-
"name": "스킬 마스터",
|
|
83
|
-
"description": "슬래시 명령 스킬 사용",
|
|
84
|
-
"tip": "/commit, /pr, /init 해보세요. ~/.claude/commands/에서 커스텀도 가능!"
|
|
85
|
-
},
|
|
86
81
|
"config_modifier": {
|
|
87
82
|
"name": "커스터마이저",
|
|
88
83
|
"description": "Claude Code 설정 수정",
|
package/data/i18n/zh.json
CHANGED
|
@@ -78,11 +78,6 @@
|
|
|
78
78
|
"description": "搜索网络信息",
|
|
79
79
|
"tip": "Claude 可以搜索最新文档、解决方案和 API。"
|
|
80
80
|
},
|
|
81
|
-
"skill_invoker": {
|
|
82
|
-
"name": "技能大师",
|
|
83
|
-
"description": "使用斜杠命令技能",
|
|
84
|
-
"tip": "技能是快捷方式。试试 /commit、/pr、/init。在 ~/.claude/commands/ 创建自定义技能。"
|
|
85
|
-
},
|
|
86
81
|
"config_modifier": {
|
|
87
82
|
"name": "定制者",
|
|
88
83
|
"description": "修改 Claude Code 设置",
|
|
@@ -43,9 +43,16 @@ unlock_achievement() {
|
|
|
43
43
|
local achievement_id="$1"
|
|
44
44
|
local trigger="$2"
|
|
45
45
|
local timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
46
|
-
local
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
local lock_file="${STATE_FILE}.lock"
|
|
47
|
+
|
|
48
|
+
# Use flock for atomic file operations (prevent race conditions)
|
|
49
|
+
(
|
|
50
|
+
flock -x 200 || exit 1
|
|
51
|
+
local temp_file=$(mktemp)
|
|
52
|
+
jq ".achievements[\"${achievement_id}\"] = {\"unlocked\": true, \"unlockedAt\": \"${timestamp}\"}" "${STATE_FILE}" > "${temp_file}"
|
|
53
|
+
mv "${temp_file}" "${STATE_FILE}"
|
|
54
|
+
) 200>"${lock_file}"
|
|
55
|
+
|
|
49
56
|
"${PLUGIN_ROOT}/scripts/show-notification.sh" "${achievement_id}" "${trigger}"
|
|
50
57
|
}
|
|
51
58
|
|
|
@@ -239,10 +246,6 @@ check_achievements() {
|
|
|
239
246
|
|
|
240
247
|
Skill)
|
|
241
248
|
SKILL_NAME=$(echo "$TOOL_INPUT" | jq -r '.skill // empty')
|
|
242
|
-
if ! is_unlocked "skill_invoker"; then
|
|
243
|
-
unlock_achievement "skill_invoker" "Invoked /${SKILL_NAME} command"
|
|
244
|
-
fi
|
|
245
|
-
|
|
246
249
|
# ralph_starter
|
|
247
250
|
if [[ "${SKILL_NAME}" =~ ralph-loop|ralph ]]; then
|
|
248
251
|
if ! is_unlocked "ralph_starter"; then
|