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,272 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prod-specs-update
|
|
3
|
+
description: >
|
|
4
|
+
Sincroniza especificações de produto (PRD/FRD) em cascata e mantém dois
|
|
5
|
+
índices atualizados: um local (projeto atual) e um global no Google Drive
|
|
6
|
+
(todos os projetos). Trigger: quando um PRD ou FRD é criado ou modificado,
|
|
7
|
+
ou quando o usuário pede para sincronizar ou indexar specs.
|
|
8
|
+
allowed-tools: Read Write Edit Grep Glob Bash MCP
|
|
9
|
+
metadata:
|
|
10
|
+
author: jarvis-team
|
|
11
|
+
version: "1.0"
|
|
12
|
+
argument-hint: "[path-do-arquivo-criado-ou-modificado]"
|
|
13
|
+
disable-model-invocation: false
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Update Specs — Sincronização de Especificações de Produto
|
|
17
|
+
|
|
18
|
+
Você é responsável por manter PRDs, FRDs e os índices de specs sempre
|
|
19
|
+
consistentes. Quando uma spec muda, você propaga em cascata e atualiza
|
|
20
|
+
dois índices: o local do projeto na pasta `docs` e o global no repositório `$CENTRAL_DOCS_REPO`.
|
|
21
|
+
|
|
22
|
+
O Central Docs é a pasta que centralizamos todas as especificações de produto. Ele serve como referência para todos os projetos e deve ser atualizada sempre que houver mudanças em qualquer spec.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## Entrada
|
|
26
|
+
|
|
27
|
+
- `$ARGUMENTS` — (Opcional) Path do arquivo criado ou modificado.
|
|
28
|
+
- Pergunte para o usuário qual o path do Centarl Docs, que é onde devemos adicionar e atualizar as especificações de produto.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Pré-requisito — Carregar ENV.md
|
|
33
|
+
|
|
34
|
+
Antes de qualquer ação, ler o `ENV.md` e extrair as variáveis necessárias:
|
|
35
|
+
```bash
|
|
36
|
+
cat ENV.md
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Se não existir um `ENV.md`, crie executando a skill `init-jarvis` com Skill tool.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Árvore de Decisão
|
|
44
|
+
```
|
|
45
|
+
$ARGUMENTS fornecido?
|
|
46
|
+
→ SIM: Ler frontmatter do arquivo
|
|
47
|
+
id começa com "PRD"? → Fluxo PRD
|
|
48
|
+
id começa com "FRD"? → Fluxo FRD
|
|
49
|
+
Nem um nem outro? → Avisar e encerrar
|
|
50
|
+
→ NÃO: Ir direto para Reconstrução Completa dos Índices
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Fluxo de Trabalho
|
|
56
|
+
|
|
57
|
+
### 1. Fluxo FRD — quando uma FRD foi criada ou modificada
|
|
58
|
+
|
|
59
|
+
Extrair do frontmatter:
|
|
60
|
+
```bash
|
|
61
|
+
grep -E "^(id|name|status|related_prd):" {arquivo_frd}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Se `related_prd` estiver ausente ou vazio**, perguntar:
|
|
65
|
+
```
|
|
66
|
+
A FRD "{id}: {name}" não tem PRD pai definido.
|
|
67
|
+
→ Qual é o path do PRD relacionado?
|
|
68
|
+
```
|
|
69
|
+
Atualizar o frontmatter da FRD com o valor informado antes de continuar.
|
|
70
|
+
|
|
71
|
+
**Abrir o PRD referenciado** e verificar a seção `## Solução`:
|
|
72
|
+
|
|
73
|
+
- FRD **não aparece na lista** → Adicionar entry:
|
|
74
|
+
`- **[{id}]({path_relativo}) ({status}):** {name}`
|
|
75
|
+
- FRD **já aparece** → Corrigir status se divergente. Não alterar mais nada.
|
|
76
|
+
|
|
77
|
+
Mostrar diff proposto ao usuário. Aguardar confirmação antes de escrever.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
### 2. Fluxo PRD — quando um PRD foi criado ou modificado
|
|
82
|
+
|
|
83
|
+
Extrair do frontmatter:
|
|
84
|
+
```bash
|
|
85
|
+
grep -E "^(id|name|status):" {arquivo_prd}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Buscar FRDs filhas nos dois diretórios:
|
|
89
|
+
```bash
|
|
90
|
+
grep -rl "related_prd:" $PROD_DOCS --include="*.md"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Filtrar apenas as que apontam para este PRD. Para cada FRD encontrada,
|
|
94
|
+
verificar na seção `## Solução` do PRD se o entry está presente e com
|
|
95
|
+
status correto. Atualizar divergências.
|
|
96
|
+
|
|
97
|
+
Mostrar diff proposto ao usuário. Aguardar confirmação antes de escrever.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### 3. Reconstrução dos Índices
|
|
102
|
+
|
|
103
|
+
Executado sempre após os fluxos acima, ou diretamente quando `$ARGUMENTS`
|
|
104
|
+
está vazio.
|
|
105
|
+
|
|
106
|
+
#### 3.1 Escanear specs locais
|
|
107
|
+
```bash
|
|
108
|
+
# PRDs
|
|
109
|
+
find $PROD_DOCS -maxdepth 1 -name "*.md" | xargs grep -l "^id: PRD"
|
|
110
|
+
|
|
111
|
+
# FRDs
|
|
112
|
+
find $PROD_DOCS_FRD -name "*.md" | xargs grep -l "^id: FRD"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Para cada arquivo, extrair via grep: `id`, `name`, `status`
|
|
116
|
+
(e `related_prd` nas FRDs).
|
|
117
|
+
|
|
118
|
+
#### 3.2 Obter projeto e repositório para cada PRD
|
|
119
|
+
|
|
120
|
+
Se o índice local já existir (`$PROD_DOCS/specs-index.md`), reutilizar
|
|
121
|
+
os mapeamentos já registrados.
|
|
122
|
+
|
|
123
|
+
Para cada PRD **sem mapeamento registrado**, perguntar:
|
|
124
|
+
```
|
|
125
|
+
O PRD "{id}: {name}" ainda não tem projeto ou repositório mapeado.
|
|
126
|
+
→ Projeto: (nome, URL ou "nenhum")
|
|
127
|
+
→ Repositório Git: (nome, URL ou "nenhum")
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
#### 3.3 Gerar o índice local
|
|
131
|
+
|
|
132
|
+
Escrever ou atualizar `$PROD_DOCS/specs-index.md` seguindo o template
|
|
133
|
+
de Índice Local abaixo.
|
|
134
|
+
|
|
135
|
+
#### 3.4 Escanear specs no Drive (se MCP disponível)
|
|
136
|
+
|
|
137
|
+
Acessar `$CENTRAL_DOCS_REPO` via MCP e listar todos os arquivos `.md`.
|
|
138
|
+
|
|
139
|
+
Para cada arquivo encontrado, extrair os metadados YAML (`id`, `name`,
|
|
140
|
+
`status`, `related_prd`). Consolidar com os dados locais, deduplizando
|
|
141
|
+
por `id`.
|
|
142
|
+
|
|
143
|
+
#### 3.5 Gerar o índice global no Drive (se MCP disponível)
|
|
144
|
+
|
|
145
|
+
Verificar se `specs-index.md` já existe na raiz da pasta do Drive.
|
|
146
|
+
Reutilizar mapeamentos de projeto/repositório já registrados. Perguntar
|
|
147
|
+
apenas o que estiver faltando.
|
|
148
|
+
|
|
149
|
+
Escrever ou atualizar o `specs-index.md` no Drive seguindo o template
|
|
150
|
+
de Índice Global abaixo.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Templates
|
|
155
|
+
|
|
156
|
+
### Índice Local (`$PROD_DOCS/specs-index.md`)
|
|
157
|
+
```markdown
|
|
158
|
+
# Índice de Especificações — {WORKSPACE}
|
|
159
|
+
|
|
160
|
+
Índice das especificações do projeto atual. Atualizado automaticamente
|
|
161
|
+
pela skill `prod-update-specs`.
|
|
162
|
+
|
|
163
|
+
_Última atualização: {YYYY-MM-DD}_
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Relação de Arquivos e Projetos
|
|
168
|
+
|
|
169
|
+
| Spec | Status | Projeto | Repositório Git |
|
|
170
|
+
|------|--------|---------|-----------------|
|
|
171
|
+
| [PRD-001 — Nome](./prd-001.md) | in_progress | Projeto A | [repo-a](url) |
|
|
172
|
+
| [FRD-001 — Nome](./frds/frd-001.md) | in_review | Projeto A | [repo-a](url) |
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Relação PRD → FRDs
|
|
177
|
+
|
|
178
|
+
### PRD-001: Nome do PRD
|
|
179
|
+
- [FRD-001 — Nome](./frds/frd-001.md) · `in_review`
|
|
180
|
+
- [FRD-002 — Nome](./frds/frd-002.md) · `in_progress`
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
### Índice Global (`specs-index.md` no Drive)
|
|
186
|
+
```markdown
|
|
187
|
+
# Índice Global de Especificações
|
|
188
|
+
|
|
189
|
+
Índice consolidado de todas as especificações de produto, abrangendo todos
|
|
190
|
+
os projetos. Atualizado automaticamente pela skill `prod-update-specs`.
|
|
191
|
+
|
|
192
|
+
_Última atualização: {YYYY-MM-DD}_
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Relação de Arquivos e Projetos
|
|
197
|
+
|
|
198
|
+
| Spec | Status | Projeto | Repositório Git |
|
|
199
|
+
|------|--------|---------|-----------------|
|
|
200
|
+
| [PRD-001 — Nome](link-drive) | in_progress | Projeto A | [repo-a](url) |
|
|
201
|
+
| [PRD-002 — Nome](link-drive) | in_review | Projeto B | [repo-b](url) |
|
|
202
|
+
| [FRD-001 — Nome](link-drive) | in_progress | Projeto A | [repo-a](url) |
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Projetos
|
|
207
|
+
|
|
208
|
+
| Projeto | Specs relacionadas |
|
|
209
|
+
|---------|--------------------|
|
|
210
|
+
| Projeto A | PRD-001, FRD-001, FRD-002 |
|
|
211
|
+
| Projeto B | PRD-002, FRD-003 |
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Repositórios
|
|
216
|
+
|
|
217
|
+
| Repositório | Specs relacionadas |
|
|
218
|
+
|-------------|-------------------|
|
|
219
|
+
| [repo-a](url) | PRD-001, FRD-001, FRD-002 |
|
|
220
|
+
| [repo-b](url) | PRD-002, FRD-003 |
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Relação PRD → FRDs
|
|
225
|
+
|
|
226
|
+
### PRD-001: Nome — Projeto A
|
|
227
|
+
- [FRD-001 — Nome](link-drive) · `in_progress`
|
|
228
|
+
- [FRD-002 — Nome](link-drive) · `in_review`
|
|
229
|
+
|
|
230
|
+
### PRD-002: Nome — Projeto B
|
|
231
|
+
- [FRD-003 — Nome](link-drive) · `icebox`
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Regras
|
|
237
|
+
|
|
238
|
+
### Nunca
|
|
239
|
+
- Remover entradas existentes de specs ou do índice sem confirmação explícita
|
|
240
|
+
- Sobrescrever mapeamentos de projeto/repositório já registrados sem perguntar
|
|
241
|
+
- Escrever mudanças em cascata sem mostrar o diff antes
|
|
242
|
+
- Alterar o bloco de versionamento dos docs
|
|
243
|
+
|
|
244
|
+
### Sempre
|
|
245
|
+
- Mostrar resumo das mudanças propostas e aguardar confirmação
|
|
246
|
+
- Preservar paths relativos corretos entre os arquivos
|
|
247
|
+
- Tratar Drive como indisponível graciosamente — nunca bloquear o fluxo local
|
|
248
|
+
- Reutilizar mapeamentos de projeto/repo já existentes nos índices
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Checklist de Conclusão
|
|
253
|
+
|
|
254
|
+
- [ ] ENV.md lido — `$PROD_DOCS`, `$PROD_DOCS_FRD` e `$CENTRAL_DOCS_REPO` extraídos
|
|
255
|
+
- [ ] Disponibilidade do Drive MCP verificada
|
|
256
|
+
- [ ] Tipo do arquivo identificado (PRD / FRD / scan completo)
|
|
257
|
+
- [ ] Cascata de atualizações mapeada e confirmada pelo usuário
|
|
258
|
+
- [ ] Projeto e repositório obtidos para specs sem mapeamento
|
|
259
|
+
- [ ] Índice local gerado em `$PROD_DOCS/specs-index.md`
|
|
260
|
+
- [ ] Índice global gerado no Drive (se MCP disponível)
|
|
261
|
+
- [ ] Links internos validados
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## Output
|
|
266
|
+
|
|
267
|
+
| Artefato | Escopo | Condição |
|
|
268
|
+
|----------|--------|----------|
|
|
269
|
+
| `$PROD_DOCS/specs-index.md` | Projeto atual | Sempre |
|
|
270
|
+
| `specs-index.md` no Drive | Todos os projetos | MCP conectado ou Integração ativa |
|
|
271
|
+
| PRDs afetados | Seção "Solução" sincronizada | Quando FRD muda |
|
|
272
|
+
| FRDs afetadas | `related_prd` preenchido | Quando ausente |
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: report-issue
|
|
3
|
+
description: Reporta um bug no próprio framework Jarvis. A IA reflete sobre qual artefato (skill/workflow/rule) causou o erro, monta o report e abre um issue no repo do Jarvis (GitLab, GitHub ou Bitbucket, conforme VERSION_CONTROL).
|
|
4
|
+
argument-hint: "[descrição opcional do problema]"
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
allowed-tools: Read Bash Grep Glob
|
|
7
|
+
license: AGPL-3.0
|
|
8
|
+
metadata:
|
|
9
|
+
author: jarvis-team
|
|
10
|
+
version: "1.0"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# report-issue — Auto-report de bug no Framework Jarvis
|
|
14
|
+
|
|
15
|
+
Você é a IA que acabou de cometer ou identificar um erro causado por uma instrução do Jarvis.
|
|
16
|
+
Sua tarefa é: **refletir sobre o que falhou no framework, montar o report e abrir o issue no repositório do Jarvis**.
|
|
17
|
+
|
|
18
|
+
O usuário não precisa preencher nada — você é o autor do report.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Fase 1 — Reflexão (obrigatória antes de qualquer ação)
|
|
23
|
+
|
|
24
|
+
Responda internamente às perguntas abaixo. Use o contexto da conversa atual:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
1. Qual skill, workflow ou rule estava sendo executado quando o erro ocorreu?
|
|
28
|
+
→ Nome do artefato + caminho (ex: skills/eng-backend/SKILL.md)
|
|
29
|
+
|
|
30
|
+
2. O que a instrução dizia que eu deveria fazer?
|
|
31
|
+
→ Transcreva ou resuma a instrução relevante
|
|
32
|
+
|
|
33
|
+
3. O que eu fiz de errado ou o que saiu diferente do esperado?
|
|
34
|
+
→ Comportamento real vs. comportamento esperado
|
|
35
|
+
|
|
36
|
+
4. Por que a instrução induziu esse erro?
|
|
37
|
+
→ Ambiguidade? Instrução incompleta? Pressuposto incorreto? Conflito com outra rule?
|
|
38
|
+
|
|
39
|
+
5. O que deve mudar no artefato para que esse erro não ocorra novamente?
|
|
40
|
+
→ Sugestão concreta de correção (reescrita de instrução, adição de gate, exemplo, etc.)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Se não houver contexto suficiente na conversa, pergunte ao usuário **uma** coisa antes de continuar:
|
|
44
|
+
> "Para abrir o issue, preciso saber: qual skill ou workflow estava sendo executado?"
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Fase 2 — Montar o issue
|
|
49
|
+
|
|
50
|
+
Com as respostas da Fase 1, monte o issue no formato abaixo.
|
|
51
|
+
|
|
52
|
+
**Título:** `[BUG] {artefato}: {descrição curta do problema em até 80 chars}`
|
|
53
|
+
|
|
54
|
+
**Corpo:**
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
## O que aconteceu
|
|
58
|
+
|
|
59
|
+
{descrição do comportamento errado observado — o que a IA fez de errado}
|
|
60
|
+
|
|
61
|
+
## O que deveria ter acontecido
|
|
62
|
+
|
|
63
|
+
{comportamento correto esperado pelo framework}
|
|
64
|
+
|
|
65
|
+
## Artefato com problema
|
|
66
|
+
|
|
67
|
+
`{caminho/do/arquivo}` — {seção ou instrução problemática, se identificável}
|
|
68
|
+
|
|
69
|
+
## Causa raiz (hipótese)
|
|
70
|
+
|
|
71
|
+
{análise da IA: por que a instrução induziu o erro — ambiguidade, lacuna, conflito}
|
|
72
|
+
|
|
73
|
+
## Sugestão de correção
|
|
74
|
+
|
|
75
|
+
{o que deve mudar no artefato para evitar o problema — seja específico}
|
|
76
|
+
|
|
77
|
+
## Contexto de execução
|
|
78
|
+
|
|
79
|
+
- **Artefato em execução:** {nome do skill/workflow/rule}
|
|
80
|
+
- **Versão do Jarvis:** {ler de package.json → campo "version"}
|
|
81
|
+
- **Reportado por:** IA (auto-report)
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Fase 3 — Credenciais e repo
|
|
87
|
+
|
|
88
|
+
Ler do `$IDE/ENV.md`:
|
|
89
|
+
|
|
90
|
+
- `JARVIS_PROJECT` (preferido) ou alias `JARVIS_GITLAB_PROJECT` — URL ou `grupo/repo`
|
|
91
|
+
- `VERSION_CONTROL` — `gitlab` | `github` | `bitbucket` (default pelo hostname da URL)
|
|
92
|
+
|
|
93
|
+
Se o projeto não estiver definido:
|
|
94
|
+
|
|
95
|
+
> `🚫 BLOQUEADO: defina JARVIS_PROJECT=https://github.com/phelipperibeiro/jarvis-framework` (ou GitLab/Bitbucket) no ENV.md.`
|
|
96
|
+
> → PARAR
|
|
97
|
+
|
|
98
|
+
Token: o adapter resolve sozinho (`.npmrc` GitLab, `gh auth` / `GITHUB_TOKEN`, `BITBUCKET_TOKEN`).
|
|
99
|
+
|
|
100
|
+
Versão do Jarvis:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
grep '"version"' package.json | head -1 | sed 's/.*"version": *"\([^"]*\)".*/\1/'
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Fase 4 — Abrir o issue
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
BODY_FILE=$(mktemp)
|
|
112
|
+
# gravar o corpo markdown do issue em $BODY_FILE
|
|
113
|
+
|
|
114
|
+
REPO=$(grep -E '^(JARVIS_PROJECT|JARVIS_GITLAB_PROJECT)=' $IDE/ENV.md | tail -1 | cut -d= -f2-)
|
|
115
|
+
|
|
116
|
+
node bin/lib/vcs/create-issue.js \
|
|
117
|
+
--repo "$REPO" \
|
|
118
|
+
--title "$ISSUE_TITLE" \
|
|
119
|
+
--body-file "$BODY_FILE"
|
|
120
|
+
|
|
121
|
+
rm -f "$BODY_FILE"
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Fase 5 — Confirmar ao usuário
|
|
127
|
+
|
|
128
|
+
Sucesso (exit 0):
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
✅ Issue aberto com sucesso!
|
|
132
|
+
|
|
133
|
+
Título : {título do issue}
|
|
134
|
+
Artefato: {caminho do arquivo com problema}
|
|
135
|
+
URL : {url retornada}
|
|
136
|
+
|
|
137
|
+
O time do Jarvis vai revisar e corrigir o artefato.
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Erro:
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
🚫 Erro ao abrir issue: {mensagem}
|
|
144
|
+
|
|
145
|
+
Verifique token (GitLab .npmrc / gh auth / BITBUCKET_TOKEN) e JARVIS_PROJECT.
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Regras
|
|
151
|
+
|
|
152
|
+
- **Nunca** pedir ao usuário que preencha o report — a IA preenche tudo
|
|
153
|
+
- **Nunca** abrir issue sem completar a Fase 1 (reflexão obrigatória)
|
|
154
|
+
- **Nunca** hardcodar o repo ou token — sempre ler `JARVIS_PROJECT` do ENV.md; o adapter resolve o vendor
|
|
155
|
+
- **Sempre** usar label `bug` — sem exceções
|
|
156
|
+
- **Sempre** limpar arquivos temporários após o curl
|
package/taxonomy.md
ADDED
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
# Taxonomia Organizacional
|
|
2
|
+
Define a estrutura organizacional, vocabulário e configurações do framework Jarvis
|
|
3
|
+
|
|
4
|
+
> **📝 Como usar**: Este arquivo define as opções válidas para variáveis do ENV.md.
|
|
5
|
+
> Edite este arquivo para customizar as opções da sua organização antes de instalar o framework.
|
|
6
|
+
>
|
|
7
|
+
> **Domínio de Email**: Configure `DOMAIN:` para validar emails corporativos (ex: `DOMAIN: suaempresa.com.br`)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 🏢 Squads (Times de Desenvolvimento)
|
|
12
|
+
|
|
13
|
+
Squads são times multidisciplinares. Customize via `/taxonomy`. Skills e agentes técnicos (RPA, Data, QA, etc.) **não** dependem destes nomes.
|
|
14
|
+
|
|
15
|
+
### CORE
|
|
16
|
+
channel_id:
|
|
17
|
+
board_code:
|
|
18
|
+
modules:
|
|
19
|
+
Time principal. Adicione squads da sua organização com `/taxonomy add SQUADS`.
|
|
20
|
+
|
|
21
|
+
### SUPPORT
|
|
22
|
+
channel_id:
|
|
23
|
+
board_code:
|
|
24
|
+
modules: atendimento, chamados, triagem, diagnostico, escalonamento
|
|
25
|
+
Time de suporte técnico — Tech Analysts. Transversal às squads de desenvolvimento.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 🎯 Hubs (Áreas Técnicas)
|
|
30
|
+
|
|
31
|
+
Hubs representam especialidades técnicas dentro da organização.
|
|
32
|
+
|
|
33
|
+
### AI
|
|
34
|
+
Inteligência Artificial, Jarvis, Chatbots, n8n, agents
|
|
35
|
+
|
|
36
|
+
### FRONTEND
|
|
37
|
+
Desenvolvimento de interfaces de usuário, web e mobile
|
|
38
|
+
|
|
39
|
+
### BACKEND
|
|
40
|
+
Desenvolvimento de APIs, serviços, microsserviços e integrações
|
|
41
|
+
|
|
42
|
+
### QA
|
|
43
|
+
Quality Assurance, testes automatizados, testes manuais e garantia de qualidade
|
|
44
|
+
|
|
45
|
+
### DATA
|
|
46
|
+
Engenharia e análise de dados, pipelines, BI e operações de dados, Machine Learning, Data Science e modelos preditivos
|
|
47
|
+
|
|
48
|
+
### FULLCYCLE
|
|
49
|
+
Desenvolvedor que atua em todas as camadas técnicas (frontend, backend e, quando necessário, dados) do início ao fim de uma entrega — em qualquer verificação de HUB, é tratado como coringa/superusuário: satisfaz qualquer HUB exigido, nunca bloqueado por applies_to HUB específico
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 👤 Positions (Cargos e Senioridades)
|
|
53
|
+
|
|
54
|
+
Níveis de senioridade e cargos técnicos na organização.
|
|
55
|
+
|
|
56
|
+
### HEAD
|
|
57
|
+
Líder de área (Engenharia, Produto, Vendas)
|
|
58
|
+
- Responsável por uma área técnica ou de negócio
|
|
59
|
+
- Gestão de pessoas e direção técnica/produto
|
|
60
|
+
- Interface entre squads e liderança executiva
|
|
61
|
+
|
|
62
|
+
### JUNIOR
|
|
63
|
+
Desenvolvedor Júnior (0-2 anos de experiência)
|
|
64
|
+
- Aprendendo tecnologias e processos
|
|
65
|
+
- Pede ajuda quando precisar — sem gate obrigatório de TL/PM
|
|
66
|
+
- Foco em desenvolver habilidades técnicas
|
|
67
|
+
- No fluxo downstream: dono ponta-a-ponta do card que assumiu (puxar, implementar, MR, validar, deploy)
|
|
68
|
+
|
|
69
|
+
### PLENO
|
|
70
|
+
Desenvolvedor Pleno (2-4 anos de experiência)
|
|
71
|
+
- Autonomia em tarefas individuais
|
|
72
|
+
- Contribui para decisões técnicas
|
|
73
|
+
- Mentoría desenvolvedores júnior
|
|
74
|
+
- No fluxo downstream: dono ponta-a-ponta do card que assumiu
|
|
75
|
+
|
|
76
|
+
### SENIOR
|
|
77
|
+
Desenvolvedor Sênior (4+ anos de experiência)
|
|
78
|
+
- Alta autonomia técnica
|
|
79
|
+
- Toma decisões arquiteturais
|
|
80
|
+
- Mentoria e liderança técnica
|
|
81
|
+
- No fluxo downstream: dono ponta-a-ponta do card que assumiu
|
|
82
|
+
|
|
83
|
+
### TECH LEAD
|
|
84
|
+
Líder técnico de time ou squad
|
|
85
|
+
- Responsável por direção técnica do time
|
|
86
|
+
- Coordena desenvolvimento e arquitetura
|
|
87
|
+
- Interface entre time e stakeholders
|
|
88
|
+
- No fluxo downstream: apoia o time. Não é gate — o profissional que assumiu o card conduz ponta-a-ponta. TL desbloqueia e cobre quando pedido.
|
|
89
|
+
|
|
90
|
+
### SPECIALIST
|
|
91
|
+
Especialista em área técnica ou disciplina específica
|
|
92
|
+
- Expert em domínio particular (segurança, performance, etc.)
|
|
93
|
+
- Consultoria técnica para times
|
|
94
|
+
- Define padrões e melhores práticas
|
|
95
|
+
- No fluxo downstream: dono ponta-a-ponta do card que assumiu
|
|
96
|
+
|
|
97
|
+
### QA-ENGINEER
|
|
98
|
+
Engenheiro de Quality Assurance
|
|
99
|
+
- Planejamento e execução de testes (manuais e automatizados)
|
|
100
|
+
- Reporte e rastreamento de bugs
|
|
101
|
+
- Validação técnica de entregas antes da aprovação de produto
|
|
102
|
+
- No fluxo downstream: apoia o DEV na validação — não move cards, apenas executa e reporta
|
|
103
|
+
|
|
104
|
+
### PM
|
|
105
|
+
Product Manager
|
|
106
|
+
- Gestão de produto e roadmap
|
|
107
|
+
- Define prioridades e features
|
|
108
|
+
- Interface com stakeholders de negócio
|
|
109
|
+
- No fluxo downstream: pode priorizar, aceitar e também assumir/conduzir um card ponta-a-ponta. Aceite apoia — não trava o owner.
|
|
110
|
+
|
|
111
|
+
### TPM
|
|
112
|
+
Technical Product Manager
|
|
113
|
+
- Product Manager com foco técnico
|
|
114
|
+
- Ponte entre produto e engenharia
|
|
115
|
+
- Decisões de produto com viés técnico
|
|
116
|
+
- No fluxo downstream: pode priorizar, aceitar e também assumir/conduzir um card ponta-a-ponta. Aceite apoia — não trava o owner.
|
|
117
|
+
|
|
118
|
+
### GPM
|
|
119
|
+
Group Product Manager
|
|
120
|
+
- Gerencia múltiplos PMs
|
|
121
|
+
- Visão estratégica de produto
|
|
122
|
+
- Coordenação entre diferentes áreas
|
|
123
|
+
- No fluxo downstream: pode priorizar, aceitar e também assumir/conduzir um card ponta-a-ponta. Aceite apoia — não trava o owner.
|
|
124
|
+
|
|
125
|
+
### TECH ANALYST
|
|
126
|
+
Ponte técnica entre suporte operacional e squads de engenharia — posição de entrada em engenharia
|
|
127
|
+
⚠️ Posição transversal — NÃO pertence a nenhuma squad de desenvolvimento. Squad no ENV.md = SUPPORT.
|
|
128
|
+
- Diagnóstico e triagem técnica de chamados não resolvidos pelo suporte N2
|
|
129
|
+
- Resolução de problemas dentro do escopo via backoffice, scripts e ferramentas internas
|
|
130
|
+
- Escalonamento qualificado: avalia impacto antes de escalar, nunca escala por reflexo
|
|
131
|
+
- Consulta banco de dados para diagnóstico (somente leitura — não escreve em produção)
|
|
132
|
+
- Classifica e registra bugs no Jira com descrição clara, impacto avaliado e área identificada
|
|
133
|
+
- Monitora e atualiza frequência de bugs recorrentes no Jarvis, alertando QA quando necessário
|
|
134
|
+
- Não desenvolve features, não faz deploy, não define prioridades — isso é do PM
|
|
135
|
+
- No fluxo downstream: responsável pela validação operacional pós-deploy e encaminhamento de problemas encontrados em produção
|
|
136
|
+
|
|
137
|
+
### QUALITY_CHAMPION
|
|
138
|
+
Designação secundária para devs com função parcial de qualidade dentro do squad.
|
|
139
|
+
Não é uma posição de senioridade — o dev mantém seu cargo (JUNIOR, PLENO, SENIOR, etc.).
|
|
140
|
+
Registrado no campo Posição do `members.md` junto com o cargo principal.
|
|
141
|
+
- Responsável por cobertura de testes em features de baixo/médio risco do squad
|
|
142
|
+
- Executa quality gates e orienta outros devs via eng-qa-dev-guide
|
|
143
|
+
- NÃO substitui QA em features críticas, decisões de bloqueio ou sign-off de release
|
|
144
|
+
- Dedicação típica: ~30% do tempo em atividades de qualidade
|
|
145
|
+
- No fluxo downstream: apoia o QA-ENGINEER na cobertura — não toma decisões de bloqueio
|
|
146
|
+
|
|
147
|
+
### CTO
|
|
148
|
+
Chief Technology Officer
|
|
149
|
+
- Direção estratégica de tecnologia
|
|
150
|
+
- Responsável por toda organização técnica
|
|
151
|
+
- Decisões de alto nível sobre arquitetura e stack
|
|
152
|
+
|
|
153
|
+
### GENERALIST
|
|
154
|
+
Profissional que acumula funções de outras posições (SPECIALIST, PM, dev, QA etc.) conforme a demanda — típico de times pequenos sem gente dedicada por função
|
|
155
|
+
- Cargo principal (como SPECIALIST), não designação secundária (diferente de QUALITY_CHAMPION)
|
|
156
|
+
- Transita entre ENGINEERING e PRODUCT — não fica restrito a uma única área
|
|
157
|
+
- Em qualquer verificação de POSITION ou AREA, é tratado como coringa/superusuário: satisfaz qualquer valor exigido
|
|
158
|
+
- No fluxo downstream: dono ponta-a-ponta do card que assumiu, com autonomia equivalente a TECH LEAD/staff (ver eng-rules.md)
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## 📊 Areas (Áreas de Negócio)
|
|
163
|
+
|
|
164
|
+
Áreas funcionais da organização.
|
|
165
|
+
|
|
166
|
+
### ENGINEERING
|
|
167
|
+
prefix: eng
|
|
168
|
+
Área de Engenharia
|
|
169
|
+
- Desenvolvimento de software
|
|
170
|
+
- Infraestrutura e operações
|
|
171
|
+
- Inovação tecnológica
|
|
172
|
+
|
|
173
|
+
### PRODUCT
|
|
174
|
+
prefix: prod
|
|
175
|
+
Área de Produto
|
|
176
|
+
- Gestão de produto
|
|
177
|
+
- Discovery e research
|
|
178
|
+
- Roadmap e estratégia
|
|
179
|
+
|
|
180
|
+
DOMAIN:
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 🌐 Domain (Domínio de Email Corporativo)
|
|
185
|
+
|
|
186
|
+
Define o domínio de email corporativo para validação e padronização de emails.
|
|
187
|
+
|
|
188
|
+
**ADICIONAR APENAS UMA LINHA APÓS AREAS:**
|
|
189
|
+
|
|
190
|
+
```markdown
|
|
191
|
+
DOMAIN:
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Como Funciona
|
|
195
|
+
- Todos os emails devem terminar com `@DOMAIN`
|
|
196
|
+
- Usado na validação de ENV.md durante `/init-jarvis`
|
|
197
|
+
- Garante que apenas emails corporativos sejam registrados
|
|
198
|
+
- Exemplo: `pedro@domain.com.br`, `ana@domain.com.br`
|
|
199
|
+
|
|
200
|
+
### Para Open Source (Sem Restrição)
|
|
201
|
+
Deixe em branco ou remova a linha:
|
|
202
|
+
|
|
203
|
+
```markdown
|
|
204
|
+
DOMAIN:
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## 📝 Como Adicionar Novas Opções
|
|
210
|
+
|
|
211
|
+
Para adicionar uma nova opção:
|
|
212
|
+
|
|
213
|
+
1. Adicione o nome em MAIÚSCULAS sob a categoria apropriada
|
|
214
|
+
2. Inclua os campos estruturados (se aplicável)
|
|
215
|
+
3. Inclua uma breve descrição
|
|
216
|
+
4. Execute `/init-jarvis` - as novas opções aparecerão automaticamente
|
|
217
|
+
|
|
218
|
+
**Exemplo — Squad com channel_id e modules:**
|
|
219
|
+
```markdown
|
|
220
|
+
### MOBILE
|
|
221
|
+
channel_id: C0123456789
|
|
222
|
+
board_code: MOB
|
|
223
|
+
modules: app-ios, app-android, push-notification, deep-link
|
|
224
|
+
Time focado em desenvolvimento mobile nativo (iOS/Android)
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
> Membros da organização são gerenciados em `members.md`.
|
|
228
|
+
|
|
229
|
+
**Exemplo — Area com prefix:**
|
|
230
|
+
```markdown
|
|
231
|
+
### DESIGN
|
|
232
|
+
prefix: design
|
|
233
|
+
Área de Design, UX e pesquisa com usuários
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
> Use `/taxonomy-manager add` para adicionar opções com validação automática.
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 🔄 Sincronização
|
|
241
|
+
|
|
242
|
+
Quando este arquivo é atualizado:
|
|
243
|
+
- Execute `/init-jarvis` para recriar ENV.md com novas opções
|
|
244
|
+
- Ou edite manualmente `$IDE/ENV.md` se já existir
|
|
245
|
+
- As validações nos workflows usarão automaticamente as novas opções
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## ⚠️ Notas Importantes
|
|
250
|
+
|
|
251
|
+
1. **Mantenha nomes sem espaços**: Use `-` ou `_` para separar palavras
|
|
252
|
+
- ✅ `CORE`
|
|
253
|
+
- ❌ `ENGINEERING CORE`
|
|
254
|
+
|
|
255
|
+
2. **Use MAIÚSCULAS**: Facilita padronização e busca
|
|
256
|
+
- ✅ `SENIOR`
|
|
257
|
+
- ❌ `Senior` ou `senior`
|
|
258
|
+
|
|
259
|
+
3. **Evite caracteres especiais**: Apenas letras, números, `-` e `_`
|
|
260
|
+
- ✅ `RPA`, `TECH-LEAD`
|
|
261
|
+
- ❌ `RPA!`, `TECH/LEAD`
|
|
262
|
+
|
|
263
|
+
4. **Mantenha consistência**: Uma vez definido, evite mudar nomes existentes
|
|
264
|
+
- Impacta ENV.md de projetos existentes
|
|
265
|
+
- Se necessário mudar, comunique toda a organização
|
|
266
|
+
|
|
267
|
+
5. **Domínio de Email**: Configure uma única vez no início
|
|
268
|
+
- ✅ `DOMAIN: seudominio.com.br` (validará emails @seudominio.com.br)
|
|
269
|
+
- ✅ `DOMAIN:` (em branco para sem restrição)
|
|
270
|
+
- ❌ Múltiplos domínios (use apenas um)
|