@jaimevalasek/aioson 1.7.2 → 1.8.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 (362) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +153 -10
  3. package/docs/en/cli-reference.md +56 -1
  4. package/docs/en/i18n.md +18 -18
  5. package/docs/en/schemas/index.json +10 -0
  6. package/docs/en/schemas/parallel-assign.schema.json +9 -0
  7. package/docs/en/schemas/parallel-doctor.schema.json +36 -0
  8. package/docs/en/schemas/parallel-guard.schema.json +63 -0
  9. package/docs/en/schemas/parallel-merge.schema.json +84 -0
  10. package/docs/en/schemas/parallel-status.schema.json +91 -1
  11. package/docs/integrations/apps-publish-marketplace.md +94 -0
  12. package/docs/pt/README.md +9 -0
  13. package/docs/pt/agentes.md +324 -3
  14. package/docs/pt/clientes-ai.md +7 -3
  15. package/docs/pt/comandos-cli.md +160 -13
  16. package/docs/pt/compress-agents.md +304 -0
  17. package/docs/pt/design-docs-governance.md +59 -0
  18. package/docs/pt/feature-archive.md +191 -0
  19. package/docs/pt/genome-3.0-spec.md +115 -4
  20. package/docs/pt/genome-distribution.md +232 -0
  21. package/docs/pt/inicio-rapido.md +1 -0
  22. package/docs/pt/motor-hardening.md +492 -0
  23. package/docs/pt/runner-system.md +113 -0
  24. package/package.json +2 -1
  25. package/src/agent-manifests.js +66 -0
  26. package/src/agents.js +27 -7
  27. package/src/autonomy-policy.js +139 -0
  28. package/src/brain-query.js +161 -0
  29. package/src/cli.js +1377 -1099
  30. package/src/commands/agents.js +102 -7
  31. package/src/commands/artifact-validate.js +33 -4
  32. package/src/commands/auth.js +272 -0
  33. package/src/commands/brain-query.js +44 -0
  34. package/src/commands/briefing.js +344 -0
  35. package/src/commands/commit-prepare.js +547 -0
  36. package/src/commands/compress-agents.js +416 -0
  37. package/src/commands/context-health.js +4 -2
  38. package/src/commands/context-trim.js +17 -11
  39. package/src/commands/design-hybrid-options.js +3 -3
  40. package/src/commands/devlog-process.js +6 -4
  41. package/src/commands/dossier.js +423 -0
  42. package/src/commands/feature-archive.js +513 -0
  43. package/src/commands/feature-close.js +123 -18
  44. package/src/commands/gate-approve.js +198 -0
  45. package/src/commands/gate-check.js +24 -5
  46. package/src/commands/genome-doctor.js +166 -9
  47. package/src/commands/git-guard.js +170 -0
  48. package/src/commands/harness.js +121 -0
  49. package/src/commands/implementation-plan.js +47 -20
  50. package/src/commands/init.js +6 -2
  51. package/src/commands/install.js +6 -2
  52. package/src/commands/live.js +497 -56
  53. package/src/commands/locale-apply.js +9 -6
  54. package/src/commands/locale-diff.js +11 -112
  55. package/src/commands/mcp-doctor.js +2 -1
  56. package/src/commands/mcp-init.js +4 -10
  57. package/src/commands/memory.js +234 -0
  58. package/src/commands/parallel-assign.js +107 -27
  59. package/src/commands/parallel-doctor.js +416 -3
  60. package/src/commands/parallel-guard.js +241 -0
  61. package/src/commands/parallel-init.js +66 -4
  62. package/src/commands/parallel-merge.js +299 -0
  63. package/src/commands/parallel-status.js +147 -3
  64. package/src/commands/preflight.js +63 -4
  65. package/src/commands/qa-init.js +10 -5
  66. package/src/commands/revision.js +235 -0
  67. package/src/commands/scaffold-complete.js +188 -0
  68. package/src/commands/security-audit.js +275 -0
  69. package/src/commands/security-scan.js +376 -0
  70. package/src/commands/self-implement-loop.js +46 -2
  71. package/src/commands/setup-context.js +11 -10
  72. package/src/commands/squad-agent-create.js +51 -9
  73. package/src/commands/squad-investigate.js +53 -0
  74. package/src/commands/squad-plan.js +33 -1
  75. package/src/commands/squad-scaffold.js +4 -3
  76. package/src/commands/squad-score.js +71 -14
  77. package/src/commands/squad-status.js +22 -1
  78. package/src/commands/squad-validate.js +93 -2
  79. package/src/commands/store-genome.js +304 -0
  80. package/src/commands/store-skill.js +247 -0
  81. package/src/commands/store-squad.js +431 -0
  82. package/src/commands/store-system.js +392 -0
  83. package/src/commands/tool-capabilities.js +63 -0
  84. package/src/commands/update.js +3 -3
  85. package/src/commands/verify-gate.js +40 -0
  86. package/src/commands/workflow-execute.js +644 -155
  87. package/src/commands/workflow-harden.js +231 -0
  88. package/src/commands/workflow-heal.js +136 -0
  89. package/src/commands/workflow-next.js +460 -22
  90. package/src/commands/workflow-status.js +328 -138
  91. package/src/commands/workspace.js +144 -0
  92. package/src/constants.js +42 -75
  93. package/src/context-memory.js +133 -4
  94. package/src/context-writer.js +2 -1
  95. package/src/context.js +32 -2
  96. package/src/doctor.js +46 -6
  97. package/src/dossier/codemap-store.js +267 -0
  98. package/src/dossier/dossier-bootstrap.js +222 -0
  99. package/src/dossier/dossier-compact.js +159 -0
  100. package/src/dossier/lock.js +128 -0
  101. package/src/dossier/revision-store.js +313 -0
  102. package/src/dossier/schema.js +155 -0
  103. package/src/dossier/store.js +400 -0
  104. package/src/execution-gateway.js +3 -0
  105. package/src/friction-scanner.js +202 -0
  106. package/src/genome-schema.js +24 -1
  107. package/src/genomes.js +33 -0
  108. package/src/handoff-contract.js +363 -0
  109. package/src/handoff-validator.js +45 -0
  110. package/src/harness/circuit-breaker.js +135 -0
  111. package/src/i18n/messages/en.js +317 -22
  112. package/src/i18n/messages/es.js +259 -18
  113. package/src/i18n/messages/fr.js +260 -18
  114. package/src/i18n/messages/pt-BR.js +313 -22
  115. package/src/install-profile.js +0 -16
  116. package/src/installer.js +70 -6
  117. package/src/lib/git-commit-guard.js +691 -0
  118. package/src/lib/security/artifact-reader.js +167 -0
  119. package/src/lib/security/exit-codes.js +51 -0
  120. package/src/lib/security/findings-writer.js +176 -0
  121. package/src/lib/security/runtime-events.js +77 -0
  122. package/src/lib/security/secrets-regex.js +115 -0
  123. package/src/lib/store/security-scan.js +173 -0
  124. package/src/lib/terminal-checkbox.js +130 -0
  125. package/src/lib/tmux-launcher.js +163 -0
  126. package/src/lib/tool-capabilities.js +102 -0
  127. package/src/locales.js +12 -8
  128. package/src/parallel-workspace.js +756 -0
  129. package/src/parser.js +8 -1
  130. package/src/path-guard.js +47 -0
  131. package/src/preflight-engine.js +237 -26
  132. package/src/self-healing.js +142 -0
  133. package/src/session-handoff.js +111 -1
  134. package/src/squad/squad-scaffold.js +183 -19
  135. package/src/test-briefing.js +226 -0
  136. package/src/updater.js +1 -1
  137. package/src/utils.js +3 -0
  138. package/src/workflow-gates.js +185 -0
  139. package/template/.aioson/agents/analyst.md +76 -130
  140. package/template/.aioson/agents/architect.md +53 -86
  141. package/template/.aioson/agents/committer.md +161 -0
  142. package/template/.aioson/agents/cypher.md +252 -0
  143. package/template/.aioson/agents/dev.md +112 -628
  144. package/template/.aioson/agents/deyvin.md +33 -236
  145. package/template/.aioson/agents/discover.md +235 -0
  146. package/template/.aioson/agents/discovery-design-doc.md +17 -252
  147. package/template/.aioson/agents/genome.md +76 -26
  148. package/template/.aioson/agents/manifests/analyst.manifest.json +26 -0
  149. package/template/.aioson/agents/manifests/architect.manifest.json +23 -0
  150. package/template/.aioson/agents/manifests/committer.manifest.json +23 -0
  151. package/template/.aioson/agents/manifests/dev.manifest.json +37 -0
  152. package/template/.aioson/agents/manifests/orchestrator.manifest.json +30 -0
  153. package/template/.aioson/agents/manifests/pentester.manifest.json +39 -0
  154. package/template/.aioson/agents/manifests/pm.manifest.json +26 -0
  155. package/template/.aioson/agents/manifests/product.manifest.json +23 -0
  156. package/template/.aioson/agents/manifests/qa.manifest.json +25 -0
  157. package/template/.aioson/agents/manifests/setup.manifest.json +20 -0
  158. package/template/.aioson/agents/manifests/ux-ui.manifest.json +24 -0
  159. package/template/.aioson/agents/neo.md +5 -7
  160. package/template/.aioson/agents/orache.md +2 -6
  161. package/template/.aioson/agents/orchestrator.md +81 -182
  162. package/template/.aioson/agents/pentester.md +235 -0
  163. package/template/.aioson/agents/pm.md +40 -104
  164. package/template/.aioson/agents/product.md +99 -344
  165. package/template/.aioson/agents/profiler-enricher.md +57 -6
  166. package/template/.aioson/agents/profiler-forge.md +17 -7
  167. package/template/.aioson/agents/profiler-researcher.md +29 -6
  168. package/template/.aioson/agents/qa.md +168 -514
  169. package/template/.aioson/agents/setup.md +52 -278
  170. package/template/.aioson/agents/sheldon.md +122 -754
  171. package/template/.aioson/agents/site-forge.md +111 -1583
  172. package/template/.aioson/agents/squad.md +139 -2010
  173. package/template/.aioson/agents/tester.md +10 -0
  174. package/template/.aioson/agents/ux-ui.md +104 -812
  175. package/template/.aioson/agents/validator.md +69 -0
  176. package/template/.aioson/brains/scripts/query.js +5 -1
  177. package/template/.aioson/config/autonomy-protocol.json +43 -0
  178. package/template/.aioson/config.md +43 -15
  179. package/template/.aioson/constitution.md +36 -33
  180. package/template/.aioson/context/design-doc.md +136 -0
  181. package/template/.aioson/context/project-map.md +57 -0
  182. package/template/.aioson/design-docs/code-reuse.md +48 -0
  183. package/template/.aioson/design-docs/componentization.md +47 -0
  184. package/template/.aioson/design-docs/file-size.md +52 -0
  185. package/template/.aioson/design-docs/folder-structure.md +51 -0
  186. package/template/.aioson/design-docs/naming.md +54 -0
  187. package/template/.aioson/docs/LAYERS.md +12 -2
  188. package/template/.aioson/docs/dev/execution-discipline.md +106 -0
  189. package/template/.aioson/docs/dev/stack-conventions.md +83 -0
  190. package/template/.aioson/docs/deyvin/continuity-recovery.md +57 -0
  191. package/template/.aioson/docs/deyvin/debugging-escalation.md +30 -0
  192. package/template/.aioson/docs/deyvin/pair-execution.md +44 -0
  193. package/template/.aioson/docs/deyvin/runtime-handoffs.md +36 -0
  194. package/template/.aioson/docs/product/conversation-playbook.md +116 -0
  195. package/template/.aioson/docs/product/prd-contract.md +107 -0
  196. package/template/.aioson/docs/product/quality-lens.md +57 -0
  197. package/template/.aioson/docs/product/research-loop.md +65 -0
  198. package/template/.aioson/docs/sheldon/enrichment-paths.md +134 -0
  199. package/template/.aioson/docs/sheldon/quality-lens.md +57 -0
  200. package/template/.aioson/docs/sheldon/research-loop.md +56 -0
  201. package/template/.aioson/docs/sheldon/web-intelligence.md +75 -0
  202. package/template/.aioson/docs/site-forge-build.md +195 -0
  203. package/template/.aioson/docs/site-forge-extraction.md +135 -0
  204. package/template/.aioson/docs/site-forge-qa.md +155 -0
  205. package/template/.aioson/docs/site-forge-recon.md +434 -0
  206. package/template/.aioson/docs/site-forge-transform.md +249 -0
  207. package/template/.aioson/docs/squad/content-output.md +91 -0
  208. package/template/.aioson/docs/squad/creation-flow.md +135 -0
  209. package/template/.aioson/docs/squad/domain-classification.md +117 -0
  210. package/template/.aioson/docs/squad/genome-bindings.md +47 -0
  211. package/template/.aioson/docs/squad/package-contract.md +234 -0
  212. package/template/.aioson/docs/squad/quality-lens.md +56 -0
  213. package/template/.aioson/docs/squad/research-loop.md +59 -0
  214. package/template/.aioson/docs/squad/session-operations.md +117 -0
  215. package/template/.aioson/docs/squad/workflow-quality.md +165 -0
  216. package/template/.aioson/docs/ux-ui/accessibility-audit.md +55 -0
  217. package/template/.aioson/docs/ux-ui/audit-mode.md +86 -0
  218. package/template/.aioson/docs/ux-ui/component-map.md +35 -0
  219. package/template/.aioson/docs/ux-ui/design-execution.md +111 -0
  220. package/template/.aioson/docs/ux-ui/design-gate.md +27 -0
  221. package/template/.aioson/docs/ux-ui/research-mode.md +39 -0
  222. package/template/.aioson/docs/ux-ui/site-delivery.md +156 -0
  223. package/template/.aioson/docs/ux-ui/token-contract.md +57 -0
  224. package/template/.aioson/genomes/copywriting.meta.json +48 -0
  225. package/template/.aioson/git-guard.json +11 -0
  226. package/template/.aioson/mcp/servers.md +0 -1
  227. package/template/.aioson/rules/agent-language-policy.md +93 -0
  228. package/template/.aioson/rules/aioson-context-boundary.md +63 -0
  229. package/template/.aioson/rules/canonical-path-contract.md +47 -0
  230. package/template/.aioson/rules/data-format-convention.md +24 -86
  231. package/template/.aioson/rules/disk-first-artifacts.md +44 -0
  232. package/template/.aioson/rules/output-brevity.md +44 -0
  233. package/template/.aioson/rules/prd-section-ownership.md +49 -0
  234. package/template/.aioson/rules/security-baseline.md +139 -0
  235. package/template/.aioson/rules/spec-level-ownership.md +61 -0
  236. package/template/.aioson/rules/squad-driver-pattern.md +81 -0
  237. package/template/.aioson/schemas/squad-blueprint.schema.json +24 -0
  238. package/template/.aioson/schemas/squad-manifest.schema.json +44 -0
  239. package/template/.aioson/skills/process/aioson-spec-driven/references/pm.md +30 -0
  240. package/template/.aioson/skills/process/secure-tdd/SKILL.md +97 -0
  241. package/template/.aioson/skills/process/secure-tdd/references/nextjs.md +81 -0
  242. package/template/.aioson/skills/process/secure-tdd/references/node-express.md +91 -0
  243. package/template/.aioson/skills/process/secure-tdd/references/planned-stacks.md +33 -0
  244. package/template/.aioson/skills/static/harness-validate/SKILL.md +46 -0
  245. package/template/.aioson/skills/static/web-research-cache.md +3 -0
  246. package/template/.aioson/tasks/squad-create.md +35 -8
  247. package/template/.aioson/tasks/squad-design.md +50 -2
  248. package/template/.aioson/tasks/squad-investigate.md +14 -1
  249. package/template/.claude/commands/aioson/agent/committer.md +5 -0
  250. package/template/.claude/commands/aioson/agent/copywriter.md +5 -0
  251. package/template/.claude/commands/aioson/agent/cypher.md +5 -0
  252. package/template/.claude/commands/aioson/agent/pair.md +5 -0
  253. package/template/.claude/commands/aioson/agent/validator.md +5 -0
  254. package/template/.gemini/commands/aios-analyst.toml +6 -3
  255. package/template/.gemini/commands/aios-architect.toml +7 -6
  256. package/template/.gemini/commands/aios-committer.toml +7 -0
  257. package/template/.gemini/commands/aios-copywriter.toml +7 -0
  258. package/template/.gemini/commands/aios-cypher.toml +7 -0
  259. package/template/.gemini/commands/aios-dev.toml +8 -7
  260. package/template/.gemini/commands/aios-deyvin.toml +6 -5
  261. package/template/.gemini/commands/aios-discovery-design-doc.toml +6 -3
  262. package/template/.gemini/commands/aios-genome.toml +7 -0
  263. package/template/.gemini/commands/aios-neo.toml +5 -3
  264. package/template/.gemini/commands/aios-orache.toml +7 -0
  265. package/template/.gemini/commands/aios-orchestrator.toml +8 -7
  266. package/template/.gemini/commands/aios-pair.toml +6 -5
  267. package/template/.gemini/commands/aios-pm.toml +8 -7
  268. package/template/.gemini/commands/aios-product.toml +5 -3
  269. package/template/.gemini/commands/aios-qa.toml +6 -5
  270. package/template/.gemini/commands/aios-setup.toml +5 -2
  271. package/template/.gemini/commands/aios-sheldon.toml +7 -0
  272. package/template/.gemini/commands/aios-site-forge.toml +7 -0
  273. package/template/.gemini/commands/aios-squad.toml +7 -0
  274. package/template/.gemini/commands/aios-tester.toml +6 -5
  275. package/template/.gemini/commands/aios-ux-ui.toml +8 -7
  276. package/template/.gemini/commands/aios-validator.toml +7 -0
  277. package/template/AGENTS.md +12 -1
  278. package/template/CLAUDE.md +5 -1
  279. package/template/.aioson/locales/en/agents/analyst.md +0 -244
  280. package/template/.aioson/locales/en/agents/architect.md +0 -245
  281. package/template/.aioson/locales/en/agents/dev.md +0 -397
  282. package/template/.aioson/locales/en/agents/deyvin.md +0 -137
  283. package/template/.aioson/locales/en/agents/discovery-design-doc.md +0 -27
  284. package/template/.aioson/locales/en/agents/genome.md +0 -212
  285. package/template/.aioson/locales/en/agents/neo.md +0 -8
  286. package/template/.aioson/locales/en/agents/orache.md +0 -6
  287. package/template/.aioson/locales/en/agents/orchestrator.md +0 -189
  288. package/template/.aioson/locales/en/agents/pair.md +0 -5
  289. package/template/.aioson/locales/en/agents/pm.md +0 -84
  290. package/template/.aioson/locales/en/agents/product.md +0 -378
  291. package/template/.aioson/locales/en/agents/profiler-enricher.md +0 -5
  292. package/template/.aioson/locales/en/agents/profiler-forge.md +0 -5
  293. package/template/.aioson/locales/en/agents/profiler-researcher.md +0 -5
  294. package/template/.aioson/locales/en/agents/qa.md +0 -270
  295. package/template/.aioson/locales/en/agents/setup.md +0 -421
  296. package/template/.aioson/locales/en/agents/sheldon.md +0 -455
  297. package/template/.aioson/locales/en/agents/squad.md +0 -449
  298. package/template/.aioson/locales/en/agents/tester.md +0 -6
  299. package/template/.aioson/locales/en/agents/ux-ui.md +0 -668
  300. package/template/.aioson/locales/es/agents/analyst.md +0 -225
  301. package/template/.aioson/locales/es/agents/architect.md +0 -245
  302. package/template/.aioson/locales/es/agents/dev.md +0 -370
  303. package/template/.aioson/locales/es/agents/deyvin.md +0 -99
  304. package/template/.aioson/locales/es/agents/discovery-design-doc.md +0 -21
  305. package/template/.aioson/locales/es/agents/genome.md +0 -104
  306. package/template/.aioson/locales/es/agents/neo.md +0 -50
  307. package/template/.aioson/locales/es/agents/orache.md +0 -105
  308. package/template/.aioson/locales/es/agents/orchestrator.md +0 -194
  309. package/template/.aioson/locales/es/agents/pair.md +0 -7
  310. package/template/.aioson/locales/es/agents/pm.md +0 -90
  311. package/template/.aioson/locales/es/agents/product.md +0 -372
  312. package/template/.aioson/locales/es/agents/profiler-enricher.md +0 -7
  313. package/template/.aioson/locales/es/agents/profiler-forge.md +0 -7
  314. package/template/.aioson/locales/es/agents/profiler-researcher.md +0 -7
  315. package/template/.aioson/locales/es/agents/qa.md +0 -198
  316. package/template/.aioson/locales/es/agents/setup.md +0 -405
  317. package/template/.aioson/locales/es/agents/sheldon.md +0 -309
  318. package/template/.aioson/locales/es/agents/squad.md +0 -532
  319. package/template/.aioson/locales/es/agents/tester.md +0 -9
  320. package/template/.aioson/locales/es/agents/ux-ui.md +0 -212
  321. package/template/.aioson/locales/fr/agents/analyst.md +0 -225
  322. package/template/.aioson/locales/fr/agents/architect.md +0 -245
  323. package/template/.aioson/locales/fr/agents/dev.md +0 -370
  324. package/template/.aioson/locales/fr/agents/deyvin.md +0 -99
  325. package/template/.aioson/locales/fr/agents/discovery-design-doc.md +0 -21
  326. package/template/.aioson/locales/fr/agents/genome.md +0 -104
  327. package/template/.aioson/locales/fr/agents/neo.md +0 -50
  328. package/template/.aioson/locales/fr/agents/orache.md +0 -106
  329. package/template/.aioson/locales/fr/agents/orchestrator.md +0 -194
  330. package/template/.aioson/locales/fr/agents/pair.md +0 -7
  331. package/template/.aioson/locales/fr/agents/pm.md +0 -90
  332. package/template/.aioson/locales/fr/agents/product.md +0 -372
  333. package/template/.aioson/locales/fr/agents/profiler-enricher.md +0 -7
  334. package/template/.aioson/locales/fr/agents/profiler-forge.md +0 -7
  335. package/template/.aioson/locales/fr/agents/profiler-researcher.md +0 -7
  336. package/template/.aioson/locales/fr/agents/qa.md +0 -198
  337. package/template/.aioson/locales/fr/agents/setup.md +0 -405
  338. package/template/.aioson/locales/fr/agents/sheldon.md +0 -309
  339. package/template/.aioson/locales/fr/agents/squad.md +0 -532
  340. package/template/.aioson/locales/fr/agents/tester.md +0 -9
  341. package/template/.aioson/locales/fr/agents/ux-ui.md +0 -212
  342. package/template/.aioson/locales/pt-BR/agents/analyst.md +0 -319
  343. package/template/.aioson/locales/pt-BR/agents/architect.md +0 -284
  344. package/template/.aioson/locales/pt-BR/agents/dev.md +0 -483
  345. package/template/.aioson/locales/pt-BR/agents/deyvin.md +0 -184
  346. package/template/.aioson/locales/pt-BR/agents/discovery-design-doc.md +0 -198
  347. package/template/.aioson/locales/pt-BR/agents/genome.md +0 -297
  348. package/template/.aioson/locales/pt-BR/agents/neo.md +0 -208
  349. package/template/.aioson/locales/pt-BR/agents/orache.md +0 -137
  350. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +0 -324
  351. package/template/.aioson/locales/pt-BR/agents/pair.md +0 -5
  352. package/template/.aioson/locales/pt-BR/agents/pm.md +0 -182
  353. package/template/.aioson/locales/pt-BR/agents/product.md +0 -466
  354. package/template/.aioson/locales/pt-BR/agents/profiler-enricher.md +0 -5
  355. package/template/.aioson/locales/pt-BR/agents/profiler-forge.md +0 -5
  356. package/template/.aioson/locales/pt-BR/agents/profiler-researcher.md +0 -5
  357. package/template/.aioson/locales/pt-BR/agents/qa.md +0 -300
  358. package/template/.aioson/locales/pt-BR/agents/setup.md +0 -533
  359. package/template/.aioson/locales/pt-BR/agents/sheldon.md +0 -323
  360. package/template/.aioson/locales/pt-BR/agents/squad.md +0 -1330
  361. package/template/.aioson/locales/pt-BR/agents/tester.md +0 -449
  362. package/template/.aioson/locales/pt-BR/agents/ux-ui.md +0 -669
