maestro-bundle 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 (60) hide show
  1. package/README.md +91 -0
  2. package/package.json +25 -0
  3. package/src/cli.mjs +212 -0
  4. package/templates/bundle-ai-agents/.spec/constitution.md +33 -0
  5. package/templates/bundle-ai-agents/AGENTS.md +140 -0
  6. package/templates/bundle-ai-agents/skills/agent-orchestration/SKILL.md +132 -0
  7. package/templates/bundle-ai-agents/skills/api-design/SKILL.md +100 -0
  8. package/templates/bundle-ai-agents/skills/clean-architecture/SKILL.md +99 -0
  9. package/templates/bundle-ai-agents/skills/context-engineering/SKILL.md +98 -0
  10. package/templates/bundle-ai-agents/skills/database-modeling/SKILL.md +59 -0
  11. package/templates/bundle-ai-agents/skills/docker-containerization/SKILL.md +114 -0
  12. package/templates/bundle-ai-agents/skills/eval-testing/SKILL.md +115 -0
  13. package/templates/bundle-ai-agents/skills/memory-management/SKILL.md +106 -0
  14. package/templates/bundle-ai-agents/skills/prompt-engineering/SKILL.md +66 -0
  15. package/templates/bundle-ai-agents/skills/rag-pipeline/SKILL.md +128 -0
  16. package/templates/bundle-ai-agents/skills/testing-strategy/SKILL.md +95 -0
  17. package/templates/bundle-base/AGENTS.md +118 -0
  18. package/templates/bundle-base/skills/branch-strategy/SKILL.md +42 -0
  19. package/templates/bundle-base/skills/code-review/SKILL.md +54 -0
  20. package/templates/bundle-base/skills/commit-pattern/SKILL.md +58 -0
  21. package/templates/bundle-data-pipeline/.spec/constitution.md +32 -0
  22. package/templates/bundle-data-pipeline/AGENTS.md +115 -0
  23. package/templates/bundle-data-pipeline/skills/data-preprocessing/SKILL.md +75 -0
  24. package/templates/bundle-data-pipeline/skills/docker-containerization/SKILL.md +114 -0
  25. package/templates/bundle-data-pipeline/skills/feature-engineering/SKILL.md +76 -0
  26. package/templates/bundle-data-pipeline/skills/mlops-pipeline/SKILL.md +77 -0
  27. package/templates/bundle-data-pipeline/skills/model-training/SKILL.md +68 -0
  28. package/templates/bundle-data-pipeline/skills/rag-pipeline/SKILL.md +128 -0
  29. package/templates/bundle-frontend-spa/.spec/constitution.md +32 -0
  30. package/templates/bundle-frontend-spa/AGENTS.md +107 -0
  31. package/templates/bundle-frontend-spa/skills/authentication/SKILL.md +90 -0
  32. package/templates/bundle-frontend-spa/skills/component-design/SKILL.md +115 -0
  33. package/templates/bundle-frontend-spa/skills/e2e-testing/SKILL.md +101 -0
  34. package/templates/bundle-frontend-spa/skills/integration-api/SKILL.md +95 -0
  35. package/templates/bundle-frontend-spa/skills/react-patterns/SKILL.md +130 -0
  36. package/templates/bundle-frontend-spa/skills/responsive-layout/SKILL.md +65 -0
  37. package/templates/bundle-frontend-spa/skills/state-management/SKILL.md +86 -0
  38. package/templates/bundle-jhipster-microservices/.spec/constitution.md +37 -0
  39. package/templates/bundle-jhipster-microservices/AGENTS.md +307 -0
  40. package/templates/bundle-jhipster-microservices/skills/ci-cd-pipeline/SKILL.md +112 -0
  41. package/templates/bundle-jhipster-microservices/skills/clean-architecture/SKILL.md +99 -0
  42. package/templates/bundle-jhipster-microservices/skills/ddd-tactical/SKILL.md +138 -0
  43. package/templates/bundle-jhipster-microservices/skills/jhipster-angular/SKILL.md +97 -0
  44. package/templates/bundle-jhipster-microservices/skills/jhipster-docker-k8s/SKILL.md +183 -0
  45. package/templates/bundle-jhipster-microservices/skills/jhipster-entities/SKILL.md +87 -0
  46. package/templates/bundle-jhipster-microservices/skills/jhipster-gateway/SKILL.md +96 -0
  47. package/templates/bundle-jhipster-microservices/skills/jhipster-kafka/SKILL.md +145 -0
  48. package/templates/bundle-jhipster-microservices/skills/jhipster-registry/SKILL.md +83 -0
  49. package/templates/bundle-jhipster-microservices/skills/jhipster-service/SKILL.md +131 -0
  50. package/templates/bundle-jhipster-microservices/skills/testing-strategy/SKILL.md +95 -0
  51. package/templates/bundle-jhipster-monorepo/.spec/constitution.md +32 -0
  52. package/templates/bundle-jhipster-monorepo/AGENTS.md +227 -0
  53. package/templates/bundle-jhipster-monorepo/skills/clean-architecture/SKILL.md +99 -0
  54. package/templates/bundle-jhipster-monorepo/skills/ddd-tactical/SKILL.md +138 -0
  55. package/templates/bundle-jhipster-monorepo/skills/jhipster-angular/SKILL.md +166 -0
  56. package/templates/bundle-jhipster-monorepo/skills/jhipster-entities/SKILL.md +141 -0
  57. package/templates/bundle-jhipster-monorepo/skills/jhipster-liquibase/SKILL.md +95 -0
  58. package/templates/bundle-jhipster-monorepo/skills/jhipster-security/SKILL.md +89 -0
  59. package/templates/bundle-jhipster-monorepo/skills/jhipster-spring/SKILL.md +155 -0
  60. package/templates/bundle-jhipster-monorepo/skills/testing-strategy/SKILL.md +95 -0
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: prompt-engineering
3
+ description: Criar e otimizar system prompts para agentes seguindo melhores práticas de context engineering. Use quando precisar escrever prompts, melhorar prompts existentes, ou criar instruções para agentes.
4
+ ---
5
+
6
+ # Prompt Engineering para Agentes
7
+
8
+ ## Estrutura de System Prompt
9
+
10
+ ```
11
+ 1. IDENTIDADE — Quem o agente é
12
+ 2. OBJETIVO — O que ele deve alcançar
13
+ 3. FERRAMENTAS — O que tem disponível
14
+ 4. REGRAS — Limites inegociáveis
15
+ 5. FORMATO — Como estruturar a saída
16
+ 6. EXEMPLOS — Demonstrações concretas
17
+ ```
18
+
19
+ ## Template
20
+
21
+ ```python
22
+ SYSTEM_PROMPT = """
23
+ ## Identidade
24
+ Você é {role}, especializado em {especialidade}.
25
+
26
+ ## Objetivo
27
+ Sua missão é {objetivo_principal}. Você trabalha dentro do Maestro,
28
+ uma plataforma de governança de desenvolvimento.
29
+
30
+ ## Ferramentas disponíveis
31
+ {lista_de_tools_com_descrição}
32
+
33
+ ## Regras
34
+ 1. Sempre seguir o bundle {bundle_name} para padrões de código
35
+ 2. Todo commit deve referenciar a task: {task_id}
36
+ 3. Trabalhar apenas na worktree designada: {worktree_path}
37
+ 4. Reportar progresso a cada etapa significativa
38
+ 5. Solicitar human review para operações destrutivas
39
+
40
+ ## Formato de resposta
41
+ - Para código: blocos com linguagem especificada
42
+ - Para decisões: justificar com "porquê"
43
+ - Para erros: incluir contexto e sugestão de fix
44
+
45
+ ## Exemplo
46
+ Task: "Criar endpoint GET /api/v1/demands"
47
+ Ação: Criar controller, use case, repository seguindo Clean Architecture
48
+ Branch: feature/backend-{task_id}
49
+ """
50
+ ```
51
+
52
+ ## Boas práticas
53
+
54
+ 1. **Seja específico** — "Crie uma API REST com FastAPI" > "Crie uma API"
55
+ 2. **Explique o porquê** — "Usar Value Objects porque garantem validação no construtor" > "Usar Value Objects"
56
+ 3. **Dê exemplos** — Um bom exemplo vale mais que 10 linhas de instrução
57
+ 4. **Evite negativos** — "Mantenha funções com até 20 linhas" > "Não crie funções longas"
58
+ 5. **Priorize** — Coloque as regras mais importantes primeiro
59
+ 6. **Teste** — Rode o prompt com cenários reais antes de deployar
60
+
61
+ ## Anti-patterns
62
+
63
+ - NEVER/ALWAYS em excesso (perde a força)
64
+ - Instruções contraditórias
65
+ - Prompts com 5000+ palavras (o agente se perde)
66
+ - Regras sem justificativa (o agente não sabe quando flexibilizar)
@@ -0,0 +1,128 @@
1
+ ---
2
+ name: rag-pipeline
3
+ description: Construir pipeline RAG completo com ingestão, chunking, embedding, indexação e retrieval usando LangChain + pgvector. Use sempre que precisar implementar busca semântica, responder perguntas sobre documentos, ou criar um sistema de retrieval.
4
+ ---
5
+
6
+ # RAG Pipeline
7
+
8
+ ## Pipeline completo
9
+
10
+ ```
11
+ Documentos → Loader → Splitter → Embeddings → pgvector → Retriever → Re-ranker → LLM
12
+ ```
13
+
14
+ ## 1. Ingestão
15
+
16
+ ```python
17
+ from langchain_community.document_loaders import DirectoryLoader, UnstructuredMarkdownLoader
18
+ from langchain.text_splitter import RecursiveCharacterTextSplitter
19
+
20
+ # Loader por tipo de documento
21
+ loader = DirectoryLoader(
22
+ "./documents/",
23
+ glob="**/*.md",
24
+ loader_cls=UnstructuredMarkdownLoader
25
+ )
26
+ docs = loader.load()
27
+
28
+ # Splitter com separadores Markdown
29
+ splitter = RecursiveCharacterTextSplitter(
30
+ chunk_size=1000,
31
+ chunk_overlap=200,
32
+ separators=["\n## ", "\n### ", "\n\n", "\n", ". ", " "]
33
+ )
34
+ chunks = splitter.split_documents(docs)
35
+ ```
36
+
37
+ ## 2. Metadados obrigatórios
38
+
39
+ Cada chunk deve ter:
40
+ ```python
41
+ for chunk in chunks:
42
+ chunk.metadata.update({
43
+ "source": chunk.metadata.get("source", "unknown"),
44
+ "doc_type": classify_document(chunk), # skill, agent_md, prd, code
45
+ "language": detect_language(chunk),
46
+ "created_at": datetime.now().isoformat(),
47
+ })
48
+ ```
49
+
50
+ ## 3. Embedding + Indexação
51
+
52
+ ```python
53
+ from langchain_openai import OpenAIEmbeddings
54
+ from langchain_postgres import PGVector
55
+
56
+ embeddings = OpenAIEmbeddings(model="text-embedding-3-large", dimensions=1536)
57
+
58
+ vectorstore = PGVector(
59
+ collection_name="documents",
60
+ connection=DATABASE_URL,
61
+ embedding_function=embeddings,
62
+ )
63
+ vectorstore.add_documents(chunks)
64
+ ```
65
+
66
+ ## 4. Retrieval Híbrido
67
+
68
+ ```python
69
+ from langchain.retrievers import EnsembleRetriever
70
+ from langchain_community.retrievers import BM25Retriever
71
+
72
+ # Semântico
73
+ semantic_retriever = vectorstore.as_retriever(search_kwargs={"k": 20})
74
+
75
+ # Keyword
76
+ bm25_retriever = BM25Retriever.from_documents(chunks, k=20)
77
+
78
+ # Ensemble com RRF
79
+ hybrid_retriever = EnsembleRetriever(
80
+ retrievers=[semantic_retriever, bm25_retriever],
81
+ weights=[0.6, 0.4]
82
+ )
83
+ ```
84
+
85
+ ## 5. Re-ranking
86
+
87
+ ```python
88
+ from langchain.retrievers import ContextualCompressionRetriever
89
+ from langchain_cohere import CohereRerank
90
+
91
+ reranker = CohereRerank(top_n=5)
92
+ final_retriever = ContextualCompressionRetriever(
93
+ base_compressor=reranker,
94
+ base_retriever=hybrid_retriever
95
+ )
96
+ ```
97
+
98
+ ## 6. Query Chain
99
+
100
+ ```python
101
+ from langchain_core.prompts import ChatPromptTemplate
102
+ from langchain_core.output_parsers import StrOutputParser
103
+
104
+ prompt = ChatPromptTemplate.from_template("""
105
+ Responda a pergunta baseado apenas no contexto fornecido.
106
+ Se a resposta não estiver no contexto, diga "Não encontrei essa informação".
107
+
108
+ Contexto: {context}
109
+ Pergunta: {question}
110
+ """)
111
+
112
+ chain = (
113
+ {"context": final_retriever, "question": RunnablePassthrough()}
114
+ | prompt
115
+ | llm
116
+ | StrOutputParser()
117
+ )
118
+
119
+ result = chain.invoke("Qual skill usar para criar componentes React?")
120
+ ```
121
+
122
+ ## Checklist de qualidade
123
+
124
+ - [ ] Chunks testados com perguntas reais
125
+ - [ ] Metadados completos em todos os chunks
126
+ - [ ] Retrieval quality medido com golden dataset
127
+ - [ ] Re-ranking ativo para refinar top-k
128
+ - [ ] Fallback para quando retrieval não encontra nada
@@ -0,0 +1,95 @@
1
+ ---
2
+ name: testing-strategy
3
+ description: Implementar estratégia de testes com unitários, integração e e2e usando Pytest ou JUnit. Use quando for escrever testes, definir estratégia de testes, ou melhorar cobertura.
4
+ ---
5
+
6
+ # Estratégia de Testes
7
+
8
+ ## Pirâmide
9
+
10
+ ```
11
+ / E2E \ Poucos, lentos, caros
12
+ / Integr. \ Moderados
13
+ / Unitários \ Muitos, rápidos, baratos
14
+ ```
15
+
16
+ ## Testes Unitários — Domínio
17
+
18
+ Testar regras de negócio sem infraestrutura.
19
+
20
+ ```python
21
+ # tests/domain/test_demand.py
22
+ class TestDemand:
23
+ def test_should_decompose_new_demand(self):
24
+ demand = Demand(id=DemandId.generate(), description="Criar CRUD")
25
+ planner = FakePlanner(tasks=[Task(...), Task(...)])
26
+
27
+ tasks = demand.decompose(planner)
28
+
29
+ assert len(tasks) == 2
30
+ assert demand.status == DemandStatus.PLANNED
31
+
32
+ def test_should_reject_decompose_if_already_planned(self):
33
+ demand = Demand(id=DemandId.generate(), description="Criar CRUD")
34
+ demand.decompose(FakePlanner(tasks=[Task(...)]))
35
+
36
+ with pytest.raises(DemandAlreadyDecomposedException):
37
+ demand.decompose(FakePlanner(tasks=[]))
38
+
39
+ def test_should_not_allow_more_than_20_tasks(self):
40
+ demand = Demand(id=DemandId.generate(), description="Mega projeto")
41
+ for i in range(20):
42
+ demand.add_task(Task(...))
43
+
44
+ with pytest.raises(TooManyTasksException):
45
+ demand.add_task(Task(...))
46
+ ```
47
+
48
+ ## Testes Unitários — Value Objects
49
+
50
+ ```python
51
+ class TestComplianceScore:
52
+ def test_passing_score(self):
53
+ score = ComplianceScore(85.0)
54
+ assert score.is_passing() is True
55
+
56
+ def test_failing_score(self):
57
+ score = ComplianceScore(60.0)
58
+ assert score.is_passing() is False
59
+
60
+ def test_invalid_score_raises(self):
61
+ with pytest.raises(ValueError):
62
+ ComplianceScore(150.0)
63
+ ```
64
+
65
+ ## Testes de Integração — Repositórios
66
+
67
+ ```python
68
+ # tests/infrastructure/test_pg_demand_repository.py
69
+ @pytest.fixture
70
+ def db_session():
71
+ engine = create_engine(TEST_DATABASE_URL)
72
+ with Session(engine) as session:
73
+ yield session
74
+ session.rollback()
75
+
76
+ class TestPgDemandRepository:
77
+ def test_should_save_and_find_demand(self, db_session):
78
+ repo = PgDemandRepository(db_session)
79
+ demand = Demand(id=DemandId.generate(), description="Test")
80
+
81
+ repo.save(demand)
82
+ found = repo.find_by_id(demand.id)
83
+
84
+ assert found.description == "Test"
85
+ ```
86
+
87
+ ## Naming
88
+
89
+ ```
90
+ test_should_<resultado>_when_<condição>
91
+
92
+ test_should_return_error_when_email_is_invalid
93
+ test_should_decompose_demand_when_status_is_created
94
+ test_should_reject_merge_when_conflicts_exist
95
+ ```
@@ -0,0 +1,118 @@
1
+ # Bundle Base — Padrões da Organização
2
+
3
+ Este é o bundle base que TODOS os desenvolvedores devem usar. Ele define os padrões inegociáveis da organização.
4
+
5
+ ## Quem você é
6
+
7
+ Você é um assistente de desenvolvimento que segue rigorosamente os padrões da organização. Todo código produzido deve aderir às convenções abaixo.
8
+
9
+ ## Padrões de Código
10
+
11
+ ### Geral
12
+ - Máximo de 500 linhas por arquivo
13
+ - Funções com no máximo 20 linhas
14
+ - Nomes de variáveis e funções descritivos (nunca `d`, `x`, `tmp`)
15
+ - Usar funções nativas da linguagem para manipulação de strings
16
+ - Evitar ifs aninhados (hadouken) — usar early returns e guard clauses
17
+ - Tratar fluxos de exceção, não só o caminho feliz
18
+ - Não deixar código morto, comentários TODO sem prazo, ou prints de debug
19
+
20
+ ### Python
21
+ - Usar f-strings para interpolação
22
+ - Type hints em todas as funções públicas
23
+ - Docstrings apenas em funções complexas (não óbvias)
24
+ - Black para formatação, Ruff para linting
25
+
26
+ ### TypeScript
27
+ - Strict mode habilitado
28
+ - Interfaces sobre types quando possível
29
+ - Async/await sobre .then()
30
+
31
+ ### Java
32
+ - Seguir convenções do Google Java Style Guide
33
+ - Records para DTOs imutáveis
34
+ - Optional ao invés de null
35
+
36
+ ## Padrões de Git
37
+
38
+ ### Branches
39
+ - `main` — produção, protegida
40
+ - `develop` — integração
41
+ - `feature/<escopo>-<descricao>` — novas funcionalidades
42
+ - `fix/<escopo>-<descricao>` — correções
43
+ - `hotfix/<descricao>` — correções urgentes em produção
44
+
45
+ ### Commits
46
+ Formato: `<tipo>(<escopo>): <descrição>`
47
+
48
+ Tipos permitidos:
49
+ - `feat` — nova funcionalidade
50
+ - `fix` — correção de bug
51
+ - `refactor` — refatoração sem mudança de comportamento
52
+ - `docs` — documentação
53
+ - `test` — adição ou correção de testes
54
+ - `chore` — tarefas de manutenção
55
+ - `ci` — mudanças em CI/CD
56
+
57
+ Exemplos:
58
+ ```
59
+ feat(auth): implementar autenticação JWT
60
+ fix(api): corrigir timeout na busca de usuários
61
+ refactor(domain): extrair value object para CPF
62
+ ```
63
+
64
+ ### Pull Requests
65
+ - Título curto (< 70 caracteres)
66
+ - Descrição com: resumo, motivação, como testar
67
+ - Sempre vincular à task/issue
68
+ - Mínimo 1 reviewer
69
+
70
+ ## Segurança
71
+
72
+ - NUNCA commitar secrets (.env, credentials, API keys)
73
+ - Rate limiting em todas as APIs
74
+ - Validar inputs em fronteiras do sistema (API, UI)
75
+ - Seguir OWASP Top 10
76
+ - HTTPS obrigatório
77
+
78
+ ## Testes
79
+
80
+ - Cobertura mínima: 80% no código de domínio
81
+ - Testes unitários para regras de negócio
82
+ - Testes de integração para repositórios e APIs
83
+ - Nomear testes descritivamente: `should_return_error_when_email_is_invalid`
84
+
85
+ ## Estrutura de Projeto
86
+
87
+ Organizar por domínio/feature, não por tipo técnico:
88
+
89
+ ```
90
+ # BOM — por domínio
91
+ src/
92
+ ├── demands/
93
+ ├── bundles/
94
+ ├── agents/
95
+ └── tracking/
96
+
97
+ # RUIM — por camada técnica
98
+ src/
99
+ ├── controllers/
100
+ ├── services/
101
+ ├── repositories/
102
+ └── models/
103
+ ```
104
+
105
+ ## Documentação
106
+
107
+ - README.md na raiz com: propósito, como rodar, como testar
108
+ - ADRs para decisões arquiteturais significativas
109
+ - Diagramas como código (Mermaid) versionados no repo
110
+
111
+ ## O que NÃO fazer
112
+
113
+ - Não usar `any` em TypeScript
114
+ - Não ignorar erros com try/catch vazio
115
+ - Não fazer push direto na main
116
+ - Não criar utils/helpers genéricos "para o futuro"
117
+ - Não instalar dependências sem justificativa
118
+ - Não fazer "vibing coding" — sempre ter uma task/spec associada
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: branch-strategy
3
+ description: Criar e gerenciar branches seguindo a estratégia Git da organização. Use quando for criar branch, iniciar uma feature, ou organizar o fluxo de branches.
4
+ ---
5
+
6
+ # Estratégia de Branches Maestro
7
+
8
+ ## Branches permanentes
9
+
10
+ | Branch | Propósito | Proteção |
11
+ |---|---|---|
12
+ | `main` | Código em produção | Protegida, só via MR aprovado |
13
+ | `develop` | Integração de features | Protegida, MR com 1+ reviewer |
14
+
15
+ ## Branches temporárias
16
+
17
+ | Padrão | Exemplo | Origem | Destino |
18
+ |---|---|---|---|
19
+ | `feature/<modulo>-<desc>` | `feature/demands-auto-decompose` | `develop` | `develop` |
20
+ | `fix/<modulo>-<desc>` | `fix/agents-timeout-skill` | `develop` | `develop` |
21
+ | `hotfix/<desc>` | `hotfix/fix-login-crash` | `main` | `main` + `develop` |
22
+ | `release/<versao>` | `release/1.2.0` | `develop` | `main` + `develop` |
23
+
24
+ ## Fluxo para agentes do Maestro
25
+
26
+ Cada agente trabalha em worktree isolada com seu próprio branch:
27
+
28
+ ```
29
+ feature/agent-frontend-<task-id>
30
+ feature/agent-backend-<task-id>
31
+ feature/agent-devops-<task-id>
32
+ ```
33
+
34
+ O agente orquestrador faz o merge após aprovação humana.
35
+
36
+ ## Regras
37
+
38
+ 1. Nunca commitar direto na `main` ou `develop`
39
+ 2. Branches de feature vivem no máximo 5 dias
40
+ 3. Rebase antes de abrir MR (manter histórico limpo)
41
+ 4. Deletar branch após merge
42
+ 5. Um branch = uma task/issue
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: code-review
3
+ description: Revisar código seguindo os padrões da organização. Use quando for revisar um PR, avaliar qualidade de código, ou quando o desenvolvedor pedir review.
4
+ ---
5
+
6
+ # Code Review — Padrões da organização
7
+
8
+ ## Checklist de Review
9
+
10
+ ### 1. Correção
11
+ - O código faz o que a task/spec pede?
12
+ - Os edge cases estão cobertos?
13
+ - Os fluxos de exceção estão tratados?
14
+
15
+ ### 2. Qualidade
16
+ - Arquivos com mais de 500 linhas? Dividir.
17
+ - Funções com mais de 20 linhas? Extrair.
18
+ - Ifs aninhados (hadouken)? Usar early return.
19
+ - Nomes descritivos? (`calculateComplianceScore` > `calc`)
20
+ - Código duplicado? Extrair se repetir 3+ vezes.
21
+ - Código morto? Remover.
22
+
23
+ ### 3. Segurança
24
+ - Inputs validados nas fronteiras?
25
+ - Secrets hardcoded? REJEITAR.
26
+ - SQL injection possível? Usar parameterized queries.
27
+ - Rate limiting presente nas APIs?
28
+
29
+ ### 4. Testes
30
+ - Testes unitários para regras de negócio?
31
+ - Nomes de testes descritivos?
32
+ - Testes cobrem caminho feliz E fluxos alternativos?
33
+
34
+ ### 5. Padrões
35
+ - Commit segue Conventional Commits?
36
+ - Branch segue nomenclatura?
37
+ - Estrutura de diretórios por domínio?
38
+ - Linguagem ubíqua do projeto respeitada?
39
+
40
+ ## Formato do Feedback
41
+
42
+ Categorizar cada comentário:
43
+
44
+ - **[BLOCKER]** — Deve ser corrigido antes do merge
45
+ - **[SUGGESTION]** — Melhoria recomendada, não obrigatória
46
+ - **[QUESTION]** — Dúvida sobre a intenção do código
47
+ - **[PRAISE]** — Algo bem feito que vale destacar
48
+
49
+ Exemplo:
50
+ ```
51
+ [BLOCKER] linha 45: API key hardcoded. Mover para variável de ambiente.
52
+ [SUGGESTION] linha 120: Esse if aninhado ficaria mais legível com early return.
53
+ [PRAISE] Boa extração do value object ComplianceScore.
54
+ ```
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: commit-pattern
3
+ description: Gerar mensagens de commit seguindo o padrão Conventional Commits da organização. Use sempre que for fazer um commit, commitar mudanças, ou precisar de uma mensagem de commit.
4
+ ---
5
+
6
+ # Padrão de Commit Maestro
7
+
8
+ ## Formato
9
+
10
+ ```
11
+ <tipo>(<escopo>): <descrição imperativa em português>
12
+ ```
13
+
14
+ ## Tipos
15
+
16
+ | Tipo | Quando usar |
17
+ |---|---|
18
+ | `feat` | Nova funcionalidade para o usuário |
19
+ | `fix` | Correção de bug |
20
+ | `refactor` | Mudança de código que não altera comportamento |
21
+ | `docs` | Mudanças apenas em documentação |
22
+ | `test` | Adição ou correção de testes |
23
+ | `chore` | Build, deps, configs, tarefas de manutenção |
24
+ | `ci` | Mudanças em CI/CD (pipelines, workflows) |
25
+ | `perf` | Melhoria de performance |
26
+
27
+ ## Regras
28
+
29
+ 1. Descrição no imperativo: "adicionar", não "adicionado" ou "adicionando"
30
+ 2. Primeira letra minúscula
31
+ 3. Sem ponto final
32
+ 4. Máximo 72 caracteres na primeira linha
33
+ 5. Escopo é o módulo/feature afetada
34
+ 6. Se a mudança quebra compatibilidade, adicionar `BREAKING CHANGE:` no corpo
35
+
36
+ ## Exemplos
37
+
38
+ ```
39
+ feat(demands): adicionar decomposição automática de tasks
40
+ fix(agents): corrigir timeout na execução de skill
41
+ refactor(bundles): extrair validação para value object
42
+ test(tracking): adicionar testes para eventos MCP
43
+ docs(readme): atualizar instruções de instalação
44
+ chore(deps): atualizar langchain para 0.3.x
45
+ ci(gitlab): adicionar stage de compliance check
46
+ ```
47
+
48
+ ## Corpo (opcional)
49
+
50
+ Para mudanças complexas, adicionar corpo explicando o **porquê**:
51
+
52
+ ```
53
+ refactor(orchestrator): simplificar alocação de agentes
54
+
55
+ A alocação anterior usava um loop O(n²) comparando todos os agentes
56
+ com todas as tasks. Agora usa um mapa indexado por tipo de agente,
57
+ reduzindo para O(n).
58
+ ```
@@ -0,0 +1,32 @@
1
+ # Constitution — Projeto Pipeline de Dados e ML
2
+
3
+ ## Princípios
4
+
5
+ 1. **Spec primeiro, código depois** — Toda demanda passa pelo fluxo SDD antes de implementação
6
+ 2. **Dados originais são imutáveis** — Nunca editar dados em `raw/`
7
+ 3. **Reprodutibilidade** — Todo pipeline deve ser reproduzível com mesma entrada = mesma saída
8
+ 4. **Baseline obrigatório** — Todo modelo precisa de baseline para comparação
9
+ 5. **Notebook para exploração, script para produção** — Refatorar antes de merge
10
+
11
+ ## Padrões de desenvolvimento
12
+
13
+ - Python 3.11+, type hints, Black + Ruff
14
+ - Funções puras para transformações (input → output)
15
+ - Validação de schema em cada etapa (Pandera)
16
+ - Versionamento de datasets com DVC
17
+ - Experiment tracking com MLflow
18
+
19
+ ## Padrões de ML
20
+
21
+ - Cross-validation k=5 mínimo
22
+ - Métricas documentadas no MLflow
23
+ - Feature importance registrada
24
+ - Random seed consistente
25
+ - A/B testing antes de substituir modelo
26
+
27
+ ## Padrões de qualidade
28
+
29
+ - Testes de schema para transformações
30
+ - Testes de regressão para métricas
31
+ - Cobertura mínima: 80% em pipelines
32
+ - Commits seguem Conventional Commits