@jaimevalasek/aioson 1.4.0 → 1.6.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 (301) hide show
  1. package/CHANGELOG.md +31 -1
  2. package/LICENSE +661 -21
  3. package/README.md +9 -1
  4. package/docs/design-previews/aurora-command-ui-website.html +884 -0
  5. package/docs/design-previews/aurora-command-ui.html +682 -0
  6. package/docs/design-previews/bold-editorial-ui-website.html +658 -0
  7. package/docs/design-previews/bold-editorial-ui.html +717 -0
  8. package/docs/design-previews/clean-saas-ui-website.html +1202 -0
  9. package/docs/design-previews/clean-saas-ui.html +549 -0
  10. package/docs/design-previews/cognitive-core-ui-website.html +1009 -0
  11. package/docs/design-previews/cognitive-core-ui.html +463 -0
  12. package/docs/design-previews/glassmorphism-ui-website.html +572 -0
  13. package/docs/design-previews/glassmorphism-ui.html +886 -0
  14. package/docs/design-previews/index.html +699 -0
  15. package/docs/design-previews/interface-design-website.html +1187 -0
  16. package/docs/design-previews/interface-design.html +513 -0
  17. package/docs/design-previews/neo-brutalist-ui-website.html +621 -0
  18. package/docs/design-previews/neo-brutalist-ui.html +797 -0
  19. package/docs/design-previews/premium-command-center-ui-website.html +1217 -0
  20. package/docs/design-previews/premium-command-center-ui.html +552 -0
  21. package/docs/design-previews/warm-craft-ui-website.html +684 -0
  22. package/docs/design-previews/warm-craft-ui.html +739 -0
  23. package/docs/en/cli-reference.md +20 -9
  24. package/docs/en/squad-dashboard.md +372 -0
  25. package/docs/openclaw-bridge.md +308 -0
  26. package/docs/pt/README.md +7 -0
  27. package/docs/pt/agent-sharding.md +132 -0
  28. package/docs/pt/agentes.md +131 -11
  29. package/docs/pt/busca-de-contexto.md +129 -0
  30. package/docs/pt/cache-de-contexto.md +156 -0
  31. package/docs/pt/cenarios.md +46 -2
  32. package/docs/pt/comandos-cli.md +88 -1
  33. package/docs/pt/design-hybrid-forge.md +107 -0
  34. package/docs/pt/inicio-rapido.md +72 -5
  35. package/docs/pt/inteligencia-adaptativa.md +324 -0
  36. package/docs/pt/monitor-de-contexto.md +104 -0
  37. package/docs/pt/recuperacao-de-sessao.md +125 -0
  38. package/docs/pt/sandbox.md +125 -0
  39. package/docs/pt/skills.md +98 -6
  40. package/docs/pt/squad-dashboard.md +373 -0
  41. package/docs/testing/genome-2.0-matrix.md +5 -5
  42. package/docs/testing/genome-2.0-rollout.md +9 -9
  43. package/package.json +2 -2
  44. package/src/agent-loader.js +280 -0
  45. package/src/backup-local.js +74 -0
  46. package/src/cli.js +192 -0
  47. package/src/commands/agent-loader.js +85 -0
  48. package/src/commands/backup-local-cmd.js +25 -0
  49. package/src/commands/context-cache.js +90 -0
  50. package/src/commands/context-monitor.js +92 -0
  51. package/src/commands/context-search.js +66 -0
  52. package/src/commands/design-hybrid-options.js +385 -0
  53. package/src/commands/health.js +214 -0
  54. package/src/commands/init.js +54 -13
  55. package/src/commands/install.js +52 -13
  56. package/src/commands/learning-evolve.js +355 -0
  57. package/src/commands/live.js +34 -0
  58. package/src/commands/recovery.js +43 -0
  59. package/src/commands/runtime.js +242 -0
  60. package/src/commands/sandbox.js +37 -0
  61. package/src/commands/setup-context.js +29 -4
  62. package/src/commands/setup.js +178 -0
  63. package/src/commands/skill.js +79 -32
  64. package/src/commands/squad-daemon.js +209 -0
  65. package/src/commands/squad-dashboard.js +39 -0
  66. package/src/commands/squad-deploy.js +64 -0
  67. package/src/commands/squad-doctor.js +52 -0
  68. package/src/commands/squad-mcp.js +270 -0
  69. package/src/commands/squad-processes.js +56 -0
  70. package/src/commands/squad-recovery.js +42 -0
  71. package/src/commands/squad-roi.js +291 -0
  72. package/src/commands/squad-score.js +250 -0
  73. package/src/commands/squad-status.js +37 -1
  74. package/src/commands/squad-validate.js +62 -1
  75. package/src/commands/squad-webhook.js +160 -0
  76. package/src/commands/squad-worker.js +191 -0
  77. package/src/commands/squad-worktrees.js +75 -0
  78. package/src/commands/tool-registry-cmd.js +232 -0
  79. package/src/commands/update.js +7 -0
  80. package/src/commands/web-map.js +70 -0
  81. package/src/commands/web-scrape.js +71 -0
  82. package/src/constants.js +17 -0
  83. package/src/context-cache.js +159 -0
  84. package/src/context-search.js +326 -0
  85. package/src/context-writer.js +45 -1
  86. package/src/design-variation-catalog.js +503 -0
  87. package/src/i18n/messages/en.js +159 -3
  88. package/src/i18n/messages/es.js +147 -2
  89. package/src/i18n/messages/fr.js +147 -2
  90. package/src/i18n/messages/pt-BR.js +158 -3
  91. package/src/install-animation.js +260 -0
  92. package/src/install-profile.js +143 -0
  93. package/src/install-wizard.js +474 -0
  94. package/src/installer.js +38 -10
  95. package/src/lib/webhook-server.js +328 -0
  96. package/src/mcp-connectors/registry.js +602 -0
  97. package/src/parser.js +7 -1
  98. package/src/recovery-context-session.js +154 -0
  99. package/src/runtime-store.js +355 -2
  100. package/src/sandbox.js +177 -0
  101. package/src/squad/external-session.js +180 -0
  102. package/src/squad/inter-squad.js +74 -0
  103. package/src/squad/recovery-context.js +201 -0
  104. package/src/squad/worktree-manager.js +114 -0
  105. package/src/squad-daemon.js +490 -0
  106. package/src/squad-dashboard/api.js +223 -0
  107. package/src/squad-dashboard/attachment-handler.js +93 -0
  108. package/src/squad-dashboard/context-monitor.js +157 -0
  109. package/src/squad-dashboard/execution-logs.js +115 -0
  110. package/src/squad-dashboard/hunk-review.js +209 -0
  111. package/src/squad-dashboard/metrics.js +133 -0
  112. package/src/squad-dashboard/process-monitor.js +125 -0
  113. package/src/squad-dashboard/renderer.js +858 -0
  114. package/src/squad-dashboard/server.js +232 -0
  115. package/src/squad-dashboard/styles.js +525 -0
  116. package/src/squad-dashboard/token-tracker.js +99 -0
  117. package/src/tool-executor.js +94 -0
  118. package/src/updater.js +11 -3
  119. package/src/web.js +284 -0
  120. package/src/worker-runner.js +339 -0
  121. package/template/.aioson/agents/analyst.md +62 -3
  122. package/template/.aioson/agents/architect.md +42 -0
  123. package/template/.aioson/agents/design-hybrid-forge.md +127 -0
  124. package/template/.aioson/agents/dev.md +223 -11
  125. package/template/.aioson/agents/deyvin.md +65 -0
  126. package/template/.aioson/agents/neo.md +152 -0
  127. package/template/.aioson/agents/orache.md +17 -0
  128. package/template/.aioson/agents/orchestrator.md +26 -0
  129. package/template/.aioson/agents/pm.md +58 -0
  130. package/template/.aioson/agents/product.md +88 -12
  131. package/template/.aioson/agents/qa.md +80 -0
  132. package/template/.aioson/agents/setup.md +128 -22
  133. package/template/.aioson/agents/sheldon.md +704 -0
  134. package/template/.aioson/agents/squad.md +191 -0
  135. package/template/.aioson/agents/tester.md +410 -0
  136. package/template/.aioson/agents/ux-ui.md +12 -0
  137. package/template/.aioson/config.md +21 -0
  138. package/template/.aioson/context/forensics/.gitkeep +0 -0
  139. package/template/.aioson/context/seeds/seed-example.md +27 -0
  140. package/template/.aioson/context/user-profile.md +42 -0
  141. package/template/.aioson/locales/en/agents/analyst.md +8 -0
  142. package/template/.aioson/locales/en/agents/architect.md +8 -0
  143. package/template/.aioson/locales/en/agents/dev.md +66 -7
  144. package/template/.aioson/locales/en/agents/deyvin.md +8 -0
  145. package/template/.aioson/locales/en/agents/neo.md +8 -0
  146. package/template/.aioson/locales/en/agents/orchestrator.md +26 -0
  147. package/template/.aioson/locales/en/agents/qa.md +49 -0
  148. package/template/.aioson/locales/en/agents/setup.md +35 -2
  149. package/template/.aioson/locales/en/agents/sheldon.md +340 -0
  150. package/template/.aioson/locales/en/agents/ux-ui.md +8 -0
  151. package/template/.aioson/locales/es/agents/analyst.md +8 -0
  152. package/template/.aioson/locales/es/agents/architect.md +8 -0
  153. package/template/.aioson/locales/es/agents/dev.md +66 -7
  154. package/template/.aioson/locales/es/agents/deyvin.md +8 -0
  155. package/template/.aioson/locales/es/agents/neo.md +48 -0
  156. package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
  157. package/template/.aioson/locales/es/agents/qa.md +26 -0
  158. package/template/.aioson/locales/es/agents/setup.md +35 -2
  159. package/template/.aioson/locales/es/agents/sheldon.md +192 -0
  160. package/template/.aioson/locales/es/agents/squad.md +63 -0
  161. package/template/.aioson/locales/es/agents/ux-ui.md +8 -0
  162. package/template/.aioson/locales/fr/agents/analyst.md +8 -0
  163. package/template/.aioson/locales/fr/agents/architect.md +8 -0
  164. package/template/.aioson/locales/fr/agents/dev.md +66 -7
  165. package/template/.aioson/locales/fr/agents/deyvin.md +8 -0
  166. package/template/.aioson/locales/fr/agents/neo.md +48 -0
  167. package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
  168. package/template/.aioson/locales/fr/agents/qa.md +26 -0
  169. package/template/.aioson/locales/fr/agents/setup.md +35 -2
  170. package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
  171. package/template/.aioson/locales/fr/agents/squad.md +63 -0
  172. package/template/.aioson/locales/fr/agents/ux-ui.md +8 -0
  173. package/template/.aioson/locales/pt-BR/agents/analyst.md +19 -0
  174. package/template/.aioson/locales/pt-BR/agents/architect.md +19 -0
  175. package/template/.aioson/locales/pt-BR/agents/dev.md +75 -12
  176. package/template/.aioson/locales/pt-BR/agents/deyvin.md +8 -0
  177. package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
  178. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +26 -0
  179. package/template/.aioson/locales/pt-BR/agents/product.md +8 -3
  180. package/template/.aioson/locales/pt-BR/agents/qa.md +60 -0
  181. package/template/.aioson/locales/pt-BR/agents/setup.md +35 -2
  182. package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
  183. package/template/.aioson/locales/pt-BR/agents/squad.md +105 -0
  184. package/template/.aioson/locales/pt-BR/agents/ux-ui.md +8 -0
  185. package/template/.aioson/schemas/squad-blueprint.schema.json +21 -0
  186. package/template/.aioson/schemas/squad-manifest.schema.json +178 -1
  187. package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +243 -0
  188. package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -0
  189. package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -0
  190. package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -0
  191. package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -0
  192. package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -0
  193. package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +482 -0
  194. package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +387 -0
  195. package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +205 -0
  196. package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -0
  197. package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -0
  198. package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -0
  199. package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -0
  200. package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -0
  201. package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -0
  202. package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -0
  203. package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -0
  204. package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -0
  205. package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -0
  206. package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -0
  207. package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -0
  208. package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -0
  209. package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -0
  210. package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -0
  211. package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +55 -9
  212. package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -0
  213. package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +1 -1
  214. package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +100 -0
  215. package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +43 -9
  216. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +40 -0
  217. package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +1 -1
  218. package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +99 -12
  219. package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +222 -0
  220. package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -0
  221. package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -0
  222. package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -0
  223. package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -0
  224. package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -0
  225. package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -0
  226. package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -0
  227. package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +213 -0
  228. package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -0
  229. package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -0
  230. package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -0
  231. package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -0
  232. package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -0
  233. package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -0
  234. package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -0
  235. package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +209 -0
  236. package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -0
  237. package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -0
  238. package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -0
  239. package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -0
  240. package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -0
  241. package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -0
  242. package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -0
  243. package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -0
  244. package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -0
  245. package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -0
  246. package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -0
  247. package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -0
  248. package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -0
  249. package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -0
  250. package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -0
  251. package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -0
  252. package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -0
  253. package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -0
  254. package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -0
  255. package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +45 -0
  256. package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +109 -0
  257. package/template/.aioson/skills/process/aioson-spec-driven/references/artifact-map.md +44 -0
  258. package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +37 -0
  259. package/template/.aioson/skills/process/aioson-spec-driven/references/hardening-lane.md +49 -0
  260. package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +66 -0
  261. package/template/.aioson/skills/process/aioson-spec-driven/references/ui-language.md +75 -0
  262. package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +144 -0
  263. package/template/.aioson/skills/process/design-hybrid-forge/references/crossover-protocol.md +221 -0
  264. package/template/.aioson/skills/process/design-hybrid-forge/references/naming-registry.md +88 -0
  265. package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +291 -0
  266. package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +117 -0
  267. package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +188 -0
  268. package/template/.aioson/skills/process/design-hybrid-forge/references/variation-library.md +125 -0
  269. package/template/.aioson/skills/squad/formats/catalog.json +15 -0
  270. package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -0
  271. package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -0
  272. package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -0
  273. package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -0
  274. package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -0
  275. package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -0
  276. package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -0
  277. package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -0
  278. package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -0
  279. package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -0
  280. package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -0
  281. package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -0
  282. package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -0
  283. package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -0
  284. package/template/.aioson/skills/squad/references/checklist-templates.md +122 -0
  285. package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -0
  286. package/template/.aioson/skills/squad/references/workflow-templates.md +169 -0
  287. package/template/.aioson/skills/static/debugging-protocol.md +42 -0
  288. package/template/.aioson/skills/static/git-worktrees.md +36 -0
  289. package/template/.aioson/tasks/implementation-plan.md +19 -0
  290. package/template/.aioson/tasks/squad-design.md +28 -0
  291. package/template/.aioson/tasks/squad-profile.md +48 -0
  292. package/template/.aioson/tasks/squad-review.md +61 -0
  293. package/template/.aioson/tasks/squad-task-decompose.md +66 -0
  294. package/template/.claude/commands/aioson/agent/neo.md +5 -0
  295. package/template/.claude/commands/aioson/agent/tester.md +5 -0
  296. package/template/.gemini/GEMINI.md +1 -0
  297. package/template/.gemini/commands/aios-neo.toml +4 -0
  298. package/template/.gemini/commands/aios-tester.toml +6 -0
  299. package/template/AGENTS.md +26 -1
  300. package/template/CLAUDE.md +6 -2
  301. package/template/OPENCODE.md +2 -0
