@connsoft-tech/claude-init 1.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.
Files changed (33) hide show
  1. package/.claude-plugin/marketplace.json +17 -0
  2. package/.claude-plugin/plugin.json +10 -0
  3. package/LICENSE +21 -0
  4. package/README.md +193 -0
  5. package/bin/cli.js +892 -0
  6. package/commands/claude-init.md +141 -0
  7. package/package.json +39 -0
  8. package/templates/.claude/agents/backend-implementer.md.tpl +30 -0
  9. package/templates/.claude/agents/db-migrator.md.tpl +27 -0
  10. package/templates/.claude/agents/frontend-implementer.md.tpl +26 -0
  11. package/templates/.claude/agents/implementer.md.tpl +27 -0
  12. package/templates/.claude/agents/orchestrator.md.tpl +85 -0
  13. package/templates/.claude/agents/queue-worker.md.tpl +20 -0
  14. package/templates/.claude/agents/reviewer.md.tpl +18 -0
  15. package/templates/.claude/commands/diagrama.md.tpl +20 -0
  16. package/templates/.claude/commands/finalizar.md.tpl +12 -0
  17. package/templates/.claude/commands/nova-implementacao.md.tpl +15 -0
  18. package/templates/.claude/commands/onboarding.md.tpl +25 -0
  19. package/templates/.claude/commands/registrar-decisao.md.tpl +15 -0
  20. package/templates/.claude/commands/versao.md.tpl +34 -0
  21. package/templates/.claude/hooks/guard-git-safety.sh.tpl +33 -0
  22. package/templates/.claude/hooks/guard-migration-rollback.sh.tpl +35 -0
  23. package/templates/.claude/layer/CLAUDE.layer.md.tpl +23 -0
  24. package/templates/.claude/rules/convencoes.md.tpl +7 -0
  25. package/templates/.claude/rules/registro-decisoes.md.tpl +18 -0
  26. package/templates/.claude/rules/stack.md.tpl +6 -0
  27. package/templates/.github/workflows/auto-tag.yml.tpl +31 -0
  28. package/templates/CLAUDE.root.md.tpl +41 -0
  29. package/templates/app/CLAUDE.app.md.tpl +21 -0
  30. package/templates/docs/architecture/README.md.tpl +11 -0
  31. package/templates/docs/architecture/decisions.md.tpl +23 -0
  32. package/templates/docs/architecture/visao-geral.md.tpl +17 -0
  33. package/templates/specs/README.md.tpl +32 -0
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "claude-init",
3
+ "owner": {
4
+ "name": "Connsoft"
5
+ },
6
+ "metadata": {
7
+ "description": "Marketplace com o plugin claude-init — scaffolder de setup Claude Code (orchestrator, agentes por camada, SDD, hooks) pra qualquer stack."
8
+ },
9
+ "plugins": [
10
+ {
11
+ "name": "claude-init",
12
+ "source": "./",
13
+ "description": "Scaffolder de estrutura Claude Code para qualquer stack — gera orchestrator, agentes por camada, specs SDD e hooks de segurança.",
14
+ "version": "1.0.0"
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "claude-init",
3
+ "description": "Scaffolder de estrutura Claude Code (orchestrator arquiteto, agentes por camada detectados pela stack, Spec-Driven Development, hooks de segurança) para qualquer stack, monorepo ou não.",
4
+ "version": "1.0.0",
5
+ "author": {
6
+ "name": "Connsoft"
7
+ },
8
+ "license": "MIT",
9
+ "homepage": "https://github.com/<seu-usuario>/claude-setup-cli"
10
+ }
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Connsoft
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,193 @@
1
+ # @connsoft-tech/claude-init
2
+
3
+ Scaffolder de estrutura Claude Code (CLAUDE.md em camadas, `.claude/rules`,
4
+ `.claude/agents`, `.claude/commands`, `docs/architecture`, `specs/`) pra
5
+ qualquer stack — não depende de Node no projeto alvo, é só a ferramenta
6
+ de geração.
7
+
8
+ Gera um `orchestrator` (arquiteto de software do projeto) que conduz o
9
+ fluxo de spec-driven development (specify → clarify → plan → tasks →
10
+ implement → validate), delega pra agentes especializados detectados pela
11
+ sua stack, e finaliza com merge ou Pull Request — sua escolha.
12
+
13
+ ## Pré-requisitos
14
+
15
+ - Node.js 16+ (só pra rodar o CLI — não afeta a stack do seu projeto)
16
+ - Git
17
+ - [GitHub CLI (`gh`)](https://cli.github.com/) instalado e autenticado —
18
+ **só necessário se você escolher a estratégia de Pull Request** na
19
+ pergunta de finalização
20
+
21
+ ## Uso
22
+
23
+ Direto do registro do npm, sem clonar nada:
24
+
25
+ ```bash
26
+ npx @connsoft-tech/claude-init
27
+ ```
28
+
29
+ Ou instalando globalmente uma vez:
30
+
31
+ ```bash
32
+ npm i -g @connsoft-tech/claude-init
33
+ claude-init
34
+ ```
35
+
36
+ ### Rodando a partir do código-fonte (desenvolvimento/customização)
37
+
38
+ ```bash
39
+ git clone https://github.com/<seu-usuario>/claude-setup-cli.git
40
+ cd claude-setup-cli
41
+ npm install
42
+ npm link
43
+ ```
44
+
45
+ Depois, dentro de qualquer repositório novo (ou existente):
46
+
47
+ ```bash
48
+ cd /caminho/do/seu/projeto
49
+ claude-init
50
+ ```
51
+
52
+ Sem instalar globalmente:
53
+
54
+ ```bash
55
+ npx --package=/caminho/absoluto/para/claude-setup-cli claude-init
56
+ ```
57
+
58
+ ## Instalar como plugin do Claude Code (sem precisar de Node)
59
+
60
+ Se você só usa isso dentro de uma sessão do Claude Code e não quer lidar
61
+ com Node/npm, este mesmo repositório também é um plugin:
62
+
63
+ ```bash
64
+ claude plugin marketplace add <seu-usuario>/claude-setup-cli
65
+ claude plugin install claude-init@claude-init
66
+ ```
67
+
68
+ Dentro de qualquer sessão do Claude Code, rode `/claude-init`. O comando
69
+ faz as mesmas perguntas do CLI e gera os mesmos arquivos — lendo os
70
+ templates bundlados no próprio plugin (`${CLAUDE_PLUGIN_ROOT}/templates/`)
71
+ e escrevendo com as ferramentas de arquivo do Claude, sem precisar
72
+ executar `bin/cli.js`. Mantenha os dois em paridade: qualquer mudança de
73
+ pergunta/lógica em `bin/cli.js` deve ser refletida em
74
+ `commands/claude-init.md`.
75
+
76
+ ## Perguntas que o CLI faz
77
+
78
+ 1. **Nome do projeto/produto** — usado nos textos gerados
79
+ 2. **É um monorepo com múltiplos apps/pacotes?**
80
+ 3. **Liste os apps/pacotes** (só se respondeu sim acima) — ex: `api, web`
81
+ 4. **Linguagem/framework principal** — texto livre, ex: `Laravel/PHP`
82
+ 5. **Banco de dados e padrão de arquitetura** — ex: `PostgreSQL multi-tenant`
83
+ 6. **Mensageria/filas**, se houver — pode deixar em branco
84
+ 7. **Como é feito o deploy** — ex: `Dokploy/Docker self-hosted`
85
+ 8. **Branch principal de desenvolvimento** — padrão `develop`
86
+ 9. **Branch que dispara o deploy em produção** — padrão `main` (onde a
87
+ tag de release é criada)
88
+ 10. **Adicionar automação de versionamento** (`/versao` + GitHub Action
89
+ de auto-tag)?
90
+ 11. **Deixar o Claude Code sempre iniciar em Plan Mode neste projeto?** —
91
+ gera `.claude/settings.json` com `defaultMode: "plan"`
92
+ 12. **Adicionar hooks de segurança?** — bloqueia push forçado, push
93
+ direto na branch de release, e migration sem rollback
94
+ 13. **Ao finalizar, o orchestrator deve fazer merge direto ou abrir PR?**
95
+ 14. **O que mais deseja gerar?** — subagentes, regras, slash commands,
96
+ esqueleto de docs/architecture (todos marcados por padrão)
97
+ 15. *(se detectar backend com convenção conhecida, ex: Laravel, e for
98
+ monorepo com mais de um app)* — qual pasta é o backend
99
+ 16. *(mesma condição)* — gerar `CLAUDE.md` por camada
100
+ (models/controllers/services/repositories)?
101
+ 17. *(ao final)* — quais skills complementares populares instalar
102
+ (a lista muda conforme a stack detectada — ver seção abaixo)
103
+
104
+ ## O que é gerado
105
+
106
+ ```
107
+ CLAUDE.md
108
+ .claude/settings.json (se Plan Mode e/ou hooks confirmados)
109
+ .claude/hooks/guard-git-safety.sh (se hooks confirmados)
110
+ .claude/hooks/guard-migration-rollback.sh (se hooks confirmados e detectou db-migrator)
111
+ docs/architecture/README.md
112
+ docs/architecture/visao-geral.md
113
+ docs/architecture/decisions.md
114
+ specs/README.md
115
+ .claude/rules/stack.md
116
+ .claude/rules/convencoes.md
117
+ .claude/rules/registro-decisoes.md
118
+ .claude/agents/orchestrator.md (sempre)
119
+ .claude/agents/reviewer.md (sempre)
120
+ .claude/agents/<camada>-implementer.md (conforme stack detectada)
121
+ .claude/commands/nova-implementacao.md
122
+ .claude/commands/finalizar.md
123
+ .claude/commands/registrar-decisao.md
124
+ .claude/commands/diagrama.md
125
+ .claude/commands/onboarding.md
126
+ .claude/commands/versao.md (se automação de versionamento confirmada)
127
+ .github/workflows/auto-tag.yml (se automação de versionamento confirmada)
128
+ apps/<cada-app>/CLAUDE.md (se monorepo)
129
+ apps/<app-backend>/<pasta-da-camada>/CLAUDE.md (se confirmado)
130
+ ```
131
+
132
+ Campos marcados como `[definir]` devem ser revisados manualmente antes do
133
+ primeiro commit — o CLI preenche a estrutura, não decide seus padrões.
134
+
135
+ ## Detecção de stack
136
+
137
+ O CLI lê as respostas de linguagem/banco/mensageria e gera agentes por
138
+ camada automaticamente (`backend-implementer`, `frontend-implementer`,
139
+ `db-migrator`, `queue-worker`) com base em palavras-chave. Se nada bater,
140
+ gera um `implementer` genérico. A lista de palavras-chave e as
141
+ convenções de pasta conhecidas (hoje só Laravel) ficam em
142
+ `STACK_DETECTORS` e `FRAMEWORK_LAYER_PATHS`, no `bin/cli.js`.
143
+
144
+ ## Publicando no npm (uma vez, e a cada atualização)
145
+
146
+ 1. Ter conta no [npmjs.com](https://www.npmjs.com/signup) e criar o
147
+ escopo/organização `connsoft` lá (gratuito para pacotes públicos) —
148
+ ou trocar `@connsoft` por seu usuário pessoal no `name` do
149
+ `package.json` se preferir não criar org.
150
+ 2. `npm login` no terminal (pede 2FA se estiver ativado na conta).
151
+ 3. Dentro da pasta do projeto: `npm publish` — o campo
152
+ `publishConfig.access: "public"` já no `package.json` evita precisar
153
+ lembrar do `--access public` toda vez (pacotes com escopo `@algo/`
154
+ são privados por padrão).
155
+ 4. Pronto — `npx @connsoft-tech/claude-init` já funciona pra qualquer pessoa,
156
+ de qualquer máquina com Node, sem clonar nada.
157
+
158
+ Pra publicar uma atualização depois: suba a versão em `version` no
159
+ `package.json` (`npm version patch` faz isso e já cria o commit/tag de
160
+ git) e rode `npm publish` de novo — o npm nunca deixa republicar a
161
+ mesma versão, então esse passo é obrigatório mesmo pra uma mudança
162
+ pequena.
163
+
164
+ ## Skills complementares
165
+
166
+ Ao final, o CLI oferece instalar skills populares de terceiros — mas só
167
+ as que fazem sentido pra stack detectada **naquele projeto específico**
168
+ (cada projeto/dev pode usar uma stack diferente, então a lista muda).
169
+
170
+ Hoje o catálogo é:
171
+ - `grill-me` (sempre oferecida) — interroga uma pergunta por vez antes de
172
+ travar um plano/design; o `orchestrator` já usa no passo de clarify
173
+ quando presente.
174
+ - `terms` (sempre oferecida) — mantém glossário de domínio e ADRs.
175
+ - `e2e-setup`, `code-quality` (só se detectar frontend JS/TS) — Playwright
176
+ e baseline de lint/format.
177
+
178
+ Para adicionar novas skills ao catálogo, edite `SKILL_CATALOG` em
179
+ `bin/cli.js`.
180
+
181
+ ## Customizando os templates
182
+
183
+ Edite os arquivos em `templates/`. Placeholders no formato `{{NOME}}` são
184
+ substituídos pelas respostas do prompt e por valores calculados
185
+ (`PROJECT_NAME`, `LANGUAGE`, `DATABASE`, `MESSAGING`, `DEPLOY`,
186
+ `DEV_BRANCH`, `APPS_LIST`, `APP_NAME`, `AGENTS_LIST`, `LAYERS_SECTION`,
187
+ `FINALIZE_TITLE`, `FINALIZE_BODY`, `FINALIZE_AVOID_LINE`,
188
+ `FINALIZE_STEPS`, `FINALIZE_DESC_SUFFIX`).
189
+
190
+ ## Licença e contribuição
191
+
192
+ MIT — veja [LICENSE](./LICENSE). Este repositório não aceita Pull
193
+ Requests de terceiros — veja [CONTRIBUTING.md](./CONTRIBUTING.md).