@girardelli/architect 2.2.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +105 -116
- package/__test_agent_output__/INDEX.md +1 -0
- package/__test_agent_output__/agents/AGENT-ORCHESTRATOR.md +1 -0
- package/__test_agent_output__/agents/DATABASE-ENGINEER.md +174 -0
- package/__test_agent_output__/agents/QA-TEST-ENGINEER.md +138 -0
- package/__test_agent_output__/agents/SECURITY-AUDITOR.md +106 -0
- package/__test_agent_output__/agents/TECH-DEBT-CONTROLLER.md +104 -0
- package/__test_agent_output__/agents/TYPESCRIPT-BACKEND-DEVELOPER.md +135 -0
- package/__test_agent_output__/guards/CODE-REVIEW-CHECKLIST.md +95 -0
- package/__test_agent_output__/guards/PREFLIGHT.md +200 -0
- package/__test_agent_output__/guards/QUALITY-GATES.md +1 -0
- package/__test_agent_output__/rules/00-general.md +229 -0
- package/__test_agent_output__/rules/01-architecture.md +191 -0
- package/__test_agent_output__/rules/02-security.md +402 -0
- package/__test_agent_output__/rules/03-nestjs.md +124 -0
- package/__test_agent_output__/templates/ADR.md +95 -0
- package/__test_agent_output__/templates/BDD.md +58 -0
- package/__test_agent_output__/templates/C4.md +68 -0
- package/__test_agent_output__/templates/TDD.md +86 -0
- package/__test_agent_output__/templates/THREAT-MODEL.md +82 -0
- package/__test_agent_output__/workflows/fix-bug.md +228 -0
- package/__test_agent_output__/workflows/new-feature.md +311 -0
- package/__test_agent_output__/workflows/review.md +95 -0
- package/__test_context_7RvUrO/src/modules/empty/empty.ts +0 -0
- package/__test_context_Rf5fNJ/src/modules/mixed/mixed.ts +5 -0
- package/__test_context_WRCnYH/src/modules/test/test.ts +10 -0
- package/__test_context_YsnVS3/src/modules/test/test.ts +10 -0
- package/__test_context_w7XZeH/src/modules/mixed/mixed.ts +5 -0
- package/__test_context_y5noh6/src/modules/empty/empty.ts +0 -0
- package/__test_framework__24OjAu/package.json +1 -0
- package/__test_framework__3ZDZsx/pyproject.toml +8 -0
- package/__test_framework__4T54Jn/package.json +1 -0
- package/__test_framework__4tlXu9/pyproject.toml +8 -0
- package/__test_framework__6boWqQ/Pipfile +6 -0
- package/__test_framework__6gygMU/pom.xml +10 -0
- package/__test_framework__6kxj0N/go.mod +8 -0
- package/__test_framework__7CEoXw/pom.xml +10 -0
- package/__test_framework__85DDz0/Pipfile +6 -0
- package/__test_framework__9WrRIr/pom.xml +7 -0
- package/__test_framework__ANqGKl/Gemfile +5 -0
- package/__test_framework__BCXTEM/go.mod +3 -0
- package/__test_framework__BHiPNq/setup.py +2 -0
- package/__test_framework__BqkiKv/package.json +1 -0
- package/__test_framework__C5yd8X/Pipfile.lock +1 -0
- package/__test_framework__C5yd8X/requirements.txt +1 -0
- package/__test_framework__C87d3a/manage.py +1 -0
- package/__test_framework__C87d3a/requirements.txt +2 -0
- package/__test_framework__DXNwc5/build.gradle +7 -0
- package/__test_framework__GhHSt3/build.gradle.kts +4 -0
- package/__test_framework__GzklJP/Cargo.toml +7 -0
- package/__test_framework__H4hd13/go.mod +8 -0
- package/__test_framework__HKjOXO/composer.json +1 -0
- package/__test_framework__HaDN45/Gemfile +3 -0
- package/__test_framework__IBO7YG/pyproject.toml +9 -0
- package/__test_framework__JwSOyF/pyproject.toml +6 -0
- package/__test_framework__K6HrCr/build.gradle +2 -0
- package/__test_framework__KzRPlh/pubspec.yaml +9 -0
- package/__test_framework__L6uIym/pyproject.toml +6 -0
- package/__test_framework__LOdoGK/requirements.txt +4 -0
- package/__test_framework__LgHzss/package.json +1 -0
- package/__test_framework__M76M6q/Gemfile +5 -0
- package/__test_framework__Mr9vWW/composer.json +1 -0
- package/__test_framework__N03Gnv/package.json +1 -0
- package/__test_framework__Num4UE/requirements +1 -0
- package/__test_framework__OAGw3Y/build.gradle +7 -0
- package/__test_framework__OQc8yG/pubspec.yaml +9 -0
- package/__test_framework__OwKZcd/requirements.txt +3 -0
- package/__test_framework__P0gFv7/requirements +1 -0
- package/__test_framework__PN55Rq/package.json +1 -0
- package/__test_framework__PQiqX8/pubspec.yaml +3 -0
- package/__test_framework__RBHsg7/composer.json +1 -0
- package/__test_framework__RHxif4/Cargo.toml +7 -0
- package/__test_framework__T0v0p1/Cargo.toml +4 -0
- package/__test_framework__Tu0clt/Pipfile.lock +1 -0
- package/__test_framework__Tu0clt/requirements.txt +1 -0
- package/__test_framework__TwDj9P/Cargo.toml +4 -0
- package/__test_framework__VQJNC4/pom.xml +7 -0
- package/__test_framework__W6sm05/package.json +1 -0
- package/__test_framework__W7vBLy/pyproject.toml +4 -0
- package/__test_framework__WNJOWT/setup.py +2 -0
- package/__test_framework__WSJs7U/package.json +1 -0
- package/__test_framework__YQ5VpA/build.gradle.kts +4 -0
- package/__test_framework__ZNEUEs/package.json +1 -0
- package/__test_framework__Znt922/pom.xml +7 -0
- package/__test_framework__azyg0h/pom.xml +7 -0
- package/__test_framework__c6otLr/package.json +1 -0
- package/__test_framework__cl9S9G/build.gradle +2 -0
- package/__test_framework__eilvV4/composer.json +1 -0
- package/__test_framework__gQZxXO/manage.py +1 -0
- package/__test_framework__gQZxXO/requirements.txt +2 -0
- package/__test_framework__ghvl26/poetry.lock +1 -0
- package/__test_framework__ghvl26/pyproject.toml +2 -0
- package/__test_framework__hR7b9U/Makefile +11 -0
- package/__test_framework__iESVsi/composer.json +1 -0
- package/__test_framework__jm6TJy/package.json +1 -0
- package/__test_framework__kBUpjs/pyproject.toml +9 -0
- package/__test_framework__kqoZrw/requirements.txt +4 -0
- package/__test_framework__lWkoyO/pyproject.toml +4 -0
- package/__test_framework__mTKnUO/package.json +1 -0
- package/__test_framework__nCeZwe/Makefile +11 -0
- package/__test_framework__oljsU0/package.json +1 -0
- package/__test_framework__osRG4q/go.mod +3 -0
- package/__test_framework__pCHH4F/package.json +1 -0
- package/__test_framework__pExx6E/Gemfile +3 -0
- package/__test_framework__pyBoGd/pyproject.toml +5 -0
- package/__test_framework__qw16VQ/package.json +1 -0
- package/__test_framework__rRayrG/package.json +1 -0
- package/__test_framework__s82zO5/package.json +1 -0
- package/__test_framework__tp8MFK/pyproject.toml +5 -0
- package/__test_framework__w44k4w/composer.json +1 -0
- package/__test_framework__yefPZY/poetry.lock +1 -0
- package/__test_framework__yefPZY/pyproject.toml +2 -0
- package/__test_framework__zCiyDT/requirements.txt +3 -0
- package/__test_framework__zGZN3j/pubspec.yaml +3 -0
- package/__test_framework__zXpnxL/package.json +1 -0
- package/architect-run.sh +431 -0
- package/assets/banner-v3.html +561 -0
- package/dist/agent-generator/context-enricher.d.ts +58 -0
- package/dist/agent-generator/context-enricher.d.ts.map +1 -0
- package/dist/agent-generator/context-enricher.js +581 -0
- package/dist/agent-generator/context-enricher.js.map +1 -0
- package/dist/agent-generator/domain-inferrer.d.ts +52 -0
- package/dist/agent-generator/domain-inferrer.d.ts.map +1 -0
- package/dist/agent-generator/domain-inferrer.js +575 -0
- package/dist/agent-generator/domain-inferrer.js.map +1 -0
- package/dist/agent-generator/framework-detector.d.ts +40 -0
- package/dist/agent-generator/framework-detector.d.ts.map +1 -0
- package/dist/agent-generator/framework-detector.js +611 -0
- package/dist/agent-generator/framework-detector.js.map +1 -0
- package/dist/agent-generator/index.d.ts +33 -0
- package/dist/agent-generator/index.d.ts.map +1 -0
- package/dist/agent-generator/index.js +477 -0
- package/dist/agent-generator/index.js.map +1 -0
- package/dist/agent-generator/stack-detector.d.ts +12 -0
- package/dist/agent-generator/stack-detector.d.ts.map +1 -0
- package/dist/agent-generator/stack-detector.js +128 -0
- package/dist/agent-generator/stack-detector.js.map +1 -0
- package/dist/agent-generator/templates/core/agents.d.ts +17 -0
- package/dist/agent-generator/templates/core/agents.d.ts.map +1 -0
- package/dist/agent-generator/templates/core/agents.js +1252 -0
- package/dist/agent-generator/templates/core/agents.js.map +1 -0
- package/dist/agent-generator/templates/core/architecture-rules.d.ts +7 -0
- package/dist/agent-generator/templates/core/architecture-rules.d.ts.map +1 -0
- package/dist/agent-generator/templates/core/architecture-rules.js +274 -0
- package/dist/agent-generator/templates/core/architecture-rules.js.map +1 -0
- package/dist/agent-generator/templates/core/general-rules.d.ts +8 -0
- package/dist/agent-generator/templates/core/general-rules.d.ts.map +1 -0
- package/dist/agent-generator/templates/core/general-rules.js +301 -0
- package/dist/agent-generator/templates/core/general-rules.js.map +1 -0
- package/dist/agent-generator/templates/core/index-md.d.ts +7 -0
- package/dist/agent-generator/templates/core/index-md.d.ts.map +1 -0
- package/dist/agent-generator/templates/core/index-md.js +246 -0
- package/dist/agent-generator/templates/core/index-md.js.map +1 -0
- package/dist/agent-generator/templates/core/orchestrator.d.ts +8 -0
- package/dist/agent-generator/templates/core/orchestrator.d.ts.map +1 -0
- package/dist/agent-generator/templates/core/orchestrator.js +422 -0
- package/dist/agent-generator/templates/core/orchestrator.js.map +1 -0
- package/dist/agent-generator/templates/core/preflight.d.ts +8 -0
- package/dist/agent-generator/templates/core/preflight.d.ts.map +1 -0
- package/dist/agent-generator/templates/core/preflight.js +213 -0
- package/dist/agent-generator/templates/core/preflight.js.map +1 -0
- package/dist/agent-generator/templates/core/quality-gates.d.ts +11 -0
- package/dist/agent-generator/templates/core/quality-gates.d.ts.map +1 -0
- package/dist/agent-generator/templates/core/quality-gates.js +254 -0
- package/dist/agent-generator/templates/core/quality-gates.js.map +1 -0
- package/dist/agent-generator/templates/core/security-rules.d.ts +7 -0
- package/dist/agent-generator/templates/core/security-rules.d.ts.map +1 -0
- package/dist/agent-generator/templates/core/security-rules.js +528 -0
- package/dist/agent-generator/templates/core/security-rules.js.map +1 -0
- package/dist/agent-generator/templates/core/skills-generator.d.ts +6 -0
- package/dist/agent-generator/templates/core/skills-generator.d.ts.map +1 -0
- package/dist/agent-generator/templates/core/skills-generator.js +207 -0
- package/dist/agent-generator/templates/core/skills-generator.js.map +1 -0
- package/dist/agent-generator/templates/core/workflow-fix-bug.d.ts +7 -0
- package/dist/agent-generator/templates/core/workflow-fix-bug.d.ts.map +1 -0
- package/dist/agent-generator/templates/core/workflow-fix-bug.js +237 -0
- package/dist/agent-generator/templates/core/workflow-fix-bug.js.map +1 -0
- package/dist/agent-generator/templates/core/workflow-new-feature.d.ts +8 -0
- package/dist/agent-generator/templates/core/workflow-new-feature.d.ts.map +1 -0
- package/dist/agent-generator/templates/core/workflow-new-feature.js +321 -0
- package/dist/agent-generator/templates/core/workflow-new-feature.js.map +1 -0
- package/dist/agent-generator/templates/core/workflow-review.d.ts +7 -0
- package/dist/agent-generator/templates/core/workflow-review.d.ts.map +1 -0
- package/dist/agent-generator/templates/core/workflow-review.js +104 -0
- package/dist/agent-generator/templates/core/workflow-review.js.map +1 -0
- package/dist/agent-generator/templates/domain/index.d.ts +22 -0
- package/dist/agent-generator/templates/domain/index.d.ts.map +1 -0
- package/dist/agent-generator/templates/domain/index.js +1176 -0
- package/dist/agent-generator/templates/domain/index.js.map +1 -0
- package/dist/agent-generator/templates/stack/index.d.ts +8 -0
- package/dist/agent-generator/templates/stack/index.d.ts.map +1 -0
- package/dist/agent-generator/templates/stack/index.js +695 -0
- package/dist/agent-generator/templates/stack/index.js.map +1 -0
- package/dist/agent-generator/templates/template-helpers.d.ts +75 -0
- package/dist/agent-generator/templates/template-helpers.d.ts.map +1 -0
- package/dist/agent-generator/templates/template-helpers.js +726 -0
- package/dist/agent-generator/templates/template-helpers.js.map +1 -0
- package/dist/agent-generator/types.d.ts +196 -0
- package/dist/agent-generator/types.d.ts.map +1 -0
- package/dist/agent-generator/types.js +27 -0
- package/dist/agent-generator/types.js.map +1 -0
- package/dist/analyzer.d.ts +5 -0
- package/dist/analyzer.d.ts.map +1 -1
- package/dist/analyzer.js +35 -4
- package/dist/analyzer.js.map +1 -1
- package/dist/analyzers/forecast.d.ts +85 -0
- package/dist/analyzers/forecast.d.ts.map +1 -0
- package/dist/analyzers/forecast.js +337 -0
- package/dist/analyzers/forecast.js.map +1 -0
- package/dist/analyzers/git-cache.d.ts +7 -0
- package/dist/analyzers/git-cache.d.ts.map +1 -0
- package/dist/analyzers/git-cache.js +41 -0
- package/dist/analyzers/git-cache.js.map +1 -0
- package/dist/analyzers/git-history.d.ts +113 -0
- package/dist/analyzers/git-history.d.ts.map +1 -0
- package/dist/analyzers/git-history.js +333 -0
- package/dist/analyzers/git-history.js.map +1 -0
- package/dist/analyzers/index.d.ts +10 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +7 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/analyzers/temporal-scorer.d.ts +72 -0
- package/dist/analyzers/temporal-scorer.d.ts.map +1 -0
- package/dist/analyzers/temporal-scorer.js +140 -0
- package/dist/analyzers/temporal-scorer.js.map +1 -0
- package/dist/cli.d.ts +2 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +275 -113
- package/dist/cli.js.map +1 -1
- package/dist/html-reporter.d.ts +3 -1
- package/dist/html-reporter.d.ts.map +1 -1
- package/dist/html-reporter.js +248 -12
- package/dist/html-reporter.js.map +1 -1
- package/dist/index.d.ts +16 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +63 -4
- package/dist/index.js.map +1 -1
- package/dist/project-summarizer.d.ts +18 -0
- package/dist/project-summarizer.d.ts.map +1 -0
- package/dist/project-summarizer.js +306 -0
- package/dist/project-summarizer.js.map +1 -0
- package/dist/refactor-reporter.js +1 -1
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -3
- package/src/agent-generator/context-enricher.ts +643 -0
- package/src/agent-generator/domain-inferrer.ts +625 -0
- package/src/agent-generator/framework-detector.ts +669 -0
- package/src/agent-generator/index.ts +555 -0
- package/src/agent-generator/stack-detector.ts +103 -0
- package/src/agent-generator/templates/core/agents.ts +1293 -0
- package/src/agent-generator/templates/core/architecture-rules.ts +287 -0
- package/src/agent-generator/templates/core/general-rules.ts +306 -0
- package/src/agent-generator/templates/core/index-md.ts +260 -0
- package/src/agent-generator/templates/core/orchestrator.ts +459 -0
- package/src/agent-generator/templates/core/preflight.ts +215 -0
- package/src/agent-generator/templates/core/quality-gates.ts +256 -0
- package/src/agent-generator/templates/core/security-rules.ts +543 -0
- package/src/agent-generator/templates/core/skills-generator.ts +236 -0
- package/src/agent-generator/templates/core/workflow-fix-bug.ts +239 -0
- package/src/agent-generator/templates/core/workflow-new-feature.ts +323 -0
- package/src/agent-generator/templates/core/workflow-review.ts +106 -0
- package/src/agent-generator/templates/domain/index.ts +1201 -0
- package/src/agent-generator/templates/stack/index.ts +705 -0
- package/src/agent-generator/templates/template-helpers.ts +776 -0
- package/src/agent-generator/types.ts +232 -0
- package/src/analyzer.ts +38 -4
- package/src/analyzers/forecast.ts +496 -0
- package/src/analyzers/git-cache.ts +52 -0
- package/src/analyzers/git-history.ts +488 -0
- package/src/analyzers/index.ts +33 -0
- package/src/analyzers/temporal-scorer.ts +227 -0
- package/src/cli.ts +316 -117
- package/src/html-reporter.ts +263 -13
- package/src/index.ts +92 -9
- package/src/project-summarizer.ts +347 -0
- package/src/refactor-reporter.ts +1 -1
- package/src/types.ts +10 -0
- package/tests/agent-generator.test.ts +411 -0
- package/tests/analyzers-integration.test.ts +174 -0
- package/tests/architect-adapter-enrichment.test.ts +9 -0
- package/tests/context-enricher.test.ts +971 -0
- package/tests/forecast.test.ts +509 -0
- package/tests/framework-detector.test.ts +1172 -0
- package/tests/git-history.test.ts +254 -0
- package/tests/scanner.test.ts +7 -8
- package/tests/scorer.test.ts +588 -0
- package/tests/stack-detector.test.ts +241 -0
- package/tests/template-generation.test.ts +706 -0
- package/tests/template-helpers.test.ts +1152 -0
- package/tests/temporal-scorer.test.ts +307 -0
- package/dist/agent-generator.d.ts +0 -106
- package/dist/agent-generator.d.ts.map +0 -1
- package/dist/agent-generator.js +0 -1398
- package/dist/agent-generator.js.map +0 -1
- package/src/agent-generator.ts +0 -1526
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TemplateContext } from '../../types.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;
|
|
8
|
+
//# sourceMappingURL=preflight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/preflight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA2B,MAAM,gBAAgB,CAAC;AAG1E;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA8M9D"}
|
|
@@ -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 v3.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/agent-generator/templates/core/preflight.ts"],"names":[],"mappings":"AACA,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,11 @@
|
|
|
1
|
+
import { TemplateContext, EnrichedTemplateContext } from '../../types.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;
|
|
11
|
+
//# sourceMappingURL=quality-gates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-gates.d.ts","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/quality-gates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAG1E;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG,uBAAuB,GAAG,MAAM,CAoP3F"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { getEnriched, depthAtLeast } from '../template-helpers.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 function generateQualityGates(ctx) {
|
|
11
|
+
const { stack, projectName, config, report } = ctx;
|
|
12
|
+
const enriched = getEnriched(ctx);
|
|
13
|
+
return `---
|
|
14
|
+
antigravity:
|
|
15
|
+
trigger: 'always_on'
|
|
16
|
+
globs: ['**/*']
|
|
17
|
+
description: 'QUALITY GATES — Critérios mínimos obrigatórios para ${projectName}'
|
|
18
|
+
priority: CRITICAL
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# 🚦 QUALITY GATES — ${projectName}
|
|
22
|
+
|
|
23
|
+
> **Sem aprovação em TODOS os gates CRITICAL, nenhuma entrega é aceita.**
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 🔴 CRITICAL (Obrigatórios — Bloqueiam Merge)
|
|
28
|
+
|
|
29
|
+
| # | Gate | Critério | Verificação |
|
|
30
|
+
|---|------|----------|-------------|
|
|
31
|
+
| C1 | **Compilação** | Build completa sem erros | \`${enriched.toolchain?.buildCmd || (stack.packageManager === 'npm' ? 'npm run build' : stack.packageManager === 'pub' ? 'flutter build' : 'make build')}\` |
|
|
32
|
+
| C2 | **Testes** | 100% dos testes passam | \`${enriched.toolchain?.testCmd || (stack.testFramework === 'pytest' ? 'pytest' : stack.testFramework === 'flutter_test' ? 'flutter test' : 'npm run test')}\` |
|
|
33
|
+
| C3 | **Lint** | Zero errors (warnings tolerados) | \`${enriched.toolchain?.lintCmd || (stack.packageManager === 'npm' ? 'npm run lint' : stack.primary === 'Python' ? 'ruff check .' : 'dart analyze')}\` |
|
|
34
|
+
| C4 | **Cobertura** | ≥ ${config.coverageMinimum}% | \`${enriched.toolchain?.coverageCmd || (stack.testFramework === 'pytest' ? 'pytest --cov' : 'npm run test -- --coverage')}\` |
|
|
35
|
+
| C5 | **Segurança** | Zero vulnerabilidades CRITICAL | SECURITY-AUDITOR review |
|
|
36
|
+
| C6 | **Regras de Negócio** | Todos os critérios de aceite cobertos | BDD scenarios green |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 🟡 IMPORTANT (Esperados — Devem ser justificados se ausentes)
|
|
41
|
+
|
|
42
|
+
| # | Gate | Critério |
|
|
43
|
+
|---|------|----------|
|
|
44
|
+
| I1 | **Documentação** | API documentada, README atualizado se necessário |
|
|
45
|
+
| I2 | **Code Review** | Pelo menos 1 revisor aprovou |
|
|
46
|
+
| I3 | **UI/UX** | Mockup aprovado, padrão visual seguido |
|
|
47
|
+
| I4 | **Performance** | Sem degradação mensurável (benchmark se aplicável) |
|
|
48
|
+
| I5 | **Score** | architect score ≥ ${config.scoreThreshold}/100, sem regressão |
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 🟢 DESIRABLE (Boas práticas — Não bloqueiam, mas são monitoradas)
|
|
53
|
+
|
|
54
|
+
| # | Gate | Critério |
|
|
55
|
+
|---|------|----------|
|
|
56
|
+
| D1 | **Clean Code** | Sem code smells detectados |
|
|
57
|
+
| D2 | **Arquitetura** | Sem novos anti-patterns |
|
|
58
|
+
| D3 | **Git** | Commits semânticos, branch naming correto |
|
|
59
|
+
| D4 | **Observabilidade** | Logging adequado, métricas expostas |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 📊 Tabela de Métricas
|
|
64
|
+
|
|
65
|
+
| Métrica | Mínimo | Ideal | Blocker se |
|
|
66
|
+
|---------|--------|-------|-----------|
|
|
67
|
+
| Cobertura de testes | ${config.coverageMinimum}% | 90%+ | < ${config.coverageMinimum}% |
|
|
68
|
+
| Complexidade ciclomática | — | < 10 | > 20 |
|
|
69
|
+
| Linhas por arquivo | — | < 300 | > 500 |
|
|
70
|
+
| Métodos por classe | — | < 10 | > 20 |
|
|
71
|
+
| Score Architect | ${config.scoreThreshold}/100 | 80+ | < ${config.scoreThreshold} |
|
|
72
|
+
| Anti-patterns CRITICAL | 0 | 0 | > 0 |
|
|
73
|
+
| Dependencies per file | — | < 5 | > 10 |
|
|
74
|
+
|
|
75
|
+
${enriched.domain?.compliance?.length ? `---
|
|
76
|
+
|
|
77
|
+
## 🔒 Compliance-Specific Gates
|
|
78
|
+
|
|
79
|
+
${enriched.domain?.compliance?.map((comp) => {
|
|
80
|
+
const checks = {
|
|
81
|
+
'LGPD': '□ Dados pessoais anonimizados em logs/cache\n□ Direito ao esquecimento implementado\n□ Consentimento explícito documentado',
|
|
82
|
+
'HIPAA': '□ Criptografia AES-256 para PHI em repouso\n□ TLS 1.2+ para PHI em trânsito\n□ Auditoria de acesso a PHI registrada\n□ Business Associate Agreement (BAA) em vigor',
|
|
83
|
+
'PCI-DSS': '□ Criptografia de dados de cartão (nunca armazenar)\n□ WAF ativo em endpoints de pagamento\n□ Segmentation: rede de cartões isolada\n□ Logs de acesso retidos por 1+ ano\n□ Penetration testing anual documentado',
|
|
84
|
+
'SOX': '□ Trilha de auditoria completa para transações\n□ Controles de segregação de funções implementados\n□ Change management process documentado\n□ Acesso de usuário revogado em < 24h',
|
|
85
|
+
'GDPR': '□ DPIA (Data Protection Impact Assessment) completada\n□ Processamento baseado em legal basis documentado\n□ Data residency (EU) garantido\n□ DPO nomeado se aplicável',
|
|
86
|
+
};
|
|
87
|
+
return `### ${comp.name}
|
|
88
|
+
${checks[comp.name] || `□ Verificar: ${comp.mandatoryChecks.join('\n□ Verificar: ')}`}`;
|
|
89
|
+
}).join('\n\n')}` : ''}
|
|
90
|
+
|
|
91
|
+
${enriched.untestedModules?.length ? `---
|
|
92
|
+
|
|
93
|
+
## ⚠️ Módulos Sem Testes
|
|
94
|
+
|
|
95
|
+
Os seguintes módulos **DEVEM TER** cobertura de testes antes de merge:
|
|
96
|
+
|
|
97
|
+
${enriched.untestedModules.map((m) => `- ⚠️ \`${m}\``).join('\n')}
|
|
98
|
+
|
|
99
|
+
**Ação Obrigatória:** Criar testes para cada módulo listado acima. Se a cobertura for impossível, documentar no BLOCKERS.` : ''}
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## ⛔ BLOCKERS — Merge PROIBIDO se:
|
|
104
|
+
|
|
105
|
+
\`\`\`
|
|
106
|
+
${config.blockers.map(b => `❌ ${b}`).join('\n')}
|
|
107
|
+
\`\`\`
|
|
108
|
+
|
|
109
|
+
${enriched.domain?.compliance?.length ? `
|
|
110
|
+
|
|
111
|
+
### Domain-Specific Blockers (Compliance)
|
|
112
|
+
|
|
113
|
+
\`\`\`
|
|
114
|
+
${enriched.domain?.compliance?.map((comp) => {
|
|
115
|
+
const blockers = {
|
|
116
|
+
'LGPD': '❌ Senhas/tokens em logs (violação de privacidade)',
|
|
117
|
+
'HIPAA': '❌ PHI (Protected Health Information) em texto claro',
|
|
118
|
+
'PCI-DSS': '❌ Dados de cartão armazenados ou em logs',
|
|
119
|
+
'SOX': '❌ Transação sem trilha de auditoria',
|
|
120
|
+
'GDPR': '❌ Transferência de dados para fora da EU',
|
|
121
|
+
};
|
|
122
|
+
return blockers[comp.name] || `❌ Violação de ${comp.name}`;
|
|
123
|
+
}).join('\n')}
|
|
124
|
+
\`\`\`
|
|
125
|
+
` : ''}
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## ✅ Checklists por Camada
|
|
130
|
+
|
|
131
|
+
### Backend ${stack.hasBackend ? '' : '(skip se não aplicável)'}
|
|
132
|
+
|
|
133
|
+
\`\`\`
|
|
134
|
+
□ Validação de entrada em TODOS os endpoints
|
|
135
|
+
□ Tratamento de erros com mensagens claras
|
|
136
|
+
□ DTOs para request e response (nunca entity direto)
|
|
137
|
+
□ Testes unitários para services
|
|
138
|
+
□ Testes de integração para controllers
|
|
139
|
+
□ Migrations reversíveis
|
|
140
|
+
□ Sem N+1 queries
|
|
141
|
+
□ Rate limiting em endpoints públicos
|
|
142
|
+
□ Logging estruturado (não console.log)
|
|
143
|
+
\`\`\`
|
|
144
|
+
|
|
145
|
+
### Frontend ${stack.hasFrontend ? '' : '(skip se não aplicável)'}
|
|
146
|
+
|
|
147
|
+
\`\`\`
|
|
148
|
+
□ Componentes seguem padrão visual do sistema
|
|
149
|
+
□ Estado gerenciado corretamente (não prop drilling)
|
|
150
|
+
□ Loading states implementados
|
|
151
|
+
□ Error states implementados
|
|
152
|
+
□ Empty states implementados
|
|
153
|
+
□ Responsivo (mobile-first se web)
|
|
154
|
+
□ Formulários com validação client-side
|
|
155
|
+
□ Sem lógica de negócio em componentes (extrair para service)
|
|
156
|
+
□ Lazy loading onde aplicável
|
|
157
|
+
\`\`\`
|
|
158
|
+
|
|
159
|
+
### Mobile (Flutter) ${stack.hasMobile ? '' : '(skip se não aplicável)'}
|
|
160
|
+
|
|
161
|
+
\`\`\`
|
|
162
|
+
□ Widgets seguem padrão visual do app
|
|
163
|
+
□ Navegação consistente (back button, deep link)
|
|
164
|
+
□ Loading/error/empty states implementados
|
|
165
|
+
□ Comportamento offline graceful
|
|
166
|
+
□ Sem lógica de negócio em widgets
|
|
167
|
+
□ Performance de scroll (ListView.builder, não Column)
|
|
168
|
+
□ Tamanhos de fonte acessíveis
|
|
169
|
+
\`\`\`
|
|
170
|
+
|
|
171
|
+
### Database ${stack.hasDatabase ? '' : '(skip se não aplicável)'}
|
|
172
|
+
|
|
173
|
+
\`\`\`
|
|
174
|
+
□ Migration reversível (up + down)
|
|
175
|
+
□ Índices para queries frequentes
|
|
176
|
+
□ Foreign keys onde aplicável
|
|
177
|
+
□ Constraints de integridade (NOT NULL, UNIQUE, CHECK)
|
|
178
|
+
□ Seed data atualizado
|
|
179
|
+
□ Impacto em queries existentes avaliado
|
|
180
|
+
□ Sem ALTER TABLE em tabelas com milhões de rows sem plano
|
|
181
|
+
\`\`\`
|
|
182
|
+
|
|
183
|
+
${depthAtLeast(ctx, 'large') ? `---
|
|
184
|
+
|
|
185
|
+
## 🏢 Governance Gates (Enterprise ${depthAtLeast(ctx, 'enterprise') ? '/ Large Projects' : 'Projects'})
|
|
186
|
+
|
|
187
|
+
${depthAtLeast(ctx, 'large') ? `\`\`\`
|
|
188
|
+
□ Change Advisory Board (CAB) review para temas de arquitetura
|
|
189
|
+
□ Aprovação do Tech Lead antes de merge em release branches
|
|
190
|
+
□ Documentação de decisões arquiteturais (ADR) para mudanças maiores
|
|
191
|
+
□ Impacto em performance/segurança avaliado formalmente
|
|
192
|
+
□ Backward compatibility verificado (database migrations, API versioning)
|
|
193
|
+
□ SLA e disponibilidade confirmados (para features críticas)
|
|
194
|
+
\`\`\`` : ''}
|
|
195
|
+
` : ''}
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## 🔄 Processo de Verificação (4 Estágios)
|
|
200
|
+
|
|
201
|
+
### Estágio 1: Antes de Começar
|
|
202
|
+
\`\`\`
|
|
203
|
+
□ PREFLIGHT completo
|
|
204
|
+
□ Sei quais gates se aplicam à minha tarefa
|
|
205
|
+
□ Ambiente verificado (build + tests green)
|
|
206
|
+
\`\`\`
|
|
207
|
+
|
|
208
|
+
### Estágio 2: Durante Desenvolvimento
|
|
209
|
+
\`\`\`
|
|
210
|
+
□ Rodo testes a cada mudança significativa
|
|
211
|
+
□ Verifico lint periodicamente
|
|
212
|
+
□ Não acumulo débito técnico
|
|
213
|
+
\`\`\`
|
|
214
|
+
|
|
215
|
+
### Estágio 3: Antes de Commit
|
|
216
|
+
\`\`\`
|
|
217
|
+
□ TODOS os gates CRITICAL passam
|
|
218
|
+
□ Gates IMPORTANT justificados se não atendidos
|
|
219
|
+
□ Build + Tests + Lint + Coverage ✓
|
|
220
|
+
□ $ architect score ./src → sem regressão
|
|
221
|
+
\`\`\`
|
|
222
|
+
|
|
223
|
+
### Estágio 4: Antes de PR
|
|
224
|
+
\`\`\`
|
|
225
|
+
□ Branch atualizada com base
|
|
226
|
+
□ Commit messages semânticos
|
|
227
|
+
□ Descrição do PR completa
|
|
228
|
+
□ Code review solicitado
|
|
229
|
+
□ Documentação atualizada
|
|
230
|
+
\`\`\`
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## 🔌 Verificação Automatizada
|
|
235
|
+
|
|
236
|
+
Antes de qualquer PR, execute:
|
|
237
|
+
|
|
238
|
+
\`\`\`bash
|
|
239
|
+
# Quality gate completo
|
|
240
|
+
${enriched.toolchain?.buildCmd || (stack.packageManager === 'npm' ? 'npm run build' : 'make build')} && \\
|
|
241
|
+
${enriched.toolchain?.coverageCmd || (stack.testFramework === 'pytest' ? 'pytest --cov' : stack.testFramework === 'flutter_test' ? 'flutter test --coverage' : 'npm run test -- --coverage')} && \\
|
|
242
|
+
npx @girardelli/architect score . --format json
|
|
243
|
+
\`\`\`
|
|
244
|
+
|
|
245
|
+
Score mínimo: **${config.scoreThreshold}/100**
|
|
246
|
+
Cobertura mínima: **${config.coverageMinimum}%**
|
|
247
|
+
Regra: **Score não pode regredir** em relação ao último report.
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
**Gerado por Architect v3.1 · Score: ${report.score.overall}/100 · ${new Date().toISOString().split('T')[0]}**
|
|
252
|
+
`;
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=quality-gates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-gates.js","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/quality-gates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TemplateContext } from '../../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generates 02-security.md — OWASP rules, input validation, secrets management,
|
|
4
|
+
* auth/authz patterns, and security anti-patterns.
|
|
5
|
+
*/
|
|
6
|
+
export declare function generateSecurityRules(ctx: TemplateContext): string;
|
|
7
|
+
//# sourceMappingURL=security-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-rules.d.ts","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/security-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAqTlE"}
|