@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,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
antigravity:
|
|
3
|
+
trigger: 'on_demand'
|
|
4
|
+
description: 'Security Auditor — Análise de ameaças, compliance, vulnerabilidades'
|
|
5
|
+
agent_card:
|
|
6
|
+
id: 'security-auditor'
|
|
7
|
+
name: 'Security Auditor'
|
|
8
|
+
role: 'quality'
|
|
9
|
+
capabilities: [threat-modeling, owasp-analysis, compliance-check, vulnerability-detection]
|
|
10
|
+
inputs: [architecture-doc, source-code, api-contracts]
|
|
11
|
+
outputs: [threat-model, security-findings, compliance-report]
|
|
12
|
+
depends_on: []
|
|
13
|
+
version: 3.1.0
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# 🛡️ SECURITY AUDITOR
|
|
17
|
+
|
|
18
|
+
🟢 Projeto Pequeno (< 50 arquivos)
|
|
19
|
+
|
|
20
|
+
> Análise de segurança para test-project
|
|
21
|
+
|
|
22
|
+
## Checklist OWASP Top 10
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
□ A01: Broken Access Control — RBAC implementado?
|
|
26
|
+
□ A02: Cryptographic Failures — Dados sensíveis criptografados?
|
|
27
|
+
□ A03: Injection — Inputs sanitizados? Queries parametrizadas?
|
|
28
|
+
□ A04: Insecure Design — Threat model feito?
|
|
29
|
+
□ A05: Security Misconfiguration — Headers, CORS, defaults?
|
|
30
|
+
□ A06: Vulnerable Components — Deps atualizadas?
|
|
31
|
+
□ A07: Auth Failures — Brute force protegido? Session management?
|
|
32
|
+
□ A08: Software Integrity — Supply chain verificado?
|
|
33
|
+
□ A09: Logging Failures — Audit log para ações sensíveis?
|
|
34
|
+
□ A10: SSRF — Server-side requests validados?
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Checklist Segurança — TypeScript
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
□ Inputs sanitizados e validados
|
|
41
|
+
□ Queries parametrizadas obrigatoriamente
|
|
42
|
+
□ CSRF tokens em formulários
|
|
43
|
+
□ Rate limiting em APIs
|
|
44
|
+
□ Secrets em variáveis de ambiente
|
|
45
|
+
□ HTTPS obrigatório em produção
|
|
46
|
+
□ Dependency scanning no CI
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Requisitos de Compliance Detectados
|
|
50
|
+
|
|
51
|
+
### HIPAA
|
|
52
|
+
**Motivo:** Handles protected health information (PHI)
|
|
53
|
+
|
|
54
|
+
**Verificações Obrigatórias:**
|
|
55
|
+
- □ PHI encryption at rest and in transit
|
|
56
|
+
- □ Access audit logging for all PHI access
|
|
57
|
+
- □ Minimum necessary access principle
|
|
58
|
+
- □ Business Associate Agreements (BAA) tracking
|
|
59
|
+
- □ Breach notification within 60 days
|
|
60
|
+
|
|
61
|
+
### LGPD-Health
|
|
62
|
+
**Motivo:** Processes sensitive health data under Brazilian law
|
|
63
|
+
|
|
64
|
+
**Verificações Obrigatórias:**
|
|
65
|
+
- □ Explicit consent for health data processing
|
|
66
|
+
- □ Data anonymization where possible
|
|
67
|
+
- □ Restricted access to health records
|
|
68
|
+
- □ CFM/CRM compliance for medical data
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
## Ameaças Específicas do Domínio: healthtech
|
|
72
|
+
|
|
73
|
+
- **Vazamento de dados:** Criptografia end-to-end, anonimização
|
|
74
|
+
- **HIPAA/LGPD:** Audit trails, consentimento explícito
|
|
75
|
+
- **Integridade:** Assinatura digital, blockchain se aplicável
|
|
76
|
+
- **Acesso:** RBAC granular, 2FA para dados sensíveis
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
## Quando Ativar
|
|
80
|
+
|
|
81
|
+
- Qualquer feature que lida com: autenticação, autorização, dados pessoais, pagamentos
|
|
82
|
+
- Novas APIs públicas
|
|
83
|
+
- Integrações com sistemas externos
|
|
84
|
+
- Mudanças em infra/deploy
|
|
85
|
+
|
|
86
|
+
## Output Esperado
|
|
87
|
+
|
|
88
|
+
1. Lista de findings com severidade (CRITICAL/HIGH/MEDIUM/LOW)
|
|
89
|
+
2. Recomendações de mitigação
|
|
90
|
+
3. Threat model (se aplicável)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
## 🔗 Cross-References (Agentes Relacionados)
|
|
94
|
+
|
|
95
|
+
| Agente | Quando Consultar |
|
|
96
|
+
|--------|-----------------|
|
|
97
|
+
| **Backend Developer** | Falha de segurança em endpoint/service |
|
|
98
|
+
| **Database Engineer** | Encryption at rest, data masking |
|
|
99
|
+
| **QA Test Engineer** | Testes de segurança (fuzzing, pentest) |
|
|
100
|
+
|
|
101
|
+
> **Regra:** Nunca implementar isoladamente. Sempre verificar se o agente relacionado precisa ser consultado.
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
**Gerado por Architect v3.1**
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
antigravity:
|
|
3
|
+
trigger: 'on_demand'
|
|
4
|
+
description: 'Tech Debt Controller — Controle de débito técnico e metas de score'
|
|
5
|
+
agent_card:
|
|
6
|
+
id: 'tech-debt-controller'
|
|
7
|
+
name: 'Tech Debt Controller'
|
|
8
|
+
role: 'governance'
|
|
9
|
+
capabilities: [debt-tracking, score-monitoring, refactoring-prioritization]
|
|
10
|
+
inputs: [architecture-report, anti-patterns, score-history]
|
|
11
|
+
outputs: [debt-backlog, refactoring-plan, score-targets]
|
|
12
|
+
depends_on: []
|
|
13
|
+
version: 3.1.0
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# 📊 TECH DEBT CONTROLLER
|
|
17
|
+
|
|
18
|
+
🟢 Projeto Pequeno (< 50 arquivos)
|
|
19
|
+
|
|
20
|
+
> Controle de débito técnico para test-project
|
|
21
|
+
|
|
22
|
+
## Estado Atual
|
|
23
|
+
|
|
24
|
+
| Métrica | Valor |
|
|
25
|
+
|---------|-------|
|
|
26
|
+
| Score | 72/100 |
|
|
27
|
+
| Meta | 82/100 |
|
|
28
|
+
| Anti-patterns | 1 |
|
|
29
|
+
| Refatorações pendentes | 1 |
|
|
30
|
+
| Estimativa de Melhora | +10 pontos |
|
|
31
|
+
|
|
32
|
+
## Anti-Patterns Detectados (Agrupados por Severidade)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### 🔴 CRÍTICOS (1)
|
|
36
|
+
- **God Class** — `src/AppService.ts`
|
|
37
|
+
Ação: Resolver no próximo sprint
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
## Hotspots de Acoplamento (Tech Debt)
|
|
49
|
+
|
|
50
|
+
Arquivos com alta complexidade de acoplamento — priorizar refatoração:
|
|
51
|
+
|
|
52
|
+
- `src/app.service.ts` — Alto acoplamento detectado
|
|
53
|
+
- `src/app.controller.ts` — Alto acoplamento detectado
|
|
54
|
+
- `src/entity/user.entity.ts` — Alto acoplamento detectado
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## Roadmap de Refatoração
|
|
59
|
+
|
|
60
|
+
Prioridade por impacto:
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
1. **Split AppService** — Split monolith service
|
|
64
|
+
- Tier: Crítico
|
|
65
|
+
- Prioridade: HIGH
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
## Metas de Score
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
Score Atual: 72/100
|
|
74
|
+
Meta Curto Prazo: 77/100
|
|
75
|
+
Meta Médio Prazo: 82/100
|
|
76
|
+
Mínimo Aceitável: 70/100
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Regras
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
□ Score NUNCA pode regredir após um PR
|
|
83
|
+
□ Mínimo: 70/100
|
|
84
|
+
□ Críticos: resolver dentro de 1 sprint
|
|
85
|
+
□ Altos: resolver dentro de 2 sprints
|
|
86
|
+
□ Médios: adicionar ao backlog técnico
|
|
87
|
+
□ Verificar com: architect score ./src
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
## 🔗 Cross-References (Agentes Relacionados)
|
|
92
|
+
|
|
93
|
+
| Agente | Quando Consultar |
|
|
94
|
+
|--------|-----------------|
|
|
95
|
+
| **Backend Developer** | Refatoração de módulo, god class |
|
|
96
|
+
| **Database Engineer** | N+1 queries, índices, schema refactoring |
|
|
97
|
+
| **Security Auditor** | Débito de segurança (dependencies, configs) |
|
|
98
|
+
|
|
99
|
+
> **Regra:** Nunca implementar isoladamente. Sempre verificar se o agente relacionado precisa ser consultado.
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
**Gerado por Architect v3.1**
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
antigravity:
|
|
3
|
+
trigger: 'on_demand'
|
|
4
|
+
globs: ['**/*.ts']
|
|
5
|
+
description: 'TypeScript Backend Developer — APIs, serviços, lógica de negócio'
|
|
6
|
+
agent_card:
|
|
7
|
+
id: 'typescript-backend'
|
|
8
|
+
name: 'TypeScript Backend Developer'
|
|
9
|
+
role: 'development'
|
|
10
|
+
capabilities: [api-design, service-architecture, business-logic, data-modeling, testing]
|
|
11
|
+
inputs: [user-story, api-contracts, business-rules, integration-doc]
|
|
12
|
+
outputs: [controllers, services, entities, migrations, tests, integration-doc]
|
|
13
|
+
depends_on: [database-engineer]
|
|
14
|
+
version: 3.1.0
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# 🔧 TYPESCRIPT BACKEND DEVELOPER
|
|
18
|
+
|
|
19
|
+
🟢 Projeto Pequeno (< 50 arquivos)
|
|
20
|
+
|
|
21
|
+
> Especialista em backend NestJS para test-project
|
|
22
|
+
|
|
23
|
+
## Stack
|
|
24
|
+
|
|
25
|
+
- **Linguagem:** TypeScript
|
|
26
|
+
- **Framework:** NestJS
|
|
27
|
+
- **Arquitetura:** 📄 Flat Structure
|
|
28
|
+
- **Teste:** Jest
|
|
29
|
+
- **Package Manager:** npm
|
|
30
|
+
- **Score Atual:** 72/100
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## Domínio & Contexto de Negócio
|
|
35
|
+
|
|
36
|
+
- **Domínio:** healthtech
|
|
37
|
+
- **Sub-domínio:** telemedicine
|
|
38
|
+
- **Descrição:** test-project — healthtech/telemedicine application built with TypeScript. 50 files, 5,000 lines.
|
|
39
|
+
- **Confiança na Inferência:** 33%
|
|
40
|
+
|
|
41
|
+
### Entidades de Negócio Detectadas
|
|
42
|
+
|
|
43
|
+
- **User.Entity** (entity) — de `src/entity/user.entity.ts`
|
|
44
|
+
- Campos:
|
|
45
|
+
- Relacionamentos: nenhum
|
|
46
|
+
- **User** (entity) — de `src/entity/user.entity.ts`
|
|
47
|
+
- Campos:
|
|
48
|
+
- Relacionamentos: nenhum
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
## Princípios (SOLID + Clean Architecture)
|
|
53
|
+
|
|
54
|
+
1. **S** — Single Responsibility: Uma classe, uma responsabilidade
|
|
55
|
+
2. **O** — Open/Closed: Aberto para extensão, fechado para modificação
|
|
56
|
+
3. **L** — Liskov Substitution: Subtipos devem ser substituíveis
|
|
57
|
+
4. **I** — Interface Segregation: Interfaces específicas > interfaces gordas
|
|
58
|
+
5. **D** — Dependency Inversion: Depender de abstrações, não de concretos
|
|
59
|
+
|
|
60
|
+
## Módulos do Projeto
|
|
61
|
+
|
|
62
|
+
### entity
|
|
63
|
+
- **Path:** `src/entity`
|
|
64
|
+
- **Arquivos:** 1
|
|
65
|
+
- **Descrição:** entities: User
|
|
66
|
+
- **Testes:** ❌ Não
|
|
67
|
+
- **Entidades:** User
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
## Estrutura do Projeto (Detectada)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
src/
|
|
76
|
+
├── controllers/ → Endpoints / HTTP handlers
|
|
77
|
+
├── services/ → Lógica de negócio
|
|
78
|
+
├── models/ → Modelos de dados
|
|
79
|
+
├── repositories/ → Acesso a dados
|
|
80
|
+
├── dto/ → Data Transfer Objects
|
|
81
|
+
├── middleware/ → Middleware
|
|
82
|
+
├── config/ → Configuração
|
|
83
|
+
└── tests/ → Testes (.ts)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Endpoints Mapeados
|
|
87
|
+
|
|
88
|
+
- `GET` `/app.` — list_app. (Auth: não, Validação: não)
|
|
89
|
+
- `GET` `/app./{id}` — get_app. (Auth: não, Validação: não)
|
|
90
|
+
- `POST` `/app.` — create_app. (Auth: não, Validação: não)
|
|
91
|
+
- `PUT` `/app./{id}` — update_app. (Auth: não, Validação: não)
|
|
92
|
+
- `DELETE` `/app./{id}` — delete_app. (Auth: não, Validação: não)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
## Regras de Implementação
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
□ Controller NUNCA contém lógica de negócio (apenas routing)
|
|
99
|
+
□ Service NUNCA acessa Request/Response diretamente
|
|
100
|
+
□ Entity NUNCA é exposta diretamente na API (usar DTO)
|
|
101
|
+
□ Validação de input no DTO / Guard / Pipe
|
|
102
|
+
□ Erros com mensagens claras e códigos HTTP corretos
|
|
103
|
+
□ Logging estruturado (não console.log)
|
|
104
|
+
□ Testes unitários para cada service method
|
|
105
|
+
□ Testes de integração para cada endpoint
|
|
106
|
+
□ Cobertura ≥ 80%
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Após Implementação Backend
|
|
110
|
+
|
|
111
|
+
> **OBRIGATÓRIO: Gerar Documento de Integração antes de qualquer frontend/app.**
|
|
112
|
+
|
|
113
|
+
O documento deve conter:
|
|
114
|
+
- Todos os endpoints criados/modificados
|
|
115
|
+
- Payloads de request e response (com exemplos)
|
|
116
|
+
- Códigos de erro e mensagens
|
|
117
|
+
- Regras de negócio aplicadas
|
|
118
|
+
- Headers necessários (auth, pagination, etc.)
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
## 🔗 Cross-References (Agentes Relacionados)
|
|
122
|
+
|
|
123
|
+
| Agente | Quando Consultar |
|
|
124
|
+
|--------|-----------------|
|
|
125
|
+
| **Database Engineer** | Criar/alterar entities, migrations, queries |
|
|
126
|
+
| **Security Auditor** | Novo endpoint, auth flow, dados sensíveis |
|
|
127
|
+
| **QA Test Engineer** | Após implementação — plano de testes |
|
|
128
|
+
| **Tech Debt Controller** | Antes de criar novo módulo — verificar débito |
|
|
129
|
+
|
|
130
|
+
> **Regra:** Nunca implementar isoladamente. Sempre verificar se o agente relacionado precisa ser consultado.
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
**Gerado por Architect v3.1**
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
antigravity:
|
|
3
|
+
trigger: 'on_demand'
|
|
4
|
+
description: 'Code Review Checklist — Pontos obrigatórios de revisão'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 🔍 CODE REVIEW CHECKLIST — test-project
|
|
8
|
+
|
|
9
|
+
🟢 Projeto Pequeno (< 50 arquivos)
|
|
10
|
+
|
|
11
|
+
> **Todo PR deve ser verificado contra este checklist.**
|
|
12
|
+
|
|
13
|
+
## Obrigatório
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
□ Código compila sem erros
|
|
17
|
+
□ Todos os testes passam
|
|
18
|
+
□ Cobertura ≥ 80%
|
|
19
|
+
□ Lint sem errors
|
|
20
|
+
□ Nenhum secret hardcoded
|
|
21
|
+
□ Score não regrediu
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Funcional
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
□ Atende aos critérios de aceite
|
|
28
|
+
□ Edge cases tratados
|
|
29
|
+
□ Erros tratados adequadamente
|
|
30
|
+
□ Não quebra features existentes
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Qualidade
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
□ Código legível sem comentários explicativos
|
|
37
|
+
□ Naming descritivo e consistente
|
|
38
|
+
□ Sem duplicação (DRY)
|
|
39
|
+
□ Sem magic numbers
|
|
40
|
+
□ Sem any / type: ignore injustificado
|
|
41
|
+
□ Arquivos < 500 linhas
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Segurança
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
□ Inputs validados
|
|
48
|
+
□ Queries parametrizadas
|
|
49
|
+
□ Auth/authz verificados
|
|
50
|
+
□ Dados sensíveis protegidos
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Checklist Específico para TypeScript
|
|
54
|
+
|
|
55
|
+
□ `strict: true` em tsconfig (sem any sem justificativa)?
|
|
56
|
+
□ Imports circulares?
|
|
57
|
+
□ Async/await tratado (sem unhandled promises)?
|
|
58
|
+
□ Memory leaks (EventListeners desinscritos)?
|
|
59
|
+
□ Console.log/debugger removidos?
|
|
60
|
+
|
|
61
|
+
## Itens de Revisão Específicos do Domínio: healthtech
|
|
62
|
+
|
|
63
|
+
□ LGPD compliance verificado (consentimento, retenção)?
|
|
64
|
+
□ Dados sensíveis criptografados em repouso?
|
|
65
|
+
□ Acesso auditado e logado?
|
|
66
|
+
□ Anonimização implementada corretamente?
|
|
67
|
+
□ 2FA em operações sensíveis?
|
|
68
|
+
|
|
69
|
+
## Itens de Revisão de Integração
|
|
70
|
+
|
|
71
|
+
□ Endpoint trata todos os status codes esperados?
|
|
72
|
+
□ Validação do payload de entrada?
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
□ Resposta segue o contrato documentado?
|
|
76
|
+
□ Erros retornam mensagens claras?
|
|
77
|
+
□ Rate limiting aplicado?
|
|
78
|
+
□ Logging estruturado?
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## 🔗 Cross-References (Agentes Relacionados)
|
|
83
|
+
|
|
84
|
+
| Agente | Quando Consultar |
|
|
85
|
+
|--------|-----------------|
|
|
86
|
+
| **Security Auditor** | Review de endpoints, auth, dados sensíveis |
|
|
87
|
+
| **QA Test Engineer** | Verificar cobertura e qualidade dos testes |
|
|
88
|
+
| **Tech Debt Controller** | Avaliar impacto em débito técnico |
|
|
89
|
+
|
|
90
|
+
> **Regra:** Nunca implementar isoladamente. Sempre verificar se o agente relacionado precisa ser consultado.
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
**Gerado por Architect v3.1**
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
---
|
|
2
|
+
antigravity:
|
|
3
|
+
trigger: 'always_on'
|
|
4
|
+
globs: ['**/*']
|
|
5
|
+
description: 'PREFLIGHT — Checklist obrigatório pré-ação para test-project'
|
|
6
|
+
priority: CRITICAL
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ✈️ PREFLIGHT — Checklist Pré-Ação
|
|
10
|
+
|
|
11
|
+
> **NENHUMA ação de código é permitida antes de completar este checklist.**
|
|
12
|
+
> Pular qualquer fase é violação do protocolo.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## FASE 0: Preparação Mental
|
|
17
|
+
|
|
18
|
+
Antes de abrir qualquer arquivo:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
□ Li e entendi a requisição COMPLETAMENTE
|
|
22
|
+
□ Sei qual WORKFLOW estou seguindo (new-feature / fix-bug / review)
|
|
23
|
+
□ Identifiquei as CAMADAS envolvidas (Backend / Frontend / App / Database)
|
|
24
|
+
□ Tenho CLAREZA sobre o que é esperado como entrega
|
|
25
|
+
□ Se algo não está claro → PAREI e PERGUNTEI ao humano
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## FASE 1: Leitura Obrigatória
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
□ [00-general.md](../rules/00-general.md) → Regras de Ouro do projeto
|
|
34
|
+
□ [QUALITY-GATES.md](./QUALITY-GATES.md) → Métricas e blockers
|
|
35
|
+
□ LESSONS-LEARNED.md (se existir) → Erros passados
|
|
36
|
+
□ ERROR-PATTERNS.md (se existir) → Padrões de erro conhecidos
|
|
37
|
+
□ BUSINESS-RULES.md (se existir) → Regras de negócio do domínio
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
> **Objetivo:** Não repetir erros e entender o contexto antes de agir.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## FASE 2: Verificação de Ambiente
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Git: verificar branch e status
|
|
48
|
+
git branch --show-current # NUNCA em main/develop direto
|
|
49
|
+
git status # Limpo antes de começar
|
|
50
|
+
git pull origin <branch> # Sincronizado
|
|
51
|
+
|
|
52
|
+
# Deps: verificar se está tudo instalado
|
|
53
|
+
npm install
|
|
54
|
+
|
|
55
|
+
# Build: verificar se compila
|
|
56
|
+
npm run build
|
|
57
|
+
|
|
58
|
+
# Tests: verificar se passam ANTES de começar
|
|
59
|
+
npm test
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
□ Branch correta (NUNCA main/develop)
|
|
64
|
+
□ Working tree limpa
|
|
65
|
+
□ Dependências instaladas
|
|
66
|
+
□ Build passando
|
|
67
|
+
□ Testes passando ANTES da minha alteração
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## FASE 3: Verificação de Regras de Negócio
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
□ Entendo QUEM são os atores afetados
|
|
76
|
+
□ Entendo QUAL é a regra de negócio envolvida
|
|
77
|
+
□ Verifiquei se existe documentação do domínio
|
|
78
|
+
□ Se a feature envolve dinheiro/pagamento → ATENÇÃO REDOBRADA
|
|
79
|
+
□ Se a feature envolve dados pessoais → verificar LGPD/compliance
|
|
80
|
+
□ Se a feature muda um fluxo existente → verificar impacto em features dependentes
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## FASE 4: Before-Code Checklist (por Camada)
|
|
86
|
+
|
|
87
|
+
### 4A: Backend ✅
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
□ Entendo a estrutura de módulos existente
|
|
91
|
+
□ Sei onde criar/modificar controllers, services, entities
|
|
92
|
+
□ Verifiquei se já existe código similar (DRY)
|
|
93
|
+
□ DTOs e validações planejados
|
|
94
|
+
□ Tratamento de erros definido
|
|
95
|
+
□ Sei qual padrão de teste usar (unitário + integração)
|
|
96
|
+
□ Migrations planejadas (se houver alteração de banco)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 4B: Frontend ⬜ (skip se não aplicável)
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
□ MOCKUP aprovado pelo humano
|
|
103
|
+
□ Entendo o state management utilizado
|
|
104
|
+
□ Sei onde criar/modificar componentes
|
|
105
|
+
□ Verificar padrão visual (cores, fontes, espaçamentos)
|
|
106
|
+
□ Responsividade considerada
|
|
107
|
+
□ Acessibilidade básica (labels, aria, contraste)
|
|
108
|
+
□ Documento de integração do backend disponível
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 4C: Mobile (Flutter) ⬜ (skip se não aplicável)
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
□ MOCKUP aprovado pelo humano
|
|
115
|
+
□ Entendo a navegação atual do app
|
|
116
|
+
□ Sei onde criar/modificar screens e widgets
|
|
117
|
+
□ Verificar padrão visual do app
|
|
118
|
+
□ Comportamento offline considerado
|
|
119
|
+
□ Documento de integração do backend disponível
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### 4D: Database ✅
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
□ Schema atual compreendido
|
|
126
|
+
□ Migration reversível planejada
|
|
127
|
+
□ Índices necessários identificados
|
|
128
|
+
□ Impacto em queries existentes avaliado
|
|
129
|
+
□ Seed data / fixtures atualizados
|
|
130
|
+
□ Backup strategy para dados existentes
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## FASE 5: Before-Commit
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
□ Build compila sem erros
|
|
139
|
+
□ TODOS os testes passam (velhos + novos)
|
|
140
|
+
□ Cobertura ≥ 80%
|
|
141
|
+
□ Lint sem warnings
|
|
142
|
+
□ Sem console.log / print() em produção
|
|
143
|
+
□ Sem TODO / FIXME sem issue
|
|
144
|
+
□ Sem secrets hardcoded
|
|
145
|
+
□ Sem arquivos > 500 linhas sem justificativa
|
|
146
|
+
□ Commit message segue padrão (feat: / fix: / refactor: / docs:)
|
|
147
|
+
□ Branch está atualizada com base (rebase se necessário)
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## FASE 6: Before-Done
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
□ TODOS os critérios de aceite estão cobertos
|
|
156
|
+
□ Score não regrediu: architect score ./src ≥ 70/100
|
|
157
|
+
□ Documentação atualizada (se necessário)
|
|
158
|
+
□ LESSONS-LEARNED atualizado (se descobri algo novo)
|
|
159
|
+
□ PR criado com descrição completa
|
|
160
|
+
□ Code review solicitado
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## 🚩 Red Flags — PARE IMEDIATAMENTE SE:
|
|
166
|
+
|
|
167
|
+
| Red Flag | Ação |
|
|
168
|
+
|----------|------|
|
|
169
|
+
| Não entendo a requisição | PARAR → Perguntar ao humano |
|
|
170
|
+
| Código que mexo tem 0% de cobertura | PARAR → Escrever testes ANTES |
|
|
171
|
+
| Estou modificando > 10 arquivos | PARAR → Reavaliar escopo |
|
|
172
|
+
| Build quebrou após minha mudança | PARAR → Reverter → Investigar |
|
|
173
|
+
| Estou copiando/colando código | PARAR → Extrair abstração |
|
|
174
|
+
| Estou trabalhando em main/develop | PARAR → Criar branch |
|
|
175
|
+
| Não tenho mockup e a feature tem UI | PARAR → Gate 1 primeiro |
|
|
176
|
+
| Estou escrevendo código sem testes | PARAR → TDD |
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## 🔍 Template de Diagnóstico
|
|
181
|
+
|
|
182
|
+
Execute antes de qualquer implementação:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
# Estrutura do projeto
|
|
186
|
+
find . -type f -name "*.ts" | head -30
|
|
187
|
+
|
|
188
|
+
# Dependências do módulo que vou modificar
|
|
189
|
+
grep -r "import.*from" --include="*.ts" [modulo]/ | head -20
|
|
190
|
+
|
|
191
|
+
# Testes existentes
|
|
192
|
+
find . -name "*.test.*" -o -name "*.spec.*" -o -name "*_test.*" | head -20
|
|
193
|
+
|
|
194
|
+
# Score atual
|
|
195
|
+
npx @girardelli/architect score .
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
**Gerado por Architect v3.1 · Score: 72/100 · 2026-03-25**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Gates
|