@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,18 @@
1
+ # Regra: registro automático de decisões
2
+
3
+ Sempre que, durante uma implementação, você tomar ou identificar uma
4
+ decisão de arquitetura relevante (ex: escolha de padrão, trade-off entre
5
+ duas abordagens, mudança que afeta múltiplos módulos, decisão que alguém
6
+ vai perguntar "por que foi feito assim" no futuro), você deve:
7
+
8
+ 1. Antes de finalizar a tarefa, adicionar uma entrada em
9
+ `docs/architecture/decisions.md`, seguindo exatamente o formato descrito
10
+ no topo daquele arquivo.
11
+ 2. Não perguntar permissão para registrar — registrar faz parte de
12
+ finalizar a tarefa, assim como rodar o `reviewer`.
13
+ 3. NÃO registrar: preferências de estilo, detalhes de implementação sem
14
+ trade-off real, ou nada que já esteja coberto por uma regra existente
15
+ em `.claude/rules/`. O log é para decisões, não para changelog de código.
16
+ 4. Se a tarefa não envolveu nenhuma decisão nova (só implementação direta
17
+ de algo já padronizado), não crie entrada — não adicionar é o
18
+ comportamento correto nesse caso.
@@ -0,0 +1,6 @@
1
+ # Regra: stack permitida
2
+
3
+ - Usar somente: {{LANGUAGE}}, {{DATABASE}}, mensageria: {{MESSAGING}}
4
+ - Não sugerir nem introduzir frameworks/linguagens fora da stack acima
5
+ sem confirmação explícita.
6
+ - Deploy sempre via: {{DEPLOY}}
@@ -0,0 +1,31 @@
1
+ name: Auto Tag Release
2
+
3
+ on:
4
+ push:
5
+ branches: [{{RELEASE_BRANCH}}]
6
+
7
+ jobs:
8
+ tag:
9
+ if: startsWith(github.event.head_commit.message, 'chore(release):')
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+ with:
14
+ fetch-depth: 0
15
+
16
+ - name: Extrair versão do commit
17
+ id: version
18
+ run: |
19
+ VERSION=$(echo "${{ github.event.head_commit.message }}" | grep -oP 'v\K[0-9]+\.[0-9]+\.[0-9]+')
20
+ echo "version=$VERSION" >> "$GITHUB_OUTPUT"
21
+
22
+ - name: Criar e enviar a tag
23
+ env:
24
+ # ATENÇÃO: GITHUB_TOKEN não dispara outros workflows (ex: um
25
+ # segundo Action escutando "on: push tags" pra deploy). Se
26
+ # precisar encadear algo a partir da tag, troque por um
27
+ # Personal Access Token (secret RELEASE_PAT).
28
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29
+ run: |
30
+ git tag "v${{ steps.version.outputs.version }}"
31
+ git push origin "v${{ steps.version.outputs.version }}"
@@ -0,0 +1,41 @@
1
+ # {{PROJECT_NAME}} — contexto raiz
2
+
3
+ Este arquivo é carregado em toda sessão do Claude Code. Mantenha curto —
4
+ detalhes longos vão em `docs/architecture/` e são referenciados com `@`.
5
+
6
+ ## Stack
7
+ - Linguagem/framework: {{LANGUAGE}}
8
+ - Banco de dados: {{DATABASE}}
9
+ - Mensageria: {{MESSAGING}}
10
+ - Deploy: {{DEPLOY}}
11
+
12
+ ## Estrutura do repositório
13
+ {{APPS_LIST}}
14
+
15
+ Cada app/pacote acima tem seu próprio `CLAUDE.md` com padrões específicos,
16
+ carregado automaticamente quando o Claude edita arquivos daquela pasta.
17
+
18
+ ## Referências de arquitetura
19
+ - @docs/architecture/visao-geral.md
20
+ - @docs/architecture/decisions.md
21
+ - @specs/README.md
22
+
23
+ ## Regras globais
24
+ - @.claude/rules/stack.md
25
+ - @.claude/rules/convencoes.md
26
+ - @.claude/rules/registro-decisoes.md
27
+
28
+ ## Fluxo de trabalho
29
+ - Nova implementação: usar `/nova-implementacao`, que aciona o agente
30
+ `orchestrator` — ele conduz o fluxo spec-driven (specify → clarify →
31
+ plan → tasks → implement → validate) e delega para os agentes
32
+ especializados corretos.
33
+ - Specs de features ficam em `specs/<slug>/` (requirements.md, design.md,
34
+ tasks.md) — ver @specs/README.md.
35
+
36
+ {{LAYERS_SECTION}}
37
+ ## Comandos úteis
38
+ - build: [definir]
39
+ - test: [definir]
40
+ - lint: [definir]
41
+ - migrate: [definir]
@@ -0,0 +1,21 @@
1
+ # {{APP_NAME}} — padrões deste pacote
2
+
3
+ ## Stack local
4
+ - {{LANGUAGE}}
5
+ - {{DATABASE}}
6
+ - {{MESSAGING}}
7
+
8
+ ## Como implementar uma nova funcionalidade aqui
9
+ 1. Onde ficam as rotas/entradas: [definir]
10
+ 2. Onde fica a lógica de negócio: [definir]
11
+ 3. Como isolar por tenant (se multi-tenant): [definir]
12
+ 4. Padrão de resposta/erro: [definir]
13
+ 5. Onde ficam migrations: [definir]
14
+ 6. Onde ficam os testes: [definir]
15
+
16
+ ## Regras específicas de {{APP_NAME}}
17
+ - [definir regras específicas deste pacote]
18
+
19
+ {{LAYERS_SECTION}}
20
+ ## O que NÃO fazer aqui
21
+ - [definir antipadrões conhecidos deste pacote]
@@ -0,0 +1,11 @@
1
+ # Arquitetura — {{PROJECT_NAME}}
2
+
3
+ Documentos de arquitetura detalhados ficam nesta pasta e são referenciados
4
+ a partir dos `CLAUDE.md` via `@docs/architecture/<arquivo>.md`, mantendo
5
+ os CLAUDE.md curtos.
6
+
7
+ Sugestão de arquivos conforme o projeto crescer:
8
+ - `visao-geral.md` — visão geral do sistema (já criado)
9
+ - `multi-tenant.md` — estratégia de isolamento de tenant, se aplicável
10
+ - `filas-eventos.md` — contratos de eventos/filas, se usar mensageria
11
+ - `decisoes/ADR-000-exemplo.md` — Architecture Decision Records
@@ -0,0 +1,23 @@
1
+ # Registro de decisões — {{PROJECT_NAME}}
2
+
3
+ > Log append-only de decisões de arquitetura. Nunca edite ou apague uma
4
+ > entrada antiga — se uma decisão for revertida, adicione uma nova entrada
5
+ > referenciando a anterior.
6
+ >
7
+ > Este arquivo é atualizado automaticamente pelos agentes durante o
8
+ > desenvolvimento (ver instrução em `.claude/rules/registro-decisoes.md`)
9
+ > e também pode ser atualizado manualmente com `/registrar-decisao`.
10
+
11
+ ## Formato de cada entrada
12
+
13
+ ```
14
+ ## [AAAA-MM-DD] Título curto da decisão
15
+ - Contexto: por que essa decisão precisou ser tomada
16
+ - Decisão: o que foi decidido
17
+ - Alternativas descartadas: o que mais foi considerado e por que não foi escolhido
18
+ - Impacto: o que isso muda no código/arquitetura existente
19
+ ```
20
+
21
+ ---
22
+
23
+ <!-- novas entradas são adicionadas abaixo desta linha -->
@@ -0,0 +1,17 @@
1
+ # Visão geral da arquitetura — {{PROJECT_NAME}}
2
+
3
+ ## Componentes
4
+ {{APPS_LIST}}
5
+
6
+ ## Stack
7
+ - Linguagem/framework: {{LANGUAGE}}
8
+ - Banco de dados: {{DATABASE}}
9
+ - Mensageria: {{MESSAGING}}
10
+ - Deploy: {{DEPLOY}}
11
+
12
+ ## Fluxo de dados principal
13
+ [descrever como os componentes acima se comunicam]
14
+
15
+ ## Decisões relevantes
16
+ [registrar decisões de arquitetura importantes; para decisões maiores,
17
+ criar um ADR em docs/architecture/decisoes/]
@@ -0,0 +1,32 @@
1
+ # Specs — {{PROJECT_NAME}}
2
+
3
+ Cada feature/tarefa não trivial ganha uma pasta própria aqui, no formato
4
+ `specs/<slug-da-feature>/`, contendo três arquivos:
5
+
6
+ ```
7
+ specs/<slug-da-feature>/
8
+ requirements.md — o que precisa ser feito e por quê
9
+ design.md — como será feito (decisões técnicas, impacto)
10
+ tasks.md — quebra em subtarefas executáveis
11
+ ```
12
+
13
+ Não crie pastas separadas por tipo (`specs/requirements/`,
14
+ `specs/design/`) — os três arquivos de uma mesma feature ficam sempre
15
+ juntos, na pasta da feature. O slug da pasta é o mesmo usado na branch
16
+ (`feature/<slug>`).
17
+
18
+ ## Fluxo (gerado pelo agente `orchestrator`)
19
+ 1. **specify** — `requirements.md`: contexto, requisitos, critério de
20
+ conclusão.
21
+ 2. **clarify** — antes de seguir para o design, o `orchestrator` confirma
22
+ com o usuário qualquer ambiguidade encontrada nos requisitos.
23
+ 3. **plan** — `design.md`: decisões técnicas, trade-offs, impacto em
24
+ outras camadas/apps.
25
+ 4. **tasks** — `tasks.md`: lista de subtarefas, cada uma já mapeada para
26
+ o agente especializado que vai executá-la.
27
+ 5. **implement** — delegação para os agentes especializados.
28
+ 6. **validate** — o `reviewer` confirma que a implementação satisfaz o
29
+ que está em `requirements.md` e `design.md`, não só padrões de código.
30
+
31
+ Specs concluídas não são apagadas — servem de histórico e documentação
32
+ viva de por que a feature foi construída daquele jeito.