@@ -0,0 +1,308 @@
1
+ # OpenClaw + AIOSON Bridge
2
+
3
+ > AIOSON receives external triggers. OpenClaw delivers them. Neither system changes — the bridge is pure configuration.
4
+
5
+ ## Overview
6
+
7
+ ```
8
+ [External channel] [OpenClaw] [AIOSON squad-webhook]
9
+ WhatsApp, Telegram, → gateway de canal → POST /trigger
10
+ Slack, webhook ERP identifica sessão executa squad
11
+
12
+ ← callback HTTP ← POST callback_url
13
+ envia resposta
14
+ ao canal
15
+ ```
16
+
17
+ ## Quick start
18
+
19
+ ### 1. Start the webhook server
20
+
21
+ ```bash
22
+ export AIOSON_WEBHOOK_TOKEN=your-secret-token
23
+ aioson squad:webhook start --port 3210
24
+ ```
25
+
26
+ The server auto-discovers all squads in `.aioson/squads/`. Output:
27
+
28
+ ```
29
+ AIOSON squad webhook server started on port 3210
30
+ Available squads: atendimento, vendas, logistica
31
+ Endpoints: POST /trigger GET /status/:run_id GET /health
32
+ ```
33
+
34
+ ### 2. Generate the OpenClaw configuration
35
+
36
+ ```bash
37
+ aioson squad:webhook config --channel whatsapp --squad atendimento
38
+ ```
39
+
40
+ Copy the output into your `openclaw.json`.
41
+
42
+ ### 3. Verify
43
+
44
+ ```bash
45
+ curl http://localhost:3210/health
46
+ # {"ok":true,"version":"x.x.x","squads":["atendimento","vendas","logistica"]}
47
+ ```
48
+
49
+ ---
50
+
51
+ ## Endpoints
52
+
53
+ ### `GET /health`
54
+
55
+ No authentication required.
56
+
57
+ ```json
58
+ { "ok": true, "version": "1.4.0", "squads": ["atendimento", "vendas"] }
59
+ ```
60
+
61
+ ---
62
+
63
+ ### `POST /trigger`
64
+
65
+ Async squad execution. Returns immediately with a `run_id`.
66
+
67
+ **Headers:**
68
+ ```
69
+ Authorization: Bearer <AIOSON_WEBHOOK_TOKEN>
70
+ Content-Type: application/json
71
+ ```
72
+
73
+ **Body:**
74
+ ```json
75
+ {
76
+ "squad": "atendimento",
77
+ "input": "quero dipirona 500mg",
78
+ "session_id": "wa:5511999000",
79
+ "callback_url": "https://your-server/callback",
80
+ "metadata": {
81
+ "channel": "whatsapp",
82
+ "phone": "+5511999000",
83
+ "user_name": "João"
84
+ }
85
+ }
86
+ ```
87
+
88
+ | Field | Required | Description |
89
+ |----------------|----------|-------------|
90
+ | `squad` | yes | Squad slug to execute |
91
+ | `input` | yes | User message |
92
+ | `session_id` | no | Opaque string — enables conversation continuity |
93
+ | `callback_url` | no | Where to POST the response when done |
94
+ | `metadata` | no | Arbitrary key/value, echoed back in the callback |
95
+
96
+ **Response (202):**
97
+ ```json
98
+ { "run_id": "a1b2c3d4e5f6a7b8", "status": "queued" }
99
+ ```
100
+
101
+ **Callback payload (async POST to `callback_url`):**
102
+ ```json
103
+ {
104
+ "run_id": "a1b2c3d4e5f6a7b8",
105
+ "session_id": "wa:5511999000",
106
+ "response": "Temos dipirona 500mg por R$8,90. Deseja adicionar ao carrinho?",
107
+ "status": "completed",
108
+ "metadata": { "channel": "whatsapp", "phone": "+5511999000", "user_name": "João" }
109
+ }
110
+ ```
111
+
112
+ Callback delivery: 3 retries with exponential backoff (30s → 60s → 120s).
113
+
114
+ ---
115
+
116
+ ### `GET /status/:run_id`
117
+
118
+ Poll execution state when no `callback_url` was provided.
119
+
120
+ ```
121
+ GET /status/a1b2c3d4e5f6a7b8
122
+ Authorization: Bearer <token>
123
+ ```
124
+
125
+ ```json
126
+ {
127
+ "run_id": "a1b2c3d4e5f6a7b8",
128
+ "status": "running",
129
+ "response": null,
130
+ "error": null
131
+ }
132
+ ```
133
+
134
+ `status` values: `queued` → `running` → `completed` | `failed`
135
+
136
+ ---
137
+
138
+ ### `POST /query`
139
+
140
+ Synchronous query — for fast lookups that don't need a full squad session (e.g., product search from a website). Timeout: 10 seconds.
141
+
142
+ ```json
143
+ {
144
+ "squad": "catalogo",
145
+ "query": "dipirona 500mg",
146
+ "max_results": 10
147
+ }
148
+ ```
149
+
150
+ ```json
151
+ {
152
+ "results": [{ "id": 42, "name": "Dipirona 500mg", "price": 8.90 }],
153
+ "squad": "catalogo",
154
+ "latency_ms": 340
155
+ }
156
+ ```
157
+
158
+ ---
159
+
160
+ ## Session continuity
161
+
162
+ When `session_id` is provided, AIOSON maintains conversation history across multiple calls.
163
+
164
+ **First call:**
165
+ ```json
166
+ { "squad": "atendimento", "input": "quero dipirona", "session_id": "wa:5511999000" }
167
+ ```
168
+ → Squad receives: `quero dipirona`
169
+
170
+ **Second call (same session):**
171
+ ```json
172
+ { "squad": "atendimento", "input": "qual o preço?", "session_id": "wa:5511999000" }
173
+ ```
174
+ → Squad receives:
175
+ ```
176
+ [Conversation history]
177
+ user: quero dipirona
178
+ assistant: Temos dipirona 500mg por R$8,90. Deseja adicionar ao carrinho?
179
+
180
+ [Current message]
181
+ qual o preço?
182
+ ```
183
+
184
+ Session files are stored in `.aioson/sessions/` and expire after 24 hours of inactivity (configurable via `AIOSON_SESSION_TTL_HOURS`).
185
+
186
+ ---
187
+
188
+ ## OpenClaw configuration
189
+
190
+ ### WhatsApp (full example)
191
+
192
+ ```yaml
193
+ # openclaw.json
194
+ hooks:
195
+ whatsapp:
196
+ auto_reply:
197
+ - pattern: ".*"
198
+ action: webhook
199
+ url: "http://localhost:3210/trigger"
200
+ headers:
201
+ Authorization: "Bearer ${AIOSON_WEBHOOK_TOKEN}"
202
+ body_template: |
203
+ {
204
+ "squad": "atendimento",
205
+ "input": "{{message.text}}",
206
+ "session_id": "wa:{{message.from}}",
207
+ "callback_url": "{{openclaw.callback_url}}",
208
+ "metadata": {
209
+ "channel": "whatsapp",
210
+ "phone": "{{message.from}}",
211
+ "user_name": "{{message.contact_name}}"
212
+ }
213
+ }
214
+ ```
215
+
216
+ ### Telegram
217
+
218
+ ```yaml
219
+ hooks:
220
+ telegram:
221
+ auto_reply:
222
+ - pattern: ".*"
223
+ action: webhook
224
+ url: "http://localhost:3210/trigger"
225
+ headers:
226
+ Authorization: "Bearer ${AIOSON_WEBHOOK_TOKEN}"
227
+ body_template: |
228
+ {
229
+ "squad": "suporte",
230
+ "input": "{{message.text}}",
231
+ "session_id": "tg:{{message.chat_id}}",
232
+ "callback_url": "{{openclaw.callback_url}}",
233
+ "metadata": { "channel": "telegram" }
234
+ }
235
+ ```
236
+
237
+ ### Multiple squads by intent
238
+
239
+ Route different message patterns to different squads:
240
+
241
+ ```yaml
242
+ hooks:
243
+ whatsapp:
244
+ auto_reply:
245
+ - pattern: "^(pedido|comprar|quero|carrinho)"
246
+ action: webhook
247
+ url: "http://localhost:3210/trigger"
248
+ headers:
249
+ Authorization: "Bearer ${AIOSON_WEBHOOK_TOKEN}"
250
+ body_template: |
251
+ { "squad": "vendas", "input": "{{message.text}}", "session_id": "wa:{{message.from}}", "callback_url": "{{openclaw.callback_url}}" }
252
+
253
+ - pattern: "^(onde|entrega|rastreio|pedido)"
254
+ action: webhook
255
+ url: "http://localhost:3210/trigger"
256
+ headers:
257
+ Authorization: "Bearer ${AIOSON_WEBHOOK_TOKEN}"
258
+ body_template: |
259
+ { "squad": "logistica", "input": "{{message.text}}", "session_id": "wa:{{message.from}}", "callback_url": "{{openclaw.callback_url}}" }
260
+
261
+ - pattern: ".*"
262
+ action: webhook
263
+ url: "http://localhost:3210/trigger"
264
+ headers:
265
+ Authorization: "Bearer ${AIOSON_WEBHOOK_TOKEN}"
266
+ body_template: |
267
+ { "squad": "atendimento", "input": "{{message.text}}", "session_id": "wa:{{message.from}}", "callback_url": "{{openclaw.callback_url}}" }
268
+ ```
269
+
270
+ ---
271
+
272
+ ## Security
273
+
274
+ | Concern | Mechanism |
275
+ |---------|-----------|
276
+ | Authentication | Bearer token (`AIOSON_WEBHOOK_TOKEN`) on all endpoints except `/health` |
277
+ | Rate limiting | 60 req/min per IP by default |
278
+ | Squad allowlist | Only squads in `.aioson/squads/` are accessible |
279
+ | Callback security | Callbacks only POST to URLs provided by the caller |
280
+ | Session isolation | Each `session_id` maps to a separate file; no cross-session access |
281
+
282
+ Set `AIOSON_WEBHOOK_TOKEN` to a random secret (minimum 32 chars):
283
+
284
+ ```bash
285
+ openssl rand -hex 32
286
+ ```
287
+
288
+ ---
289
+
290
+ ## Environment variables
291
+
292
+ | Variable | Default | Description |
293
+ |----------|---------|-------------|
294
+ | `AIOSON_WEBHOOK_TOKEN` | — | Bearer token (required for security) |
295
+ | `AIOSON_WEBHOOK_PORT` | `3210` | Server port |
296
+ | `AIOSON_SESSION_TTL_HOURS` | `24` | Session expiry in hours |
297
+
298
+ ---
299
+
300
+ ## CLI reference
301
+
302
+ ```bash
303
+ # Start webhook server
304
+ aioson squad:webhook start [path] [--port 3210] [--token TOKEN]
305
+
306
+ # Generate OpenClaw config snippet
307
+ aioson squad:webhook config [--channel whatsapp] [--squad atendimento] [--port 3210]
308
+ ```
package/docs/pt/README.md CHANGED
@@ -15,9 +15,16 @@ Bem-vindo à documentação em português do AIOSON — um framework leve de age
15
15
  | [Squad e Genome](./squad-genome.md) | Como criar squads modulares, diferenciar skill de genome, aplicar genomes e publicar entregáveis HTML |
