thanh-kit 2.5.3 → 2.5.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thanh-kit",
3
- "version": "2.5.3",
3
+ "version": "2.5.5",
4
4
  "description": "CLI tool to scaffold AI agent projects with pre-configured kits (Claude, OpenCode, Codex)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,100 @@
1
+ # Claude Code - Global Environment Variables
2
+ # Location: .claude/.env
3
+ # Priority: LOWEST (overridden by skills/.env and skill-specific .env)
4
+ # Scope: Project-wide configuration, global defaults
5
+ # Setup: Copy to .claude/.env and configure
6
+
7
+ # ============================================
8
+ # Environment Variable Hierarchy
9
+ # ============================================
10
+ # Priority order (highest to lowest):
11
+ # 1. process.env - Runtime environment (HIGHEST)
12
+ # 2. .claude/skills/<skill>/.env - Skill-specific overrides
13
+ # 3. .claude/skills/.env - Shared across all skills
14
+ # 4. .claude/.env - Global defaults (this file, LOWEST)
15
+ #
16
+ # All skills use centralized resolver: ~/.claude/scripts/resolve_env.py
17
+ # Debug hierarchy: python ~/.claude/scripts/resolve_env.py --show-hierarchy
18
+
19
+ # ============================================
20
+ # ClaudeKit API Key (for VidCap, ReviewWeb services)
21
+ # ============================================
22
+ # Get your API key from https://claudekit.cc/api-keys
23
+ # Required for accessing ClaudeKit services via skills
24
+ CLAUDEKIT_API_KEY=
25
+
26
+ # ============================================
27
+ # Context7 API Configuration (optional)
28
+ # ============================================
29
+ # Get your API key from https://context7.com/dashboard/api-keys
30
+ CONTEXT7_API_KEY=
31
+
32
+ # ============================================
33
+ # Claude Code Notification Hooks
34
+ # ============================================
35
+ # Discord Webhook URL (for Discord notifications)
36
+ # Get from: Server Settings → Integrations → Webhooks → New Webhook
37
+ DISCORD_WEBHOOK_URL=
38
+
39
+ # Telegram Bot Token (for Telegram notifications)
40
+ # Get from: @BotFather in Telegram
41
+ TELEGRAM_BOT_TOKEN=
42
+
43
+ # Telegram Chat ID (your chat ID or group ID)
44
+ # Get from: https://api.telegram.org/bot<BOT_TOKEN>/getUpdates
45
+ TELEGRAM_CHAT_ID=
46
+
47
+ # ============================================
48
+ # AI/ML API Keys (Global Defaults)
49
+ # ============================================
50
+ # Google Gemini API (for ai-multimodal, docs-seeker skills)
51
+ # Get from: https://aistudio.google.com/apikey
52
+ GEMINI_API_KEY=
53
+
54
+ # Vertex AI Configuration (Optional alternative to AI Studio)
55
+ # GEMINI_USE_VERTEX=true
56
+ # VERTEX_PROJECT_ID=
57
+ # VERTEX_LOCATION=us-central1
58
+
59
+ # OpenAI API Key (if using OpenAI-based skills)
60
+ # OPENAI_API_KEY=
61
+
62
+ # Anthropic API Key (if using Claude API directly)
63
+ # ANTHROPIC_API_KEY=
64
+
65
+ # ============================================
66
+ # Development & CI/CD
67
+ # ============================================
68
+ # NODE_ENV=development
69
+ # DEBUG=false
70
+ # LOG_LEVEL=info
71
+
72
+ # ============================================
73
+ # Project Configuration
74
+ # ============================================
75
+ # PROJECT_NAME=claudekit-engineer
76
+ # ENVIRONMENT=local
77
+
78
+ # ============================================
79
+ # Example Usage Scenarios
80
+ # ============================================
81
+ # Scenario 1: Global default for all skills
82
+ # .claude/.env (this file): GEMINI_API_KEY=global-dev-key
83
+ # Result: All skills use global-dev-key
84
+ #
85
+ # Scenario 2: Override for all skills
86
+ # .claude/.env (this file): GEMINI_API_KEY=global-dev-key
87
+ # .claude/skills/.env: GEMINI_API_KEY=skills-prod-key
88
+ # Result: All skills use skills-prod-key
89
+ #
90
+ # Scenario 3: Skill-specific override
91
+ # .claude/.env (this file): GEMINI_API_KEY=global-key
92
+ # .claude/skills/.env: GEMINI_API_KEY=shared-key
93
+ # .claude/skills/ai-multimodal/.env: GEMINI_API_KEY=high-quota-key
94
+ # Result: ai-multimodal uses high-quota-key, other skills use shared-key
95
+ #
96
+ # Scenario 4: Runtime testing
97
+ # export GEMINI_API_KEY=test-key
98
+ # Result: All skills use test-key regardless of config files
99
+ #
100
+ # Priority: runtime > skill-specific > shared > global (this file)
@@ -0,0 +1,26 @@
1
+ {"ts":"2026-03-04T16:03:43.971Z","hook":"scout-block","tool":"Bash","dur":4,"status":"ok","exit":0,"error":""}
2
+ {"ts":"2026-03-04T16:03:43.978Z","hook":"scout-block","tool":"Read","dur":3,"status":"ok","exit":0,"error":""}
3
+ {"ts":"2026-03-04T16:03:56.874Z","hook":"scout-block","tool":"Glob","dur":3,"status":"ok","exit":0,"error":""}
4
+ {"ts":"2026-03-04T16:03:56.880Z","hook":"scout-block","tool":"Bash","dur":7,"status":"block","exit":2,"error":""}
5
+ {"ts":"2026-03-04T16:03:57.560Z","hook":"scout-block","tool":"Bash","dur":4,"status":"ok","exit":0,"error":""}
6
+ {"ts":"2026-03-04T16:04:18.074Z","hook":"scout-block","tool":"Bash","dur":3,"status":"ok","exit":0,"error":""}
7
+ {"ts":"2026-03-04T16:04:18.082Z","hook":"scout-block","tool":"Read","dur":3,"status":"ok","exit":0,"error":""}
8
+ {"ts":"2026-03-04T16:04:26.893Z","hook":"scout-block","tool":"Bash","dur":7,"status":"block","exit":2,"error":""}
9
+ {"ts":"2026-03-04T16:04:32.226Z","hook":"scout-block","tool":"Bash","dur":6,"status":"block","exit":2,"error":""}
10
+ {"ts":"2026-03-04T16:04:32.234Z","hook":"scout-block","tool":"Read","dur":3,"status":"ok","exit":0,"error":""}
11
+ {"ts":"2026-03-04T16:04:44.444Z","hook":"scout-block","tool":"Read","dur":3,"status":"ok","exit":0,"error":""}
12
+ {"ts":"2026-03-04T16:04:44.445Z","hook":"scout-block","tool":"Read","dur":3,"status":"ok","exit":0,"error":""}
13
+ {"ts":"2026-03-04T16:04:56.769Z","hook":"scout-block","tool":"Bash","dur":4,"status":"ok","exit":0,"error":""}
14
+ {"ts":"2026-03-04T16:04:56.773Z","hook":"scout-block","tool":"Bash","dur":4,"status":"ok","exit":0,"error":""}
15
+ {"ts":"2026-03-04T16:11:33.817Z","hook":"scout-block","tool":"Bash","dur":4,"status":"ok","exit":0,"error":""}
16
+ {"ts":"2026-03-04T16:11:40.915Z","hook":"scout-block","tool":"Bash","dur":5,"status":"ok","exit":0,"error":""}
17
+ {"ts":"2026-03-04T16:13:15.301Z","hook":"scout-block","tool":"Bash","dur":4,"status":"ok","exit":0,"error":""}
18
+ {"ts":"2026-03-04T16:13:22.848Z","hook":"scout-block","tool":"Glob","dur":3,"status":"ok","exit":0,"error":""}
19
+ {"ts":"2026-03-04T16:13:22.859Z","hook":"scout-block","tool":"Read","dur":3,"status":"ok","exit":0,"error":""}
20
+ {"ts":"2026-03-04T16:13:25.718Z","hook":"scout-block","tool":"Read","dur":3,"status":"ok","exit":0,"error":""}
21
+ {"ts":"2026-03-04T16:13:25.719Z","hook":"scout-block","tool":"Read","dur":3,"status":"ok","exit":0,"error":""}
22
+ {"ts":"2026-03-04T16:13:54.959Z","hook":"scout-block","tool":"Bash","dur":4,"status":"ok","exit":0,"error":""}
23
+ {"ts":"2026-03-04T16:16:20.243Z","hook":"scout-block","tool":"Bash","dur":4,"status":"ok","exit":0,"error":""}
24
+ {"ts":"2026-03-04T16:18:06.224Z","hook":"scout-block","tool":"Read","dur":3,"status":"ok","exit":0,"error":""}
25
+ {"ts":"2026-03-04T16:18:27.165Z","hook":"scout-block","tool":"Glob","dur":3,"status":"block","exit":2,"error":""}
26
+ {"ts":"2026-03-04T16:18:27.166Z","hook":"scout-block","tool":"Bash","dur":2,"status":"ok","exit":0,"error":""}
@@ -0,0 +1,13 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(cat:*)",
5
+ "Bash(ls:*)",
6
+ "Bash(test:*)",
7
+ "Bash(chmod:*)",
8
+ "Bash(./install.sh)",
9
+ "Bash(.venv/bin/pip install:*)",
10
+ "Bash(grep:*)"
11
+ ]
12
+ }
13
+ }
@@ -47,6 +47,7 @@ GEMINI_API_KEY=
47
47
  # ============================================
