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,230 @@
|
|
|
1
|
+
> **Applies to:** HUB: BACKEND | POSITION: all | AREA: ENGINEERING | SQUAD: all
|
|
2
|
+
|
|
3
|
+
# Eng RPA Rules — Padrões de Arquitetura e Código para Robôs de Automação
|
|
4
|
+
|
|
5
|
+
## Objetivo
|
|
6
|
+
|
|
7
|
+
Definir padrões de arquitetura, estrutura de projeto, resiliência, observabilidade e segurança
|
|
8
|
+
para robôs de automação RPA. Toda implementação nova deve seguir estas regras.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 0. Princípios Fundamentais
|
|
13
|
+
|
|
14
|
+
### HTTP-first
|
|
15
|
+
|
|
16
|
+
Sempre tentar quebrar o site via requisição HTTP antes de recorrer ao browser.
|
|
17
|
+
Browser é mais lento, frágil e custoso — só usar quando HTTP não for viável.
|
|
18
|
+
|
|
19
|
+
1. Inspecionar as requests de rede do fluxo alvo (DevTools, Playwright MCP, CLI codegen)
|
|
20
|
+
2. Se existir API ou endpoint HTTP → implementar sem browser
|
|
21
|
+
3. Só partir para browser se renderização JS for obrigatória ou não houver API exposta
|
|
22
|
+
|
|
23
|
+
### Infraestrutura Anti-bot é Pré-requisito Compartilhado
|
|
24
|
+
|
|
25
|
+
Captcha solving e proxy rotation são recursos de infraestrutura do projeto — **não implementar do zero por robô**.
|
|
26
|
+
|
|
27
|
+
- Antes de criar um robô novo, verificar se esses serviços já existem no projeto
|
|
28
|
+
- Se não existirem, escalar para o TL — o robô não deve ser iniciado sem essa infraestrutura quando o sistema-alvo exigir
|
|
29
|
+
- Cada robô consome a infraestrutura existente, nunca a reimplementa
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 1. Estrutura de Projeto
|
|
34
|
+
|
|
35
|
+
### Localização dos Robôs
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
src/
|
|
39
|
+
robots/
|
|
40
|
+
{robot-tag}/
|
|
41
|
+
{robot-tag}.robot.ts ← classe principal do robô
|
|
42
|
+
{robot-tag}.types.ts ← tipos e interfaces
|
|
43
|
+
{robot-tag}.config.ts ← configurações (sem credenciais hardcodadas)
|
|
44
|
+
{robot-tag}.spec.ts ← testes unitários (mocks de browser/HTTP)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Nomenclatura
|
|
48
|
+
|
|
49
|
+
- `{robot-tag}` sempre em `kebab-case` (ex: `consulta-orgao`, `extrator-dados`)
|
|
50
|
+
- Classe do robô: `{RobotTag}Robot` em PascalCase (ex: `ConsultaOrgaoRobot`)
|
|
51
|
+
- Método principal: `execute(input: Input): Promise<Output>`
|
|
52
|
+
- Métodos internos de fase: `_phaseNome()` — prefixo `_` para métodos privados de fase
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 2. Resiliência
|
|
57
|
+
|
|
58
|
+
### Seletores CSS/XPath
|
|
59
|
+
|
|
60
|
+
Prioridade obrigatória (do mais para o menos estável):
|
|
61
|
+
|
|
62
|
+
1. `id` do elemento
|
|
63
|
+
2. `data-*` atributo semântico (ex: `data-testid`, `data-cy`)
|
|
64
|
+
3. CSS estável baseado em estrutura semântica (ex: `.form-login input[type="password"]`)
|
|
65
|
+
4. XPath por texto literal (ex: `//button[text()="Entrar"]`)
|
|
66
|
+
5. ❌ **NUNCA** seletor posicional sem fallback (ex: `tr:nth-child(3) > td:nth-child(2)`)
|
|
67
|
+
|
|
68
|
+
Se seletor posicional for inevitável, documentar no `{robot-tag}-robot.md` com razão explícita.
|
|
69
|
+
|
|
70
|
+
### Retry com Backoff
|
|
71
|
+
|
|
72
|
+
Todo I/O que pode falhar (navegação, clique, requisição HTTP) deve ter retry:
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
// Padrão mínimo aceitável
|
|
76
|
+
const retryConfig = {
|
|
77
|
+
maxAttempts: 3,
|
|
78
|
+
baseDelayMs: 1000,
|
|
79
|
+
backoffFactor: 2, // 1s → 2s → 4s
|
|
80
|
+
jitterMs: 500, // evita thundering herd
|
|
81
|
+
};
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Use `p-retry` ou implemente wrapper equivalente. Nunca `try/catch` com `setTimeout` fixo.
|
|
85
|
+
|
|
86
|
+
### Timeout por Fase
|
|
87
|
+
|
|
88
|
+
Definir timeout explícito por operação — nunca depender do timeout padrão do framework:
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
await page.goto(url, { waitUntil: 'networkidle2', timeout: 30_000 });
|
|
92
|
+
await page.waitForSelector(selector, { timeout: 10_000 });
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 3. Observabilidade
|
|
98
|
+
|
|
99
|
+
### Logs Estruturados por Fase
|
|
100
|
+
|
|
101
|
+
Todo robô deve logar no início e fim de cada fase, com contexto suficiente para diagnóstico:
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
// Início de fase
|
|
105
|
+
logger.log({ phase: 'autenticacao', status: 'iniciando', robotTag, inputId });
|
|
106
|
+
|
|
107
|
+
// Sucesso
|
|
108
|
+
logger.log({ phase: 'autenticacao', status: 'ok', robotTag, durationMs });
|
|
109
|
+
|
|
110
|
+
// Falha
|
|
111
|
+
logger.error({ phase: 'autenticacao', status: 'falha', robotTag, error: err.message, attempt });
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Usar `@nestjs/common` Logger ou equivalente configurado no projeto. Nunca `console.log`.
|
|
115
|
+
|
|
116
|
+
### Screenshot em Falha
|
|
117
|
+
|
|
118
|
+
Para robôs com browser headless, capturar screenshot automaticamente em qualquer erro não recuperável:
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
catch (err) {
|
|
122
|
+
await page.screenshot({ path: `./debug/${robotTag}-${Date.now()}.png`, fullPage: true });
|
|
123
|
+
logger.error({ phase, status: 'falha', screenshot: true, error: err.message });
|
|
124
|
+
throw err;
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Métricas Mínimas
|
|
129
|
+
|
|
130
|
+
Registrar ao final de cada execução:
|
|
131
|
+
- `durationMs` — tempo total de execução
|
|
132
|
+
- `recordsExtracted` — quantidade de registros obtidos (0 é um valor válido, mas deve ser logado)
|
|
133
|
+
- `attempt` — número de tentativas utilizadas
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## 4. Configuração e Segurança
|
|
138
|
+
|
|
139
|
+
### Credenciais
|
|
140
|
+
|
|
141
|
+
- ❌ **NUNCA** hardcodar credenciais, tokens, cookies ou senhas no código
|
|
142
|
+
- ✅ Sempre via variáveis de ambiente: `process.env.ROBOT_USER`, `process.env.ROBOT_PASSWORD`
|
|
143
|
+
- Documentar quais variáveis são necessárias no `{robot-tag}-robot.md` (sem os valores)
|
|
144
|
+
|
|
145
|
+
### User-Agent e Headers
|
|
146
|
+
|
|
147
|
+
- Nunca usar `headless: true` sem configurar user-agent realista
|
|
148
|
+
- Configurar viewport, user-agent e idioma conforme o sistema-alvo espera
|
|
149
|
+
- Não falsificar identidade de formas que violem ToS do sistema-alvo
|
|
150
|
+
|
|
151
|
+
### robots.txt e ToS
|
|
152
|
+
|
|
153
|
+
**Obrigatório antes de qualquer implementação:**
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
curl -s "{sistema-alvo}/robots.txt"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Se houver restrições, comunicar ao usuário antes de escrever qualquer linha de código.
|
|
160
|
+
Documentar o resultado no `{robot-tag}-robot.md` na seção de Visão Geral.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## 5. Testes
|
|
165
|
+
|
|
166
|
+
### Testes Unitários (obrigatório)
|
|
167
|
+
|
|
168
|
+
- Mockar o browser (Puppeteer/Playwright) ou HTTP client — nunca testar contra o sistema-alvo real em CI
|
|
169
|
+
- Testar pelo menos: fluxo feliz, falha de autenticação, timeout de seletor, resposta vazia
|
|
170
|
+
- Cobertura mínima: 70% das branches do método `execute()`
|
|
171
|
+
|
|
172
|
+
### Testes de Integração (condicional)
|
|
173
|
+
|
|
174
|
+
- Executar manualmente antes do PR em ambiente com acesso ao sistema-alvo
|
|
175
|
+
- Não incluir no pipeline de CI sem ambiente controlado
|
|
176
|
+
|
|
177
|
+
### TestSprite (recomendado para fluxos de UI)
|
|
178
|
+
|
|
179
|
+
Quando o robô interage com interface visual (browser headless), usar o skill `eng-qa-testsprite` para gerar e executar testes do fluxo de automação:
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
/eng-qa-testsprite
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
- Útil para validar que o fluxo completo (login → navegação → extração) continua funcionando após mudanças
|
|
186
|
+
- Complementa os testes unitários com validação end-to-end contra o sistema-alvo em ambiente controlado
|
|
187
|
+
- Referência: `$IDE/skills/eng-qa-testsprite/SKILL.md`
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## 6. Documentação (obrigatório ao final de cada implementação)
|
|
192
|
+
|
|
193
|
+
Seguir `$IDE/rules/engineering/eng.docs-scraping-rules.md` sem exceções.
|
|
194
|
+
|
|
195
|
+
Criar ou atualizar `docs/engineering/robots/{robot-tag}-robot.md` com:
|
|
196
|
+
- Visão Geral (o que coleta e o que **não** coleta)
|
|
197
|
+
- Fluxo de Execução (sequência de passos com URLs)
|
|
198
|
+
- Fontes de Dados e Campos Extraídos
|
|
199
|
+
- Variáveis de Ambiente necessárias
|
|
200
|
+
- Limitações Conhecidas
|
|
201
|
+
- Histórico de Bugs
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## 7. Definição de Pronto para Robôs RPA
|
|
206
|
+
|
|
207
|
+
Um robô está pronto para PR quando:
|
|
208
|
+
|
|
209
|
+
- [ ] Classe implementada seguindo a estrutura de projeto definida
|
|
210
|
+
- [ ] Retry com backoff em todos os I/Os que podem falhar
|
|
211
|
+
- [ ] Logs estruturados por fase com contexto de diagnóstico
|
|
212
|
+
- [ ] Screenshot automático em falha (para browser headless)
|
|
213
|
+
- [ ] Testes unitários com cobertura ≥ 70% das branches do `execute()`
|
|
214
|
+
- [ ] Nenhuma credencial hardcodada (todas via `process.env`)
|
|
215
|
+
- [ ] `{robot-tag}-robot.md` criado ou atualizado
|
|
216
|
+
- [ ] robots.txt verificado e resultado documentado
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Exceções
|
|
221
|
+
|
|
222
|
+
Qualquer exceção a estas regras deve ser documentada no `{robot-tag}-robot.md`
|
|
223
|
+
com justificativa explícita. Exceções recorrentes devem ser propostas como atualização desta rule.
|
|
224
|
+
|
|
225
|
+
## Referências
|
|
226
|
+
|
|
227
|
+
- `$IDE/rules/engineering/eng.docs-scraping-rules.md` — padrão de documentação de robôs
|
|
228
|
+
- `$IDE/skills/eng-scraper/SKILL.md` — skill de scraping (Puppeteer, Playwright, ETL)
|
|
229
|
+
- `$IDE/skills/eng-scraper-robot-builder/SKILL.md` — skill de automação via Stagehand
|
|
230
|
+
- `$IDE/agents/engineering/eng.rpa.agent.md` — agente especializado RPA (ARACHNE)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Rules de produto
|
|
2
|
+
|
|
3
|
+
Regras **invioláveis** que os agentes seguem em fluxos de especificação (`prod-rules.md`).
|
|
4
|
+
|
|
5
|
+
## Para quem desenvolve (aprender produto + Jarvis)
|
|
6
|
+
|
|
7
|
+
Documentação didática (termos por extenso, exemplos, quando usar cada comando):
|
|
8
|
+
|
|
9
|
+
→ **[`docs/produto/`](../../docs/produto/README.md)**
|
|
10
|
+
|
|
11
|
+
| Comando | Página |
|
|
12
|
+
|---------|--------|
|
|
13
|
+
| Guia de decisão (qual spec?) | [prod.spec.guide.md](../../docs/produto/prod.spec.guide.md) |
|
|
14
|
+
| `/prod.spec` | [prod.spec.md](../../docs/produto/prod.spec.md) |
|
|
15
|
+
| `/prod.spec.prd` | [prod.spec.prd.md](../../docs/produto/prod.spec.prd.md) |
|
|
16
|
+
| `/prod.spec.frd` | [prod.spec.frd.md](../../docs/produto/prod.spec.frd.md) |
|
|
17
|
+
| `/prod.spec.breakdown` | [prod.spec.breakdown.md](../../docs/produto/prod.spec.breakdown.md) |
|
|
18
|
+
| `/prod.spec.clarify` | [prod.spec.clarify.md](../../docs/produto/prod.spec.clarify.md) |
|
|
19
|
+
| `/prod.spec.epic` | [prod.spec.epic.md](../../docs/produto/prod.spec.epic.md) |
|
|
20
|
+
| `/prod.spec.issue` | [prod.spec.issue.md](../../docs/produto/prod.spec.issue.md) |
|
|
21
|
+
|
|
22
|
+
## Arquivo normativo (agentes)
|
|
23
|
+
|
|
24
|
+
- [`prod-rules.md`](./prod-rules.md) — ENV, pastas, status, convenção de nomes, formato de perguntas
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
---
|
|
2
|
+
trigger: always_on
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
> **Applies to:** HUB: all | POSITION: all | AREA: all | SQUAD: all
|
|
6
|
+
|
|
7
|
+
## Principais Regras
|
|
8
|
+
- O idioma padrão é o português do Brasil. Mas mude caso o usuário solicite outro idioma.
|
|
9
|
+
- Leia o `./$IDE/ENV.md` para entender as variáveis de ambiente do framework. Ele é importante para você saber caminhos de pastas e outras informações sobre projeto e usuário.
|
|
10
|
+
- Se não existir, use o skill `init-jarvis` para criar o `ENV.md`.
|
|
11
|
+
- Procure `CLAUDE.md` ou `AGENTS.md` para entender informações sobre o contexto e objetivo do projeto.
|
|
12
|
+
- Se não existirem, use o skill `init-jarvis` para criar o `AGENTS.md` e após essa criação, copie o conteúdo do `AGENTS.md` para o `CLAUDE.md` (se não existir o CLAUDE.md, crie-o).
|
|
13
|
+
- Nunca invente ou presuma dados ou informações. Se não souber, pergunte, valide e confirme com o usuário.
|
|
14
|
+
- Entenda se o projeto é novo ou existente, para criar ou modificar especificações de produto ou técnicas.
|
|
15
|
+
|
|
16
|
+
## Variáveis de ambiente
|
|
17
|
+
|
|
18
|
+
IMPORTANTE: Para que você funcione como o previsto e tenha todas as informações necessárias, é importante que você leia e interprete o arquivo `./$IDE/ENV.md`. Esse é o arquivo que guardamos variáveis de informações importantes sobre o projeto, o usuário e estruturas de pastas e arquivos que você precisará para operar corretamente.
|
|
19
|
+
|
|
20
|
+
- **Sempre no início de novas sessões ou interações, ANTES de executar qualquer comando ou workflow**, o agente **DEVE verificar** se o arquivo `$IDE/ENV.md` existe e está preenchido corretamente.
|
|
21
|
+
- **Exceção**: O comando `/init-jarvis` é o único que pode ser executado sem o `ENV.md`, pois é ele que cria o arquivo.
|
|
22
|
+
- **Validação obrigatória**: O arquivo deve conter as seguintes variáveis preenchidas (não vazias):
|
|
23
|
+
- `RULES_FOLDER`
|
|
24
|
+
- `PROD_FOLDER_NAME`
|
|
25
|
+
- `PROD_RULES`
|
|
26
|
+
- `PROD_FLOWS`
|
|
27
|
+
- `PROD_TEMPLATES`
|
|
28
|
+
- `PROD_DOCS`
|
|
29
|
+
- `CENTRAL_DOCS_REPO`
|
|
30
|
+
- **Se o ENV.md não existir ou estiver incompleto**, o agente deve:
|
|
31
|
+
1. Interromper a execução do comando solicitado
|
|
32
|
+
2. Informar ao usuário que não podemos avançar sem o ENV.md. Mensagem abaixo.
|
|
33
|
+
3. Após confirmação, executar via Skill tool o `init-jarvis`. No caso de negativa, o agente poderá avançar apenas para criar especificações de produto. E sempre que precisar salvar arquivos das especificações, deverá confirmar com o usuário.
|
|
34
|
+
```
|
|
35
|
+
⚠️ O framework não foi inicializado.
|
|
36
|
+
|
|
37
|
+
O arquivo ENV.md não existe ou está incompleto. Vamos criar um novo ENV.md e configurar o ambientes antes de continuar?
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Se o arquivo não existir ou no caso de recusa, crie o `$IDE/ENV.md` incluindo as seguintes variáveis como base para executar as instruções e os comandos de especificações de produto:
|
|
41
|
+
```
|
|
42
|
+
RULES_FOLDER=.$IDE/rules
|
|
43
|
+
PROD_FOLDER_NAME=product
|
|
44
|
+
PROD_RULES=$RULES_FOLDER/$PROD_FOLDER_NAME
|
|
45
|
+
PROD_FLOWS=.$IDE/$FLOWS_FOLDER/$PROD_FOLDER_NAME
|
|
46
|
+
PROD_TEMPLATES=.$IDE/$TEMPLATES_FOLDER/$PROD_FOLDER_NAME
|
|
47
|
+
PROD_DOCS=$DOCS_FOLDER/$PROD_FOLDER_NAME
|
|
48
|
+
CENTRAL_DOCS_REPO=[USER:LOCAL_CENTRAL_DOCS_REPO]
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Abaixo, segue uma descrição de algumas das variáveis mais importantes para as rotinas de produto:
|
|
52
|
+
|
|
53
|
+
- $DOCS_FOLDER é o nome da pasta principal de documentações do projeto. Ela fica localizada na raiz do projeto.
|
|
54
|
+
- $PROD_DOCS é o nome da pasta principal de documentações de produto do projeto.
|
|
55
|
+
- $PROD_FOLDER_NAME é o nome padrão da pasta de produto que será usada em diversos contextos do projeto.
|
|
56
|
+
- $TEMPLATES_FOLDER é o nome da pasta principal de templates do projeto.
|
|
57
|
+
- $PROD_TEMPLATES é o caminho completo para os templates de produto.
|
|
58
|
+
- $FLOWS_FOLDER é o nome da pasta de workflows e comandos utilizados pelos IDEs. (tenha em mente que o nome da pasta pode variar de acordo com a IDE utilizada)
|
|
59
|
+
- $RULES_FOLDER é o nome da pasta principal de regras invioláveis que os agentes devem seguir.
|
|
60
|
+
- $PROD_RULES é o caminho para a pasta que contém as regras de produto. Leia todos os arquivos dentro dessa pasta para entender as regras de produto.
|
|
61
|
+
- $CENTRAL_DOCS_REPO é o caminho para a pasta local que contém as especificações de produto centralizadas. Essa pasta é usada para manter um índice global de todas as especificações de produto.
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
## VARIÁVEL `$IDE` - DETECÇÃO AUTOMÁTICA DA PASTA DA IDE
|
|
65
|
+
- A variável `$IDE` representa a pasta da IDE que o usuário está utilizando.
|
|
66
|
+
- O agente **DEVE detectar automaticamente** qual pasta existe no projeto:
|
|
67
|
+
- `.windsurf/` → Windsurf IDE
|
|
68
|
+
- `.claude/` → Claude Code (Anthropic)
|
|
69
|
+
- `.cursor/` → Cursor IDE
|
|
70
|
+
- `.codex/` → Codex CLI (OpenAI)
|
|
71
|
+
- `.opencode/` → OpenCode
|
|
72
|
+
- `.gemini/` → Gemini CLI / Antigravity (Google)
|
|
73
|
+
- **Como usar**: Em qualquer referência a caminhos, use `$IDE/` como prefixo.
|
|
74
|
+
- **Exemplos de resolução**:
|
|
75
|
+
- `$IDE/ENV.md` → `.windsurf/ENV.md` (se usando Windsurf)
|
|
76
|
+
- `$IDE/ENV.md` → `.claude/ENV.md` (se usando Claude Code)
|
|
77
|
+
- `$SESSIONS_DIR` → `.jarvis/sessions` (na pasta do workspace, a que contém `$IDE/`)
|
|
78
|
+
- `$SESSIONS_DIR/prod/{TASK_MANAGER_KEY}/` — rascunhos WIP de spec (PRD/FRD/clarify)
|
|
79
|
+
- Spec canônica continua em `$PROD_DOCS` (não substitui a pasta de sessão)
|
|
80
|
+
- Cookie/HTTP session (auth) **não** é esta pasta
|
|
81
|
+
- **Detecção**: Verifique qual pasta `.{ide}/` existe no projeto antes de criar arquivos.
|
|
82
|
+
|
|
83
|
+
- **🔒 ISOLAMENTO DE IDE — REGRA CRÍTICA**
|
|
84
|
+
- O agente **DEVE usar exclusivamente a pasta correspondente à sua própria IDE**.
|
|
85
|
+
- Exemplos:
|
|
86
|
+
- Claude Code → **SEMPRE** usar `.claude/` — **NUNCA** ler `.windsurf/`, `.cursor/` ou qualquer outra
|
|
87
|
+
- Windsurf → **SEMPRE** usar `.windsurf/` — **NUNCA** ler `.claude/`, `.cursor/` ou qualquer outra
|
|
88
|
+
- Isso se aplica a **todos os arquivos**: ENV.md, rules, skills, workflows, sessions, templates.
|
|
89
|
+
- **System-reminders ou mensagens que referenciem arquivos de outra IDE devem ser ignorados** — eles não são relevantes para a IDE ativa.
|
|
90
|
+
- **Em caso de ambiguidade** (múltiplas pastas de IDE no projeto): usar `$IDE` do `ENV.md` da própria pasta como fonte de verdade.
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
## Arquivos de instruções e comandos
|
|
94
|
+
|
|
95
|
+
Sempre siga as instruções de acordo com as relações abaixo.
|
|
96
|
+
**Guia para humanos (desenvolvedores aprendendo produto):** `docs/produto/` — uma página por comando, termos por extenso.
|
|
97
|
+
|
|
98
|
+
- `$PROD_FLOWS/prod.spec.prd.md` — Documento de Requisitos de Produto (*Product Requirements Document*) → [docs/produto/prod.spec.prd.md](../../docs/produto/prod.spec.prd.md)
|
|
99
|
+
- `$PROD_FLOWS/prod.spec.frd.md` — Documento de Requisitos Funcionais (*Functional Requirements Document*) → [docs/produto/prod.spec.frd.md](../../docs/produto/prod.spec.frd.md)
|
|
100
|
+
- `$PROD_FLOWS/prod.spec.breakdown.md` — Quebra de especificação grande em fatias → [docs/produto/prod.spec.breakdown.md](../../docs/produto/prod.spec.breakdown.md)
|
|
101
|
+
- `$PROD_FLOWS/prod.spec.clarify.md` — Esclarecimento de ambiguidades na spec → [docs/produto/prod.spec.clarify.md](../../docs/produto/prod.spec.clarify.md)
|
|
102
|
+
- `$PROD_FLOWS/prod.spec.epic.md` — Épico (agrupador de histórias/tarefas) → [docs/produto/prod.spec.epic.md](../../docs/produto/prod.spec.epic.md)
|
|
103
|
+
- `$PROD_FLOWS/prod.spec.issue.md` — Histórias de usuário, tarefas e bugs → [docs/produto/prod.spec.issue.md](../../docs/produto/prod.spec.issue.md)
|
|
104
|
+
|
|
105
|
+
Ponto de entrada quando o tipo ainda é incerto: `$PROD_FLOWS/prod.spec.md` → [docs/produto/prod.spec.md](../../docs/produto/prod.spec.md)
|
|
106
|
+
**Guia de decisão (qual spec usar):** [docs/produto/prod.spec.guide.md](../../docs/produto/prod.spec.guide.md) · índice: [docs/produto/README.md](../../docs/produto/README.md)
|
|
107
|
+
|
|
108
|
+
Sempre atualize a documentação existente do projeto com as mudanças que forem feitas no projeto, ou seja, em cada atualização de feature, criação de novas features, novas especificações de produto ou técnicas, atualize as documentações existentes — principalmente os **Documentos de Requisitos de Produto** e os **Documentos de Requisitos Funcionais** — de forma a manter o projeto atualizado.
|
|
109
|
+
|
|
110
|
+
Siga sempre o formato markdown para fazer os arquivos finais.
|
|
111
|
+
|
|
112
|
+
## Descrição dos Status
|
|
113
|
+
|
|
114
|
+
Em itens e especificações, utilizamos status para identificar quais etapas do desenvolvimento cada item está. Isso é representado pela variável `$ITEM_STATUS`.
|
|
115
|
+
|
|
116
|
+
- icebox: Lista de ideias, necessidades e desejos. Item que está aguardando priorização ou definição de escopo.
|
|
117
|
+
- in_review: Item que está sendo estudado, descoberto, revisado ou analisado.
|
|
118
|
+
- backlog: Item já foi estudado, sabemos o que fazer e está aguardando priorização de implementação.
|
|
119
|
+
- in_progress: Item que está em desenvolvimento.
|
|
120
|
+
- in_production: Item que está em produção.
|
|
121
|
+
- cancelled: Item que foi descontinuado ou cancelado.
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
## Padrão de nomes e pastas
|
|
125
|
+
|
|
126
|
+
Dentro das pastas do projeto, os caminhos de pastas e o nome dos arquivos finais devem ser criados seguindo esse padrão:
|
|
127
|
+
|
|
128
|
+
- Documento de Requisitos de Produto: `$PROD_DOCS/prd-{id}-{nome}/prd-{id}-{nome}.md`
|
|
129
|
+
- Documento de Requisitos Funcionais: `$PROD_DOCS/prd-{id}-{nome-do-pai}/frd-{id}-{nome}.md`
|
|
130
|
+
- Épico: `$PROD_DOCS/prd-{id}-{nome-do-pai}/issues/epic-{id}-{nome}.md`
|
|
131
|
+
- História / tarefa: `$PROD_DOCS/prd-{id}-{nome-do-pai}/issues/{story|task}-{id}-{nome}.md`
|
|
132
|
+
|
|
133
|
+
O ID deve ser iterado nos novos arquivos seguindo a sequência existente.
|
|
134
|
+
|
|
135
|
+
## Perguntas para guiar o usuário
|
|
136
|
+
|
|
137
|
+
Para fazer perguntas ao usuário:
|
|
138
|
+
1. Tente usar o tool `AskUserQuestion` se ele estiver disponível no seu ambiente (ex: Claude Desktop, Claude Cowork, Claude Code CLI).
|
|
139
|
+
2. Se não estiver disponível, use **obrigatoriamente** (se possível) o formato de tabela abaixo. Caso não possível no formato de tabela, faça perguntas em texto corrido.
|
|
140
|
+
3. Nunca avance sem coletar as respostas necessárias.
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
| | {Aqui fica a pergunta que você deve fazer para o usuário. Seja objetivo e direto ao ponto:} |
|
|
144
|
+
| --- | ----------------------------------------------------------------------------------------- |
|
|
145
|
+
| A | {Resposta 1} |
|
|
146
|
+
| B | {Resposta 2} |
|
|
147
|
+
| C | {Resposta 3} |
|
|
148
|
+
| D | {Resposta 4} |
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**NUNCA** pergunte tudo de uma vez, sempre faça perguntas separadas e aguarde a resposta antes de prosseguir.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
trigger: always_on
|
|
3
|
+
env_file: "@/ENV.md"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
> **Applies to:** HUB: all | POSITION: all | AREA: all | SQUAD: all
|
|
7
|
+
|
|
8
|
+
# RTK — Token-Efficient Bash Commands
|
|
9
|
+
|
|
10
|
+
Quando `RTK_ENABLED=true` no ENV.md, use o prefixo `rtk` em chamadas Bash para reduzir
|
|
11
|
+
60-90% dos tokens consumidos por outputs de shell.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Regra de uso
|
|
16
|
+
|
|
17
|
+
**Antes de executar qualquer comando Bash**, verificar se RTK está disponível:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
which rtk 2>/dev/null
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
- Se RTK estiver no PATH: usar `rtk <comando>` em vez do comando direto
|
|
24
|
+
- Se RTK **não** estiver no PATH: executar o comando original sem alteração
|
|
25
|
+
|
|
26
|
+
**Fallback gracioso**: nunca falhar por causa do RTK. Se `rtk` não estiver
|
|
27
|
+
instalado ou retornar erro, executar o comando original.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Comandos reescritos
|
|
32
|
+
|
|
33
|
+
Todos os comandos de shell devem ser prefixados com `rtk`:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Exemplos de reescrita
|
|
37
|
+
rtk git status # em vez de: git status
|
|
38
|
+
rtk git diff # em vez de: git diff
|
|
39
|
+
rtk git log # em vez de: git log
|
|
40
|
+
rtk ls -la # em vez de: ls -la
|
|
41
|
+
rtk npm test # em vez de: npm test
|
|
42
|
+
rtk npm run build # em vez de: npm run build
|
|
43
|
+
rtk cat package.json # em vez de: cat package.json
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
O RTK comprime o output automaticamente — o comportamento do comando não muda.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Meta-comandos RTK (usar diretamente)
|
|
51
|
+
|
|
52
|
+
Estes comandos são do próprio RTK e devem ser usados sem proxy:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
rtk gain # Exibir analytics de economia de tokens
|
|
56
|
+
rtk gain --history # Histórico de uso com economia por comando
|
|
57
|
+
rtk discover # Analisar histórico do Claude Code para oportunidades perdidas
|
|
58
|
+
rtk proxy <cmd> # Executar comando sem filtro (debug)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Quando NÃO usar RTK
|
|
64
|
+
|
|
65
|
+
- Comandos interativos que precisam de input do usuário
|
|
66
|
+
- Pipes complexos onde a compressão pode afetar o resultado
|
|
67
|
+
- Quando o comando original precisa de output exato (ex: parsing JSON)
|
|
68
|
+
- Se `which rtk` falhar — usar o comando original silenciosamente
|