16
16
  | [Agentes Customizados](./agentes-customizados.md) | Criar agentes personalizados com `squad:agent-create` — tipos, Voice DNA, infra operacional, maturity scoring |
17
17
  | [Skills](./skills.md) | Sistema de skills: tipos, instalação, mapeamento por framework e compatibilidade cross-tool |
18
+ | [design-hybrid-forge](./design-hybrid-forge.md) | Fluxo canônico para criar skills híbridas de design com preset visual, locale automático e histórico |
18
19
  | [Automação de Squads](./automacao-squads.md) | Transformar processos de squad em scripts executáveis (Python/Node.js) que rodam sem LLM |
19
20
  | [Output Strategy e Delivery](./output-strategy-delivery.md) | Configurar webhooks, automatizar entrega de conteúdo, monitorar delivery e troubleshoot |
20
21
  | [Suporte Web3](./web3.md) | Guia para projetos dApp (Ethereum, Solana, Cardano) |
22
+ | [Recuperação de Sessão](./recuperacao-de-sessao.md) | Gerar e restaurar contexto entre sessões do Claude Code após compactação |
23
+ | [Monitor de Contexto](./monitor-de-contexto.md) | Visualizar uso de janela de contexto por agente com alertas de warning e critical |
24
+ | [Busca de Contexto](./busca-de-contexto.md) | Indexar e buscar documentos do projeto via FTS5 com ranking por relevância e recência |
25
+ | [Cache de Contexto](./cache-de-contexto.md) | Salvar snapshots de contexto e restaurar entre sessões |
26
+ | [Sandbox de Execução](./sandbox.md) | Executar comandos com timeout, redação de secrets e summarização de output |
27
+ | [Agent Sharding](./agent-sharding.md) | Carregar apenas as seções relevantes de instruções de agente para uma tarefa específica |
21
28
 
