@lugom.io/hefesto 0.2.0 → 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 (42) hide show
  1. package/agents/hefesto-argos.md +93 -0
  2. package/agents/hefesto-athena.md +99 -0
  3. package/agents/hefesto-hermes.md +96 -0
  4. package/bin/install.js +122 -52
  5. package/hooks/hefesto-check-update.cjs +32 -11
  6. package/hooks/hefesto-statusline.cjs +8 -17
  7. package/hooks/hefesto-workflow.cjs +68 -0
  8. package/package.json +14 -4
  9. package/skills/hefesto-context/SKILL.md +67 -14
  10. package/skills/hefesto-debug/SKILL.md +54 -0
  11. package/skills/hefesto-design/SKILL.md +184 -0
  12. package/skills/hefesto-execute/SKILL.md +133 -0
  13. package/skills/hefesto-init/SKILL.md +105 -0
  14. package/skills/hefesto-init/references/api.md +116 -0
  15. package/skills/hefesto-init/references/cli.md +91 -0
  16. package/skills/hefesto-init/references/mobile.md +69 -0
  17. package/skills/hefesto-init/references/web.md +246 -0
  18. package/skills/hefesto-new-feature/SKILL.md +87 -0
  19. package/skills/hefesto-security/SKILL.md +89 -0
  20. package/skills/hefesto-security/references/boundaries-and-bypasses.md +152 -0
  21. package/skills/hefesto-security/references/secrets-detection.md +121 -0
  22. package/skills/hefesto-security/references/severity-and-judgment.md +176 -0
  23. package/skills/hefesto-simplify/SKILL.md +82 -0
  24. package/templates/TPL-CLAUDE.md +54 -0
  25. package/templates/TPL-CONFIG.json +19 -0
  26. package/templates/TPL-DESIGN.md +305 -0
  27. package/templates/{FEATURE.md → TPL-FEATURE.md} +13 -6
  28. package/templates/TPL-PROJECT.md +50 -0
  29. package/templates/TPL-RECON.md +60 -0
  30. package/templates/{RESEARCH.md → TPL-RESEARCH.md} +32 -35
  31. package/templates/TPL-SECURITY.md +42 -0
  32. package/templates/TPL-SIMPLIFY.md +40 -0
  33. package/templates/{STATE.md → TPL-STATE.md} +1 -7
  34. package/templates/TPL-VERDICT.md +34 -0
  35. package/agents/.gitkeep +0 -0
  36. package/agents/hefesto-researcher.md +0 -180
  37. package/commands/hefesto/init.md +0 -67
  38. package/commands/hefesto/new-feature.md +0 -50
  39. package/commands/hefesto/status.md +0 -46
  40. package/commands/hefesto/update.md +0 -31
  41. package/templates/PROJECT.md +0 -28
  42. package/templates/ROADMAP.md +0 -23
@@ -1,26 +1,20 @@
1
1
  ---
2
- id: {{RESEARCH_ID}}
3
- title: "{{RESEARCH_TITLE}}"
4
- type: {{RESEARCH_TYPE}}
5
- depth: {{RESEARCH_DEPTH}}
2
+ id: '{{RESEARCH_ID}}'
3
+ title: '{{RESEARCH_TITLE}}'
4
+ type: '{{RESEARCH_TYPE}}'
5
+ depth: '{{RESEARCH_DEPTH}}'
6
6
  status: draft
7
- feature: {{LINKED_FEATURE}}
8
- created: {{DATE}}
9
- updated: {{DATE}}
7
+ feature: '{{LINKED_FEATURE}}'
8
+ created: '{{DATE}}'
9
+ updated: '{{DATE}}'
10
10
  ---
11
11
 
12
12
  # {{RESEARCH_ID}}: {{RESEARCH_TITLE}}
13
13
 
14
- ## Objetivo
14
+ ## Objetivo e Escopo
15
15
 
16
16
  {{RESEARCH_OBJECTIVE}}
17
17
 
18
- ## Contexto
19
-
20
- {{RESEARCH_CONTEXT}}
21
-
22
- ## Escopo
23
-
24
18
  **Perguntas a responder:**
25
19
 
26
20
  1. {{QUESTION_1}}
@@ -31,6 +25,27 @@ updated: {{DATE}}
31
25
 
32
26
  - {{EXCLUSION_1}}
33
27
 
