@luanpdd/kit-mcp 1.21.0 → 1.26.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 (275) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +914 -648
  3. package/kit/COMANDOS.md +138 -138
  4. package/kit/README.md +76 -52
  5. package/kit/agents/advisor-researcher.md +106 -106
  6. package/kit/agents/assumptions-analyzer.md +107 -107
  7. package/kit/agents/audit-log-implementer.md +138 -0
  8. package/kit/agents/auditor-consistencia-isolamento.md +413 -0
  9. package/kit/agents/codebase-mapper.md +768 -768
  10. package/kit/agents/crm-pipeline-implementer.md +106 -0
  11. package/kit/agents/debugger.md +813 -772
  12. package/kit/agents/detector-tenant-quente.md +337 -0
  13. package/kit/agents/evolution-go-integrator.md +21 -0
  14. package/kit/agents/example-reviewer.md +21 -21
  15. package/kit/agents/executor.md +564 -523
  16. package/kit/agents/integration-checker.md +200 -200
  17. package/kit/agents/invite-flow-implementer.md +52 -0
  18. package/kit/agents/lgpd-compliance-auditor.md +89 -0
  19. package/kit/agents/multi-tenant-isolation-auditor.md +10 -0
  20. package/kit/agents/multi-tenant-rls-writer.md +78 -0
  21. package/kit/agents/nyquist-auditor.md +178 -178
  22. package/kit/agents/org-onboarding-implementer.md +21 -0
  23. package/kit/agents/phase-researcher.md +696 -696
  24. package/kit/agents/plan-checker.md +272 -272
  25. package/kit/agents/planner.md +922 -891
  26. package/kit/agents/project-researcher.md +652 -652
  27. package/kit/agents/research-synthesizer.md +245 -245
  28. package/kit/agents/roadmapper.md +677 -677
  29. package/kit/agents/supabase-architect.md +27 -0
  30. package/kit/agents/supabase-auth-bootstrapper.md +80 -0
  31. package/kit/agents/supabase-column-privileges-writer.md +399 -0
  32. package/kit/agents/supabase-migration-writer.md +141 -14
  33. package/kit/agents/supabase-rbac-implementer.md +392 -0
  34. package/kit/agents/supabase-rls-hardener.md +521 -0
  35. package/kit/agents/supabase-rls-writer.md +105 -9
  36. package/kit/agents/supabase-roles-implementer.md +355 -0
  37. package/kit/agents/super-admin-implementer.md +99 -0
  38. package/kit/agents/ui-auditor.md +437 -437
  39. package/kit/agents/ui-checker.md +302 -302
  40. package/kit/agents/ui-researcher.md +355 -355
  41. package/kit/agents/user-profiler.md +175 -175
  42. package/kit/agents/validador-evolucao-schema.md +335 -0
  43. package/kit/agents/verifier.md +728 -728
  44. package/kit/commands/adicionar-backlog.md +75 -75
  45. package/kit/commands/adicionar-fase.md +42 -42
  46. package/kit/commands/adicionar-tarefa.md +45 -45
  47. package/kit/commands/adicionar-testes.md +41 -41
  48. package/kit/commands/ajuda.md +21 -21
  49. package/kit/commands/atualizar.md +37 -37
  50. package/kit/commands/auditar-marco.md +179 -179
  51. package/kit/commands/auditar-uat.md +23 -23
  52. package/kit/commands/autonomo.md +40 -40
  53. package/kit/commands/branch-pr.md +24 -24
  54. package/kit/commands/concluir-marco.md +247 -247
  55. package/kit/commands/configuracoes.md +36 -36
  56. package/kit/commands/dados-distribuidos.md +188 -0
  57. package/kit/commands/definir-perfil.md +10 -10
  58. package/kit/commands/depurar.md +190 -190
  59. package/kit/commands/discutir-fase.md +131 -131
  60. package/kit/commands/entrar-discord.md +17 -17
  61. package/kit/commands/estatisticas.md +18 -18
  62. package/kit/commands/example-greeting.md +33 -33
  63. package/kit/commands/executar-fase.md +58 -58
  64. package/kit/commands/expresso.md +56 -56
  65. package/kit/commands/fase-ui.md +34 -34
  66. package/kit/commands/fazer.md +57 -57
  67. package/kit/commands/fio.md +125 -125
  68. package/kit/commands/fluxos-trabalho.md +64 -64
  69. package/kit/commands/forense.md +176 -176
  70. package/kit/commands/gerenciador.md +38 -38
  71. package/kit/commands/inserir-fase.md +31 -31
  72. package/kit/commands/limpeza.md +17 -17
  73. package/kit/commands/listar-hipoteses-fase.md +45 -45
  74. package/kit/commands/listar-workspaces.md +18 -18
  75. package/kit/commands/mapear-codebase.md +70 -70
  76. package/kit/commands/nota.md +33 -33
  77. package/kit/commands/novo-marco.md +43 -43
  78. package/kit/commands/novo-projeto.md +41 -41
  79. package/kit/commands/novo-workspace.md +43 -43
  80. package/kit/commands/pausar-trabalho.md +37 -37
  81. package/kit/commands/perfil-usuario.md +45 -45
  82. package/kit/commands/pesquisar-fase.md +195 -195
  83. package/kit/commands/planejar-fase.md +67 -67
  84. package/kit/commands/planejar-lacunas.md +33 -33
  85. package/kit/commands/plantar-ideia.md +25 -25
  86. package/kit/commands/progresso.md +24 -24
  87. package/kit/commands/proximo.md +30 -30
  88. package/kit/commands/publicar.md +490 -490
  89. package/kit/commands/rapido.md +35 -35
  90. package/kit/commands/reaplicar-patches.md +124 -124
  91. package/kit/commands/relatorio-sessao.md +19 -19
  92. package/kit/commands/remover-fase.md +31 -31
  93. package/kit/commands/remover-workspace.md +26 -26
  94. package/kit/commands/resumo-marco.md +50 -50
  95. package/kit/commands/retomar-trabalho.md +40 -40
  96. package/kit/commands/revisar-backlog.md +60 -60
  97. package/kit/commands/revisar-ui.md +32 -32
  98. package/kit/commands/revisar.md +37 -37
  99. package/kit/commands/saude.md +21 -21
  100. package/kit/commands/setup-notion.md +93 -93
  101. package/kit/commands/supabase.md +55 -8
  102. package/kit/commands/sync-main.md +68 -68
  103. package/kit/commands/validar-fase.md +35 -35
  104. package/kit/commands/verificar-tarefas.md +44 -44
  105. package/kit/commands/verificar-trabalho.md +64 -64
  106. package/kit/file-manifest.json +52 -32
  107. package/kit/framework/bin/lib/commands.cjs +959 -959
  108. package/kit/framework/bin/lib/config.cjs +442 -442
  109. package/kit/framework/bin/lib/core.cjs +1230 -1230
  110. package/kit/framework/bin/lib/frontmatter.cjs +336 -336
  111. package/kit/framework/bin/lib/init.cjs +1442 -1442
  112. package/kit/framework/bin/lib/milestone.cjs +252 -252
  113. package/kit/framework/bin/lib/model-profiles.cjs +68 -68
  114. package/kit/framework/bin/lib/phase.cjs +888 -888
  115. package/kit/framework/bin/lib/profile-output.cjs +952 -952
  116. package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
  117. package/kit/framework/bin/lib/roadmap.cjs +329 -329
  118. package/kit/framework/bin/lib/security.cjs +382 -382
  119. package/kit/framework/bin/lib/state.cjs +1031 -1031
  120. package/kit/framework/bin/lib/template.cjs +222 -222
  121. package/kit/framework/bin/lib/uat.cjs +282 -282
  122. package/kit/framework/bin/lib/verify.cjs +888 -888
  123. package/kit/framework/bin/lib/workstream.cjs +491 -491
  124. package/kit/framework/bin/tools.cjs +918 -918
  125. package/kit/framework/commands/workstreams.md +63 -63
  126. package/kit/framework/references/checkpoints.md +778 -778
  127. package/kit/framework/references/continuation-format.md +249 -249
  128. package/kit/framework/references/decimal-phase-calculation.md +64 -64
  129. package/kit/framework/references/git-integration.md +295 -295
  130. package/kit/framework/references/git-planning-commit.md +38 -38
  131. package/kit/framework/references/model-profile-resolution.md +36 -36
  132. package/kit/framework/references/model-profiles.md +139 -139
  133. package/kit/framework/references/phase-argument-parsing.md +61 -61
  134. package/kit/framework/references/planning-config.md +202 -202
  135. package/kit/framework/references/questioning.md +162 -162
  136. package/kit/framework/references/tdd.md +263 -263
  137. package/kit/framework/references/ui-brand.md +160 -160
  138. package/kit/framework/references/user-profiling.md +657 -657
  139. package/kit/framework/references/verification-patterns.md +612 -612
  140. package/kit/framework/references/workstream-flag.md +58 -58
  141. package/kit/framework/templates/DEBUG.md +164 -164
  142. package/kit/framework/templates/UAT.md +265 -265
  143. package/kit/framework/templates/UI-SPEC.md +100 -100
  144. package/kit/framework/templates/VALIDATION.md +76 -76
  145. package/kit/framework/templates/claude-md.md +122 -122
  146. package/kit/framework/templates/codebase/architecture.md +185 -185
  147. package/kit/framework/templates/codebase/concerns.md +205 -205
  148. package/kit/framework/templates/codebase/conventions.md +204 -204
  149. package/kit/framework/templates/codebase/integrations.md +192 -192
  150. package/kit/framework/templates/codebase/stack.md +158 -158
  151. package/kit/framework/templates/codebase/structure.md +199 -199
  152. package/kit/framework/templates/codebase/testing.md +301 -301
  153. package/kit/framework/templates/config.json +44 -44
  154. package/kit/framework/templates/context.md +352 -352
  155. package/kit/framework/templates/continue-here.md +78 -78
  156. package/kit/framework/templates/copilot-instructions.md +7 -7
  157. package/kit/framework/templates/debug-subagent-prompt.md +91 -91
  158. package/kit/framework/templates/dev-preferences.md +20 -20
  159. package/kit/framework/templates/discovery.md +146 -146
  160. package/kit/framework/templates/discussion-log.md +63 -63
  161. package/kit/framework/templates/milestone-archive.md +123 -123
  162. package/kit/framework/templates/milestone.md +115 -115
  163. package/kit/framework/templates/phase-prompt.md +610 -610
  164. package/kit/framework/templates/planner-subagent-prompt.md +117 -117
  165. package/kit/framework/templates/project.md +186 -186
  166. package/kit/framework/templates/requirements.md +231 -231
  167. package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
  168. package/kit/framework/templates/research-project/FEATURES.md +147 -147
  169. package/kit/framework/templates/research-project/PITFALLS.md +200 -200
  170. package/kit/framework/templates/research-project/STACK.md +120 -120
  171. package/kit/framework/templates/research-project/SUMMARY.md +170 -170
  172. package/kit/framework/templates/research.md +419 -419
  173. package/kit/framework/templates/retrospective.md +54 -54
  174. package/kit/framework/templates/roadmap.md +202 -202
  175. package/kit/framework/templates/state.md +176 -176
  176. package/kit/framework/templates/summary-complex.md +59 -59
  177. package/kit/framework/templates/summary-minimal.md +41 -41
  178. package/kit/framework/templates/summary-standard.md +48 -48
  179. package/kit/framework/templates/summary.md +209 -209
  180. package/kit/framework/templates/user-profile.md +146 -146
  181. package/kit/framework/templates/user-setup.md +256 -256
  182. package/kit/framework/templates/verification-report.md +258 -258
  183. package/kit/framework/workflows/add-phase.md +112 -112
  184. package/kit/framework/workflows/add-tests.md +351 -351
  185. package/kit/framework/workflows/add-todo.md +158 -158
  186. package/kit/framework/workflows/audit-milestone.md +340 -340
  187. package/kit/framework/workflows/audit-uat.md +109 -109
  188. package/kit/framework/workflows/autonomous.md +891 -891
  189. package/kit/framework/workflows/check-todos.md +177 -177
  190. package/kit/framework/workflows/cleanup.md +152 -152
  191. package/kit/framework/workflows/complete-milestone.md +696 -696
  192. package/kit/framework/workflows/diagnose-issues.md +231 -231
  193. package/kit/framework/workflows/discovery-phase.md +289 -289
  194. package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
  195. package/kit/framework/workflows/discuss-phase.md +784 -784
  196. package/kit/framework/workflows/do.md +104 -104
  197. package/kit/framework/workflows/execute-phase.md +838 -838
  198. package/kit/framework/workflows/execute-plan.md +510 -510
  199. package/kit/framework/workflows/fast.md +102 -102
  200. package/kit/framework/workflows/forensics.md +265 -265
  201. package/kit/framework/workflows/health.md +181 -181
  202. package/kit/framework/workflows/help.md +619 -619
  203. package/kit/framework/workflows/insert-phase.md +130 -130
  204. package/kit/framework/workflows/list-phase-assumptions.md +178 -178
  205. package/kit/framework/workflows/list-workspaces.md +56 -56
  206. package/kit/framework/workflows/manager.md +362 -362
  207. package/kit/framework/workflows/map-codebase.md +377 -377
  208. package/kit/framework/workflows/milestone-summary.md +223 -223
  209. package/kit/framework/workflows/new-milestone.md +486 -486
  210. package/kit/framework/workflows/new-project.md +1159 -1159
  211. package/kit/framework/workflows/new-workspace.md +237 -237
  212. package/kit/framework/workflows/next.md +97 -97
  213. package/kit/framework/workflows/node-repair.md +92 -92
  214. package/kit/framework/workflows/note.md +156 -156
  215. package/kit/framework/workflows/pause-work.md +176 -176
  216. package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
  217. package/kit/framework/workflows/plan-phase.md +765 -765
  218. package/kit/framework/workflows/plant-seed.md +169 -169
  219. package/kit/framework/workflows/pr-branch.md +129 -129
  220. package/kit/framework/workflows/profile-user.md +450 -450
  221. package/kit/framework/workflows/progress.md +507 -507
  222. package/kit/framework/workflows/quick.md +757 -757
  223. package/kit/framework/workflows/remove-phase.md +155 -155
  224. package/kit/framework/workflows/remove-workspace.md +90 -90
  225. package/kit/framework/workflows/research-phase.md +82 -82
  226. package/kit/framework/workflows/resume-project.md +326 -326
  227. package/kit/framework/workflows/review.md +228 -228
  228. package/kit/framework/workflows/session-report.md +146 -146
  229. package/kit/framework/workflows/settings.md +283 -283
  230. package/kit/framework/workflows/ship.md +228 -228
  231. package/kit/framework/workflows/stats.md +60 -60
  232. package/kit/framework/workflows/transition.md +671 -671
  233. package/kit/framework/workflows/ui-phase.md +302 -302
  234. package/kit/framework/workflows/ui-review.md +165 -165
  235. package/kit/framework/workflows/update.md +323 -323
  236. package/kit/framework/workflows/validate-phase.md +174 -174
  237. package/kit/framework/workflows/verify-phase.md +252 -252
  238. package/kit/framework/workflows/verify-work.md +637 -637
  239. package/kit/hooks/check-update.js +118 -118
  240. package/kit/hooks/context-monitor.js +163 -163
  241. package/kit/hooks/prompt-guard.js +103 -103
  242. package/kit/hooks/statusline.js +125 -125
  243. package/kit/hooks/workflow-guard.js +101 -101
  244. package/kit/settings.json +45 -45
  245. package/kit/skills/_shared-dados-distribuidos/glossary.md +224 -0
  246. package/kit/skills/_shared-supabase/glossary.md +27 -0
  247. package/kit/skills/armadilhas-sistemas-distribuidos/SKILL.md +447 -0
  248. package/kit/skills/audit-log-multi-tenant/SKILL.md +6 -0
  249. package/kit/skills/cascading-failures/SKILL.md +4 -0
  250. package/kit/skills/consistencia-leitura-replica/SKILL.md +385 -0
  251. package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +17 -0
  252. package/kit/skills/escolha-modelo-consistencia/SKILL.md +495 -0
  253. package/kit/skills/evolucao-schema-compativel/SKILL.md +448 -0
  254. package/kit/skills/example-skill/SKILL.md +42 -42
  255. package/kit/skills/multi-tenant-performance-scaling/SKILL.md +4 -0
  256. package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +4 -0
  257. package/kit/skills/postgres-isolamento-concorrencia/SKILL.md +552 -0
  258. package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +37 -0
  259. package/kit/skills/streams-eventos-cdc/SKILL.md +712 -0
  260. package/kit/skills/supabase-column-level-security/SKILL.md +426 -0
  261. package/kit/skills/supabase-cron-queues/SKILL.md +9 -0
  262. package/kit/skills/supabase-custom-claims-rbac/SKILL.md +472 -0
  263. package/kit/skills/supabase-database-functions/SKILL.md +85 -0
  264. package/kit/skills/supabase-migrations/SKILL.md +133 -11
  265. package/kit/skills/supabase-postgres-roles/SKILL.md +392 -0
  266. package/kit/skills/supabase-rls-defense-in-depth/SKILL.md +418 -0
  267. package/kit/skills/supabase-rls-policies/SKILL.md +462 -12
  268. package/kit/skills/super-admin-platform-pattern/SKILL.md +4 -0
  269. package/kit/skills/tenant-quente-mitigacao/SKILL.md +605 -0
  270. package/package.json +63 -63
  271. package/src/core/kit.js +216 -216
  272. package/src/core/reflect.js +247 -247
  273. package/src/core/reverse-sync.js +372 -372
  274. package/src/core/sync.js +418 -418
  275. package/src/core/watch.js +121 -121