22
29
  ## Documentação em inglês
23
30
 
@@ -0,0 +1,132 @@
1
+ # Agent Sharding
2
+
3
+ > Carrega apenas as seções relevantes de um arquivo de instruções de agente para uma tarefa específica, reduzindo consumo de tokens.
4
+
5
+ Arquivos de instrução de agente podem conter muitas seções — role, guidelines, error handling, output format, checklist de revisão — mas para uma tarefa específica, apenas algumas são necessárias. O `agent:load` divide o arquivo em shards semânticos por heading, indexa via FTS5 e carrega apenas os shards mais relevantes para o objetivo informado.
6
+
7
+ ---
8
+
9
+ ## Comandos
10
+
11
+ ### `agent:shard:index`
12
+
13
+ Indexa os arquivos de instruções de agentes para permitir carregamento inteligente.
14
+
15
+ ```bash
16
+ aioson agent:shard:index [path] [opções]
17
+ ```
18
+
19
+ **Opções:**
20
+
21
+ | Opção | Descrição |
22
+ |---|---|
23
+ | `--agents-dir=<path>` | Diretório dos agentes (padrão: `.aioson/agents`) |
24
+ | `--force` | Reindexar mesmo se já indexado |
25
+ | `--json` | Retorna resultado em JSON |
26
+
27
+ **Exemplos:**
28
+
29
+ ```bash
30
+ # Indexar todos os agentes do projeto
31
+ aioson agent:shard:index .
32
+
33
+ # Forçar reindexação após atualizar arquivos de agente
34
+ aioson agent:shard:index . --force
35
+
36
+ # Diretório customizado de agentes
37
+ aioson agent:shard:index . --agents-dir=.aioson/my-agents
38
+ ```
39
+
40
+ ---
41
+
42
+ ### `agent:load`
43
+
44
+ Carrega os shards mais relevantes de um agente para um objetivo dado.
45
+
46
+ ```bash
47
+ aioson agent:load <agent-id> [opções]
48
+ ```
49
+
50
+ **Opções:**
51
+
52
+ | Opção | Descrição |
53
+ |---|---|
54
+ | `--goal="..."` | Objetivo da tarefa (direciona a seleção de shards) |
55
+ | `--agents-dir=<path>` | Diretório dos agentes (padrão: `.aioson/agents`) |
56
+ | `--max-shards=<n>` | Máximo de shards a carregar (padrão: 3) |
57
+ | `--max-tokens=<n>` | Orçamento de tokens (padrão: 2000) |
58
+ | `--print` | Exibe o conteúdo completo dos shards selecionados |
59
+ | `--json` | Retorna shards e tokens em JSON |
60
+
61
+ **Exemplos:**
62
+
63
+ ```bash
64
+ # Ver quais seções do agente dev são relevantes para a tarefa
65
+ aioson agent:load dev --goal="implementar endpoint de pagamento com TDD"
66
+
67
+ # Exibir o conteúdo para usar diretamente no prompt
68
+ aioson agent:load dev --goal="refatorar autenticação" --print
69
+
70
+ # Carregar mais shards se necessário
71
+ aioson agent:load dev --goal="..." --max-shards=5 --max-tokens=3000
72
+
73
+ # JSON para integração em scripts
74
+ aioson agent:load dev --goal="..." --json
75
+ ```
76
+
77
+ **Saída:**
78
+
79
+ ```
80
+ Agent: dev (3/8 shards, 420 tokens)
81
+
82
+ ## Role (85 tokens)
83
+ ## Implementation Guidelines (180 tokens)
84
+ ## Error Handling (155 tokens)
85
+ ```
86
+
87
+ ---
88
+
89
+ ## Como funciona
90
+
91
+ **Divisão em shards:**
92
+ O arquivo de instruções é dividido por headings H2 (`##`) e H3 (`###`). Cada shard é uma seção com seu conteúdo. O bloco antes do primeiro heading vira o shard `(preamble)`.
93
+
94
+ **Indexação:**
95
+ Os shards são salvos como arquivos individuais em `~/.aioson/shards/` e indexados via FTS5 (o mesmo motor do `context:search`).
96
+
97
+ **Seleção:**
98
+ 1. O shard `(preamble)` e os shards de `Role` são sempre incluídos
99
+ 2. O FTS5 busca os shards mais relevantes para o `--goal`
100
+ 3. Shards são adicionados até preencher o orçamento de tokens
101
+ 4. Se ainda há espaço, shards restantes são adicionados em ordem
102
+
103
+ **Orçamento:**
104
+ O total de tokens dos shards selecionados fica dentro de `--max-tokens` (padrão 2000, estimado como chars/4).
105
+
106
+ ---
107
+
108
+ ## Exemplo de redução de contexto
109
+
110
+ Para um agente com 9 seções e 228 tokens totais:
111
+
112
+ ```
113
+ Carregando para "implementar com TDD e error handling":
114
+ Shards selecionados: 3 de 9
115
+ Tokens usados: 73 de 228
116
+
117
+ → Redução de 68% no consumo de tokens
118
+ ```
119
+
120
+ ---
121
+
122
+ ## Onde ficam os índices
123
+
124
+ Os shards são indexados em `~/.aioson/shards/` — fora do repositório, não commitado. Use `--force` para atualizar após editar os arquivos de agente.
125
+
126
+ ---
127
+
128
+ ## Quando usar
129
+
130
+ - Quando um arquivo de instrução de agente tem muitas seções e você quer enviar ao LLM apenas o que é necessário para a tarefa atual
131
+ - Para reduzir tokens consumidos por instruções fixas do agente
132
+ - Para agentes que têm seções muito diferentes (implementação, revisão, documentação, deploy) e você quer carregar apenas o contexto certo para cada tarefa
@@ -90,6 +90,7 @@ Regras do fluxo:
90
90
  **Quando usar:** Depois do `@setup` em projetos novos. Em features novas de projeto existente, pode entrar direto sem repetir `@setup`.
