@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,423 @@
|
|
|
1
|
+
import { isEnriched, depthAtLeast, domainBadge, complianceBadges, depthIndicator, modulesSummaryTable, integrationsSummary, frameworkBadge, toolchainCommands, projectStructureBadge, } from '../template-helpers.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generates enterprise-grade AGENT-ORCHESTRATOR.md
|
|
4
|
+
* ~800+ lines: 5-phase protocol, mandatory artifact gates, business interrogation,
|
|
5
|
+
* parallel dispatch, C4/BDD/TDD inline templates, risk matrix, implementation order.
|
|
6
|
+
*/
|
|
7
|
+
export function generateOrchestrator(ctx) {
|
|
8
|
+
// @ts-ignore - Audit cleanup unused variable
|
|
9
|
+
const { report, stack, projectName, stackLabel, plan, config } = ctx;
|
|
10
|
+
const layers = report.layers.map(l => l.name).join(', ') || 'Not detected';
|
|
11
|
+
const antiPatterns = report.antiPatterns.map(a => `${a.name} (${a.severity})`).join(', ') || 'None';
|
|
12
|
+
const agentDispatch = buildAgentDispatch(ctx);
|
|
13
|
+
const businessQuestions = buildBusinessQuestions(ctx);
|
|
14
|
+
// Extract toolchain commands for Quality Gates (dynamic per-stack)
|
|
15
|
+
const enrichedCtx = isEnriched(ctx) ? ctx : null;
|
|
16
|
+
const buildCmd = enrichedCtx?.toolchain?.buildCmd || 'npm run build';
|
|
17
|
+
const testCmd = enrichedCtx?.toolchain?.testCmd || 'npm run test';
|
|
18
|
+
return `---
|
|
19
|
+
antigravity:
|
|
20
|
+
trigger: 'always_on'
|
|
21
|
+
globs: ['**/*']
|
|
22
|
+
description: 'META-AGENT ORQUESTRADOR — Centro de comando para ${projectName}'
|
|
23
|
+
priority: CRITICAL
|
|
24
|
+
agent_card:
|
|
25
|
+
id: 'orchestrator'
|
|
26
|
+
name: 'Agent Orchestrator'
|
|
27
|
+
role: 'coordination'
|
|
28
|
+
capabilities: [request-decomposition, agent-dispatch, plan-consolidation, quality-verification, artifact-gating]
|
|
29
|
+
inputs: [user-story, feature-request, bug-report, refactoring-request]
|
|
30
|
+
outputs: [consolidated-plan, implementation-blocks, effort-estimate, architecture-docs]
|
|
31
|
+
depends_on: []
|
|
32
|
+
version: 3.1.0
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
# 🎭 AGENT-ORCHESTRATOR: ${projectName}
|
|
36
|
+
|
|
37
|
+
> **Centro de comando.** Toda requisição passa por aqui.
|
|
38
|
+
> **Nenhuma linha de código é escrita sem os artefatos obrigatórios.**
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## ⛔ REGRA ABSOLUTA: ARTEFATOS ANTES DE CÓDIGO
|
|
43
|
+
|
|
44
|
+
\`\`\`
|
|
45
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
46
|
+
║ ║
|
|
47
|
+
║ ANTES de escrever QUALQUER linha de código, os seguintes ║
|
|
48
|
+
║ artefatos DEVEM existir e ser APROVADOS pelo humano: ║
|
|
49
|
+
║ ║
|
|
50
|
+
║ 1. 🎨 MOCKUP (se tem UI) ║
|
|
51
|
+
║ → Todas as telas, estados, erros, modais, mensagens ║
|
|
52
|
+
║ → Seguir padrão visual do sistema ║
|
|
53
|
+
║ ║
|
|
54
|
+
║ 2. 📖 USER STORIES ║
|
|
55
|
+
║ → Como [ator], quero [ação], para [benefício] ║
|
|
56
|
+
║ → Critérios de aceite mensuráveis ║
|
|
57
|
+
║ ║
|
|
58
|
+
║ 3. 🏗️ ARQUITETURA (C4) ║
|
|
59
|
+
║ → Contexto, Container, Componente, Código ║
|
|
60
|
+
║ → Decisões arquiteturais (ADR) ║
|
|
61
|
+
║ ║
|
|
62
|
+
║ 4. 📋 TAREFAS ║
|
|
63
|
+
║ → Breakdown com TASK-XXX ║
|
|
64
|
+
║ → Estimativa T-shirt (XS/S/M/L/XL) ║
|
|
65
|
+
║ ║
|
|
66
|
+
║ 5. 🧪 BDD (cenários) ║
|
|
67
|
+
║ → Given/When/Then para cada critério de aceite ║
|
|
68
|
+
║ ║
|
|
69
|
+
║ 6. 🔬 TDD (casos de teste) ║
|
|
70
|
+
║ → RED → GREEN → REFACTOR ║
|
|
71
|
+
║ → Cobertura mínima: ${config.coverageMinimum}% ║
|
|
72
|
+
║ ║
|
|
73
|
+
║ ⚠️ PRODUZIR APENAS UM IMPLEMENTATION PLAN SEM ESTES ║
|
|
74
|
+
║ ARTEFATOS É VIOLAÇÃO DO PROTOCOLO. ║
|
|
75
|
+
║ ║
|
|
76
|
+
║ ORDEM DE IMPLEMENTAÇÃO: ║
|
|
77
|
+
║ 1° Backend → 2° Doc. Integração → 3° Frontend/App ║
|
|
78
|
+
║ ║
|
|
79
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
80
|
+
\`\`\`
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 📊 Contexto do Projeto
|
|
85
|
+
|
|
86
|
+
| Métrica | Valor |
|
|
87
|
+
|---------|-------|
|
|
88
|
+
| **Projeto** | ${projectName} |
|
|
89
|
+
| **Stack** | ${stackLabel} |
|
|
90
|
+
| **Score Atual** | ${report.score.overall}/100 |
|
|
91
|
+
| **Meta de Score** | ${Math.min(100, report.score.overall + 10)}/100 |
|
|
92
|
+
| **Camadas** | ${layers} |
|
|
93
|
+
| **Anti-Patterns** | ${antiPatterns} |
|
|
94
|
+
| **Arquivos** | ${report.projectInfo.totalFiles} |
|
|
95
|
+
| **Linhas** | ${report.projectInfo.totalLines.toLocaleString()} |
|
|
96
|
+
| **Cobertura Mínima** | ${config.coverageMinimum}% |
|
|
97
|
+
| **Refatorações Pendentes** | ${plan.steps.length} steps |
|
|
98
|
+
|
|
99
|
+
${depthAtLeast(ctx, 'medium') ? `\n---\n\n## 📍 Contexto Enriquecido\n\n${depthIndicator(ctx)} · ${projectStructureBadge(ctx)}\n\n${frameworkBadge(ctx)}\n${domainBadge(ctx)}${modulesSummaryTable(ctx) ? `\n### 📦 Resumo de Módulos\n\n${modulesSummaryTable(ctx)}` : ''}${integrationsSummary(ctx)}${complianceBadges(ctx)}${toolchainCommands(ctx)}` : ''}
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 🔄 Protocolo de Orquestração (5 Fases)
|
|
104
|
+
|
|
105
|
+
### FASE 0: Parsing da Requisição
|
|
106
|
+
|
|
107
|
+
Ao receber qualquer requisição, CLASSIFICAR imediatamente:
|
|
108
|
+
|
|
109
|
+
\`\`\`
|
|
110
|
+
✓ Nome da feature/fix: _______________
|
|
111
|
+
✓ Tipo: [ ] Feature [ ] Bug Fix [ ] Refactoring [ ] Documentation
|
|
112
|
+
✓ Camadas tocadas: [ ] Backend [ ] Frontend [ ] Mobile [ ] Database
|
|
113
|
+
✓ Tem UI: [ ] Sim [ ] Não
|
|
114
|
+
✓ Complexidade: [ ] XS (<2h) [ ] S (2-4h) [ ] M (4-8h) [ ] L (1-3d) [ ] XL (3d+)
|
|
115
|
+
✓ Assunções (listar): _______________
|
|
116
|
+
✓ Riscos identificados: _______________
|
|
117
|
+
\`\`\`
|
|
118
|
+
|
|
119
|
+
Se houver QUALQUER dúvida na classificação → **PERGUNTAR ao humano**.
|
|
120
|
+
|
|
121
|
+
### FASE 1: Interrogação de Negócio
|
|
122
|
+
|
|
123
|
+
Antes de qualquer design, RESPONDER estas perguntas:
|
|
124
|
+
|
|
125
|
+
${businessQuestions}
|
|
126
|
+
|
|
127
|
+
> **Se não conseguir responder ≥ 70% das perguntas relevantes → PERGUNTAR ao humano.**
|
|
128
|
+
|
|
129
|
+
### FASE 2: Disparo de Agentes (Paralelo)
|
|
130
|
+
|
|
131
|
+
\`\`\`
|
|
132
|
+
ORQUESTRADOR decompõe a requisição
|
|
133
|
+
│
|
|
134
|
+
${agentDispatch} │
|
|
135
|
+
└──→ CONSOLIDAÇÃO
|
|
136
|
+
\`\`\`
|
|
137
|
+
|
|
138
|
+
Cada agente recebe:
|
|
139
|
+
- Contexto do projeto (score, stack, anti-patterns)
|
|
140
|
+
- Requisição decomposta (sua parte)
|
|
141
|
+
- Constraints (regras, patterns proibidos)
|
|
142
|
+
- Output esperado (formato e escopo)
|
|
143
|
+
|
|
144
|
+
### FASE 3: Consolidação
|
|
145
|
+
|
|
146
|
+
O orquestrador consolida as respostas dos agentes em:
|
|
147
|
+
|
|
148
|
+
1. **Plano Unificado** com:
|
|
149
|
+
- Diagrama de arquitetura (C4)
|
|
150
|
+
- Cenários BDD
|
|
151
|
+
- Casos de teste TDD
|
|
152
|
+
- Estimativa de esforço (T-shirt)
|
|
153
|
+
- Riscos e mitigações
|
|
154
|
+
- Decisões arquiteturais (ADR)
|
|
155
|
+
|
|
156
|
+
2. **6 Gates para Aprovação** (apresentar um de cada vez):
|
|
157
|
+
- Gate 1: MOCKUP → \`/approved\`
|
|
158
|
+
- Gate 2: User Stories → \`/approved\`
|
|
159
|
+
- Gate 3: Arquitetura → \`/approved\`
|
|
160
|
+
- Gate 4: Tasks → \`/approved\`
|
|
161
|
+
- Gate 5: BDD → \`/approved\`
|
|
162
|
+
- Gate 6: TDD → \`/approved\`
|
|
163
|
+
|
|
164
|
+
### FASE 4: Implementação (Após Todas Aprovações)
|
|
165
|
+
|
|
166
|
+
\`\`\`
|
|
167
|
+
╔════════════════════════════════════════════════╗
|
|
168
|
+
║ ORDEM OBRIGATÓRIA DE IMPLEMENTAÇÃO: ║
|
|
169
|
+
║ ║
|
|
170
|
+
║ 1° BACKEND ║
|
|
171
|
+
║ └─→ Controllers, Services, Entities, DTOs ║
|
|
172
|
+
║ └─→ Testes unitários + integração ║
|
|
173
|
+
║ └─→ Migrations (se houver) ║
|
|
174
|
+
║ ║
|
|
175
|
+
║ 2° DOCUMENTO DE INTEGRAÇÃO ║
|
|
176
|
+
║ └─→ Endpoints, payloads, erros ║
|
|
177
|
+
║ └─→ Exemplos de request/response ║
|
|
178
|
+
║ └─→ Contrato para frontend/app ║
|
|
179
|
+
║ ║
|
|
180
|
+
║ 3° FRONTEND / APP ║
|
|
181
|
+
║ └─→ Baseado no documento de integração ║
|
|
182
|
+
║ └─→ Componentes, pages, state ║
|
|
183
|
+
║ └─→ Testes e2e ║
|
|
184
|
+
╚════════════════════════════════════════════════╝
|
|
185
|
+
\`\`\`
|
|
186
|
+
|
|
187
|
+
### FASE 5: Verificação e Entrega
|
|
188
|
+
|
|
189
|
+
\`\`\`
|
|
190
|
+
□ Build compila sem erros
|
|
191
|
+
□ Todos os testes passam
|
|
192
|
+
□ Cobertura ≥ ${config.coverageMinimum}%
|
|
193
|
+
□ Score ≥ ${config.scoreThreshold}/100
|
|
194
|
+
□ Zero anti-patterns CRITICAL novos
|
|
195
|
+
□ Sem regressão de score
|
|
196
|
+
□ Lint sem warnings
|
|
197
|
+
□ Documentação atualizada
|
|
198
|
+
\`\`\`
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## 📐 Templates Inline
|
|
203
|
+
|
|
204
|
+
### Template: User Story
|
|
205
|
+
|
|
206
|
+
\`\`\`markdown
|
|
207
|
+
## US-XXX: [Título]
|
|
208
|
+
|
|
209
|
+
**Como** [ator],
|
|
210
|
+
**Quero** [ação],
|
|
211
|
+
**Para** [benefício].
|
|
212
|
+
|
|
213
|
+
### Critérios de Aceite
|
|
214
|
+
|
|
215
|
+
- CA1: [critério mensurável]
|
|
216
|
+
- CA2: [critério mensurável]
|
|
217
|
+
- CA3: [critério mensurável]
|
|
218
|
+
|
|
219
|
+
### Regras de Negócio
|
|
220
|
+
|
|
221
|
+
- RN1: [regra]
|
|
222
|
+
- RN2: [regra]
|
|
223
|
+
|
|
224
|
+
### Notas Técnicas
|
|
225
|
+
|
|
226
|
+
- [observação relevante]
|
|
227
|
+
\`\`\`
|
|
228
|
+
|
|
229
|
+
### Template: Task Breakdown
|
|
230
|
+
|
|
231
|
+
\`\`\`markdown
|
|
232
|
+
## TASK-XXX: [Título]
|
|
233
|
+
|
|
234
|
+
**User Story:** US-XXX
|
|
235
|
+
**Estimativa:** [XS|S|M|L|XL]
|
|
236
|
+
**Camada:** [Backend|Frontend|App|Database]
|
|
237
|
+
**Agente:** [nome do agente]
|
|
238
|
+
|
|
239
|
+
### Descrição
|
|
240
|
+
[o que precisa ser feito]
|
|
241
|
+
|
|
242
|
+
### Critério de Done
|
|
243
|
+
- [ ] Implementado
|
|
244
|
+
- [ ] Testado (cobertura ≥ ${config.coverageMinimum}%)
|
|
245
|
+
- [ ] Code review
|
|
246
|
+
- [ ] Documentação
|
|
247
|
+
\`\`\`
|
|
248
|
+
|
|
249
|
+
### Template: ADR (Architecture Decision Record)
|
|
250
|
+
|
|
251
|
+
\`\`\`markdown
|
|
252
|
+
## ADR-XXX: [Título da Decisão]
|
|
253
|
+
|
|
254
|
+
**Status:** [proposed | accepted | deprecated | superseded]
|
|
255
|
+
**Data:** [YYYY-MM-DD]
|
|
256
|
+
|
|
257
|
+
### Contexto
|
|
258
|
+
[Por que essa decisão é necessária?]
|
|
259
|
+
|
|
260
|
+
### Decisão
|
|
261
|
+
[O que foi decidido?]
|
|
262
|
+
|
|
263
|
+
### Consequências
|
|
264
|
+
[Positivas e negativas]
|
|
265
|
+
|
|
266
|
+
### Alternativas Consideradas
|
|
267
|
+
1. [alternativa 1] — descartada porque...
|
|
268
|
+
2. [alternativa 2] — descartada porque...
|
|
269
|
+
\`\`\`
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## ⚖️ Matriz de Risco
|
|
274
|
+
|
|
275
|
+
| Risco | Probabilidade | Impacto | Mitigação |
|
|
276
|
+
|-------|-------------|---------|-----------|
|
|
277
|
+
| Regressão de testes | Média | Alto | CI/CD com gate obrigatório |
|
|
278
|
+
| Degradação de score | Média | Médio | architect score antes de PR |
|
|
279
|
+
| Breaking changes em API | Alta | Crítico | Versionamento + integration doc |
|
|
280
|
+
| Security vulnerability | Baixa | Crítico | SECURITY-AUDITOR em toda feature |
|
|
281
|
+
| Performance degradation | Média | Alto | Benchmark antes/depois |
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## 🏷️ T-Shirt Sizing
|
|
286
|
+
|
|
287
|
+
| Size | Duração | Scope | Gates |
|
|
288
|
+
|------|---------|-------|-------|
|
|
289
|
+
| **XS** | < 2h | Fix pontual, 1 arquivo | Simplificado (skip mockup se sem UI) |
|
|
290
|
+
| **S** | 2-4h | Fix + teste, 2-3 arquivos | Gates 2, 5, 6 obrigatórios |
|
|
291
|
+
| **M** | 4-8h | Feature pequena, 1 camada | Todos os 6 gates |
|
|
292
|
+
| **L** | 1-3 dias | Feature multi-camada | Todos + ADR |
|
|
293
|
+
| **XL** | 3+ dias | Feature épica | Todos + ADR + Threat Model |
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## 🔀 Protocolo de Conflitos
|
|
298
|
+
|
|
299
|
+
Quando dois agentes discordam:
|
|
300
|
+
|
|
301
|
+
1. **Identificar** o ponto de conflito
|
|
302
|
+
2. **Documentar** ambas as posições com prós/contras
|
|
303
|
+
3. **Escalar** ao humano com recomendação
|
|
304
|
+
4. **Registrar** a decisão como ADR
|
|
305
|
+
|
|
306
|
+
> **NUNCA resolver conflitos automaticamente.** O humano decide.
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## 🔧 Quality Gates (Enforcement)
|
|
311
|
+
|
|
312
|
+
\`\`\`
|
|
313
|
+
╔══════════════════════════════════════════╗
|
|
314
|
+
║ BUILD GATE ║
|
|
315
|
+
║ $ ${buildCmd}
|
|
316
|
+
║ Resultado: PASS ou BLOCK ║
|
|
317
|
+
╠══════════════════════════════════════════╣
|
|
318
|
+
║ TEST GATE ║
|
|
319
|
+
║ $ ${testCmd}
|
|
320
|
+
║
|
|
321
|
+
║ Resultado: PASS ou BLOCK ║
|
|
322
|
+
╠══════════════════════════════════════════╣
|
|
323
|
+
║ COVERAGE GATE ║
|
|
324
|
+
║ Mínimo: ${config.coverageMinimum}% ║
|
|
325
|
+
║ Resultado: PASS ou BLOCK ║
|
|
326
|
+
║ ⚠️ INEGOCIÁVEL ║
|
|
327
|
+
╠══════════════════════════════════════════╣
|
|
328
|
+
║ SCORE GATE ║
|
|
329
|
+
║ $ architect score ./src ║
|
|
330
|
+
║ Mínimo: ${config.scoreThreshold}/100 ║
|
|
331
|
+
║ Regressão: NÃO PERMITIDA ║
|
|
332
|
+
╚══════════════════════════════════════════╝
|
|
333
|
+
\`\`\`
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
**Gerado por Architect v8.1 · Score: ${report.score.overall}/100 · ${new Date().toISOString().split('T')[0]}**
|
|
338
|
+
`;
|
|
339
|
+
}
|
|
340
|
+
function buildAgentDispatch(ctx) {
|
|
341
|
+
const { stack } = ctx;
|
|
342
|
+
let dispatch = '';
|
|
343
|
+
// Add module context if enriched
|
|
344
|
+
const enriched = isEnriched(ctx) ? ctx : null;
|
|
345
|
+
const moduleContext = enriched?.modules?.length
|
|
346
|
+
? ` (${enriched.modules.slice(0, 3).map((m) => m.name).join(', ')})`
|
|
347
|
+
: '';
|
|
348
|
+
if (stack.hasBackend) {
|
|
349
|
+
dispatch += ` ├──→ [${stack.primary.toUpperCase()}-BACKEND-DEVELOPER]${moduleContext}\n`;
|
|
350
|
+
dispatch += ` │ • Arquitetura de serviços e APIs\n`;
|
|
351
|
+
dispatch += ` │ • Lógica de negócio e validações\n`;
|
|
352
|
+
dispatch += ` │ • Entities, DTOs, migrations\n`;
|
|
353
|
+
dispatch += ` │\n`;
|
|
354
|
+
}
|
|
355
|
+
if (stack.hasFrontend) {
|
|
356
|
+
const fw = stack.frameworks.find(f => ['Angular', 'Vue', 'Next.js', 'React'].includes(f)) || 'FRONTEND';
|
|
357
|
+
dispatch += ` ├──→ [${fw.toUpperCase().replace('.', '')}-FRONTEND-DEVELOPER]\n`;
|
|
358
|
+
dispatch += ` │ • Componentes e páginas\n`;
|
|
359
|
+
dispatch += ` │ • State management e formulários\n`;
|
|
360
|
+
dispatch += ` │ • UX responsiva\n`;
|
|
361
|
+
dispatch += ` │\n`;
|
|
362
|
+
}
|
|
363
|
+
if (stack.hasMobile) {
|
|
364
|
+
dispatch += ` ├──→ [FLUTTER-UI-DEVELOPER]\n`;
|
|
365
|
+
dispatch += ` │ • Screens e widgets\n`;
|
|
366
|
+
dispatch += ` │ • Navegação e integração API\n`;
|
|
367
|
+
dispatch += ` │\n`;
|
|
368
|
+
}
|
|
369
|
+
if (stack.hasDatabase) {
|
|
370
|
+
dispatch += ` ├──→ [DATABASE-ENGINEER]\n`;
|
|
371
|
+
dispatch += ` │ • Schema design e migrations\n`;
|
|
372
|
+
dispatch += ` │ • Índices e performance de queries\n`;
|
|
373
|
+
dispatch += ` │\n`;
|
|
374
|
+
}
|
|
375
|
+
dispatch += ` ├──→ [SECURITY-AUDITOR]\n`;
|
|
376
|
+
dispatch += ` │ • Análise de ameaças (STRIDE)\n`;
|
|
377
|
+
dispatch += ` │ • Compliance check\n`;
|
|
378
|
+
dispatch += ` │\n`;
|
|
379
|
+
dispatch += ` ├──→ [QA-TEST-ENGINEER]\n`;
|
|
380
|
+
dispatch += ` │ • Plano de testes\n`;
|
|
381
|
+
dispatch += ` │ • Cobertura mínima: ${ctx.config.coverageMinimum}%\n`;
|
|
382
|
+
dispatch += ` │\n`;
|
|
383
|
+
dispatch += ` └──→ [TECH-DEBT-CONTROLLER]\n`;
|
|
384
|
+
dispatch += ` • Débito técnico existente\n`;
|
|
385
|
+
dispatch += ` • Refatorações pré-requisito\n`;
|
|
386
|
+
return dispatch;
|
|
387
|
+
}
|
|
388
|
+
function buildBusinessQuestions(ctx) {
|
|
389
|
+
const questions = [
|
|
390
|
+
'Q1: Quem são os atores envolvidos? (personas)',
|
|
391
|
+
'Q2: Qual o impacto em receita/negócio?',
|
|
392
|
+
'Q3: Existem regras de negócio específicas?',
|
|
393
|
+
'Q4: Quais métricas de sucesso?',
|
|
394
|
+
'Q5: Há requisitos de compliance (LGPD, PCI, etc)?',
|
|
395
|
+
'Q6: Quais módulos/serviços são afetados?',
|
|
396
|
+
'Q7: Quais entidades de banco são tocadas?',
|
|
397
|
+
'Q8: Existe fluxo de dados entre sistemas?',
|
|
398
|
+
'Q9: Precisa de versionamento de API?',
|
|
399
|
+
'Q10: Há integrações externas envolvidas?',
|
|
400
|
+
];
|
|
401
|
+
// Add domain-specific questions if enriched context available
|
|
402
|
+
const enriched = isEnriched(ctx) ? ctx : null;
|
|
403
|
+
if (enriched?.domain) {
|
|
404
|
+
const { domain } = enriched;
|
|
405
|
+
questions.push(`Q11: Como isso se alinha com o domínio ${domain.domain}?`);
|
|
406
|
+
if (domain.compliance?.length) {
|
|
407
|
+
const complianceNames = domain.compliance.map((c) => c.name).join(', ');
|
|
408
|
+
questions.push(`Q12: Como garantir conformidade com ${complianceNames}?`);
|
|
409
|
+
}
|
|
410
|
+
if (domain.integrations?.length) {
|
|
411
|
+
const integrationNames = domain.integrations.slice(0, 3).map((i) => i.name).join(', ');
|
|
412
|
+
questions.push(`Q13: Como essa mudança afeta as integrações com ${integrationNames}?`);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
if (ctx.stack.hasDatabase) {
|
|
416
|
+
const startIdx = enriched?.domain ? 14 : 11;
|
|
417
|
+
questions.push(`Q${startIdx}: Volume estimado de dados?`, `Q${startIdx + 1}: Há picos de uso previsíveis?`, `Q${startIdx + 2}: Processamento síncrono ou assíncrono?`);
|
|
418
|
+
}
|
|
419
|
+
let nextQ = questions.length + 1;
|
|
420
|
+
questions.push(`Q${nextQ++}: Quem precisa de autenticação?`, `Q${nextQ++}: Quais permissões são necessárias?`, `Q${nextQ++}: Há dados sensíveis envolvidos?`, `Q${nextQ++}: Quais ameaças são relevantes?`);
|
|
421
|
+
return questions.map(q => `- **${q}**`).join('\n');
|
|
422
|
+
}
|
|
423
|
+
//# sourceMappingURL=orchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../../../../src/core/agent-generator/templates/core/orchestrator.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,UAAU,EAGV,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAA8C;IAC/E,6CAA6C;IAC/C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC;IAC3E,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;IACpG,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAEtD,mEAAmE;IACnE,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,MAAM,QAAQ,GAAG,WAAW,EAAE,SAAS,EAAE,QAAQ,IAAI,eAAe,CAAC;IACrE,MAAM,OAAO,GAAG,WAAW,EAAE,SAAS,EAAE,OAAO,IAAI,cAAc,CAAC;IAElE,OAAO;;;;mEAI0D,WAAW;;;;;;;;;;;;;2BAanD,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAoCT,MAAM,CAAC,eAAe;;;;;;;;;;;;;;;;;kBAiBjC,WAAW;gBACb,UAAU;sBACJ,MAAM,CAAC,KAAK,CAAC,OAAO;wBAClB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;kBAC9C,MAAM;wBACA,YAAY;mBACjB,MAAM,CAAC,WAAW,CAAC,UAAU;iBAC/B,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE;2BACpC,MAAM,CAAC,eAAe;iCAChB,IAAI,CAAC,KAAK,CAAC,MAAM;;EAEhD,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,0CAA0C,cAAc,CAAC,GAAG,CAAC,MAAM,qBAAqB,CAAC,GAAG,CAAC,OAAO,cAAc,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iCAAiC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B3V,iBAAiB;;;;;;;;;EASjB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA0DC,MAAM,CAAC,eAAe;YAC1B,MAAM,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAmDJ,MAAM,CAAC,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuE5C,QAAQ;;;;OAIR,OAAO;;;;;aAKD,MAAM,CAAC,eAAe;;;;;;aAMtB,MAAM,CAAC,cAAc;;;;;;;uCAOK,MAAM,CAAC,KAAK,CAAC,OAAO,UAAU,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1G,CAAC;AACF,CAAC;AAED,SAAS,kBAAkB,CAAC,GAA8C;IACxE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACtB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,iCAAiC;IACjC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,MAAM,aAAa,GAAG,QAAQ,EAAE,OAAO,EAAE,MAAM;QAC7C,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACzE,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,QAAQ,IAAI,aAAa,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,sBAAsB,aAAa,IAAI,CAAC;QAC5F,QAAQ,IAAI,6CAA6C,CAAC;QAC1D,QAAQ,IAAI,6CAA6C,CAAC;QAC1D,QAAQ,IAAI,yCAAyC,CAAC;QACtD,QAAQ,IAAI,SAAS,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;QACxG,QAAQ,IAAI,aAAa,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,wBAAwB,CAAC;QACnF,QAAQ,IAAI,oCAAoC,CAAC;QACjD,QAAQ,IAAI,6CAA6C,CAAC;QAC1D,QAAQ,IAAI,4BAA4B,CAAC;QACzC,QAAQ,IAAI,SAAS,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,QAAQ,IAAI,mCAAmC,CAAC;QAChD,QAAQ,IAAI,gCAAgC,CAAC;QAC7C,QAAQ,IAAI,yCAAyC,CAAC;QACtD,QAAQ,IAAI,SAAS,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,QAAQ,IAAI,gCAAgC,CAAC;QAC7C,QAAQ,IAAI,yCAAyC,CAAC;QACtD,QAAQ,IAAI,+CAA+C,CAAC;QAC5D,QAAQ,IAAI,SAAS,CAAC;IACxB,CAAC;IAED,QAAQ,IAAI,+BAA+B,CAAC;IAC5C,QAAQ,IAAI,0CAA0C,CAAC;IACvD,QAAQ,IAAI,+BAA+B,CAAC;IAC5C,QAAQ,IAAI,SAAS,CAAC;IACtB,QAAQ,IAAI,+BAA+B,CAAC;IAC5C,QAAQ,IAAI,8BAA8B,CAAC;IAC3C,QAAQ,IAAI,gCAAgC,GAAG,CAAC,MAAM,CAAC,eAAe,KAAK,CAAC;IAC5E,QAAQ,IAAI,SAAS,CAAC;IACtB,QAAQ,IAAI,mCAAmC,CAAC;IAChD,QAAQ,IAAI,uCAAuC,CAAC;IACpD,QAAQ,IAAI,yCAAyC,CAAC;IAEtD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAAC,GAA8C;IAC5E,MAAM,SAAS,GAAG;QAChB,+CAA+C;QAC/C,wCAAwC;QACxC,4CAA4C;QAC5C,gCAAgC;QAChC,mDAAmD;QACnD,0CAA0C;QAC1C,2CAA2C;QAC3C,2CAA2C;QAC3C,sCAAsC;QACtC,0CAA0C;KAC3C,CAAC;IAEF,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;QACrB,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QAC5B,SAAS,CAAC,IAAI,CAAC,0CAA0C,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3E,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YAC9B,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7E,SAAS,CAAC,IAAI,CAAC,uCAAuC,eAAe,GAAG,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;YAChC,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5F,SAAS,CAAC,IAAI,CAAC,mDAAmD,gBAAgB,GAAG,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,SAAS,CAAC,IAAI,CACZ,IAAI,QAAQ,6BAA6B,EACzC,IAAI,QAAQ,GAAG,CAAC,gCAAgC,EAChD,IAAI,QAAQ,GAAG,CAAC,yCAAyC,CAC1D,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,SAAS,CAAC,IAAI,CACZ,IAAI,KAAK,EAAE,iCAAiC,EAC5C,IAAI,KAAK,EAAE,qCAAqC,EAChD,IAAI,KAAK,EAAE,kCAAkC,EAC7C,IAAI,KAAK,EAAE,iCAAiC,CAC7C,CAAC;IAEF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TemplateContext } from '@girardelli/architect-agents/src/core/agent-generator/types/template.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generates enterprise-grade PREFLIGHT.md
|
|
4
|
+
* 6-phase checklist: mental prep → mandatory reads → environment → business rules →
|
|
5
|
+
* before-code by layer → before-done. Red flags, diagnostic template, delivery checklist.
|
|
6
|
+
*/
|
|
7
|
+
export declare function generatePreflight(ctx: TemplateContext): string;
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { getEnriched } from '../template-helpers.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generates enterprise-grade PREFLIGHT.md
|
|
4
|
+
* 6-phase checklist: mental prep → mandatory reads → environment → business rules →
|
|
5
|
+
* before-code by layer → before-done. Red flags, diagnostic template, delivery checklist.
|
|
6
|
+
*/
|
|
7
|
+
export function generatePreflight(ctx) {
|
|
8
|
+
const { stack, projectName, config, report } = ctx;
|
|
9
|
+
const enriched = getEnriched(ctx);
|
|
10
|
+
const tc = enriched.toolchain;
|
|
11
|
+
return `---
|
|
12
|
+
antigravity:
|
|
13
|
+
trigger: 'always_on'
|
|
14
|
+
globs: ['**/*']
|
|
15
|
+
description: 'PREFLIGHT — Checklist obrigatório pré-ação para ${projectName}'
|
|
16
|
+
priority: CRITICAL
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# ✈️ PREFLIGHT — Checklist Pré-Ação
|
|
20
|
+
|
|
21
|
+
> **NENHUMA ação de código é permitida antes de completar este checklist.**
|
|
22
|
+
> Pular qualquer fase é violação do protocolo.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## FASE 0: Preparação Mental
|
|
27
|
+
|
|
28
|
+
Antes de abrir qualquer arquivo:
|
|
29
|
+
|
|
30
|
+
\`\`\`
|
|
31
|
+
□ Li e entendi a requisição COMPLETAMENTE
|
|
32
|
+
□ Sei qual WORKFLOW estou seguindo (new-feature / fix-bug / review)
|
|
33
|
+
□ Identifiquei as CAMADAS envolvidas (Backend / Frontend / App / Database)
|
|
34
|
+
□ Tenho CLAREZA sobre o que é esperado como entrega
|
|
35
|
+
□ Se algo não está claro → PAREI e PERGUNTEI ao humano
|
|
36
|
+
\`\`\`
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## FASE 1: Leitura Obrigatória
|
|
41
|
+
|
|
42
|
+
\`\`\`
|
|
43
|
+
□ [00-general.md](../rules/00-general.md) → Regras de Ouro do projeto
|
|
44
|
+
□ [QUALITY-GATES.md](./QUALITY-GATES.md) → Métricas e blockers
|
|
45
|
+
□ LESSONS-LEARNED.md (se existir) → Erros passados
|
|
46
|
+
□ ERROR-PATTERNS.md (se existir) → Padrões de erro conhecidos
|
|
47
|
+
□ BUSINESS-RULES.md (se existir) → Regras de negócio do domínio
|
|
48
|
+
\`\`\`
|
|
49
|
+
|
|
50
|
+
> **Objetivo:** Não repetir erros e entender o contexto antes de agir.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## FASE 2: Verificação de Ambiente
|
|
55
|
+
|
|
56
|
+
\`\`\`bash
|
|
57
|
+
# Git: verificar branch e status
|
|
58
|
+
git branch --show-current # NUNCA em main/develop direto
|
|
59
|
+
git status # Limpo antes de começar
|
|
60
|
+
git pull origin <branch> # Sincronizado
|
|
61
|
+
|
|
62
|
+
# Deps: verificar se está tudo instalado
|
|
63
|
+
${tc?.installCmd || (stack.packageManager === 'npm' ? 'npm ci' : stack.packageManager === 'pip' ? 'pip install -r requirements.txt' : stack.packageManager === 'pub' ? 'flutter pub get' : `${stack.packageManager} install`)}
|
|
64
|
+
|
|
65
|
+
# Build: verificar se compila
|
|
66
|
+
${tc?.buildCmd || (stack.packageManager === 'npm' ? 'npm run build' : stack.packageManager === 'pub' ? 'flutter build' : 'make build')}
|
|
67
|
+
|
|
68
|
+
# Tests: verificar se passam ANTES de começar
|
|
69
|
+
${tc?.testCmd || (stack.testFramework === 'pytest' ? 'pytest' : stack.testFramework === 'flutter_test' ? 'flutter test' : stack.testFramework === 'go test' ? 'go test ./...' : 'npm run test')}
|
|
70
|
+
\`\`\`
|
|
71
|
+
|
|
72
|
+
\`\`\`
|
|
73
|
+
□ Branch correta (NUNCA main/develop)
|
|
74
|
+
□ Working tree limpa
|
|
75
|
+
□ Dependências instaladas
|
|
76
|
+
□ Build passando
|
|
77
|
+
□ Testes passando ANTES da minha alteração
|
|
78
|
+
\`\`\`
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## FASE 3: Verificação de Regras de Negócio
|
|
83
|
+
|
|
84
|
+
\`\`\`
|
|
85
|
+
□ Entendo QUEM são os atores afetados
|
|
86
|
+
□ Entendo QUAL é a regra de negócio envolvida
|
|
87
|
+
□ Verifiquei se existe documentação do domínio
|
|
88
|
+
□ Se a feature envolve dinheiro/pagamento → ATENÇÃO REDOBRADA
|
|
89
|
+
□ Se a feature envolve dados pessoais → verificar LGPD/compliance
|
|
90
|
+
□ Se a feature muda um fluxo existente → verificar impacto em features dependentes
|
|
91
|
+
\`\`\`
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## FASE 4: Before-Code Checklist (por Camada)
|
|
96
|
+
|
|
97
|
+
### 4A: Backend ${stack.hasBackend ? '✅' : '⬜ (skip se não aplicável)'}
|
|
98
|
+
|
|
99
|
+
\`\`\`
|
|
100
|
+
□ Entendo a estrutura de módulos existente
|
|
101
|
+
□ Sei onde criar/modificar controllers, services, entities
|
|
102
|
+
□ Verifiquei se já existe código similar (DRY)
|
|
103
|
+
□ DTOs e validações planejados
|
|
104
|
+
□ Tratamento de erros definido
|
|
105
|
+
□ Sei qual padrão de teste usar (unitário + integração)
|
|
106
|
+
□ Migrations planejadas (se houver alteração de banco)
|
|
107
|
+
\`\`\`
|
|
108
|
+
|
|
109
|
+
### 4B: Frontend ${stack.hasFrontend ? '✅' : '⬜ (skip se não aplicável)'}
|
|
110
|
+
|
|
111
|
+
\`\`\`
|
|
112
|
+
□ MOCKUP aprovado pelo humano
|
|
113
|
+
□ Entendo o state management utilizado
|
|
114
|
+
□ Sei onde criar/modificar componentes
|
|
115
|
+
□ Verificar padrão visual (cores, fontes, espaçamentos)
|
|
116
|
+
□ Responsividade considerada
|
|
117
|
+
□ Acessibilidade básica (labels, aria, contraste)
|
|
118
|
+
□ Documento de integração do backend disponível
|
|
119
|
+
\`\`\`
|
|
120
|
+
|
|
121
|
+
### 4C: Mobile (Flutter) ${stack.hasMobile ? '✅' : '⬜ (skip se não aplicável)'}
|
|
122
|
+
|
|
123
|
+
\`\`\`
|
|
124
|
+
□ MOCKUP aprovado pelo humano
|
|
125
|
+
□ Entendo a navegação atual do app
|
|
126
|
+
□ Sei onde criar/modificar screens e widgets
|
|
127
|
+
□ Verificar padrão visual do app
|
|
128
|
+
□ Comportamento offline considerado
|
|
129
|
+
□ Documento de integração do backend disponível
|
|
130
|
+
\`\`\`
|
|
131
|
+
|
|
132
|
+
### 4D: Database ${stack.hasDatabase ? '✅' : '⬜ (skip se não aplicável)'}
|
|
133
|
+
|
|
134
|
+
\`\`\`
|
|
135
|
+
□ Schema atual compreendido
|
|
136
|
+
□ Migration reversível planejada
|
|
137
|
+
□ Índices necessários identificados
|
|
138
|
+
□ Impacto em queries existentes avaliado
|
|
139
|
+
□ Seed data / fixtures atualizados
|
|
140
|
+
□ Backup strategy para dados existentes
|
|
141
|
+
\`\`\`
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## FASE 5: Before-Commit
|
|
146
|
+
|
|
147
|
+
\`\`\`
|
|
148
|
+
□ Build compila sem erros
|
|
149
|
+
□ TODOS os testes passam (velhos + novos)
|
|
150
|
+
□ Cobertura ≥ ${config.coverageMinimum}%
|
|
151
|
+
□ Lint sem warnings
|
|
152
|
+
□ Sem console.log / print() em produção
|
|
153
|
+
□ Sem TODO / FIXME sem issue
|
|
154
|
+
□ Sem secrets hardcoded
|
|
155
|
+
□ Sem arquivos > 500 linhas sem justificativa
|
|
156
|
+
□ Commit message segue padrão (feat: / fix: / refactor: / docs:)
|
|
157
|
+
□ Branch está atualizada com base (rebase se necessário)
|
|
158
|
+
\`\`\`
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## FASE 6: Before-Done
|
|
163
|
+
|
|
164
|
+
\`\`\`
|
|
165
|
+
□ TODOS os critérios de aceite estão cobertos
|
|
166
|
+
□ Score não regrediu: architect score ./src ≥ ${config.scoreThreshold}/100
|
|
167
|
+
□ Documentação atualizada (se necessário)
|
|
168
|
+
□ LESSONS-LEARNED atualizado (se descobri algo novo)
|
|
169
|
+
□ PR criado com descrição completa
|
|
170
|
+
□ Code review solicitado
|
|
171
|
+
\`\`\`
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## 🚩 Red Flags — PARE IMEDIATAMENTE SE:
|
|
176
|
+
|
|
177
|
+
| Red Flag | Ação |
|
|
178
|
+
|----------|------|
|
|
179
|
+
| Não entendo a requisição | PARAR → Perguntar ao humano |
|
|
180
|
+
| Código que mexo tem 0% de cobertura | PARAR → Escrever testes ANTES |
|
|
181
|
+
| Estou modificando > 10 arquivos | PARAR → Reavaliar escopo |
|
|
182
|
+
| Build quebrou após minha mudança | PARAR → Reverter → Investigar |
|
|
183
|
+
| Estou copiando/colando código | PARAR → Extrair abstração |
|
|
184
|
+
| Estou trabalhando em main/develop | PARAR → Criar branch |
|
|
185
|
+
| Não tenho mockup e a feature tem UI | PARAR → Gate 1 primeiro |
|
|
186
|
+
| Estou escrevendo código sem testes | PARAR → TDD |
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## 🔍 Template de Diagnóstico
|
|
191
|
+
|
|
192
|
+
Execute antes de qualquer implementação:
|
|
193
|
+
|
|
194
|
+
\`\`\`bash
|
|
195
|
+
# Estrutura do projeto
|
|
196
|
+
find . -type f -name "*.${stack.primary === 'Python' ? 'py' : stack.primary === 'Dart' ? 'dart' : 'ts'}" | head -30
|
|
197
|
+
|
|
198
|
+
# Dependências do módulo que vou modificar
|
|
199
|
+
grep -r "import.*${stack.primary === 'Python' ? 'from' : 'from'}" --include="*.${stack.primary === 'Python' ? 'py' : 'ts'}" [modulo]/ | head -20
|
|
200
|
+
|
|
201
|
+
# Testes existentes
|
|
202
|
+
find . -name "*.test.*" -o -name "*.spec.*" -o -name "*_test.*" | head -20
|
|
203
|
+
|
|
204
|
+
# Score atual
|
|
205
|
+
npx @girardelli/architect score .
|
|
206
|
+
\`\`\`
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
**Gerado por Architect v8.1 · Score: ${report.score.overall}/100 · ${new Date().toISOString().split('T')[0]}**
|
|
211
|
+
`;
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../../../../../src/core/agent-generator/templates/core/preflight.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAoB;IACpD,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC;IAE9B,OAAO;;;;kEAIyD,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgD3E,EAAE,EAAE,UAAU,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,UAAU,CAAC;;;EAG3N,EAAE,EAAE,QAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC;;;EAGpI,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4B7K,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,2BAA2B;;;;;;;;;;;;mBAYnD,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,2BAA2B;;;;;;;;;;;;2BAY7C,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,2BAA2B;;;;;;;;;;;mBAW3D,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,2BAA2B;;;;;;;;;;;;;;;;;;gBAkBxD,MAAM,CAAC,eAAe;;;;;;;;;;;;;;;;gDAgBU,MAAM,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA8B3C,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;;;mBAGnF,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,kBAAkB,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;;;;;;;;;;;uCAWlF,MAAM,CAAC,KAAK,CAAC,OAAO,UAAU,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1G,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TemplateContext, EnrichedTemplateContext } from '@girardelli/architect-agents/src/core/agent-generator/types/template.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generates enterprise-grade QUALITY-GATES.md
|
|
4
|
+
* 3-level gates (CRITICAL/IMPORTANT/DESIRABLE), per-layer checklists,
|
|
5
|
+
* explicit blockers list, metrics table, 4-stage verification process.
|
|
6
|
+
*
|
|
7
|
+
* Context-aware: Adds compliance-specific gates, untested modules warnings,
|
|
8
|
+
* and domain-specific blockers when enriched data is available.
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateQualityGates(ctx: TemplateContext | EnrichedTemplateContext): string;
|