@jaimevalasek/aioson 1.7.2 → 1.9.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 (1049) hide show
  1. package/CHANGELOG.md +595 -560
  2. package/CODE_OF_CONDUCT.md +12 -12
  3. package/CONTRIBUTING.md +13 -13
  4. package/LICENSE +661 -661
  5. package/README.md +919 -776
  6. package/bin/aioson.js +4 -4
  7. package/docs/design-previews/aurora-command-ui-website.html +884 -884
  8. package/docs/design-previews/aurora-command-ui.html +682 -682
  9. package/docs/design-previews/bold-editorial-ui-website.html +658 -658
  10. package/docs/design-previews/bold-editorial-ui.html +717 -717
  11. package/docs/design-previews/clean-saas-ui-website.html +1202 -1202
  12. package/docs/design-previews/clean-saas-ui.html +549 -549
  13. package/docs/design-previews/cognitive-core-ui-website.html +1009 -1009
  14. package/docs/design-previews/cognitive-core-ui.html +463 -463
  15. package/docs/design-previews/glassmorphism-ui-website.html +572 -572
  16. package/docs/design-previews/glassmorphism-ui.html +886 -886
  17. package/docs/design-previews/index.html +699 -699
  18. package/docs/design-previews/interface-design-website.html +1187 -1187
  19. package/docs/design-previews/interface-design.html +513 -513
  20. package/docs/design-previews/neo-brutalist-ui-website.html +621 -621
  21. package/docs/design-previews/neo-brutalist-ui.html +797 -797
  22. package/docs/design-previews/premium-command-center-ui-website.html +1217 -1217
  23. package/docs/design-previews/premium-command-center-ui.html +552 -552
  24. package/docs/design-previews/pt.squarespace.com-homepage.html +889 -889
  25. package/docs/design-previews/warm-craft-ui-website.html +684 -684
  26. package/docs/design-previews/warm-craft-ui.html +739 -739
  27. package/docs/en/1-understand/ecosystem-map.md +228 -0
  28. package/docs/en/1-understand/glossary.md +288 -0
  29. package/docs/en/1-understand/what-is-aioson.md +94 -0
  30. package/docs/en/1-understand/why-it-exists.md +106 -0
  31. package/docs/en/2-start/existing-project.md +246 -0
  32. package/docs/en/2-start/first-project.md +307 -0
  33. package/docs/en/2-start/initial-decisions.md +223 -0
  34. package/docs/en/3-recipes/README.md +28 -0
  35. package/docs/en/3-recipes/continuity-between-sessions.md +303 -0
  36. package/docs/en/3-recipes/from-idea-to-prd-via-briefing.md +235 -0
  37. package/docs/en/3-recipes/full-feature-with-sheldon.md +338 -0
  38. package/docs/en/4-agents/README.md +56 -0
  39. package/docs/en/5-reference/README.md +60 -0
  40. package/docs/en/{cli-reference.md → 5-reference/cli-reference.md} +639 -409
  41. package/docs/en/5-reference/i18n.md +52 -0
  42. package/docs/en/{json-schemas.md → 5-reference/json-schemas.md} +41 -41
  43. package/docs/en/{mcp.md → 5-reference/mcp.md} +56 -56
  44. package/docs/en/{parallel.md → 5-reference/parallel.md} +82 -82
  45. package/docs/en/{qa-browser.md → 5-reference/qa-browser.md} +339 -339
  46. package/docs/en/{release-flow.md → 5-reference/release-flow.md} +22 -22
  47. package/docs/en/{release-notes-template.md → 5-reference/release-notes-template.md} +41 -41
  48. package/docs/en/{release.md → 5-reference/release.md} +28 -28
  49. package/docs/en/{schemas → 5-reference/schemas}/agent-prompt.schema.json +17 -17
  50. package/docs/en/{schemas → 5-reference/schemas}/agents.schema.json +32 -32
  51. package/docs/en/{schemas → 5-reference/schemas}/context-validate.schema.json +36 -36
  52. package/docs/en/{schemas → 5-reference/schemas}/doctor.schema.json +89 -89
  53. package/docs/en/{schemas → 5-reference/schemas}/error.schema.json +24 -24
  54. package/docs/en/{schemas → 5-reference/schemas}/i18n-add.schema.json +15 -15
  55. package/docs/en/{schemas → 5-reference/schemas}/index.json +126 -116
  56. package/docs/en/{schemas → 5-reference/schemas}/info.schema.json +39 -39
  57. package/docs/en/{schemas → 5-reference/schemas}/init.schema.json +48 -48
  58. package/docs/en/{schemas → 5-reference/schemas}/install.schema.json +60 -60
  59. package/docs/en/{schemas → 5-reference/schemas}/locale-apply.schema.json +30 -30
  60. package/docs/en/{schemas → 5-reference/schemas}/mcp-doctor.schema.json +95 -95
  61. package/docs/en/{schemas → 5-reference/schemas}/mcp-init.schema.json +122 -122
  62. package/docs/en/{schemas → 5-reference/schemas}/package-test.schema.json +24 -24
  63. package/docs/en/{schemas → 5-reference/schemas}/parallel-assign.schema.json +66 -57
  64. package/docs/en/{schemas → 5-reference/schemas}/parallel-doctor.schema.json +122 -86
  65. package/docs/en/5-reference/schemas/parallel-guard.schema.json +63 -0
  66. package/docs/en/{schemas → 5-reference/schemas}/parallel-init.schema.json +53 -53
  67. package/docs/en/5-reference/schemas/parallel-merge.schema.json +84 -0
  68. package/docs/en/5-reference/schemas/parallel-status.schema.json +184 -0
  69. package/docs/en/{schemas → 5-reference/schemas}/setup-context.schema.json +39 -39
  70. package/docs/en/{schemas → 5-reference/schemas}/smoke.schema.json +23 -23
  71. package/docs/en/{schemas → 5-reference/schemas}/update.schema.json +48 -48
  72. package/docs/en/{schemas → 5-reference/schemas}/workflow-plan.schema.json +30 -30
  73. package/docs/en/{squad-dashboard.md → 5-reference/squad-dashboard.md} +372 -372
  74. package/docs/en/{web3.md → 5-reference/web3.md} +54 -54
  75. package/docs/en/README.md +115 -0
  76. package/docs/en/active-learning-loop/README.md +117 -0
  77. package/docs/en/active-learning-loop/active-learning-loop.md +117 -0
  78. package/docs/en/active-learning-loop/cli-commands.md +320 -0
  79. package/docs/en/active-learning-loop/diagrams.md +225 -0
  80. package/docs/en/active-learning-loop/doctor-checks.md +151 -0
  81. package/docs/en/active-learning-loop/how-to-use.md +313 -0
  82. package/docs/en/active-learning-loop/troubleshooting.md +283 -0
  83. package/docs/en/deyvin-subtask-scout/README.md +109 -0
  84. package/docs/en/deyvin-subtask-scout/cli-commands.md +248 -0
  85. package/docs/en/deyvin-subtask-scout/diagrams.md +124 -0
  86. package/docs/en/deyvin-subtask-scout/how-to-use.md +221 -0
  87. package/docs/en/deyvin-subtask-scout/sub-task-scout.md +115 -0
  88. package/docs/en/deyvin-subtask-scout/troubleshooting.md +184 -0
  89. package/docs/integrations/apps-publish-marketplace.md +94 -0
  90. package/docs/integrations/sdlc-genius-boundary.md +76 -76
  91. package/docs/integrations/sdlc-genius-eval-matrix.md +75 -75
  92. package/docs/integrations/sdlc-genius-install-checklist.md +93 -93
  93. package/docs/integrations/sdlc-genius-review-samples.md +86 -86
  94. package/docs/openclaw-bridge.md +308 -308
  95. package/docs/pt/1-entender/glossario.md +288 -0
  96. package/docs/pt/1-entender/mapa-do-ecossistema.md +228 -0
  97. package/docs/pt/1-entender/o-que-e-aioson.md +94 -0
  98. package/docs/pt/1-entender/por-que-existe.md +107 -0
  99. package/docs/pt/2-comecar/decisoes-iniciais.md +223 -0
  100. package/docs/pt/2-comecar/primeiro-projeto.md +307 -0
  101. package/docs/pt/2-comecar/projeto-existente.md +245 -0
  102. package/docs/pt/3-receitas/README.md +28 -0
  103. package/docs/pt/3-receitas/app-saas-do-zero.md +324 -0
  104. package/docs/pt/3-receitas/auditoria-seguranca.md +254 -0
  105. package/docs/pt/3-receitas/clonar-design-de-site.md +211 -0
  106. package/docs/pt/3-receitas/continuidade-entre-sessoes.md +303 -0
  107. package/docs/pt/3-receitas/da-ideia-ao-prd-via-briefing.md +234 -0
  108. package/docs/pt/3-receitas/feature-completa-com-sheldon.md +338 -0
  109. package/docs/pt/3-receitas/integracao-em-codebase-grande.md +243 -0
  110. package/docs/pt/3-receitas/landing-page.md +281 -0
  111. package/docs/pt/3-receitas/plans-externos-para-product.md +191 -0
  112. package/docs/pt/3-receitas/publicar-no-aioson-com.md +219 -0
  113. package/docs/pt/3-receitas/refatoracao-grande.md +251 -0
  114. package/docs/pt/4-agentes/README.md +65 -0
  115. package/docs/pt/4-agentes/analyst.md +111 -0
  116. package/docs/pt/4-agentes/architect.md +113 -0
  117. package/docs/pt/4-agentes/briefing.md +95 -0
  118. package/docs/pt/4-agentes/committer.md +108 -0
  119. package/docs/pt/4-agentes/copywriter.md +279 -0
  120. package/docs/pt/4-agentes/design-hybrid-forge.md +116 -0
  121. package/docs/pt/4-agentes/dev.md +136 -0
  122. package/docs/pt/4-agentes/deyvin.md +99 -0
  123. package/docs/pt/4-agentes/discover.md +122 -0
  124. package/docs/pt/4-agentes/discovery-design-doc.md +91 -0
  125. package/docs/pt/4-agentes/genome.md +115 -0
  126. package/docs/pt/4-agentes/neo.md +93 -0
  127. package/docs/pt/4-agentes/orache.md +107 -0
  128. package/docs/pt/4-agentes/orchestrator.md +118 -0
  129. package/docs/pt/4-agentes/pentester.md +131 -0
  130. package/docs/pt/4-agentes/pm.md +97 -0
  131. package/docs/pt/4-agentes/product.md +114 -0
  132. package/docs/pt/4-agentes/profiler-enricher.md +93 -0
  133. package/docs/pt/4-agentes/profiler-forge.md +93 -0
  134. package/docs/pt/4-agentes/profiler-researcher.md +98 -0
  135. package/docs/pt/4-agentes/qa.md +124 -0
  136. package/docs/pt/4-agentes/setup.md +104 -0
  137. package/docs/pt/4-agentes/sheldon.md +95 -0
  138. package/docs/pt/4-agentes/site-forge.md +104 -0
  139. package/docs/pt/4-agentes/squad.md +127 -0
  140. package/docs/pt/4-agentes/tester.md +105 -0
  141. package/docs/pt/4-agentes/ux-ui.md +110 -0
  142. package/docs/pt/4-agentes/validator.md +118 -0
  143. package/docs/pt/5-referencia/README.md +88 -0
  144. package/docs/pt/5-referencia/agent-chain-continuity.md +124 -0
  145. package/docs/pt/{agent-sharding.md → 5-referencia/agent-sharding.md} +132 -132
  146. package/docs/pt/5-referencia/aioson-com-store.md +119 -0
  147. package/docs/pt/{automacao-squads.md → 5-referencia/automacao-squads.md} +407 -407
  148. package/docs/pt/{clientes-ai.md → 5-referencia/clientes-ai.md} +300 -286
  149. package/docs/pt/{comandos-cli.md → 5-referencia/comandos-cli.md} +1823 -1634
  150. package/docs/pt/5-referencia/compress-agents.md +304 -0
  151. package/docs/pt/5-referencia/design-docs-governance.md +59 -0
  152. package/docs/pt/{devlog-pipeline.md → 5-referencia/devlog-pipeline.md} +270 -270
  153. package/docs/pt/5-referencia/feature-archive.md +199 -0
  154. package/docs/pt/5-referencia/feature-dossier.md +121 -0
  155. package/docs/pt/{fluxo-artefatos.md → 5-referencia/fluxo-artefatos.md} +179 -178
  156. package/docs/pt/{genome-3.0-spec.md → 5-referencia/genome-4.0-spec.md} +407 -296
  157. package/docs/pt/5-referencia/genome-distribution.md +232 -0
  158. package/docs/pt/{hooks-session-guard.md → 5-referencia/hooks-session-guard.md} +454 -454
  159. package/docs/pt/{inteligencia-adaptativa.md → 5-referencia/inteligencia-adaptativa.md} +324 -324
  160. package/docs/pt/5-referencia/live-sessions.md +144 -0
  161. package/docs/pt/5-referencia/memoria-e-contexto.md +340 -0
  162. package/docs/pt/5-referencia/motor-hardening.md +493 -0
  163. package/docs/pt/{output-strategy-delivery.md → 5-referencia/output-strategy-delivery.md} +655 -655
  164. package/docs/pt/5-referencia/runner-system.md +113 -0
  165. package/docs/pt/{runtime-observability.md → 5-referencia/runtime-observability.md} +76 -76
  166. package/docs/pt/{sandbox.md → 5-referencia/sandbox.md} +125 -125
  167. package/docs/pt/{sdd-automation-scripts.md → 5-referencia/sdd-automation-scripts.md} +559 -557
  168. package/docs/pt/5-referencia/sdd-framework.md +115 -0
  169. package/docs/pt/5-referencia/sdd-planos-e-estrutura.md +321 -0
  170. package/docs/pt/5-referencia/secure-by-default.md +117 -0
  171. package/docs/pt/{skills.md → 5-referencia/skills.md} +275 -267
  172. package/docs/pt/{spec-learnings-pipeline.md → 5-referencia/spec-learnings-pipeline.md} +265 -265
  173. package/docs/pt/{squad-dashboard.md → 5-referencia/squad-dashboard.md} +373 -373
  174. package/docs/pt/{web3.md → 5-referencia/web3.md} +797 -797
  175. package/docs/pt/README.md +111 -116
  176. package/docs/pt/_arquivo/README.md +130 -0
  177. package/docs/pt/{advisor-spec.md → _arquivo/advisor-spec.md} +343 -335
  178. package/docs/pt/{agentes-customizados.md → _arquivo/agentes-customizados.md} +678 -670
  179. package/docs/pt/{busca-de-contexto.md → _arquivo/busca-de-contexto.md} +136 -129
  180. package/docs/pt/{cache-de-contexto.md → _arquivo/cache-de-contexto.md} +163 -156
  181. package/docs/pt/{cenarios.md → _arquivo/cenarios.md} +1282 -1274
  182. package/docs/pt/{design-hybrid-forge.md → _arquivo/design-hybrid-forge.md} +365 -356
  183. package/docs/pt/{deyvin.md → _arquivo/deyvin.md} +123 -115
  184. package/docs/pt/{guia-engineer.md → _arquivo/guia-engineer.md} +234 -226
  185. package/docs/pt/{inicio-rapido.md → _arquivo/inicio-rapido.md} +261 -250
  186. package/docs/pt/{memoria-contexto.md → _arquivo/memoria-contexto.md} +262 -255
  187. package/docs/pt/{monitor-de-contexto.md → _arquivo/monitor-de-contexto.md} +165 -158
  188. package/docs/pt/{profiler-system.md → _arquivo/profiler-system.md} +222 -214
  189. package/docs/pt/{recuperacao-de-sessao.md → _arquivo/recuperacao-de-sessao.md} +134 -125
  190. package/docs/pt/{site-forge.md → _arquivo/site-forge.md} +318 -309
  191. package/docs/pt/{squad-genome.md → _arquivo/squad-genome.md} +793 -783
  192. package/docs/pt/active-learning-loop/README.md +117 -0
  193. package/docs/pt/active-learning-loop/ativo-learning-loop.md +117 -0
  194. package/docs/pt/active-learning-loop/comandos-cli.md +320 -0
  195. package/docs/pt/active-learning-loop/como-usar.md +313 -0
  196. package/docs/pt/active-learning-loop/diagramas.md +225 -0
  197. package/docs/pt/active-learning-loop/doctor-checks.md +151 -0
  198. package/docs/pt/active-learning-loop/troubleshooting.md +283 -0
  199. package/docs/pt/agentes.md +996 -672
  200. package/docs/pt/deyvin-subtask-scout/README.md +109 -0
  201. package/docs/pt/deyvin-subtask-scout/comandos-cli.md +248 -0
  202. package/docs/pt/deyvin-subtask-scout/como-usar.md +221 -0
  203. package/docs/pt/deyvin-subtask-scout/diagramas.md +124 -0
  204. package/docs/pt/deyvin-subtask-scout/sub-task-scout.md +113 -0
  205. package/docs/pt/deyvin-subtask-scout/troubleshooting.md +184 -0
  206. package/docs/pt/living-memory/README.md +81 -0
  207. package/docs/pt/living-memory/autonomy-contract.md +206 -0
  208. package/docs/pt/living-memory/diagramas.md +365 -0
  209. package/docs/pt/living-memory/memoria-viva.md +141 -0
  210. package/docs/pt/living-memory/notificacoes-info.md +142 -0
  211. package/docs/pt/living-memory/reflexao-in-harness.md +218 -0
  212. package/docs/pt/living-memory/troubleshooting.md +286 -0
  213. package/docs/testing/genome-2.0-manual-regression.md +23 -23
  214. package/docs/testing/genome-2.0-matrix.md +36 -36
  215. package/docs/testing/genome-2.0-rollout.md +184 -184
  216. package/package.json +51 -50
  217. package/src/a2a/client.js +165 -165
  218. package/src/a2a/server.js +223 -223
  219. package/src/agent-loader.js +280 -280
  220. package/src/agent-manifests.js +86 -0
  221. package/src/agents.js +92 -72
  222. package/src/autonomy-policy.js +163 -0
  223. package/src/backup-local.js +74 -74
  224. package/src/backup-provider.js +303 -303
  225. package/src/brain-query.js +171 -0
  226. package/src/cli.js +1450 -1099
  227. package/src/commands/agent-audit.js +397 -397
  228. package/src/commands/agent-export-skill.js +229 -229
  229. package/src/commands/agent-loader.js +85 -85
  230. package/src/commands/agents.js +273 -160
  231. package/src/commands/artifact-validate.js +218 -189
  232. package/src/commands/auth.js +298 -0
  233. package/src/commands/backup-local-cmd.js +25 -25
  234. package/src/commands/backup.js +533 -533
  235. package/src/commands/brain-query.js +44 -0
  236. package/src/commands/brief-gen.js +405 -405
  237. package/src/commands/brief-validate.js +65 -65
  238. package/src/commands/briefing.js +344 -0
  239. package/src/commands/classify.js +256 -256
  240. package/src/commands/cloud.js +1767 -1767
  241. package/src/commands/commit-prepare.js +610 -0
  242. package/src/commands/compress-agents.js +416 -0
  243. package/src/commands/config.js +90 -90
  244. package/src/commands/context-cache.js +90 -90
  245. package/src/commands/context-compact.js +49 -49
  246. package/src/commands/context-health.js +187 -175
  247. package/src/commands/context-load.js +219 -0
  248. package/src/commands/context-monitor.js +163 -163
  249. package/src/commands/context-pack.js +45 -45
  250. package/src/commands/context-search.js +66 -66
  251. package/src/commands/context-trim.js +183 -177
  252. package/src/commands/context-validate.js +91 -91
  253. package/src/commands/design-hybrid-options.js +385 -385
  254. package/src/commands/detect-test-runner.js +55 -55
  255. package/src/commands/dev-resume.js +32 -0
  256. package/src/commands/devlog-export-brains.js +27 -27
  257. package/src/commands/devlog-process.js +294 -292
  258. package/src/commands/devlog-watch.js +131 -131
  259. package/src/commands/doctor.js +123 -123
  260. package/src/commands/dossier-add-research.js +114 -0
  261. package/src/commands/dossier-audit.js +222 -0
  262. package/src/commands/dossier.js +423 -0
  263. package/src/commands/feature-archive.js +513 -0
  264. package/src/commands/feature-close.js +554 -165
  265. package/src/commands/gate-approve.js +198 -0
  266. package/src/commands/gate-check.js +247 -228
  267. package/src/commands/genome-doctor.js +489 -41
  268. package/src/commands/genome-migrate.js +49 -49
  269. package/src/commands/git-guard.js +170 -0
  270. package/src/commands/harness.js +307 -0
  271. package/src/commands/health.js +214 -214
  272. package/src/commands/hooks-emit.js +253 -253
  273. package/src/commands/hooks-install.js +347 -347
  274. package/src/commands/i18n-add.js +56 -56
  275. package/src/commands/implementation-plan.js +367 -340
  276. package/src/commands/info.js +41 -41
  277. package/src/commands/init.js +120 -116
  278. package/src/commands/install.js +162 -107
  279. package/src/commands/learning-auto-promote.js +197 -195
  280. package/src/commands/learning-evolve.js +364 -364
  281. package/src/commands/learning-export.js +103 -103
  282. package/src/commands/learning-rollback.js +164 -164
  283. package/src/commands/learning.js +134 -134
  284. package/src/commands/live.js +2101 -1641
  285. package/src/commands/locale-apply.js +54 -51
  286. package/src/commands/locale-diff.js +25 -126
  287. package/src/commands/mcp-doctor.js +407 -406
  288. package/src/commands/mcp-init.js +373 -379
  289. package/src/commands/memory-archive.js +193 -0
  290. package/src/commands/memory-reflect-commit.js +148 -0
  291. package/src/commands/memory-reflect-prepare.js +97 -0
  292. package/src/commands/memory-restore.js +177 -0
  293. package/src/commands/memory-search.js +135 -0
  294. package/src/commands/memory.js +299 -0
  295. package/src/commands/notify.js +68 -0
  296. package/src/commands/package-e2e.js +273 -273
  297. package/src/commands/parallel-assign.js +483 -403
  298. package/src/commands/parallel-doctor.js +850 -437
  299. package/src/commands/parallel-guard.js +241 -0
  300. package/src/commands/parallel-init.js +311 -249
  301. package/src/commands/parallel-merge.js +299 -0
  302. package/src/commands/parallel-status.js +434 -290
  303. package/src/commands/pattern-detect.js +33 -33
  304. package/src/commands/preflight-context.js +30 -30
  305. package/src/commands/preflight.js +267 -208
  306. package/src/commands/pulse-update.js +130 -130
  307. package/src/commands/qa-doctor.js +185 -185
  308. package/src/commands/qa-init.js +166 -161
  309. package/src/commands/qa-report.js +58 -58
  310. package/src/commands/qa-run.js +873 -873
  311. package/src/commands/qa-scan.js +337 -337
  312. package/src/commands/recovery.js +43 -43
  313. package/src/commands/revision.js +235 -0
  314. package/src/commands/runner-daemon.js +274 -274
  315. package/src/commands/runner-plan.js +70 -70
  316. package/src/commands/runner-queue-from-plan.js +166 -166
  317. package/src/commands/runner-queue.js +189 -189
  318. package/src/commands/runner-run.js +129 -129
  319. package/src/commands/runtime.js +2086 -2067
  320. package/src/commands/sandbox.js +37 -37
  321. package/src/commands/scaffold-complete.js +188 -0
  322. package/src/commands/scan-project.js +1371 -1371
  323. package/src/commands/scout-commit.js +163 -0
  324. package/src/commands/scout-prep.js +214 -0
  325. package/src/commands/scout-validate.js +112 -0
  326. package/src/commands/security-audit.js +275 -0
  327. package/src/commands/security-scan.js +376 -0
  328. package/src/commands/self-implement-loop.js +306 -256
  329. package/src/commands/session-guard.js +218 -218
  330. package/src/commands/setup-context.js +699 -698
  331. package/src/commands/setup.js +178 -178
  332. package/src/commands/sizing.js +165 -165
  333. package/src/commands/skill.js +670 -670
  334. package/src/commands/smoke.js +426 -426
  335. package/src/commands/spec-checkpoint.js +177 -177
  336. package/src/commands/spec-status.js +79 -79
  337. package/src/commands/spec-sync.js +190 -190
  338. package/src/commands/spec-tasks.js +288 -288
  339. package/src/commands/squad-agent-create.js +830 -788
  340. package/src/commands/squad-autorun.js +1220 -1220
  341. package/src/commands/squad-bus.js +217 -217
  342. package/src/commands/squad-card.js +149 -149
  343. package/src/commands/squad-daemon.js +343 -343
  344. package/src/commands/squad-dashboard.js +39 -39
  345. package/src/commands/squad-dependency-graph.js +164 -164
  346. package/src/commands/squad-deploy.js +64 -64
  347. package/src/commands/squad-doctor.js +460 -460
  348. package/src/commands/squad-export.js +77 -46
  349. package/src/commands/squad-investigate.js +314 -261
  350. package/src/commands/squad-learning.js +209 -209
  351. package/src/commands/squad-mcp.js +270 -270
  352. package/src/commands/squad-pipeline.js +343 -343
  353. package/src/commands/squad-plan.js +361 -329
  354. package/src/commands/squad-processes.js +56 -56
  355. package/src/commands/squad-recovery.js +42 -42
  356. package/src/commands/squad-repair-genomes.js +39 -39
  357. package/src/commands/squad-review.js +106 -106
  358. package/src/commands/squad-roi.js +291 -291
  359. package/src/commands/squad-scaffold.js +56 -55
  360. package/src/commands/squad-score.js +311 -250
  361. package/src/commands/squad-status.js +481 -460
  362. package/src/commands/squad-tool-register.js +157 -157
  363. package/src/commands/squad-validate.js +438 -347
  364. package/src/commands/squad-webhook.js +160 -160
  365. package/src/commands/squad-worker.js +191 -191
  366. package/src/commands/squad-worktrees.js +75 -75
  367. package/src/commands/state-save.js +122 -122
  368. package/src/commands/store-genome.js +667 -0
  369. package/src/commands/store-skill.js +247 -0
  370. package/src/commands/store-squad.js +431 -0
  371. package/src/commands/store-system.js +392 -0
  372. package/src/commands/sync-agents-preflight.js +176 -0
  373. package/src/commands/test-agents.js +199 -199
  374. package/src/commands/tool-capabilities.js +63 -0
  375. package/src/commands/tool-registry-cmd.js +232 -232
  376. package/src/commands/update.js +64 -64
  377. package/src/commands/verify-gate.js +612 -572
  378. package/src/commands/web-map.js +70 -70
  379. package/src/commands/web-scrape.js +71 -71
  380. package/src/commands/workflow-execute.js +730 -241
  381. package/src/commands/workflow-harden.js +231 -0
  382. package/src/commands/workflow-heal.js +136 -0
  383. package/src/commands/workflow-next.js +1279 -601
  384. package/src/commands/workflow-plan.js +108 -108
  385. package/src/commands/workflow-status.js +440 -250
  386. package/src/commands/workspace.js +144 -0
  387. package/src/constants.js +413 -417
  388. package/src/context-cache.js +159 -159
  389. package/src/context-memory.js +975 -837
  390. package/src/context-parse-reason.js +22 -22
  391. package/src/context-search.js +326 -326
  392. package/src/context-writer.js +197 -196
  393. package/src/context.js +247 -217
  394. package/src/delivery-runner.js +319 -319
  395. package/src/design-variation-catalog.js +503 -503
  396. package/src/detector.js +261 -261
  397. package/src/doctor.js +760 -289
  398. package/src/dossier/codemap-store.js +267 -0
  399. package/src/dossier/dossier-bootstrap.js +222 -0
  400. package/src/dossier/dossier-compact.js +159 -0
  401. package/src/dossier/lock.js +128 -0
  402. package/src/dossier/research-index-store.js +233 -0
  403. package/src/dossier/revision-store.js +313 -0
  404. package/src/dossier/schema.js +162 -0
  405. package/src/dossier/scout-section.js +127 -0
  406. package/src/dossier/store.js +406 -0
  407. package/src/execution-gateway.js +464 -461
  408. package/src/friction-scanner.js +202 -0
  409. package/src/genome-files.js +198 -198
  410. package/src/genome-format.js +442 -442
  411. package/src/genome-schema.js +238 -215
  412. package/src/genomes/bindings.js +281 -281
  413. package/src/genomes.js +500 -467
  414. package/src/handoff-contract.js +417 -0
  415. package/src/handoff-validator.js +45 -0
  416. package/src/harness/circuit-breaker.js +135 -0
  417. package/src/i18n/index.js +103 -103
  418. package/src/i18n/messages/en.js +1541 -1139
  419. package/src/i18n/messages/es.js +1325 -980
  420. package/src/i18n/messages/fr.js +1333 -987
  421. package/src/i18n/messages/pt-BR.js +1561 -1166
  422. package/src/i18n/scaffold.js +64 -64
  423. package/src/install-animation.js +260 -260
  424. package/src/install-profile.js +127 -143
  425. package/src/install-wizard.js +475 -475
  426. package/src/installer-config-merge.js +207 -0
  427. package/src/installer.js +449 -294
  428. package/src/learning-loop-archive.js +595 -0
  429. package/src/learning-loop-doctor.js +217 -0
  430. package/src/learning-loop-engine.js +254 -0
  431. package/src/learning-loop-fts5.js +132 -0
  432. package/src/learning-loop-migration.js +163 -0
  433. package/src/lib/dev-resume.js +140 -0
  434. package/src/lib/dossier-telemetry.js +36 -0
  435. package/src/lib/genomes/compat.js +206 -206
  436. package/src/lib/genomes/migrate.js +90 -90
  437. package/src/lib/git-commit-guard.js +751 -0
  438. package/src/lib/health-check.js +158 -158
  439. package/src/lib/hook-protocol.js +76 -76
  440. package/src/lib/llm-content-sanitizer.js +44 -0
  441. package/src/lib/security/artifact-reader.js +167 -0
  442. package/src/lib/security/exit-codes.js +51 -0
  443. package/src/lib/security/findings-writer.js +176 -0
  444. package/src/lib/security/runtime-events.js +77 -0
  445. package/src/lib/security/secrets-regex.js +115 -0
  446. package/src/lib/squads/genome-repair.js +49 -49
  447. package/src/lib/store/security-scan.js +175 -0
  448. package/src/lib/terminal-checkbox.js +135 -0
  449. package/src/lib/terminal-picker.js +447 -0
  450. package/src/lib/tmux-launcher.js +163 -0
  451. package/src/lib/tool-capabilities.js +102 -0
  452. package/src/lib/webhook-server.js +328 -328
  453. package/src/locales.js +88 -84
  454. package/src/mcp/apps/squad-dashboard/app.js +163 -163
  455. package/src/mcp/apps/squad-dashboard/index.html +261 -261
  456. package/src/mcp/apps/squad-dashboard/mcp-manifest.json +23 -23
  457. package/src/mcp/resources/squad-state.js +130 -130
  458. package/src/mcp-connectors/registry.js +602 -602
  459. package/src/memory-reflect-engine.js +359 -0
  460. package/src/notify-renderer.js +32 -0
  461. package/src/onboarding.js +305 -305
  462. package/src/parallel-workspace.js +756 -0
  463. package/src/parser.js +66 -59
  464. package/src/path-guard.js +47 -0
  465. package/src/permissions-generator.js +400 -0
  466. package/src/preflight-engine.js +654 -443
  467. package/src/prompt-tool.js +20 -20
  468. package/src/qa-html-report.js +472 -472
  469. package/src/recovery-context-session.js +154 -154
  470. package/src/runner/cascade.js +97 -97
  471. package/src/runner/cli-launcher.js +109 -109
  472. package/src/runner/plan-importer.js +63 -63
  473. package/src/runner/queue-store.js +159 -159
  474. package/src/runtime-store.js +2720 -2676
  475. package/src/sandbox.js +194 -177
  476. package/src/self-healing.js +142 -0
  477. package/src/session-handoff.js +295 -77
  478. package/src/squad/agent-teams-adapter.js +270 -264
  479. package/src/squad/brief-validator.js +350 -350
  480. package/src/squad/bus-bridge.js +140 -140
  481. package/src/squad/context-compactor.js +265 -265
  482. package/src/squad/cross-ai-synthesizer.js +250 -250
  483. package/src/squad/external-session.js +180 -180
  484. package/src/squad/hooks-generator.js +196 -196
  485. package/src/squad/inter-squad-events.js +175 -175
  486. package/src/squad/inter-squad.js +74 -74
  487. package/src/squad/intra-bus.js +345 -345
  488. package/src/squad/learning-extractor.js +213 -213
  489. package/src/squad/pattern-detector.js +365 -365
  490. package/src/squad/preflight-context.js +296 -296
  491. package/src/squad/recovery-context.js +372 -372
  492. package/src/squad/reflection.js +365 -365
  493. package/src/squad/squad-scaffold.js +341 -177
  494. package/src/squad/state-manager.js +310 -310
  495. package/src/squad/task-decomposer.js +652 -652
  496. package/src/squad/verify-gate.js +303 -303
  497. package/src/squad/worktree-manager.js +114 -114
  498. package/src/squad-daemon.js +490 -490
  499. package/src/squad-dashboard/api.js +223 -223
  500. package/src/squad-dashboard/attachment-handler.js +93 -93
  501. package/src/squad-dashboard/context-monitor.js +157 -157
  502. package/src/squad-dashboard/execution-logs.js +115 -115
  503. package/src/squad-dashboard/hunk-review.js +209 -209
  504. package/src/squad-dashboard/metrics.js +133 -133
  505. package/src/squad-dashboard/process-monitor.js +125 -125
  506. package/src/squad-dashboard/renderer.js +858 -858
  507. package/src/squad-dashboard/server.js +232 -232
  508. package/src/squad-dashboard/styles.js +525 -525
  509. package/src/squad-dashboard/token-tracker.js +99 -99
  510. package/src/squads/apply-genome.js +21 -21
  511. package/src/squads/genome-binding-service.js +154 -154
  512. package/src/sub-task-engine.js +415 -0
  513. package/src/sub-task-schemas.js +150 -0
  514. package/src/sub-task-state.js +152 -0
  515. package/src/sub-task-telemetry.js +69 -0
  516. package/src/test-briefing.js +226 -0
  517. package/src/tool-executor.js +94 -94
  518. package/src/updater.js +39 -39
  519. package/src/utils.js +49 -46
  520. package/src/version.js +50 -50
  521. package/src/web.js +284 -284
  522. package/src/worker-runner.js +541 -524
  523. package/src/workflow-gates.js +185 -0
  524. package/template/.aioson/advisors/.gitkeep +1 -1
  525. package/template/.aioson/agents/analyst.md +333 -372
  526. package/template/.aioson/agents/architect.md +325 -338
  527. package/template/.aioson/agents/briefing.md +264 -0
  528. package/template/.aioson/agents/committer.md +161 -0
  529. package/template/.aioson/agents/copywriter.md +937 -463
  530. package/template/.aioson/agents/design-hybrid-forge.md +141 -141
  531. package/template/.aioson/agents/dev.md +295 -779
  532. package/template/.aioson/agents/deyvin.md +198 -290
  533. package/template/.aioson/agents/discover.md +235 -0
  534. package/template/.aioson/agents/discovery-design-doc.md +56 -264
  535. package/template/.aioson/agents/genome.md +1904 -314
  536. package/template/.aioson/agents/manifests/analyst.manifest.json +26 -0
  537. package/template/.aioson/agents/manifests/architect.manifest.json +23 -0
  538. package/template/.aioson/agents/manifests/committer.manifest.json +23 -0
  539. package/template/.aioson/agents/manifests/dev.manifest.json +54 -0
  540. package/template/.aioson/agents/manifests/deyvin.manifest.json +41 -0
  541. package/template/.aioson/agents/manifests/orchestrator.manifest.json +30 -0
  542. package/template/.aioson/agents/manifests/pentester.manifest.json +39 -0
  543. package/template/.aioson/agents/manifests/pm.manifest.json +26 -0
  544. package/template/.aioson/agents/manifests/product.manifest.json +23 -0
  545. package/template/.aioson/agents/manifests/qa.manifest.json +41 -0
  546. package/template/.aioson/agents/manifests/setup.manifest.json +20 -0
  547. package/template/.aioson/agents/manifests/ux-ui.manifest.json +24 -0
  548. package/template/.aioson/agents/neo.md +341 -233
  549. package/template/.aioson/agents/orache.md +430 -434
  550. package/template/.aioson/agents/orchestrator.md +274 -364
  551. package/template/.aioson/agents/pair.md +5 -5
  552. package/template/.aioson/agents/pentester.md +289 -0
  553. package/template/.aioson/agents/pm.md +141 -194
  554. package/template/.aioson/agents/product.md +351 -518
  555. package/template/.aioson/agents/profiler-enricher.md +331 -280
  556. package/template/.aioson/agents/profiler-forge.md +212 -202
  557. package/template/.aioson/agents/profiler-researcher.md +282 -259
  558. package/template/.aioson/agents/qa.md +432 -688
  559. package/template/.aioson/agents/setup.md +423 -649
  560. package/template/.aioson/agents/sheldon.md +259 -829
  561. package/template/.aioson/agents/site-forge.md +281 -1753
  562. package/template/.aioson/agents/squad.md +160 -2027
  563. package/template/.aioson/agents/tester.md +536 -463
  564. package/template/.aioson/agents/ux-ui.md +195 -870
  565. package/template/.aioson/agents/validator.md +101 -0
  566. package/template/.aioson/brains/README.md +132 -128
  567. package/template/.aioson/brains/_archived/.gitkeep +0 -0
  568. package/template/.aioson/brains/_index.json +34 -16
  569. package/template/.aioson/brains/dev/patterns.brain.json +79 -0
  570. package/template/.aioson/brains/scripts/query.js +107 -103
  571. package/template/.aioson/brains/sheldon/architecture-decisions.brain.json +79 -0
  572. package/template/.aioson/brains/site-forge/visual-patterns.brain.json +205 -205
  573. package/template/.aioson/config/autonomy-protocol.json +125 -0
  574. package/template/.aioson/config/learning-loop.json +10 -0
  575. package/template/.aioson/config/scout-engine.json +1 -0
  576. package/template/.aioson/config.md +410 -382
  577. package/template/.aioson/constitution.md +36 -33
  578. package/template/.aioson/context/_archived/.gitkeep +0 -0
  579. package/template/.aioson/context/design-doc.md +136 -0
  580. package/template/.aioson/context/project-map.md +57 -0
  581. package/template/.aioson/context/project-pulse.md +34 -34
  582. package/template/.aioson/context/seeds/seed-example.md +27 -27
  583. package/template/.aioson/context/spec.md.template +54 -54
  584. package/template/.aioson/context/user-profile.md +42 -42
  585. package/template/.aioson/design-docs/code-reuse.md +48 -0
  586. package/template/.aioson/design-docs/componentization.md +47 -0
  587. package/template/.aioson/design-docs/file-size.md +52 -0
  588. package/template/.aioson/design-docs/folder-structure.md +51 -0
  589. package/template/.aioson/design-docs/naming.md +54 -0
  590. package/template/.aioson/docs/LAYERS.md +89 -79
  591. package/template/.aioson/docs/README.md +76 -76
  592. package/template/.aioson/docs/autonomy-protocol.md +80 -0
  593. package/template/.aioson/docs/briefing/briefing-craft.md +237 -0
  594. package/template/.aioson/docs/dev/execution-discipline.md +106 -0
  595. package/template/.aioson/docs/dev/stack-conventions.md +83 -0
  596. package/template/.aioson/docs/deyvin/continuity-recovery.md +57 -0
  597. package/template/.aioson/docs/deyvin/debugging-escalation.md +30 -0
  598. package/template/.aioson/docs/deyvin/pair-execution.md +44 -0
  599. package/template/.aioson/docs/deyvin/runtime-handoffs.md +36 -0
  600. package/template/.aioson/docs/example-external-api-context.md +72 -72
  601. package/template/.aioson/docs/pentester/app-playbooks.md +206 -0
  602. package/template/.aioson/docs/pentester/llm-supplychain.md +165 -0
  603. package/template/.aioson/docs/product/conversation-playbook.md +116 -0
  604. package/template/.aioson/docs/product/prd-contract.md +107 -0
  605. package/template/.aioson/docs/product/quality-lens.md +57 -0
  606. package/template/.aioson/docs/product/research-loop.md +65 -0
  607. package/template/.aioson/docs/sheldon/enrichment-paths.md +134 -0
  608. package/template/.aioson/docs/sheldon/harness-contract.md +118 -0
  609. package/template/.aioson/docs/sheldon/quality-lens.md +57 -0
  610. package/template/.aioson/docs/sheldon/research-loop.md +56 -0
  611. package/template/.aioson/docs/sheldon/web-intelligence.md +75 -0
  612. package/template/.aioson/docs/site-forge-build.md +195 -0
  613. package/template/.aioson/docs/site-forge-extraction.md +135 -0
  614. package/template/.aioson/docs/site-forge-qa.md +155 -0
  615. package/template/.aioson/docs/site-forge-recon.md +434 -0
  616. package/template/.aioson/docs/site-forge-transform.md +249 -0
  617. package/template/.aioson/docs/squad/content-output.md +91 -0
  618. package/template/.aioson/docs/squad/creation-flow.md +149 -0
  619. package/template/.aioson/docs/squad/domain-breadth.md +322 -0
  620. package/template/.aioson/docs/squad/domain-classification.md +117 -0
  621. package/template/.aioson/docs/squad/genome-bindings.md +47 -0
  622. package/template/.aioson/docs/squad/package-contract.md +260 -0
  623. package/template/.aioson/docs/squad/quality-lens.md +60 -0
  624. package/template/.aioson/docs/squad/research-loop.md +59 -0
  625. package/template/.aioson/docs/squad/session-operations.md +117 -0
  626. package/template/.aioson/docs/squad/workflow-quality.md +165 -0
  627. package/template/.aioson/docs/tester/coverage-quality.md +351 -0
  628. package/template/.aioson/docs/ux-ui/accessibility-audit.md +55 -0
  629. package/template/.aioson/docs/ux-ui/audit-mode.md +86 -0
  630. package/template/.aioson/docs/ux-ui/component-map.md +35 -0
  631. package/template/.aioson/docs/ux-ui/design-execution.md +111 -0
  632. package/template/.aioson/docs/ux-ui/design-gate.md +27 -0
  633. package/template/.aioson/docs/ux-ui/research-mode.md +39 -0
  634. package/template/.aioson/docs/ux-ui/site-delivery.md +156 -0
  635. package/template/.aioson/docs/ux-ui/token-contract.md +57 -0
  636. package/template/.aioson/genomes/INDEX.md +195 -0
  637. package/template/.aioson/genomes/copywriting/SKILL.md +137 -0
  638. package/template/.aioson/genomes/copywriting/manifest.json +140 -0
  639. package/template/.aioson/genomes/copywriting/references/application-notes.md +145 -0
  640. package/template/.aioson/genomes/copywriting/references/decision-weights.md +45 -0
  641. package/template/.aioson/genomes/copywriting/references/frameworks/5-act-narrative.md +184 -0
  642. package/template/.aioson/genomes/copywriting/references/frameworks/classical-formulas.md +164 -0
  643. package/template/.aioson/genomes/copywriting/references/frameworks/offer-stack.md +195 -0
  644. package/template/.aioson/genomes/copywriting/references/frameworks/one-belief.md +135 -0
  645. package/template/.aioson/genomes/copywriting/references/frameworks/pms-research.md +211 -0
  646. package/template/.aioson/genomes/copywriting/references/frameworks/two-paths-close.md +190 -0
  647. package/template/.aioson/genomes/copywriting/references/heuristics.md +114 -0
  648. package/template/.aioson/genomes/copywriting/references/meta-axioms.md +68 -0
  649. package/template/.aioson/genomes/copywriting/references/methodology.md +115 -0
  650. package/template/.aioson/genomes/copywriting-brunson/SKILL.md +133 -0
  651. package/template/.aioson/genomes/copywriting-brunson/manifest.json +152 -0
  652. package/template/.aioson/genomes/copywriting-brunson/references/application-notes.md +113 -0
  653. package/template/.aioson/genomes/copywriting-brunson/references/decision-weights.md +33 -0
  654. package/template/.aioson/genomes/copywriting-brunson/references/evidence-and-attribution.md +81 -0
  655. package/template/.aioson/genomes/copywriting-brunson/references/frameworks/6-part-structure.md +136 -0
  656. package/template/.aioson/genomes/copywriting-brunson/references/frameworks/origin-story.md +121 -0
  657. package/template/.aioson/genomes/copywriting-brunson/references/frameworks/perfect-webinar-script.md +139 -0
  658. package/template/.aioson/genomes/copywriting-brunson/references/frameworks/persuasive-storytelling-5-structures.md +164 -0
  659. package/template/.aioson/genomes/copywriting-brunson/references/frameworks/value-stack.md +136 -0
  660. package/template/.aioson/genomes/copywriting-brunson/references/frameworks/who-what-why-how.md +110 -0
  661. package/template/.aioson/genomes/copywriting-brunson/references/meta-axioms.md +36 -0
  662. package/template/.aioson/genomes/copywriting-brunson/references/methodology.md +112 -0
  663. package/template/.aioson/git-guard.json +12 -0
  664. package/template/.aioson/mcp/servers.md +23 -24
  665. package/template/.aioson/profiler-reports/.gitkeep +1 -1
  666. package/template/.aioson/rules/README.md +69 -69
  667. package/template/.aioson/rules/_archived/.gitkeep +0 -0
  668. package/template/.aioson/rules/agent-language-policy.md +93 -0
  669. package/template/.aioson/rules/aioson-context-boundary.md +63 -0
  670. package/template/.aioson/rules/canonical-path-contract.md +47 -0
  671. package/template/.aioson/rules/data-format-convention.md +74 -136
  672. package/template/.aioson/rules/disk-first-artifacts.md +44 -0
  673. package/template/.aioson/rules/example-monetary-values.md +30 -30
  674. package/template/.aioson/rules/output-brevity.md +44 -0
  675. package/template/.aioson/rules/prd-section-ownership.md +49 -0
  676. package/template/.aioson/rules/security-baseline.md +139 -0
  677. package/template/.aioson/rules/spec-level-ownership.md +61 -0
  678. package/template/.aioson/rules/squad/README.md +50 -50
  679. package/template/.aioson/rules/squad-driver-pattern.md +81 -0
  680. package/template/.aioson/schemas/content-blueprint.schema.json +30 -30
  681. package/template/.aioson/schemas/genome-meta.schema.json +150 -150
  682. package/template/.aioson/schemas/genome.schema.json +115 -115
  683. package/template/.aioson/schemas/readiness.schema.json +27 -27
  684. package/template/.aioson/schemas/squad-blueprint.schema.json +228 -204
  685. package/template/.aioson/schemas/squad-manifest.schema.json +874 -830
  686. package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +243 -243
  687. package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -293
  688. package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -827
  689. package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -250
  690. package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -585
  691. package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -365
  692. package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +482 -482
  693. package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +387 -387
  694. package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +205 -205
  695. package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -338
  696. package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -977
  697. package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -218
  698. package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -326
  699. package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -461
  700. package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -293
  701. package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -352
  702. package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -210
  703. package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -319
  704. package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -365
  705. package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -196
  706. package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -244
  707. package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -235
  708. package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -215
  709. package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -295
  710. package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +203 -203
  711. package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -339
  712. package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +407 -407
  713. package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +272 -272
  714. package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +524 -524
  715. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +279 -279
  716. package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +289 -289
  717. package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +437 -437
  718. package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +222 -222
  719. package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -159
  720. package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -498
  721. package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -236
  722. package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -274
  723. package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -355
  724. package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -198
  725. package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -307
  726. package/template/.aioson/skills/design/interface-design/SKILL.md +47 -47
  727. package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -105
  728. package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -101
  729. package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +71 -71
  730. package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -74
  731. package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -173
  732. package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +213 -213
  733. package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -228
  734. package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -855
  735. package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -334
  736. package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -342
  737. package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -286
  738. package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -458
  739. package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -723
  740. package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +62 -62
  741. package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -74
  742. package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -116
  743. package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -47
  744. package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -215
  745. package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -31
  746. package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +66 -66
  747. package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +368 -368
  748. package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -150
  749. package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -270
  750. package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -189
  751. package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +165 -165
  752. package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +209 -209
  753. package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -324
  754. package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -508
  755. package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -223
  756. package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -374
  757. package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -356
  758. package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -288
  759. package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -289
  760. package/template/.aioson/skills/design-system/SKILL.md +92 -92
  761. package/template/.aioson/skills/design-system/components/SKILL.md +274 -274
  762. package/template/.aioson/skills/design-system/dashboards/SKILL.md +184 -184
  763. package/template/.aioson/skills/design-system/foundations/SKILL.md +250 -250
  764. package/template/.aioson/skills/design-system/motion/SKILL.md +197 -197
  765. package/template/.aioson/skills/design-system/patterns/SKILL.md +231 -231
  766. package/template/.aioson/skills/dynamic/README.md +30 -30
  767. package/template/.aioson/skills/dynamic/cardano-docs.md +16 -16
  768. package/template/.aioson/skills/dynamic/ethereum-docs.md +17 -17
  769. package/template/.aioson/skills/dynamic/flux-ui-docs.md +13 -13
  770. package/template/.aioson/skills/dynamic/laravel-docs.md +41 -41
  771. package/template/.aioson/skills/dynamic/npm-packages.md +16 -16
  772. package/template/.aioson/skills/dynamic/solana-docs.md +16 -16
  773. package/template/.aioson/skills/marketing/references/anti-patterns.md +254 -254
  774. package/template/.aioson/skills/marketing/references/cta-matrix.md +361 -0
  775. package/template/.aioson/skills/marketing/references/fascinations.md +192 -192
  776. package/template/.aioson/skills/marketing/references/five-acts.md +248 -248
  777. package/template/.aioson/skills/marketing/references/headline-matrix.md +358 -0
  778. package/template/.aioson/skills/marketing/references/market-intelligence.md +198 -198
  779. package/template/.aioson/skills/marketing/references/offer-structure.md +203 -203
  780. package/template/.aioson/skills/marketing/references/one-belief.md +149 -149
  781. package/template/.aioson/skills/marketing/references/patterns.md +218 -218
  782. package/template/.aioson/skills/marketing/references/platform-constraints.md +337 -0
  783. package/template/.aioson/skills/marketing/references/pms-research.md +193 -193
  784. package/template/.aioson/skills/marketing/vsl-craft.md +385 -385
  785. package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -83
  786. package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -92
  787. package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -102
  788. package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -136
  789. package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -136
  790. package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -188
  791. package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -131
  792. package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -198
  793. package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -275
  794. package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -234
  795. package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -147
  796. package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -142
  797. package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +46 -46
  798. package/template/.aioson/skills/process/aioson-spec-driven/references/analyst.md +30 -30
  799. package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +109 -109
  800. package/template/.aioson/skills/process/aioson-spec-driven/references/architect.md +23 -23
  801. package/template/.aioson/skills/process/aioson-spec-driven/references/artifact-map.md +44 -44
  802. package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +37 -37
  803. package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +47 -47
  804. package/template/.aioson/skills/process/aioson-spec-driven/references/deyvin.md +27 -27
  805. package/template/.aioson/skills/process/aioson-spec-driven/references/hardening-lane.md +49 -49
  806. package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +101 -101
  807. package/template/.aioson/skills/process/aioson-spec-driven/references/pm.md +30 -0
  808. package/template/.aioson/skills/process/aioson-spec-driven/references/product.md +25 -25
  809. package/template/.aioson/skills/process/aioson-spec-driven/references/qa.md +30 -30
  810. package/template/.aioson/skills/process/aioson-spec-driven/references/sheldon.md +25 -25
  811. package/template/.aioson/skills/process/aioson-spec-driven/references/ui-language.md +75 -75
  812. package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +147 -147
  813. package/template/.aioson/skills/process/design-hybrid-forge/references/crossover-protocol.md +221 -221
  814. package/template/.aioson/skills/process/design-hybrid-forge/references/naming-registry.md +88 -88
  815. package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +306 -306
  816. package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +149 -149
  817. package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +208 -208
  818. package/template/.aioson/skills/process/design-hybrid-forge/references/variation-library.md +125 -125
  819. package/template/.aioson/skills/process/secure-tdd/SKILL.md +97 -0
  820. package/template/.aioson/skills/process/simplify/SKILL.md +173 -173
  821. package/template/.aioson/skills/references/premium-command-center-ui/master-application-prompt.md +79 -79
  822. package/template/.aioson/skills/references/premium-command-center-ui/operational-ux-playbook.md +253 -253
  823. package/template/.aioson/skills/references/premium-command-center-ui/quality-validation-checklist.md +82 -82
  824. package/template/.aioson/skills/references/premium-command-center-ui/visual-system-and-component-patterns.md +270 -270
  825. package/template/.aioson/skills/squad/SKILL.md +58 -58
  826. package/template/.aioson/skills/squad/formats/catalog.json +15 -15
  827. package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -47
  828. package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -47
  829. package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -43
  830. package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -41
  831. package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -42
  832. package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -42
  833. package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -39
  834. package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -39
  835. package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -47
  836. package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -39
  837. package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -108
  838. package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -98
  839. package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -106
  840. package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -81
  841. package/template/.aioson/skills/squad/references/checklist-templates.md +122 -122
  842. package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -123
  843. package/template/.aioson/skills/squad/references/workflow-templates.md +169 -169
  844. package/template/.aioson/skills/static/context-budget-guide.md +46 -46
  845. package/template/.aioson/skills/static/debugging-protocol.md +42 -42
  846. package/template/.aioson/skills/static/django-patterns.md +342 -342
  847. package/template/.aioson/skills/static/fastapi-patterns.md +344 -344
  848. package/template/.aioson/skills/static/filament-patterns.md +267 -267
  849. package/template/.aioson/skills/static/flux-ui-components.md +262 -262
  850. package/template/.aioson/skills/static/git-conventions.md +227 -227
  851. package/template/.aioson/skills/static/git-worktrees.md +36 -36
  852. package/template/.aioson/skills/static/harness-sensors.md +74 -74
  853. package/template/.aioson/skills/static/harness-validate/SKILL.md +46 -0
  854. package/template/.aioson/skills/static/jetstream-setup.md +200 -200
  855. package/template/.aioson/skills/static/landing-page-deploy.md +192 -192
  856. package/template/.aioson/skills/static/landing-page-forge.md +730 -730
  857. package/template/.aioson/skills/static/laravel-conventions.md +491 -491
  858. package/template/.aioson/skills/static/multi-agent-patterns.md +43 -43
  859. package/template/.aioson/skills/static/nextjs-patterns.md +321 -321
  860. package/template/.aioson/skills/static/node-express-patterns.md +317 -317
  861. package/template/.aioson/skills/static/node-typescript-patterns.md +282 -282
  862. package/template/.aioson/skills/static/rails-conventions.md +307 -307
  863. package/template/.aioson/skills/static/react-motion-patterns.md +599 -599
  864. package/template/.aioson/skills/static/static-html-patterns/checklists.md +43 -43
  865. package/template/.aioson/skills/static/static-html-patterns/css-tokens.md +609 -609
  866. package/template/.aioson/skills/static/static-html-patterns/motion.md +193 -193
  867. package/template/.aioson/skills/static/static-html-patterns/premium.md +711 -711
  868. package/template/.aioson/skills/static/static-html-patterns/structure.md +209 -209
  869. package/template/.aioson/skills/static/static-html-patterns/utilities.md +190 -190
  870. package/template/.aioson/skills/static/static-html-patterns.md +80 -80
  871. package/template/.aioson/skills/static/tall-stack-patterns.md +286 -286
  872. package/template/.aioson/skills/static/threejs-patterns.md +929 -929
  873. package/template/.aioson/skills/static/ui-ux-modern.md +76 -76
  874. package/template/.aioson/skills/static/web-research-cache.md +115 -112
  875. package/template/.aioson/skills/static/web3-cardano-patterns.md +337 -337
  876. package/template/.aioson/skills/static/web3-ethereum-patterns.md +310 -310
  877. package/template/.aioson/skills/static/web3-security-checklist.md +284 -284
  878. package/template/.aioson/skills/static/web3-solana-patterns.md +324 -324
  879. package/template/.aioson/squads/memory.md +5 -5
  880. package/template/.aioson/tasks/implementation-plan.md +327 -327
  881. package/template/.aioson/tasks/squad-analyze.md +83 -83
  882. package/template/.aioson/tasks/squad-create.md +148 -121
  883. package/template/.aioson/tasks/squad-design.md +206 -158
  884. package/template/.aioson/tasks/squad-execution-plan.md +279 -279
  885. package/template/.aioson/tasks/squad-export.md +20 -20
  886. package/template/.aioson/tasks/squad-extend.md +68 -68
  887. package/template/.aioson/tasks/squad-investigate.md +57 -44
  888. package/template/.aioson/tasks/squad-learning-review.md +44 -44
  889. package/template/.aioson/tasks/squad-output-config.md +177 -177
  890. package/template/.aioson/tasks/squad-pipeline.md +122 -122
  891. package/template/.aioson/tasks/squad-profile.md +48 -48
  892. package/template/.aioson/tasks/squad-refresh.md +236 -0
  893. package/template/.aioson/tasks/squad-repair.md +85 -85
  894. package/template/.aioson/tasks/squad-review.md +61 -61
  895. package/template/.aioson/tasks/squad-task-decompose.md +66 -66
  896. package/template/.aioson/tasks/squad-validate.md +58 -58
  897. package/template/.aioson/templates/reflect-prompts/current-state.md +36 -0
  898. package/template/.aioson/templates/reflect-prompts/how-it-works.md +23 -0
  899. package/template/.aioson/templates/reflect-prompts/what-it-does.md +21 -0
  900. package/template/.aioson/templates/squads/content-basic/template.json +21 -21
  901. package/template/.aioson/templates/squads/digital-marketing-agency/template.json +96 -96
  902. package/template/.aioson/templates/squads/media-channel/template.json +24 -24
  903. package/template/.aioson/templates/squads/research-analysis/template.json +22 -22
  904. package/template/.aioson/templates/squads/software-delivery/template.json +21 -21
  905. package/template/.claude/commands/aioson/agent/analyst.md +5 -5
  906. package/template/.claude/commands/aioson/agent/architect.md +5 -5
  907. package/template/.claude/commands/aioson/agent/briefing.md +5 -0
  908. package/template/.claude/commands/aioson/agent/committer.md +5 -0
  909. package/template/.claude/commands/aioson/agent/copywriter.md +5 -0
  910. package/template/.claude/commands/aioson/agent/design-hybrid-forge.md +5 -5
  911. package/template/.claude/commands/aioson/agent/dev.md +5 -5
  912. package/template/.claude/commands/aioson/agent/deyvin.md +5 -5
  913. package/template/.claude/commands/aioson/agent/discover.md +5 -0
  914. package/template/.claude/commands/aioson/agent/discovery-design-doc.md +5 -5
  915. package/template/.claude/commands/aioson/agent/genome.md +5 -5
  916. package/template/.claude/commands/aioson/agent/neo.md +5 -5
  917. package/template/.claude/commands/aioson/agent/orache.md +5 -5
  918. package/template/.claude/commands/aioson/agent/orchestrator.md +5 -5
  919. package/template/.claude/commands/aioson/agent/pair.md +5 -0
  920. package/template/.claude/commands/aioson/agent/pentester.md +5 -0
  921. package/template/.claude/commands/aioson/agent/pm.md +5 -5
  922. package/template/.claude/commands/aioson/agent/product.md +5 -5
  923. package/template/.claude/commands/aioson/agent/profiler-enricher.md +5 -5
  924. package/template/.claude/commands/aioson/agent/profiler-forge.md +5 -5
  925. package/template/.claude/commands/aioson/agent/profiler-researcher.md +5 -5
  926. package/template/.claude/commands/aioson/agent/qa.md +5 -5
  927. package/template/.claude/commands/aioson/agent/setup.md +5 -5
  928. package/template/.claude/commands/aioson/agent/sheldon.md +5 -5
  929. package/template/.claude/commands/aioson/agent/site-forge.md +5 -5
  930. package/template/.claude/commands/aioson/agent/squad.md +5 -5
  931. package/template/.claude/commands/aioson/agent/tester.md +5 -5
  932. package/template/.claude/commands/aioson/agent/ux-ui.md +5 -5
  933. package/template/.claude/commands/aioson/agent/validator.md +5 -0
  934. package/template/.gemini/GEMINI.md +13 -13
  935. package/template/.gemini/commands/aios-analyst.toml +7 -4
  936. package/template/.gemini/commands/aios-architect.toml +8 -7
  937. package/template/.gemini/commands/aios-committer.toml +7 -0
  938. package/template/.gemini/commands/aios-copywriter.toml +7 -0
  939. package/template/.gemini/commands/aios-cypher.toml +7 -0
  940. package/template/.gemini/commands/aios-dev.toml +9 -8
  941. package/template/.gemini/commands/aios-deyvin.toml +7 -6
  942. package/template/.gemini/commands/aios-discover.toml +6 -0
  943. package/template/.gemini/commands/aios-discovery-design-doc.toml +7 -4
  944. package/template/.gemini/commands/aios-genome.toml +7 -0
  945. package/template/.gemini/commands/aios-neo.toml +6 -4
  946. package/template/.gemini/commands/aios-orache.toml +7 -0
  947. package/template/.gemini/commands/aios-orchestrator.toml +9 -8
  948. package/template/.gemini/commands/aios-pair.toml +7 -6
  949. package/template/.gemini/commands/aios-pm.toml +9 -8
  950. package/template/.gemini/commands/aios-product.toml +6 -4
  951. package/template/.gemini/commands/aios-qa.toml +7 -6
  952. package/template/.gemini/commands/aios-setup.toml +6 -3
  953. package/template/.gemini/commands/aios-sheldon.toml +7 -0
  954. package/template/.gemini/commands/aios-site-forge.toml +7 -0
  955. package/template/.gemini/commands/aios-squad.toml +7 -0
  956. package/template/.gemini/commands/aios-tester.toml +7 -6
  957. package/template/.gemini/commands/aios-ux-ui.toml +9 -8
  958. package/template/.gemini/commands/aios-validator.toml +7 -0
  959. package/template/AGENTS.md +184 -172
  960. package/template/CLAUDE.md +98 -93
  961. package/template/OPENCODE.md +35 -34
  962. package/template/aioson-models.json +40 -40
  963. package/docs/en/i18n.md +0 -52
  964. package/docs/en/schemas/parallel-status.schema.json +0 -94
  965. package/template/.aioson/genomes/copywriting.md +0 -204
  966. package/template/.aioson/locales/en/agents/analyst.md +0 -244
  967. package/template/.aioson/locales/en/agents/architect.md +0 -245
  968. package/template/.aioson/locales/en/agents/dev.md +0 -397
  969. package/template/.aioson/locales/en/agents/deyvin.md +0 -137
  970. package/template/.aioson/locales/en/agents/discovery-design-doc.md +0 -27
  971. package/template/.aioson/locales/en/agents/genome.md +0 -212
  972. package/template/.aioson/locales/en/agents/neo.md +0 -8
  973. package/template/.aioson/locales/en/agents/orache.md +0 -6
  974. package/template/.aioson/locales/en/agents/orchestrator.md +0 -189
  975. package/template/.aioson/locales/en/agents/pair.md +0 -5
  976. package/template/.aioson/locales/en/agents/pm.md +0 -84
  977. package/template/.aioson/locales/en/agents/product.md +0 -378
  978. package/template/.aioson/locales/en/agents/profiler-enricher.md +0 -5
  979. package/template/.aioson/locales/en/agents/profiler-forge.md +0 -5
  980. package/template/.aioson/locales/en/agents/profiler-researcher.md +0 -5
  981. package/template/.aioson/locales/en/agents/qa.md +0 -270
  982. package/template/.aioson/locales/en/agents/setup.md +0 -421
  983. package/template/.aioson/locales/en/agents/sheldon.md +0 -455
  984. package/template/.aioson/locales/en/agents/squad.md +0 -449
  985. package/template/.aioson/locales/en/agents/tester.md +0 -6
  986. package/template/.aioson/locales/en/agents/ux-ui.md +0 -668
  987. package/template/.aioson/locales/es/agents/analyst.md +0 -225
  988. package/template/.aioson/locales/es/agents/architect.md +0 -245
  989. package/template/.aioson/locales/es/agents/dev.md +0 -370
  990. package/template/.aioson/locales/es/agents/deyvin.md +0 -99
  991. package/template/.aioson/locales/es/agents/discovery-design-doc.md +0 -21
  992. package/template/.aioson/locales/es/agents/genome.md +0 -104
  993. package/template/.aioson/locales/es/agents/neo.md +0 -50
  994. package/template/.aioson/locales/es/agents/orache.md +0 -105
  995. package/template/.aioson/locales/es/agents/orchestrator.md +0 -194
  996. package/template/.aioson/locales/es/agents/pair.md +0 -7
  997. package/template/.aioson/locales/es/agents/pm.md +0 -90
  998. package/template/.aioson/locales/es/agents/product.md +0 -372
  999. package/template/.aioson/locales/es/agents/profiler-enricher.md +0 -7
  1000. package/template/.aioson/locales/es/agents/profiler-forge.md +0 -7
  1001. package/template/.aioson/locales/es/agents/profiler-researcher.md +0 -7
  1002. package/template/.aioson/locales/es/agents/qa.md +0 -198
  1003. package/template/.aioson/locales/es/agents/setup.md +0 -405
  1004. package/template/.aioson/locales/es/agents/sheldon.md +0 -309
  1005. package/template/.aioson/locales/es/agents/squad.md +0 -532
  1006. package/template/.aioson/locales/es/agents/tester.md +0 -9
  1007. package/template/.aioson/locales/es/agents/ux-ui.md +0 -212
  1008. package/template/.aioson/locales/fr/agents/analyst.md +0 -225
  1009. package/template/.aioson/locales/fr/agents/architect.md +0 -245
  1010. package/template/.aioson/locales/fr/agents/dev.md +0 -370
  1011. package/template/.aioson/locales/fr/agents/deyvin.md +0 -99
  1012. package/template/.aioson/locales/fr/agents/discovery-design-doc.md +0 -21
  1013. package/template/.aioson/locales/fr/agents/genome.md +0 -104
  1014. package/template/.aioson/locales/fr/agents/neo.md +0 -50
  1015. package/template/.aioson/locales/fr/agents/orache.md +0 -106
  1016. package/template/.aioson/locales/fr/agents/orchestrator.md +0 -194
  1017. package/template/.aioson/locales/fr/agents/pair.md +0 -7
  1018. package/template/.aioson/locales/fr/agents/pm.md +0 -90
  1019. package/template/.aioson/locales/fr/agents/product.md +0 -372
  1020. package/template/.aioson/locales/fr/agents/profiler-enricher.md +0 -7
  1021. package/template/.aioson/locales/fr/agents/profiler-forge.md +0 -7
  1022. package/template/.aioson/locales/fr/agents/profiler-researcher.md +0 -7
  1023. package/template/.aioson/locales/fr/agents/qa.md +0 -198
  1024. package/template/.aioson/locales/fr/agents/setup.md +0 -405
  1025. package/template/.aioson/locales/fr/agents/sheldon.md +0 -309
  1026. package/template/.aioson/locales/fr/agents/squad.md +0 -532
  1027. package/template/.aioson/locales/fr/agents/tester.md +0 -9
  1028. package/template/.aioson/locales/fr/agents/ux-ui.md +0 -212
  1029. package/template/.aioson/locales/pt-BR/agents/analyst.md +0 -319
  1030. package/template/.aioson/locales/pt-BR/agents/architect.md +0 -284
  1031. package/template/.aioson/locales/pt-BR/agents/dev.md +0 -483
  1032. package/template/.aioson/locales/pt-BR/agents/deyvin.md +0 -184
  1033. package/template/.aioson/locales/pt-BR/agents/discovery-design-doc.md +0 -198
  1034. package/template/.aioson/locales/pt-BR/agents/genome.md +0 -297
  1035. package/template/.aioson/locales/pt-BR/agents/neo.md +0 -208
  1036. package/template/.aioson/locales/pt-BR/agents/orache.md +0 -137
  1037. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +0 -324
  1038. package/template/.aioson/locales/pt-BR/agents/pair.md +0 -5
  1039. package/template/.aioson/locales/pt-BR/agents/pm.md +0 -182
  1040. package/template/.aioson/locales/pt-BR/agents/product.md +0 -466
  1041. package/template/.aioson/locales/pt-BR/agents/profiler-enricher.md +0 -5
  1042. package/template/.aioson/locales/pt-BR/agents/profiler-forge.md +0 -5
  1043. package/template/.aioson/locales/pt-BR/agents/profiler-researcher.md +0 -5
  1044. package/template/.aioson/locales/pt-BR/agents/qa.md +0 -300
  1045. package/template/.aioson/locales/pt-BR/agents/setup.md +0 -533
  1046. package/template/.aioson/locales/pt-BR/agents/sheldon.md +0 -323
  1047. package/template/.aioson/locales/pt-BR/agents/squad.md +0 -1330
  1048. package/template/.aioson/locales/pt-BR/agents/tester.md +0 -449
  1049. package/template/.aioson/locales/pt-BR/agents/ux-ui.md +0 -669
