@girardelli/architect-agents 8.1.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/dist/src/core/agent-generator/context-enricher.d.ts +17 -0
- package/dist/src/core/agent-generator/context-enricher.js +51 -0
- package/dist/src/core/agent-generator/context-enricher.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/base-detector.d.ts +8 -0
- package/dist/src/core/agent-generator/detectors/base-detector.js +12 -0
- package/dist/src/core/agent-generator/detectors/base-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/dart-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/dart-detector.js +16 -0
- package/dist/src/core/agent-generator/detectors/dart-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/framework-registry.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/framework-registry.js +81 -0
- package/dist/src/core/agent-generator/detectors/framework-registry.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/go-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/go-detector.js +25 -0
- package/dist/src/core/agent-generator/detectors/go-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/java-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/java-detector.js +44 -0
- package/dist/src/core/agent-generator/detectors/java-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/node-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/node-detector.js +28 -0
- package/dist/src/core/agent-generator/detectors/node-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/php-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/php-detector.js +28 -0
- package/dist/src/core/agent-generator/detectors/php-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/python-detector.d.ts +7 -0
- package/dist/src/core/agent-generator/detectors/python-detector.js +116 -0
- package/dist/src/core/agent-generator/detectors/python-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/ruby-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/ruby-detector.js +23 -0
- package/dist/src/core/agent-generator/detectors/ruby-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/rust-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/rust-detector.js +18 -0
- package/dist/src/core/agent-generator/detectors/rust-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/structure-detector.d.ts +4 -0
- package/dist/src/core/agent-generator/detectors/structure-detector.js +35 -0
- package/dist/src/core/agent-generator/detectors/structure-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/toolchain-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/toolchain-detector.js +164 -0
- package/dist/src/core/agent-generator/detectors/toolchain-detector.js.map +1 -0
- package/dist/src/core/agent-generator/domain-inferrer.d.ts +51 -0
- package/dist/src/core/agent-generator/domain-inferrer.js +585 -0
- package/dist/src/core/agent-generator/domain-inferrer.js.map +1 -0
- package/dist/src/core/agent-generator/engines/audit-engine.d.ts +8 -0
- package/dist/src/core/agent-generator/engines/audit-engine.js +84 -0
- package/dist/src/core/agent-generator/engines/audit-engine.js.map +1 -0
- package/dist/src/core/agent-generator/engines/context-builder.d.ts +12 -0
- package/dist/src/core/agent-generator/engines/context-builder.js +84 -0
- package/dist/src/core/agent-generator/engines/context-builder.js.map +1 -0
- package/dist/src/core/agent-generator/engines/generation-engine.d.ts +7 -0
- package/dist/src/core/agent-generator/engines/generation-engine.js +160 -0
- package/dist/src/core/agent-generator/engines/generation-engine.js.map +1 -0
- package/dist/src/core/agent-generator/engines/generation-engine_deps.d.ts +21 -0
- package/dist/src/core/agent-generator/engines/generation-engine_deps.js +17 -0
- package/dist/src/core/agent-generator/engines/generation-engine_deps.js.map +1 -0
- package/dist/src/core/agent-generator/engines/suggestion-engine.d.ts +13 -0
- package/dist/src/core/agent-generator/engines/suggestion-engine.js +171 -0
- package/dist/src/core/agent-generator/engines/suggestion-engine.js.map +1 -0
- package/dist/src/core/agent-generator/engines/suggestion-engine_deps.d.ts +8 -0
- package/dist/src/core/agent-generator/engines/suggestion-engine_deps.js +5 -0
- package/dist/src/core/agent-generator/engines/suggestion-engine_deps.js.map +1 -0
- package/dist/src/core/agent-generator/enrichers/analysis-helpers.d.ts +9 -0
- package/dist/src/core/agent-generator/enrichers/analysis-helpers.js +51 -0
- package/dist/src/core/agent-generator/enrichers/analysis-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/enrichers/description-generator.d.ts +4 -0
- package/dist/src/core/agent-generator/enrichers/description-generator.js +82 -0
- package/dist/src/core/agent-generator/enrichers/description-generator.js.map +1 -0
- package/dist/src/core/agent-generator/enrichers/endpoint-extractor.d.ts +7 -0
- package/dist/src/core/agent-generator/enrichers/endpoint-extractor.js +90 -0
- package/dist/src/core/agent-generator/enrichers/endpoint-extractor.js.map +1 -0
- package/dist/src/core/agent-generator/enrichers/layer-classifier.d.ts +12 -0
- package/dist/src/core/agent-generator/enrichers/layer-classifier.js +152 -0
- package/dist/src/core/agent-generator/enrichers/layer-classifier.js.map +1 -0
- package/dist/src/core/agent-generator/enrichers/module-extractor.d.ts +10 -0
- package/dist/src/core/agent-generator/enrichers/module-extractor.js +173 -0
- package/dist/src/core/agent-generator/enrichers/module-extractor.js.map +1 -0
- package/dist/src/core/agent-generator/framework-detector.d.ts +17 -0
- package/dist/src/core/agent-generator/framework-detector.js +56 -0
- package/dist/src/core/agent-generator/framework-detector.js.map +1 -0
- package/dist/src/core/agent-generator/index.d.ts +25 -0
- package/dist/src/core/agent-generator/index.js +37 -0
- package/dist/src/core/agent-generator/index.js.map +1 -0
- package/dist/src/core/agent-generator/stack-detector.d.ts +13 -0
- package/dist/src/core/agent-generator/stack-detector.js +124 -0
- package/dist/src/core/agent-generator/stack-detector.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/agents.d.ts +9 -0
- package/dist/src/core/agent-generator/templates/core/agents.js +1127 -0
- package/dist/src/core/agent-generator/templates/core/agents.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/architecture-rules.d.ts +6 -0
- package/dist/src/core/agent-generator/templates/core/architecture-rules.js +275 -0
- package/dist/src/core/agent-generator/templates/core/architecture-rules.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/general-rules.d.ts +7 -0
- package/dist/src/core/agent-generator/templates/core/general-rules.js +301 -0
- package/dist/src/core/agent-generator/templates/core/general-rules.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/hooks-generator.d.ts +20 -0
- package/dist/src/core/agent-generator/templates/core/hooks-generator.js +235 -0
- package/dist/src/core/agent-generator/templates/core/hooks-generator.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/index-md.d.ts +6 -0
- package/dist/src/core/agent-generator/templates/core/index-md.js +247 -0
- package/dist/src/core/agent-generator/templates/core/index-md.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/orchestrator.d.ts +7 -0
- package/dist/src/core/agent-generator/templates/core/orchestrator.js +423 -0
- package/dist/src/core/agent-generator/templates/core/orchestrator.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/preflight.d.ts +7 -0
- package/dist/src/core/agent-generator/templates/core/preflight.js +213 -0
- package/dist/src/core/agent-generator/templates/core/preflight.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/quality-gates.d.ts +10 -0
- package/dist/src/core/agent-generator/templates/core/quality-gates.js +255 -0
- package/dist/src/core/agent-generator/templates/core/quality-gates.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/security-rules.d.ts +6 -0
- package/dist/src/core/agent-generator/templates/core/security-rules.js +529 -0
- package/dist/src/core/agent-generator/templates/core/security-rules.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/skills-generator.d.ts +18 -0
- package/dist/src/core/agent-generator/templates/core/skills-generator.js +547 -0
- package/dist/src/core/agent-generator/templates/core/skills-generator.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/workflow-fix-bug.d.ts +6 -0
- package/dist/src/core/agent-generator/templates/core/workflow-fix-bug.js +238 -0
- package/dist/src/core/agent-generator/templates/core/workflow-fix-bug.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/workflow-new-feature.d.ts +7 -0
- package/dist/src/core/agent-generator/templates/core/workflow-new-feature.js +321 -0
- package/dist/src/core/agent-generator/templates/core/workflow-new-feature.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/workflow-review.d.ts +6 -0
- package/dist/src/core/agent-generator/templates/core/workflow-review.js +105 -0
- package/dist/src/core/agent-generator/templates/core/workflow-review.js.map +1 -0
- package/dist/src/core/agent-generator/templates/domain/index.d.ts +21 -0
- package/dist/src/core/agent-generator/templates/domain/index.js +1179 -0
- package/dist/src/core/agent-generator/templates/domain/index.js.map +1 -0
- package/dist/src/core/agent-generator/templates/helpers/base-helpers.d.ts +10 -0
- package/dist/src/core/agent-generator/templates/helpers/base-helpers.js +20 -0
- package/dist/src/core/agent-generator/templates/helpers/base-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/templates/helpers/cross-ref-helpers.d.ts +2 -0
- package/dist/src/core/agent-generator/templates/helpers/cross-ref-helpers.js +77 -0
- package/dist/src/core/agent-generator/templates/helpers/cross-ref-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/templates/helpers/security-helpers.d.ts +2 -0
- package/dist/src/core/agent-generator/templates/helpers/security-helpers.js +182 -0
- package/dist/src/core/agent-generator/templates/helpers/security-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/templates/helpers/stack-helpers.d.ts +4 -0
- package/dist/src/core/agent-generator/templates/helpers/stack-helpers.js +69 -0
- package/dist/src/core/agent-generator/templates/helpers/stack-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/templates/helpers/structure-helpers.d.ts +2 -0
- package/dist/src/core/agent-generator/templates/helpers/structure-helpers.js +275 -0
- package/dist/src/core/agent-generator/templates/helpers/structure-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/templates/helpers/summary-helpers.d.ts +6 -0
- package/dist/src/core/agent-generator/templates/helpers/summary-helpers.js +56 -0
- package/dist/src/core/agent-generator/templates/helpers/summary-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/templates/stack/index.d.ts +7 -0
- package/dist/src/core/agent-generator/templates/stack/index.js +695 -0
- package/dist/src/core/agent-generator/templates/stack/index.js.map +1 -0
- package/dist/src/core/agent-generator/templates/template-helpers.d.ts +11 -0
- package/dist/src/core/agent-generator/templates/template-helpers.js +12 -0
- package/dist/src/core/agent-generator/templates/template-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/types/agent.d.ts +39 -0
- package/dist/src/core/agent-generator/types/agent.js +27 -0
- package/dist/src/core/agent-generator/types/agent.js.map +1 -0
- package/dist/src/core/agent-generator/types/domain.d.ts +58 -0
- package/dist/src/core/agent-generator/types/domain.js +2 -0
- package/dist/src/core/agent-generator/types/domain.js.map +1 -0
- package/dist/src/core/agent-generator/types/stack.d.ts +36 -0
- package/dist/src/core/agent-generator/types/stack.js +2 -0
- package/dist/src/core/agent-generator/types/stack.js.map +1 -0
- package/dist/src/core/agent-generator/types/template.d.ts +29 -0
- package/dist/src/core/agent-generator/types/template.js +2 -0
- package/dist/src/core/agent-generator/types/template.js.map +1 -0
- package/dist/src/core/agent-runtime/ai-provider.d.ts +33 -0
- package/dist/src/core/agent-runtime/ai-provider.js +146 -0
- package/dist/src/core/agent-runtime/ai-provider.js.map +1 -0
- package/dist/src/core/agent-runtime/executor.d.ts +13 -0
- package/dist/src/core/agent-runtime/executor.js +138 -0
- package/dist/src/core/agent-runtime/executor.js.map +1 -0
- package/dist/src/core/agent-runtime/human-gate.d.ts +16 -0
- package/dist/src/core/agent-runtime/human-gate.js +70 -0
- package/dist/src/core/agent-runtime/human-gate.js.map +1 -0
- package/dist/tests/agent-generator.test.d.ts +1 -0
- package/dist/tests/agent-generator.test.js +349 -0
- package/dist/tests/agent-generator.test.js.map +1 -0
- package/dist/tests/agent-runtime.test.d.ts +1 -0
- package/dist/tests/agent-runtime.test.js +107 -0
- package/dist/tests/agent-runtime.test.js.map +1 -0
- package/dist/tests/context-enricher.test.d.ts +1 -0
- package/dist/tests/context-enricher.test.js +875 -0
- package/dist/tests/context-enricher.test.js.map +1 -0
- package/dist/tests/framework-detector.test.d.ts +1 -0
- package/dist/tests/framework-detector.test.js +882 -0
- package/dist/tests/framework-detector.test.js.map +1 -0
- package/dist/tests/stack-detector.test.d.ts +1 -0
- package/dist/tests/stack-detector.test.js +183 -0
- package/dist/tests/stack-detector.test.js.map +1 -0
- package/dist/tests/template-generation.test.d.ts +1 -0
- package/dist/tests/template-generation.test.js +571 -0
- package/dist/tests/template-generation.test.js.map +1 -0
- package/dist/tests/template-helpers.test.d.ts +1 -0
- package/dist/tests/template-helpers.test.js +967 -0
- package/dist/tests/template-helpers.test.js.map +1 -0
- package/package.json +24 -0
- package/src/core/agent-generator/context-enricher.ts +67 -0
- package/src/core/agent-generator/detectors/base-detector.ts +18 -0
- package/src/core/agent-generator/detectors/dart-detector.ts +17 -0
- package/src/core/agent-generator/detectors/framework-registry.ts +82 -0
- package/src/core/agent-generator/detectors/go-detector.ts +26 -0
- package/src/core/agent-generator/detectors/java-detector.ts +46 -0
- package/src/core/agent-generator/detectors/node-detector.ts +28 -0
- package/src/core/agent-generator/detectors/php-detector.ts +28 -0
- package/src/core/agent-generator/detectors/python-detector.ts +125 -0
- package/src/core/agent-generator/detectors/ruby-detector.ts +24 -0
- package/src/core/agent-generator/detectors/rust-detector.ts +19 -0
- package/src/core/agent-generator/detectors/structure-detector.ts +38 -0
- package/src/core/agent-generator/detectors/toolchain-detector.ts +181 -0
- package/src/core/agent-generator/domain-inferrer.ts +630 -0
- package/src/core/agent-generator/engines/audit-engine.ts +98 -0
- package/src/core/agent-generator/engines/context-builder.ts +96 -0
- package/src/core/agent-generator/engines/generation-engine.ts +184 -0
- package/src/core/agent-generator/engines/generation-engine_deps.ts +21 -0
- package/src/core/agent-generator/engines/suggestion-engine.ts +202 -0
- package/src/core/agent-generator/engines/suggestion-engine_deps.ts +8 -0
- package/src/core/agent-generator/enrichers/analysis-helpers.ts +58 -0
- package/src/core/agent-generator/enrichers/description-generator.ts +91 -0
- package/src/core/agent-generator/enrichers/endpoint-extractor.ts +114 -0
- package/src/core/agent-generator/enrichers/layer-classifier.ts +156 -0
- package/src/core/agent-generator/enrichers/module-extractor.ts +203 -0
- package/src/core/agent-generator/framework-detector.ts +66 -0
- package/src/core/agent-generator/index.ts +55 -0
- package/src/core/agent-generator/stack-detector.ts +115 -0
- package/src/core/agent-generator/templates/core/agents.ts +1168 -0
- package/src/core/agent-generator/templates/core/architecture-rules.ts +288 -0
- package/src/core/agent-generator/templates/core/general-rules.ts +306 -0
- package/src/core/agent-generator/templates/core/hooks-generator.ts +244 -0
- package/src/core/agent-generator/templates/core/index-md.ts +261 -0
- package/src/core/agent-generator/templates/core/orchestrator.ts +462 -0
- package/src/core/agent-generator/templates/core/preflight.ts +216 -0
- package/src/core/agent-generator/templates/core/quality-gates.ts +257 -0
- package/src/core/agent-generator/templates/core/security-rules.ts +544 -0
- package/src/core/agent-generator/templates/core/skills-generator.ts +586 -0
- package/src/core/agent-generator/templates/core/workflow-fix-bug.ts +240 -0
- package/src/core/agent-generator/templates/core/workflow-new-feature.ts +323 -0
- package/src/core/agent-generator/templates/core/workflow-review.ts +107 -0
- package/src/core/agent-generator/templates/domain/index.ts +1204 -0
- package/src/core/agent-generator/templates/helpers/base-helpers.ts +33 -0
- package/src/core/agent-generator/templates/helpers/cross-ref-helpers.ts +79 -0
- package/src/core/agent-generator/templates/helpers/security-helpers.ts +198 -0
- package/src/core/agent-generator/templates/helpers/stack-helpers.ts +80 -0
- package/src/core/agent-generator/templates/helpers/structure-helpers.ts +293 -0
- package/src/core/agent-generator/templates/helpers/summary-helpers.ts +67 -0
- package/src/core/agent-generator/templates/stack/index.ts +705 -0
- package/src/core/agent-generator/templates/template-helpers.ts +12 -0
- package/src/core/agent-generator/types/agent.ts +65 -0
- package/src/core/agent-generator/types/domain.ts +63 -0
- package/src/core/agent-generator/types/stack.ts +38 -0
- package/src/core/agent-generator/types/template.ts +31 -0
- package/src/core/agent-runtime/ai-provider.ts +178 -0
- package/src/core/agent-runtime/executor.ts +148 -0
- package/src/core/agent-runtime/human-gate.ts +69 -0
- package/tests/agent-generator.test.ts +428 -0
- package/tests/agent-runtime.test.ts +125 -0
- package/tests/context-enricher.test.ts +972 -0
- package/tests/framework-detector.test.ts +1172 -0
- package/tests/stack-detector.test.ts +241 -0
- package/tests/template-generation.test.ts +709 -0
- package/tests/template-helpers.test.ts +1130 -0
- package/tsconfig.json +14 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../../../../src/core/agent-generator/templates/core/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TemplateContext } from '@girardelli/architect-agents/src/core/agent-generator/types/template.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generates 01-architecture.md — layer rules, dependency direction,
|
|
4
|
+
* module patterns, and anti-pattern prevention.
|
|
5
|
+
*/
|
|
6
|
+
export declare function generateArchitectureRules(ctx: TemplateContext): string;
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates 01-architecture.md — layer rules, dependency direction,
|
|
3
|
+
* module patterns, and anti-pattern prevention.
|
|
4
|
+
*/
|
|
5
|
+
export function generateArchitectureRules(ctx) {
|
|
6
|
+
// @ts-ignore - Audit cleanup unused variable
|
|
7
|
+
const { stack, projectName, report, config } = ctx;
|
|
8
|
+
const layerRules = buildLayerRules(ctx);
|
|
9
|
+
const modulePattern = buildModulePattern(ctx);
|
|
10
|
+
return `---
|
|
11
|
+
antigravity:
|
|
12
|
+
trigger: 'always_on'
|
|
13
|
+
globs: ['**/*']
|
|
14
|
+
description: 'Regras de arquitetura para ${projectName}'
|
|
15
|
+
priority: HIGH
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# 🏗️ Regras de Arquitetura — ${projectName}
|
|
19
|
+
|
|
20
|
+
> **Separação de camadas, direção de dependências, e padrões de módulo.**
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 📐 Camadas Arquiteturais
|
|
25
|
+
|
|
26
|
+
${layerRules}
|
|
27
|
+
|
|
28
|
+
### Direção de Dependência (OBRIGATÓRIA)
|
|
29
|
+
|
|
30
|
+
\`\`\`
|
|
31
|
+
UI / Controllers → Services → Repositories / Data → Entities
|
|
32
|
+
↓ ↓ ↓
|
|
33
|
+
(pode usar) (pode usar) (pode usar)
|
|
34
|
+
Services Repositories Entities
|
|
35
|
+
DTOs Entities Value Objects
|
|
36
|
+
DTOs
|
|
37
|
+
|
|
38
|
+
⚠️ NUNCA:
|
|
39
|
+
Entity → Controller
|
|
40
|
+
Repository → Controller
|
|
41
|
+
Service → Controller
|
|
42
|
+
Data Layer → UI Layer
|
|
43
|
+
\`\`\`
|
|
44
|
+
|
|
45
|
+
### Regra de Ouro das Camadas
|
|
46
|
+
|
|
47
|
+
\`\`\`
|
|
48
|
+
╔══════════════════════════════════════════════════════╗
|
|
49
|
+
║ Uma camada SÓ pode depender de camadas ABAIXO. ║
|
|
50
|
+
║ NUNCA de camadas acima ou da mesma camada lateral. ║
|
|
51
|
+
╚══════════════════════════════════════════════════════╝
|
|
52
|
+
\`\`\`
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 📦 Padrão de Módulo
|
|
57
|
+
|
|
58
|
+
${modulePattern}
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 🚫 Anti-Patterns a Prevenir
|
|
63
|
+
|
|
64
|
+
### God Class (> 500 linhas ou > 10 métodos)
|
|
65
|
+
\`\`\`
|
|
66
|
+
❌ PROIBIDO: Classe com múltiplas responsabilidades
|
|
67
|
+
✅ CORRETO: Extrair em classes menores com responsabilidade única
|
|
68
|
+
|
|
69
|
+
Se um arquivo ultrapassar 500 linhas:
|
|
70
|
+
1. PARAR
|
|
71
|
+
2. Identificar responsabilidades distintas
|
|
72
|
+
3. Extrair em módulos separados
|
|
73
|
+
4. Atualizar imports
|
|
74
|
+
\`\`\`
|
|
75
|
+
|
|
76
|
+
### Circular Dependencies
|
|
77
|
+
\`\`\`
|
|
78
|
+
❌ PROIBIDO: A importa B, B importa A
|
|
79
|
+
✅ CORRETO: Extrair interface comum ou usar event/mediator
|
|
80
|
+
|
|
81
|
+
Detecção:
|
|
82
|
+
$ npx madge --circular src/
|
|
83
|
+
$ architect anti-patterns .
|
|
84
|
+
\`\`\`
|
|
85
|
+
|
|
86
|
+
### Leaky Abstractions
|
|
87
|
+
\`\`\`
|
|
88
|
+
❌ PROIBIDO: Service expondo detalhes de implementação
|
|
89
|
+
✅ CORRETO: Interface define contrato, implementação é encapsulada
|
|
90
|
+
|
|
91
|
+
Exemplos:
|
|
92
|
+
- Service retornando QueryBuilder → ERRADO (vaza ORM)
|
|
93
|
+
- Service retornando DTO → CORRETO (abstrai)
|
|
94
|
+
- Controller acessando Entity → ERRADO (vaza modelo)
|
|
95
|
+
- Controller acessando DTO → CORRETO (contrato)
|
|
96
|
+
\`\`\`
|
|
97
|
+
|
|
98
|
+
### Feature Envy
|
|
99
|
+
\`\`\`
|
|
100
|
+
❌ PROIBIDO: Método que usa mais atributos de outra classe que da própria
|
|
101
|
+
✅ CORRETO: Mover método para a classe que possui os dados
|
|
102
|
+
\`\`\`
|
|
103
|
+
|
|
104
|
+
### Shotgun Surgery
|
|
105
|
+
\`\`\`
|
|
106
|
+
❌ PROIBIDO: Mudança em 1 feature exige alterar 10+ arquivos
|
|
107
|
+
✅ CORRETO: Agrupar código relacionado no mesmo módulo
|
|
108
|
+
|
|
109
|
+
Se uma mudança toca > 5 arquivos:
|
|
110
|
+
1. PARAR
|
|
111
|
+
2. Reavaliar se o código está no lugar certo
|
|
112
|
+
3. Considerar refatoração preventiva
|
|
113
|
+
\`\`\`
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 🏛️ Princípios Arquiteturais
|
|
118
|
+
|
|
119
|
+
### DDD (Domain-Driven Design) — Quando Aplicável
|
|
120
|
+
\`\`\`
|
|
121
|
+
Entities: Objetos com identidade (ID único)
|
|
122
|
+
Value Objects: Objetos sem identidade (imutáveis)
|
|
123
|
+
Aggregates: Cluster de entidades com root
|
|
124
|
+
Repositories: Acesso a dados de Aggregates
|
|
125
|
+
Services: Lógica que não pertence a nenhuma entidade
|
|
126
|
+
\`\`\`
|
|
127
|
+
|
|
128
|
+
### Clean Architecture
|
|
129
|
+
\`\`\`
|
|
130
|
+
Camada mais interna: Entities (regras de negócio)
|
|
131
|
+
Camada média: Use Cases / Services (lógica de aplicação)
|
|
132
|
+
Camada externa: Controllers, Gateways, Presenters (I/O)
|
|
133
|
+
|
|
134
|
+
Dependência: SEMPRE de fora para dentro, NUNCA o contrário.
|
|
135
|
+
\`\`\`
|
|
136
|
+
|
|
137
|
+
### Event-Driven — Quando Aplicável
|
|
138
|
+
\`\`\`
|
|
139
|
+
Usar eventos quando:
|
|
140
|
+
- Desacoplamento entre módulos é necessário
|
|
141
|
+
- Processamento assíncrono é aceitável
|
|
142
|
+
- Múltiplos handlers para um mesmo trigger
|
|
143
|
+
|
|
144
|
+
NÃO usar eventos quando:
|
|
145
|
+
- Resposta síncrona é necessária
|
|
146
|
+
- Transação atômica é obrigatória
|
|
147
|
+
- Ordem de execução importa
|
|
148
|
+
\`\`\`
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 📊 Anti-Patterns Atuais do Projeto
|
|
153
|
+
|
|
154
|
+
${report.antiPatterns.length > 0
|
|
155
|
+
? report.antiPatterns.map(a => `- **${a.name}** (${a.severity}) em \`${a.location}\` — ${a.suggestion}`).join('\n')
|
|
156
|
+
: '✅ Nenhum anti-pattern detectado. Manter assim.'}
|
|
157
|
+
|
|
158
|
+
Score atual: **${report.score.overall}/100** | Meta: **${Math.min(100, report.score.overall + 10)}/100**
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## ✅ Checklist de Arquitetura
|
|
163
|
+
|
|
164
|
+
Antes de criar qualquer módulo novo:
|
|
165
|
+
|
|
166
|
+
\`\`\`
|
|
167
|
+
□ Camada correta? (Controller vs Service vs Repository vs Entity)
|
|
168
|
+
□ Direção de dependência respeitada? (nunca de baixo para cima)
|
|
169
|
+
□ Módulo coeso? (tudo relacionado junto)
|
|
170
|
+
□ Sem circular dependency?
|
|
171
|
+
□ Sem God Class? (< 500 linhas, < 10 métodos)
|
|
172
|
+
□ Interface/abstração antes de implementação?
|
|
173
|
+
□ DTOs para comunicação entre camadas?
|
|
174
|
+
□ Testes por camada? (unit para service, integration para controller)
|
|
175
|
+
\`\`\`
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
**Gerado por Architect v8.1 · Score: ${report.score.overall}/100**
|
|
180
|
+
`;
|
|
181
|
+
}
|
|
182
|
+
function buildLayerRules(ctx) {
|
|
183
|
+
const { stack } = ctx;
|
|
184
|
+
if (stack.frameworks.includes('NestJS')) {
|
|
185
|
+
return `| Camada | Responsabilidade | Padrão NestJS |
|
|
186
|
+
|--------|-----------------|---------------|
|
|
187
|
+
| **API** (Controllers) | Routing, validação de request, response shaping | \`*.controller.ts\` + \`@Controller()\` |
|
|
188
|
+
| **Service** | Lógica de negócio, orquestração | \`*.service.ts\` + \`@Injectable()\` |
|
|
189
|
+
| **Data** (Repository) | Acesso a dados, queries | \`*.repository.ts\` ou TypeORM Repository |
|
|
190
|
+
| **Entity** | Modelo de domínio | \`*.entity.ts\` + \`@Entity()\` |
|
|
191
|
+
| **DTO** | Contratos de request/response | \`*.dto.ts\` + class-validator |
|
|
192
|
+
| **Guard** | Autenticação/Autorização | \`*.guard.ts\` + \`@UseGuards()\` |
|
|
193
|
+
| **Pipe** | Validação/transformação | \`*.pipe.ts\` + \`@UsePipes()\` |`;
|
|
194
|
+
}
|
|
195
|
+
if (stack.frameworks.includes('Django') || stack.frameworks.includes('Flask') || stack.frameworks.includes('FastAPI')) {
|
|
196
|
+
return `| Camada | Responsabilidade | Padrão Python |
|
|
197
|
+
|--------|-----------------|---------------|
|
|
198
|
+
| **API** (Views/Routes) | Routing, serialização | views.py / routes.py |
|
|
199
|
+
| **Service** | Lógica de negócio | services.py |
|
|
200
|
+
| **Data** (Repository/ORM) | Acesso a dados | models.py + managers |
|
|
201
|
+
| **Schema** | Validação I/O | serializers.py / schemas.py |
|
|
202
|
+
| **Tasks** | Processamento assíncrono | tasks.py (Celery) |`;
|
|
203
|
+
}
|
|
204
|
+
if (stack.frameworks.includes('Angular')) {
|
|
205
|
+
return `| Camada | Responsabilidade | Padrão Angular |
|
|
206
|
+
|--------|-----------------|----------------|
|
|
207
|
+
| **Component** | UI rendering, user events | \`*.component.ts\` |
|
|
208
|
+
| **Service** | Lógica, API calls, state | \`*.service.ts\` + \`@Injectable()\` |
|
|
209
|
+
| **Model** | Interfaces/types | \`*.model.ts\` / \`*.interface.ts\` |
|
|
210
|
+
| **Guard** | Route protection | \`*.guard.ts\` + \`canActivate\` |
|
|
211
|
+
| **Interceptor** | HTTP middleware | \`*.interceptor.ts\` |
|
|
212
|
+
| **Pipe** | Data transformation | \`*.pipe.ts\` |`;
|
|
213
|
+
}
|
|
214
|
+
// Generic
|
|
215
|
+
return `| Camada | Responsabilidade | Padrão |
|
|
216
|
+
|--------|-----------------|--------|
|
|
217
|
+
| **API / Controllers** | Routing, validação HTTP | controllers/ |
|
|
218
|
+
| **Service** | Lógica de negócio | services/ |
|
|
219
|
+
| **Data / Repository** | Acesso a dados | repositories/ |
|
|
220
|
+
| **Entity / Model** | Modelo de domínio | entities/ ou models/ |
|
|
221
|
+
| **DTO / Schema** | Contratos I/O | dto/ ou schemas/ |`;
|
|
222
|
+
}
|
|
223
|
+
function buildModulePattern(ctx) {
|
|
224
|
+
const { stack } = ctx;
|
|
225
|
+
const ext = stack.primary === 'Python' ? 'py' : stack.primary === 'Dart' ? 'dart' : 'ts';
|
|
226
|
+
if (stack.frameworks.includes('NestJS')) {
|
|
227
|
+
return `\`\`\`
|
|
228
|
+
src/modules/[nome-do-modulo]/
|
|
229
|
+
├── [nome].module.ts → NestJS Module (imports, providers, exports)
|
|
230
|
+
├── [nome].controller.ts → HTTP endpoints
|
|
231
|
+
├── [nome].controller.spec.ts → Testes do controller
|
|
232
|
+
├── [nome].service.ts → Lógica de negócio
|
|
233
|
+
├── [nome].service.spec.ts → Testes do service
|
|
234
|
+
├── dto/
|
|
235
|
+
│ ├── create-[nome].dto.ts → Request de criação
|
|
236
|
+
│ ├── update-[nome].dto.ts → Request de atualização
|
|
237
|
+
│ └── [nome]-response.dto.ts → Response shape
|
|
238
|
+
├── entities/
|
|
239
|
+
│ └── [nome].entity.ts → TypeORM entity
|
|
240
|
+
├── guards/ → Guards específicos (se houver)
|
|
241
|
+
└── interfaces/ → Interfaces/types do módulo
|
|
242
|
+
\`\`\``;
|
|
243
|
+
}
|
|
244
|
+
if (stack.frameworks.includes('Angular')) {
|
|
245
|
+
return `\`\`\`
|
|
246
|
+
src/app/modules/[nome-do-modulo]/
|
|
247
|
+
├── [nome].module.ts → Angular Module
|
|
248
|
+
├── [nome]-routing.module.ts → Routes
|
|
249
|
+
├── components/
|
|
250
|
+
│ ├── [nome]-list/
|
|
251
|
+
│ │ ├── [nome]-list.component.ts
|
|
252
|
+
│ │ ├── [nome]-list.component.html
|
|
253
|
+
│ │ ├── [nome]-list.component.scss
|
|
254
|
+
│ │ └── [nome]-list.component.spec.ts
|
|
255
|
+
│ └── [nome]-form/
|
|
256
|
+
│ └── ...
|
|
257
|
+
├── services/
|
|
258
|
+
│ ├── [nome].service.ts
|
|
259
|
+
│ └── [nome].service.spec.ts
|
|
260
|
+
├── models/
|
|
261
|
+
│ └── [nome].model.ts
|
|
262
|
+
└── guards/
|
|
263
|
+
\`\`\``;
|
|
264
|
+
}
|
|
265
|
+
return `\`\`\`
|
|
266
|
+
src/modules/[nome-do-modulo]/
|
|
267
|
+
├── [nome].module.${ext}
|
|
268
|
+
├── [nome].controller.${ext} → Endpoints / API
|
|
269
|
+
├── [nome].service.${ext} → Lógica de negócio
|
|
270
|
+
├── dto/ → Request/Response shapes
|
|
271
|
+
├── entities/ → Modelos de domínio
|
|
272
|
+
└── __tests__/ → Testes do módulo
|
|
273
|
+
\`\`\``;
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=architecture-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"architecture-rules.js","sourceRoot":"","sources":["../../../../../../src/core/agent-generator/templates/core/architecture-rules.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAAoB;IAC1D,6CAA6C;IAC/C,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACnD,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAE9C,OAAO;;;;6CAIoC,WAAW;;;;gCAIxB,WAAW;;;;;;;;EAQzC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCV,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgGb,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;QAC5B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC5B,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,UAAU,CAAC,CAAC,QAAQ,QAAQ,CAAC,CAAC,UAAU,EAAE,CACzE,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,CAAC,CAAC,gDAAgD;;iBAErC,MAAM,CAAC,KAAK,CAAC,OAAO,oBAAoB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;uCAqB1D,MAAM,CAAC,KAAK,CAAC,OAAO;CAC1D,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CAAC,GAAoB;IAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAEtB,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,OAAO;;;;;;;;yEAQ8D,CAAC;IACxE,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACtH,OAAO;;;;;;6DAMkD,CAAC;IAC5D,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,OAAO;;;;;;;mDAOwC,CAAC;IAClD,CAAC;IAED,UAAU;IACV,OAAO;;;;;;wDAM+C,CAAC;AACzD,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAoB;IAC9C,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACtB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzF,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,OAAO;;;;;;;;;;;;;;;OAeJ,CAAC;IACN,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,OAAO;;;;;;;;;;;;;;;;;;OAkBJ,CAAC;IACN,CAAC;IAED,OAAO;;oBAEW,GAAG;wBACC,GAAG;qBACN,GAAG;;;;OAIjB,CAAC;AACR,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TemplateContext } from '@girardelli/architect-agents/src/core/agent-generator/types/template.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generates enterprise-grade 00-general.md rules.
|
|
4
|
+
* Golden rules, git flow, project identity, naming conventions,
|
|
5
|
+
* diagnostic requirements, forbidden actions, compliance checklist.
|
|
6
|
+
*/
|
|
7
|
+
export declare function generateGeneralRules(ctx: TemplateContext): string;
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
import { getEnriched } from '../template-helpers.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generates enterprise-grade 00-general.md rules.
|
|
4
|
+
* Golden rules, git flow, project identity, naming conventions,
|
|
5
|
+
* diagnostic requirements, forbidden actions, compliance checklist.
|
|
6
|
+
*/
|
|
7
|
+
export function generateGeneralRules(ctx) {
|
|
8
|
+
const { stack, projectName, stackLabel, config, report } = ctx;
|
|
9
|
+
const enriched = getEnriched(ctx);
|
|
10
|
+
const namingConventions = buildNamingConventions(ctx);
|
|
11
|
+
// Stack-aware forbidden type actions
|
|
12
|
+
const langs = stack.languages.map((l) => l.toLowerCase());
|
|
13
|
+
let typeProhibitions = `❌ any (TypeScript) sem justificativa em comentário
|
|
14
|
+
❌ @ts-ignore / type: ignore sem justificativa`;
|
|
15
|
+
if (langs.includes('python')) {
|
|
16
|
+
typeProhibitions = `❌ type: ignore sem justificativa em comentário
|
|
17
|
+
❌ # noqa sem justificativa
|
|
18
|
+
❌ Any (typing) sem justificativa em comentário`;
|
|
19
|
+
}
|
|
20
|
+
else if (langs.includes('dart')) {
|
|
21
|
+
typeProhibitions = `❌ dynamic sem justificativa em comentário
|
|
22
|
+
❌ // ignore: sem justificativa
|
|
23
|
+
❌ as dynamic sem type-check`;
|
|
24
|
+
}
|
|
25
|
+
else if (langs.includes('java') || langs.includes('kotlin')) {
|
|
26
|
+
typeProhibitions = `❌ @SuppressWarnings sem justificativa em comentário
|
|
27
|
+
❌ Object onde tipo específico é possível
|
|
28
|
+
❌ Raw types sem justificativa`;
|
|
29
|
+
}
|
|
30
|
+
else if (langs.includes('go')) {
|
|
31
|
+
typeProhibitions = `❌ interface{}/any sem justificativa em comentário
|
|
32
|
+
❌ //nolint sem justificativa
|
|
33
|
+
❌ _ (blank identifier) para erros sem tratamento`;
|
|
34
|
+
}
|
|
35
|
+
else if (langs.includes('rust')) {
|
|
36
|
+
typeProhibitions = `❌ unwrap() em código de produção sem justificativa
|
|
37
|
+
❌ #[allow(...)] sem justificativa em comentário
|
|
38
|
+
❌ unsafe sem revisão e justificativa`;
|
|
39
|
+
}
|
|
40
|
+
return `---
|
|
41
|
+
antigravity:
|
|
42
|
+
trigger: 'always_on'
|
|
43
|
+
globs: ['**/*']
|
|
44
|
+
description: 'Regras gerais invioláveis para ${projectName}'
|
|
45
|
+
priority: CRITICAL
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
# 📜 Regras Gerais — ${projectName}
|
|
49
|
+
|
|
50
|
+
> **Estas regras são INVIOLÁVEIS. Não há exceção.**
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 🏆 Regras de Ouro
|
|
55
|
+
|
|
56
|
+
\`\`\`
|
|
57
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
58
|
+
║ 9 REGRAS DE OURO ║
|
|
59
|
+
║ ║
|
|
60
|
+
${config.goldenRules.map((r, i) => `║ ${i + 1}. ${r.padEnd(55)}║`).join('\n')}
|
|
61
|
+
║ ║
|
|
62
|
+
║ ⚠️ Violar qualquer regra = PARAR e RECOMEÇAR ║
|
|
63
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
64
|
+
\`\`\`
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 🏢 Identidade do Projeto
|
|
69
|
+
|
|
70
|
+
| Item | Valor |
|
|
71
|
+
|------|-------|
|
|
72
|
+
| **Nome** | ${projectName} |
|
|
73
|
+
| **Stack** | ${stackLabel} |
|
|
74
|
+
| **Score** | ${report.score.overall}/100 |
|
|
75
|
+
| **Linguagens** | ${stack.languages.join(', ')} |
|
|
76
|
+
| **Frameworks** | ${enriched.detectedFrameworks?.filter((f) => f.category === 'web' || f.category === 'orm').map((f) => `${f.name}${f.version ? ` v${f.version}` : ''}`).join(', ') || stack.frameworks.join(', ') || 'Nenhum detectado'} |
|
|
77
|
+
| **Cobertura Mínima** | ${config.coverageMinimum}% |
|
|
78
|
+
| **Score Mínimo** | ${config.scoreThreshold}/100 |
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 🔄 Fluxo Completo (Qualquer Ação)
|
|
83
|
+
|
|
84
|
+
\`\`\`
|
|
85
|
+
REQUISIÇÃO
|
|
86
|
+
│
|
|
87
|
+
▼
|
|
88
|
+
LEITURA OBRIGATÓRIA (INDEX.md → 00-general → PREFLIGHT)
|
|
89
|
+
│
|
|
90
|
+
▼
|
|
91
|
+
DIAGNÓSTICO (entender ANTES de agir)
|
|
92
|
+
│
|
|
93
|
+
▼
|
|
94
|
+
ARTEFATOS (mockup → user story → arch → tasks → BDD → TDD)
|
|
95
|
+
│
|
|
96
|
+
▼
|
|
97
|
+
APROVAÇÃO HUMANA (/approved)
|
|
98
|
+
│
|
|
99
|
+
▼
|
|
100
|
+
IMPLEMENTAÇÃO (Backend → Integration Doc → Frontend/App)
|
|
101
|
+
│
|
|
102
|
+
▼
|
|
103
|
+
QUALITY GATES (build + test + coverage + score)
|
|
104
|
+
│
|
|
105
|
+
▼
|
|
106
|
+
CODE REVIEW
|
|
107
|
+
│
|
|
108
|
+
▼
|
|
109
|
+
MERGE (via PR, nunca direto)
|
|
110
|
+
\`\`\`
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 🌿 Git Flow
|
|
115
|
+
|
|
116
|
+
### Branch Naming
|
|
117
|
+
|
|
118
|
+
| Tipo | Padrão | Exemplo |
|
|
119
|
+
|------|--------|---------|
|
|
120
|
+
| Feature | \`feature/[ticket]-[descricao]\` | \`feature/PROJ-123-cancelled-tab\` |
|
|
121
|
+
| Bug fix | \`fix/[ticket]-[descricao]\` | \`fix/PROJ-456-null-balance\` |
|
|
122
|
+
| Hotfix | \`hotfix/[descricao]\` | \`hotfix/payment-crash\` |
|
|
123
|
+
| Refactor | \`refactor/[descricao]\` | \`refactor/extract-auth-service\` |
|
|
124
|
+
|
|
125
|
+
### Commit Messages (Conventional Commits)
|
|
126
|
+
|
|
127
|
+
\`\`\`
|
|
128
|
+
feat: add cancelled refuelings tab
|
|
129
|
+
fix: prevent null balance on payment
|
|
130
|
+
refactor: extract auth service from user module
|
|
131
|
+
docs: update API documentation for v2
|
|
132
|
+
test: add integration tests for payment flow
|
|
133
|
+
chore: upgrade dependencies
|
|
134
|
+
\`\`\`
|
|
135
|
+
|
|
136
|
+
### Cenários de Git Flow
|
|
137
|
+
|
|
138
|
+
**Cenário A: Feature nova**
|
|
139
|
+
\`\`\`
|
|
140
|
+
git checkout develop
|
|
141
|
+
git pull origin develop
|
|
142
|
+
git checkout -b feature/PROJ-XXX-nome
|
|
143
|
+
# ... implementar ...
|
|
144
|
+
git add [arquivos específicos]
|
|
145
|
+
git commit -m "feat: [descrição]"
|
|
146
|
+
git push -u origin feature/PROJ-XXX-nome
|
|
147
|
+
# Criar PR para develop
|
|
148
|
+
\`\`\`
|
|
149
|
+
|
|
150
|
+
**Cenário B: Bug fix**
|
|
151
|
+
\`\`\`
|
|
152
|
+
git checkout develop
|
|
153
|
+
git pull origin develop
|
|
154
|
+
git checkout -b fix/PROJ-XXX-descricao
|
|
155
|
+
# ... corrigir ...
|
|
156
|
+
git add [arquivos específicos]
|
|
157
|
+
git commit -m "fix: [descrição]"
|
|
158
|
+
git push -u origin fix/PROJ-XXX-descricao
|
|
159
|
+
# Criar PR para develop
|
|
160
|
+
\`\`\`
|
|
161
|
+
|
|
162
|
+
**Cenário C: Hotfix em produção**
|
|
163
|
+
\`\`\`
|
|
164
|
+
git checkout main
|
|
165
|
+
git pull origin main
|
|
166
|
+
git checkout -b hotfix/descricao
|
|
167
|
+
# ... corrigir ...
|
|
168
|
+
git add [arquivos específicos]
|
|
169
|
+
git commit -m "fix: [descrição] (hotfix)"
|
|
170
|
+
git push -u origin hotfix/descricao
|
|
171
|
+
# Criar PR para main E develop
|
|
172
|
+
\`\`\`
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## 📝 Naming Conventions
|
|
177
|
+
|
|
178
|
+
${namingConventions}
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## 🔍 Diagnóstico Obrigatório
|
|
183
|
+
|
|
184
|
+
> **Antes de QUALQUER implementação, execute este diagnóstico.**
|
|
185
|
+
|
|
186
|
+
\`\`\`bash
|
|
187
|
+
# 1. Entender a estrutura
|
|
188
|
+
ls -la src/
|
|
189
|
+
find src/ -name "*.${stack.primary === 'Python' ? 'py' : stack.primary === 'Dart' ? 'dart' : 'ts'}" | head -30
|
|
190
|
+
|
|
191
|
+
# 2. Entender as dependências do módulo
|
|
192
|
+
grep -rn "import" --include="*.${stack.primary === 'Python' ? 'py' : 'ts'}" src/[modulo]/ | head -20
|
|
193
|
+
|
|
194
|
+
# 3. Testes existentes
|
|
195
|
+
find . -name "*.test.*" -o -name "*.spec.*" -o -name "*_test.*" | wc -l
|
|
196
|
+
|
|
197
|
+
# 4. Score atual
|
|
198
|
+
npx @girardelli/architect score .
|
|
199
|
+
|
|
200
|
+
# 5. Anti-patterns
|
|
201
|
+
npx @girardelli/architect anti-patterns .
|
|
202
|
+
\`\`\`
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## ❌ Ações PROIBIDAS
|
|
207
|
+
|
|
208
|
+
\`\`\`
|
|
209
|
+
❌ Commitar direto em main ou develop
|
|
210
|
+
❌ Push --force sem aprovação explícita
|
|
211
|
+
❌ Merge sem code review
|
|
212
|
+
❌ Código sem testes
|
|
213
|
+
❌ Ignorar falhas de build/test
|
|
214
|
+
❌ Hardcodar secrets, tokens, senhas
|
|
215
|
+
❌ console.log / print() em produção
|
|
216
|
+
${typeProhibitions}
|
|
217
|
+
❌ Testes com .skip() permanente
|
|
218
|
+
❌ Copiar/colar código (extrair abstração)
|
|
219
|
+
❌ Alterar mais de 10 arquivos sem reavaliar escopo
|
|
220
|
+
❌ Implementar sem artefatos aprovados (mockup, US, BDD, TDD)
|
|
221
|
+
❌ Decidir arquitetura sem consultar o humano
|
|
222
|
+
❌ Refatorar código alheio ao escopo da task
|
|
223
|
+
\`\`\`
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## ✅ Checklist de Compliance (Regras de Ouro)
|
|
228
|
+
|
|
229
|
+
Antes de marcar QUALQUER tarefa como "done":
|
|
230
|
+
|
|
231
|
+
\`\`\`
|
|
232
|
+
□ Regra 1: Git Flow completo (branch + PR + review)?
|
|
233
|
+
□ Regra 2: Arquitetura documentada (C4 se nova feature)?
|
|
234
|
+
□ Regra 3: BDD escrito antes do código?
|
|
235
|
+
□ Regra 4: TDD aplicado (RED → GREEN → REFACTOR)?
|
|
236
|
+
□ Regra 5: Diagnóstico feito antes de codar?
|
|
237
|
+
□ Regra 6: Mockup aprovado (se tem UI)?
|
|
238
|
+
□ Regra 7: Decisões validadas com humano?
|
|
239
|
+
□ Regra 8: Qualidade > Velocidade (sem atalhos)?
|
|
240
|
+
□ Regra 9: Apenas código (sem abrir browser, sem screenshots)?
|
|
241
|
+
\`\`\`
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
**Gerado por Architect v8.1 · Score: ${report.score.overall}/100 · ${new Date().toISOString().split('T')[0]}**
|
|
246
|
+
`;
|
|
247
|
+
}
|
|
248
|
+
function buildNamingConventions(ctx) {
|
|
249
|
+
const { stack } = ctx;
|
|
250
|
+
const lang = stack.primary;
|
|
251
|
+
if (lang === 'Python') {
|
|
252
|
+
return `| Item | Padrão | Exemplo |
|
|
253
|
+
|------|--------|---------|
|
|
254
|
+
| Classes | PascalCase | \`UserService\` |
|
|
255
|
+
| Funções | snake_case | \`get_active_users\` |
|
|
256
|
+
| Variáveis | snake_case | \`user_count\` |
|
|
257
|
+
| Constantes | UPPER_SNAKE | \`MAX_RETRIES\` |
|
|
258
|
+
| Arquivos | snake_case | \`user_service.py\` |
|
|
259
|
+
| Módulos | snake_case | \`auth_module/\` |
|
|
260
|
+
| Testes | snake_case + \_test | \`user_service_test.py\` |`;
|
|
261
|
+
}
|
|
262
|
+
if (lang === 'Dart') {
|
|
263
|
+
return `| Item | Padrão | Exemplo |
|
|
264
|
+
|------|--------|---------|
|
|
265
|
+
| Classes | PascalCase | \`UserService\` |
|
|
266
|
+
| Funções | camelCase | \`getActiveUsers\` |
|
|
267
|
+
| Variáveis | camelCase | \`userCount\` |
|
|
268
|
+
| Constantes | camelCase (com const) | \`const maxRetries = 3\` |
|
|
269
|
+
| Arquivos | snake_case | \`user_service.dart\` |
|
|
270
|
+
| Widgets | PascalCase | \`UserProfileCard\` |
|
|
271
|
+
| Testes | snake_case + \_test | \`user_service_test.dart\` |`;
|
|
272
|
+
}
|
|
273
|
+
if (lang === 'Go') {
|
|
274
|
+
return `| Item | Padrão | Exemplo |
|
|
275
|
+
|------|--------|---------|
|
|
276
|
+
| Types/Structs | PascalCase (exported) | \`UserService\` |
|
|
277
|
+
| Functions (public) | PascalCase | \`GetActiveUsers\` |
|
|
278
|
+
| Functions (private) | camelCase | \`parseInput\` |
|
|
279
|
+
| Variables | camelCase | \`userCount\` |
|
|
280
|
+
| Constants | PascalCase | \`MaxRetries\` |
|
|
281
|
+
| Files | snake_case | \`user_service.go\` |
|
|
282
|
+
| Tests | snake_case + \_test | \`user_service_test.go\` |`;
|
|
283
|
+
}
|
|
284
|
+
// Default: TypeScript/JavaScript
|
|
285
|
+
return `| Item | Padrão | Exemplo |
|
|
286
|
+
|------|--------|---------|
|
|
287
|
+
| Classes | PascalCase | \`UserService\` |
|
|
288
|
+
| Interfaces | PascalCase (sem I prefix) | \`UserPayload\` |
|
|
289
|
+
| Funções | camelCase | \`getActiveUsers\` |
|
|
290
|
+
| Variáveis | camelCase | \`userCount\` |
|
|
291
|
+
| Constantes | UPPER_SNAKE | \`MAX_RETRIES\` |
|
|
292
|
+
| Enums | PascalCase | \`UserStatus\` |
|
|
293
|
+
| Arquivos | kebab-case | \`user-service.ts\` |
|
|
294
|
+
| Módulos (diretório) | kebab-case | \`user-management/\` |
|
|
295
|
+
| Testes | kebab-case + .spec/.test | \`user-service.spec.ts\` |
|
|
296
|
+
| Entities | PascalCase + .entity | \`User.entity.ts\` |
|
|
297
|
+
| DTOs | PascalCase + .dto | \`CreateUserDto\` |
|
|
298
|
+
| Controllers | PascalCase + .controller | \`user.controller.ts\` |
|
|
299
|
+
| Services | PascalCase + .service | \`user.service.ts\` |`;
|
|
300
|
+
}
|
|
301
|
+
//# sourceMappingURL=general-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"general-rules.js","sourceRoot":"","sources":["../../../../../../src/core/agent-generator/templates/core/general-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { TemplateContext, EnrichedTemplateContext } from '@girardelli/architect-agents/src/core/agent-generator/types/template.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generates executable hook scripts (.sh) for the .agent/hooks/ directory.
|
|
4
|
+
* These are real, runnable shell scripts tied to git lifecycle events.
|
|
5
|
+
*
|
|
6
|
+
* v5.1: Uses project-specific toolchain commands, score thresholds,
|
|
7
|
+
* and coverage targets from the enriched context.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Pre-commit hook: lint + build check
|
|
11
|
+
*/
|
|
12
|
+
export declare function generatePreCommitHook(ctx: TemplateContext | EnrichedTemplateContext): string;
|
|
13
|
+
/**
|
|
14
|
+
* Pre-push hook: test + score gate
|
|
15
|
+
*/
|
|
16
|
+
export declare function generatePrePushHook(ctx: TemplateContext | EnrichedTemplateContext): string;
|
|
17
|
+
/**
|
|
18
|
+
* Post-analysis hook: remediation actions
|
|
19
|
+
*/
|
|
20
|
+
export declare function generatePostAnalysisHook(ctx: TemplateContext | EnrichedTemplateContext): string;
|