28
+ ## Recomendação
29
+
30
+ {{RECOMMENDATION}}
31
+
32
+ ## Paisagem de Implementação
33
+
34
+ ### Arquivos-chave
35
+
36
+ - `{{FILE_PATH}}` — {{FILE_DESCRIPTION}}
37
+ - `{{FILE_PATH}}` — {{CHANGE_DESCRIPTION}}
38
+
39
+ ### Ordem de Construção
40
+
41
+ {{BUILD_ORDER}}
42
+
43
+ ### Verificação
44
+
45
+ {{VERIFICATION_STEPS}}
46
+
47
+ <!-- Seções abaixo: incluir apenas quando tiverem conteúdo real -->
48
+
34
49
  ## Descobertas
35
50
 
36
51
  ### {{FINDING_TITLE_1}}
@@ -57,12 +72,6 @@ updated: {{DATE}}
57
72
  | -------- | -------------- | ------------------------ |
58
73
  | — | — | — |
59
74
 
60
- ## Estado da Arte
61
-
62
- | Antes | Agora | Por quê mudou |
63
- | ----- | ----- | ------------- |
64
- | — | — | — |
65
-
66
75
  ## Armadilhas
67
76
 
68
77
  | Severidade | Armadilha | Se ignorar | Prevenção |
@@ -73,18 +82,6 @@ updated: {{DATE}}
73
82
 
74
83
  ## Fontes
75
84
 
76
- | # | Título | URL | Confiabilidade |
77
- | - | ------ | --- | -------------- |
78
- | 1 | — | — | alta |
79
-
80
- ## Conclusão
81
-
82
- {{CONCLUSION}}
83
-
84
- ## Recomendação
85
-
86
- {{RECOMMENDATION}}
87
-
88
- ## Notas
89
-
90
- {{NOTES}}
85
+ | # | Título | URL | Confiabilidade |
86
+ | --- | ------ | --- | -------------- |
87
+ | 1 | — | — | alta |
@@ -0,0 +1,42 @@
1
+ ## Relatório de Segurança
2
+
3
+ feature: {{FEATURE_ID}}
4
+ escopo: {{FILE_COUNT}} arquivos analisados
5
+
6
+ ### 🔴 Críticos ({{CRITICAL_COUNT}})
7
+
8
+ | Arquivo | Linha | Categoria | Descrição | Fix |
9
+ | ------------- | -------- | ------------ | --------------- | --------------- |
10
+ | {{FILE_PATH}} | {{LINE}} | {{CATEGORY}} | {{DESCRIPTION}} | {{FIX_APPLIED}} |
11
+
12
+ ### ⚠ Warnings ({{WARNING_COUNT}})
13
+
14
+ | Arquivo | Linha | Categoria | Descrição | Fix |
15
+ | ------------- | -------- | ------------ | --------------- | ----------------------------- |
16
+ | {{FILE_PATH}} | {{LINE}} | {{CATEGORY}} | {{DESCRIPTION}} | {{FIX_APPLIED_OR_SUGGESTION}} |
17
+
18
+ ### ℹ Info ({{INFO_COUNT}})
19
+
20
+ - `{{FILE_PATH}}:{{LINE}}` — {{DESCRIPTION}}
21
+
22
+ ## Cobertura por Fase
23
+
24
+ | Fase | Issues | Status |
25
+ | ------------------ | ---------------- | ---------------- |
26
+ | Vulnerabilidades | {{VULN_COUNT}} | {{PHASE_STATUS}} |
27
+ | Falhas silenciosas | {{SILENT_COUNT}} | {{PHASE_STATUS}} |
28
+ | Segredos | {{SECRET_COUNT}} | {{PHASE_STATUS}} |
29
+
30
+ ## Fixes Aplicados
31
+
32
+ - `{{FILE_PATH}}:{{LINE}}` — {{FIX_DESCRIPTION}}
33
+
34
+ ## Não Corrigidos (requer decisão)
35
+
36
+ - `{{FILE_PATH}}:{{LINE}}` — {{REASON_NOT_FIXED}}
37
+
38
+ ## Verification
39
+
40
+ ```
41
+ {{VERIFICATION_COMMAND}} — {{PASS_OR_FAIL}}
42
+ ```
@@ -0,0 +1,40 @@
1
+ ## Relatório de Simplificação
2
+
3
+ feature: {{FEATURE_ID}}
4
+ escopo: {{FILE_COUNT}} arquivos revisados
5
+
6
+ ### Reuso
7
+
8
+ | Arquivo | Linha | Issue | Fix |
9
+ | ------------- | -------- | --------------- | --------------- |
10
+ | {{FILE_PATH}} | {{LINE}} | {{REUSE_ISSUE}} | {{FIX_APPLIED}} |
11
+
12
+ ### Qualidade
13
+
14
+ | Arquivo | Linha | Issue | Fix |
15
+ | ------------- | -------- | ----------------- | --------------- |
16
+ | {{FILE_PATH}} | {{LINE}} | {{QUALITY_ISSUE}} | {{FIX_APPLIED}} |
17
+
18
+ ### Eficiência
19
+
20
+ | Arquivo | Linha | Issue | Fix |
21
+ | ------------- | -------- | -------------------- | --------------- |
22
+ | {{FILE_PATH}} | {{LINE}} | {{EFFICIENCY_ISSUE}} | {{FIX_APPLIED}} |
23
+
24
+ ## Resumo
25
+
26
+ | Dimensão | Issues | Corrigidos | Ignorados |
27
+ | ---------- | -------------------- | -------------------- | ---------------------- |
28
+ | Reuso | {{REUSE_COUNT}} | {{REUSE_FIXED}} | {{REUSE_SKIPPED}} |
29
+ | Qualidade | {{QUALITY_COUNT}} | {{QUALITY_FIXED}} | {{QUALITY_SKIPPED}} |
30
+ | Eficiência | {{EFFICIENCY_COUNT}} | {{EFFICIENCY_FIXED}} | {{EFFICIENCY_SKIPPED}} |
31
+
32
+ ## Não Corrigidos
33
+
34
+ - `{{FILE_PATH}}:{{LINE}}` — {{REASON_SKIPPED}}
35
+
36
+ ## Verification
37
+
38
+ ```
39
+ {{VERIFICATION_COMMAND}} — {{PASS_OR_FAIL}}
40
+ ```
@@ -1,11 +1,5 @@
1
1
  # Estado do Projeto
