@ofelixdev/cc-kit 1.0.0 → 2.0.0
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/README.md +103 -36
- package/bin/index.js +31 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# cc-kit
|
|
2
2
|
|
|
3
|
-
CLI que instala uma knowledge base completa no Claude Code — agents, skills, workflows, scripts de validacao.
|
|
3
|
+
CLI que instala uma knowledge base completa no Claude Code — agents, skills, workflows, hooks, rules e scripts de validacao.
|
|
4
4
|
|
|
5
|
-
Um comando e seu Claude Code ganha **20 agents especialistas**, **
|
|
5
|
+
Um comando e seu Claude Code ganha **20 agents especialistas**, **108 skills**, **11 workflows**, **4 hooks de automacao**, **6 rules contextuais** e **scripts Python de validacao**. Tudo vai pra `.claude/` do seu projeto.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -10,9 +10,9 @@ Um comando e seu Claude Code ganha **20 agents especialistas**, **37+ skills**,
|
|
|
10
10
|
|
|
11
11
|
O Claude Code por padrao nao sabe nada sobre seu projeto. Ele e poderoso, mas generico.
|
|
12
12
|
|
|
13
|
-
O **cc-kit** resolve isso instalando uma base de conhecimento curada dentro do `.claude/` — agents que funcionam como especialistas (backend, frontend, seguranca, mobile, etc), skills com patterns e boas praticas, workflows pra tarefas estruturadas, e scripts Python pra validacao
|
|
13
|
+
O **cc-kit** resolve isso instalando uma base de conhecimento curada dentro do `.claude/` — agents que funcionam como especialistas (backend, frontend, seguranca, mobile, etc), skills com patterns e boas praticas, workflows pra tarefas estruturadas, hooks que automatizam formatacao e protecao, rules que ativam automaticamente por contexto, e scripts Python pra validacao.
|
|
14
14
|
|
|
15
|
-
Basicamente: **seu Claude Code vira um time de especialistas**.
|
|
15
|
+
Basicamente: **seu Claude Code vira um time de especialistas que age automaticamente**.
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
@@ -35,16 +35,17 @@ cc-kit init
|
|
|
35
35
|
|
|
36
36
|
```
|
|
37
37
|
.claude/
|
|
38
|
-
├── agents/
|
|
39
|
-
├── skills/
|
|
40
|
-
├── workflows/
|
|
41
|
-
├──
|
|
42
|
-
├── rules/
|
|
43
|
-
├──
|
|
44
|
-
├──
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
38
|
+
├── agents/ # 20 agents especialistas
|
|
39
|
+
├── skills/ # 108 skills (cc-kit + trailofbits + vercel + community)
|
|
40
|
+
├── workflows/ # 11 workflows estruturados
|
|
41
|
+
├── hooks/ # 4 hooks de automacao (format, protect, notify, compact)
|
|
42
|
+
├── rules/ # 6 rules (1 global + 5 path-conditional)
|
|
43
|
+
├── scripts/ # Scripts Python de validacao
|
|
44
|
+
├── settings.template.json → settings.json (criado na primeira instalacao)
|
|
45
|
+
├── ARCHITECTURE.md # Indice completo da knowledge base
|
|
46
|
+
└── mcp_config.json # Config MCP servers
|
|
47
|
+
|
|
48
|
+
CLAUDE.md # Regras do projeto na raiz (criado se nao existir)
|
|
48
49
|
```
|
|
49
50
|
|
|
50
51
|
---
|
|
@@ -56,7 +57,7 @@ CLAUDE.md # Regras do projeto na raiz (criado se nao existir)
|
|
|
56
57
|
Baixa e instala a knowledge base no `.claude/`.
|
|
57
58
|
|
|
58
59
|
- **Merge inteligente**: se `.claude/` ja existe, faz merge — seu conteudo existente e preservado
|
|
59
|
-
- **Paths protegidos**: `settings.json`, `settings.local.json`, `plans/`, `memory/`, `projects/` **nunca** sao
|
|
60
|
+
- **Paths protegidos**: `settings.json`, `settings.local.json`, `plans/`, `memory/`, `projects/` **nunca** sao sobrescritos
|
|
60
61
|
- `CLAUDE.md` da raiz so e criado se nao existir (use `--force` pra sobrescrever)
|
|
61
62
|
|
|
62
63
|
```bash
|
|
@@ -86,33 +87,99 @@ cc-kit status
|
|
|
86
87
|
|
|
87
88
|
---
|
|
88
89
|
|
|
89
|
-
##
|
|
90
|
+
## Principais Features
|
|
90
91
|
|
|
91
|
-
### Agents
|
|
92
|
+
### Sistema Autonomo de Agents
|
|
92
93
|
|
|
93
|
-
|
|
94
|
+
O `CLAUDE.md` instalado na raiz funciona como diretiva — o Claude Code automaticamente detecta o dominio da tarefa e carrega o agent + skills correspondentes. Sem precisar pedir nada.
|
|
94
95
|
|
|
95
|
-
|
|
96
|
+
| Dominio | Agent | Skills |
|
|
97
|
+
|---|---|---|
|
|
98
|
+
| Frontend, React, UI | `frontend-specialist` | frontend-design, react-best-practices, tailwind-patterns |
|
|
99
|
+
| Backend, API, Node | `backend-specialist` | api-patterns, nodejs-best-practices |
|
|
100
|
+
| Database, Schema | `database-architect` | database-design |
|
|
101
|
+
| Seguranca, Auth | `security-auditor` | vulnerability-scanner, codeql, semgrep |
|
|
102
|
+
| Testes, Coverage | `test-engineer` | testing-patterns, webapp-testing, coverage-analysis |
|
|
103
|
+
| Debug, Bugs | `debugger` | systematic-debugging |
|
|
104
|
+
| DevOps, Deploy | `devops-engineer` | deployment-procedures, devops, coolify |
|
|
105
|
+
| Mobile | `mobile-developer` | mobile-design |
|
|
106
|
+
| Games | `game-developer` | game-development |
|
|
107
|
+
| Performance | `performance-optimizer` | performance-profiling |
|
|
108
|
+
| SEO | `seo-specialist` | seo-fundamentals |
|
|
109
|
+
| Novo projeto | `orchestrator` | app-builder, architecture |
|
|
96
110
|
|
|
97
|
-
###
|
|
111
|
+
### Hooks de Automacao (4)
|
|
98
112
|
|
|
99
|
-
|
|
113
|
+
Hooks pre-configurados em `settings.json`:
|
|
100
114
|
|
|
101
|
-
|
|
115
|
+
| Hook | Evento | O que faz |
|
|
116
|
+
|---|---|---|
|
|
117
|
+
| `auto-format.sh` | Apos editar arquivos | Formata com prettier/eslint automaticamente |
|
|
118
|
+
| `protect-files.sh` | Antes de editar | Bloqueia escrita em `.env`, secrets, credentials |
|
|
119
|
+
| `notify-done.sh` | Ao terminar | Notificacao desktop (macOS/Linux) |
|
|
120
|
+
| `post-compact.sh` | Apos compactacao | Re-injeta contexto do projeto |
|
|
102
121
|
|
|
103
|
-
###
|
|
122
|
+
### Rules Path-Conditional (5)
|
|
104
123
|
|
|
105
|
-
|
|
124
|
+
Rules em `.claude/rules/` que ativam automaticamente baseado no arquivo sendo editado:
|
|
106
125
|
|
|
107
|
-
|
|
126
|
+
| Rule | Ativa para | O que aplica |
|
|
127
|
+
|---|---|---|
|
|
128
|
+
| `frontend.md` | `*.tsx`, `*.jsx`, `components/`, `pages/` | Acessibilidade, performance, component patterns |
|
|
129
|
+
| `backend.md` | `api/`, `services/`, `controllers/` | Input validation, error handling, seguranca |
|
|
130
|
+
| `testing.md` | `*.test.*`, `__tests__/` | Padrao AAA, isolamento, testes por comportamento |
|
|
131
|
+
| `security.md` | `auth/`, `middleware/`, `session*` | Sem hardcoded secrets, hashing, CSRF, rate limiting |
|
|
132
|
+
| `database.md` | `prisma/`, `migrations/`, `models/` | Migrations, indexes, transactions, soft deletes |
|
|
108
133
|
|
|
109
|
-
###
|
|
134
|
+
### Settings Template
|
|
110
135
|
|
|
111
|
-
|
|
136
|
+
Na primeira instalacao, cria um `settings.json` com:
|
|
137
|
+
- Permissoes deny para `.env` e secrets
|
|
138
|
+
- Hooks pre-configurados (format, protect, notify, compact)
|
|
139
|
+
- Nunca sobrescreve se ja existir
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Skills (108)
|
|
144
|
+
|
|
145
|
+
### Por Fonte
|
|
146
|
+
|
|
147
|
+
| Fonte | Qtd | Foco |
|
|
148
|
+
|---|---|---|
|
|
149
|
+
| **cc-kit** | 36 | Full-stack development |
|
|
150
|
+
| **trailofbits/skills** | 60 | Seguranca, fuzzing, auditoria |
|
|
151
|
+
| **vercel-labs** | 2 | Web design, skill discovery |
|
|
152
|
+
| **obra/superpowers** | 1 | Brainstorming colaborativo |
|
|
153
|
+
| **evolv3-ai/vibe-skills** | 3 | Coolify, DevOps, cloud infra |
|
|
154
|
+
| **addyosmani/web-quality** | 6 | Acessibilidade, performance, SEO |
|
|
155
|
+
|
|
156
|
+
### Por Categoria
|
|
157
|
+
|
|
158
|
+
**Frontend & UI**: react-best-practices, web-design-guidelines, tailwind-patterns, frontend-design, ui-ux-pro-max, nextjs-react-expert
|
|
159
|
+
|
|
160
|
+
**Backend & API**: api-patterns, nodejs-best-practices, python-patterns, modern-python
|
|
161
|
+
|
|
162
|
+
**Database**: database-design
|
|
163
|
+
|
|
164
|
+
**Cloud & Infra**: deployment-procedures, server-management, devcontainer-setup, coolify, coolify-cli, devops
|
|
165
|
+
|
|
166
|
+
**Testing & Quality**: testing-patterns, webapp-testing, tdd-workflow, code-review-checklist, lint-and-validate, coverage-analysis, property-based-testing, debug-buttercup, differential-review
|
|
167
|
+
|
|
168
|
+
**Seguranca**: vulnerability-scanner, red-team-tactics, codeql, semgrep, entry-point-analyzer, supply-chain-risk-auditor, e 30+ mais
|
|
169
|
+
|
|
170
|
+
**Fuzzing**: aflpp, libfuzzer, cargo-fuzz, atheris, harness-writing, libafl, ossfuzz, e mais
|
|
171
|
+
|
|
172
|
+
**Blockchain**: algorand, cairo, cosmos, solana, substrate, ton vulnerability scanners
|
|
173
|
+
|
|
174
|
+
**Arquitetura**: app-builder, architecture, plan-writing, brainstorming
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Scripts de Validacao
|
|
112
179
|
|
|
113
180
|
```bash
|
|
114
|
-
python .claude/scripts/checklist.py . #
|
|
115
|
-
python .claude/scripts/verify_all.py . --url <URL> #
|
|
181
|
+
python .claude/scripts/checklist.py . # Quick: Security → Lint → Schema → Tests → UX → SEO
|
|
182
|
+
python .claude/scripts/verify_all.py . --url <URL> # Full: + Lighthouse, E2E, Mobile, i18n
|
|
116
183
|
```
|
|
117
184
|
|
|
118
185
|
---
|
|
@@ -120,9 +187,11 @@ python .claude/scripts/verify_all.py . --url <URL> # Suite completa pre-deploy
|
|
|
120
187
|
## Como funciona
|
|
121
188
|
|
|
122
189
|
1. Baixa o template do GitHub via [giget](https://github.com/unjs/giget)
|
|
123
|
-
2. Faz merge dos agents, skills, workflows e
|
|
124
|
-
3. Cria
|
|
125
|
-
4.
|
|
190
|
+
2. Faz merge dos agents, skills, workflows, scripts, hooks e rules no `.claude/`
|
|
191
|
+
3. Cria `settings.json` com hooks pre-configurados (se nao existir)
|
|
192
|
+
4. Cria `CLAUDE.md` na raiz do projeto (se nao existir)
|
|
193
|
+
5. Torna hooks executaveis (`chmod +x`)
|
|
194
|
+
6. Nunca toca em configs do usuario (settings existente, memory, plans)
|
|
126
195
|
|
|
127
196
|
---
|
|
128
197
|
|
|
@@ -136,11 +205,9 @@ python .claude/scripts/verify_all.py . --url <URL> # Suite completa pre-deploy
|
|
|
136
205
|
|
|
137
206
|
## Creditos
|
|
138
207
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
O **cc-kit** adapta esse mesmo conceito pro ecossistema **Claude Code** — todo o conteudo foi reescrito e adaptado pra funcionar com a estrutura `.claude/`, sem nenhuma referencia ao Gemini ou Antigravity.
|
|
208
|
+
Inspirado no [`@vudovn/ag-kit`](https://www.npmjs.com/package/@vudovn/ag-kit) (Antigravity Kit). Obrigado ao [@vudovn](https://github.com/vudovn) pela ideia original.
|
|
142
209
|
|
|
143
|
-
|
|
210
|
+
Skills de seguranca por [Trail of Bits](https://github.com/trailofbits/skills). Skills de web quality por [Addy Osmani](https://github.com/nicepkg/claude-code-awesome-skills). Brainstorming por [obra/superpowers](https://github.com/obra/superpowers). Coolify/DevOps por [evolv3-ai](https://github.com/evolv3-ai/vibe-skills).
|
|
144
211
|
|
|
145
212
|
---
|
|
146
213
|
|
package/bin/index.js
CHANGED
|
@@ -30,6 +30,7 @@ const MERGE_DIRS = [
|
|
|
30
30
|
'workflows',
|
|
31
31
|
'scripts',
|
|
32
32
|
'rules',
|
|
33
|
+
'hooks',
|
|
33
34
|
'.shared',
|
|
34
35
|
];
|
|
35
36
|
|
|
@@ -140,6 +141,33 @@ async function installTemplate({ force, targetPath, branch, quiet, dryRun }) {
|
|
|
140
141
|
console.log(chalk.dim(` ${ROOT_CLAUDE_MD} already exists — skipped (use --force to overwrite)`));
|
|
141
142
|
}
|
|
142
143
|
|
|
144
|
+
// Install settings.json from template if not exists (never overwrite)
|
|
145
|
+
const settingsPath = path.join(claude, 'settings.json');
|
|
146
|
+
const settingsExists = await fs.pathExists(settingsPath);
|
|
147
|
+
if (!settingsExists) {
|
|
148
|
+
const settingsTemplate = path.join(tempDir, 'settings.template.json');
|
|
149
|
+
if (await fs.pathExists(settingsTemplate)) {
|
|
150
|
+
await fs.copy(settingsTemplate, settingsPath);
|
|
151
|
+
totalCopied++;
|
|
152
|
+
if (!quiet) {
|
|
153
|
+
console.log(chalk.dim(' Created settings.json with hooks & permissions'));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
} else if (!quiet) {
|
|
157
|
+
console.log(chalk.dim(' settings.json already exists — skipped'));
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Make hook scripts executable
|
|
161
|
+
const hooksDir = path.join(claude, 'hooks');
|
|
162
|
+
if (await fs.pathExists(hooksDir)) {
|
|
163
|
+
const hookFiles = await fs.readdir(hooksDir);
|
|
164
|
+
for (const file of hookFiles) {
|
|
165
|
+
if (file.endsWith('.sh')) {
|
|
166
|
+
await fs.chmod(path.join(hooksDir, file), 0o755);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
143
171
|
if (spinner) spinner.succeed(chalk.green(`Installed ${totalCopied} files into ${TARGET_DIR}/`));
|
|
144
172
|
|
|
145
173
|
if (!quiet) {
|
|
@@ -148,6 +176,8 @@ async function installTemplate({ force, targetPath, branch, quiet, dryRun }) {
|
|
|
148
176
|
console.log(chalk.dim(' Skills: ') + await countItems(path.join(claude, 'skills')));
|
|
149
177
|
console.log(chalk.dim(' Workflows: ') + await countItems(path.join(claude, 'workflows')));
|
|
150
178
|
console.log(chalk.dim(' Scripts: ') + await countItems(path.join(claude, 'scripts')));
|
|
179
|
+
console.log(chalk.dim(' Hooks: ') + await countItems(path.join(claude, 'hooks')));
|
|
180
|
+
console.log(chalk.dim(' Rules: ') + await countItems(path.join(claude, 'rules')));
|
|
151
181
|
console.log('');
|
|
152
182
|
console.log(chalk.green(' Done!') + chalk.dim(' Run ') + chalk.cyan('cc-kit status') + chalk.dim(' to verify.'));
|
|
153
183
|
console.log('');
|
|
@@ -197,6 +227,7 @@ async function showStatus(targetPath) {
|
|
|
197
227
|
console.log(chalk.dim(' Workflows: ') + await countItems(path.join(claude, 'workflows')));
|
|
198
228
|
console.log(chalk.dim(' Scripts: ') + await countItems(path.join(claude, 'scripts')));
|
|
199
229
|
console.log(chalk.dim(' Rules: ') + await countItems(path.join(claude, 'rules')));
|
|
230
|
+
console.log(chalk.dim(' Hooks: ') + await countItems(path.join(claude, 'hooks')));
|
|
200
231
|
console.log('');
|
|
201
232
|
}
|
|
202
233
|
|