@@ -1,1274 +1,1282 @@
1
- # Cenários de Uso
2
-
3
- > Exemplos completos e práticos de como usar o AIOSON em projetos reais.
4
-
5
- ---
6
-
7
- ## Cenário 1 — Landing page com formulário (MICRO)
8
-
9
- **Projeto:** Landing page de captura de leads com formulário de e-mail.
10
- **Stack:** HTML + Alpine.js + Tailwind + PHP simples para envio de e-mail.
11
- **Classificação:** MICRO (1 tipo de usuário, 1 integração, sem regras complexas → 1 ponto)
12
-
13
- ### Passo 1: Instalar e configurar
14
-
15
- ```bash
16
- mkdir landing-captura && cd landing-captura
17
- npx @jaimevalasek/aioson install
18
- npx @jaimevalasek/aioson setup:context . --defaults \
19
- --project-name="Landing Captura" \
20
- --project-type=site \
21
- --framework="None" \
22
- --framework-installed=false \
23
- --classification=MICRO \
24
- --lang=pt-BR
25
- ```
26
-
27
- ### Passo 2: Abrir Claude e ativar @setup
28
-
29
- No arquivo CLAUDE.md, o contexto já foi lido. Digite:
30
-
31
- ```
32
- /setup
33
- ```
34
-
35
- **O agente confirma o contexto pré-configurado:**
36
- ```
37
- Contexto carregado:
38
- - Projeto: Landing Captura
39
- - Tipo: site (MICRO)
40
- - Framework: Nenhum detectado
41
- - Idioma: pt-BR
42
-
43
- Classificação MICRO confirmada (0 pts): 1 tipo de usuário, sem integrações, sem regras complexas.
44
-
45
- Plano: @setup → @dev
46
- Próximo passo: ative /dev e descreva o que o projeto precisa ter.
47
- ```
48
-
49
- > **Nota:** As flags `--defaults` acima pré-preenchem o contexto sem perguntas interativas.
50
- > Se preferir o fluxo guiado, basta rodar `npx @jaimevalasek/aioson setup:context` sem flags — o agente
51
- > vai fazer as perguntas e identificar o projeto a partir da sua descrição.
52
-
53
- ### Passo 3: Ativar @dev diretamente
54
-
55
- ```
56
- /dev
57
-
58
- Preciso de uma landing page com:
59
- - Hero section com headline e CTA
60
- - Formulário de captura de e-mail (nome + e-mail)
61
- - Envio por PHP para um arquivo de log (sem banco)
62
- - Design limpo com Tailwind
63
- ```
64
-
65
- **O @dev entrega:**
66
- - `index.html` com estrutura completa
67
- - `style.css` ou classes Tailwind inline
68
- - `submit.php` para processar o formulário
69
- - Validação básica no frontend e backend
70
-
71
- ### Por que MICRO?
72
-
73
- Não precisa de @analyst (domínio simples), não precisa de @architect (estrutura trivial), não precisa de @qa (sem lógica crítica a testar). O @dev tem contexto suficiente para entregar direto.
74
-
75
- > Se até num projeto MICRO o pedido vier muito vago, você ainda pode encaixar `@discovery-design-doc` antes do `@dev`. Isso é exceção útil, não fluxo padrão.
76
-
77
- ---
78
-
79
- ## Cenário 2 — API REST com autenticação (SMALL)
80
-
81
- **Projeto:** API para gerenciar agendamentos de uma clínica médica.
82
- **Stack:** Laravel 11 + PostgreSQL + Sanctum.
83
- **Classificação:** SMALL (3 tipos de usuário=2pt, 2 integrações=1pt 3 pontos)
84
-
85
- ### Passo 1: Instalar
86
-
87
- ```bash
88
- # Laravel já está instalado e configurado
89
- cd minha-clinica-api
90
- npx @jaimevalasek/aioson install
91
- npx @jaimevalasek/aioson setup:context . --defaults \
92
- --project-name="Clinica API" \
93
- --project-type=api \
94
- --framework=Laravel \
95
- --framework-installed=true \
96
- --classification=SMALL \
97
- --lang=pt-BR
98
- ```
99
-
100
- ### Passo 2: Verificar saúde
101
-
102
- ```bash
103
- npx @jaimevalasek/aioson doctor
104
- ```
105
-
106
- ### Passo 3: @setup
107
-
108
- ```
109
- /setup
110
- ```
111
-
112
- **O agente confirma:**
113
- ```
114
- Contexto carregado:
115
- - Projeto: Clinica API (SMALL)
116
- - Framework: Laravel 11 (instalado ✓)
117
- - Classificação: SMALL
118
-
119
- Plano: @setup → @product → @analyst → @architect → @dev → @qa
120
-
121
- Próximo passo: /product
122
- Objetivo: gerar o PRD base antes de mapear pacientes, médicos, agendamentos e regras de negócio.
123
- ```
124
-
125
- ### Passo 4: @product — PRD base
126
-
127
- **Atalho com documento de kickoff (opcional):**
128
-
129
- Se você já tiver uma ideia esboçada, crie um arquivo de entrada antes de ativar o `@product`:
130
-
131
- ```bash
132
- # Crie plans/agendamentos.md com suas notas brutas:
133
- # - quero que pacientes agendem consultas online
134
- # - médico pode bloquear horários
135
- # - notificação por email na confirmação
136
- ```
137
-
138
- Ao ativar `/product`, o agente detecta `plans/agendamentos.md` e pergunta:
139
- > "Encontrei `plans/agendamentos.md`. Quer que eu use como fonte para o PRD?"
140
-
141
- Se sim, ele sintetiza o conteúdo e gera o PRD formal. Você pode deletar o arquivo original depois.
142
-
143
- ```
144
- /product
145
- ```
146
-
147
- **O @product registra no `prd.md`:**
148
- - visão do produto
149
- - usuários principais
150
- - escopo inicial do MVP
151
- - perguntas em aberto
152
-
153
- ### Passo 5: @analyst — Descoberta do domínio
154
-
155
- ```
156
- /analyst
157
- ```
158
-
159
- **O agente faz suas 6 perguntas:**
160
-
161
- ```
162
- 1. Quem são os tipos de usuário?
163
- ```
164
- *Você responde:* Paciente, Médico, Recepcionista
165
-
166
- ```
167
- 2. Qual o fluxo principal que gera valor?
168
- ```
169
- *Você responde:* Paciente agenda consulta → médico confirma → recepcionista valida presença
170
-
171
- ```
172
- 3. Existe processo manual hoje?
173
- ```
174
- *Você responde:* Sim, tudo é feito por telefone e planilha Excel
175
-
176
- ```
177
- 4. Quais são as regras de negócio críticas?
178
- ```
179
- *Você responde:*
180
- - Médico pode ter 1 consulta por horário
181
- - Cancelamento até 24h antes sem penalidade
182
- - Paciente não pode ter 2 consultas no mesmo dia com o mesmo médico
183
-
184
- ```
185
- 5. Integrações externas?
186
- ```
187
- *Você responde:* Envio de e-mail de confirmação (SMTP) e SMS via Twilio
188
-
189
- ```
190
- 6. Dados sensíveis?
191
- ```
192
- *Você responde:* Dados de saúde dos pacientes (LGPD)
193
-
194
- **O @analyst entrega** `.aioson/context/discovery.md`:
195
- ```markdown
196
- ## Entidades principais
197
-
198
- | Entidade | Atributos principais | Restrições |
199
- |--------------|-----------------------------------------------|------------------------------|
200
- | User | id, name, email, role, password | role: patient/doctor/staff |
201
- | Doctor | id, user_id, crm, specialty, schedule_config | CRM único |
202
- | Patient | id, user_id, cpf, birth_date, health_notes | CPF único, dados LGPD |
203
- | Appointment | id, doctor_id, patient_id, date, status | 1 por médico/horário |
204
- | TimeSlot | id, doctor_id, starts_at, ends_at, available | — |
205
-
206
- ## Regras de negócio
207
- - RN01: 1 consulta por médico por horário (check no create)
208
- - RN02: Cancelamento livre até 24h antes
209
- - RN03: 1 consulta por paciente/médico por dia
210
-
211
- ## Integrações
212
- - SMTP (Laravel Mail) confirmação de agendamento
213
- - Twilio SMS — lembrete 1h antes
214
-
215
- ## Riscos
216
- - LGPD: health_notes precisa de criptografia ou controle de acesso
217
- - Conflito de horários: critical path, requer lock otimista
218
- ```
219
-
220
- ### Onde `@discovery-design-doc` entraria neste cenário
221
-
222
- Se antes do `@analyst` você ainda não souber bem:
223
- - o recorte do MVP
224
- - o que fica fora de escopo
225
- - quais módulos atuais serão afetados
226
- - ou se a API já está pronta para implementação
227
-
228
- vale inserir:
229
-
230
- ```text
231
- @setup -> @discovery-design-doc -> @analyst -> @architect -> @dev
232
- ```
233
-
234
- Isso ajuda especialmente quando o projeto existe e a clínica quer adicionar uma feature grande sem sair codando cedo demais.
235
-
236
- ### Passo 5: @architect — Estrutura do projeto
237
-
238
- ```
239
- /architect
240
- ```
241
-
242
- **O @architect o discovery e entrega** `.aioson/context/architecture.md`:
243
-
244
- ```
245
- Classificação: SMALL → estrutura Laravel padrão, sem sub-pastas excessivas
246
-
247
- app/
248
- Actions/
249
- CreateAppointmentAction.php
250
- CancelAppointmentAction.php
251
- Http/
252
- Controllers/
253
- AppointmentController.php
254
- DoctorController.php
255
- Requests/
256
- CreateAppointmentRequest.php
257
- Models/
258
- User.php, Doctor.php, Patient.php, Appointment.php
259
- Policies/
260
- AppointmentPolicy.php
261
- Events/
262
- AppointmentCreated.php
263
- AppointmentCancelled.php
264
- Listeners/
265
- SendConfirmationEmail.php
266
- SendSmsReminder.php
267
-
268
- database/migrations/
269
- resources/ (apenas para erros API)
270
- routes/api.php
271
- tests/Feature/AppointmentTest.php
272
- ```
273
-
274
- **Decisões técnicas:**
275
- - Auth: Sanctum (tokens de API)
276
- - N+1: Eager loading em todos os índices (with('doctor.user', 'patient.user'))
277
- - Timezone: UTC no banco, conversão na camada de apresentação
278
-
279
- ### Passo 6: @dev — Implementação com TDD Gate
280
-
281
- ```
282
- /dev
283
-
284
- Implemente a feature de agendamentos primeiro.
285
- Comece pela migration, model, action e controller.
286
- ```
287
-
288
- O `@dev` detecta o test runner (`pest.xml` encontrado → Pest PHP) e aplica o TDD Gate antes de implementar qualquer lógica de negócio:
289
-
290
- **1. Escreve o teste com falha (RED):**
291
- ```php
292
- // tests/Feature/CreateAppointmentTest.php
293
- it('throws exception on doctor schedule conflict', function () {
294
- $doctor = Doctor::factory()->create();
295
- $slot = now()->addDay()->setHour(10)->setMinute(0);
296
-
297
- Appointment::factory()->create([
298
- 'doctor_id' => $doctor->id,
299
- 'date' => $slot,
300
- 'status' => 'confirmed',
301
- ]);
302
-
303
- expect(fn () => (new CreateAppointmentAction)->execute([
304
- 'doctor_id' => $doctor->id,
305
- 'patient_id' => Patient::factory()->create()->id,
306
- 'date' => $slot,
307
- ]))->toThrow(AppointmentConflictException::class);
308
- });
309
- ```
310
-
311
- Roda o teste → **falha** (RED confirmado). Só então implementa:
312
-
313
- **2. Implementa o suficiente para passar (GREEN):**
314
- ```php
315
- // app/Actions/CreateAppointmentAction.php
316
- class CreateAppointmentAction
317
- {
318
- public function execute(array $data): Appointment
319
- {
320
- // RN01: verificar conflito de horário
321
- $conflict = Appointment::where('doctor_id', $data['doctor_id'])
322
- ->where('date', $data['date'])
323
- ->where('status', '!=', 'cancelled')
324
- ->exists();
325
-
326
- if ($conflict) {
327
- throw new AppointmentConflictException();
328
- }
329
-
330
- // RN03: verificar duplicata paciente/médico/dia
331
- $duplicate = Appointment::where([
332
- 'patient_id' => $data['patient_id'],
333
- 'doctor_id' => $data['doctor_id'],
334
- ])->whereDate('date', $data['date'])->exists();
335
-
336
- if ($duplicate) {
337
- throw new DuplicateAppointmentException();
338
- }
339
-
340
- $appointment = Appointment::create($data);
341
- AppointmentCreated::dispatch($appointment);
342
- return $appointment;
343
- }
344
- }
345
- ```
346
-
347
- Roda o teste → **passa** (GREEN). Commit. Próximo passo.
348
-
349
- ### Passo 7: @qa — Testes
350
-
351
- ```
352
- /qa
353
-
354
- Revise a CreateAppointmentAction e escreva os testes para:
355
- - criação com sucesso
356
- - conflito de horário (RN01)
357
- - duplicata paciente (RN03)
358
- - cancelamento fora do prazo (RN02)
359
- ```
360
-
361
- **O @qa entrega** `tests/Feature/AppointmentTest.php` com todos os casos.
362
-
363
- > **Quando usar @tester em vez de @qa:** Se após o `@dev` a cobertura estiver em zero ou muito baixa, ative `/tester` em vez de `/qa`. O `@tester` começa por um inventário completo (`test-inventory.md`), mapeia os riscos, escolhe a estratégia e escreve testes em ordem de prioridade — Auth/Authorization > Business rules > Data integrity > UI. O `@qa` é um revisor pontual; o `@tester` é um engenheiro de testes que parte do zero.
364
-
365
- ---
366
-
367
- ## Cenário 3 — SaaS multi-tenant (MEDIUM)
368
-
369
- **Projeto:** Plataforma SaaS de gestão de projetos para agências digitais.
370
- **Stack:** Next.js 14 (App Router) + Prisma + PostgreSQL + Stripe.
371
- **Usuários:** Admin da agência, Gerente de projeto, Cliente (visualização).
372
- **Classificação:** MEDIUM (3 usuários=2pt, 3+ integrações=2pt, regras complexas=2pt → 6 pontos)
373
-
374
- ### Passo 1: Instalar
375
-
376
- ```bash
377
- npx create-next-app@latest saas-agencia --typescript
378
- cd saas-agencia
379
- npx @jaimevalasek/aioson install
380
- npx @jaimevalasek/aioson setup:context . --defaults \
381
- --project-name="Agency SaaS" \
382
- --project-type=web_app \
383
- --framework="Next.js" \
384
- --framework-installed=true \
385
- --classification=MEDIUM \
386
- --lang=pt-BR
387
- ```
388
-
389
- ### Passo 2: @setup
390
-
391
- ```
392
- /setup
393
- ```
394
-
395
- **O agente confirma o plano MEDIUM completo:**
396
- ```
397
- Plano de execução:
398
- 1. /product → PRD base vivo
399
- 2. /analyst → discovery e modelagem de domínio
400
- 3. /architect → estrutura de pastas Next.js MEDIUM + decisões técnicas
401
- 4. /ux-ui → UI/UX, sistema de design e componentes
402
- 5. /pm → priorização e critérios de aceite no PRD vivo
403
- 6. /orchestrator lanes de desenvolvimento paralelo
404
- 7. /dev → implementação por lane
405
- 8. /qa → revisão e testes
406
-
407
- Próximo: /product
408
- ```
409
-
410
- ### Passo 3: @product
411
-
412
- ```
413
- /product
414
- ```
415
-
416
- **O @product gera o PRD base** com visão, problema, usuários, MVP inicial e direção visual.
417
-
418
- ### Passo 4: @analyst
419
-
420
- O analista descobre:
421
- - **Entidades:** Organization, Project, Task, User, Invoice, Subscription
422
- - **Multi-tenancy:** Cada organização é isolada (Row-Level Security)
423
- - **Integrações:** Stripe (billing), GitHub (integração de commits), Slack (notificações), S3 (uploads)
424
- - **Regras:** Plano free = máx 3 projetos, Plano pro = ilimitado; cobrança proporcional por membro
425
-
426
- ### Passo 5: @architect
427
-
428
- Para MEDIUM com Next.js App Router:
429
-
430
- ```
431
- src/
432
- app/
433
- (auth)/login/page.tsx
434
- (dashboard)/
435
- layout.tsx ← verifica tenant
436
- projects/page.tsx
437
- projects/[id]/page.tsx
438
- api/
439
- webhooks/stripe/route.ts
440
- components/
441
- ui/ ← Button, Input, Modal (design system)
442
- features/
443
- projects/ProjectCard.tsx
444
- tasks/TaskBoard.tsx
445
- lib/
446
- db/prisma.ts
447
- auth/session.ts
448
- billing/stripe.ts
449
- actions/ Server Actions
450
- project.actions.ts
451
- task.actions.ts
452
- types/
453
- ```
454
-
455
- ### Passo 6: UI/UX (`@ux-ui`)
456
-
457
- ```
458
- /ux-ui
459
-
460
- Precisamos de:
461
- - Dashboard principal com lista de projetos
462
- - Board Kanban para tarefas
463
- - Sidebar com navegação entre projetos
464
- - Página de configurações de billing
465
- ```
466
-
467
- **O agente UI/UX (`@ux-ui`) entrega** `.aioson/context/ui-spec.md`:
468
- - Tokens: primary=#6366F1, gray scale, radius-md=8px
469
- - Componentes: ProjectCard, TaskCard, KanbanBoard, Sidebar, BillingModal
470
- - Estados: loading skeleton, empty state, error state para cada componente
471
- - Acessibilidade: foco visível, ARIA labels em boards interativos
472
-
473
- ### Passo 7: @pm
474
-
475
- ```
476
- /pm
477
- ```
478
-
479
- **O @pm enriquece** `.aioson/context/prd.md` preservando visão, usuários e identidade visual. O foco passa a ser priorização, fases e critérios de aceite compactos:
480
-
481
- ```markdown
482
- ## Escopo do MVP
483
- ### Must-have 🔴
484
- - Criar e gerenciar projetos
485
- - Operar board Kanban com atribuição
486
- - Convidar membros por e-mail
487
-
488
- ## Plano de entrega
489
- ### Fase 1 — Núcleo
490
- 1. Projetos e permissões
491
- 2. Board Kanban
492
- 3. Convites e limites do plano
493
-
494
- ### Fase 2 Monetização
495
- 1. Billing e Stripe
496
- 2. Regras de bloqueio por plano
497
-
498
- ## Criterios de aceite
499
- | AC | Descricao |
500
- |---|---|
501
- | AC-01 | Admin cria projeto com nome, descricao e deadline |
502
- | AC-02 | Board possui colunas To Do / In Progress / Done |
503
- | AC-03 | Convite por e-mail expira em 48h |
504
- | AC-04 | Conta free respeita limite de projetos |
505
- ```
506
-
507
- ### Passo 8: @orchestrator
508
-
509
- ```
510
- /orchestrator
511
- ```
512
-
513
- Ou via CLI:
514
- ```bash
515
- npx @jaimevalasek/aioson parallel:init --workers=3
516
- npx @jaimevalasek/aioson parallel:assign --source=prd --workers=3
517
- ```
518
-
519
- **O orquestrador cria 3 lanes:**
520
-
521
- ```
522
- Lane 1 (@dev instância A):
523
- - Auth + Multi-tenancy (Organization, User, middleware)
524
- - US-03: Sistema de convites
525
-
526
- Lane 2 (@dev instância B):
527
- - US-01: CRUD de projetos
528
- - US-02: Board Kanban + drag-and-drop
529
-
530
- Lane 3 (@dev instância C):
531
- - US-04: Integração Stripe
532
- - Webhook handler
533
- - Página de billing
534
- ```
535
-
536
- **Cada @dev instance** seu lane file:
537
- ```
538
- Lane 1: /dev Implemente o escopo do agent-1.status.md
539
- Lane 2: /dev Implemente o escopo do agent-2.status.md
540
- Lane 3: /dev Implemente o escopo do agent-3.status.md
541
- ```
542
-
543
- **Monitorar progresso:**
544
- ```bash
545
- npx @jaimevalasek/aioson parallel:status
546
- ```
547
-
548
- ### Passo 8: @qa
549
-
550
- ```
551
- /qa
552
-
553
- Revise as implementações das 3 lanes e escreva testes para:
554
- - Isolamento de tenant (crítico)
555
- - Fluxo de billing e webhook Stripe
556
- - Permissões por role (admin vs gerente vs cliente)
557
- ```
558
-
559
- ---
560
-
561
- ## Cenário 4 dApp Ethereum (MEDIUM)
562
-
563
- **Projeto:** Marketplace de NFTs com contrato de royalties.
564
- **Stack:** Hardhat + Solidity + Next.js + wagmi + RainbowKit.
565
- **Classificação:** MEDIUM (múltiplos usuários, Web3 + frontend, regras de contrato complexas)
566
-
567
- ### Passo 1: Instalar
568
-
569
- ```bash
570
- mkdir nft-marketplace && cd nft-marketplace
571
- npx create-next-app@latest frontend --typescript
572
- npx hardhat init # no mesmo diretório raiz
573
- npx @jaimevalasek/aioson install
574
- npx @jaimevalasek/aioson setup:context . --defaults \
575
- --project-name="NFT Marketplace" \
576
- --project-type=dapp \
577
- --framework=Hardhat \
578
- --framework-installed=true \
579
- --classification=MEDIUM \
580
- --web3-enabled=true \
581
- --web3-networks=ethereum \
582
- --contract-framework=Hardhat \
583
- --wallet-provider=wagmi \
584
- --lang=pt-BR
585
- ```
586
-
587
- > **Nota:** Se Hardhat e Next.js coexistem no mesmo diretório, o AIOSON detecta automaticamente como **monorepo** e exibe um aviso de configuração.
588
-
589
- ### Passo 2: @analyst
590
-
591
- O analista identifica:
592
- - **Buyer:** compra NFTs via marketplace
593
- - **Creator:** lista NFTs com royalty configurado
594
- - **Marketplace:** cobra fee sobre cada venda
595
-
596
- **Entidades on-chain:**
597
- | Entidade | Tipo | Notas |
598
- |---|---|---|
599
- | NFT | ERC-721 | tokenURI no IPFS |
600
- | Listing | struct | price, seller, royaltyBps |
601
- | Sale | event | buyer, seller, price, royalty |
602
-
603
- **Regras críticas:**
604
- - RN01: Royalty máximo de 10% (1000 bps)
605
- - RN02: Reentrancy guard em todas as funções de pagamento
606
- - RN03: Withdraw pattern para pagamentos (nunca push)
607
-
608
- ### Passo 3: @architect
609
-
610
- **Estrutura monorepo:**
611
- ```
612
- contracts/
613
- Marketplace.sol
614
- NFT.sol
615
- interfaces/IMarketplace.sol
616
- scripts/
617
- deploy.js
618
- test/
619
- Marketplace.test.js
620
- frontend/
621
- src/
622
- app/
623
- marketplace/page.tsx
624
- create/page.tsx
625
- components/
626
- NFTCard.tsx
627
- ListingModal.tsx
628
- hooks/
629
- useMarketplace.ts ← wagmi hooks
630
- lib/
631
- contracts.ts ← ABIs e endereços
632
- ```
633
-
634
- ### Passo 4: @dev (contratos)
635
-
636
- ```
637
- /dev
638
-
639
- Implemente o contrato Marketplace.sol com:
640
- - ERC-721 listing
641
- - Royalties on-chain
642
- - Reentrancy guard (OpenZeppelin)
643
- - Withdraw pattern para pagamentos
644
- ```
645
-
646
- **O @dev escreve:**
647
- ```solidity
648
- // SPDX-License-Identifier: MIT
649
- pragma solidity ^0.8.20;
650
-
651
- import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
652
- import "@openzeppelin/contracts/token/ERC721/IERC721.sol";
653
-
654
- contract Marketplace is ReentrancyGuard {
655
- struct Listing {
656
- address seller;
657
- uint256 price;
658
- uint256 royaltyBps; // base points: 1000 = 10%
659
- address royaltyRecipient;
660
- }
661
-
662
- mapping(address => mapping(uint256 => Listing)) public listings;
663
- mapping(address => uint256) public pendingWithdrawals; // pull pattern
664
-
665
- uint256 public constant MAX_ROYALTY_BPS = 1000;
666
-
667
- function buyNFT(address nftContract, uint256 tokenId)
668
- external payable nonReentrant
669
- {
670
- Listing memory listing = listings[nftContract][tokenId];
671
- require(msg.value >= listing.price, "Insufficient payment");
672
-
673
- uint256 royalty = (listing.price * listing.royaltyBps) / 10000;
674
- uint256 sellerAmount = listing.price - royalty;
675
-
676
- // Acumular (não enviar direto — evita reentrancy)
677
- pendingWithdrawals[listing.royaltyRecipient] += royalty;
678
- pendingWithdrawals[listing.seller] += sellerAmount;
679
-
680
- delete listings[nftContract][tokenId];
681
- IERC721(nftContract).safeTransferFrom(listing.seller, msg.sender, tokenId);
682
- }
683
-
684
- function withdraw() external nonReentrant {
685
- uint256 amount = pendingWithdrawals[msg.sender];
686
- require(amount > 0, "Nothing to withdraw");
687
- pendingWithdrawals[msg.sender] = 0;
688
- payable(msg.sender).transfer(amount);
689
- }
690
- }
691
- ```
692
-
693
- ### Passo 5: @qa (auditoria de contrato)
694
-
695
- ```
696
- /qa
697
-
698
- Audite o Marketplace.sol para:
699
- - Vulnerabilidades de reentrancy
700
- - Integer overflow/underflow
701
- - Access control
702
- - Edge cases no withdraw pattern
703
- Escreva testes Hardhat cobrindo todos os cenários críticos.
704
- ```
705
-
706
- ---
707
-
708
- ## Cenário 5 — API Node.js com Fastify (SMALL)
709
-
710
- **Projeto:** API de gerenciamento de pedidos para restaurante.
711
- **Stack:** Node.js + Fastify + PostgreSQL + Prisma + JWT.
712
- **Classificação:** SMALL (2 tipos de usuário=1pt, 2 integrações=1pt, algumas regras=1pt → 3 pontos)
713
-
714
- ### Passo 1: Instalar
715
-
716
- ```bash
717
- mkdir restaurante-api && cd restaurante-api
718
- npm init -y
719
- npm install fastify @prisma/client
720
- npm install -D prisma
721
- npx @jaimevalasek/aioson install
722
- npx @jaimevalasek/aioson setup:context . --defaults \
723
- --project-name="Restaurante API" \
724
- --project-type=api \
725
- --framework="Node" \
726
- --framework-installed=true \
727
- --classification=SMALL \
728
- --lang=pt-BR
729
- ```
730
-
731
- ### Passo 2: @setup
732
-
733
- ```
734
- /setup
735
- ```
736
-
737
- **O agente confirma:**
738
- ```
739
- Framework detectado: Node.js (package.json ✓)
740
- Projeto: Restaurante API (SMALL)
741
-
742
- Plano: @setup → @product → @analyst → @architect → @dev → @qa
743
- Próximo: /product
744
- ```
745
-
746
- ### Passo 3: @product
747
-
748
- ```
749
- /product
750
- ```
751
-
752
- **O @product gera o PRD base** com visão, usuários, escopo do MVP e fora do escopo.
753
-
754
- ### Passo 4: @analyst
755
-
756
- ```
757
- /analyst
758
- ```
759
-
760
- *Você responde às perguntas:*
761
-
762
- - **Usuários:** Garçom (cria pedidos), Cozinha (atualiza status)
763
- - **Fluxo principal:** Garçom abre mesa → adiciona itens → cozinha vê e prepara → garçom fecha conta
764
- - **Regras críticas:**
765
- - Pedido não pode ser fechado com itens pendentes
766
- - Item cancelado não volta ao estoque (soft delete no pedido)
767
- - Mesa só pode ter 1 pedido aberto por vez
768
- - **Integrações:** WhatsApp (aviso ao garçom quando prato fica pronto), impressora fiscal
769
-
770
- **O @analyst entrega** `.aioson/context/discovery.md`:
771
-
772
- ```markdown
773
- ## Entidades principais
774
-
775
- | Entidade | Atributos | Restrições |
776
- |-------------|------------------------------------------|----------------------------------|
777
- | Table | id, number, status (free/occupied) | 1 pedido aberto por vez |
778
- | Order | id, table_id, status, opened_at | closed só se itens = ready |
779
- | OrderItem | id, order_id, menu_item_id, qty, status | status: pending/ready/cancelled |
780
- | MenuItem | id, name, price, category, available | — |
781
- | User | id, name, role (waiter/kitchen) | JWT auth por role |
782
-
783
- ## Regras de negócio
784
- - RN01: Mesa não pode ter 2 pedidos abertos simultaneamente
785
- - RN02: Pedido fecha se todos os itens estiverem ready ou cancelled
786
- - RN03: Garçom suas próprias mesas; cozinha tudo
787
-
788
- ## Integrações
789
- - WhatsApp API (Evolution API) notificação quando item fica pronto
790
- - Impressora fiscal — payload no fechamento do pedido
791
- ```
792
-
793
- ### Passo 4: @architect
794
-
795
- ```
796
- /architect
797
- ```
798
-
799
- **O @architect entrega** `.aioson/context/architecture.md`:
800
-
801
- ```
802
- Classificação: SMALL → estrutura Fastify por domínio
803
-
804
- src/
805
- plugins/
806
- prisma.js ← decorador global do cliente Prisma
807
- auth.js ← fastify-jwt plugin
808
- routes/
809
- orders/
810
- index.js ← GET /orders, POST /orders
811
- [id].js ← GET, PATCH, DELETE /orders/:id
812
- items/
813
- index.js
814
- tables/
815
- index.js
816
- services/
817
- order.service.js ← regras de negócio (RN01, RN02)
818
- notification.service.js WhatsApp integration
819
- schemas/
820
- order.schema.js ← Fastify JSON Schema para validação
821
- app.js
822
-
823
- prisma/
824
- schema.prisma
825
- migrations/
826
-
827
- test/
828
- orders.test.js
829
- ```
830
-
831
- **Decisões técnicas:**
832
- - Auth: `fastify-jwt` com roles no payload (`{ id, role }`)
833
- - Validação: Fastify JSON Schema (não Zod — evitar overhead)
834
- - ORM: Prisma (type-safe, migrations automáticas)
835
-
836
- ### Passo 5: @dev
837
-
838
- ```
839
- /dev
840
-
841
- Implemente a rota POST /orders e o OrderService.
842
- Inclua a validação RN01 (mesa com pedido aberto).
843
- ```
844
-
845
- **O @dev implementa:**
846
-
847
- ```javascript
848
- // src/services/order.service.js
849
- class OrderService {
850
- constructor(prisma) {
851
- this.prisma = prisma;
852
- }
853
-
854
- async create({ tableId, waiterId }) {
855
- // RN01: verificar mesa livre
856
- const open = await this.prisma.order.findFirst({
857
- where: { tableId, status: { in: ['open', 'in_progress'] } },
858
- });
859
- if (open) {
860
- throw new Error('Table already has an open order');
861
- }
862
-
863
- return this.prisma.order.create({
864
- data: { tableId, waiterId, status: 'open' },
865
- });
866
- }
867
-
868
- async close(orderId) {
869
- // RN02: verificar itens pendentes
870
- const pending = await this.prisma.orderItem.count({
871
- where: { orderId, status: 'pending' },
872
- });
873
- if (pending > 0) {
874
- throw new Error('Cannot close order with pending items');
875
- }
876
-
877
- return this.prisma.order.update({
878
- where: { id: orderId },
879
- data: { status: 'closed', closedAt: new Date() },
880
- });
881
- }
882
- }
883
-
884
- module.exports = { OrderService };
885
- ```
886
-
887
- ```javascript
888
- // src/routes/orders/index.js
889
- module.exports = async function orderRoutes(fastify) {
890
- const service = new OrderService(fastify.prisma);
891
-
892
- fastify.post('/', {
893
- preHandler: [fastify.authenticate, fastify.requireRole('waiter')],
894
- schema: {
895
- body: { type: 'object', required: ['tableId'], properties: {
896
- tableId: { type: 'integer' }
897
- }},
898
- },
899
- }, async (request, reply) => {
900
- const order = await service.create({
901
- tableId: request.body.tableId,
902
- waiterId: request.user.id,
903
- });
904
- return reply.code(201).send(order);
905
- });
906
- };
907
- ```
908
-
909
- ### Passo 6: @qa
910
-
911
- ```
912
- /qa
913
-
914
- Escreva testes para o OrderService:
915
- - criação com sucesso
916
- - RN01: mesa com pedido aberto (deve lançar erro)
917
- - RN02: fechamento com itens pendentes (deve lançar erro)
918
- - fechamento com sucesso
919
- ```
920
-
921
- ---
922
-
923
- ## Cenário 6 — Aplicação Rails + Hotwire (SMALL)
924
-
925
- **Projeto:** Plataforma colaborativa de gerenciamento de tarefas.
926
- **Stack:** Rails 7 + PostgreSQL + Hotwire (Turbo + Stimulus) + Tailwind CSS.
927
- **Classificação:** SMALL (2 tipos de usuário=1pt, 1 integração=1pt, algumas regras=1pt → 3 pontos)
928
-
929
- ### Passo 1: Instalar
930
-
931
- ```bash
932
- rails new task-app --database=postgresql --css=tailwind
933
- cd task-app
934
- npx @jaimevalasek/aioson install
935
- npx @jaimevalasek/aioson setup:context . --defaults \
936
- --project-name="Task App" \
937
- --project-type=web_app \
938
- --framework="Rails" \
939
- --framework-installed=true \
940
- --classification=SMALL \
941
- --lang=pt-BR
942
- ```
943
-
944
- ### Passo 2: @setup
945
-
946
- ```
947
- /setup
948
- ```
949
-
950
- **O agente confirma:**
951
- ```
952
- Framework detectado: Rails (config/application.rb ✓)
953
- Versão: Rails 7.x
954
-
955
- Plano: @setup → @product → @analyst → @architect → @dev → @qa
956
- Próximo: /product
957
- ```
958
-
959
- ### Passo 3: @product
960
-
961
- ```
962
- /product
963
- ```
964
-
965
- **O @product gera o PRD base** com visão, usuários, escopo do MVP e fora do escopo.
966
-
967
- ### Passo 4: @analyst
968
-
969
- *Você responde às perguntas:*
970
-
971
- - **Usuários:** Admin (cria projetos e convida membros), Membro (cria e move tarefas)
972
- - **Fluxo:** Admin cria projeto → convida membros → membros criam e movem tarefas entre colunas (To Do / In Progress / Done)
973
- - **Regras:**
974
- - Tarefa só pode ser atribuída a membros do mesmo projeto
975
- - Admin pode arquivar projeto (tarefas ficam read-only)
976
- - Membros recebem e-mail ao serem atribuídos a uma tarefa
977
- - **Integrações:** ActionMailer (e-mails de notificação)
978
-
979
- **O @analyst entrega** `.aioson/context/discovery.md`:
980
-
981
- ```markdown
982
- ## Entidades
983
- | Entidade | Atributos | Restrições |
984
- |-------------|----------------------------------------------|-------------------------------------|
985
- | User | id, name, email, password_digest | Devise ou has_secure_password |
986
- | Project | id, name, archived, owner_id | owner deve ser admin |
987
- | Membership | id, project_id, user_id, role | role: admin/member |
988
- | Task | id, project_id, assignee_id, title, status | assignee deve ser membro do projeto |
989
- | Column | status enum: todo/in_progress/done | — |
990
-
991
- ## Regras
992
- - RN01: Atribuição restrita a membros do projeto (validação no model)
993
- - RN02: Projeto arquivado tarefas readonly
994
- - RN03: E-mail via ActionMailer ao atribuir tarefa
995
- ```
996
-
997
- ### Passo 4: @architect
998
-
999
- **O @architect entrega:**
1000
-
1001
- ```
1002
- Classificação: SMALL estrutura Rails padrão com concerns
1003
-
1004
- app/
1005
- models/
1006
- user.rb, project.rb, membership.rb, task.rb
1007
- concerns/
1008
- archivable.rb ← módulo para lógica de arquivamento
1009
- controllers/
1010
- projects_controller.rb
1011
- tasks_controller.rb
1012
- memberships_controller.rb
1013
- views/
1014
- projects/
1015
- index.html.erb
1016
- show.html.erbboard Kanban
1017
- tasks/
1018
- _task.html.erb ← Turbo Frame por tarefa
1019
- _form.html.erb
1020
- layouts/
1021
- application.html.erb
1022
- mailers/
1023
- task_mailer.rb
1024
- javascript/
1025
- controllers/
1026
- kanban_controller.js Stimulus: drag-and-drop colunas
1027
-
1028
- config/routes.rb
1029
- db/schema.rb
1030
- test/models/, test/controllers/
1031
- ```
1032
-
1033
- **Decisões técnicas:**
1034
- - Realtime: Turbo Streams via ActionCable (move de tarefa sem refresh)
1035
- - Auth: `has_secure_password` + `before_action :require_login`
1036
- - Drag-and-drop: Stimulus + Sortable.js (sem React)
1037
-
1038
- ### Passo 5: @dev
1039
-
1040
- ```
1041
- /dev
1042
-
1043
- Implemente a move de tarefa via Turbo Stream.
1044
- Quando o usuário arrasta uma tarefa para outra coluna,
1045
- o status deve ser atualizado sem reload de página.
1046
- ```
1047
-
1048
- **O @dev implementa:**
1049
-
1050
- ```ruby
1051
- # app/controllers/tasks_controller.rb
1052
- def update
1053
- @task = current_user.accessible_tasks.find(params[:id])
1054
-
1055
- if @task.update(task_params)
1056
- respond_to do |format|
1057
- format.turbo_stream do
1058
- render turbo_stream: [
1059
- turbo_stream.remove("task_#{@task.id}"),
1060
- turbo_stream.append("column_#{@task.status}", partial: "tasks/task", locals: { task: @task })
1061
- ]
1062
- end
1063
- format.html { redirect_to project_path(@task.project) }
1064
- end
1065
- end
1066
- end
1067
- ```
1068
-
1069
- ```javascript
1070
- // app/javascript/controllers/kanban_controller.js
1071
- import { Controller } from "@hotwired/stimulus"
1072
- import Sortable from "sortablejs"
1073
-
1074
- export default class extends Controller {
1075
- static targets = ["column"]
1076
-
1077
- connect() {
1078
- this.columnTargets.forEach(column => {
1079
- new Sortable(column, {
1080
- group: "tasks",
1081
- animation: 150,
1082
- onEnd: (event) => this.#moved(event),
1083
- })
1084
- })
1085
- }
1086
-
1087
- #moved(event) {
1088
- const taskId = event.item.dataset.taskId
1089
- const newStatus = event.to.dataset.status
1090
- fetch(`/tasks/${taskId}`, {
1091
- method: "PATCH",
1092
- headers: { "Content-Type": "application/json", "X-CSRF-Token": this.#csrfToken() },
1093
- body: JSON.stringify({ task: { status: newStatus } }),
1094
- })
1095
- }
1096
-
1097
- #csrfToken() {
1098
- return document.querySelector('meta[name="csrf-token"]').content
1099
- }
1100
- }
1101
- ```
1102
-
1103
- ### Passo 6: @qa
1104
-
1105
- ```
1106
- /qa
1107
-
1108
- Escreva testes para:
1109
- - RN01: atribuição de tarefa a não-membro (deve falhar)
1110
- - RN02: projeto arquivado — atualização de tarefa deve ser bloqueada
1111
- - Turbo Stream: resposta correta ao mover tarefa
1112
- ```
1113
-
1114
- ---
1115
-
1116
- ## Cenário 7 — API Python com FastAPI (MICRO)
1117
-
1118
- **Projeto:** API de controle de estoque pessoal.
1119
- **Stack:** Python + FastAPI + SQLite + SQLAlchemy + Pydantic.
1120
- **Classificação:** MICRO (1 tipo de usuário=0pt, 0 integrações=0pt, sem regras complexas=0pt → 0 pontos)
1121
-
1122
- > **Django:** Para projetos Python SMALL ou MEDIUM (múltiplos usuários, banco relacional maior, admin panel), prefira Django + DRF. O FastAPI brilha em APIs simples, serviços assíncronos e microsserviços.
1123
-
1124
- ### Passo 1: Instalar
1125
-
1126
- ```bash
1127
- mkdir estoque-api && cd estoque-api
1128
- pip install fastapi uvicorn sqlalchemy pydantic
1129
- npx @jaimevalasek/aioson install
1130
- npx @jaimevalasek/aioson setup:context . --defaults \
1131
- --project-name="Estoque API" \
1132
- --project-type=api \
1133
- --framework="FastAPI" \
1134
- --framework-installed=true \
1135
- --classification=MICRO \
1136
- --lang=pt-BR
1137
- ```
1138
-
1139
- ### Passo 2: @setup (detectando FastAPI)
1140
-
1141
- ```
1142
- /setup
1143
- ```
1144
-
1145
- **O agente confirma:**
1146
- ```
1147
- Framework detectado: FastAPI (dependência em requirements.txt ✓)
1148
- Classificação: MICRO
1149
-
1150
- Nota: FastAPI não está na lista padrão de detecção automática.
1151
- O framework foi registrado a partir da sua descrição.
1152
-
1153
- Plano simplificado (MICRO): @setup → @dev
1154
- Próximo passo: ative /dev e descreva o que precisa.
1155
- ```
1156
-
1157
- > O @setup registra `framework: "FastAPI"` no context.md e segue normalmente.
1158
- > Não existe stack "errada" qualquer framework que você descrever é aceito.
1159
-
1160
- ### Passo 3: @dev direto
1161
-
1162
- ```
1163
- /dev
1164
-
1165
- Crie uma API FastAPI para controle de estoque com:
1166
- - CRUD de produtos (nome, quantidade, preço, categoria)
1167
- - Endpoint de busca por categoria
1168
- - SQLAlchemy com SQLite
1169
- - Validação via Pydantic
1170
- ```
1171
-
1172
- **O @dev implementa:**
1173
-
1174
- ```python
1175
- # main.py
1176
- from fastapi import FastAPI, Depends, HTTPException
1177
- from sqlalchemy.orm import Session
1178
- from . import models, schemas, crud
1179
- from .database import SessionLocal, engine
1180
-
1181
- models.Base.metadata.create_all(bind=engine)
1182
- app = FastAPI(title="Estoque API")
1183
-
1184
- def get_db():
1185
- db = SessionLocal()
1186
- try:
1187
- yield db
1188
- finally:
1189
- db.close()
1190
-
1191
- @app.post("/products/", response_model=schemas.Product, status_code=201)
1192
- def create_product(product: schemas.ProductCreate, db: Session = Depends(get_db)):
1193
- return crud.create_product(db, product)
1194
-
1195
- @app.get("/products/", response_model=list[schemas.Product])
1196
- def list_products(category: str | None = None, db: Session = Depends(get_db)):
1197
- return crud.get_products(db, category=category)
1198
-
1199
- @app.put("/products/{product_id}", response_model=schemas.Product)
1200
- def update_product(product_id: int, product: schemas.ProductCreate, db: Session = Depends(get_db)):
1201
- db_product = crud.update_product(db, product_id, product)
1202
- if not db_product:
1203
- raise HTTPException(status_code=404, detail="Product not found")
1204
- return db_product
1205
- ```
1206
-
1207
- ```python
1208
- # schemas.py
1209
- from pydantic import BaseModel, Field
1210
-
1211
- class ProductBase(BaseModel):
1212
- name: str
1213
- quantity: int = Field(ge=0)
1214
- price: float = Field(ge=0)
1215
- category: str
1216
-
1217
- class ProductCreate(ProductBase):
1218
- pass
1219
-
1220
- class Product(ProductBase):
1221
- id: int
1222
- class Config:
1223
- from_attributes = True
1224
- ```
1225
-
1226
- **Por que MICRO?**
1227
- Domínio único (Produto), sem autenticação, sem integrações externas. O @dev tem contexto suficiente para implementar sem @analyst ou @architect.
1228
-
1229
- ---
1230
-
1231
- ## Dicas gerais
1232
-
1233
- ### Quando recomeçar um agente
1234
-
1235
- Se você forneceu informações incompletas, pode simplesmente reativar:
1236
- ```
1237
- /analyst
1238
-
1239
- Preciso adicionar uma informação: o sistema também vai ter integração com Mercado Pago
1240
- ```
1241
-
1242
- O agente vai incorporar a nova informação antes de gerar a entrega final.
1243
-
1244
- ### Quando pular um agente
1245
-
1246
- - Em projetos **MICRO**, pule @analyst, @architect e @qa — vá direto ao @dev.
1247
- - Se o projeto não tem interface visual, pode pular @ux-ui mesmo em projetos SMALL.
1248
- - Se o projeto MEDIUM tem módulos pouco interdependentes, pode pular @orchestrator e usar @dev sequencialmente.
1249
-
1250
- ### Mudança de contexto
1251
-
1252
- Se durante o desenvolvimento o projeto crescer e mudar de SMALL para MEDIUM:
1253
- ```bash
1254
- npx @jaimevalasek/aioson setup:context . --defaults --classification=MEDIUM
1255
- ```
1256
-
1257
- Então ative @pm e @orchestrator antes de continuar com @dev.
1258
-
1259
- ### Verificar estado atual
1260
-
1261
- ```bash
1262
- npx @jaimevalasek/aioson doctor # valida saúde dos arquivos
1263
- npx @jaimevalasek/aioson context:validate # valida o project.context.md
1264
- npx @jaimevalasek/aioson parallel:status # progresso das lanes (MEDIUM)
1265
- ```
1266
-
1267
- ---
1268
-
1269
- ## Veja também
1270
-
1271
- - [Início rápido](./inicio-rapido.md)
1272
- - [Guia de agentes](./agentes.md)
1273
- - [Suporte Web3](./web3.md) — cenários completos Ethereum, Solana e Midnight Network
1274
- - [Orquestração paralela](../en/parallel.md)
1
+ # [Arquivado] Cenários de Uso
2
+
3
+ > **Esta doc foi substituída.**
4
+ > Os cenários foram reorganizados em receitas individuais com diálogos reais em [`../3-receitas/README.md`](../3-receitas/README.md).
5
+ > Conteúdo abaixo preservado para referência histórica.
6
+
7
+ ---
8
+
9
+ # Cenários de Uso
10
+
11
+ > Exemplos completos e práticos de como usar o AIOSON em projetos reais.
12
+
13
+ ---
14
+
15
+ ## Cenário 1 — Landing page com formulário (MICRO)
16
+
17
+ **Projeto:** Landing page de captura de leads com formulário de e-mail.
18
+ **Stack:** HTML + Alpine.js + Tailwind + PHP simples para envio de e-mail.
19
+ **Classificação:** MICRO (1 tipo de usuário, 1 integração, sem regras complexas → 1 ponto)
20
+
21
+ ### Passo 1: Instalar e configurar
22
+
23
+ ```bash
24
+ mkdir landing-captura && cd landing-captura
25
+ npx @jaimevalasek/aioson install
26
+ npx @jaimevalasek/aioson setup:context . --defaults \
27
+ --project-name="Landing Captura" \
28
+ --project-type=site \
29
+ --framework="None" \
30
+ --framework-installed=false \
31
+ --classification=MICRO \
32
+ --lang=pt-BR
33
+ ```
34
+
35
+ ### Passo 2: Abrir Claude e ativar @setup
36
+
37
+ No arquivo CLAUDE.md, o contexto já foi lido. Digite:
38
+
39
+ ```
40
+ /setup
41
+ ```
42
+
43
+ **O agente confirma o contexto pré-configurado:**
44
+ ```
45
+ Contexto carregado:
46
+ - Projeto: Landing Captura
47
+ - Tipo: site (MICRO)
48
+ - Framework: Nenhum detectado
49
+ - Idioma: pt-BR
50
+
51
+ Classificação MICRO confirmada (0 pts): 1 tipo de usuário, sem integrações, sem regras complexas.
52
+
53
+ Plano: @setup @dev
54
+ Próximo passo: ative /dev e descreva o que o projeto precisa ter.
55
+ ```
56
+
57
+ > **Nota:** As flags `--defaults` acima pré-preenchem o contexto sem perguntas interativas.
58
+ > Se preferir o fluxo guiado, basta rodar `npx @jaimevalasek/aioson setup:context` sem flags — o agente
59
+ > vai fazer as perguntas e identificar o projeto a partir da sua descrição.
60
+
61
+ ### Passo 3: Ativar @dev diretamente
62
+
63
+ ```
64
+ /dev
65
+
66
+ Preciso de uma landing page com:
67
+ - Hero section com headline e CTA
68
+ - Formulário de captura de e-mail (nome + e-mail)
69
+ - Envio por PHP para um arquivo de log (sem banco)
70
+ - Design limpo com Tailwind
71
+ ```
72
+
73
+ **O @dev entrega:**
74
+ - `index.html` com estrutura completa
75
+ - `style.css` ou classes Tailwind inline
76
+ - `submit.php` para processar o formulário
77
+ - Validação básica no frontend e backend
78
+
79
+ ### Por que MICRO?
80
+
81
+ Não precisa de @analyst (domínio simples), não precisa de @architect (estrutura trivial), não precisa de @qa (sem lógica crítica a testar). O @dev tem contexto suficiente para entregar direto.
82
+
83
+ > Se até num projeto MICRO o pedido vier muito vago, você ainda pode encaixar `@discovery-design-doc` antes do `@dev`. Isso é exceção útil, não fluxo padrão.
84
+
85
+ ---
86
+
87
+ ## Cenário 2 — API REST com autenticação (SMALL)
88
+
89
+ **Projeto:** API para gerenciar agendamentos de uma clínica médica.
90
+ **Stack:** Laravel 11 + PostgreSQL + Sanctum.
91
+ **Classificação:** SMALL (3 tipos de usuário=2pt, 2 integrações=1pt → 3 pontos)
92
+
93
+ ### Passo 1: Instalar
94
+
95
+ ```bash
96
+ # Laravel já está instalado e configurado
97
+ cd minha-clinica-api
98
+ npx @jaimevalasek/aioson install
99
+ npx @jaimevalasek/aioson setup:context . --defaults \
100
+ --project-name="Clinica API" \
101
+ --project-type=api \
102
+ --framework=Laravel \
103
+ --framework-installed=true \
104
+ --classification=SMALL \
105
+ --lang=pt-BR
106
+ ```
107
+
108
+ ### Passo 2: Verificar saúde
109
+
110
+ ```bash
111
+ npx @jaimevalasek/aioson doctor
112
+ ```
113
+
114
+ ### Passo 3: @setup
115
+
116
+ ```
117
+ /setup
118
+ ```
119
+
120
+ **O agente confirma:**
121
+ ```
122
+ Contexto carregado:
123
+ - Projeto: Clinica API (SMALL)
124
+ - Framework: Laravel 11 (instalado ✓)
125
+ - Classificação: SMALL
126
+
127
+ Plano: @setup @product @analyst → @architect → @dev → @qa
128
+
129
+ Próximo passo: /product
130
+ Objetivo: gerar o PRD base antes de mapear pacientes, médicos, agendamentos e regras de negócio.
131
+ ```
132
+
133
+ ### Passo 4: @product PRD base
134
+
135
+ **Atalho com documento de kickoff (opcional):**
136
+
137
+ Se você já tiver uma ideia esboçada, crie um arquivo de entrada antes de ativar o `@product`:
138
+
139
+ ```bash
140
+ # Crie plans/agendamentos.md com suas notas brutas:
141
+ # - quero que pacientes agendem consultas online
142
+ # - médico pode bloquear horários
143
+ # - notificação por email na confirmação
144
+ ```
145
+
146
+ Ao ativar `/product`, o agente detecta `plans/agendamentos.md` e pergunta:
147
+ > "Encontrei `plans/agendamentos.md`. Quer que eu use como fonte para o PRD?"
148
+
149
+ Se sim, ele sintetiza o conteúdo e gera o PRD formal. Você pode deletar o arquivo original depois.
150
+
151
+ ```
152
+ /product
153
+ ```
154
+
155
+ **O @product registra no `prd.md`:**
156
+ - visão do produto
157
+ - usuários principais
158
+ - escopo inicial do MVP
159
+ - perguntas em aberto
160
+
161
+ ### Passo 5: @analyst — Descoberta do domínio
162
+
163
+ ```
164
+ /analyst
165
+ ```
166
+
167
+ **O agente faz suas 6 perguntas:**
168
+
169
+ ```
170
+ 1. Quem são os tipos de usuário?
171
+ ```
172
+ *Você responde:* Paciente, Médico, Recepcionista
173
+
174
+ ```
175
+ 2. Qual o fluxo principal que gera valor?
176
+ ```
177
+ *Você responde:* Paciente agenda consulta médico confirma → recepcionista valida presença
178
+
179
+ ```
180
+ 3. Existe processo manual hoje?
181
+ ```
182
+ *Você responde:* Sim, tudo é feito por telefone e planilha Excel
183
+
184
+ ```
185
+ 4. Quais são as regras de negócio críticas?
186
+ ```
187
+ *Você responde:*
188
+ - Médico só pode ter 1 consulta por horário
189
+ - Cancelamento até 24h antes sem penalidade
190
+ - Paciente não pode ter 2 consultas no mesmo dia com o mesmo médico
191
+
192
+ ```
193
+ 5. Integrações externas?
194
+ ```
195
+ *Você responde:* Envio de e-mail de confirmação (SMTP) e SMS via Twilio
196
+
197
+ ```
198
+ 6. Dados sensíveis?
199
+ ```
200
+ *Você responde:* Dados de saúde dos pacientes (LGPD)
201
+
202
+ **O @analyst entrega** `.aioson/context/discovery.md`:
203
+ ```markdown
204
+ ## Entidades principais
205
+
206
+ | Entidade | Atributos principais | Restrições |
207
+ |--------------|-----------------------------------------------|------------------------------|
208
+ | User | id, name, email, role, password | role: patient/doctor/staff |
209
+ | Doctor | id, user_id, crm, specialty, schedule_config | CRM único |
210
+ | Patient | id, user_id, cpf, birth_date, health_notes | CPF único, dados LGPD |
211
+ | Appointment | id, doctor_id, patient_id, date, status | 1 por médico/horário |
212
+ | TimeSlot | id, doctor_id, starts_at, ends_at, available | — |
213
+
214
+ ## Regras de negócio
215
+ - RN01: 1 consulta por médico por horário (check no create)
216
+ - RN02: Cancelamento livre até 24h antes
217
+ - RN03: 1 consulta por paciente/médico por dia
218
+
219
+ ## Integrações
220
+ - SMTP (Laravel Mail) confirmação de agendamento
221
+ - Twilio SMS — lembrete 1h antes
222
+
223
+ ## Riscos
224
+ - LGPD: health_notes precisa de criptografia ou controle de acesso
225
+ - Conflito de horários: critical path, requer lock otimista
226
+ ```
227
+
228
+ ### Onde `@discovery-design-doc` entraria neste cenário
229
+
230
+ Se antes do `@analyst` você ainda não souber bem:
231
+ - o recorte do MVP
232
+ - o que fica fora de escopo
233
+ - quais módulos atuais serão afetados
234
+ - ou se a APIestá pronta para implementação
235
+
236
+ vale inserir:
237
+
238
+ ```text
239
+ @setup -> @discovery-design-doc -> @analyst -> @architect -> @dev
240
+ ```
241
+
242
+ Isso ajuda especialmente quando o projeto já existe e a clínica quer adicionar uma feature grande sem sair codando cedo demais.
243
+
244
+ ### Passo 5: @architect — Estrutura do projeto
245
+
246
+ ```
247
+ /architect
248
+ ```
249
+
250
+ **O @architect lê o discovery e entrega** `.aioson/context/architecture.md`:
251
+
252
+ ```
253
+ Classificação: SMALL → estrutura Laravel padrão, sem sub-pastas excessivas
254
+
255
+ app/
256
+ Actions/
257
+ CreateAppointmentAction.php
258
+ CancelAppointmentAction.php
259
+ Http/
260
+ Controllers/
261
+ AppointmentController.php
262
+ DoctorController.php
263
+ Requests/
264
+ CreateAppointmentRequest.php
265
+ Models/
266
+ User.php, Doctor.php, Patient.php, Appointment.php
267
+ Policies/
268
+ AppointmentPolicy.php
269
+ Events/
270
+ AppointmentCreated.php
271
+ AppointmentCancelled.php
272
+ Listeners/
273
+ SendConfirmationEmail.php
274
+ SendSmsReminder.php
275
+
276
+ database/migrations/
277
+ resources/ (apenas para erros API)
278
+ routes/api.php
279
+ tests/Feature/AppointmentTest.php
280
+ ```
281
+
282
+ **Decisões técnicas:**
283
+ - Auth: Sanctum (tokens de API)
284
+ - N+1: Eager loading em todos os índices (with('doctor.user', 'patient.user'))
285
+ - Timezone: UTC no banco, conversão na camada de apresentação
286
+
287
+ ### Passo 6: @dev — Implementação com TDD Gate
288
+
289
+ ```
290
+ /dev
291
+
292
+ Implemente a feature de agendamentos primeiro.
293
+ Comece pela migration, model, action e controller.
294
+ ```
295
+
296
+ O `@dev` detecta o test runner (`pest.xml` encontrado → Pest PHP) e aplica o TDD Gate antes de implementar qualquer lógica de negócio:
297
+
298
+ **1. Escreve o teste com falha (RED):**
299
+ ```php
300
+ // tests/Feature/CreateAppointmentTest.php
301
+ it('throws exception on doctor schedule conflict', function () {
302
+ $doctor = Doctor::factory()->create();
303
+ $slot = now()->addDay()->setHour(10)->setMinute(0);
304
+
305
+ Appointment::factory()->create([
306
+ 'doctor_id' => $doctor->id,
307
+ 'date' => $slot,
308
+ 'status' => 'confirmed',
309
+ ]);
310
+
311
+ expect(fn () => (new CreateAppointmentAction)->execute([
312
+ 'doctor_id' => $doctor->id,
313
+ 'patient_id' => Patient::factory()->create()->id,
314
+ 'date' => $slot,
315
+ ]))->toThrow(AppointmentConflictException::class);
316
+ });
317
+ ```
318
+
319
+ Roda o teste → **falha** (RED confirmado). Só então implementa:
320
+
321
+ **2. Implementa o suficiente para passar (GREEN):**
322
+ ```php
323
+ // app/Actions/CreateAppointmentAction.php
324
+ class CreateAppointmentAction
325
+ {
326
+ public function execute(array $data): Appointment
327
+ {
328
+ // RN01: verificar conflito de horário
329
+ $conflict = Appointment::where('doctor_id', $data['doctor_id'])
330
+ ->where('date', $data['date'])
331
+ ->where('status', '!=', 'cancelled')
332
+ ->exists();
333
+
334
+ if ($conflict) {
335
+ throw new AppointmentConflictException();
336
+ }
337
+
338
+ // RN03: verificar duplicata paciente/médico/dia
339
+ $duplicate = Appointment::where([
340
+ 'patient_id' => $data['patient_id'],
341
+ 'doctor_id' => $data['doctor_id'],
342
+ ])->whereDate('date', $data['date'])->exists();
343
+
344
+ if ($duplicate) {
345
+ throw new DuplicateAppointmentException();
346
+ }
347
+
348
+ $appointment = Appointment::create($data);
349
+ AppointmentCreated::dispatch($appointment);
350
+ return $appointment;
351
+ }
352
+ }
353
+ ```
354
+
355
+ Roda o teste → **passa** (GREEN). Commit. Próximo passo.
356
+
357
+ ### Passo 7: @qa — Testes
358
+
359
+ ```
360
+ /qa
361
+
362
+ Revise a CreateAppointmentAction e escreva os testes para:
363
+ - criação com sucesso
364
+ - conflito de horário (RN01)
365
+ - duplicata paciente (RN03)
366
+ - cancelamento fora do prazo (RN02)
367
+ ```
368
+
369
+ **O @qa entrega** `tests/Feature/AppointmentTest.php` com todos os casos.
370
+
371
+ > **Quando usar @tester em vez de @qa:** Se após o `@dev` a cobertura estiver em zero ou muito baixa, ative `/tester` em vez de `/qa`. O `@tester` começa por um inventário completo (`test-inventory.md`), mapeia os riscos, escolhe a estratégia e escreve testes em ordem de prioridade — Auth/Authorization > Business rules > Data integrity > UI. O `@qa` é um revisor pontual; o `@tester` é um engenheiro de testes que parte do zero.
372
+
373
+ ---
374
+
375
+ ## Cenário 3 — SaaS multi-tenant (MEDIUM)
376
+
377
+ **Projeto:** Plataforma SaaS de gestão de projetos para agências digitais.
378
+ **Stack:** Next.js 14 (App Router) + Prisma + PostgreSQL + Stripe.
379
+ **Usuários:** Admin da agência, Gerente de projeto, Cliente (visualização).
380
+ **Classificação:** MEDIUM (3 usuários=2pt, 3+ integrações=2pt, regras complexas=2pt → 6 pontos)
381
+
382
+ ### Passo 1: Instalar
383
+
384
+ ```bash
385
+ npx create-next-app@latest saas-agencia --typescript
386
+ cd saas-agencia
387
+ npx @jaimevalasek/aioson install
388
+ npx @jaimevalasek/aioson setup:context . --defaults \
389
+ --project-name="Agency SaaS" \
390
+ --project-type=web_app \
391
+ --framework="Next.js" \
392
+ --framework-installed=true \
393
+ --classification=MEDIUM \
394
+ --lang=pt-BR
395
+ ```
396
+
397
+ ### Passo 2: @setup
398
+
399
+ ```
400
+ /setup
401
+ ```
402
+
403
+ **O agente confirma o plano MEDIUM completo:**
404
+ ```
405
+ Plano de execução:
406
+ 1. /product → PRD base vivo
407
+ 2. /analyst → discovery e modelagem de domínio
408
+ 3. /architect → estrutura de pastas Next.js MEDIUM + decisões técnicas
409
+ 4. /ux-ui → UI/UX, sistema de design e componentes
410
+ 5. /pm → priorização e critérios de aceite no PRD vivo
411
+ 6. /orchestrator → lanes de desenvolvimento paralelo
412
+ 7. /dev → implementação por lane
413
+ 8. /qa → revisão e testes
414
+
415
+ Próximo: /product
416
+ ```
417
+
418
+ ### Passo 3: @product
419
+
420
+ ```
421
+ /product
422
+ ```
423
+
424
+ **O @product gera o PRD base** com visão, problema, usuários, MVP inicial e direção visual.
425
+
426
+ ### Passo 4: @analyst
427
+
428
+ O analista descobre:
429
+ - **Entidades:** Organization, Project, Task, User, Invoice, Subscription
430
+ - **Multi-tenancy:** Cada organização é isolada (Row-Level Security)
431
+ - **Integrações:** Stripe (billing), GitHub (integração de commits), Slack (notificações), S3 (uploads)
432
+ - **Regras:** Plano free = máx 3 projetos, Plano pro = ilimitado; cobrança proporcional por membro
433
+
434
+ ### Passo 5: @architect
435
+
436
+ Para MEDIUM com Next.js App Router:
437
+
438
+ ```
439
+ src/
440
+ app/
441
+ (auth)/login/page.tsx
442
+ (dashboard)/
443
+ layout.tsx ← verifica tenant
444
+ projects/page.tsx
445
+ projects/[id]/page.tsx
446
+ api/
447
+ webhooks/stripe/route.ts
448
+ components/
449
+ ui/ Button, Input, Modal (design system)
450
+ features/
451
+ projects/ProjectCard.tsx
452
+ tasks/TaskBoard.tsx
453
+ lib/
454
+ db/prisma.ts
455
+ auth/session.ts
456
+ billing/stripe.ts
457
+ actions/ ← Server Actions
458
+ project.actions.ts
459
+ task.actions.ts
460
+ types/
461
+ ```
462
+
463
+ ### Passo 6: UI/UX (`@ux-ui`)
464
+
465
+ ```
466
+ /ux-ui
467
+
468
+ Precisamos de:
469
+ - Dashboard principal com lista de projetos
470
+ - Board Kanban para tarefas
471
+ - Sidebar com navegação entre projetos
472
+ - Página de configurações de billing
473
+ ```
474
+
475
+ **O agente UI/UX (`@ux-ui`) entrega** `.aioson/context/ui-spec.md`:
476
+ - Tokens: primary=#6366F1, gray scale, radius-md=8px
477
+ - Componentes: ProjectCard, TaskCard, KanbanBoard, Sidebar, BillingModal
478
+ - Estados: loading skeleton, empty state, error state para cada componente
479
+ - Acessibilidade: foco visível, ARIA labels em boards interativos
480
+
481
+ ### Passo 7: @pm
482
+
483
+ ```
484
+ /pm
485
+ ```
486
+
487
+ **O @pm enriquece** `.aioson/context/prd.md` preservando visão, usuários e identidade visual. O foco passa a ser priorização, fases e critérios de aceite compactos:
488
+
489
+ ```markdown
490
+ ## Escopo do MVP
491
+ ### Must-have 🔴
492
+ - Criar e gerenciar projetos
493
+ - Operar board Kanban com atribuição
494
+ - Convidar membros por e-mail
495
+
496
+ ## Plano de entrega
497
+ ### Fase 1 — Núcleo
498
+ 1. Projetos e permissões
499
+ 2. Board Kanban
500
+ 3. Convites e limites do plano
501
+
502
+ ### Fase 2 Monetização
503
+ 1. Billing e Stripe
504
+ 2. Regras de bloqueio por plano
505
+
506
+ ## Criterios de aceite
507
+ | AC | Descricao |
508
+ |---|---|
509
+ | AC-01 | Admin cria projeto com nome, descricao e deadline |
510
+ | AC-02 | Board possui colunas To Do / In Progress / Done |
511
+ | AC-03 | Convite por e-mail expira em 48h |
512
+ | AC-04 | Conta free respeita limite de projetos |
513
+ ```
514
+
515
+ ### Passo 8: @orchestrator
516
+
517
+ ```
518
+ /orchestrator
519
+ ```
520
+
521
+ Ou via CLI:
522
+ ```bash
523
+ npx @jaimevalasek/aioson parallel:init --workers=3
524
+ npx @jaimevalasek/aioson parallel:assign --source=prd --workers=3
525
+ ```
526
+
527
+ **O orquestrador cria 3 lanes:**
528
+
529
+ ```
530
+ Lane 1 (@dev instância A):
531
+ - Auth + Multi-tenancy (Organization, User, middleware)
532
+ - US-03: Sistema de convites
533
+
534
+ Lane 2 (@dev instância B):
535
+ - US-01: CRUD de projetos
536
+ - US-02: Board Kanban + drag-and-drop
537
+
538
+ Lane 3 (@dev instância C):
539
+ - US-04: Integração Stripe
540
+ - Webhook handler
541
+ - Página de billing
542
+ ```
543
+
544
+ **Cada @dev instance** lê seu lane file:
545
+ ```
546
+ Lane 1: /dev Implemente o escopo do agent-1.status.md
547
+ Lane 2: /dev Implemente o escopo do agent-2.status.md
548
+ Lane 3: /dev Implemente o escopo do agent-3.status.md
549
+ ```
550
+
551
+ **Monitorar progresso:**
552
+ ```bash
553
+ npx @jaimevalasek/aioson parallel:status
554
+ ```
555
+
556
+ ### Passo 8: @qa
557
+
558
+ ```
559
+ /qa
560
+
561
+ Revise as implementações das 3 lanes e escreva testes para:
562
+ - Isolamento de tenant (crítico)
563
+ - Fluxo de billing e webhook Stripe
564
+ - Permissões por role (admin vs gerente vs cliente)
565
+ ```
566
+
567
+ ---
568
+
569
+ ## Cenário 4 — dApp Ethereum (MEDIUM)
570
+
571
+ **Projeto:** Marketplace de NFTs com contrato de royalties.
572
+ **Stack:** Hardhat + Solidity + Next.js + wagmi + RainbowKit.
573
+ **Classificação:** MEDIUM (múltiplos usuários, Web3 + frontend, regras de contrato complexas)
574
+
575
+ ### Passo 1: Instalar
576
+
577
+ ```bash
578
+ mkdir nft-marketplace && cd nft-marketplace
579
+ npx create-next-app@latest frontend --typescript
580
+ npx hardhat init # no mesmo diretório raiz
581
+ npx @jaimevalasek/aioson install
582
+ npx @jaimevalasek/aioson setup:context . --defaults \
583
+ --project-name="NFT Marketplace" \
584
+ --project-type=dapp \
585
+ --framework=Hardhat \
586
+ --framework-installed=true \
587
+ --classification=MEDIUM \
588
+ --web3-enabled=true \
589
+ --web3-networks=ethereum \
590
+ --contract-framework=Hardhat \
591
+ --wallet-provider=wagmi \
592
+ --lang=pt-BR
593
+ ```
594
+
595
+ > **Nota:** Se Hardhat e Next.js coexistem no mesmo diretório, o AIOSON detecta automaticamente como **monorepo** e exibe um aviso de configuração.
596
+
597
+ ### Passo 2: @analyst
598
+
599
+ O analista identifica:
600
+ - **Buyer:** compra NFTs via marketplace
601
+ - **Creator:** lista NFTs com royalty configurado
602
+ - **Marketplace:** cobra fee sobre cada venda
603
+
604
+ **Entidades on-chain:**
605
+ | Entidade | Tipo | Notas |
606
+ |---|---|---|
607
+ | NFT | ERC-721 | tokenURI no IPFS |
608
+ | Listing | struct | price, seller, royaltyBps |
609
+ | Sale | event | buyer, seller, price, royalty |
610
+
611
+ **Regras críticas:**
612
+ - RN01: Royalty máximo de 10% (1000 bps)
613
+ - RN02: Reentrancy guard em todas as funções de pagamento
614
+ - RN03: Withdraw pattern para pagamentos (nunca push)
615
+
616
+ ### Passo 3: @architect
617
+
618
+ **Estrutura monorepo:**
619
+ ```
620
+ contracts/
621
+ Marketplace.sol
622
+ NFT.sol
623
+ interfaces/IMarketplace.sol
624
+ scripts/
625
+ deploy.js
626
+ test/
627
+ Marketplace.test.js
628
+ frontend/
629
+ src/
630
+ app/
631
+ marketplace/page.tsx
632
+ create/page.tsx
633
+ components/
634
+ NFTCard.tsx
635
+ ListingModal.tsx
636
+ hooks/
637
+ useMarketplace.ts ← wagmi hooks
638
+ lib/
639
+ contracts.ts ← ABIs e endereços
640
+ ```
641
+
642
+ ### Passo 4: @dev (contratos)
643
+
644
+ ```
645
+ /dev
646
+
647
+ Implemente o contrato Marketplace.sol com:
648
+ - ERC-721 listing
649
+ - Royalties on-chain
650
+ - Reentrancy guard (OpenZeppelin)
651
+ - Withdraw pattern para pagamentos
652
+ ```
653
+
654
+ **O @dev escreve:**
655
+ ```solidity
656
+ // SPDX-License-Identifier: MIT
657
+ pragma solidity ^0.8.20;
658
+
659
+ import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
660
+ import "@openzeppelin/contracts/token/ERC721/IERC721.sol";
661
+
662
+ contract Marketplace is ReentrancyGuard {
663
+ struct Listing {
664
+ address seller;
665
+ uint256 price;
666
+ uint256 royaltyBps; // base points: 1000 = 10%
667
+ address royaltyRecipient;
668
+ }
669
+
670
+ mapping(address => mapping(uint256 => Listing)) public listings;
671
+ mapping(address => uint256) public pendingWithdrawals; // pull pattern
672
+
673
+ uint256 public constant MAX_ROYALTY_BPS = 1000;
674
+
675
+ function buyNFT(address nftContract, uint256 tokenId)
676
+ external payable nonReentrant
677
+ {
678
+ Listing memory listing = listings[nftContract][tokenId];
679
+ require(msg.value >= listing.price, "Insufficient payment");
680
+
681
+ uint256 royalty = (listing.price * listing.royaltyBps) / 10000;
682
+ uint256 sellerAmount = listing.price - royalty;
683
+
684
+ // Acumular (não enviar direto — evita reentrancy)
685
+ pendingWithdrawals[listing.royaltyRecipient] += royalty;
686
+ pendingWithdrawals[listing.seller] += sellerAmount;
687
+
688
+ delete listings[nftContract][tokenId];
689
+ IERC721(nftContract).safeTransferFrom(listing.seller, msg.sender, tokenId);
690
+ }
691
+
692
+ function withdraw() external nonReentrant {
693
+ uint256 amount = pendingWithdrawals[msg.sender];
694
+ require(amount > 0, "Nothing to withdraw");
695
+ pendingWithdrawals[msg.sender] = 0;
696
+ payable(msg.sender).transfer(amount);
697
+ }
698
+ }
699
+ ```
700
+
701
+ ### Passo 5: @qa (auditoria de contrato)
702
+
703
+ ```
704
+ /qa
705
+
706
+ Audite o Marketplace.sol para:
707
+ - Vulnerabilidades de reentrancy
708
+ - Integer overflow/underflow
709
+ - Access control
710
+ - Edge cases no withdraw pattern
711
+ Escreva testes Hardhat cobrindo todos os cenários críticos.
712
+ ```
713
+
714
+ ---
715
+
716
+ ## Cenário 5 — API Node.js com Fastify (SMALL)
717
+
718
+ **Projeto:** API de gerenciamento de pedidos para restaurante.
719
+ **Stack:** Node.js + Fastify + PostgreSQL + Prisma + JWT.
720
+ **Classificação:** SMALL (2 tipos de usuário=1pt, 2 integrações=1pt, algumas regras=1pt → 3 pontos)
721
+
722
+ ### Passo 1: Instalar
723
+
724
+ ```bash
725
+ mkdir restaurante-api && cd restaurante-api
726
+ npm init -y
727
+ npm install fastify @prisma/client
728
+ npm install -D prisma
729
+ npx @jaimevalasek/aioson install
730
+ npx @jaimevalasek/aioson setup:context . --defaults \
731
+ --project-name="Restaurante API" \
732
+ --project-type=api \
733
+ --framework="Node" \
734
+ --framework-installed=true \
735
+ --classification=SMALL \
736
+ --lang=pt-BR
737
+ ```
738
+
739
+ ### Passo 2: @setup
740
+
741
+ ```
742
+ /setup
743
+ ```
744
+
745
+ **O agente confirma:**
746
+ ```
747
+ Framework detectado: Node.js (package.json ✓)
748
+ Projeto: Restaurante API (SMALL)
749
+
750
+ Plano: @setup → @product → @analyst → @architect → @dev → @qa
751
+ Próximo: /product
752
+ ```
753
+
754
+ ### Passo 3: @product
755
+
756
+ ```
757
+ /product
758
+ ```
759
+
760
+ **O @product gera o PRD base** com visão, usuários, escopo do MVP e fora do escopo.
761
+
762
+ ### Passo 4: @analyst
763
+
764
+ ```
765
+ /analyst
766
+ ```
767
+
768
+ *Você responde às perguntas:*
769
+
770
+ - **Usuários:** Garçom (cria pedidos), Cozinha (atualiza status)
771
+ - **Fluxo principal:** Garçom abre mesa → adiciona itens → cozinha vê e prepara → garçom fecha conta
772
+ - **Regras críticas:**
773
+ - Pedido não pode ser fechado com itens pendentes
774
+ - Item cancelado não volta ao estoque (soft delete no pedido)
775
+ - Mesa pode ter 1 pedido aberto por vez
776
+ - **Integrações:** WhatsApp (aviso ao garçom quando prato fica pronto), impressora fiscal
777
+
778
+ **O @analyst entrega** `.aioson/context/discovery.md`:
779
+
780
+ ```markdown
781
+ ## Entidades principais
782
+
783
+ | Entidade | Atributos | Restrições |
784
+ |-------------|------------------------------------------|----------------------------------|
785
+ | Table | id, number, status (free/occupied) | 1 pedido aberto por vez |
786
+ | Order | id, table_id, status, opened_at | closed se itens = ready |
787
+ | OrderItem | id, order_id, menu_item_id, qty, status | status: pending/ready/cancelled |
788
+ | MenuItem | id, name, price, category, available | — |
789
+ | User | id, name, role (waiter/kitchen) | JWT auth por role |
790
+
791
+ ## Regras de negócio
792
+ - RN01: Mesa não pode ter 2 pedidos abertos simultaneamente
793
+ - RN02: Pedido só fecha se todos os itens estiverem ready ou cancelled
794
+ - RN03: Garçom só vê suas próprias mesas; cozinha vê tudo
795
+
796
+ ## Integrações
797
+ - WhatsApp API (Evolution API) — notificação quando item fica pronto
798
+ - Impressora fiscal — payload no fechamento do pedido
799
+ ```
800
+
801
+ ### Passo 4: @architect
802
+
803
+ ```
804
+ /architect
805
+ ```
806
+
807
+ **O @architect entrega** `.aioson/context/architecture.md`:
808
+
809
+ ```
810
+ Classificação: SMALL estrutura Fastify por domínio
811
+
812
+ src/
813
+ plugins/
814
+ prisma.js ← decorador global do cliente Prisma
815
+ auth.js ← fastify-jwt plugin
816
+ routes/
817
+ orders/
818
+ index.js GET /orders, POST /orders
819
+ [id].js ← GET, PATCH, DELETE /orders/:id
820
+ items/
821
+ index.js
822
+ tables/
823
+ index.js
824
+ services/
825
+ order.service.js ← regras de negócio (RN01, RN02)
826
+ notification.service.js ← WhatsApp integration
827
+ schemas/
828
+ order.schema.js ← Fastify JSON Schema para validação
829
+ app.js
830
+
831
+ prisma/
832
+ schema.prisma
833
+ migrations/
834
+
835
+ test/
836
+ orders.test.js
837
+ ```
838
+
839
+ **Decisões técnicas:**
840
+ - Auth: `fastify-jwt` com roles no payload (`{ id, role }`)
841
+ - Validação: Fastify JSON Schema (não Zod — evitar overhead)
842
+ - ORM: Prisma (type-safe, migrations automáticas)
843
+
844
+ ### Passo 5: @dev
845
+
846
+ ```
847
+ /dev
848
+
849
+ Implemente a rota POST /orders e o OrderService.
850
+ Inclua a validação RN01 (mesa com pedido aberto).
851
+ ```
852
+
853
+ **O @dev implementa:**
854
+
855
+ ```javascript
856
+ // src/services/order.service.js
857
+ class OrderService {
858
+ constructor(prisma) {
859
+ this.prisma = prisma;
860
+ }
861
+
862
+ async create({ tableId, waiterId }) {
863
+ // RN01: verificar mesa livre
864
+ const open = await this.prisma.order.findFirst({
865
+ where: { tableId, status: { in: ['open', 'in_progress'] } },
866
+ });
867
+ if (open) {
868
+ throw new Error('Table already has an open order');
869
+ }
870
+
871
+ return this.prisma.order.create({
872
+ data: { tableId, waiterId, status: 'open' },
873
+ });
874
+ }
875
+
876
+ async close(orderId) {
877
+ // RN02: verificar itens pendentes
878
+ const pending = await this.prisma.orderItem.count({
879
+ where: { orderId, status: 'pending' },
880
+ });
881
+ if (pending > 0) {
882
+ throw new Error('Cannot close order with pending items');
883
+ }
884
+
885
+ return this.prisma.order.update({
886
+ where: { id: orderId },
887
+ data: { status: 'closed', closedAt: new Date() },
888
+ });
889
+ }
890
+ }
891
+
892
+ module.exports = { OrderService };
893
+ ```
894
+
895
+ ```javascript
896
+ // src/routes/orders/index.js
897
+ module.exports = async function orderRoutes(fastify) {
898
+ const service = new OrderService(fastify.prisma);
899
+
900
+ fastify.post('/', {
901
+ preHandler: [fastify.authenticate, fastify.requireRole('waiter')],
902
+ schema: {
903
+ body: { type: 'object', required: ['tableId'], properties: {
904
+ tableId: { type: 'integer' }
905
+ }},
906
+ },
907
+ }, async (request, reply) => {
908
+ const order = await service.create({
909
+ tableId: request.body.tableId,
910
+ waiterId: request.user.id,
911
+ });
912
+ return reply.code(201).send(order);
913
+ });
914
+ };
915
+ ```
916
+
917
+ ### Passo 6: @qa
918
+
919
+ ```
920
+ /qa
921
+
922
+ Escreva testes para o OrderService:
923
+ - criação com sucesso
924
+ - RN01: mesa com pedido aberto (deve lançar erro)
925
+ - RN02: fechamento com itens pendentes (deve lançar erro)
926
+ - fechamento com sucesso
927
+ ```
928
+
929
+ ---
930
+
931
+ ## Cenário 6 — Aplicação Rails + Hotwire (SMALL)
932
+
933
+ **Projeto:** Plataforma colaborativa de gerenciamento de tarefas.
934
+ **Stack:** Rails 7 + PostgreSQL + Hotwire (Turbo + Stimulus) + Tailwind CSS.
935
+ **Classificação:** SMALL (2 tipos de usuário=1pt, 1 integração=1pt, algumas regras=1pt → 3 pontos)
936
+
937
+ ### Passo 1: Instalar
938
+
939
+ ```bash
940
+ rails new task-app --database=postgresql --css=tailwind
941
+ cd task-app
942
+ npx @jaimevalasek/aioson install
943
+ npx @jaimevalasek/aioson setup:context . --defaults \
944
+ --project-name="Task App" \
945
+ --project-type=web_app \
946
+ --framework="Rails" \
947
+ --framework-installed=true \
948
+ --classification=SMALL \
949
+ --lang=pt-BR
950
+ ```
951
+
952
+ ### Passo 2: @setup
953
+
954
+ ```
955
+ /setup
956
+ ```
957
+
958
+ **O agente confirma:**
959
+ ```
960
+ Framework detectado: Rails (config/application.rb ✓)
961
+ Versão: Rails 7.x
962
+
963
+ Plano: @setup → @product → @analyst → @architect → @dev → @qa
964
+ Próximo: /product
965
+ ```
966
+
967
+ ### Passo 3: @product
968
+
969
+ ```
970
+ /product
971
+ ```
972
+
973
+ **O @product gera o PRD base** com visão, usuários, escopo do MVP e fora do escopo.
974
+
975
+ ### Passo 4: @analyst
976
+
977
+ *Você responde às perguntas:*
978
+
979
+ - **Usuários:** Admin (cria projetos e convida membros), Membro (cria e move tarefas)
980
+ - **Fluxo:** Admin cria projeto → convida membros → membros criam e movem tarefas entre colunas (To Do / In Progress / Done)
981
+ - **Regras:**
982
+ - Tarefa só pode ser atribuída a membros do mesmo projeto
983
+ - Admin pode arquivar projeto (tarefas ficam read-only)
984
+ - Membros recebem e-mail ao serem atribuídos a uma tarefa
985
+ - **Integrações:** ActionMailer (e-mails de notificação)
986
+
987
+ **O @analyst entrega** `.aioson/context/discovery.md`:
988
+
989
+ ```markdown
990
+ ## Entidades
991
+ | Entidade | Atributos | Restrições |
992
+ |-------------|----------------------------------------------|-------------------------------------|
993
+ | User | id, name, email, password_digest | Devise ou has_secure_password |
994
+ | Project | id, name, archived, owner_id | owner deve ser admin |
995
+ | Membership | id, project_id, user_id, role | role: admin/member |
996
+ | Task | id, project_id, assignee_id, title, status | assignee deve ser membro do projeto |
997
+ | Column | status enum: todo/in_progress/done | — |
998
+
999
+ ## Regras
1000
+ - RN01: Atribuição restrita a membros do projeto (validação no model)
1001
+ - RN02: Projeto arquivado → tarefas readonly
1002
+ - RN03: E-mail via ActionMailer ao atribuir tarefa
1003
+ ```
1004
+
1005
+ ### Passo 4: @architect
1006
+
1007
+ **O @architect entrega:**
1008
+
1009
+ ```
1010
+ Classificação: SMALL → estrutura Rails padrão com concerns
1011
+
1012
+ app/
1013
+ models/
1014
+ user.rb, project.rb, membership.rb, task.rb
1015
+ concerns/
1016
+ archivable.rbmódulo para lógica de arquivamento
1017
+ controllers/
1018
+ projects_controller.rb
1019
+ tasks_controller.rb
1020
+ memberships_controller.rb
1021
+ views/
1022
+ projects/
1023
+ index.html.erb
1024
+ show.html.erb ← board Kanban
1025
+ tasks/
1026
+ _task.html.erb Turbo Frame por tarefa
1027
+ _form.html.erb
1028
+ layouts/
1029
+ application.html.erb
1030
+ mailers/
1031
+ task_mailer.rb
1032
+ javascript/
1033
+ controllers/
1034
+ kanban_controller.js ← Stimulus: drag-and-drop colunas
1035
+
1036
+ config/routes.rb
1037
+ db/schema.rb
1038
+ test/models/, test/controllers/
1039
+ ```
1040
+
1041
+ **Decisões técnicas:**
1042
+ - Realtime: Turbo Streams via ActionCable (move de tarefa sem refresh)
1043
+ - Auth: `has_secure_password` + `before_action :require_login`
1044
+ - Drag-and-drop: Stimulus + Sortable.js (sem React)
1045
+
1046
+ ### Passo 5: @dev
1047
+
1048
+ ```
1049
+ /dev
1050
+
1051
+ Implemente a move de tarefa via Turbo Stream.
1052
+ Quando o usuário arrasta uma tarefa para outra coluna,
1053
+ o status deve ser atualizado sem reload de página.
1054
+ ```
1055
+
1056
+ **O @dev implementa:**
1057
+
1058
+ ```ruby
1059
+ # app/controllers/tasks_controller.rb
1060
+ def update
1061
+ @task = current_user.accessible_tasks.find(params[:id])
1062
+
1063
+ if @task.update(task_params)
1064
+ respond_to do |format|
1065
+ format.turbo_stream do
1066
+ render turbo_stream: [
1067
+ turbo_stream.remove("task_#{@task.id}"),
1068
+ turbo_stream.append("column_#{@task.status}", partial: "tasks/task", locals: { task: @task })
1069
+ ]
1070
+ end
1071
+ format.html { redirect_to project_path(@task.project) }
1072
+ end
1073
+ end
1074
+ end
1075
+ ```
1076
+
1077
+ ```javascript
1078
+ // app/javascript/controllers/kanban_controller.js
1079
+ import { Controller } from "@hotwired/stimulus"
1080
+ import Sortable from "sortablejs"
1081
+
1082
+ export default class extends Controller {
1083
+ static targets = ["column"]
1084
+
1085
+ connect() {
1086
+ this.columnTargets.forEach(column => {
1087
+ new Sortable(column, {
1088
+ group: "tasks",
1089
+ animation: 150,
1090
+ onEnd: (event) => this.#moved(event),
1091
+ })
1092
+ })
1093
+ }
1094
+
1095
+ #moved(event) {
1096
+ const taskId = event.item.dataset.taskId
1097
+ const newStatus = event.to.dataset.status
1098
+ fetch(`/tasks/${taskId}`, {
1099
+ method: "PATCH",
1100
+ headers: { "Content-Type": "application/json", "X-CSRF-Token": this.#csrfToken() },
1101
+ body: JSON.stringify({ task: { status: newStatus } }),
1102
+ })
1103
+ }
1104
+
1105
+ #csrfToken() {
1106
+ return document.querySelector('meta[name="csrf-token"]').content
1107
+ }
1108
+ }
1109
+ ```
1110
+
1111
+ ### Passo 6: @qa
1112
+
1113
+ ```
1114
+ /qa
1115
+
1116
+ Escreva testes para:
1117
+ - RN01: atribuição de tarefa a não-membro (deve falhar)
1118
+ - RN02: projeto arquivado — atualização de tarefa deve ser bloqueada
1119
+ - Turbo Stream: resposta correta ao mover tarefa
1120
+ ```
1121
+
1122
+ ---
1123
+
1124
+ ## Cenário 7 — API Python com FastAPI (MICRO)
1125
+
1126
+ **Projeto:** API de controle de estoque pessoal.
1127
+ **Stack:** Python + FastAPI + SQLite + SQLAlchemy + Pydantic.
1128
+ **Classificação:** MICRO (1 tipo de usuário=0pt, 0 integrações=0pt, sem regras complexas=0pt → 0 pontos)
1129
+
1130
+ > **Django:** Para projetos Python SMALL ou MEDIUM (múltiplos usuários, banco relacional maior, admin panel), prefira Django + DRF. O FastAPI brilha em APIs simples, serviços assíncronos e microsserviços.
1131
+
1132
+ ### Passo 1: Instalar
1133
+
1134
+ ```bash
1135
+ mkdir estoque-api && cd estoque-api
1136
+ pip install fastapi uvicorn sqlalchemy pydantic
1137
+ npx @jaimevalasek/aioson install
1138
+ npx @jaimevalasek/aioson setup:context . --defaults \
1139
+ --project-name="Estoque API" \
1140
+ --project-type=api \
1141
+ --framework="FastAPI" \
1142
+ --framework-installed=true \
1143
+ --classification=MICRO \
1144
+ --lang=pt-BR
1145
+ ```
1146
+
1147
+ ### Passo 2: @setup (detectando FastAPI)
1148
+
1149
+ ```
1150
+ /setup
1151
+ ```
1152
+
1153
+ **O agente confirma:**
1154
+ ```
1155
+ Framework detectado: FastAPI (dependência em requirements.txt ✓)
1156
+ Classificação: MICRO
1157
+
1158
+ Nota: FastAPI não está na lista padrão de detecção automática.
1159
+ O framework foi registrado a partir da sua descrição.
1160
+
1161
+ Plano simplificado (MICRO): @setup → @dev
1162
+ Próximo passo: ative /dev e descreva o que precisa.
1163
+ ```
1164
+
1165
+ > O @setup registra `framework: "FastAPI"` no context.md e segue normalmente.
1166
+ > Não existe stack "errada" qualquer framework que você descrever é aceito.
1167
+
1168
+ ### Passo 3: @dev direto
1169
+
1170
+ ```
1171
+ /dev
1172
+
1173
+ Crie uma API FastAPI para controle de estoque com:
1174
+ - CRUD de produtos (nome, quantidade, preço, categoria)
1175
+ - Endpoint de busca por categoria
1176
+ - SQLAlchemy com SQLite
1177
+ - Validação via Pydantic
1178
+ ```
1179
+
1180
+ **O @dev implementa:**
1181
+
1182
+ ```python
1183
+ # main.py
1184
+ from fastapi import FastAPI, Depends, HTTPException
1185
+ from sqlalchemy.orm import Session
1186
+ from . import models, schemas, crud
1187
+ from .database import SessionLocal, engine
1188
+
1189
+ models.Base.metadata.create_all(bind=engine)
1190
+ app = FastAPI(title="Estoque API")
1191
+
1192
+ def get_db():
1193
+ db = SessionLocal()
1194
+ try:
1195
+ yield db
1196
+ finally:
1197
+ db.close()
1198
+
1199
+ @app.post("/products/", response_model=schemas.Product, status_code=201)
1200
+ def create_product(product: schemas.ProductCreate, db: Session = Depends(get_db)):
1201
+ return crud.create_product(db, product)
1202
+
1203
+ @app.get("/products/", response_model=list[schemas.Product])
1204
+ def list_products(category: str | None = None, db: Session = Depends(get_db)):
1205
+ return crud.get_products(db, category=category)
1206
+
1207
+ @app.put("/products/{product_id}", response_model=schemas.Product)
1208
+ def update_product(product_id: int, product: schemas.ProductCreate, db: Session = Depends(get_db)):
1209
+ db_product = crud.update_product(db, product_id, product)
1210
+ if not db_product:
1211
+ raise HTTPException(status_code=404, detail="Product not found")
1212
+ return db_product
1213
+ ```
1214
+
1215
+ ```python
1216
+ # schemas.py
1217
+ from pydantic import BaseModel, Field
1218
+
1219
+ class ProductBase(BaseModel):
1220
+ name: str
1221
+ quantity: int = Field(ge=0)
1222
+ price: float = Field(ge=0)
1223
+ category: str
1224
+
1225
+ class ProductCreate(ProductBase):
1226
+ pass
1227
+
1228
+ class Product(ProductBase):
1229
+ id: int
1230
+ class Config:
1231
+ from_attributes = True
1232
+ ```
1233
+
1234
+ **Por que MICRO?**
1235
+ Domínio único (Produto), sem autenticação, sem integrações externas. O @dev tem contexto suficiente para implementar sem @analyst ou @architect.
1236
+
1237
+ ---
1238
+
1239
+ ## Dicas gerais
1240
+
1241
+ ### Quando recomeçar um agente
1242
+
1243
+ Se você forneceu informações incompletas, pode simplesmente reativar:
1244
+ ```
1245
+ /analyst
1246
+
1247
+ Preciso adicionar uma informação: o sistema também vai ter integração com Mercado Pago
1248
+ ```
1249
+
1250
+ O agente vai incorporar a nova informação antes de gerar a entrega final.
1251
+
1252
+ ### Quando pular um agente
1253
+
1254
+ - Em projetos **MICRO**, pule @analyst, @architect e @qa — vá direto ao @dev.
1255
+ - Se o projeto não tem interface visual, pode pular @ux-ui mesmo em projetos SMALL.
1256
+ - Se o projeto MEDIUM tem módulos pouco interdependentes, pode pular @orchestrator e usar @dev sequencialmente.
1257
+
1258
+ ### Mudança de contexto
1259
+
1260
+ Se durante o desenvolvimento o projeto crescer e mudar de SMALL para MEDIUM:
1261
+ ```bash
1262
+ npx @jaimevalasek/aioson setup:context . --defaults --classification=MEDIUM
1263
+ ```
1264
+
1265
+ Então ative @pm e @orchestrator antes de continuar com @dev.
1266
+
1267
+ ### Verificar estado atual
1268
+
1269
+ ```bash
1270
+ npx @jaimevalasek/aioson doctor # valida saúde dos arquivos
1271
+ npx @jaimevalasek/aioson context:validate # valida o project.context.md
1272
+ npx @jaimevalasek/aioson parallel:status # progresso das lanes (MEDIUM)
1273
+ ```
1274
+
1275
+ ---
1276
+
1277
+ ## Veja também
1278
+
1279
+ - [Início rápido](./inicio-rapido.md)
1280
+ - [Guia de agentes](./agentes.md)
1281
+ - [Suporte Web3](./web3.md) — cenários completos Ethereum, Solana e Midnight Network
1282
+ - [Orquestração paralela](../en/parallel.md)