48
48
  # Context7 MCP (Documentation search)
49
49
  # Skill: docs-seeker, mcp-management
50
+ # Get your API key from https://context7.com/dashboard/api-keys
50
51
  # CONTEXT7_API_KEY=
51
52
 
52
53
  # ============================================
File without changes
File without changes
@@ -1,104 +0,0 @@
1
- # AGENTS.md - Working Conventions
2
-
3
- ---
4
-
5
- ## 1) Language
6
- - **Repository artifacts (mandatory)**: All documentation/guides, code comments, and any text written into files must be in **English**.
7
- - **Conversation**: Replies in the chat should be in **Vietnamese**.
8
-
9
- ---
10
-
11
- ## 2) Core Principles (Non-negotiable)
12
- - Clarify Ambiguity First: If a requirement is unclear or incomplete, ask 1-2 clarifying questions before proceeding. Never guess.
13
- - Code Only What Was Asked: Follow the PRD/ticket scope strictly; no extra features.
14
- - Minimum Viable Change: Deliver the simplest, most idempotent fix that works; avoid over-engineering.
15
- - Reuse Before Rewriting: Prefer existing modules or utilities; avoid duplication.
16
- - File Length Limit: Keep every file under 300 LOC; if a change would exceed this, pause and propose a refactor or split plan.
17
- - Configuration and Secrets: Load all secrets or config from environment variables only; never hardcode.
18
- - When writing code, aim for simplicity and readability, not just brevity. Short code that is hard to read is worse than slightly longer code that is clear.
19
- - Clean Up Temporary Files: Delete any temporary test files immediately after use.
20
-
21
- ### Core Directives
22
- - WRITE CODE ONLY TO SPEC.
23
- - MINIMUM, NOT MAXIMUM.
24
- - ONE SIMPLE SOLUTION.
25
- - CLARIFY, DON'T ASSUME.
26
-
27
- ### Philosophy (Non-negotiables)
28
- - Do not add unnecessary files or modules; if a new file is unavoidable, justify it.
29
- - Do not change architecture or patterns unless explicitly required and justified.
30
- - Prioritize readability and maintainability over clever or complex code.
31
-
32
- ---
33
-
34
- ## 3) File-reading Rules (Mandatory)
35
- - **Before editing/creating files**: Read all relevant files in full to understand context.
36
- - **Before starting a task**: Read at minimum `README.md` and relevant files in `docs/*` (if present).
37
- - **If docs are missing or likely stale**: Use `rg` to locate the source of truth quickly.
38
-
39
- ---
40
-
41
- ## 4) Project Structure Index
42
-
43
- > **File**: `docs/structure.md` - Single source of truth for project layout.
44
-
45
- ### When to use `docs/structure.md`
46
- - **Hard-to-locate tasks** (large repo/monorepo): read it first to get the map and narrow the search area.
47
- - **Very broad keywords** (e.g., auth/payment/logging): use structure to pick the right folder before searching deeper.
48
- - **New project / onboarding**: structure gives a fast overview of the main areas.
49
-
50
- ### When to use `rg`
51
- - **Normal tasks**: use `rg` directly to find the real implementation (does not depend on whether structure is up to date).
52
- - **You already have concrete identifiers** (file name / function / class / route / endpoint): `rg` is faster than structure.
53
- - **You suspect structure is stale**: prefer `rg` first, then refresh structure if needed.
54
-
55
- ### When to Update
56
- - **Project has no `docs/structure.md`**: Generate it using `skills/project-index/SKILL.md`.
57
- - **After major changes**: Added/removed modules, restructured folders.
58
- - **Periodic refresh**: Weekly or when index feels outdated.
59
- - **User says**: "update structure", "refresh index", "scan project".
60
-
61
- ### How to Generate/Update
62
- ```
63
- Load: skills/project-index/SKILL.md
64
- - Scan project tree
65
- - Identify key files and patterns
66
- - Write to docs/structure.md
67
- ```
68
-
69
- ---
70
-
71
- ## 5) Dynamic Context Loading
72
-
73
- > **Golden Rule**: Only load context when matching triggers are detected.
74
-
75
- ### Automatic Context Triggers
76
- - **Keywords**: If the request matches a domain (e.g., "debug", "test", "plan", "review"), ALWAYS load the corresponding **Skill** (`skills/**/SKILL.md`) or **Agent** (`agents/**`) first.
77
- - **Slash Commands**: Treat `/command` as an explicit instruction to load `commands/<command>.md` (e.g., `/fix`, `/plan`, `/test`).
78
- - **Complex Tasks**: For multi-step objectives, load `workflows/**` to orchestrate the process.
79
-
80
- ### Hierarchy of Context
81
- 1. **Workflows** (`workflows/**`): High-level orchestration for multi-step processes.
82
- 2. **Agents** (`agents/**`): Specific personas/mindsets for a task type.
83
- 3. **Skills** (`skills/**`): Domain-specific knowledge and playbooks.
84
- 4. **Commands** (`commands/**`): Reusable execution scripts/procedures.
85
-
86
- ### Discovery
87
- If a request is unclear, check `router/decision-flow.md` or scan `skills/` and `commands/` directories to find the best tool for the job. Never guess if a specialized tool exists.
88
-
89
- ---
90
-
91
- ## 6) Execution Discipline
92
- - **Run only necessary commands**; avoid destructive commands (`rm`, `git reset`...) unless explicitly requested.
93
- - **Timeout**: Default 60s; cap at 70-80s for potentially long-running commands.
94
- - **Permission errors**: Explain clearly and propose safe manual steps.
95
- - **New dependencies**: Do not add unless truly necessary and user agrees.
96
-
97
- ---
98
-
99
- ## 7) Auto-Documentation
100
- After completing impactful changes (feature/bugfix/schema/architecture), update briefly:
101
- - `README.md`: If stable info (stack/versions/overview) affected.
102
- - `HANDOFF.md`: Current status + next steps + latest test results.
103
- - `CHANGELOG.md`: Add one line: `YYYY-MM-DD: <Fix|Add|Change|Remove> <what> at <path> - <impact> (completed).`
104
- - `docs/structure.md`: If added/removed files or restructured folders.
@@ -1,241 +0,0 @@
1
- # 🏠 .claude - AI Control Center
2
-
3
- ## What is .claude?
4
-
5
- The **`.claude`** directory is the "extended brain" of the AI - containing all configurations, knowledge, and processes that enable the AI to work smarter and more professionally.
6
-
7
- **Simple Example:**
8
- - Without `.claude`: The AI responds like a standard chatbot.
9
- - With `.claude`: The AI operates as a full team of specialized experts.
10
-
11
- ---
12
-
13
- ## Overview Structure
14
-
15
- ```
16
- .claude/
17
-
18
- ├── 🤖 agents/ ← ROLES (Who does it?)
19
- │ └── 17 distinct expert personas
20
-
21
- ├── 📋 commands/ ← PROCEDURES (How is it done?)
22
- │ └── 50+ standardized workflows
23
-
24
- ├── 📚 skills/ ← KNOWLEDGE (What to know?)
25
- │ └── 59 domain-specific knowledge bases
26
-
27
- ├── 🧭 router/ ← ROUTING (What to choose?)
28
- │ └── 5 decision-making guides
29
-
30
- ├── 🔄 workflows/ ← ORCHESTRATION (Big tasks)
31
- │ └── 4 collaboration scenarios
32
-
33
- ├── ⚡ hooks/ ← AUTOMATION (Trigger events)
34
- │ └── 15+ automated scripts
35
-
36
- ├── 🔧 scripts/ ← UTILITIES (Tools)
37
- │ └── 10+ helper scripts
38
-
39
- └── ⚙️ settings.json ← CONFIG (Customization)
40
- ```
41
-
42
- ---
43
-
44
- ## Directory Explanation
45
-
46
- ### 🤖 agents/ - Expert Roles
47
-
48
- **What it is:** 17 different "personas" the AI can embody.
49
-
50
- **Examples:**
51
- | You say | AI embodies |
52
- |---------|-------------|
53
- | "Fix bug" | Debugger (Bug Hunter) |
54
- | "Write code" | Developer (Programmer) |
55
- | "Make a plan" | Planner (Architect) |
56
-
57
- 📖 [See details in agents/README.md](agents/README.md)
58
-
59
- ---
60
-
61
- ### 📋 commands/ - Workflows
62
-
63
- **What it is:** 50+ step-by-step "recipes" for specific tasks.
64
-
65
- **Examples:**
66
- | Command | Action |
67
- |---------|--------|
68
- | `/fix` | Standard 5-step bug fix |
69
- | `/code` | Coding workflow with testing |
70
- | `/plan` | Planning template |
71
-
72
- 📖 [See details in commands/README.md](commands/README.md)
73
-
74
- ---
75
-
76
- ### 📚 skills/ - Specialized Knowledge
77
-
78
- **What it is:** 59 knowledge packages loaded on demand.
79
-
80
- **Examples:**
81
- | Skill | Contains |
82
- |-------|----------|
83
- | `ui-ux-pro-max` | 50 styles, 21 palettes, 50 fonts |
84
- | `debugging` | 4-step debug framework |
85
- | `better-auth` | OAuth, 2FA guides |
86
-
87
- 📖 [See details in skills/README.md](skills/README.md)
88
-
89
- ---
90
-
91
- ### 🧭 router/ - Decision Engine
92
-
93
- **What it is:** The "decision brain" - helps AI select the right agent/command/skill.
94
-
95
- **How it works:**
96
- ```
97
- You: "Fix login error"
98
-
99
- Router analyzes keywords
100
-
101
- Selects: Debugger + /fix + better-auth
102
-
103
- AI starts working
104
- ```
105
-
106
- 📖 [See details in router/README.md](router/README.md)
107
-
108
- ---
109
-
110
- ### 🔄 workflows/ - Multi-step Collaboration
111
-
112
- **What it is:** Scripts for large tasks requiring coordination.
113
-
114
- **Example:** New Feature
115
- ```
116
- Planner → Developer → Tester → Reviewer → Docs Manager
117
- ```
118
-
119
- 📖 [See details in workflows/README.md](workflows/README.md)
120
-
121
- ---
122
-
123
- ### ⚡ hooks/ - Automation
124
-
125
- **What it is:** Code that runs automatically on events.
126
-
127
- **Examples:**
128
- | Event | Hook runs |
129
- |-------|-----------|
130
- | File edit | Auto-format (Prettier) |
131
- | Task done | Auto-review |
132
- | Session start | Auto-load context |
133
-
134
- 📖 [See details in hooks/README.md](hooks/README.md)
135
-
136
- ---
137
-
138
- ### 🔧 scripts/ - Utility Tools
139
-
140
- **What it is:** Helper scripts.
141
-
142
- **Examples:**
143
- | Script | Action |
144
- |--------|--------|
145
- | `scan_skills.py` | Scans and generates skills list |
146
- | `worktree.cjs` | Manages git worktrees |
147
- | `ck-help.py` | Command lookup |
148
-
149
- 📖 [See details in scripts/README.md](scripts/README.md)
150
-
151
- ---
152
-
153
- ## How It All Works Together
154
-
155
- ### Example: "Add dark mode to app"
156
-
157
- ```
158
- STEP 1: Router Analysis
159
- ├── Keywords: "add", "dark mode"
160
- ├── Task Type: New Feature
161
- └── Complexity: Medium
162
-
163
- STEP 2: Resource Selection
164
- ├── Agents: planner → developer → tester
165
- ├── Commands: /plan → /code → /test
166
- ├── Skills: ui-ux-pro-max, frontend-development
167
- └── Workflow: primary-workflow
168
-
169
- STEP 3: Execution
170
- ├── Planner creates plan
171
- ├── Developer writes code
172
- ├── Tester writes tests
173
- └── Hooks auto-format & review
174
-
175
- STEP 4: Completion
176
- ├── Code merged
177
- ├── Docs updated (automated)
178
- └── Changelog recorded (automated)
179
- ```
180
-
181
- ---
182
-
183
- ## Quick Reference
184
-
185
- | Need | Look in |
186
- |------|---------|
187
- | Who does the work | `agents/` |
188
- | What process to follow | `commands/` |
189
- | What knowledge is needed | `skills/` |
190
- | How AI decides | `router/` |
191
- | Large multi-step tasks | `workflows/` |
192
- | Automation | `hooks/` |
193
- | Utility tools | `scripts/` |
194
-
195
- ---
196
-
197
- ## Configuration Files
198
-
199
- | File | Function |
200
- |------|----------|
201
- | `settings.json` | General config |
202
- | `.env` | Environment variables (do not commit) |
203
- | `.env.example` | Env var template |
204
- | `.mcp.json.example` | MCP server config |
205
- | `.gitignore` | Ignored files |
206
-
207
- ---
208
-
209
- ## Summary
210
-
211
- | Directory | Count | Function |
212
- |-----------|-------|----------|
213
- | agents | 17 | Expert Roles |
214
- | commands | 50+ | Workflows |
215
- | skills | 59 | Specialized Knowledge |
216
- | router | 5 | Decision Routing |
217
- | workflows | 4 | Orchestration |
218
- | hooks | 15+ | Automation |
219
- | scripts | 10+ | Utilities |
220
-
221
- ---
222
-
223
- ## Where to Start?
224
-
225
- ### If you are new:
226
- 1. Read [agents/README.md](agents/README.md) - Understand roles
227
- 2. Read [commands/README.md](commands/README.md) - Understand workflows
228
- 3. Try simple requests
229
-
230
- ### If you want to customize:
231
- 1. See [skills/README.md](skills/README.md) - Create custom skills
232
- 2. See [hooks/README.md](hooks/README.md) - Add automation
233
- 3. See [router/README.md](router/README.md) - Understand decision logic
234
-
235
- ---
236
-
237
- ## Quick Links
238
-
239
- - [📖 AGENTS.md](../AGENTS.md) - Core Ruleset
240
- - [📖 README.md](../README.md) - Project Overview
241
- - [🔧 Settings](settings.json) - Configuration