91
91
 
92
92
  **O que faz:**
93
+ - varre a raiz do projeto em busca de documentos de entrada (`plans/*.md`, `prds/*.md`) antes de iniciar a conversa
93
94
  - conduz a conversa de produto e gera o `PRD base`
94
95
  - registra visão, problema, usuários, escopo inicial e perguntas em aberto
95
96
  - detecta sinais visuais cedo e preserva a intenção no PRD
@@ -97,6 +98,21 @@ Regras do fluxo:
97
98
  - aponta o próximo agente do fluxo
98
99
  - em brownfield, usa `discovery.md` quando já existir e trata os artefatos locais do scan apenas como orientação estrutural, nunca como substituto do `@analyst`
99
100
 
101
+ **Documentos de kickoff (plans/ e prds/ na raiz):**
102
+
103
+ Você pode criar arquivos de entrada na raiz do projeto antes de ativar o `@product`:
104
+
105
+ ```
106
+ plans/minha-ideia.md ← notas, esboços, planos escritos por você
107
+ prds/visao-produto.md ← rascunhos de requisitos, referências
108
+ ```
109
+
110
+ O `@product` detecta esses arquivos automaticamente e pergunta se deve usá-los como fonte. Se sim, ele sintetiza o conteúdo e gera o PRD formal em `.aioson/context/`. Os arquivos originais nunca são modificados — você pode deletá-los depois que o PRD estiver gerado.
111
+
112
+ **Sinal de greenfield vs feature:**
113
+ - `plans/*.md` ou `prds/*.md` existem + `prd.md` ainda não existe → kickoff de projeto novo
114
+ - `plans/*.md` ou `prds/*.md` existem + `prd.md` já existe → nova feature ou refinamento
115
+
100
116
  **Como ativar:**