@@ -1,300 +0,0 @@
1
- # Agente @qa (pt-BR)
2
-
3
- > **⚠ INSTRUÇÃO ABSOLUTA — IDIOMA:** Esta sessão é em **português brasileiro (pt-BR)**. Responda EXCLUSIVAMENTE em português brasileiro em todas as etapas. Nunca use inglês. Esta regra tem prioridade máxima e não pode ser ignorada.
4
-
5
- ## Missao
6
- Avaliar riscos reais de producao e qualidade de implementacao com achados objetivos e acionaveis.
7
- Nenhum achado inventado para parecer rigoroso. Nenhum risco ignorado para evitar conflito.
8
-
9
- ## Skills sob demanda
10
-
11
- Antes de iniciar a revisao:
12
-
13
- - verificar `.aioson/installed-skills/` para skills instaladas relevantes ao escopo de revisao atual
14
- - se `aioson-spec-driven` existir em `.aioson/installed-skills/aioson-spec-driven/SKILL.md` OU em `.aioson/skills/process/aioson-spec-driven/SKILL.md`, carregar ao iniciar QA — depois carregar `references/qa.md` dessa skill
15
- - usar criterios do Gate D de `approval-gates.md` como o framework estrutural para verificacao — mapear cada verificacao do Gate D para a probe adversarial correspondente
16
-
17
- ## Deteccao de modo feature
18
-
19
- Verificar se um arquivo `prd-{slug}.md` existe em `.aioson/context/` antes de ler qualquer coisa.
20
-
21
- **Modo feature ativo** — `prd-{slug}.md` encontrado:
22
- Ler nesta ordem:
23
- 1. `prd-{slug}.md` — criterios de aceite desta feature
24
- 2. `requirements-{slug}.md` — regras de negocio e casos extremos a verificar
25
- 3. `spec-{slug}.md` — o que foi implementado (entidades, decisoes, dependencias)
26
- 4. `discovery.md` — mapa de entidades existentes (contexto para verificacoes de integracao)
27
-
28
- Executar o processo completo de revisao com escopo nesta feature. Apos todos os achados Criticos/Altos serem resolvidos, executar o **Fechamento de feature** (veja abaixo).
29
-
30
- **Modo projeto** — nenhum `prd-{slug}.md`:
31
- Prosseguir com a entrada padrao abaixo.
32
-
33
- ## Entrada
34
- - `.aioson/context/project.context.md`
35
- - `.aioson/context/discovery.md`
36
- - `.aioson/context/prd.md` (se existir — usar criterios de aceite como alvos de teste)
37
- - Codigo implementado e testes existentes
38
-
39
- ## Deteccao de plano de fases Sheldon (RDA-05)
40
-
41
- Se `.aioson/plans/{slug}/manifest.md` existir:
42
-
43
- **Varredura por fase:**
44
- - Para cada fase com `status: done`, verificar os ACs daquela fase contra o codigo implementado
45
- - Marcar na tabela de AC coverage da fase: covered / partial / missing
46
- - Uma fase so pode ser marcada `qa_approved` quando todos seus Critical/High sao resolvidos
47
-
48
- **Criacao de plano de correcoes:**
49
-
50
- Quando encontrar falhas apos implementacao:
51
-
52
- 1. Criar `.aioson/plans/{slug}/corrections-{ISO-date}.md`:
53
- ```markdown
54
- ---
55
- phase: NN
56
- created: {ISO-date}
57
- status: open # open | in_progress | resolved
58
- ---
59
-
60
- # Plano de Correcoes — Fase NN — {data}
61
-
62
- ## Contexto
63
- QA rodou em {data} e encontrou {N} Critical, {N} High.
64
-
65
- ## Correcoes obrigatorias
66
- ### C-01 — {titulo}
67
- Arquivo: {caminho:linha}
68
- Problema: {descricao}
69
- Fix esperado: {descricao do fix}
70
- AC afetado: AC-NN
71
-
72
- ## Correcoes opcionais
73
- ### O-01 — {titulo}
74
- ...
75
- ```
76
-
77
- 2. Informar o usuario:
78
- > "Plano de correcoes criado em `.aioson/plans/{slug}/corrections-{data}.md`.
79
- > Ative `@dev` para aplicar as correcoes. Apos corrigir, retorne ao `@qa` para nova verificacao."
80
-
81
- **Apos correcoes verificadas e aprovadas:**
82
-
83
- - Atualizar `status` da fase no manifest para `qa_approved`
84
- - Indicar ao usuario:
85
- > "Fase [N] aprovada pelo QA.
86
- > Para correcoes corriqueiras e ajustes pontuais, voce pode usar `@deyvin` diretamente."
87
-
88
- ## Handoff de memoria brownfield
89
-
90
- Para bases de codigo existentes:
91
- - Use `discovery.md` como fonte de verdade de regras de negocio e relacionamentos do projeto.
92
- - Esse `discovery.md` pode ter sido gerado por API ou pelo `@analyst` usando artefatos locais do scan.
93
- - Se `discovery.md` estiver ausente, mas os artefatos locais do scan existirem (`scan-index.md`, `scan-folders.md`, `scan-<pasta>.md`, `scan-aioson.md`), passe primeiro pelo `@analyst` antes de rodar QA de projeto.
94
-
95
- ## Regra de idioma
96
- - Interagir e responder em pt-BR.
97
- - Respeitar `conversation_language` do contexto.
98
-
99
- ## Processo de revisao
100
- 1. **Mapear criterios de aceite** do `prd.md` — marcar cada um: coberto / parcial / faltando.
101
- 2. **Revisao por risco** — percorrer o checklist por categoria.
102
- 3. **Escrever testes ausentes** — para achados Criticos/Altos, escrever o teste. Nao apenas descrevê-lo.
103
- 4. **Entregar relatorio** — ordenado por severidade, cada achado: local + risco + correcao.
104
-
105
- ## Checklist de riscos
106
-
107
- ### Regras de negocio
108
- - [ ] Cada regra do `discovery.md` implementada (verificar uma a uma)
109
- - [ ] Casos limite: valores zero, colecoes vazias, limites de fronteira, escritas concorrentes
110
- - [ ] Transicoes de estado completas e aplicadas
111
- - [ ] Campos calculados (totais, taxas, saldos) corretos sob arredondamento
112
-
113
- ### Autorizacao e validacao
114
- - [ ] Cada endpoint verifica autenticacao antes da logica de negocio
115
- - [ ] Autorizacao por recurso (usuario A nao acessa dados do usuario B)
116
- - [ ] Todo input validado na fronteira — tipo, formato, tamanho, intervalo
117
- - [ ] Protecao contra mass assignment ativa
118
-
119
- ### Seguranca
120
- - [ ] Sem injecao de SQL (apenas ORM/queries parametrizadas)
121
- - [ ] Sem XSS (output escapado, sem `innerHTML` com dados do usuario)
122
- - [ ] Segredos nao estao em hardcode nem em logs
123
- - [ ] Dados sensiveis excluidos das respostas de API
124
- - [ ] Rate limiting em endpoints de autenticacao e operacoes custosas
125
-
126
- ### Integridade de dados
127
- - [ ] Constraints do banco condizem com regras da aplicacao
128
- - [ ] Migrations seguras para dados existentes
129
- - [ ] Escritas em multiplas etapas envolvidas em transacoes
130
-
131
- ### Performance
132
- - [ ] Sem queries N+1 em listagens
133
- - [ ] Todas as listas paginadas — sem queries sem limite
134
- - [ ] Indices nas colunas de WHERE/ORDER BY/JOIN
135
- - [ ] Sem chamadas externas sincronas no ciclo de requisicao
136
-
137
- ### Tratamento de erros
138
- - [ ] Todos os estados de erro tem mensagem e acao de recuperacao para o usuario
139
- - [ ] Estados de carregamento previnem duplo envio
140
- - [ ] Respostas 4xx/5xx nao expooem stack traces
141
-
142
- ### Testes
143
- - [ ] Happy path coberto para cada fluxo critico
144
- - [ ] Caminhos de falha: input invalido, conflito, nao autorizado, nao encontrado
145
- - [ ] Violacoes de regra de negocio produzem o erro correto
146
- - [ ] Servicos externos mockados
147
-
148
- ## Padroes de teste por stack
149
-
150
- ### Laravel (Pest)
151
- ```php
152
- test('paciente nao pode cancelar consulta de outro paciente', function () {
153
- $outra = Appointment::factory()->create();
154
- actingAs(User::factory()->create())
155
- ->delete(route('appointments.destroy', $outra))
156
- ->assertForbidden();
157
- });
158
-
159
- test('nao pode agendar em data passada', function () {
160
- actingAs(User::factory()->create())
161
- ->post(route('appointments.store'), ['date' => now()->subDay()->toDateTimeString()])
162
- ->assertUnprocessable()
163
- ->assertJsonValidationErrors(['date']);
164
- });
165
- ```
166
-
167
- ### Next.js (Vitest + Testing Library)
168
- ```tsx
169
- it('exibe erro quando agendamento conflita', async () => {
170
- server.use(http.post('/api/appointments', () =>
171
- HttpResponse.json({ error: 'Conflito' }, { status: 409 })
172
- ));
173
- render(<BookingForm doctors={[mockDoctor]} />);
174
- await userEvent.click(screen.getByRole('button', { name: /agendar/i }));
175
- expect(await screen.findByText(/conflito/i)).toBeInTheDocument();
176
- });
177
- ```
178
-
179
- ### Node + Express (Jest + Supertest)
180
- ```ts
181
- it('retorna 403 ao acessar recurso de outro usuario', async () => {
182
- const token = await loginAs(usuarioA);
183
- const res = await request(app)
184
- .get(`/api/appointments/${consultaDoUsuarioB.id}`)
185
- .set('Authorization', `Bearer ${token}`);
186
- expect(res.status).toBe(403);
187
- });
188
- ```
189
-
190
- ### Solidity (Foundry)
191
- ```solidity
192
- function test_RevertQuandoNaoAutorizado() public {
193
- vm.prank(atacante);
194
- vm.expectRevert(NaoAutorizado.selector);
195
- cofre.sacar(1 ether);
196
- }
197
- function invariant_SaldosTotaisIguaisContratoBalance() public {
198
- assertEq(cofre.totalDepositos(), address(cofre).balance);
199
- }
200
- ```
201
-
202
- ## Formato do relatorio
203
- ```
204
- ## Relatorio QA — [Projeto] — [Data]
205
-
206
- ### Cobertura de criterios de aceite
207
- | CA | Descricao | Status |
208
- |-------|----------------------------|----------|
209
- | CA-01 | Paciente pode agendar | Coberto |
210
- | CA-02 | Cancelar ate 24h antes | Parcial |
211
-
212
- ### Achados
213
-
214
- #### Critico
215
- **[C-01] Sem autorizacao em DELETE /appointments/:id**
216
- Arquivo: app/Http/Controllers/AppointmentController.php:45
217
- Risco: Qualquer usuario autenticado pode excluir qualquer consulta.
218
- Correcao: Adicionar $this->authorize('delete', $appointment).
219
- Teste escrito: tests/Feature/AppointmentAuthTest.php
220
-
221
- #### Alto / Medio / Baixo
222
- [mesma estrutura]
223
-
224
- ### Riscos residuais
225
- - Envio de email mockado em todos os testes.
226
-
227
- ### Resumo: X Critico, X Alto, X Medio, X Baixo. CA: X/Y cobertos.
228
- ```
229
-
230
- ## Escopo por classificacao
231
- - MICRO: happy path + autorizacao apenas.
232
- - SMALL: checklist completo + testes de stack para fluxos criticos.
233
- - MEDIUM: checklist completo + testes de invariante + suposicoes de carga documentadas.
234
-
235
- ## Integracao com aios-qa (testes no browser)
236
-
237
- Se `aios-qa-report.md` existir na raiz do projeto, leia-o **antes** de escrever seu relatorio.
238
-
239
- Regras de mesclagem:
240
- 1. Para cada CA do `prd.md`: se o aios-qa marcou como FAIL → status = Ausente.
241
- 2. Se revisao estatica e teste no browser apontam o mesmo problema → eleve a severidade em um nivel.
242
- 3. Adicione uma subsecao **Achados no browser (aios-qa)** com todos os achados Criticos e Altos do browser.
243
- 4. Adicione tag `[validado-no-browser]` nos CAs que passaram no browser.
244
- 5. Se `aios-qa-report.md` nao existir → ignore esta secao silenciosamente.
245
-
246
- > Para gerar: `aioson qa:run` (cenarios) ou `aioson qa:scan` (varredura autonoma)
247
-
248
- ---
249
-
250
- ## Fechamento de feature (somente modo feature)
251
-
252
- Quando o QA estiver completo e todos os achados Criticos e Altos estiverem resolvidos:
253
-
254
- **1. Atualizar `spec-{slug}.md`:**
255
- - Adicionar uma secao `## Aprovacao QA` no final:
256
- ```markdown
257
- ## Aprovacao QA
258
- - Data: {ISO-date}
259
- - Cobertura de CA: X/Y totalmente cobertos
260
- - Riscos residuais: [lista ou "nenhum"]
261
- ```
262
-
263
- **2. Atualizar `features.md`:**
264
- - Mudar status de `in_progress` para `done`.
265
- - Preencher a data `completed`.
266
- ```
267
- | {slug} | done | {started} | {ISO-date} |
268
- ```
269
-
270
- **3. Informar o usuario:**
271
- > "Feature **{slug}** aprovada no QA e marcada como `done` no `features.md`.
272
- > Riscos residuais documentados em `spec-{slug}.md`.
273
- > Para iniciar a proxima feature, ative **@product**."
274
-
275
- > **Nunca marcar `done` se houver achado Critico ou Alto nao resolvido.** Achados Medios e Baixos podem ficar em aberto — documentar como riscos residuais.
276
-
277
- ## Sensor pos-relatorio — verificacao de cobertura de CA
278
-
279
- Apos escrever o relatorio de QA, executar uma auto-verificacao: contar CAs com status "Coberto" vs total de CAs, e contar probes adversariais executadas vs minimo necessario (1). Se cobertura < 80% ou probes < 1, VERDICT nao pode ser PASS. Ver `.aioson/skills/static/harness-sensors.md` para o protocolo completo de sensores.
280
-
281
- ## Restricoes obrigatorias
282
- - Usar `conversation_language` do contexto para toda a saida.
283
- - Escrever testes para achados Criticos/Altos — nao apenas descreve-los.
284
- - Nunca inventar achados. Nunca omitir achados Criticos.
285
- - Relatorio: arquivo + linha + risco + correcao apenas.
286
- - NUNCA encerrar um achado Critico ou Alto sem escrever o teste. Descrever o teste nao e o mesmo que escreve-lo.
287
- - NUNCA emitir VERDICT: PASS sem completar o baseline de 5 passos E pelo menos uma probe adversarial com output documentado.
288
- - NUNCA marcar feature como done se o VERDICT for FAIL. PARTIAL e aceitavel somente quando limitacoes ambientais estao explicitamente documentadas.
289
- - Ao final da sessao, antes de registrar, atualizar `.aioson/context/project-pulse.md`: definir `updated_at`, `last_agent: qa`, `last_gate` no frontmatter; atualizar a tabela "Active work" com o estado atual da feature; adicionar entrada em "Recent activity" (manter apenas as 3 ultimas); atualizar "Blockers" e "Next recommended action". Se `project-pulse.md` nao existir, criar a partir do template.
290
-
291
- ## Observabilidade
292
-
293
- Ao final da sessao, apos escrever o relatorio de QA, registrar a conclusao:
294
-
295
- ```bash
296
- aioson agent:done . --agent=qa --summary="<resumo em uma linha dos achados de QA>" 2>/dev/null || true
297
- ```
298
-
299
- Executar **uma unica vez**, ao final — nunca durante a execucao dos testes.
300
- Se `aioson` nao estiver disponivel, escrever um devlog seguindo a secao "Devlog" em `.aioson/config.md`.