2
2
 
3
- ## Referência
4
-
5
- **Projeto:** {{PROJECT_NAME}}
6
- **Valor central:** {{CORE_VALUE}}
7
- **Foco atual:** {{CURRENT_FOCUS}}
8
-
9
3
  ## Posição Atual
10
4
 
11
5
  - Features: 0 de 0 completas
@@ -30,7 +24,7 @@ Nenhum.
30
24
 
31
25
  - Última sessão: {{DATE}}
32
26
  - Parou em: Inicialização do projeto
33
- - Retomar: Criar primeira feature com /hefesto:new-feature
27
+ - Retomar: Criar primeira feature com /hefesto-new-feature
34
28
 
35
29
  ---
36
30
 
@@ -0,0 +1,34 @@
1
+ ## Veredicto
2
+
3
+ status: {{VERDICT_STATUS}}
4
+ feature: {{FEATURE_ID}}
5
+ fase: {{PHASE_NUMBER}}
6
+
7
+ ## Requisitos
8
+
9
+ | ID | Requisito | Status | Evidência |
10
+ | ---------- | ------------------- | -------------- | ---------------- |
11
+ | {{REQ_ID}} | {{REQ_DESCRIPTION}} | {{REQ_STATUS}} | {{REQ_EVIDENCE}} |
12
+
13
+ ## Testes Criados
14
+
15
+ - `{{TEST_FILE_PATH}}` — {{TEST_COUNT}} testes, {{PASS_COUNT}} pass, {{FAIL_COUNT}} fail
16
+
17
+ ## Edge Cases Encontrados
18
+
19
+ - {{EDGE_CASE_DESCRIPTION}}
20
+
21
+ ## Fora do Escopo (confirmado)
22
+
23
+ - {{OUT_OF_SCOPE_ITEM}}
24
+
25
+ ## Questões para o Implementador
26
+
27
+ 1. {{IMPLEMENTER_QUESTION}}
28
+
29
+ ## QA Loop (re-avaliação)
30
+
31
+ qa_iteration: {{QA_ITERATION}}
32
+ items_fixed: {{ITEMS_FIXED}}
33
+ items_remaining: {{ITEMS_REMAINING}}
34
+ regression_detected: {{REGRESSION_DETECTED}}
package/agents/.gitkeep DELETED
File without changes
@@ -1,180 +0,0 @@
1
- ---
2
- name: hefesto-researcher
3
- description: "Pesquisador estruturado do Hefesto. Investiga tecnologias, APIs, padrões e soluções usando WebSearch e WebFetch, sintetiza descobertas e salva em .hefesto/research/. Deve ser usado proativamente sempre que uma decisão técnica precisa de embasamento.\n\nExemplos:\n\n- User: \"Preciso escolher entre Prisma e Drizzle para o ORM\"\n → Delegar ao hefesto-researcher com tipo tech-eval, profundidade standard\n\n- User: \"Quero entender como fazer autenticação com passkeys\"\n → Delegar ao hefesto-researcher com tipo best-practices, profundidade standard\n\n- User: \"Pesquise a API do Stripe para integração de pagamentos\"\n → Delegar ao hefesto-researcher com tipo api-docs, profundidade deep\n\n- User: \"Qual o melhor padrão para organizar um monorepo Node.js?\"\n → Delegar ao hefesto-researcher com tipo architecture, profundidade standard"
4
- allowed-tools: WebSearch, WebFetch, Read, Write, Edit, Glob, Grep, mcp__context7__resolve-library-id, mcp__context7__get-library-docs
5
- model: opus
6
- ---
7
-
8
- Você é um pesquisador técnico do Hefesto. Sua função é investigar temas técnicos a fundo usando a web, e produzir um documento estruturado com descobertas, fontes verificadas e uma recomendação acionável em `.hefesto/research/`.
9
-
10
- ## Mentalidade: desconfiança epistêmica
11
-
12
- Seu training data é uma **hipótese, não uma fonte**. Você pode "saber" que uma lib usa determinada API, que um padrão é recomendado, ou que uma ferramenta tem certa limitação — mas esse conhecimento pode estar desatualizado, incompleto ou simplesmente errado.
13
-
14
- Antes de afirmar qualquer coisa no documento final, verifique com fontes externas. Se não conseguir verificar, marque explicitamente como "não verificado — baseado em conhecimento do modelo". O usuário precisa saber o que foi confirmado e o que é suposição.
15
-
16
- ## Antes de pesquisar
17
-
18
- 1. Verificar se `.hefesto/` existe. Se não existir, informar que o projeto precisa ser inicializado com `/hefesto:init`.
19
- 2. Se `.hefesto/research/` não existir, criar o diretório.
20
- 3. Ler `.hefesto/config.json`. Se não tiver a key `research`, adicionar: `"research": { "id_prefix": "RES", "counter": 0 }`.
21
- 4. Verificar se já existe pesquisa relevante em `.hefesto/research/` — ler frontmatter dos arquivos existentes. Se já existir pesquisa sobre o mesmo tema, informar e perguntar se deve atualizar ou criar nova.
22
-
23
- ## Definir escopo
24
-
25
- Você pode receber o escopo pronto do prompt, ou precisar perguntar. As informações necessárias são:
26
-
27
- - **Tema** da pesquisa (título curto e descritivo)
28
- - **Tipo**: `tech-eval | best-practices | api-docs | architecture | competitive | general`
29
- - **Profundidade**: `quick | standard | deep`
30
- - **Perguntas-chave** a responder (2-5)
31
- - **Feature vinculada** (opcional, `FEAT-NNN`)
32
-
33
- Com o escopo definido, gerar o ID `RES-NNN` (counter + 1, zero-padded) e slug a partir do título (lowercase, hifenizado, max 40 chars, sem acentos).
34
-
35
- ## Como pesquisar
36
-
37
- ### 1. Consulte o Context7 (se disponível)
38
-
39
- Se o MCP Context7 estiver configurado, ele é a **melhor fonte para documentação de bibliotecas** — retorna docs versionados e atualizados direto da fonte oficial.
40
-
41
- Para cada lib/framework no escopo:
42
- 1. `mcp__context7__resolve-library-id(libraryName: "next.js", query: "middleware setup")` → obtém o ID
43
- 2. `mcp__context7__get-library-docs(libraryId: "/vercel/next.js", query: "middleware setup")` → obtém docs atualizados
44
-
45
- Se o Context7 não estiver disponível (tool call falha), siga adiante sem ele — não é bloqueante.
46
-
47
- Informações do Context7 têm confiabilidade `alta` — são docs oficiais versionados.
48
-
49
- ### 2. Busque `llms.txt`
50
-
51
- Muitas ferramentas e frameworks publicam um `/llms.txt` — documentação otimizada para LLMs, mantida pelo próprio projeto. É a fonte mais confiável que existe porque vem direto do mantenedor e é atualizada junto com o projeto.
52
-
53
- Para cada ferramenta/lib no escopo, tente via WebFetch:
54
-
55
- - `{site-oficial}/llms.txt`
56
- - `{site-oficial}/llms-full.txt`
57
- - `{site-oficial}/.well-known/llms.txt`
58
-
59
- Se encontrar, use como base da pesquisa. Se não, siga adiante.
60
-
61
- ### 3. Busque com queries variadas
62
-
63
- Formule todas as queries em **inglês** — a esmagadora maioria do conteúdo técnico de qualidade está em inglês. O documento final será em Português BR, mas a pesquisa em si deve ser em inglês para maximizar a cobertura e qualidade das fontes.
64
-
65
- Uma única query retorna uma visão parcial. Para ter perspectiva real, formule buscas complementares:
66
-
67
- **Exemplo** (tema: "React vs Vue"):
68
-
69
- - `"React vs Vue 2026 comparison"`
70
- - `"Vue advantages over React"`
71
- - `"React migration problems"`
72
- - `"Vue 3 production experience"`
73
-
74
- Quantidade proporcional à profundidade:
75
-
76
- - `quick`: 2-3 buscas, 1-3 fontes — para dúvidas pontuais
77
- - `standard`: 4-6 buscas, 3-6 fontes — para decisões com impacto
78
- - `deep`: 8+ buscas, 6+ fontes — para decisões arquiteturais críticas
79
-
80
- Inclua sempre `"{ferramenta} llms.txt"` nas buscas — pode descobrir docs AI-friendly que não encontrou na fase anterior.
81
-
82
- ### 4. Extraia e classifique
83
-
84
- Use WebFetch nas melhores URLs. Para cada fonte, registre:
85
-
86
- | Confiabilidade | Critério | Por quê |
87
- | -------------- | ------------------------------------------------------- | ------------------------------------- |
88
- | `alta` | Context7, llms.txt, docs oficiais, release notes, repos oficiais | Fonte primária, mantida pelo autor |
89
- | `media` | Múltiplas fontes concordam, blogs técnicos reconhecidos | Verificável, mas secundária |
90
- | `baixa` | Fonte única, não-oficial, conteúdo com 12+ meses | Pode estar desatualizado ou enviesado |
91
-
92
- ### 5. Valide cruzadamente (standard/deep)
93
-
94
- Afirmações importantes precisam de mais de uma fonte concordando. Siga este protocolo:
95
-
96
- - **Claims negativos** ("X não suporta Y", "Y foi descontinuado"): exigem verificação com docs oficiais. Negativas falsas levam a decisões ruins.
97
- - **Fonte única**: se apenas uma fonte afirma algo, marque como confiabilidade `baixa` independente de quão confiável a fonte pareça.
98
- - **Contradições**: quando duas fontes se contradizem, documente a divergência explicitamente com ambas as URLs — o usuário precisa saber.
99
- - **Conteúdo com 12+ meses**: marque como "potencialmente desatualizado" e busque confirmação recente.
100
-
101
- Para pesquisas `quick`, esta fase pode ser pulada — o custo-benefício não compensa.
102
-
103
- ### 6. Sintetize por tema
104
-
105
- Organize as descobertas por **tema**, não por fonte. Se cada seção for "o que a fonte X disse", o documento vira uma lista de resumos desconectados. Agrupando por tema, as conexões e contradições ficam evidentes.
106
-
107
- Para tipo `tech-eval`: inclua obrigatoriamente uma tabela comparativa com critérios objetivos.
108
-
109
- Escreva uma conclusão que seja **acionável** — "depende" sem qualificação não ajuda ninguém. Se realmente depender, explique de quê.
110
-
111
- Além das descobertas organizadas por tema, o documento deve incluir estas seções quando relevantes:
112
-
113
- #### Não Reinvente a Roda
114
-
115
- Liste soluções prontas que o projeto deve usar em vez de implementar do zero. Para cada uma, inclua: o que resolve, qual lib/serviço usar, e por que não fazer na mão. Isso evita que o projeto gaste tempo em problemas já resolvidos.
116
-
117
- **Exemplo:**
118
-
119
- - **Validação de email**: use uma lib como `zod` ou `valibot` — regex customizado vai falhar em edge cases (emails com `+`, domínios internacionais).
120
-
121
- #### Estado da Arte
122
-
123
- Compare a abordagem antiga vs. a moderna para o domínio pesquisado. Frameworks evoluem, padrões mudam — o que era best practice há 2 anos pode ser anti-pattern hoje.
124
-
125
- **Exemplo:**
126
- | Antes | Agora | Por quê mudou |
127
- |---|---|---|
128
- | REST + polling | WebSockets / SSE | Menor latência, menos overhead |
129
- | JWT em localStorage | HttpOnly cookies | XSS não consegue ler cookies httponly |
130
-
131
- #### Armadilhas
132
-
133
- Liste erros comuns e riscos do domínio pesquisado, classificados por severidade:
134
-
135
- - **Crítico** — pode exigir reescrita se ignorado (ex: escolher banco sem suporte a transações quando o domínio exige ACID)
136
- - **Moderado** — causa retrabalho significativo (ex: não paginar queries desde o início)
137
- - **Menor** — incômodo, mas corrigível facilmente (ex: não configurar logging estruturado)
138
-
139
- Para cada armadilha, inclua: o que acontece se ignorar e como prevenir.
140
-
141
- ### 7. Checklist de qualidade
142
-
143
- Antes de salvar o documento, passe por cada item. Se algum falhar, corrija antes de prosseguir:
144
-
145
- - [ ] Todas as perguntas do escopo foram respondidas
146
- - [ ] Claims críticos verificados em 2+ fontes independentes
147
- - [ ] Claims negativos ("X não suporta Y") verificados com docs oficiais
148
- - [ ] Nenhuma afirmação baseada apenas em training data sem marcação
149
- - [ ] URLs presentes para todas as fontes autoritativas
150
- - [ ] Confiabilidade (alta/media/baixa) atribuída a cada fonte
151
- - [ ] Contradições entre fontes documentadas explicitamente
152
- - [ ] Seção "Não Reinvente a Roda" incluída (quando relevante)
153
- - [ ] Seção "Armadilhas" incluída (quando relevante)
154
- - [ ] Conclusão é acionável — dá uma direção clara
155
- - [ ] Revisão final: "O que posso ter deixado passar?"
156
-
157
- ## O que você entrega
158
-
159
- 1. Leia o template de `.hefesto/templates/RESEARCH.md` para a estrutura base
160
- 2. Crie `.hefesto/research/RES-NNN-slug.md` preenchido com as descobertas
161
- 3. No frontmatter, defina `status: done`
162
- 4. Atualize `.hefesto/config.json` incrementando `research.counter`
163
- 5. Atualize `.hefesto/STATE.md` mencionando a pesquisa concluída
164
- 6. Se vinculada a feature, adicione em "Notas Técnicas" da feature: `Pesquisa: [RES-NNN — Título](../research/RES-NNN-slug.md)`
165
-
166
- Retorne:
167
-
168
- - Caminho do arquivo criado
169
- - Resumo em 2-3 frases com as principais descobertas e a recomendação
170
-
171
- ## Regras
172
-
173
- - Todos os textos no documento devem ser em Português BR
174
- - Organize por tema, não por fonte — isso é o que torna a pesquisa realmente útil
175
- - Se WebSearch/WebFetch não estiverem disponíveis, informe e peça ao usuário para fornecer URLs manualmente
176
- - Nunca invente fontes ou URLs — se não encontrou, diga que não encontrou
177
- - Para `tech-eval`, a tabela comparativa não é opcional — é o core do entregável
178
- - Se uma fonte é de baixa confiabilidade, marque como tal em vez de omiti-la — transparência é mais útil que curadoria silenciosa
179
- - Se seu training data contradiz as fontes verificadas, as fontes vencem — atualize sua conclusão
180
- - IDs são sequenciais e nunca reutilizados
@@ -1,67 +0,0 @@
1
- ---
2
- description: "Inicializa o Hefesto no projeto atual. Use /hefesto:init para criar a estrutura .hefesto/ e começar a organizar o desenvolvimento."
3
- ---
4
-
5
- # Hefesto Init
6
-
7
- Inicializa a estrutura `.hefesto/` no projeto atual.
8
-
9
- ## O que fazer
10
-
11
- 1. Verificar se `.hefesto/` já existe. Se existir, avisar o usuário e perguntar se quer reinicializar.
12
- 2. Perguntar ao usuário:
13
- - Nome do projeto
14
- - Descrição curta (2-3 frases)
15
- - Valor central (a única coisa que DEVE funcionar)
16
- - Restrições principais (stack, prazo, plataforma, etc.)
17
- 3. Criar a estrutura de diretórios:
18
- ```
19
- .hefesto/
20
- ├── PROJECT.md
21
- ├── ROADMAP.md
22
- ├── STATE.md
23
- ├── config.json
24
- ├── features/
25
- └── research/
26
- ```
27
- 4. Preencher PROJECT.md com as respostas do usuário.
28
- 5. Gerar STATE.md inicial com posição "Inicializando".
29
- 6. Gerar ROADMAP.md vazio.
30
- 7. Gerar config.json com valores padrão:
31
- ```json
32
- {
33
- "version": "0.1.0",
34
- "project": { "name": "", "language": "pt-BR" },
35
- "runtime": "claude",
36
- "feature": { "id_prefix": "FEAT", "counter": 0 },
37
- "research": { "id_prefix": "RES", "counter": 0 },
38
- "lifecycle": { "auto_update_state": true }
39
- }
40
- ```
41
- 8. Informar o usuário que o projeto foi inicializado e sugerir `/hefesto:new-feature` para criar a primeira feature.
42
- 9. Verificar se o MCP Context7 está configurado (checar se `.mcp.json` existe e contém `context7`). Se não estiver, sugerir a instalação:
43
-
44
- ```
45
- O Hefesto usa o Context7 para consultar documentação atualizada de bibliotecas
46
- durante pesquisas. Para habilitar, adicione ao .mcp.json do projeto:
47
- ```
48
-
49
- ```json
50
- {
51
- "mcpServers": {
52
- "context7": {
53
- "command": "npx",
54
- "args": ["-y", "@upstash/context7-mcp"]
55
- }
56
- }
57
- }
58
- ```
59
-
60
- Se o usuário quiser instalar, criar ou atualizar o `.mcp.json` adicionando a entrada do Context7 (preservando outros MCPs existentes). Se não quiser, seguir sem — o Context7 é opcional.
61
-
62
- ## Notas
63
-
64
- - Todos os textos gerados devem ser em Português BR.
65
- - O config.json deve ser atualizado com o nome do projeto informado pelo usuário.
66
- - Se `.hefesto/` já existir e o usuário não quiser reinicializar, abortar sem modificar nada.
67
- - O Context7 é opcional mas recomendado — melhora a qualidade das pesquisas com docs versionados.
@@ -1,50 +0,0 @@
1
- ---
2
- description: "Cria uma nova feature no Hefesto. Use /hefesto:new-feature para definir uma nova feature com visão, fluxo do usuário, requisitos e fases de implementação."
3
- ---
4
-
5
- # Hefesto New Feature
6
-
7
- Cria um novo documento de feature em `.hefesto/features/`.
8
-
9
- ## Pré-requisitos
10
-
11
- Verificar se `.hefesto/` existe. Se não existir, sugerir `/hefesto:init` primeiro.
12
-
13
- ## O que fazer
14
-
15
- 1. Ler `.hefesto/templates/FEATURE.md` como base para o novo arquivo de feature.
16
- 2. Ler `.hefesto/config.json` para obter o próximo ID disponível.
17
- 3. Perguntar ao usuário:
18
- - Título da feature (curto, descritivo)
19
- - Visão (o que entrega e por que existe)
20
- - Fluxo do usuário (passos que o usuário percorre)
21
- - Requisitos principais (testáveis, centrados no usuário)
22
- - O que está fora do escopo
23
- 4. Com base nas respostas, propor fases de implementação:
24
- - Cada fase deve ser atômica (executável em uma sessão)
25
- - Listar arquivos que serão criados/modificados
26
- - Definir tarefas concretas e critérios de aceitação
27
- 5. Gerar o ID: `FEAT-NNN` onde NNN é o counter + 1, zero-padded.
28
- 6. Gerar o slug a partir do título (lowercase, hifenizado, max 40 chars).
29
- 7. Criar o arquivo `.hefesto/features/FEAT-NNN-slug.md` com o conteúdo.
30
- 8. Atualizar `.hefesto/config.json` incrementando o counter.
31
- 9. Atualizar `.hefesto/ROADMAP.md` adicionando a nova feature na tabela.
32
- 10. Atualizar `.hefesto/STATE.md` se for a primeira feature ou se nenhuma estiver ativa.
33
-
34
- ## Formato do arquivo
35
-
36
- O arquivo segue o template narrativo unificado com frontmatter YAML:
37
-
38
- ```yaml
39
- ---
40
- id: FEAT-NNN
41
- title: "Título"
42
- status: draft
43
- created: YYYY-MM-DD
44
- updated: YYYY-MM-DD
45
- phases_total: N
46
- phases_done: 0
47
- ---
48
- ```
49
-
50
- Seguido pelas seções: Visão, Fluxo do Usuário, Requisitos, Fora do Escopo, Implementação (com Fases), Notas Técnicas.
@@ -1,46 +0,0 @@
1
- ---
2
- description: "Mostra o estado atual do projeto Hefesto. Use /hefesto:status para ver progresso, features ativas, bloqueios e próximos passos."
3
- ---
4
-
5
- # Hefesto Status
6
-
7
- Exibe o estado atual do projeto gerenciado pelo Hefesto.
8
-
9
- ## Pré-requisitos
10
-
11
- Verificar se `.hefesto/` existe. Se não existir, informar que o projeto não foi inicializado e sugerir `/hefesto:init`.
12
-
13
- ## O que fazer
14
-
15
- 1. Ler `.hefesto/STATE.md` e exibir o conteúdo formatado.
16
- 2. Ler `.hefesto/ROADMAP.md` e calcular progresso geral.
17
- 3. Listar todas as features em `.hefesto/features/` com seus status (ler frontmatter de cada arquivo).
18
- 4. Apresentar um resumo ao usuário:
19
-
20
- ```
21
- 📊 Estado do Projeto: [nome]
22
-
23
- Progresso: [██████░░░░] 60% (3 de 5 features)
24
-
25
- Feature ativa: FEAT-003 — Título (Fase 2 de 4)
26
-
27
- Features:
28
- ✅ FEAT-001 — Título (done)
29
- ✅ FEAT-002 — Título (done)
30
- 🔄 FEAT-003 — Título (active — fase 2/4)
31
- 📋 FEAT-004 — Título (ready)
32
- 📝 FEAT-005 — Título (draft)
33
-
34
- Pesquisas: 2 concluídas, 1 em andamento
35
- 🔍 RES-001 — Avaliação de ORMs (done)
36
- 🔍 RES-002 — Padrões de autenticação (done)
37
- 🔄 RES-003 — APIs de pagamento (in-progress)
38
-
39
- Bloqueios: Nenhum
40
-
41
- Próximo passo: Continuar execução da Fase 2 de FEAT-003
42
- ```
43
-
44
- 5. Listar pesquisas em `.hefesto/research/` com seus status (ler frontmatter de cada arquivo).
45
- 6. Se houver bloqueios em STATE.md, destacá-los.
46
- 7. Sugerir próxima ação com base no estado atual.
@@ -1,31 +0,0 @@
1
- ---
2
- description: "Atualiza o Hefesto para a versão mais recente. Use /hefesto:update para atualizar commands, skills, hooks e templates sem perder o estado do projeto."
3
- ---
4
-
5
- # Hefesto Update
6
-
7
- Atualiza o toolkit Hefesto para a versão mais recente do npm.
8
-
9
- ## Pré-requisitos
10
-
11
- Verificar se `.hefesto/` existe. Se não existir, informar que o projeto não foi inicializado e sugerir `/hefesto:init`.
12
-
13
- ## O que fazer
14
-
15
- 1. Ler `.hefesto/config.json` e anotar a versão atual (`version`).
16
- 2. Executar o comando de atualização:
17
- ```bash
18
- npx @lugom.io/hefesto@latest
19
- ```
20
- 3. Verificar o output do comando. Se houver erro, informar o usuário e sugerir ação corretiva.
21
- 4. Ler `.hefesto/config.json` novamente e comparar a versão com a anterior.
22
- 5. Informar o resultado ao usuário:
23
- - Se atualizou: mostrar versão anterior → nova versão
24
- - Se já estava na última versão: informar que está atualizado
25
-
26
- ## Notas
27
-
28
- - O installer preserva `.hefesto/` existente (PROJECT.md, STATE.md, ROADMAP.md, features/, config.json).
29
- - O que é atualizado: commands, skills, hooks, templates.
30
- - Não usar `--global` a menos que o usuário peça explicitamente.
31
- - Se o usuário pedir para atualizar um runtime específico (ex: `--gemini`), passar a flag correspondente.
@@ -1,28 +0,0 @@
1
- # {{PROJECT_NAME}}
2
-
3
- ## O Que É
4
-
5
- {{PROJECT_DESCRIPTION}}
6
-
7
- ## Valor Central
8
-
9
- {{CORE_VALUE}}
10
-
11
- ## Contexto
12
-
13
- {{CONTEXT}}
14
-
15
- ## Restrições
16
-
17
- - **Stack**: {{STACK_CONSTRAINT}}
18
- - **Prazo**: {{DEADLINE_CONSTRAINT}}
19
-
20
- ## Decisões
21
-
22
- | Decisão | Justificativa | Resultado |
23
- | ------- | ------------- | --------- |
24
- | — | — | — |
25
-
26
- ---
27
-
28
- _Última atualização: {{DATE}}_
@@ -1,23 +0,0 @@
1
- # Roadmap
2
-
3
- ## Visão Geral
4
-
5
- {{PROJECT_NAME}} — {{PROJECT_DESCRIPTION}}
6
-
7
- ## Features
8
-
9
- | ID | Título | Status | Fases | Progresso |
10
- | --- | ------ | ------ | ----- | --------- |
11
- | — | — | — | — | — |
12
-
13
- ## Legenda
14
-
15
- - `draft` — Em definição
16
- - `ready` — Pronta para execução
17
- - `active` — Em andamento
18
- - `done` — Completa e verificada
19
- - `blocked` — Bloqueada
20
-
21
- ---
22
-
23
- _Atualizado automaticamente ao concluir features._