@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.
- package/.claude-plugin/marketplace.json +17 -0
- package/.claude-plugin/plugin.json +10 -0
- package/LICENSE +21 -0
- package/README.md +193 -0
- package/bin/cli.js +892 -0
- package/commands/claude-init.md +141 -0
- package/package.json +39 -0
- package/templates/.claude/agents/backend-implementer.md.tpl +30 -0
- package/templates/.claude/agents/db-migrator.md.tpl +27 -0
- package/templates/.claude/agents/frontend-implementer.md.tpl +26 -0
- package/templates/.claude/agents/implementer.md.tpl +27 -0
- package/templates/.claude/agents/orchestrator.md.tpl +85 -0
- package/templates/.claude/agents/queue-worker.md.tpl +20 -0
- package/templates/.claude/agents/reviewer.md.tpl +18 -0
- package/templates/.claude/commands/diagrama.md.tpl +20 -0
- package/templates/.claude/commands/finalizar.md.tpl +12 -0
- package/templates/.claude/commands/nova-implementacao.md.tpl +15 -0
- package/templates/.claude/commands/onboarding.md.tpl +25 -0
- package/templates/.claude/commands/registrar-decisao.md.tpl +15 -0
- package/templates/.claude/commands/versao.md.tpl +34 -0
- package/templates/.claude/hooks/guard-git-safety.sh.tpl +33 -0
- package/templates/.claude/hooks/guard-migration-rollback.sh.tpl +35 -0
- package/templates/.claude/layer/CLAUDE.layer.md.tpl +23 -0
- package/templates/.claude/rules/convencoes.md.tpl +7 -0
- package/templates/.claude/rules/registro-decisoes.md.tpl +18 -0
- package/templates/.claude/rules/stack.md.tpl +6 -0
- package/templates/.github/workflows/auto-tag.yml.tpl +31 -0
- package/templates/CLAUDE.root.md.tpl +41 -0
- package/templates/app/CLAUDE.app.md.tpl +21 -0
- package/templates/docs/architecture/README.md.tpl +11 -0
- package/templates/docs/architecture/decisions.md.tpl +23 -0
- package/templates/docs/architecture/visao-geral.md.tpl +17 -0
- 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,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.
|