jarvis-ai-framework 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +416 -0
- package/LICENSE +21 -0
- package/README.md +190 -0
- package/agents/AGENTS.md +234 -0
- package/agents/README.md +309 -0
- package/agents/engineering/data/eng.data-engineer.agent.md +309 -0
- package/agents/engineering/eng.agent.md +303 -0
- package/agents/engineering/eng.bug-hunter.md +386 -0
- package/agents/engineering/eng.cybersecurity.agent.md +503 -0
- package/agents/engineering/eng.dev-code-reviewer.md +148 -0
- package/agents/engineering/eng.docs-writer.md +152 -0
- package/agents/engineering/eng.frontend.agent.md +117 -0
- package/agents/engineering/eng.rpa.agent.md +215 -0
- package/agents/engineering/eng.tech-analyst.agent.md +102 -0
- package/agents/engineering/eng.ux-designer.agent.md +193 -0
- package/agents/engineering/qa/eng.qa.cypress-specialist.md +109 -0
- package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +85 -0
- package/agents/engineering/qa/eng.qa.quality-strategist.md +111 -0
- package/agents/engineering/qa/eng.qa.test-architect.md +400 -0
- package/agents/engineering/qa/eng.qa.test-planner.md +477 -0
- package/agents/engineering/qa/eng.qa.testing-engineer.md +339 -0
- package/agents/product/prod.pm-checker.md +52 -0
- package/bin/commands/docs-publish.js +184 -0
- package/bin/commands/docs-sync.js +139 -0
- package/bin/commands/info.js +87 -0
- package/bin/commands/init.js +237 -0
- package/bin/commands/install-rtk.js +90 -0
- package/bin/commands/list.js +48 -0
- package/bin/commands/qa-signoff.js +112 -0
- package/bin/commands/whoami.js +43 -0
- package/bin/jarvis.js +159 -0
- package/bin/lib/auth/session.js +56 -0
- package/bin/lib/config/constants.js +123 -0
- package/bin/lib/config/ide-config.js +233 -0
- package/bin/lib/core/scanner.js +124 -0
- package/bin/lib/core/sync-engine.js +551 -0
- package/bin/lib/docs/fetch-file.sh +41 -0
- package/bin/lib/docs/publish-file.sh +284 -0
- package/bin/lib/docs/validate-frontmatter.js +157 -0
- package/bin/lib/env-loader.js +198 -0
- package/bin/lib/tasks/comment.js +131 -0
- package/bin/lib/utils/git-parser.js +145 -0
- package/bin/lib/utils/logger.js +104 -0
- package/bin/lib/utils/npmrc-parser.js +106 -0
- package/bin/lib/utils/paths.js +55 -0
- package/bin/lib/utils/ui.js +59 -0
- package/bin/lib/vcs/api.js +312 -0
- package/bin/lib/vcs/create-issue.js +43 -0
- package/bin/lib/vcs/create-merge.js +43 -0
- package/bin/lib/vcs/fetch-raw.js +30 -0
- package/bin/postinstall.js +41 -0
- package/members.md +25 -0
- package/package.json +55 -0
- package/rules/AGENTS.md +205 -0
- package/rules/engineering/data/data-rules.md +200 -0
- package/rules/engineering/eng-rules.md +243 -0
- package/rules/engineering/eng-security-rules.md +186 -0
- package/rules/engineering/eng.breakdown-subtasks-rules.md +585 -0
- package/rules/engineering/eng.bump-rules.md +27 -0
- package/rules/engineering/eng.docs-scraping-rules.md +64 -0
- package/rules/engineering/eng.downstream-flow-rules.md +297 -0
- package/rules/engineering/eng.integrations-rules.md +73 -0
- package/rules/engineering/eng.plan-rules.md +333 -0
- package/rules/engineering/eng.pr-rules.md +359 -0
- package/rules/engineering/eng.pre-pr-rules.md +103 -0
- package/rules/engineering/eng.start-rules.md +246 -0
- package/rules/engineering/eng.tech-spec-rules.md +968 -0
- package/rules/engineering/eng.work-rules.md +312 -0
- package/rules/engineering/frontend/eng.frontend-rules.md +147 -0
- package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +259 -0
- package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +137 -0
- package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +181 -0
- package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +120 -0
- package/rules/engineering/rpa/eng.rpa-rules.md +230 -0
- package/rules/product/README.md +24 -0
- package/rules/product/prod-rules.md +151 -0
- package/rules/rtk-rules.md +68 -0
- package/skills/AGENTS.md +290 -0
- package/skills/SKILLS-ROADMAP.md +333 -0
- package/skills/churn-audit/SKILL.md +385 -0
- package/skills/context-detect/SKILL.md +399 -0
- package/skills/context-detect/assets/context-profile-template.md +127 -0
- package/skills/docs-central/README.md +310 -0
- package/skills/docs-central/SKILL.md +423 -0
- package/skills/docs-index/SKILL.md +377 -0
- package/skills/eng-ai-engineer/SKILL.md +296 -0
- package/skills/eng-arch-c4/SKILL.md +358 -0
- package/skills/eng-arch-c4/assets/example-code.md +189 -0
- package/skills/eng-arch-c4/assets/example-component.md +105 -0
- package/skills/eng-arch-c4/assets/example-container.md +104 -0
- package/skills/eng-arch-c4/assets/example-context.md +81 -0
- package/skills/eng-backend/SKILL.md +776 -0
- package/skills/eng-browser-extension-builder/SKILL.md +385 -0
- package/skills/eng-cybersecurity/SKILL.md +645 -0
- package/skills/eng-data-bi/SKILL.md +199 -0
- package/skills/eng-data-debug/SKILL.md +307 -0
- package/skills/eng-data-engineer/SKILL.md +256 -0
- package/skills/eng-data-onboard/SKILL.md +310 -0
- package/skills/eng-data-orchestrator/SKILL.md +426 -0
- package/skills/eng-design-system/SKILL.md +619 -0
- package/skills/eng-docs-write/SKILL.md +312 -0
- package/skills/eng-frontend/SKILL.md +913 -0
- package/skills/eng-jira-comment/SKILL.md +17 -0
- package/skills/eng-microfrontend/SKILL.md +602 -0
- package/skills/eng-ms-trace/SKILL.md +469 -0
- package/skills/eng-nestjs/SKILL.md +791 -0
- package/skills/eng-performance-engineer/SKILL.md +312 -0
- package/skills/eng-pr/SKILL.md +339 -0
- package/skills/eng-qa-a11y-audit/SKILL.md +269 -0
- package/skills/eng-qa-bug-report/SKILL.md +1088 -0
- package/skills/eng-qa-bug-report/TASK_MANAGERS.md +138 -0
- package/skills/eng-qa-cypress-e2e/SKILL.md +177 -0
- package/skills/eng-qa-dev-guide/SKILL.md +164 -0
- package/skills/eng-qa-e2e/SKILL.md +400 -0
- package/skills/eng-qa-e2e-spec-writer/SKILL.md +322 -0
- package/skills/eng-qa-exploratory/SKILL.md +188 -0
- package/skills/eng-qa-gate/SKILL.md +370 -0
- package/skills/eng-qa-gate/assets/checklist-validacao.md +291 -0
- package/skills/eng-qa-graphql-contract/SKILL.md +256 -0
- package/skills/eng-qa-quality-report/SKILL.md +412 -0
- package/skills/eng-qa-test-plan/SKILL.md +466 -0
- package/skills/eng-qa-test-plan/assets/test-coverage-template.md +92 -0
- package/skills/eng-qa-test-plan/assets/test-patterns.md +178 -0
- package/skills/eng-qa-testsprite/SKILL.md +325 -0
- package/skills/eng-qa-testsprite/references/testsprite-mcp.md +224 -0
- package/skills/eng-qa-unit-test/SKILL.md +471 -0
- package/skills/eng-rabbitmq/SKILL.md +661 -0
- package/skills/eng-scraper/SKILL.md +683 -0
- package/skills/eng-scraper-robot-builder/SKILL.md +370 -0
- package/skills/eng-security-patch/SKILL.md +378 -0
- package/skills/eng-security-triage/SKILL.md +266 -0
- package/skills/eng-task-comment/SKILL.md +60 -0
- package/skills/eng-tech-analyst/SKILL.md +529 -0
- package/skills/eng-threat-model/SKILL.md +161 -0
- package/skills/init-jarvis/SKILL.md +1304 -0
- package/skills/init-jarvis/assets/mcp-configs.md +389 -0
- package/skills/init-jarvis/assets/onboarding-checklist.md +104 -0
- package/skills/init-jarvis/assets/setup-guide.md +360 -0
- package/skills/lovable-prompt-generator/SKILL.md +304 -0
- package/skills/prod-roadmap-report/README.md +303 -0
- package/skills/prod-roadmap-report/SKILL.md +198 -0
- package/skills/prod-roadmap-report/commands/status.compiled.single.team.md +23 -0
- package/skills/prod-roadmap-report/commands/status.list.projects.md +17 -0
- package/skills/prod-roadmap-report/commands/status.memory.md +192 -0
- package/skills/prod-roadmap-report/commands/status.roadmap.preview.md +94 -0
- package/skills/prod-roadmap-report/references/detailed-guide.md +236 -0
- package/skills/prod-roadmap-report/rules/detailed-guide.md +237 -0
- package/skills/prod-roadmap-report/rules/status-report-rules.md +44 -0
- package/skills/prod-roadmap-report/templates/template-multiple-teams-compiled-status.md +53 -0
- package/skills/prod-roadmap-report/templates/template-projects-list.md +23 -0
- package/skills/prod-roadmap-report/templates/template-single-team-compiled-status.md +60 -0
- package/skills/prod-roadmap-report/templates/template-single-team-status.md +49 -0
- package/skills/prod-specs/SKILL.md +108 -0
- package/skills/prod-specs/references/prod.spec.clarify.md +176 -0
- package/skills/prod-specs/references/prod.spec.epic.md +107 -0
- package/skills/prod-specs/references/prod.spec.frd.md +135 -0
- package/skills/prod-specs/references/prod.spec.issue.md +145 -0
- package/skills/prod-specs/references/prod.spec.prd.md +118 -0
- package/skills/prod-specs/rules/prod-spec-rules.md +186 -0
- package/skills/prod-specs/templates/prod-breakdown-template.md +136 -0
- package/skills/prod-specs/templates/prod-epic-template.md +76 -0
- package/skills/prod-specs/templates/prod-frd-template.md +172 -0
- package/skills/prod-specs/templates/prod-issue-template.md +68 -0
- package/skills/prod-specs/templates/prod-prd-full-template.md +159 -0
- package/skills/prod-specs/templates/prod-prd-template.md +173 -0
- package/skills/prod-specs-update/SKILL.md +272 -0
- package/skills/report-issue/SKILL.md +156 -0
- package/taxonomy.md +270 -0
- package/templates/AGENTS.md +189 -0
- package/templates/CDD aplicado a Prompts.md +182 -0
- package/templates/ENV-template.md +187 -0
- package/templates/engineering/AGENTS-template.md +71 -0
- package/templates/engineering/ARD-template.md +193 -0
- package/templates/engineering/CONTACTS-template.md +135 -0
- package/templates/engineering/PR-template.md +40 -0
- package/templates/engineering/RFC-Playbook.md +325 -0
- package/templates/engineering/RFC-template.md +199 -0
- package/templates/engineering/architecture-template.md +277 -0
- package/templates/engineering/breakdown-subtasks-template.md +582 -0
- package/templates/engineering/c4-model-template.md +516 -0
- package/templates/engineering/data-contract-template.md +135 -0
- package/templates/engineering/data-pipeline-template.md +163 -0
- package/templates/engineering/plan-template.md +255 -0
- package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +311 -0
- package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +249 -0
- package/templates/engineering/qa/qa.cypress-test-template.md +172 -0
- package/templates/engineering/qa/qa.exploratory-session-template.md +148 -0
- package/templates/engineering/qa/qa.quality-report-template.md +130 -0
- package/templates/engineering/qa/qa.release-signoff-template.md +54 -0
- package/templates/engineering/qa/qa.sprint-plan-template.md +49 -0
- package/templates/engineering/swagger-template.md +145 -0
- package/templates/engineering/tech-spec-template.md +497 -0
- package/templates/engineering/work-progress-template.md +155 -0
- package/workflows/AGENTS.md +240 -0
- package/workflows/README.md +160 -0
- package/workflows/all-tools.md +11 -0
- package/workflows/engineering/data/data.contract.md +202 -0
- package/workflows/engineering/data/data.new-pipeline.md +234 -0
- package/workflows/engineering/eng.breakdown-subtasks.md +420 -0
- package/workflows/engineering/eng.bug-audit.md +591 -0
- package/workflows/engineering/eng.build-tech-spec.md +1116 -0
- package/workflows/engineering/eng.create-ard-from-code.md +259 -0
- package/workflows/engineering/eng.create-ard.md +382 -0
- package/workflows/engineering/eng.create-rfc.md +245 -0
- package/workflows/engineering/eng.debug.md +479 -0
- package/workflows/engineering/eng.docs.md +40 -0
- package/workflows/engineering/eng.light-arch.md +84 -0
- package/workflows/engineering/eng.plan.md +213 -0
- package/workflows/engineering/eng.pr.md +466 -0
- package/workflows/engineering/eng.pre-pr.md +167 -0
- package/workflows/engineering/eng.review.md +185 -0
- package/workflows/engineering/eng.rpa.robot.md +342 -0
- package/workflows/engineering/eng.security-audit.md +312 -0
- package/workflows/engineering/eng.security-incident.md +275 -0
- package/workflows/engineering/eng.security-pipeline.md +210 -0
- package/workflows/engineering/eng.security-review.md +235 -0
- package/workflows/engineering/eng.start.md +494 -0
- package/workflows/engineering/eng.work.md +558 -0
- package/workflows/engineering/frontend/eng.frontend-component.md +190 -0
- package/workflows/engineering/frontend/eng.frontend-perf-audit.md +375 -0
- package/workflows/engineering/frontend/eng.frontend-review.md +185 -0
- package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +51 -0
- package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +51 -0
- package/workflows/engineering/qa/eng.qa-exploratory-session.md +60 -0
- package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +202 -0
- package/workflows/engineering/qa/eng.qa-quality-report.md +83 -0
- package/workflows/engineering/qa/eng.qa-refinement-entry.md +83 -0
- package/workflows/engineering/qa/eng.qa-release-signoff.md +170 -0
- package/workflows/engineering/qa/eng.qa-sprint-planning.md +100 -0
- package/workflows/engineering/ta/eng.ta.atendimento.md +93 -0
- package/workflows/product/prod.roadmap.preview.md +110 -0
- package/workflows/product/prod.spec.breakdown.md +163 -0
- package/workflows/product/prod.spec.clarify.md +178 -0
- package/workflows/product/prod.spec.epic.md +154 -0
- package/workflows/product/prod.spec.frd.md +96 -0
- package/workflows/product/prod.spec.issue.md +145 -0
- package/workflows/product/prod.spec.md +60 -0
- package/workflows/product/prod.spec.prd.md +100 -0
- package/workflows/taxonomy.md +92 -0
- package/workflows/warm-up.md +574 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
---
|
|
2
|
+
trigger: always_on
|
|
3
|
+
env_file: "@/ENV.md"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
> **Applies to:** HUB: all | POSITION: all | AREA: ENGINEERING | SQUAD: all
|
|
7
|
+
|
|
8
|
+
# Regras de Seguranca para Engenharia
|
|
9
|
+
|
|
10
|
+
Regras de seguranca aplicaveis a todo o fluxo de engenharia — do planejamento ao merge.
|
|
11
|
+
Toda implementacao deve seguir estas regras por padrao, sem necessidade de invocar o skill `eng-cybersecurity` explicitamente.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Fase: eng.start (Arquitetura)
|
|
16
|
+
|
|
17
|
+
Ao definir a arquitetura de uma feature, o agente DEVE incluir no `architecture.md`:
|
|
18
|
+
|
|
19
|
+
1. **Dados sensiveis** — listar PII, dados financeiros e credenciais envolvidas na feature
|
|
20
|
+
2. **Superficie de ataque** — mapear endpoints publicos vs. autenticados
|
|
21
|
+
3. **Modelo de auth** — definir como autenticacao e autorizacao se aplicam (JWT, session, OAuth, RBAC)
|
|
22
|
+
4. **Integracoes externas** — listar e validar que usam TLS; documentar retry e fallback
|
|
23
|
+
5. **Estrategia de sanitizacao** — se a feature recebe inputs de usuario, documentar como serao validados
|
|
24
|
+
|
|
25
|
+
> Se a feature nao envolve nenhum destes pontos, registrar explicitamente: "Sem superficie de seguranca identificada".
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Fase: eng.work (Implementacao)
|
|
30
|
+
|
|
31
|
+
O agente DEVE aplicar as seguintes regras em todo codigo gerado ou revisado:
|
|
32
|
+
|
|
33
|
+
### Inputs — validar e sanitizar SEMPRE
|
|
34
|
+
|
|
35
|
+
- Toda entrada externa (body, query params, headers, uploads) validada com schema (Zod, Joi, class-validator)
|
|
36
|
+
- Queries SEMPRE parametrizadas — nunca concatenar variaveis em SQL, NoSQL ou command
|
|
37
|
+
```typescript
|
|
38
|
+
// ❌ PROIBIDO
|
|
39
|
+
db.$queryRawUnsafe(`SELECT * FROM users WHERE email = '${input}'`)
|
|
40
|
+
exec(`ping ${host}`)
|
|
41
|
+
|
|
42
|
+
// ✅ OBRIGATORIO
|
|
43
|
+
db.$queryRaw`SELECT * FROM users WHERE email = ${input}`
|
|
44
|
+
execFile('ping', ['-c', '1', validatedHost])
|
|
45
|
+
```
|
|
46
|
+
- HTML e rich text sanitizados com allowlist (DOMPurify ou equivalente)
|
|
47
|
+
- Uploads: validar tipo MIME real (nao apenas extensao), tamanho maximo e nome de arquivo
|
|
48
|
+
- URLs dinamicas: validar contra allowlist de dominios permitidos (prevenir SSRF)
|
|
49
|
+
|
|
50
|
+
### Auth — proteger por padrao
|
|
51
|
+
|
|
52
|
+
- Endpoints protegidos com guard de autenticacao por padrao
|
|
53
|
+
- Endpoints publicos devem ser marcados explicitamente (`@Public()`, `@IsPublic()` ou equivalente)
|
|
54
|
+
- Autorizacao verificada apos autenticacao — nao basta estar logado, verificar permissao (RBAC, roles, ownership)
|
|
55
|
+
- Prevenir IDOR: usuario so acessa seus proprios recursos, a menos que tenha permissao explicita
|
|
56
|
+
- Senhas hasheadas com bcrypt (cost >= 12) ou argon2 — nunca MD5, SHA1 ou SHA256 puro
|
|
57
|
+
- Tokens JWT com expiracao curta (access: <= 15min), refresh com rotacao
|
|
58
|
+
|
|
59
|
+
### Secrets — nunca no codigo
|
|
60
|
+
|
|
61
|
+
- Nunca hardcodar tokens, senhas, API keys, connection strings ou credenciais no codigo
|
|
62
|
+
- Usar variaveis de ambiente (`process.env`, `os.environ`, etc.)
|
|
63
|
+
- Arquivo `.env` deve estar no `.gitignore` — verificar antes de commitar
|
|
64
|
+
- Se um secret for detectado no diff, o agente DEVE alertar o usuario e bloquear o commit
|
|
65
|
+
|
|
66
|
+
### Output — nao vazar informacao
|
|
67
|
+
|
|
68
|
+
- Nunca expor stack traces, queries ou detalhes internos em respostas de API em producao
|
|
69
|
+
- Erros retornam apenas `code` + `message` generica (sem nome de tabela, coluna ou path interno)
|
|
70
|
+
- Logs nunca contem senhas, tokens, PII ou dados de cartao
|
|
71
|
+
```typescript
|
|
72
|
+
// ❌ PROIBIDO
|
|
73
|
+
logger.info({ password, token, cpf }, 'User login')
|
|
74
|
+
|
|
75
|
+
// ✅ CORRETO
|
|
76
|
+
logger.info({ userId, action: 'auth.login.success' }, 'User login')
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Headers e Configs — seguranca ativa
|
|
80
|
+
|
|
81
|
+
- CORS restritivo: origins especificas, nunca `origin: '*'` em producao
|
|
82
|
+
- Headers de seguranca configurados: CSP, HSTS, X-Frame-Options, X-Content-Type-Options
|
|
83
|
+
- Cookies de sessao: `httpOnly: true`, `secure: true`, `sameSite: 'strict'`
|
|
84
|
+
- Debug mode desabilitado em producao
|
|
85
|
+
|
|
86
|
+
### Dependencias — supply chain
|
|
87
|
+
|
|
88
|
+
- Lockfile (`package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`) SEMPRE commitado
|
|
89
|
+
- Ao adicionar dependencia nova: verificar manutencao ativa, downloads e issues conhecidas
|
|
90
|
+
- `npm audit` (ou equivalente) nao deve ter vulnerabilidades HIGH ou CRITICAL antes de abrir PR
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Fase: eng.pre-pr (Validacao)
|
|
95
|
+
|
|
96
|
+
O agente DEVE incluir no checklist de pre-PR as seguintes verificacoes de seguranca:
|
|
97
|
+
|
|
98
|
+
- [ ] **Secrets scan**: nenhum token, senha ou API key no diff
|
|
99
|
+
- [ ] **Dependencias**: `npm audit` sem vulnerabilidades HIGH/CRITICAL
|
|
100
|
+
- [ ] **Lockfile**: commitado e atualizado
|
|
101
|
+
- [ ] **Inputs**: todo endpoint novo ou alterado valida inputs com schema
|
|
102
|
+
- [ ] **Auth guard**: todo endpoint novo tem guard (ou `@Public()` explicito com justificativa)
|
|
103
|
+
- [ ] **Outputs**: erros nao vazam detalhes internos
|
|
104
|
+
|
|
105
|
+
Se o PR toca em areas sensiveis (auth, sessions, RBAC, CORS, CSP, permissoes), o agente DEVE:
|
|
106
|
+
1. Adicionar label `security` ao PR
|
|
107
|
+
2. Recomendar ao usuario executar `/eng.security-review` antes do merge
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Fase: eng.pr (Merge)
|
|
112
|
+
|
|
113
|
+
- PRs com label `security` devem ter review de seguranca aprovado (manual ou via `/eng.security-review`)
|
|
114
|
+
- Nunca aprovar PR com secret detectado no diff — sem excecoes
|
|
115
|
+
- Se o PR adiciona endpoint publico, documentar justificativa no description do PR
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Fronteira Read-Only (Analise de Seguranca)
|
|
120
|
+
|
|
121
|
+
Os skills de seguranca (`eng-threat-model`, `eng.security-audit`, `eng-security-triage`) operam em **modo estatico apenas**:
|
|
122
|
+
|
|
123
|
+
- Leem codigo-fonte, historico git e relatorios fornecidos pelo usuario
|
|
124
|
+
- **Nunca** executam, buildam, fuzzam ou modificam o codigo-alvo
|
|
125
|
+
- **Nunca** fazem requests de rede a infraestrutura do alvo
|
|
126
|
+
- Se o usuario pedir para validar uma ameaca por execucao: declinar e orientar para pipeline de execucao dedicado
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Calibracao CDD por Risco
|
|
131
|
+
|
|
132
|
+
Usar `context-detect` para calibrar a profundidade da analise de seguranca:
|
|
133
|
+
|
|
134
|
+
| Nivel de risco | Criterio | Estrategia | Tokens (estimado) |
|
|
135
|
+
|---|---|---|---|
|
|
136
|
+
| **Baixo** — PR comum | Logica de negocio sem superficie sensivel | Single-pass, sem fan-out | ~15k (main thread) |
|
|
137
|
+
| **Medio** — PR sensivel | Toca auth, sessions, RBAC, CORS, CSP, PII, fluxo financeiro, criptografia | Fan-out por area + single-vote | ~80k (subagentes isolados) |
|
|
138
|
+
| **Alto** — Audit completo | Usuario invoca `/eng.security-audit` explicitamente | Fan-out + multi-voto (3 votos por achado) | ~200k-1M (subagentes isolados) |
|
|
139
|
+
|
|
140
|
+
O peso do token fica em subagentes isolados — janela da sessao principal nao lota.
|
|
141
|
+
PR comum sem risco identificado = zero token extra (so as rules always_on).
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Escalacao por POSITION
|
|
146
|
+
|
|
147
|
+
As regras acima se aplicam a TODOS os engenheiros. A responsabilidade escala com o cargo:
|
|
148
|
+
|
|
149
|
+
| POSITION | Responsabilidade adicional |
|
|
150
|
+
|----------|---------------------------|
|
|
151
|
+
| JUNIOR, PLENO | Seguir as regras. Em duvida de seguranca, consultar senior/TL — nao bloqueia a entrega se o risco for registrado |
|
|
152
|
+
| SENIOR, SPECIALIST | Seguir + revisar seguranca de PRs do squad quando solicitado |
|
|
153
|
+
| TECH LEAD, HEAD | Seguir + garantir que `/eng.security-review` foi executado em PRs com label `security`. Decidir se escala incidente |
|
|
154
|
+
| CTO | Seguir + visao de compliance (LGPD/GDPR) e risco organizacional. Aprovar excecoes de seguranca |
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Quando escalar para o agente SENTINEL
|
|
159
|
+
|
|
160
|
+
O agente de engenharia (ATHENA) deve recomendar o uso do agente SENTINEL (`eng.cybersecurity.agent.md`) quando:
|
|
161
|
+
|
|
162
|
+
- Vulnerabilidade conhecida (CVE) afeta uma dependencia do projeto
|
|
163
|
+
- Auditoria de seguranca completa e solicitada
|
|
164
|
+
- Incidente de seguranca em producao
|
|
165
|
+
- Feature envolve fluxo financeiro, PII ou auth complexa (OAuth, MFA)
|
|
166
|
+
- Duvida sobre impacto de seguranca que excede o escopo das regras acima
|
|
167
|
+
|
|
168
|
+
> O skill `/eng-cybersecurity` pode ser invocado diretamente para consulta rapida sem ativar o agente completo.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Nunca
|
|
173
|
+
|
|
174
|
+
- Desabilitar verificacao de certificado TLS (`rejectUnauthorized: false`) em producao
|
|
175
|
+
- Usar `eval()`, `Function()` ou `child_process.exec()` com input de usuario
|
|
176
|
+
- Armazenar senhas em texto plano ou com hash fraco (MD5, SHA1)
|
|
177
|
+
- Confiar em validacao apenas no frontend — o backend SEMPRE valida
|
|
178
|
+
- Pular secrets scan no pre-PR "porque e so um refactor"
|
|
179
|
+
- Aprovar PR com `npm audit` HIGH/CRITICAL sem justificativa documentada
|
|
180
|
+
|
|
181
|
+
## Sempre
|
|
182
|
+
|
|
183
|
+
- Defense in depth: nunca confiar em uma unica camada de protecao
|
|
184
|
+
- Fail secure: em caso de erro, negar acesso (nao permitir)
|
|
185
|
+
- Least privilege: dar apenas as permissoes necessarias
|
|
186
|
+
- Registrar eventos de seguranca nos logs (auth success/failure, access denied, config changes)
|