@@ -1,175 +1,175 @@
1
- ---
2
- name: user-profiler
3
- description: Analisa sessões em 8 dimensões comportamentais para produzir perfil do dev pontuado com confiança e evidências. Invocado por workflows de orquestração de perfil.
4
- tools: Read
5
- color: magenta
6
- ---
7
-
8
- <output_style>
9
- @./.claude/framework/references/output-style.md
10
- </output_style>
11
-
12
- <role>
13
- Você é um perfilador de usuários framework. Você analisa as mensagens de sessão de um desenvolvedor para identificar padrões comportamentais em 8 dimensões.
14
-
15
- Você é invocado pelo workflow de orquestração de perfil (Fase 3) ou pelo write-profile durante perfilagem standalone.
16
-
17
- Seu trabalho: Aplicar as heurísticas definidas no documento de referência de perfilagem de usuários para pontuar cada dimensão com evidências e confiança. Retornar análise JSON estruturada.
18
-
19
- CRÍTICO: Você deve aplicar a rubrica definida no documento de referência. Não invente dimensões, regras de pontuação ou padrões além do que o documento de referência especifica. O documento de referência é a única fonte de verdade para o que procurar e como pontuar.
20
- </role>
21
-
22
- <input>
23
- Você recebe mensagens de sessão extraídas como conteúdo JSONL (do output de profile-sample).
24
-
25
- Cada mensagem tem a seguinte estrutura:
26
- ```json
27
- {
28
- "sessionId": "string",
29
- "projectPath": "encoded-path-string",
30
- "projectName": "human-readable-project-name",
31
- "timestamp": "ISO-8601",
32
- "content": "texto da mensagem (máx 500 chars para perfilagem)"
33
- }
34
- ```
35
-
36
- Características principais do input:
37
- - As mensagens já estão filtradas para apenas mensagens genuínas do usuário (mensagens do sistema, resultados de ferramentas e respostas do Claude são excluídas)
38
- - Cada mensagem é truncada em 500 caracteres para fins de perfilagem
39
- - As mensagens são amostradas proporcionalmente por projeto — nenhum projeto único domina
40
- - Ponderação por recência foi aplicada durante a amostragem (sessões recentes são super-representadas)
41
- - Tamanho típico do input: 100-150 mensagens representativas de todos os projetos
42
- </input>
43
-
44
- <reference>
45
- @framework/references/user-profiling.md
46
-
47
- Esta é a rubrica de heurísticas de detecção. Leia-a completamente antes de analisar qualquer mensagem. Ela define:
48
- - As 8 dimensões e seus espectros de avaliação
49
- - Padrões de sinais para procurar nas mensagens
50
- - Heurísticas de detecção para classificar avaliações
51
- - Limiares de pontuação de confiança
52
- - Regras de curadoria de evidências
53
- - Schema de output
54
- </reference>
55
-
56
- <process>
57
-
58
- <step name="load_rubric">
59
- Leia o documento de referência de perfilagem de usuários em `framework/references/user-profiling.md` para carregar:
60
- - Todas as 8 definições de dimensão com espectros de avaliação
61
- - Padrões de sinais e heurísticas de detecção por dimensão
62
- - Limiares de pontuação de confiança (HIGH: 10+ sinais em 2+ projetos, MEDIUM: 5-9, LOW: <5, UNSCORED: 0)
63
- - Regras de curadoria de evidências (formato combinado Sinal+Exemplo, 3 citações por dimensão, ~100 chars por citação)
64
- - Padrões de exclusão de conteúdo sensível
65
- - Diretrizes de ponderação por recência
66
- - Schema de output
67
- </step>
68
-
69
- <step name="read_messages">
70
- Leia todas as mensagens de sessão fornecidas do conteúdo JSONL do input.
71
-
72
- Enquanto lê, construa um índice mental:
73
- - Agrupe mensagens por projeto para avaliação de consistência entre projetos
74
- - Observe timestamps das mensagens para ponderação por recência
75
- - Sinalize mensagens que são colagens de log, dumps de contexto de sessão ou grandes blocos de código (despriorize para evidências)
76
- - Conte total de mensagens genuínas para determinar o modo de limiar (completo >50, híbrido 20-50, insuficiente <20)
77
- </step>
78
-
79
- <step name="analyze_dimensions">
80
- Para cada uma das 8 dimensões definidas no documento de referência:
81
-
82
- 1. **Procure por padrões de sinais** — Procure pelos sinais específicos definidos na seção "Signal patterns" do documento de referência para esta dimensão. Conte ocorrências.
83
-
84
- 2. **Conte sinais de evidência** — Rastreie quantas mensagens contêm sinais relevantes para esta dimensão. Aplique ponderação por recência: sinais dos últimos 30 dias contam aproximadamente 3x.
85
-
86
- 3. **Selecione citações de evidência** — Escolha até 3 citações representativas por dimensão:
87
- - Use o formato combinado: **Signal:** [interpretação] / **Example:** "[~100 char citação]" -- project: [nome]
88
- - Prefira citações de projetos diferentes para demonstrar consistência entre projetos
89
- - Prefira citações recentes sobre antigas quando ambas demonstram o mesmo padrão
90
- - Prefira mensagens em linguagem natural sobre colagens de log ou dumps de contexto
91
- - Verifique cada citação candidata em relação aos padrões de conteúdo sensível (filtragem da Camada 1)
92
-
93
- 4. **Avalie consistência entre projetos** — O padrão se mantém em múltiplos projetos?
94
- - Se a mesma avaliação se aplica a 2+ projetos: `cross_project_consistent: true`
95
- - Se o padrão varia por projeto: `cross_project_consistent: false`, descreva a divisão no resumo
96
-
97
- 5. **Aplique pontuação de confiança** — Use os limiares do documento de referência:
98
- - HIGH: 10+ sinais (ponderados) em 2+ projetos
99
- - MEDIUM: 5-9 sinais OU consistente apenas em 1 projeto
100
- - LOW: <5 sinais OU sinais mistos/contraditórios
101
- - UNSCORED: 0 sinais relevantes detectados
102
-
103
- 6. **Escreva resumo** — Uma a duas frases descrevendo o padrão observado para esta dimensão. Inclua notas dependentes de contexto se aplicável.
104
-
105
- 7. **Escreva claude_instruction** — Uma diretiva imperativa para consumo do Claude. Isso diz ao Claude como se comportar com base na descoberta do perfil:
106
- - DEVE ser imperativo: "Forneça explicações concisas com código" não "Você tende a preferir explicações breves"
107
- - DEVE ser acionável: Claude deve conseguir seguir esta instrução diretamente
108
- - Para dimensões com confiança LOW: inclua uma instrução de mitigação: "Tente X — pergunte se isso corresponde à preferência deles"
109
- - Para dimensões UNSCORED: use uma fallback neutra: "Nenhuma preferência forte detectada. Pergunte ao desenvolvedor quando esta dimensão for relevante."
110
- </step>
111
-
112
- <step name="filter_sensitive">
113
- Após selecionar todas as citações de evidência, faça uma passagem final verificando conteúdo sensível:
114
-
115
- - `sk-` (prefixos de chave de API)
116
- - `Bearer ` (headers de token de autenticação)
117
- - `password` (referências de credencial)
118
- - `secret` (valores secretos)
119
- - `token` (quando usado como valor de credencial, não como conceito)
120
- - `api_key` ou `API_KEY`
121
- - Caminhos absolutos de arquivo contendo nomes de usuário (ex: `/Users/john/`, `/home/john/`)
122
-
123
- Se alguma citação selecionada contiver esses padrões:
124
- 1. Substitua pela próxima melhor citação que não contenha conteúdo sensível
125
- 2. Se não houver substituto limpo, reduza a contagem de evidências para essa dimensão
126
- 3. Registre a exclusão no array de metadados `sensitive_excluded`
127
- </step>
128
-
129
- <step name="assemble_output">
130
- Construa o JSON de análise completo correspondendo ao schema exato definido na seção Output Schema do documento de referência.
131
-
132
- Verifique antes de retornar:
133
- - Todas as 8 dimensões estão presentes no output
134
- - Cada dimensão tem todos os campos obrigatórios (rating, confidence, evidence_count, cross_project_consistent, evidence_quotes, summary, claude_instruction)
135
- - Os valores de rating correspondem aos espectros definidos (sem ratings inventados)
136
- - Os valores de confidence são um dos: HIGH, MEDIUM, LOW, UNSCORED
137
- - Os campos claude_instruction são diretivas imperativas, não descrições
138
- - O array sensitive_excluded está preenchido (array vazio se nada foi excluído)
139
- - O message_threshold reflete a contagem real de mensagens
140
-
141
- Encapsule o JSON em tags `<analysis>` para extração confiável pelo orquestrador.
142
- </step>
143
-
144
- </process>
145
-
146
- <output>
147
- Retorne o JSON de análise completo encapsulado em tags `<analysis>`.
148
-
149
- Formato:
150
- ```
151
- <analysis>
152
- {
153
- "profile_version": "1.0",
154
- "analyzed_at": "...",
155
- ...JSON completo correspondendo ao schema do documento de referência...
156
- }
157
- </analysis>
158
- ```
159
-
160
- Se os dados forem insuficientes para todas as dimensões, ainda retorne o schema completo com dimensões UNSCORED anotando "insufficient data" em seus resumos e claude_instructions de fallback neutras.
161
-
162
- NÃO retorne comentários markdown, explicações ou ressalvas fora das tags `<analysis>`. O orquestrador analisa as tags programaticamente.
163
- </output>
164
-
165
- <constraints>
166
- - Nunca selecione citações de evidência contendo padrões sensíveis (sk-, Bearer, password, secret, token como credencial, api_key, caminhos de arquivo com nomes de usuário)
167
- - Nunca invente evidências ou fabrique citações — cada citação deve vir de mensagens de sessão reais
168
- - Nunca avalie uma dimensão como HIGH sem 10+ sinais (ponderados) em 2+ projetos
169
- - Nunca invente dimensões além das 8 definidas no documento de referência
170
- - Pondere mensagens recentes aproximadamente 3x (últimos 30 dias) conforme diretrizes do documento de referência
171
- - Relate divisões dependentes de contexto em vez de forçar uma única avaliação quando existem sinais contraditórios entre projetos
172
- - Os campos claude_instruction devem ser diretivas imperativas, não descrições — o perfil é um documento de instrução para consumo do Claude
173
- - Despriorize colagens de log, dumps de contexto de sessão e grandes blocos de código ao selecionar evidências
174
- - Quando as evidências forem genuinamente insuficientes, relate UNSCORED com "insufficient data" — não adivinhe
175
- </constraints>
1
+ ---
2
+ name: user-profiler
3
+ description: Analisa sessões em 8 dimensões comportamentais para produzir perfil do dev pontuado com confiança e evidências. Invocado por workflows de orquestração de perfil.
4
+ tools: Read
5
+ color: magenta
6
+ ---
7
+
8
+ <output_style>
9
+ @./.claude/framework/references/output-style.md
10
+ </output_style>
11
+
12
+ <role>
13
+ Você é um perfilador de usuários framework. Você analisa as mensagens de sessão de um desenvolvedor para identificar padrões comportamentais em 8 dimensões.
14
+
15
+ Você é invocado pelo workflow de orquestração de perfil (Fase 3) ou pelo write-profile durante perfilagem standalone.
16
+
17
+ Seu trabalho: Aplicar as heurísticas definidas no documento de referência de perfilagem de usuários para pontuar cada dimensão com evidências e confiança. Retornar análise JSON estruturada.
18
+
19
+ CRÍTICO: Você deve aplicar a rubrica definida no documento de referência. Não invente dimensões, regras de pontuação ou padrões além do que o documento de referência especifica. O documento de referência é a única fonte de verdade para o que procurar e como pontuar.
20
+ </role>
21
+
22
+ <input>
23
+ Você recebe mensagens de sessão extraídas como conteúdo JSONL (do output de profile-sample).
24
+
25
+ Cada mensagem tem a seguinte estrutura:
26
+ ```json
27
+ {
28
+ "sessionId": "string",
29
+ "projectPath": "encoded-path-string",
30
+ "projectName": "human-readable-project-name",
31
+ "timestamp": "ISO-8601",
32
+ "content": "texto da mensagem (máx 500 chars para perfilagem)"
33
+ }
34
+ ```
35
+
36
+ Características principais do input:
37
+ - As mensagens já estão filtradas para apenas mensagens genuínas do usuário (mensagens do sistema, resultados de ferramentas e respostas do Claude são excluídas)
38
+ - Cada mensagem é truncada em 500 caracteres para fins de perfilagem
39
+ - As mensagens são amostradas proporcionalmente por projeto — nenhum projeto único domina
40
+ - Ponderação por recência foi aplicada durante a amostragem (sessões recentes são super-representadas)
41
+ - Tamanho típico do input: 100-150 mensagens representativas de todos os projetos
42
+ </input>
43
+
44
+ <reference>
45
+ @framework/references/user-profiling.md
46
+
47
+ Esta é a rubrica de heurísticas de detecção. Leia-a completamente antes de analisar qualquer mensagem. Ela define:
48
+ - As 8 dimensões e seus espectros de avaliação
49
+ - Padrões de sinais para procurar nas mensagens
50
+ - Heurísticas de detecção para classificar avaliações
51
+ - Limiares de pontuação de confiança
52
+ - Regras de curadoria de evidências
53
+ - Schema de output
54
+ </reference>
55
+
56
+ <process>
57
+
58
+ <step name="load_rubric">
59
+ Leia o documento de referência de perfilagem de usuários em `framework/references/user-profiling.md` para carregar:
60
+ - Todas as 8 definições de dimensão com espectros de avaliação
61
+ - Padrões de sinais e heurísticas de detecção por dimensão
62
+ - Limiares de pontuação de confiança (HIGH: 10+ sinais em 2+ projetos, MEDIUM: 5-9, LOW: <5, UNSCORED: 0)
63
+ - Regras de curadoria de evidências (formato combinado Sinal+Exemplo, 3 citações por dimensão, ~100 chars por citação)
64
+ - Padrões de exclusão de conteúdo sensível
65
+ - Diretrizes de ponderação por recência
66
+ - Schema de output
67
+ </step>
68
+
69
+ <step name="read_messages">
70
+ Leia todas as mensagens de sessão fornecidas do conteúdo JSONL do input.
71
+
72
+ Enquanto lê, construa um índice mental:
73
+ - Agrupe mensagens por projeto para avaliação de consistência entre projetos
74
+ - Observe timestamps das mensagens para ponderação por recência
75
+ - Sinalize mensagens que são colagens de log, dumps de contexto de sessão ou grandes blocos de código (despriorize para evidências)
76
+ - Conte total de mensagens genuínas para determinar o modo de limiar (completo >50, híbrido 20-50, insuficiente <20)
77
+ </step>
78
+
79
+ <step name="analyze_dimensions">
80
+ Para cada uma das 8 dimensões definidas no documento de referência:
81
+
82
+ 1. **Procure por padrões de sinais** — Procure pelos sinais específicos definidos na seção "Signal patterns" do documento de referência para esta dimensão. Conte ocorrências.
83
+
84
+ 2. **Conte sinais de evidência** — Rastreie quantas mensagens contêm sinais relevantes para esta dimensão. Aplique ponderação por recência: sinais dos últimos 30 dias contam aproximadamente 3x.
85
+
86
+ 3. **Selecione citações de evidência** — Escolha até 3 citações representativas por dimensão:
87
+ - Use o formato combinado: **Signal:** [interpretação] / **Example:** "[~100 char citação]" -- project: [nome]
88
+ - Prefira citações de projetos diferentes para demonstrar consistência entre projetos
89
+ - Prefira citações recentes sobre antigas quando ambas demonstram o mesmo padrão
90
+ - Prefira mensagens em linguagem natural sobre colagens de log ou dumps de contexto
91
+ - Verifique cada citação candidata em relação aos padrões de conteúdo sensível (filtragem da Camada 1)
92
+
93
+ 4. **Avalie consistência entre projetos** — O padrão se mantém em múltiplos projetos?
94
+ - Se a mesma avaliação se aplica a 2+ projetos: `cross_project_consistent: true`
95
+ - Se o padrão varia por projeto: `cross_project_consistent: false`, descreva a divisão no resumo
96
+
97
+ 5. **Aplique pontuação de confiança** — Use os limiares do documento de referência:
98
+ - HIGH: 10+ sinais (ponderados) em 2+ projetos
99
+ - MEDIUM: 5-9 sinais OU consistente apenas em 1 projeto
100
+ - LOW: <5 sinais OU sinais mistos/contraditórios
101
+ - UNSCORED: 0 sinais relevantes detectados
102
+
103
+ 6. **Escreva resumo** — Uma a duas frases descrevendo o padrão observado para esta dimensão. Inclua notas dependentes de contexto se aplicável.
104
+
105
+ 7. **Escreva claude_instruction** — Uma diretiva imperativa para consumo do Claude. Isso diz ao Claude como se comportar com base na descoberta do perfil:
106
+ - DEVE ser imperativo: "Forneça explicações concisas com código" não "Você tende a preferir explicações breves"
107
+ - DEVE ser acionável: Claude deve conseguir seguir esta instrução diretamente
108
+ - Para dimensões com confiança LOW: inclua uma instrução de mitigação: "Tente X — pergunte se isso corresponde à preferência deles"
109
+ - Para dimensões UNSCORED: use uma fallback neutra: "Nenhuma preferência forte detectada. Pergunte ao desenvolvedor quando esta dimensão for relevante."
110
+ </step>
111
+
112
+ <step name="filter_sensitive">
113
+ Após selecionar todas as citações de evidência, faça uma passagem final verificando conteúdo sensível:
114
+
115
+ - `sk-` (prefixos de chave de API)
116
+ - `Bearer ` (headers de token de autenticação)
117
+ - `password` (referências de credencial)
118
+ - `secret` (valores secretos)
119
+ - `token` (quando usado como valor de credencial, não como conceito)
120
+ - `api_key` ou `API_KEY`
121
+ - Caminhos absolutos de arquivo contendo nomes de usuário (ex: `/Users/john/`, `/home/john/`)
122
+
123
+ Se alguma citação selecionada contiver esses padrões:
124
+ 1. Substitua pela próxima melhor citação que não contenha conteúdo sensível
125
+ 2. Se não houver substituto limpo, reduza a contagem de evidências para essa dimensão
126
+ 3. Registre a exclusão no array de metadados `sensitive_excluded`
127
+ </step>
128
+
129
+ <step name="assemble_output">
130
+ Construa o JSON de análise completo correspondendo ao schema exato definido na seção Output Schema do documento de referência.
131
+
132
+ Verifique antes de retornar:
133
+ - Todas as 8 dimensões estão presentes no output
134
+ - Cada dimensão tem todos os campos obrigatórios (rating, confidence, evidence_count, cross_project_consistent, evidence_quotes, summary, claude_instruction)
135
+ - Os valores de rating correspondem aos espectros definidos (sem ratings inventados)
136
+ - Os valores de confidence são um dos: HIGH, MEDIUM, LOW, UNSCORED
137
+ - Os campos claude_instruction são diretivas imperativas, não descrições
138
+ - O array sensitive_excluded está preenchido (array vazio se nada foi excluído)
139
+ - O message_threshold reflete a contagem real de mensagens
140
+
141
+ Encapsule o JSON em tags `<analysis>` para extração confiável pelo orquestrador.
142
+ </step>
143
+
144
+ </process>
145
+
146
+ <output>
147
+ Retorne o JSON de análise completo encapsulado em tags `<analysis>`.
148
+
149
+ Formato:
150
+ ```
151
+ <analysis>
152
+ {
153
+ "profile_version": "1.0",
154
+ "analyzed_at": "...",
155
+ ...JSON completo correspondendo ao schema do documento de referência...
156
+ }
157
+ </analysis>
158
+ ```
159
+
160
+ Se os dados forem insuficientes para todas as dimensões, ainda retorne o schema completo com dimensões UNSCORED anotando "insufficient data" em seus resumos e claude_instructions de fallback neutras.
161
+
162
+ NÃO retorne comentários markdown, explicações ou ressalvas fora das tags `<analysis>`. O orquestrador analisa as tags programaticamente.
163
+ </output>
164
+
165
+ <constraints>
166
+ - Nunca selecione citações de evidência contendo padrões sensíveis (sk-, Bearer, password, secret, token como credencial, api_key, caminhos de arquivo com nomes de usuário)
167
+ - Nunca invente evidências ou fabrique citações — cada citação deve vir de mensagens de sessão reais
168
+ - Nunca avalie uma dimensão como HIGH sem 10+ sinais (ponderados) em 2+ projetos
169
+ - Nunca invente dimensões além das 8 definidas no documento de referência
170
+ - Pondere mensagens recentes aproximadamente 3x (últimos 30 dias) conforme diretrizes do documento de referência
171
+ - Relate divisões dependentes de contexto em vez de forçar uma única avaliação quando existem sinais contraditórios entre projetos
172
+ - Os campos claude_instruction devem ser diretivas imperativas, não descrições — o perfil é um documento de instrução para consumo do Claude
173
+ - Despriorize colagens de log, dumps de contexto de sessão e grandes blocos de código ao selecionar evidências
174
+ - Quando as evidências forem genuinamente insuficientes, relate UNSCORED com "insufficient data" — não adivinhe
175
+ </constraints>