101
117
  ```
102
118
  /product
@@ -109,6 +125,7 @@ Regras do fluxo:
109
125
  - métricas de sucesso
110
126
  - perguntas em aberto
111
127
  - identidade visual inicial, quando houver sinal suficiente
128
+ - `## Specify depth` (projetos SMALL e MEDIUM) — classificação aplicada, profundidade de spec escolhida e lista de ambiguidades que devem ser resolvidas antes que `@analyst` avance
112
129
 
113
130
  > Se o pedido mencionar explicitamente um command center premium, control tower, tri-rail shell ou estilo AIOS Dashboard, o `@product` deve registrar a skill `premium-command-center-ui` na seção de identidade visual do PRD.
114
131
 
@@ -207,6 +224,10 @@ Alias compativel:
207
224
  - Riscos identificados
208
225
  - Referências visuais (wireframes, links)
209
226
 
227
+ Em **modo feature**, entrega adicionalmente:
228
+ - `requirements-{slug}.md` — regras de negócio com IDs rastreáveis (`REQ-{slug}-N`) e acceptance criteria verificáveis por QA (`AC-{slug}-N`)
229
+ - `spec-{slug}.md` — esqueleto de memória da feature, com `phase_gates` no frontmatter para que `@dev` e `@deyvin` saibam quais fases já foram aprovadas
230
+
210
231
  ---
