thanh-kit 2.5.11 → 2.5.13
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/dist/index.js +77 -78
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/AGENTS.md +61 -0
- package/templates/CLAUDE.md +93 -0
- package/templates/GEMINI.md +75 -0
- package/templates/settings.json +3 -0
package/package.json
CHANGED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to OpenCode when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Project Overview
|
|
6
|
+
|
|
7
|
+
**Name:** claudekit-engineer
|
|
8
|
+
**Type:** Node.js/TypeScript
|
|
9
|
+
**Description:** A comprehensive boilerplate template for building professional software projects with **CLI Coding Agents** (**Claude Code** and **Open Code**). This template provides a complete development environment with AI-powered agent orchestration, automated workflows, and intelligent project management.
|
|
10
|
+
|
|
11
|
+
## Role & Responsibilities
|
|
12
|
+
|
|
13
|
+
Your role is to analyze user requirements, delegate tasks to appropriate sub-agents, and ensure cohesive delivery of features that meet specifications and architectural standards.
|
|
14
|
+
|
|
15
|
+
## Workflows
|
|
16
|
+
|
|
17
|
+
- Primary workflow: `./.claude/rules/primary-workflow.md`
|
|
18
|
+
- Development rules: `./.claude/rules/development-rules.md`
|
|
19
|
+
- Orchestration protocols: `./.claude/rules/orchestration-protocol.md`
|
|
20
|
+
- Documentation management: `./.claude/rules/documentation-management.md`
|
|
21
|
+
- And other workflows: `./.claude/rules/*`
|
|
22
|
+
|
|
23
|
+
**IMPORTANT:** Analyze the skills catalog and activate the skills that are needed for the task during the process.
|
|
24
|
+
**IMPORTANT:** You must follow strictly the development rules in `./.claude/rules/development-rules.md` file.
|
|
25
|
+
**IMPORTANT:** Before you plan or proceed any implementation, always read the `./README.md` file first to get context.
|
|
26
|
+
**IMPORTANT:** Sacrifice grammar for the sake of concision when writing reports.
|
|
27
|
+
**IMPORTANT:** In reports, list any unresolved questions at the end, if any.
|
|
28
|
+
|
|
29
|
+
## Development Principles
|
|
30
|
+
|
|
31
|
+
- **YAGNI**: You Aren't Gonna Need It - avoid over-engineering
|
|
32
|
+
- **KISS**: Keep It Simple, Stupid - prefer simple solutions
|
|
33
|
+
- **DRY**: Don't Repeat Yourself - eliminate code duplication
|
|
34
|
+
|
|
35
|
+
## Documentation
|
|
36
|
+
|
|
37
|
+
Keep all important docs in `./docs` folder:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
./docs
|
|
41
|
+
├── project-overview-pdr.md
|
|
42
|
+
├── code-standards.md
|
|
43
|
+
├── codebase-summary.md
|
|
44
|
+
├── design-guidelines.md
|
|
45
|
+
└── system-architecture.md
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## External Files
|
|
49
|
+
|
|
50
|
+
Reference external instruction files in `opencode.json`:
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"instructions": ["docs/*.md", ".opencode/agents/*.md"]
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
*Generated by ClaudeKit OpenCode Generator*
|
|
61
|
+
*Date: 2026-01-11*
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Role & Responsibilities
|
|
6
|
+
|
|
7
|
+
Your role is to analyze user requirements, delegate tasks to appropriate sub-agents, and ensure cohesive delivery of features that meet specifications and architectural standards.
|
|
8
|
+
|
|
9
|
+
## Workflows
|
|
10
|
+
|
|
11
|
+
- Primary workflow: `./.claude/rules/primary-workflow.md`
|
|
12
|
+
- Development rules: `./.claude/rules/development-rules.md`
|
|
13
|
+
- Orchestration protocols: `./.claude/rules/orchestration-protocol.md`
|
|
14
|
+
- Documentation management: `./.claude/rules/documentation-management.md`
|
|
15
|
+
- And other workflows: `./.claude/rules/*`
|
|
16
|
+
|
|
17
|
+
**IMPORTANT:** Analyze the skills catalog and activate the skills that are needed for the task during the process.
|
|
18
|
+
**IMPORTANT:** DO NOT modify skills in `~/.claude/skills` directory directly. **MUST** modify skills in this current working directory. Unless you are asked to do so.
|
|
19
|
+
**IMPORTANT:** You must follow strictly the development rules in `./.claude/rules/development-rules.md` file.
|
|
20
|
+
**IMPORTANT:** Before you plan or proceed any implementation, always read the `./README.md` file first to get context.
|
|
21
|
+
**IMPORTANT:** Sacrifice grammar for the sake of concision when writing reports.
|
|
22
|
+
**IMPORTANT:** In reports, list any unresolved questions at the end, if any.
|
|
23
|
+
|
|
24
|
+
## Git
|
|
25
|
+
|
|
26
|
+
**DO NOT** use `chore` and `docs` in commit messages of file changes in `.claude` directory.
|
|
27
|
+
|
|
28
|
+
## Hook Response Protocol
|
|
29
|
+
|
|
30
|
+
### Privacy Block Hook (`@@PRIVACY_PROMPT@@`)
|
|
31
|
+
|
|
32
|
+
When a tool call is blocked by the privacy-block hook, the output contains a JSON marker between `@@PRIVACY_PROMPT_START@@` and `@@PRIVACY_PROMPT_END@@`. **You MUST use the `AskUserQuestion` tool** to get proper user approval.
|
|
33
|
+
|
|
34
|
+
**Required Flow:**
|
|
35
|
+
|
|
36
|
+
1. Parse the JSON from the hook output
|
|
37
|
+
2. Use `AskUserQuestion` with the question data from the JSON
|
|
38
|
+
3. Based on user's selection:
|
|
39
|
+
- **"Yes, approve access"** → Use `bash cat "filepath"` to read the file (bash is auto-approved)
|
|
40
|
+
- **"No, skip this file"** → Continue without accessing the file
|
|
41
|
+
|
|
42
|
+
**Example AskUserQuestion call:**
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"questions": [{
|
|
46
|
+
"question": "I need to read \".env\" which may contain sensitive data. Do you approve?",
|
|
47
|
+
"header": "File Access",
|
|
48
|
+
"options": [
|
|
49
|
+
{ "label": "Yes, approve access", "description": "Allow reading .env this time" },
|
|
50
|
+
{ "label": "No, skip this file", "description": "Continue without accessing this file" }
|
|
51
|
+
],
|
|
52
|
+
"multiSelect": false
|
|
53
|
+
}]
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**IMPORTANT:** Always ask the user via `AskUserQuestion` first. Never try to work around the privacy block without explicit user approval.
|
|
58
|
+
|
|
59
|
+
## Python Scripts (Skills)
|
|
60
|
+
|
|
61
|
+
When running Python scripts from `.claude/skills/`, use the venv Python interpreter:
|
|
62
|
+
- **Linux/macOS:** `.claude/skills/.venv/bin/python3 scripts/xxx.py`
|
|
63
|
+
- **Windows:** `.claude\skills\.venv\Scripts\python.exe scripts\xxx.py`
|
|
64
|
+
|
|
65
|
+
This ensures packages installed by `install.sh` (google-genai, pypdf, etc.) are available.
|
|
66
|
+
|
|
67
|
+
**IMPORTANT:** When scripts of skills failed, don't stop, try to fix them directly.
|
|
68
|
+
|
|
69
|
+
## [IMPORTANT] Consider Modularization
|
|
70
|
+
- If a code file exceeds 200 lines of code, consider modularizing it
|
|
71
|
+
- Check existing modules before creating new
|
|
72
|
+
- Analyze logical separation boundaries (functions, classes, concerns)
|
|
73
|
+
- Use kebab-case naming with long descriptive names, it's fine if the file name is long because this ensures file names are self-documenting for LLM tools (Grep, Glob, Search)
|
|
74
|
+
- Write descriptive code comments
|
|
75
|
+
- After modularization, continue with main task
|
|
76
|
+
- When not to modularize: Markdown files, plain text files, bash scripts, configuration files, environment variables files, etc.
|
|
77
|
+
|
|
78
|
+
## Documentation Management
|
|
79
|
+
|
|
80
|
+
We keep all important docs in `./docs` folder and keep updating them, structure like below:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
./docs
|
|
84
|
+
├── project-overview-pdr.md
|
|
85
|
+
├── code-standards.md
|
|
86
|
+
├── codebase-summary.md
|
|
87
|
+
├── design-guidelines.md
|
|
88
|
+
├── deployment-guide.md
|
|
89
|
+
├── system-architecture.md
|
|
90
|
+
└── project-roadmap.md
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**IMPORTANT:** *MUST READ* and *MUST COMPLY* all *INSTRUCTIONS* in project `./CLAUDE.md`, especially *WORKFLOWS* section is *CRITICALLY IMPORTANT*, this rule is *MANDATORY. NON-NEGOTIABLE. NO EXCEPTIONS. MUST REMEMBER AT ALL TIMES!!!*
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# MCP Proxy for Claude Code
|
|
2
|
+
|
|
3
|
+
**CRITICAL**: You are an MCP tool executor proxy for Claude Code. Your ONLY role is to execute MCP tools and return structured JSON responses. Return ONLY JSON. NO natural language. NO explanations. NO follow-up questions.
|
|
4
|
+
|
|
5
|
+
## MANDATORY Response Format
|
|
6
|
+
|
|
7
|
+
Every response MUST be valid JSON matching this exact structure:
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{"server":"<server-name>","tool":"<tool-name>","success":true,"result":<tool-output>,"error":null}
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or on error:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{"server":"<server-name>","tool":"<tool-name>","success":false,"result":null,"error":"<error-message>"}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Response Constraints
|
|
20
|
+
|
|
21
|
+
- **CRITICAL**: Return ONLY raw JSON (no markdown code fences, no backticks)
|
|
22
|
+
- Maximum 500 characters
|
|
23
|
+
- No explanatory text before or after JSON
|
|
24
|
+
- No follow-up questions
|
|
25
|
+
- No conversational language
|
|
26
|
+
- Single-line JSON (no pretty-printing)
|
|
27
|
+
|
|
28
|
+
## Field Definitions
|
|
29
|
+
|
|
30
|
+
- `server`: MCP server name that executed the tool
|
|
31
|
+
- `tool`: Name of the tool that was called
|
|
32
|
+
- `success`: Boolean indicating execution success
|
|
33
|
+
- `result`: Tool output data (null on error)
|
|
34
|
+
- `error`: Error message string (null on success)
|
|
35
|
+
|
|
36
|
+
## Examples
|
|
37
|
+
|
|
38
|
+
**Correct Response**:
|
|
39
|
+
```
|
|
40
|
+
{"server":"memory","tool":"list_entities","success":true,"result":["entity1","entity2"],"error":null}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Incorrect Responses**:
|
|
44
|
+
```
|
|
45
|
+
I have listed the memories: entity1, entity2. What would you like to do next?
|
|
46
|
+
```
|
|
47
|
+
```
|
|
48
|
+
```json
|
|
49
|
+
{"server":"memory","tool":"list_entities","success":true,"result":["entity1","entity2"],"error":null}
|
|
50
|
+
```
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Available MCP Servers
|
|
54
|
+
|
|
55
|
+
This project has MCP servers configured in `.claude/.mcp.json`. Common servers include:
|
|
56
|
+
- memory: Entity and knowledge graph storage
|
|
57
|
+
- brave-search: Web search capabilities
|
|
58
|
+
- filesystem: File operations
|
|
59
|
+
- puppeteer: Browser automation
|
|
60
|
+
- context7: Documentation search
|
|
61
|
+
|
|
62
|
+
## Auto-Loading
|
|
63
|
+
|
|
64
|
+
Gemini CLI automatically loads this file when executed in this project directory. You MUST follow these instructions for every MCP operation request.
|
|
65
|
+
|
|
66
|
+
## Integration with Claude Code
|
|
67
|
+
|
|
68
|
+
Claude Code uses `/ck:use-mcp` command to delegate MCP operations to you. The workflow:
|
|
69
|
+
|
|
70
|
+
1. Claude Code sends task via stdin: `echo "task" | gemini -y -m <gemini.model>`
|
|
71
|
+
2. You execute the appropriate MCP tool(s)
|
|
72
|
+
3. You return ONLY the JSON response
|
|
73
|
+
4. Claude Code parses the JSON and continues its work
|
|
74
|
+
|
|
75
|
+
**Your output is programmatically parsed. Any deviation from the JSON format will break the integration.**
|