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.
Files changed (240) hide show
  1. package/AGENTS.md +416 -0
  2. package/LICENSE +21 -0
  3. package/README.md +190 -0
  4. package/agents/AGENTS.md +234 -0
  5. package/agents/README.md +309 -0
  6. package/agents/engineering/data/eng.data-engineer.agent.md +309 -0
  7. package/agents/engineering/eng.agent.md +303 -0
  8. package/agents/engineering/eng.bug-hunter.md +386 -0
  9. package/agents/engineering/eng.cybersecurity.agent.md +503 -0
  10. package/agents/engineering/eng.dev-code-reviewer.md +148 -0
  11. package/agents/engineering/eng.docs-writer.md +152 -0
  12. package/agents/engineering/eng.frontend.agent.md +117 -0
  13. package/agents/engineering/eng.rpa.agent.md +215 -0
  14. package/agents/engineering/eng.tech-analyst.agent.md +102 -0
  15. package/agents/engineering/eng.ux-designer.agent.md +193 -0
  16. package/agents/engineering/qa/eng.qa.cypress-specialist.md +109 -0
  17. package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +85 -0
  18. package/agents/engineering/qa/eng.qa.quality-strategist.md +111 -0
  19. package/agents/engineering/qa/eng.qa.test-architect.md +400 -0
  20. package/agents/engineering/qa/eng.qa.test-planner.md +477 -0
  21. package/agents/engineering/qa/eng.qa.testing-engineer.md +339 -0
  22. package/agents/product/prod.pm-checker.md +52 -0
  23. package/bin/commands/docs-publish.js +184 -0
  24. package/bin/commands/docs-sync.js +139 -0
  25. package/bin/commands/info.js +87 -0
  26. package/bin/commands/init.js +237 -0
  27. package/bin/commands/install-rtk.js +90 -0
  28. package/bin/commands/list.js +48 -0
  29. package/bin/commands/qa-signoff.js +112 -0
  30. package/bin/commands/whoami.js +43 -0
  31. package/bin/jarvis.js +159 -0
  32. package/bin/lib/auth/session.js +56 -0
  33. package/bin/lib/config/constants.js +123 -0
  34. package/bin/lib/config/ide-config.js +233 -0
  35. package/bin/lib/core/scanner.js +124 -0
  36. package/bin/lib/core/sync-engine.js +551 -0
  37. package/bin/lib/docs/fetch-file.sh +41 -0
  38. package/bin/lib/docs/publish-file.sh +284 -0
  39. package/bin/lib/docs/validate-frontmatter.js +157 -0
  40. package/bin/lib/env-loader.js +198 -0
  41. package/bin/lib/tasks/comment.js +131 -0
  42. package/bin/lib/utils/git-parser.js +145 -0
  43. package/bin/lib/utils/logger.js +104 -0
  44. package/bin/lib/utils/npmrc-parser.js +106 -0
  45. package/bin/lib/utils/paths.js +55 -0
  46. package/bin/lib/utils/ui.js +59 -0
  47. package/bin/lib/vcs/api.js +312 -0
  48. package/bin/lib/vcs/create-issue.js +43 -0
  49. package/bin/lib/vcs/create-merge.js +43 -0
  50. package/bin/lib/vcs/fetch-raw.js +30 -0
  51. package/bin/postinstall.js +41 -0
  52. package/members.md +25 -0
  53. package/package.json +55 -0
  54. package/rules/AGENTS.md +205 -0
  55. package/rules/engineering/data/data-rules.md +200 -0
  56. package/rules/engineering/eng-rules.md +243 -0
  57. package/rules/engineering/eng-security-rules.md +186 -0
  58. package/rules/engineering/eng.breakdown-subtasks-rules.md +585 -0
  59. package/rules/engineering/eng.bump-rules.md +27 -0
  60. package/rules/engineering/eng.docs-scraping-rules.md +64 -0
  61. package/rules/engineering/eng.downstream-flow-rules.md +297 -0
  62. package/rules/engineering/eng.integrations-rules.md +73 -0
  63. package/rules/engineering/eng.plan-rules.md +333 -0
  64. package/rules/engineering/eng.pr-rules.md +359 -0
  65. package/rules/engineering/eng.pre-pr-rules.md +103 -0
  66. package/rules/engineering/eng.start-rules.md +246 -0
  67. package/rules/engineering/eng.tech-spec-rules.md +968 -0
  68. package/rules/engineering/eng.work-rules.md +312 -0
  69. package/rules/engineering/frontend/eng.frontend-rules.md +147 -0
  70. package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +259 -0
  71. package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +137 -0
  72. package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +181 -0
  73. package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +120 -0
  74. package/rules/engineering/rpa/eng.rpa-rules.md +230 -0
  75. package/rules/product/README.md +24 -0
  76. package/rules/product/prod-rules.md +151 -0
  77. package/rules/rtk-rules.md +68 -0
  78. package/skills/AGENTS.md +290 -0
  79. package/skills/SKILLS-ROADMAP.md +333 -0
  80. package/skills/churn-audit/SKILL.md +385 -0
  81. package/skills/context-detect/SKILL.md +399 -0
  82. package/skills/context-detect/assets/context-profile-template.md +127 -0
  83. package/skills/docs-central/README.md +310 -0
  84. package/skills/docs-central/SKILL.md +423 -0
  85. package/skills/docs-index/SKILL.md +377 -0
  86. package/skills/eng-ai-engineer/SKILL.md +296 -0
  87. package/skills/eng-arch-c4/SKILL.md +358 -0
  88. package/skills/eng-arch-c4/assets/example-code.md +189 -0
  89. package/skills/eng-arch-c4/assets/example-component.md +105 -0
  90. package/skills/eng-arch-c4/assets/example-container.md +104 -0
  91. package/skills/eng-arch-c4/assets/example-context.md +81 -0
  92. package/skills/eng-backend/SKILL.md +776 -0
  93. package/skills/eng-browser-extension-builder/SKILL.md +385 -0
  94. package/skills/eng-cybersecurity/SKILL.md +645 -0
  95. package/skills/eng-data-bi/SKILL.md +199 -0
  96. package/skills/eng-data-debug/SKILL.md +307 -0
  97. package/skills/eng-data-engineer/SKILL.md +256 -0
  98. package/skills/eng-data-onboard/SKILL.md +310 -0
  99. package/skills/eng-data-orchestrator/SKILL.md +426 -0
  100. package/skills/eng-design-system/SKILL.md +619 -0
  101. package/skills/eng-docs-write/SKILL.md +312 -0
  102. package/skills/eng-frontend/SKILL.md +913 -0
  103. package/skills/eng-jira-comment/SKILL.md +17 -0
  104. package/skills/eng-microfrontend/SKILL.md +602 -0
  105. package/skills/eng-ms-trace/SKILL.md +469 -0
  106. package/skills/eng-nestjs/SKILL.md +791 -0
  107. package/skills/eng-performance-engineer/SKILL.md +312 -0
  108. package/skills/eng-pr/SKILL.md +339 -0
  109. package/skills/eng-qa-a11y-audit/SKILL.md +269 -0
  110. package/skills/eng-qa-bug-report/SKILL.md +1088 -0
  111. package/skills/eng-qa-bug-report/TASK_MANAGERS.md +138 -0
  112. package/skills/eng-qa-cypress-e2e/SKILL.md +177 -0
  113. package/skills/eng-qa-dev-guide/SKILL.md +164 -0
  114. package/skills/eng-qa-e2e/SKILL.md +400 -0
  115. package/skills/eng-qa-e2e-spec-writer/SKILL.md +322 -0
  116. package/skills/eng-qa-exploratory/SKILL.md +188 -0
  117. package/skills/eng-qa-gate/SKILL.md +370 -0
  118. package/skills/eng-qa-gate/assets/checklist-validacao.md +291 -0
  119. package/skills/eng-qa-graphql-contract/SKILL.md +256 -0
  120. package/skills/eng-qa-quality-report/SKILL.md +412 -0
  121. package/skills/eng-qa-test-plan/SKILL.md +466 -0
  122. package/skills/eng-qa-test-plan/assets/test-coverage-template.md +92 -0
  123. package/skills/eng-qa-test-plan/assets/test-patterns.md +178 -0
  124. package/skills/eng-qa-testsprite/SKILL.md +325 -0
  125. package/skills/eng-qa-testsprite/references/testsprite-mcp.md +224 -0
  126. package/skills/eng-qa-unit-test/SKILL.md +471 -0
  127. package/skills/eng-rabbitmq/SKILL.md +661 -0
  128. package/skills/eng-scraper/SKILL.md +683 -0
  129. package/skills/eng-scraper-robot-builder/SKILL.md +370 -0
  130. package/skills/eng-security-patch/SKILL.md +378 -0
  131. package/skills/eng-security-triage/SKILL.md +266 -0
  132. package/skills/eng-task-comment/SKILL.md +60 -0
  133. package/skills/eng-tech-analyst/SKILL.md +529 -0
  134. package/skills/eng-threat-model/SKILL.md +161 -0
  135. package/skills/init-jarvis/SKILL.md +1304 -0
  136. package/skills/init-jarvis/assets/mcp-configs.md +389 -0
  137. package/skills/init-jarvis/assets/onboarding-checklist.md +104 -0
  138. package/skills/init-jarvis/assets/setup-guide.md +360 -0
  139. package/skills/lovable-prompt-generator/SKILL.md +304 -0
  140. package/skills/prod-roadmap-report/README.md +303 -0
  141. package/skills/prod-roadmap-report/SKILL.md +198 -0
  142. package/skills/prod-roadmap-report/commands/status.compiled.single.team.md +23 -0
  143. package/skills/prod-roadmap-report/commands/status.list.projects.md +17 -0
  144. package/skills/prod-roadmap-report/commands/status.memory.md +192 -0
  145. package/skills/prod-roadmap-report/commands/status.roadmap.preview.md +94 -0
  146. package/skills/prod-roadmap-report/references/detailed-guide.md +236 -0
  147. package/skills/prod-roadmap-report/rules/detailed-guide.md +237 -0
  148. package/skills/prod-roadmap-report/rules/status-report-rules.md +44 -0
  149. package/skills/prod-roadmap-report/templates/template-multiple-teams-compiled-status.md +53 -0
  150. package/skills/prod-roadmap-report/templates/template-projects-list.md +23 -0
  151. package/skills/prod-roadmap-report/templates/template-single-team-compiled-status.md +60 -0
  152. package/skills/prod-roadmap-report/templates/template-single-team-status.md +49 -0
  153. package/skills/prod-specs/SKILL.md +108 -0
  154. package/skills/prod-specs/references/prod.spec.clarify.md +176 -0
  155. package/skills/prod-specs/references/prod.spec.epic.md +107 -0
  156. package/skills/prod-specs/references/prod.spec.frd.md +135 -0
  157. package/skills/prod-specs/references/prod.spec.issue.md +145 -0
  158. package/skills/prod-specs/references/prod.spec.prd.md +118 -0
  159. package/skills/prod-specs/rules/prod-spec-rules.md +186 -0
  160. package/skills/prod-specs/templates/prod-breakdown-template.md +136 -0
  161. package/skills/prod-specs/templates/prod-epic-template.md +76 -0
  162. package/skills/prod-specs/templates/prod-frd-template.md +172 -0
  163. package/skills/prod-specs/templates/prod-issue-template.md +68 -0
  164. package/skills/prod-specs/templates/prod-prd-full-template.md +159 -0
  165. package/skills/prod-specs/templates/prod-prd-template.md +173 -0
  166. package/skills/prod-specs-update/SKILL.md +272 -0
  167. package/skills/report-issue/SKILL.md +156 -0
  168. package/taxonomy.md +270 -0
  169. package/templates/AGENTS.md +189 -0
  170. package/templates/CDD aplicado a Prompts.md +182 -0
  171. package/templates/ENV-template.md +187 -0
  172. package/templates/engineering/AGENTS-template.md +71 -0
  173. package/templates/engineering/ARD-template.md +193 -0
  174. package/templates/engineering/CONTACTS-template.md +135 -0
  175. package/templates/engineering/PR-template.md +40 -0
  176. package/templates/engineering/RFC-Playbook.md +325 -0
  177. package/templates/engineering/RFC-template.md +199 -0
  178. package/templates/engineering/architecture-template.md +277 -0
  179. package/templates/engineering/breakdown-subtasks-template.md +582 -0
  180. package/templates/engineering/c4-model-template.md +516 -0
  181. package/templates/engineering/data-contract-template.md +135 -0
  182. package/templates/engineering/data-pipeline-template.md +163 -0
  183. package/templates/engineering/plan-template.md +255 -0
  184. package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +311 -0
  185. package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +249 -0
  186. package/templates/engineering/qa/qa.cypress-test-template.md +172 -0
  187. package/templates/engineering/qa/qa.exploratory-session-template.md +148 -0
  188. package/templates/engineering/qa/qa.quality-report-template.md +130 -0
  189. package/templates/engineering/qa/qa.release-signoff-template.md +54 -0
  190. package/templates/engineering/qa/qa.sprint-plan-template.md +49 -0
  191. package/templates/engineering/swagger-template.md +145 -0
  192. package/templates/engineering/tech-spec-template.md +497 -0
  193. package/templates/engineering/work-progress-template.md +155 -0
  194. package/workflows/AGENTS.md +240 -0
  195. package/workflows/README.md +160 -0
  196. package/workflows/all-tools.md +11 -0
  197. package/workflows/engineering/data/data.contract.md +202 -0
  198. package/workflows/engineering/data/data.new-pipeline.md +234 -0
  199. package/workflows/engineering/eng.breakdown-subtasks.md +420 -0
  200. package/workflows/engineering/eng.bug-audit.md +591 -0
  201. package/workflows/engineering/eng.build-tech-spec.md +1116 -0
  202. package/workflows/engineering/eng.create-ard-from-code.md +259 -0
  203. package/workflows/engineering/eng.create-ard.md +382 -0
  204. package/workflows/engineering/eng.create-rfc.md +245 -0
  205. package/workflows/engineering/eng.debug.md +479 -0
  206. package/workflows/engineering/eng.docs.md +40 -0
  207. package/workflows/engineering/eng.light-arch.md +84 -0
  208. package/workflows/engineering/eng.plan.md +213 -0
  209. package/workflows/engineering/eng.pr.md +466 -0
  210. package/workflows/engineering/eng.pre-pr.md +167 -0
  211. package/workflows/engineering/eng.review.md +185 -0
  212. package/workflows/engineering/eng.rpa.robot.md +342 -0
  213. package/workflows/engineering/eng.security-audit.md +312 -0
  214. package/workflows/engineering/eng.security-incident.md +275 -0
  215. package/workflows/engineering/eng.security-pipeline.md +210 -0
  216. package/workflows/engineering/eng.security-review.md +235 -0
  217. package/workflows/engineering/eng.start.md +494 -0
  218. package/workflows/engineering/eng.work.md +558 -0
  219. package/workflows/engineering/frontend/eng.frontend-component.md +190 -0
  220. package/workflows/engineering/frontend/eng.frontend-perf-audit.md +375 -0
  221. package/workflows/engineering/frontend/eng.frontend-review.md +185 -0
  222. package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +51 -0
  223. package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +51 -0
  224. package/workflows/engineering/qa/eng.qa-exploratory-session.md +60 -0
  225. package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +202 -0
  226. package/workflows/engineering/qa/eng.qa-quality-report.md +83 -0
  227. package/workflows/engineering/qa/eng.qa-refinement-entry.md +83 -0
  228. package/workflows/engineering/qa/eng.qa-release-signoff.md +170 -0
  229. package/workflows/engineering/qa/eng.qa-sprint-planning.md +100 -0
  230. package/workflows/engineering/ta/eng.ta.atendimento.md +93 -0
  231. package/workflows/product/prod.roadmap.preview.md +110 -0
  232. package/workflows/product/prod.spec.breakdown.md +163 -0
  233. package/workflows/product/prod.spec.clarify.md +178 -0
  234. package/workflows/product/prod.spec.epic.md +154 -0
  235. package/workflows/product/prod.spec.frd.md +96 -0
  236. package/workflows/product/prod.spec.issue.md +145 -0
  237. package/workflows/product/prod.spec.md +60 -0
  238. package/workflows/product/prod.spec.prd.md +100 -0
  239. package/workflows/taxonomy.md +92 -0
  240. package/workflows/warm-up.md +574 -0