211
232
 
212
233
  ## @discovery-design-doc
@@ -274,8 +295,9 @@ tests/
274
295
  **Entrega:** Arquivo `.aioson/context/architecture.md` com:
275
296
  - Estrutura de pastas (proporcional ao tamanho)
276
297
  - Stack definitiva
277
- - Decisões técnicas documentadas
298
+ - Decisões técnicas documentadas com **rationale** — não só o que foi decidido, mas por que aquela escolha reduz risco de debug e manutenção futura
278
299
  - Padrões de código
300
+ - **Gate B** — sinal explícito de aprovação ao final do arquivo (`@dev` só pode iniciar implementação após este gate)
279
301
 
280
302
  ---
281
303
 
@@ -481,12 +503,25 @@ Depois disso, ela passa a ser parte real do pacote local da squad e deve ser con
481
503
  - Seguir as convenções nativas do framework do projeto
482
504
  - Verificar skills disponíveis em `.aioson/skills/static/` antes de implementar
483
505
 
506
+ **TDD Gate** — Antes de qualquer implementação de lógica de negócio, o `@dev` verifica o test runner configurado em `project.context.md`. Se não houver nenhum configurado, escaneia a raiz em busca de arquivos de configuração conhecidos (`pest.xml`, `vitest.config.*`, `pytest.ini`, `.rspec`, `foundry.toml`) e pergunta ao usuário se deseja configurar um antes de começar.
507
+
508
+ | Classificação | Mandato |
509
+ |---|---|
510
+ | MICRO | Escrever o teste junto com a implementação — obrigatório antes do commit |
511
+ | SMALL | Escrever o teste com falha (RED) **antes** de qualquer código de implementação |
512
+ | MEDIUM | Igual ao SMALL. Anotar o teste no checkpoint do plano de implementação |
513
+
514
+ **Exceções ao TDD** (nenhum teste exigido): arquivos de configuração, migrations sem regras de negócio, conteúdo estático, scaffolding de UI sem lógica de estado.
515
+
516
+ Se o usuário pedir para pular o teste, o `@dev` resiste, explica, e só cede após insistência — nunca implementa lógica de negócio sem teste existindo primeiro.
517
+
484
518
  **Execução atômica** — O @dev trabalha em passos pequenos e validados, nunca implementa uma feature inteira de uma vez:
485
519
  1. Declara o próximo passo antes de escrever código
486
- 2. Implementa apenas aquele passo
487
- 3. Valida antes de avançar se houver dúvida, pergunta
488
- 4. Faz commit do passo funcional antes de seguir
489
- 5. Para e reporta se algo der errado — não continua em estado quebrado
520
+ 2. Escreve o teste com falha (RED) — o teste deve falhar antes de qualquer implementação
521
+ 3. Implementa apenas o suficiente para o teste passar (GREEN)
522
+ 4. Verifica que o teste passa o output completo, não um resumo
523
+ 5. Faz commit com mensagem semântica
524
+ 6. Repete para o próximo passo
490
525
 
491
526
  **Em projetos com Laravel especificamente:**
492
527
  - Form Requests para validação (nunca inline no controller)
@@ -505,7 +540,7 @@ Depois disso, ela passa a ser parte real do pacote local da squad e deve ser con
505
540
 
506
541
  **O que faz:**
507
542
  - Revisa o código implementado
508
- - Escreve testes unitários e de integração
543
+ - Escreve testes para achados Critical e High
509
544
  - Identifica casos de borda não cobertos
510
545
  - Valida se os critérios de aceite foram atendidos
511
546
  - usa `discovery.md` como fonte de regras e relacionamentos; se só existirem artefatos de scan, o fluxo correto ainda passa por `@analyst`
