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,161 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eng-threat-model
|
|
3
|
+
description: >-
|
|
4
|
+
Produz THREAT_MODEL.md para o projeto corrente. Três modos: bootstrap (deriva o modelo
|
|
5
|
+
do código sem owner), interview (walk com o owner do sistema), bootstrap-then-interview
|
|
6
|
+
(bootstrap primeiro, entrevista refinadora depois). Lê código, histórico git e relatórios
|
|
7
|
+
fornecidos — nunca executa, builda ou faz requests ao alvo. Invocar antes de
|
|
8
|
+
eng.security-audit e eng-security-triage.
|
|
9
|
+
argument-hint: "[bootstrap|interview|bootstrap-then-interview] [--fresh]"
|
|
10
|
+
allowed-tools:
|
|
11
|
+
- Read
|
|
12
|
+
- Glob
|
|
13
|
+
- Grep
|
|
14
|
+
- Write
|
|
15
|
+
- Bash(git log:*)
|
|
16
|
+
- Bash(find:*)
|
|
17
|
+
- Bash(ls:*)
|
|
18
|
+
- AskUserQuestion
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# eng-threat-model
|
|
22
|
+
|
|
23
|
+
Threat model é o **mapa** do sistema: o que pode dar errado, quem faria, e o que protege o sistema.
|
|
24
|
+
Scan de vulnerabilidades é o detector de metais — sem o mapa, o detector varre o lugar errado.
|
|
25
|
+
|
|
26
|
+
**Litmus test:** Se corrigir uma linha de código faz uma entrada desaparecer do modelo, era vulnerabilidade, não ameaça.
|
|
27
|
+
Uma ameaça ("attacker achieves RCE via untrusted input parsing") sobrevive a qualquer patch individual.
|
|
28
|
+
Uma vulnerabilidade ("buffer overflow em `parser.js:82`") desaparece quando corrigida. Este skill produz **ameaças** — vulnerabilidades aparecem apenas como `evidence` que eleva o score de likelihood.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Step 0 — Fronteira read-only (sempre executa primeiro)
|
|
33
|
+
|
|
34
|
+
Este skill realiza **análise estática apenas**. Lê código-fonte, histórico git e relatórios de vulnerabilidade fornecidos pelo usuário. **Nunca** builda, executa, fuzza ou modifica o código-alvo. **Nunca** faz requests de rede à infraestrutura do alvo.
|
|
35
|
+
|
|
36
|
+
Confirme e declare na primeira resposta:
|
|
37
|
+
1. O diretório-alvo existe e é um checkout local legível.
|
|
38
|
+
2. Nenhum código do alvo será executado nesta sessão.
|
|
39
|
+
3. Se solicitado a validar ameaça por execução: declinar e orientar para pipeline de execução dedicado.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Step 1 — Roteamento de modo
|
|
44
|
+
|
|
45
|
+
Parsear `$ARGUMENTS`:
|
|
46
|
+
|
|
47
|
+
| Primeiro token | Ação |
|
|
48
|
+
|---|---|
|
|
49
|
+
| `bootstrap` | Ir para **Seção C** |
|
|
50
|
+
| `interview` | Ir para **Seção B** |
|
|
51
|
+
| `bootstrap-then-interview` | Ir para **Seção D** |
|
|
52
|
+
| vazio ou outro | Perguntar: **"Tem alguém que construiu ou conhece bem este sistema disponível para responder perguntas nesta sessão?"** — Sim + codebase disponível → recomendar `bootstrap-then-interview`. Sim sem codebase → `interview`. Não → `bootstrap`. |
|
|
53
|
+
|
|
54
|
+
`--fresh`: ignorar `THREAT_MODEL.md` existente e criar do zero.
|
|
55
|
+
Sem `--fresh`: se `THREAT_MODEL.md` existe, atualizar (adicionar/corrigir ameaças) sem sobrescrever seções válidas.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Seção A — Schema de output
|
|
60
|
+
|
|
61
|
+
Antes de escrever qualquer arquivo, reler `docs/SECURITY-ARTIFACTS-SCHEMA.md` seção 1 (THREAT_MODEL.md).
|
|
62
|
+
Em sessões longas, o schema pode ser eviccionado da janela — o re-read garante o contrato correto.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Seção B — Modo Interview
|
|
67
|
+
|
|
68
|
+
Framework de 4 perguntas. Conduzir como conversa, não como formulário.
|
|
69
|
+
|
|
70
|
+
| Q | Pergunta ao owner | Preenche schema |
|
|
71
|
+
|---|---|---|
|
|
72
|
+
| Q1 | O que estamos construindo? (o que faz, quem usa, onde roda, quais dados toca) | seções 1, 2, 3 |
|
|
73
|
+
| Q2 | O que pode dar errado? (quem atacaria, por onde entraria, o que quereria) | seção 4: id, threat, actor, surface, asset |
|
|
74
|
+
| Q3 | O que fazemos a respeito? (controles atuais, o que aceitamos como risco, o que depriorizamos) | seção 4: impact/likelihood/status/controls; seções 5 e 8 |
|
|
75
|
+
| Q4 | Fizemos um bom trabalho? (cobriu STRIDE? ranking faz sentido? o que ficou em aberto?) | seção 6 (perguntas abertas); validar cobertura |
|
|
76
|
+
|
|
77
|
+
**Durabilidade de contexto:** Interview é multi-turno. Não ler blocos grandes no início — ler seção por seção ao precisar. Para sobreviver a compactação, salvar estado em `.security/state/threat-model-interview.json` após cada Q.
|
|
78
|
+
|
|
79
|
+
**Verificação de evidências (após Q2):** Para cada ameaça mencionada pelo owner, buscar no código evidência que a instancia (função, endpoint, dependência vulnerável). Registrar como `evidence` na tabela — evidência não é a ameaça.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Seção C — Modo Bootstrap
|
|
84
|
+
|
|
85
|
+
Análise do código sem owner presente. 5 fases em sequência:
|
|
86
|
+
|
|
87
|
+
**Fase 1 — Recon** (leitura estrutural):
|
|
88
|
+
- Ler manifesto do projeto: `package.json` / `pyproject.toml` / `go.mod` / `Cargo.toml` / equivalente
|
|
89
|
+
- Listar entry points: `routes/`, `controllers/`, `handlers/`, `api/`, `views/`, `cmd/`
|
|
90
|
+
- Listar integrações externas: clientes HTTP, queries de banco, leituras de arquivo, consumidores de fila
|
|
91
|
+
- Git log recente: `git log --oneline -50` — procurar commits com "fix", "patch", "vuln", "sec", "auth", "cve"
|
|
92
|
+
|
|
93
|
+
**Fase 2 — Assets & Entry Points** (seções 2 e 3):
|
|
94
|
+
Com base no recon, listar:
|
|
95
|
+
- Assets: tudo que vale proteger (dados de usuário, credenciais, integridade do serviço, dados financeiros, segredos de negócio)
|
|
96
|
+
- Entry points: onde input não confiável entra (endpoints HTTP, uploads, mensagens de fila, args de CLI, env vars de origem externa)
|
|
97
|
+
|
|
98
|
+
**Fase 3 — Threat table draft** (seção 4):
|
|
99
|
+
Para cada entry point, formular ameaças no nível actor-wants-outcome. Cobertura mínima STRIDE:
|
|
100
|
+
- **Spoofing**: autenticação pode ser bypassada?
|
|
101
|
+
- **Tampering**: dados em trânsito ou armazenados podem ser alterados?
|
|
102
|
+
- **Repudiation**: ações críticas são logadas e não-repudiáveis?
|
|
103
|
+
- **Info Disclosure**: dados sensíveis podem ser expostos (resposta de erro, log, cache)?
|
|
104
|
+
- **Denial of Service**: input malicioso pode esgotar recursos (CPU, memória, conexões)?
|
|
105
|
+
- **Escalation of Privilege**: usuário pode obter mais permissões do que deveria (IDOR, RBAC bypass)?
|
|
106
|
+
- **Supply Chain**: dependências externas podem ser comprometidas?
|
|
107
|
+
|
|
108
|
+
**Fase 4 — Evidências** (seção 4, coluna `evidence`):
|
|
109
|
+
Para cada ameaça na tabela:
|
|
110
|
+
- Buscar padrão inseguro correspondente no código (queries sem parametrização, eval, exec com input, etc.)
|
|
111
|
+
- Buscar no git log patches relacionados a essa superfície
|
|
112
|
+
- Se dependência com CVE relevante: registrar CVE ID
|
|
113
|
+
|
|
114
|
+
Evidência move `likelihood` para cima. Controles existentes movem para baixo. Registrar o **residual** após controles.
|
|
115
|
+
|
|
116
|
+
**Fase 5 — Gap-fill e depriorizados** (seções 5 e 6):
|
|
117
|
+
- Ameaças STRIDE sem cobertura e justificavelmente fora do escopo → seção 5 com `reason`
|
|
118
|
+
- Dúvidas não resolvidas pelo código → seção 6 (perguntas abertas para owner futuro)
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Seção D — Modo Bootstrap-then-Interview
|
|
123
|
+
|
|
124
|
+
Recomendado quando owner e codebase estão disponíveis na mesma sessão.
|
|
125
|
+
|
|
126
|
+
1. Informar o owner: *"Vou ler o código primeiro (~5-10 min) e voltar com um rascunho. Refinamos juntos. Prefere assim ou começar do zero?"* Só prosseguir se aceitar — senão, ir para Seção B (interview puro).
|
|
127
|
+
2. Executar Seção C (bootstrap) completo → escrever `THREAT_MODEL.md` rascunho.
|
|
128
|
+
3. Continuar para Seção B (interview) com o rascunho como seed:
|
|
129
|
+
- Perguntas abertas da seção 6 do bootstrap viram os prompts Q1-Q4.
|
|
130
|
+
- Owner confirma, corrige e adiciona — não descreve do zero.
|
|
131
|
+
4. Sobrescrever `THREAT_MODEL.md` com o modelo refinado. Provenance: `mode: bootstrap-then-interview`.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Step 2 — Escrever output
|
|
136
|
+
|
|
137
|
+
Ler Seção A antes de escrever. Escrever `.security/outputs/THREAT_MODEL.md` conforme schema de `docs/SECURITY-ARTIFACTS-SCHEMA.md`. Criar `.security/outputs/` se não existir.
|
|
138
|
+
|
|
139
|
+
Criar `.security/state/` se não existir. Salvar `.security/state/threat-model-meta.json`:
|
|
140
|
+
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"generated_at": "<ISO-8601>",
|
|
144
|
+
"mode": "<bootstrap|interview|bootstrap-then-interview>",
|
|
145
|
+
"target": "<path>",
|
|
146
|
+
"threat_count": 0,
|
|
147
|
+
"top_threats": ["<T1: descrição>", "<T2: descrição>"]
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Step 3 — Sumário ao usuário
|
|
154
|
+
|
|
155
|
+
Após escrever o arquivo, exibir:
|
|
156
|
+
|
|
157
|
+
1. Path do `.security/outputs/THREAT_MODEL.md` gerado.
|
|
158
|
+
2. Top 5 ameaças por likelihood × impact (id, descrição em uma linha).
|
|
159
|
+
3. Para `bootstrap`: perguntas abertas da seção 6 — seed para entrevista futura ou review manual.
|
|
160
|
+
4. Para `interview`: afirmações do owner não verificadas no código — seed para revisão de código.
|
|
161
|
+
5. Próximo passo sugerido: *"Execute `/eng.security-audit` para scan de vulnerabilidades guiado pelo threat model."*
|