@cregis-dev/cckit 0.6.6 → 0.6.8
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/LICENSE +21 -21
- package/bin/cckit.js +3 -3
- package/package.json +53 -53
- package/registry.json +145 -145
- package/src/cli.js +79 -79
- package/src/commands/init.js +174 -174
- package/src/commands/status.js +125 -125
- package/src/commands/update.js +192 -192
- package/src/core/config.js +82 -75
- package/src/core/orchestrator.js +79 -79
- package/src/core/registry.js +60 -60
- package/src/steps/add-plugin.js +148 -116
- package/src/steps/configure-user.js +181 -181
- package/src/steps/enable-plugins.js +97 -97
- package/src/steps/install-bmad.js +85 -85
- package/src/steps/install-mcp.js +70 -70
- package/src/steps/install-rules.js +69 -69
- package/src/steps/install-skills.js +56 -56
- package/src/utils/compare-versions.js +106 -106
- package/src/utils/fs.js +33 -33
- package/src/utils/logger.js +16 -16
- package/src/utils/manifest.js +101 -101
- package/src/utils/prompt.js +41 -41
- package/templates/mcp/claude-code/.mcp.json +40 -40
- package/templates/rules/README.md +103 -103
- package/templates/rules/common/agents.md +49 -49
- package/templates/rules/common/coding-style.md +48 -48
- package/templates/rules/common/development-workflow.md +37 -37
- package/templates/rules/common/git-workflow.md +24 -24
- package/templates/rules/common/hooks.md +30 -30
- package/templates/rules/common/patterns.md +31 -31
- package/templates/rules/common/performance.md +55 -55
- package/templates/rules/common/security.md +29 -29
- package/templates/rules/common/testing.md +29 -29
- package/templates/rules/golang/coding-style.md +32 -32
- package/templates/rules/golang/hooks.md +17 -17
- package/templates/rules/golang/patterns.md +45 -45
- package/templates/rules/golang/security.md +34 -34
- package/templates/rules/golang/testing.md +31 -31
- package/templates/rules/python/coding-style.md +42 -42
- package/templates/rules/python/hooks.md +19 -19
- package/templates/rules/python/patterns.md +39 -39
- package/templates/rules/python/security.md +30 -30
- package/templates/rules/python/testing.md +38 -38
- package/templates/rules/swift/coding-style.md +47 -47
- package/templates/rules/swift/hooks.md +20 -20
- package/templates/rules/swift/patterns.md +66 -66
- package/templates/rules/swift/security.md +33 -33
- package/templates/rules/swift/testing.md +45 -45
- package/templates/rules/typescript/coding-style.md +65 -65
- package/templates/rules/typescript/hooks.md +22 -22
- package/templates/rules/typescript/patterns.md +52 -52
- package/templates/rules/typescript/security.md +28 -28
- package/templates/rules/typescript/testing.md +18 -18
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://raw.githubusercontent.com/anthropics/claude-code/main/.mcp.schema.json",
|
|
3
|
-
"mcpServers": {
|
|
4
|
-
"cf-bindings": {
|
|
5
|
-
"command": "npx",
|
|
6
|
-
"args": ["-y", "mcp-remote", "https://bindings.mcp.cloudflare.com/mcp"],
|
|
7
|
-
"description": "Workers Bindings: D1, R2, KV, Queues 资源管理",
|
|
8
|
-
"disabled": true
|
|
9
|
-
},
|
|
10
|
-
"cf-observability": {
|
|
11
|
-
"command": "npx",
|
|
12
|
-
"args": ["-y", "mcp-remote", "https://observability.mcp.cloudflare.com/mcp"],
|
|
13
|
-
"description": "Workers 日志分析与调试",
|
|
14
|
-
"disabled": true
|
|
15
|
-
},
|
|
16
|
-
"cf-builds": {
|
|
17
|
-
"command": "npx",
|
|
18
|
-
"args": ["-y", "mcp-remote", "https://builds.mcp.cloudflare.com/mcp"],
|
|
19
|
-
"description": "Workers 构建状态监控",
|
|
20
|
-
"disabled": true
|
|
21
|
-
},
|
|
22
|
-
"cf-docs": {
|
|
23
|
-
"command": "npx",
|
|
24
|
-
"args": ["-y", "mcp-remote", "https://docs.mcp.cloudflare.com/sse"],
|
|
25
|
-
"description": "Cloudflare 官方文档查询",
|
|
26
|
-
"disabled": true
|
|
27
|
-
},
|
|
28
|
-
"context7": {
|
|
29
|
-
"command": "npx",
|
|
30
|
-
"args": ["-y", "@upstash/context7-mcp@latest"],
|
|
31
|
-
"description": "库文档实时查询(Hono, Zod, React Query, Zustand, Radix UI 等)"
|
|
32
|
-
},
|
|
33
|
-
"playwright": {
|
|
34
|
-
"command": "npx",
|
|
35
|
-
"args": ["-y", "@anthropic-ai/mcp-playwright@latest"],
|
|
36
|
-
"description": "Playwright 浏览器自动化,用于 E2E 测试和 UI 验证",
|
|
37
|
-
"disabled": true
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/anthropics/claude-code/main/.mcp.schema.json",
|
|
3
|
+
"mcpServers": {
|
|
4
|
+
"cf-bindings": {
|
|
5
|
+
"command": "npx",
|
|
6
|
+
"args": ["-y", "mcp-remote", "https://bindings.mcp.cloudflare.com/mcp"],
|
|
7
|
+
"description": "Workers Bindings: D1, R2, KV, Queues 资源管理",
|
|
8
|
+
"disabled": true
|
|
9
|
+
},
|
|
10
|
+
"cf-observability": {
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": ["-y", "mcp-remote", "https://observability.mcp.cloudflare.com/mcp"],
|
|
13
|
+
"description": "Workers 日志分析与调试",
|
|
14
|
+
"disabled": true
|
|
15
|
+
},
|
|
16
|
+
"cf-builds": {
|
|
17
|
+
"command": "npx",
|
|
18
|
+
"args": ["-y", "mcp-remote", "https://builds.mcp.cloudflare.com/mcp"],
|
|
19
|
+
"description": "Workers 构建状态监控",
|
|
20
|
+
"disabled": true
|
|
21
|
+
},
|
|
22
|
+
"cf-docs": {
|
|
23
|
+
"command": "npx",
|
|
24
|
+
"args": ["-y", "mcp-remote", "https://docs.mcp.cloudflare.com/sse"],
|
|
25
|
+
"description": "Cloudflare 官方文档查询",
|
|
26
|
+
"disabled": true
|
|
27
|
+
},
|
|
28
|
+
"context7": {
|
|
29
|
+
"command": "npx",
|
|
30
|
+
"args": ["-y", "@upstash/context7-mcp@latest"],
|
|
31
|
+
"description": "库文档实时查询(Hono, Zod, React Query, Zustand, Radix UI 等)"
|
|
32
|
+
},
|
|
33
|
+
"playwright": {
|
|
34
|
+
"command": "npx",
|
|
35
|
+
"args": ["-y", "@anthropic-ai/mcp-playwright@latest"],
|
|
36
|
+
"description": "Playwright 浏览器自动化,用于 E2E 测试和 UI 验证",
|
|
37
|
+
"disabled": true
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
# Rules
|
|
2
|
-
## Structure
|
|
3
|
-
|
|
4
|
-
Rules are organized into a **common** layer plus **language-specific** directories:
|
|
5
|
-
|
|
6
|
-
```
|
|
7
|
-
rules/
|
|
8
|
-
├── common/ # Language-agnostic principles (always install)
|
|
9
|
-
│ ├── coding-style.md
|
|
10
|
-
│ ├── git-workflow.md
|
|
11
|
-
│ ├── testing.md
|
|
12
|
-
│ ├── performance.md
|
|
13
|
-
│ ├── patterns.md
|
|
14
|
-
│ ├── hooks.md
|
|
15
|
-
│ ├── agents.md
|
|
16
|
-
│ └── security.md
|
|
17
|
-
├── typescript/ # TypeScript/JavaScript specific
|
|
18
|
-
├── python/ # Python specific
|
|
19
|
-
├── golang/ # Go specific
|
|
20
|
-
└── swift/ # Swift specific
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
- **common/** contains universal principles — no language-specific code examples.
|
|
24
|
-
- **Language directories** extend the common rules with framework-specific patterns, tools, and code examples. Each file references its common counterpart.
|
|
25
|
-
|
|
26
|
-
## Installation
|
|
27
|
-
|
|
28
|
-
### Option 1: Install Script (Recommended)
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
# Install common + one or more language-specific rule sets
|
|
32
|
-
./install.sh typescript
|
|
33
|
-
./install.sh python
|
|
34
|
-
./install.sh golang
|
|
35
|
-
./install.sh swift
|
|
36
|
-
|
|
37
|
-
# Install multiple languages at once
|
|
38
|
-
./install.sh typescript python
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
### Option 2: Manual Installation
|
|
42
|
-
|
|
43
|
-
> **Important:** Copy entire directories — do NOT flatten with `/*`.
|
|
44
|
-
> Common and language-specific directories contain files with the same names.
|
|
45
|
-
> Flattening them into one directory causes language-specific files to overwrite
|
|
46
|
-
> common rules, and breaks the relative `../common/` references used by
|
|
47
|
-
> language-specific files.
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
# Install common rules (required for all projects)
|
|
51
|
-
cp -r rules/common ~/.claude/rules/common
|
|
52
|
-
|
|
53
|
-
# Install language-specific rules based on your project's tech stack
|
|
54
|
-
cp -r rules/typescript ~/.claude/rules/typescript
|
|
55
|
-
cp -r rules/python ~/.claude/rules/python
|
|
56
|
-
cp -r rules/golang ~/.claude/rules/golang
|
|
57
|
-
cp -r rules/swift ~/.claude/rules/swift
|
|
58
|
-
|
|
59
|
-
# Attention ! ! ! Configure according to your actual project requirements; the configuration here is for reference only.
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## Rules vs Skills
|
|
63
|
-
|
|
64
|
-
- **Rules** define standards, conventions, and checklists that apply broadly (e.g., "80% test coverage", "no hardcoded secrets").
|
|
65
|
-
- **Skills** (`skills/` directory) provide deep, actionable reference material for specific tasks (e.g., `python-patterns`, `golang-testing`).
|
|
66
|
-
|
|
67
|
-
Language-specific rule files reference relevant skills where appropriate. Rules tell you *what* to do; skills tell you *how* to do it.
|
|
68
|
-
|
|
69
|
-
## Adding a New Language
|
|
70
|
-
|
|
71
|
-
To add support for a new language (e.g., `rust/`):
|
|
72
|
-
|
|
73
|
-
1. Create a `rules/rust/` directory
|
|
74
|
-
2. Add files that extend the common rules:
|
|
75
|
-
- `coding-style.md` — formatting tools, idioms, error handling patterns
|
|
76
|
-
- `testing.md` — test framework, coverage tools, test organization
|
|
77
|
-
- `patterns.md` — language-specific design patterns
|
|
78
|
-
- `hooks.md` — PostToolUse hooks for formatters, linters, type checkers
|
|
79
|
-
- `security.md` — secret management, security scanning tools
|
|
80
|
-
3. Each file should start with:
|
|
81
|
-
```
|
|
82
|
-
> This file extends [common/xxx.md](../common/xxx.md) with <Language> specific content.
|
|
83
|
-
```
|
|
84
|
-
4. Reference existing skills if available, or create new ones under `skills/`.
|
|
85
|
-
|
|
86
|
-
## Rule Priority
|
|
87
|
-
|
|
88
|
-
When language-specific rules and common rules conflict, **language-specific rules take precedence** (specific overrides general). This follows the standard layered configuration pattern (similar to CSS specificity or `.gitignore` precedence).
|
|
89
|
-
|
|
90
|
-
- `rules/common/` defines universal defaults applicable to all projects.
|
|
91
|
-
- `rules/golang/`, `rules/python/`, `rules/typescript/`, etc. override those defaults where language idioms differ.
|
|
92
|
-
|
|
93
|
-
### Example
|
|
94
|
-
|
|
95
|
-
`common/coding-style.md` recommends immutability as a default principle. A language-specific `golang/coding-style.md` can override this:
|
|
96
|
-
|
|
97
|
-
> Idiomatic Go uses pointer receivers for struct mutation — see [common/coding-style.md](../common/coding-style.md) for the general principle, but Go-idiomatic mutation is preferred here.
|
|
98
|
-
|
|
99
|
-
### Common rules with override notes
|
|
100
|
-
|
|
101
|
-
Rules in `rules/common/` that may be overridden by language-specific files are marked with:
|
|
102
|
-
|
|
103
|
-
> **Language note**: This rule may be overridden by language-specific rules for languages where this pattern is not idiomatic.
|
|
1
|
+
# Rules
|
|
2
|
+
## Structure
|
|
3
|
+
|
|
4
|
+
Rules are organized into a **common** layer plus **language-specific** directories:
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
rules/
|
|
8
|
+
├── common/ # Language-agnostic principles (always install)
|
|
9
|
+
│ ├── coding-style.md
|
|
10
|
+
│ ├── git-workflow.md
|
|
11
|
+
│ ├── testing.md
|
|
12
|
+
│ ├── performance.md
|
|
13
|
+
│ ├── patterns.md
|
|
14
|
+
│ ├── hooks.md
|
|
15
|
+
│ ├── agents.md
|
|
16
|
+
│ └── security.md
|
|
17
|
+
├── typescript/ # TypeScript/JavaScript specific
|
|
18
|
+
├── python/ # Python specific
|
|
19
|
+
├── golang/ # Go specific
|
|
20
|
+
└── swift/ # Swift specific
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
- **common/** contains universal principles — no language-specific code examples.
|
|
24
|
+
- **Language directories** extend the common rules with framework-specific patterns, tools, and code examples. Each file references its common counterpart.
|
|
25
|
+
|
|
26
|
+
## Installation
|
|
27
|
+
|
|
28
|
+
### Option 1: Install Script (Recommended)
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Install common + one or more language-specific rule sets
|
|
32
|
+
./install.sh typescript
|
|
33
|
+
./install.sh python
|
|
34
|
+
./install.sh golang
|
|
35
|
+
./install.sh swift
|
|
36
|
+
|
|
37
|
+
# Install multiple languages at once
|
|
38
|
+
./install.sh typescript python
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Option 2: Manual Installation
|
|
42
|
+
|
|
43
|
+
> **Important:** Copy entire directories — do NOT flatten with `/*`.
|
|
44
|
+
> Common and language-specific directories contain files with the same names.
|
|
45
|
+
> Flattening them into one directory causes language-specific files to overwrite
|
|
46
|
+
> common rules, and breaks the relative `../common/` references used by
|
|
47
|
+
> language-specific files.
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# Install common rules (required for all projects)
|
|
51
|
+
cp -r rules/common ~/.claude/rules/common
|
|
52
|
+
|
|
53
|
+
# Install language-specific rules based on your project's tech stack
|
|
54
|
+
cp -r rules/typescript ~/.claude/rules/typescript
|
|
55
|
+
cp -r rules/python ~/.claude/rules/python
|
|
56
|
+
cp -r rules/golang ~/.claude/rules/golang
|
|
57
|
+
cp -r rules/swift ~/.claude/rules/swift
|
|
58
|
+
|
|
59
|
+
# Attention ! ! ! Configure according to your actual project requirements; the configuration here is for reference only.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Rules vs Skills
|
|
63
|
+
|
|
64
|
+
- **Rules** define standards, conventions, and checklists that apply broadly (e.g., "80% test coverage", "no hardcoded secrets").
|
|
65
|
+
- **Skills** (`skills/` directory) provide deep, actionable reference material for specific tasks (e.g., `python-patterns`, `golang-testing`).
|
|
66
|
+
|
|
67
|
+
Language-specific rule files reference relevant skills where appropriate. Rules tell you *what* to do; skills tell you *how* to do it.
|
|
68
|
+
|
|
69
|
+
## Adding a New Language
|
|
70
|
+
|
|
71
|
+
To add support for a new language (e.g., `rust/`):
|
|
72
|
+
|
|
73
|
+
1. Create a `rules/rust/` directory
|
|
74
|
+
2. Add files that extend the common rules:
|
|
75
|
+
- `coding-style.md` — formatting tools, idioms, error handling patterns
|
|
76
|
+
- `testing.md` — test framework, coverage tools, test organization
|
|
77
|
+
- `patterns.md` — language-specific design patterns
|
|
78
|
+
- `hooks.md` — PostToolUse hooks for formatters, linters, type checkers
|
|
79
|
+
- `security.md` — secret management, security scanning tools
|
|
80
|
+
3. Each file should start with:
|
|
81
|
+
```
|
|
82
|
+
> This file extends [common/xxx.md](../common/xxx.md) with <Language> specific content.
|
|
83
|
+
```
|
|
84
|
+
4. Reference existing skills if available, or create new ones under `skills/`.
|
|
85
|
+
|
|
86
|
+
## Rule Priority
|
|
87
|
+
|
|
88
|
+
When language-specific rules and common rules conflict, **language-specific rules take precedence** (specific overrides general). This follows the standard layered configuration pattern (similar to CSS specificity or `.gitignore` precedence).
|
|
89
|
+
|
|
90
|
+
- `rules/common/` defines universal defaults applicable to all projects.
|
|
91
|
+
- `rules/golang/`, `rules/python/`, `rules/typescript/`, etc. override those defaults where language idioms differ.
|
|
92
|
+
|
|
93
|
+
### Example
|
|
94
|
+
|
|
95
|
+
`common/coding-style.md` recommends immutability as a default principle. A language-specific `golang/coding-style.md` can override this:
|
|
96
|
+
|
|
97
|
+
> Idiomatic Go uses pointer receivers for struct mutation — see [common/coding-style.md](../common/coding-style.md) for the general principle, but Go-idiomatic mutation is preferred here.
|
|
98
|
+
|
|
99
|
+
### Common rules with override notes
|
|
100
|
+
|
|
101
|
+
Rules in `rules/common/` that may be overridden by language-specific files are marked with:
|
|
102
|
+
|
|
103
|
+
> **Language note**: This rule may be overridden by language-specific rules for languages where this pattern is not idiomatic.
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
# Agent Orchestration
|
|
2
|
-
|
|
3
|
-
## Available Agents
|
|
4
|
-
|
|
5
|
-
Located in `~/.claude/agents/`:
|
|
6
|
-
|
|
7
|
-
| Agent | Purpose | When to Use |
|
|
8
|
-
|-------|---------|-------------|
|
|
9
|
-
| planner | Implementation planning | Complex features, refactoring |
|
|
10
|
-
| architect | System design | Architectural decisions |
|
|
11
|
-
| tdd-guide | Test-driven development | New features, bug fixes |
|
|
12
|
-
| code-reviewer | Code review | After writing code |
|
|
13
|
-
| security-reviewer | Security analysis | Before commits |
|
|
14
|
-
| build-error-resolver | Fix build errors | When build fails |
|
|
15
|
-
| e2e-runner | E2E testing | Critical user flows |
|
|
16
|
-
| refactor-cleaner | Dead code cleanup | Code maintenance |
|
|
17
|
-
| doc-updater | Documentation | Updating docs |
|
|
18
|
-
|
|
19
|
-
## Immediate Agent Usage
|
|
20
|
-
|
|
21
|
-
No user prompt needed:
|
|
22
|
-
1. Complex feature requests - Use **planner** agent
|
|
23
|
-
2. Code just written/modified - Use **code-reviewer** agent
|
|
24
|
-
3. Bug fix or new feature - Use **tdd-guide** agent
|
|
25
|
-
4. Architectural decision - Use **architect** agent
|
|
26
|
-
|
|
27
|
-
## Parallel Task Execution
|
|
28
|
-
|
|
29
|
-
ALWAYS use parallel Task execution for independent operations:
|
|
30
|
-
|
|
31
|
-
```markdown
|
|
32
|
-
# GOOD: Parallel execution
|
|
33
|
-
Launch 3 agents in parallel:
|
|
34
|
-
1. Agent 1: Security analysis of auth module
|
|
35
|
-
2. Agent 2: Performance review of cache system
|
|
36
|
-
3. Agent 3: Type checking of utilities
|
|
37
|
-
|
|
38
|
-
# BAD: Sequential when unnecessary
|
|
39
|
-
First agent 1, then agent 2, then agent 3
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## Multi-Perspective Analysis
|
|
43
|
-
|
|
44
|
-
For complex problems, use split role sub-agents:
|
|
45
|
-
- Factual reviewer
|
|
46
|
-
- Senior engineer
|
|
47
|
-
- Security expert
|
|
48
|
-
- Consistency reviewer
|
|
49
|
-
- Redundancy checker
|
|
1
|
+
# Agent Orchestration
|
|
2
|
+
|
|
3
|
+
## Available Agents
|
|
4
|
+
|
|
5
|
+
Located in `~/.claude/agents/`:
|
|
6
|
+
|
|
7
|
+
| Agent | Purpose | When to Use |
|
|
8
|
+
|-------|---------|-------------|
|
|
9
|
+
| planner | Implementation planning | Complex features, refactoring |
|
|
10
|
+
| architect | System design | Architectural decisions |
|
|
11
|
+
| tdd-guide | Test-driven development | New features, bug fixes |
|
|
12
|
+
| code-reviewer | Code review | After writing code |
|
|
13
|
+
| security-reviewer | Security analysis | Before commits |
|
|
14
|
+
| build-error-resolver | Fix build errors | When build fails |
|
|
15
|
+
| e2e-runner | E2E testing | Critical user flows |
|
|
16
|
+
| refactor-cleaner | Dead code cleanup | Code maintenance |
|
|
17
|
+
| doc-updater | Documentation | Updating docs |
|
|
18
|
+
|
|
19
|
+
## Immediate Agent Usage
|
|
20
|
+
|
|
21
|
+
No user prompt needed:
|
|
22
|
+
1. Complex feature requests - Use **planner** agent
|
|
23
|
+
2. Code just written/modified - Use **code-reviewer** agent
|
|
24
|
+
3. Bug fix or new feature - Use **tdd-guide** agent
|
|
25
|
+
4. Architectural decision - Use **architect** agent
|
|
26
|
+
|
|
27
|
+
## Parallel Task Execution
|
|
28
|
+
|
|
29
|
+
ALWAYS use parallel Task execution for independent operations:
|
|
30
|
+
|
|
31
|
+
```markdown
|
|
32
|
+
# GOOD: Parallel execution
|
|
33
|
+
Launch 3 agents in parallel:
|
|
34
|
+
1. Agent 1: Security analysis of auth module
|
|
35
|
+
2. Agent 2: Performance review of cache system
|
|
36
|
+
3. Agent 3: Type checking of utilities
|
|
37
|
+
|
|
38
|
+
# BAD: Sequential when unnecessary
|
|
39
|
+
First agent 1, then agent 2, then agent 3
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Multi-Perspective Analysis
|
|
43
|
+
|
|
44
|
+
For complex problems, use split role sub-agents:
|
|
45
|
+
- Factual reviewer
|
|
46
|
+
- Senior engineer
|
|
47
|
+
- Security expert
|
|
48
|
+
- Consistency reviewer
|
|
49
|
+
- Redundancy checker
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
# Coding Style
|
|
2
|
-
|
|
3
|
-
## Immutability (CRITICAL)
|
|
4
|
-
|
|
5
|
-
ALWAYS create new objects, NEVER mutate existing ones:
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
// Pseudocode
|
|
9
|
-
WRONG: modify(original, field, value) → changes original in-place
|
|
10
|
-
CORRECT: update(original, field, value) → returns new copy with change
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Rationale: Immutable data prevents hidden side effects, makes debugging easier, and enables safe concurrency.
|
|
14
|
-
|
|
15
|
-
## File Organization
|
|
16
|
-
|
|
17
|
-
MANY SMALL FILES > FEW LARGE FILES:
|
|
18
|
-
- High cohesion, low coupling
|
|
19
|
-
- 200-400 lines typical, 800 max
|
|
20
|
-
- Extract utilities from large modules
|
|
21
|
-
- Organize by feature/domain, not by type
|
|
22
|
-
|
|
23
|
-
## Error Handling
|
|
24
|
-
|
|
25
|
-
ALWAYS handle errors comprehensively:
|
|
26
|
-
- Handle errors explicitly at every level
|
|
27
|
-
- Provide user-friendly error messages in UI-facing code
|
|
28
|
-
- Log detailed error context on the server side
|
|
29
|
-
- Never silently swallow errors
|
|
30
|
-
|
|
31
|
-
## Input Validation
|
|
32
|
-
|
|
33
|
-
ALWAYS validate at system boundaries:
|
|
34
|
-
- Validate all user input before processing
|
|
35
|
-
- Use schema-based validation where available
|
|
36
|
-
- Fail fast with clear error messages
|
|
37
|
-
- Never trust external data (API responses, user input, file content)
|
|
38
|
-
|
|
39
|
-
## Code Quality Checklist
|
|
40
|
-
|
|
41
|
-
Before marking work complete:
|
|
42
|
-
- [ ] Code is readable and well-named
|
|
43
|
-
- [ ] Functions are small (<50 lines)
|
|
44
|
-
- [ ] Files are focused (<800 lines)
|
|
45
|
-
- [ ] No deep nesting (>4 levels)
|
|
46
|
-
- [ ] Proper error handling
|
|
47
|
-
- [ ] No hardcoded values (use constants or config)
|
|
48
|
-
- [ ] No mutation (immutable patterns used)
|
|
1
|
+
# Coding Style
|
|
2
|
+
|
|
3
|
+
## Immutability (CRITICAL)
|
|
4
|
+
|
|
5
|
+
ALWAYS create new objects, NEVER mutate existing ones:
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
// Pseudocode
|
|
9
|
+
WRONG: modify(original, field, value) → changes original in-place
|
|
10
|
+
CORRECT: update(original, field, value) → returns new copy with change
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Rationale: Immutable data prevents hidden side effects, makes debugging easier, and enables safe concurrency.
|
|
14
|
+
|
|
15
|
+
## File Organization
|
|
16
|
+
|
|
17
|
+
MANY SMALL FILES > FEW LARGE FILES:
|
|
18
|
+
- High cohesion, low coupling
|
|
19
|
+
- 200-400 lines typical, 800 max
|
|
20
|
+
- Extract utilities from large modules
|
|
21
|
+
- Organize by feature/domain, not by type
|
|
22
|
+
|
|
23
|
+
## Error Handling
|
|
24
|
+
|
|
25
|
+
ALWAYS handle errors comprehensively:
|
|
26
|
+
- Handle errors explicitly at every level
|
|
27
|
+
- Provide user-friendly error messages in UI-facing code
|
|
28
|
+
- Log detailed error context on the server side
|
|
29
|
+
- Never silently swallow errors
|
|
30
|
+
|
|
31
|
+
## Input Validation
|
|
32
|
+
|
|
33
|
+
ALWAYS validate at system boundaries:
|
|
34
|
+
- Validate all user input before processing
|
|
35
|
+
- Use schema-based validation where available
|
|
36
|
+
- Fail fast with clear error messages
|
|
37
|
+
- Never trust external data (API responses, user input, file content)
|
|
38
|
+
|
|
39
|
+
## Code Quality Checklist
|
|
40
|
+
|
|
41
|
+
Before marking work complete:
|
|
42
|
+
- [ ] Code is readable and well-named
|
|
43
|
+
- [ ] Functions are small (<50 lines)
|
|
44
|
+
- [ ] Files are focused (<800 lines)
|
|
45
|
+
- [ ] No deep nesting (>4 levels)
|
|
46
|
+
- [ ] Proper error handling
|
|
47
|
+
- [ ] No hardcoded values (use constants or config)
|
|
48
|
+
- [ ] No mutation (immutable patterns used)
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
# Development Workflow
|
|
2
|
-
|
|
3
|
-
> This file extends [common/git-workflow.md](./git-workflow.md) with the full feature development process that happens before git operations.
|
|
4
|
-
|
|
5
|
-
The Feature Implementation Workflow describes the development pipeline: research, planning, TDD, code review, and then committing to git.
|
|
6
|
-
|
|
7
|
-
## Feature Implementation Workflow
|
|
8
|
-
|
|
9
|
-
0. **Research & Reuse** _(mandatory before any new implementation)_
|
|
10
|
-
- **GitHub code search first:** Run `gh search repos` and `gh search code` to find existing implementations, templates, and patterns before writing anything new.
|
|
11
|
-
- **Exa MCP for research:** Use `exa-web-search` MCP during the planning phase for broader research, data ingestion, and discovering prior art.
|
|
12
|
-
- **Check package registries:** Search npm, PyPI, crates.io, and other registries before writing utility code. Prefer battle-tested libraries over hand-rolled solutions.
|
|
13
|
-
- **Search for adaptable implementations:** Look for open-source projects that solve 80%+ of the problem and can be forked, ported, or wrapped.
|
|
14
|
-
- Prefer adopting or porting a proven approach over writing net-new code when it meets the requirement.
|
|
15
|
-
|
|
16
|
-
1. **Plan First**
|
|
17
|
-
- Use **planner** agent to create implementation plan
|
|
18
|
-
- Generate planning docs before coding: PRD, architecture, system_design, tech_doc, task_list
|
|
19
|
-
- Identify dependencies and risks
|
|
20
|
-
- Break down into phases
|
|
21
|
-
|
|
22
|
-
2. **TDD Approach**
|
|
23
|
-
- Use **tdd-guide** agent
|
|
24
|
-
- Write tests first (RED)
|
|
25
|
-
- Implement to pass tests (GREEN)
|
|
26
|
-
- Refactor (IMPROVE)
|
|
27
|
-
- Verify 80%+ coverage
|
|
28
|
-
|
|
29
|
-
3. **Code Review**
|
|
30
|
-
- Use **code-reviewer** agent immediately after writing code
|
|
31
|
-
- Address CRITICAL and HIGH issues
|
|
32
|
-
- Fix MEDIUM issues when possible
|
|
33
|
-
|
|
34
|
-
4. **Commit & Push**
|
|
35
|
-
- Detailed commit messages
|
|
36
|
-
- Follow conventional commits format
|
|
37
|
-
- See [git-workflow.md](./git-workflow.md) for commit message format and PR process
|
|
1
|
+
# Development Workflow
|
|
2
|
+
|
|
3
|
+
> This file extends [common/git-workflow.md](./git-workflow.md) with the full feature development process that happens before git operations.
|
|
4
|
+
|
|
5
|
+
The Feature Implementation Workflow describes the development pipeline: research, planning, TDD, code review, and then committing to git.
|
|
6
|
+
|
|
7
|
+
## Feature Implementation Workflow
|
|
8
|
+
|
|
9
|
+
0. **Research & Reuse** _(mandatory before any new implementation)_
|
|
10
|
+
- **GitHub code search first:** Run `gh search repos` and `gh search code` to find existing implementations, templates, and patterns before writing anything new.
|
|
11
|
+
- **Exa MCP for research:** Use `exa-web-search` MCP during the planning phase for broader research, data ingestion, and discovering prior art.
|
|
12
|
+
- **Check package registries:** Search npm, PyPI, crates.io, and other registries before writing utility code. Prefer battle-tested libraries over hand-rolled solutions.
|
|
13
|
+
- **Search for adaptable implementations:** Look for open-source projects that solve 80%+ of the problem and can be forked, ported, or wrapped.
|
|
14
|
+
- Prefer adopting or porting a proven approach over writing net-new code when it meets the requirement.
|
|
15
|
+
|
|
16
|
+
1. **Plan First**
|
|
17
|
+
- Use **planner** agent to create implementation plan
|
|
18
|
+
- Generate planning docs before coding: PRD, architecture, system_design, tech_doc, task_list
|
|
19
|
+
- Identify dependencies and risks
|
|
20
|
+
- Break down into phases
|
|
21
|
+
|
|
22
|
+
2. **TDD Approach**
|
|
23
|
+
- Use **tdd-guide** agent
|
|
24
|
+
- Write tests first (RED)
|
|
25
|
+
- Implement to pass tests (GREEN)
|
|
26
|
+
- Refactor (IMPROVE)
|
|
27
|
+
- Verify 80%+ coverage
|
|
28
|
+
|
|
29
|
+
3. **Code Review**
|
|
30
|
+
- Use **code-reviewer** agent immediately after writing code
|
|
31
|
+
- Address CRITICAL and HIGH issues
|
|
32
|
+
- Fix MEDIUM issues when possible
|
|
33
|
+
|
|
34
|
+
4. **Commit & Push**
|
|
35
|
+
- Detailed commit messages
|
|
36
|
+
- Follow conventional commits format
|
|
37
|
+
- See [git-workflow.md](./git-workflow.md) for commit message format and PR process
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
# Git Workflow
|
|
2
|
-
|
|
3
|
-
## Commit Message Format
|
|
4
|
-
```
|
|
5
|
-
<type>: <description>
|
|
6
|
-
|
|
7
|
-
<optional body>
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
Types: feat, fix, refactor, docs, test, chore, perf, ci
|
|
11
|
-
|
|
12
|
-
Note: Attribution disabled globally via ~/.claude/settings.json.
|
|
13
|
-
|
|
14
|
-
## Pull Request Workflow
|
|
15
|
-
|
|
16
|
-
When creating PRs:
|
|
17
|
-
1. Analyze full commit history (not just latest commit)
|
|
18
|
-
2. Use `git diff [base-branch]...HEAD` to see all changes
|
|
19
|
-
3. Draft comprehensive PR summary
|
|
20
|
-
4. Include test plan with TODOs
|
|
21
|
-
5. Push with `-u` flag if new branch
|
|
22
|
-
|
|
23
|
-
> For the full development process (planning, TDD, code review) before git operations,
|
|
24
|
-
> see [development-workflow.md](./development-workflow.md).
|
|
1
|
+
# Git Workflow
|
|
2
|
+
|
|
3
|
+
## Commit Message Format
|
|
4
|
+
```
|
|
5
|
+
<type>: <description>
|
|
6
|
+
|
|
7
|
+
<optional body>
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
Types: feat, fix, refactor, docs, test, chore, perf, ci
|
|
11
|
+
|
|
12
|
+
Note: Attribution disabled globally via ~/.claude/settings.json.
|
|
13
|
+
|
|
14
|
+
## Pull Request Workflow
|
|
15
|
+
|
|
16
|
+
When creating PRs:
|
|
17
|
+
1. Analyze full commit history (not just latest commit)
|
|
18
|
+
2. Use `git diff [base-branch]...HEAD` to see all changes
|
|
19
|
+
3. Draft comprehensive PR summary
|
|
20
|
+
4. Include test plan with TODOs
|
|
21
|
+
5. Push with `-u` flag if new branch
|
|
22
|
+
|
|
23
|
+
> For the full development process (planning, TDD, code review) before git operations,
|
|
24
|
+
> see [development-workflow.md](./development-workflow.md).
|