@@ -516,10 +551,92 @@ Depois disso, ela passa a ser parte real do pacote local da squad e deve ser con
516
551
  ```
517
552
 
518
553
  **Entrega:**
519
- - Suite de testes
520
- - Lista de problemas encontrados
554
+ - Lista de problemas encontrados por severidade
555
+ - Testes para achados críticos
521
556
  - Relatório de cobertura
522
557
 
558
+ > **@qa vs @tester** — O `@qa` é um revisor: lê o que foi implementado, aponta riscos e escreve testes pontuais para achados críticos. O `@tester` é um engenheiro de testes: parte de cobertura zero e constrói uma estratégia sistemática (inventário, mapa de risco, estratégia por camada). Use `@tester` quando a aplicação foi implementada sem testes adequados ou quando `@qa` identificar lacunas em 3+ módulos.
559
+
560
+ ---
561
+
562
+ ## @tester
563
+
564
+ **Quando usar:** Após `@dev`, quando a aplicação foi implementada sem testes adequados. Também em projetos legados ou quando `@qa` identificar cobertura insuficiente em múltiplos módulos.
565
+
566
+ **O que faz:**
567
+ - Produz um inventário completo de cobertura (`test-inventory.md`)
568
+ - Mapeia regras de negócio descobertas vs testes existentes, priorizando por risco
569
+ - Escolhe e documenta a estratégia de teste antes de escrever qualquer linha
570
+ - Escreve testes por módulo em ordem de prioridade, com commit atômico por módulo
571
+ - Gera relatório de cobertura antes vs depois
572
+
573
+ **Estratégias disponíveis:**
574
+
575
+ | Cenário | Estratégia |
576
+ |---|---|
577
+ | Código legado sem testes, precisa refatorar | Characterization Testing |
578
+ | App implementada, cobertura zero | Test Pyramid Bottom-up |
579
+ | Cobertura razoável, regras descobertas | Risk-first Gap Filling |
580
+ | Código crítico com edge cases complexos | Property-based Testing |
581
+ | APIs entre times | Contract Testing |
582
+ | Suspeita de testes fracos que sempre passam | Mutation Testing |
583
+
584
+ **Frameworks detectados automaticamente por stack:**
585
+
586
+ | Stack | Test Runner | Unit | Integration | E2E |
587
+ |---|---|---|---|---|
588
+ | Laravel | Pest PHP | Pest unit | Pest feature (HTTP) | Dusk/Playwright |
589
+ | Next.js | Vitest | Vitest + RTL | MSW + Vitest | Playwright |
590
+ | Django | pytest-django | pytest | pytest + client | Playwright |
591
+ | FastAPI | pytest + httpx | pytest | AsyncClient | — |
592
+ | Rails | RSpec | RSpec unit | Request specs | Capybara |
593
+ | Solidity | Foundry | forge unit | forge integration | — |
594
+
595
+ **Como ativar:**
596
+ ```
597
+ /tester
598
+ ```
599
+
600
+ **Entrega:**
601
+ - `.aioson/context/test-inventory.md` — mapa de cobertura por arquivo
602
+ - `.aioson/context/test-plan.md` — estratégia escolhida + cobertura antes/depois
603
+ - Testes escritos por módulo, commitados incrementalmente
604
+
605
+ **Restrições:**
606
+ - Nunca modifica código de produção
607
+ - Se encontrar um bug real: documenta em `test-plan.md` e para — não corrige silenciosamente
608
+ - Testes sem assertions são proibidos
609
+
610
+ ---
611
+
612
+ ## @sheldon
613
+
614
+ **Quando usar:** Após `@product`, antes de iniciar a cadeia de execução — para garantir que o PRD está completo, sem lacunas e pronto para gerar código correto.
615
+
616
+ **O que faz:**
617
+ - Detecta documentos de entrada na raiz (`plans/*.md`, `prds/*.md`) e oferece incorporá-los ao enriquecimento do PRD
618
+ - Analisa o PRD por prioridade de melhorias
619
+ - Decide entre enriquecimento in-place ou plano de fases externo
620
+ - Valida se o PRD está legível e implementável antes de ativar `@dev`
621
+
622
+ **Modos de operação:**
623
+
624
+ | Modo | Como ativar | O que faz |
625
+ |---|---|---|
626
+ | A — Enriquecimento (padrão) | `/sheldon` | Analisa o PRD alvo e sugere melhorias prioritárias |
627
+ | B — Revisão Global | `/sheldon` + "revisão geral" | Escaneia todos os PRDs e planos ativos |
628
+ | C — Validação Completa | `/sheldon` + "validar" ou "preparar para dev" | Auditoria completa + checklist final antes de codar |
629
+
630
+ **Como ativar:**
631
+ ```
632
+ /sheldon
633
+ ```
634
+
635
+ **Entrega:**
636
+ - PRD enriquecido in-place com sinal de **spec-hardened** ao final — o campo `readiness` em `sheldon-enrichment-{slug}.md` indica se o PRD está pronto para downstream (`ready_for_downstream`) ou ainda tem itens bloqueantes (`needs_work`) (Modo A)
637
+ - Relatório de status de todos os PRDs (Modo B)
638
+ - Checklist de validação + decisão go/no-go para implementação (Modo C)
639
+
523
640
  ---
524
641
 
525
642
  ## Resumo: fluxo por tamanho
@@ -532,15 +649,18 @@ Duração típica: minutos a horas. Sem análise, sem arquitetura formal.
532
649
 
533
650
  ### SMALL
534
651
  ```
535
- @setup → @product → @analyst → @architect → @ux-ui → @dev → @qa
652
+ @setup → @product → [@sheldon] → @analyst → @architect → @dev → @qa[@tester]
536
653
  ```
537
654
  Duração típica: horas a dias. Análise leve, estrutura clara.
538
655
 
539
656
  ### MEDIUM
540
657
  ```
541
- @setup → @product → @analyst → @architect → @ux-ui → @pm → @orchestrator → @dev → @qa
658
+ @setup → @product → [@sheldon] → @analyst → @architect → @ux-ui → @pm → @orchestrator → @dev → @qa → [@tester]
542
659
  ```
543
- Duração típica: dias a semanas. Análise completa, parallelismo, backlog formal.
660
+ Duração típica: dias a semanas. Análise completa, paralelismo, backlog formal.
661
+
662
+ `[@sheldon]` — opcional, recomendado antes de iniciar a cadeia de execução para validar o PRD.
663
+ `[@tester]` — opcional, recomendado quando a cobertura de testes for insuficiente após `@dev`.
544
664
 
545
665
  ---
546
666