@@ -0,0 +1,358 @@
1
+ ---
2
+ name: eng-arch-c4
3
+ description: Cria e mantém documentação de arquitetura usando C4 Model. Use quando precisar documentar sistemas com diagramas de Contexto, Container, Componente e Código.
4
+ argument-hint: "[nivel: context|container|component|code] [sistema-opcional]"
5
+ disable-model-invocation: false
6
+ allowed-tools: Read Write Edit Grep Glob Bash MCP
7
+ ---
8
+
9
+ # Arch C4 - Documentação de Arquitetura
10
+
11
+ Você é um **especialista em documentação de arquitetura de software** usando o modelo C4 para criar "mapas do código" em diferentes níveis de abstração.
12
+
13
+ ## Objetivo
14
+
15
+ Criar e manter documentação de arquitetura usando os 4 níveis do C4:
16
+ - **Context**: Visão geral do sistema e interações externas
17
+ - **Container**: Aplicações e datastores dentro do sistema
18
+ - **Component**: Componentes dentro de cada container
19
+ - **Code**: Detalhes de implementação (classes, interfaces) - raramente usado
20
+
21
+ > **Nota sobre Nível 4 (Code)**: Raramente documentado manualmente porque IDEs geram diagramas UML automaticamente, código muda rápido e o próprio código é a melhor documentação. Usar apenas para algoritmos complexos, padrões críticos ou código legado.
22
+
23
+ ## Entrada
24
+
25
+ - `$ARGUMENTS` - Nível do diagrama (context, container, component, code) e opcionalmente o sistema
26
+
27
+ **Exemplos de uso:**
28
+
29
+ ```
30
+ /arch-c4 context # Criar/Atualizar diagrama de contexto
31
+ /arch-c4 container # Criar/Atualizar diagrama de containers
32
+ /arch-c4 component api-backend # Detalhar componentes de um container
33
+ /arch-c4 code user-service # Diagrama de código (raro)
34
+ ```
35
+
36
+ ## Recursos
37
+
38
+ - **Script de detecção**: `$IDE/scripts/detect-stack.sh`
39
+ - **Template**: `$IDE/templates/engineering/c4-model-template.md`
40
+ - **Saída**: `$DOCS_FOLDER/engineering/c4/`
41
+
42
+ ### Exemplos de Output
43
+
44
+ | Nível | Arquivo |
45
+ |-------|---------|
46
+ | Context | `$IDE/skills/eng-arch-c4/assets/example-context.md` |
47
+ | Container | `$IDE/skills/eng-arch-c4/assets/example-container.md` |
48
+ | Component | `$IDE/skills/eng-arch-c4/assets/example-component.md` |
49
+ | Code | `$IDE/skills/eng-arch-c4/assets/example-code.md` |
50
+
51
+ ---
52
+
53
+ ## Pré-requisito
54
+
55
+ **IMPORTANTE**: Antes de executar, verificar se o `ENV.md` existe e está configurado:
56
+
57
+ ```bash
58
+ cat $IDE/ENV.md 2>/dev/null || echo "⚠️ ENV.md não encontrado. Execute /init-jarvis primeiro."
59
+ ```
60
+
61
+ ---
62
+
63
+ ## Hierarquia C4
64
+
65
+ ```
66
+ Context -> Quem usa? Com quem integra?
67
+ | zoom
68
+ Container -> Quais apps, APIs, bancos?
69
+ | zoom
70
+ Component -> Quais módulos internos?
71
+ | zoom
72
+ Code -> Quais classes/interfaces críticas?
73
+ ```
74
+
75
+ ---
76
+
77
+ ## Fluxo de Trabalho
78
+
79
+ ### 1. Verificar Documentação Existente
80
+
81
+ ```bash
82
+ ls -la $DOCS_FOLDER/engineering/c4/ 2>/dev/null || echo "Nenhum diagrama C4"
83
+ ls -la $DOCS_FOLDER/architecture/adr/ 2>/dev/null
84
+ ```
85
+
86
+ **Se existirem diagramas**: ler antes de modificar, propor atualizações incrementais.
87
+
88
+ ### 2. Detectar Stack e Padrões
89
+
90
+ Executar script de detecção:
91
+
92
+ ```bash
93
+ bash $IDE/scripts/detect-stack.sh
94
+ ```
95
+
96
+ O script detecta automaticamente:
97
+ - Linguagem e frameworks
98
+ - ORM e bancos de dados
99
+ - Mensageria e cache
100
+ - Padrão arquitetural (Clean, Hexagonal, DDD, MVC)
101
+ - Infraestrutura (Docker, CI/CD)
102
+
103
+ ### 3. Propor Diagrama (antes de criar)
104
+
105
+ **IMPORTANTE**: Sempre apresentar proposta ao usuário antes de gerar o diagrama.
106
+
107
+ ```markdown
108
+ ## Proposta de Diagrama C4 - {Nível}
109
+
110
+ ### Elementos Identificados
111
+
112
+ | Elemento | Tipo | Descrição |
113
+ |----------|------|-----------|
114
+ | {nome} | {Person/System/Container/Component} | {descrição} |
115
+
116
+ ### Relacionamentos
117
+
118
+ | De | Para | Descrição |
119
+ |----|------|-----------|
120
+ | {origem} | {destino} | {ação} |
121
+
122
+ ### Perguntas Pendentes
123
+
124
+ - [ ] {dúvida sobre o sistema que precisa ser esclarecida}
125
+
126
+ ---
127
+
128
+ Posso prosseguir com a geração do diagrama?
129
+ ```
130
+
131
+ > **Aguardar aprovação do usuário antes de gerar o diagrama.**
132
+
133
+ ### 4. Criar/Atualizar Diagrama
134
+
135
+ | Nível | Quando Usar | Saída |
136
+ |-------|-------------|-------|
137
+ | Context | Primeiro diagrama, big picture | `01-context.md` |
138
+ | Container | Arquitetura de alto nível | `02-container.md` |
139
+ | Component | Detalhar um container | `03-component-{nome}.md` |
140
+ | Code | Componentes complexos (raro) | `04-code-{nome}.md` |
141
+
142
+ Ver templates em `$IDE/templates/engineering/c4-model-template.md`
143
+
144
+ ### 5. Validar Diagrama
145
+
146
+ Após criar, verificar consistência:
147
+
148
+ ```bash
149
+ # Comparar elementos do diagrama com código real
150
+ ls -d src/*/ 2>/dev/null
151
+
152
+ # Verificar se containers existem
153
+ cat docker-compose.yml 2>/dev/null | grep -E "^\s+\w+:"
154
+ ```
155
+
156
+ ---
157
+
158
+ ## Guia por Nível
159
+
160
+ ### Context (Nível 1)
161
+
162
+ **Perguntas a responder:**
163
+ 1. Quem são os usuários do sistema?
164
+ 2. Com quais sistemas externos ele se comunica?
165
+ 3. Qual o propósito principal do sistema?
166
+
167
+ **Checklist:**
168
+ - [ ] Sistema principal identificado
169
+ - [ ] Usuários/personas mapeados
170
+ - [ ] Sistemas externos identificados
171
+ - [ ] Propósito claro
172
+
173
+ ### Container (Nível 2)
174
+
175
+ **Perguntas a responder:**
176
+ 1. Quais aplicações compõem o sistema?
177
+ 2. Quais bancos de dados são usados?
178
+ 3. Como os containers se comunicam?
179
+ 4. Há filas ou mensageria?
180
+
181
+ **Checklist:**
182
+ - [ ] Todos os containers identificados
183
+ - [ ] Tecnologias documentadas
184
+ - [ ] Comunicação clara
185
+ - [ ] Bancos e filas mapeados
186
+
187
+ ### Component (Nível 3)
188
+
189
+ **Perguntas a responder:**
190
+ 1. Quais são os principais módulos/serviços?
191
+ 2. Como eles se relacionam?
192
+ 3. Quais padrões são usados (MVC, Clean, Hexagonal)?
193
+
194
+ **Checklist:**
195
+ - [ ] Componentes principais identificados
196
+ - [ ] Responsabilidades claras
197
+ - [ ] Dependências mapeadas
198
+
199
+ ### Code (Nível 4) - Raramente usado
200
+
201
+ **Perguntas a responder:**
202
+ 1. Quais classes/interfaces são críticas?
203
+ 2. Há algoritmos complexos que precisam ser documentados?
204
+ 3. Existem padrões de design importantes (Factory, Strategy)?
205
+
206
+ **Quando usar:** Apenas para algoritmos complexos, padrões críticos ou código legado difícil de entender.
207
+
208
+ ---
209
+
210
+ ## Formato do Documento
211
+
212
+ ```markdown
213
+ # {Nível} - {Nome}
214
+
215
+ ## Visão Geral
216
+ {Descrição breve}
217
+
218
+ ## Diagrama
219
+ {PlantUML ou Mermaid}
220
+
221
+ ## Elementos
222
+ | Elemento | Tipo | Descrição | Tecnologia |
223
+ |----------|------|-----------|------------|
224
+
225
+ ## Relacionamentos
226
+ | De | Para | Descrição | Protocolo |
227
+ |----|------|-----------|-----------|
228
+
229
+ ## ADRs Relacionados
230
+ | ADR | Título | Impacto |
231
+ |-----|--------|---------|
232
+
233
+ ## Changelog
234
+ ### [Data] - vX.Y
235
+ - Mudança: {descrição}
236
+ - Motivo: {justificativa}
237
+ ```
238
+
239
+ ---
240
+
241
+ ## Fluxo de Atualização
242
+
243
+ Quando já existem diagramas:
244
+
245
+ ```bash
246
+ # Ver mudanças arquiteturais recentes
247
+ git log --oneline -20 -- "src/" "docker-compose*" "Dockerfile*"
248
+ git diff origin/main --name-only | grep -E "docker|config|src/(domain|infrastructure)"
249
+ ```
250
+
251
+ | Mudança Detectada | Nível | Ação |
252
+ |-------------------|-------|------|
253
+ | Novo sistema externo | Context | Adicionar |
254
+ | Novo container/serviço | Container | Adicionar |
255
+ | Novo módulo/componente | Component | Atualizar |
256
+
257
+ ---
258
+
259
+ ## Integração com ADRs
260
+
261
+ | Situação | ADR | C4 |
262
+ |----------|-----|-----|
263
+ | Novo sistema externo | Sim | Atualizar Context |
264
+ | Novo banco de dados | Sim | Atualizar Container |
265
+ | Mudança de pattern | Sim | Atualizar Component |
266
+
267
+ ---
268
+
269
+ ## Regras
270
+
271
+ ### Nunca
272
+ - Inventar elementos que não existem no código
273
+ - Documentar sem analisar o código real
274
+ - Misturar níveis de abstração no mesmo diagrama
275
+ - Criar novos diagramas sem verificar existentes
276
+ - Gerar diagrama sem aprovação do usuário
277
+ - Executar sem verificar o ENV.md
278
+
279
+ ### Sempre
280
+ - Verificar ENV.md antes de iniciar
281
+ - Analisar código antes de documentar
282
+ - Verificar diagramas existentes primeiro
283
+ - Propor antes de criar
284
+ - Usar nomenclatura consistente com o código
285
+ - Incluir tecnologias nos containers
286
+ - Manter changelog atualizado
287
+ - Referenciar ADRs relacionados
288
+
289
+ ---
290
+
291
+ ## Checklist de Conclusão
292
+
293
+ - [ ] ENV.md verificado
294
+ - [ ] Documentação existente verificada
295
+ - [ ] Stack detectada com script
296
+ - [ ] Proposta apresentada ao usuário
297
+ - [ ] Aprovação obtida
298
+ - [ ] Diagrama criado/atualizado
299
+ - [ ] Consistência validada
300
+ - [ ] Changelog adicionado
301
+ - [ ] ADRs referenciados (se aplicável)
302
+
303
+ ---
304
+
305
+ ## Mensagem de Conclusão
306
+
307
+ ```
308
+ ✅ Diagrama C4 criado/atualizado!
309
+
310
+ 📄 Arquivo: $DOCS_FOLDER/engineering/c4/{arquivo}.md
311
+ 📊 Nível: {nivel}
312
+ 🏗️ Sistema: {nome}
313
+
314
+ Stack detectada:
315
+ - Linguagem: {language}
316
+ - Framework: {framework}
317
+ - Pattern: {pattern}
318
+
319
+ Próximos passos:
320
+ 1. Revisar diagrama gerado
321
+ 2. Validar com o time
322
+ 3. Criar próximo nível se necessário
323
+
324
+ Referência: https://c4model.com
325
+ ```
326
+
327
+ ---
328
+
329
+ ## Tratamento de Erros
330
+
331
+ ### ENV.md não encontrado
332
+ - Interromper execução
333
+ - Orientar usuário a executar `/init-jarvis` primeiro
334
+
335
+ ### Script de detecção não encontrado
336
+ - Executar detecção manual com comandos básicos
337
+ - Verificar `package.json`, `docker-compose.yml`
338
+
339
+ ### Diagrama existente desatualizado
340
+ - Comparar com código atual
341
+ - Propor atualizações incrementais
342
+ - Não recriar do zero
343
+
344
+ ### Usuário não aprovou proposta
345
+ - Perguntar o que ajustar
346
+ - Refinar elementos/relacionamentos
347
+ - Apresentar nova proposta
348
+
349
+ ---
350
+
351
+ ## Ferramentas
352
+
353
+ | Ferramenta | Uso |
354
+ |------------|-----|
355
+ | PlantUML | Diagramas como código |
356
+ | C4-PlantUML | Extensão C4 para PlantUML |
357
+ | Mermaid | Alternativa mais simples |
358
+ | Structurizr | Ferramenta oficial C4 |
@@ -0,0 +1,189 @@
1
+ # Code - Skill Validator
2
+
3
+ ## Visão Geral
4
+
5
+ Diagrama de código (Nível 4) do componente Skill Validator, mostrando as classes e interfaces responsáveis por validar a estrutura dos skills.
6
+
7
+ > **Nota**: Este nível é raramente usado. Documentado aqui apenas como exemplo de referência para algoritmos complexos ou padrões críticos.
8
+
9
+ ## Diagrama
10
+
11
+ ```plantuml
12
+ @startuml
13
+ !theme plain
14
+ skinparam classAttributeIconSize 0
15
+ skinparam classFontStyle bold
16
+
17
+ title Diagrama de Código - Skill Validator
18
+
19
+ ' === INTERFACES ===
20
+ interface ISkillValidator {
21
+ +validate(skill: Skill): ValidationResult
22
+ +validateFrontmatter(frontmatter: Frontmatter): ValidationResult
23
+ +validateContent(content: string): ValidationResult
24
+ }
25
+
26
+ interface IValidationRule {
27
+ +name: string
28
+ +validate(value: any): boolean
29
+ +getErrorMessage(): string
30
+ }
31
+
32
+ interface ISkillRepository {
33
+ +findByName(name: string): Promise<Skill>
34
+ +exists(name: string): Promise<boolean>
35
+ }
36
+
37
+ ' === VALUE OBJECTS ===
38
+ class SkillName <<Value Object>> {
39
+ -value: string
40
+ +{static} create(value: string): SkillName
41
+ +validate(): boolean
42
+ +toString(): string
43
+ +isKebabCase(): boolean
44
+ }
45
+
46
+ class SkillDescription <<Value Object>> {
47
+ -value: string
48
+ -trigger: string
49
+ +{static} create(value: string): SkillDescription
50
+ +hasTrigger(): boolean
51
+ +getTrigger(): string
52
+ }
53
+
54
+ ' === ENTIDADES ===
55
+ class Skill <<Entity>> {
56
+ -name: SkillName
57
+ -description: SkillDescription
58
+ -argumentHint: string
59
+ -allowedTools: string[]
60
+ -content: string
61
+ --
62
+ +{static} create(props: CreateSkillProps): Skill
63
+ +getName(): SkillName
64
+ +getDescription(): SkillDescription
65
+ +getAllowedTools(): string[]
66
+ +hasRequiredFields(): boolean
67
+ }
68
+
69
+ class Frontmatter <<Value Object>> {
70
+ -name: string
71
+ -description: string
72
+ -argumentHint: string
73
+ -disableModelInvocation: boolean
74
+ -allowedTools: string[]
75
+ --
76
+ +{static} parse(yaml: string): Frontmatter
77
+ +toSkill(): Skill
78
+ +isValid(): boolean
79
+ }
80
+
81
+ class ValidationResult <<Value Object>> {
82
+ -isValid: boolean
83
+ -errors: ValidationError[]
84
+ --
85
+ +{static} success(): ValidationResult
86
+ +{static} failure(errors: ValidationError[]): ValidationResult
87
+ +addError(error: ValidationError): void
88
+ +hasErrors(): boolean
89
+ +getErrors(): ValidationError[]
90
+ }
91
+
92
+ class ValidationError <<Value Object>> {
93
+ -field: string
94
+ -message: string
95
+ -rule: string
96
+ --
97
+ +{static} create(field: string, message: string, rule: string): ValidationError
98
+ +toString(): string
99
+ }
100
+
101
+ ' === REGRAS DE VALIDAÇÃO ===
102
+ class RequiredFieldRule <<Rule>> {
103
+ -fieldName: string
104
+ +validate(value: any): boolean
105
+ +getErrorMessage(): string
106
+ }
107
+
108
+ class KebabCaseRule <<Rule>> {
109
+ +validate(value: string): boolean
110
+ +getErrorMessage(): string
111
+ }
112
+
113
+ class DescriptionTriggerRule <<Rule>> {
114
+ +validate(value: string): boolean
115
+ +getErrorMessage(): string
116
+ }
117
+
118
+ ' === SERVIÇO DE VALIDAÇÃO ===
119
+ class SkillValidator <<Service>> {
120
+ -rules: IValidationRule[]
121
+ -repository: ISkillRepository
122
+ --
123
+ +validate(skill: Skill): ValidationResult
124
+ +validateFrontmatter(frontmatter: Frontmatter): ValidationResult
125
+ +validateContent(content: string): ValidationResult
126
+ -applyRules(value: any, rules: IValidationRule[]): ValidationError[]
127
+ }
128
+
129
+ ' === RELACIONAMENTOS ===
130
+ Skill -- SkillName : identity
131
+ Skill -- SkillDescription : contains
132
+ Skill ..> Frontmatter : created from
133
+
134
+ Frontmatter ..> Skill : creates
135
+
136
+ ValidationResult -- ValidationError : contains
137
+
138
+ SkillValidator ..|> ISkillValidator : implements
139
+ SkillValidator --> IValidationRule : uses
140
+ SkillValidator --> ISkillRepository : uses
141
+ SkillValidator ..> ValidationResult : returns
142
+ SkillValidator ..> Skill : validates
143
+
144
+ RequiredFieldRule ..|> IValidationRule
145
+ KebabCaseRule ..|> IValidationRule
146
+ DescriptionTriggerRule ..|> IValidationRule
147
+
148
+ @enduml
149
+ ```
150
+
151
+ ## Elementos
152
+
153
+ | Elemento | Tipo | Descrição | Responsabilidade |
154
+ |----------|------|-----------|------------------|
155
+ | ISkillValidator | Interface | Contrato de validação de skills | Define métodos de validação |
156
+ | IValidationRule | Interface | Contrato de regra de validação | Define estrutura de regras |
157
+ | ISkillRepository | Interface | Contrato de repositório | Acesso a skills existentes |
158
+ | SkillName | Value Object | Nome do skill | Validação de formato kebab-case |
159
+ | SkillDescription | Value Object | Descrição com trigger | Extração de trigger de uso |
160
+ | Skill | Entity | Entidade principal | Representa um skill completo |
161
+ | Frontmatter | Value Object | Metadados YAML | Parse e validação de frontmatter |
162
+ | ValidationResult | Value Object | Resultado da validação | Agrupa erros encontrados |
163
+ | ValidationError | Value Object | Erro individual | Representa um erro específico |
164
+ | RequiredFieldRule | Rule | Regra de campo obrigatório | Valida presença de campo |
165
+ | KebabCaseRule | Rule | Regra de formato | Valida formato kebab-case |
166
+ | DescriptionTriggerRule | Rule | Regra de trigger | Valida presença de "Use quando" |
167
+ | SkillValidator | Service | Serviço de validação | Orquestra validação completa |
168
+
169
+ ## Padrões Utilizados
170
+
171
+ | Padrão | Onde | Por quê |
172
+ |--------|------|---------|
173
+ | Value Object | SkillName, ValidationResult | Imutabilidade e validação no construtor |
174
+ | Strategy | IValidationRule | Regras intercambiáveis |
175
+ | Repository | ISkillRepository | Abstração de acesso a dados |
176
+ | Result Object | ValidationResult | Evita exceções para fluxo de validação |
177
+
178
+ ## ADRs Relacionados
179
+
180
+ | ADR | Título | Impacto |
181
+ |-----|--------|---------|
182
+ | ADR-005 | Padrão de validação | Define uso de Result Object |
183
+ | ADR-006 | Value Objects para domínio | Define imutabilidade |
184
+
185
+ ## Changelog
186
+
187
+ ### [2025-01-24] - v1.0
188
+ - Criação: Diagrama de código do Skill Validator
189
+ - Motivo: Documentar padrões de validação como referência
@@ -0,0 +1,105 @@
1
+ # Component - Skills Engine
2
+
3
+ ## Visão Geral
4
+
5
+ Diagrama de componentes do Skills Engine, detalhando os módulos internos responsáveis por processar e executar skills do JARVIS Framework.
6
+
7
+ ## Diagrama
8
+
9
+ ```plantuml
10
+ @startuml C4_Component
11
+ !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml
12
+
13
+ LAYOUT_WITH_LEGEND()
14
+
15
+ title Skills Engine - Componentes
16
+
17
+ Container_Boundary(skills, "Skills Engine") {
18
+
19
+ ' === ENTRADA ===
20
+ Component(parser, "Skill Parser", "Markdown Parser", "Interpreta frontmatter e conteúdo do skill")
21
+ Component(validator, "Skill Validator", "TypeScript", "Valida estrutura e campos obrigatórios")
22
+ Component(loader, "Skill Loader", "Filesystem", "Carrega skills do diretório")
23
+
24
+ ' === PROCESSAMENTO ===
25
+ Component(resolver, "Variable Resolver", "TypeScript", "Resolve variáveis como $IDE, $DOCS_FOLDER")
26
+ Component(executor, "Skill Executor", "MCP/Shell", "Executa comandos e ferramentas permitidas")
27
+ Component(context, "Context Manager", "TypeScript", "Gerencia contexto da sessão")
28
+
29
+ ' === SAÍDA ===
30
+ Component(formatter, "Output Formatter", "Markdown", "Formata saída para o usuário")
31
+ Component(logger, "Activity Logger", "Filesystem", "Registra atividades e erros")
32
+ }
33
+
34
+ ' === EXTERNOS ===
35
+ Container(cli, "CLI Interface", "Shell")
36
+ Container(templates, "Template Engine", "Markdown")
37
+ Container(rules, "Rules Engine", "Markdown")
38
+ ContainerDb(env, "ENV Config", "Markdown")
39
+ ContainerDb(sessions, "Sessions", "Filesystem")
40
+
41
+ ' === FLUXO DE ENTRADA ===
42
+ Rel(cli, loader, "Solicita skill")
43
+ Rel(loader, parser, "Envia conteúdo")
44
+ Rel(parser, validator, "Valida estrutura")
45
+
46
+ ' === FLUXO DE PROCESSAMENTO ===
47
+ Rel(validator, resolver, "Skill válido")
48
+ Rel(resolver, env, "Lê variáveis")
49
+ Rel(resolver, executor, "Skill resolvido")
50
+ Rel(executor, context, "Atualiza contexto")
51
+ Rel(executor, templates, "Usa templates")
52
+ Rel(executor, rules, "Aplica regras")
53
+
54
+ ' === FLUXO DE SAÍDA ===
55
+ Rel(executor, formatter, "Resultado")
56
+ Rel(formatter, cli, "Resposta formatada")
57
+ Rel(executor, logger, "Registra atividade")
58
+ Rel(context, sessions, "Persiste sessão")
59
+
60
+ @enduml
61
+ ```
62
+
63
+ ## Elementos
64
+
65
+ | Elemento | Tipo | Descrição | Tecnologia |
66
+ |----------|------|-----------|------------|
67
+ | Skill Parser | Componente | Interpreta frontmatter e conteúdo do skill | Markdown Parser |
68
+ | Skill Validator | Componente | Valida estrutura e campos obrigatórios | TypeScript |
69
+ | Skill Loader | Componente | Carrega skills do diretório | Filesystem |
70
+ | Variable Resolver | Componente | Resolve variáveis como $IDE, $DOCS_FOLDER | TypeScript |
71
+ | Skill Executor | Componente | Executa comandos e ferramentas permitidas | MCP/Shell |
72
+ | Context Manager | Componente | Gerencia contexto da sessão | TypeScript |
73
+ | Output Formatter | Componente | Formata saída para o usuário | Markdown |
74
+ | Activity Logger | Componente | Registra atividades e erros | Filesystem |
75
+
76
+ ## Relacionamentos
77
+
78
+ | De | Para | Descrição | Protocolo |
79
+ |----|------|-----------|-----------|
80
+ | CLI Interface | Skill Loader | Solicita skill | Função |
81
+ | Skill Loader | Skill Parser | Envia conteúdo | Interno |
82
+ | Skill Parser | Skill Validator | Valida estrutura | Interno |
83
+ | Skill Validator | Variable Resolver | Skill válido | Interno |
84
+ | Variable Resolver | ENV Config | Lê variáveis | Filesystem |
85
+ | Variable Resolver | Skill Executor | Skill resolvido | Interno |
86
+ | Skill Executor | Context Manager | Atualiza contexto | Interno |
87
+ | Skill Executor | Template Engine | Usa templates | Filesystem |
88
+ | Skill Executor | Rules Engine | Aplica regras | Filesystem |
89
+ | Skill Executor | Output Formatter | Resultado | Interno |
90
+ | Output Formatter | CLI Interface | Resposta formatada | Função |
91
+ | Skill Executor | Activity Logger | Registra atividade | Filesystem |
92
+ | Context Manager | Sessions | Persiste sessão | Filesystem |
93
+
94
+ ## ADRs Relacionados
95
+
96
+ | ADR | Título | Impacto |
97
+ |-----|--------|---------|
98
+ | ADR-002 | Integração via MCP | Define protocolo do executor |
99
+ | ADR-004 | Variáveis de ambiente | Define comportamento do resolver |
100
+
101
+ ## Changelog
102
+
103
+ ### [2025-01-24] - v1.0
104
+ - Criação: Diagrama de componentes do Skills Engine
105
+ - Motivo: Documentar arquitetura interna do processador de skills