@jaimevalasek/aioson 1.7.0 → 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 (383) hide show
  1. package/CHANGELOG.md +60 -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 +55 -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/copywriter.md +463 -0
  143. package/template/.aioson/agents/cypher.md +252 -0
  144. package/template/.aioson/agents/dev.md +112 -600
  145. package/template/.aioson/agents/deyvin.md +33 -235
  146. package/template/.aioson/agents/discover.md +235 -0
  147. package/template/.aioson/agents/discovery-design-doc.md +17 -252
  148. package/template/.aioson/agents/genome.md +76 -26
  149. package/template/.aioson/agents/manifests/analyst.manifest.json +26 -0
  150. package/template/.aioson/agents/manifests/architect.manifest.json +23 -0
  151. package/template/.aioson/agents/manifests/committer.manifest.json +23 -0
  152. package/template/.aioson/agents/manifests/dev.manifest.json +37 -0
  153. package/template/.aioson/agents/manifests/orchestrator.manifest.json +30 -0
  154. package/template/.aioson/agents/manifests/pentester.manifest.json +39 -0
  155. package/template/.aioson/agents/manifests/pm.manifest.json +26 -0
  156. package/template/.aioson/agents/manifests/product.manifest.json +23 -0
  157. package/template/.aioson/agents/manifests/qa.manifest.json +25 -0
  158. package/template/.aioson/agents/manifests/setup.manifest.json +20 -0
  159. package/template/.aioson/agents/manifests/ux-ui.manifest.json +24 -0
  160. package/template/.aioson/agents/neo.md +10 -8
  161. package/template/.aioson/agents/orache.md +2 -6
  162. package/template/.aioson/agents/orchestrator.md +81 -182
  163. package/template/.aioson/agents/pentester.md +235 -0
  164. package/template/.aioson/agents/pm.md +40 -104
  165. package/template/.aioson/agents/product.md +99 -344
  166. package/template/.aioson/agents/profiler-enricher.md +57 -6
  167. package/template/.aioson/agents/profiler-forge.md +17 -7
  168. package/template/.aioson/agents/profiler-researcher.md +29 -6
  169. package/template/.aioson/agents/qa.md +165 -410
  170. package/template/.aioson/agents/setup.md +52 -262
  171. package/template/.aioson/agents/sheldon.md +122 -754
  172. package/template/.aioson/agents/site-forge.md +111 -1583
  173. package/template/.aioson/agents/squad.md +139 -1820
  174. package/template/.aioson/agents/tester.md +10 -0
  175. package/template/.aioson/agents/ux-ui.md +103 -645
  176. package/template/.aioson/agents/validator.md +69 -0
  177. package/template/.aioson/brains/scripts/query.js +5 -1
  178. package/template/.aioson/config/autonomy-protocol.json +43 -0
  179. package/template/.aioson/config.md +43 -15
  180. package/template/.aioson/constitution.md +36 -33
  181. package/template/.aioson/context/design-doc.md +136 -0
  182. package/template/.aioson/context/project-map.md +57 -0
  183. package/template/.aioson/design-docs/code-reuse.md +48 -0
  184. package/template/.aioson/design-docs/componentization.md +47 -0
  185. package/template/.aioson/design-docs/file-size.md +52 -0
  186. package/template/.aioson/design-docs/folder-structure.md +51 -0
  187. package/template/.aioson/design-docs/naming.md +54 -0
  188. package/template/.aioson/docs/LAYERS.md +12 -2
  189. package/template/.aioson/docs/dev/execution-discipline.md +106 -0
  190. package/template/.aioson/docs/dev/stack-conventions.md +83 -0
  191. package/template/.aioson/docs/deyvin/continuity-recovery.md +57 -0
  192. package/template/.aioson/docs/deyvin/debugging-escalation.md +30 -0
  193. package/template/.aioson/docs/deyvin/pair-execution.md +44 -0
  194. package/template/.aioson/docs/deyvin/runtime-handoffs.md +36 -0
  195. package/template/.aioson/docs/product/conversation-playbook.md +116 -0
  196. package/template/.aioson/docs/product/prd-contract.md +107 -0
  197. package/template/.aioson/docs/product/quality-lens.md +57 -0
  198. package/template/.aioson/docs/product/research-loop.md +65 -0
  199. package/template/.aioson/docs/sheldon/enrichment-paths.md +134 -0
  200. package/template/.aioson/docs/sheldon/quality-lens.md +57 -0
  201. package/template/.aioson/docs/sheldon/research-loop.md +56 -0
  202. package/template/.aioson/docs/sheldon/web-intelligence.md +75 -0
  203. package/template/.aioson/docs/site-forge-build.md +195 -0
  204. package/template/.aioson/docs/site-forge-extraction.md +135 -0
  205. package/template/.aioson/docs/site-forge-qa.md +155 -0
  206. package/template/.aioson/docs/site-forge-recon.md +434 -0
  207. package/template/.aioson/docs/site-forge-transform.md +249 -0
  208. package/template/.aioson/docs/squad/content-output.md +91 -0
  209. package/template/.aioson/docs/squad/creation-flow.md +135 -0
  210. package/template/.aioson/docs/squad/domain-classification.md +117 -0
  211. package/template/.aioson/docs/squad/genome-bindings.md +47 -0
  212. package/template/.aioson/docs/squad/package-contract.md +234 -0
  213. package/template/.aioson/docs/squad/quality-lens.md +56 -0
  214. package/template/.aioson/docs/squad/research-loop.md +59 -0
  215. package/template/.aioson/docs/squad/session-operations.md +117 -0
  216. package/template/.aioson/docs/squad/workflow-quality.md +165 -0
  217. package/template/.aioson/docs/ux-ui/accessibility-audit.md +55 -0
  218. package/template/.aioson/docs/ux-ui/audit-mode.md +86 -0
  219. package/template/.aioson/docs/ux-ui/component-map.md +35 -0
  220. package/template/.aioson/docs/ux-ui/design-execution.md +111 -0
  221. package/template/.aioson/docs/ux-ui/design-gate.md +27 -0
  222. package/template/.aioson/docs/ux-ui/research-mode.md +39 -0
  223. package/template/.aioson/docs/ux-ui/site-delivery.md +156 -0
  224. package/template/.aioson/docs/ux-ui/token-contract.md +57 -0
  225. package/template/.aioson/genomes/copywriting.md +204 -0
  226. package/template/.aioson/genomes/copywriting.meta.json +48 -0
  227. package/template/.aioson/git-guard.json +11 -0
  228. package/template/.aioson/mcp/servers.md +0 -1
  229. package/template/.aioson/rules/agent-language-policy.md +93 -0
  230. package/template/.aioson/rules/aioson-context-boundary.md +63 -0
  231. package/template/.aioson/rules/canonical-path-contract.md +47 -0
  232. package/template/.aioson/rules/data-format-convention.md +24 -86
  233. package/template/.aioson/rules/disk-first-artifacts.md +44 -0
  234. package/template/.aioson/rules/output-brevity.md +44 -0
  235. package/template/.aioson/rules/prd-section-ownership.md +49 -0
  236. package/template/.aioson/rules/security-baseline.md +139 -0
  237. package/template/.aioson/rules/spec-level-ownership.md +61 -0
  238. package/template/.aioson/rules/squad-driver-pattern.md +81 -0
  239. package/template/.aioson/schemas/squad-blueprint.schema.json +24 -0
  240. package/template/.aioson/schemas/squad-manifest.schema.json +44 -0
  241. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +2 -0
  242. package/template/.aioson/skills/marketing/references/anti-patterns.md +254 -0
  243. package/template/.aioson/skills/marketing/references/fascinations.md +192 -0
  244. package/template/.aioson/skills/marketing/references/five-acts.md +248 -0
  245. package/template/.aioson/skills/marketing/references/market-intelligence.md +198 -0
  246. package/template/.aioson/skills/marketing/references/offer-structure.md +203 -0
  247. package/template/.aioson/skills/marketing/references/one-belief.md +149 -0
  248. package/template/.aioson/skills/marketing/references/patterns.md +218 -0
  249. package/template/.aioson/skills/marketing/references/pms-research.md +193 -0
  250. package/template/.aioson/skills/marketing/vsl-craft.md +385 -0
  251. package/template/.aioson/skills/process/aioson-spec-driven/references/pm.md +30 -0
  252. package/template/.aioson/skills/process/secure-tdd/SKILL.md +97 -0
  253. package/template/.aioson/skills/process/secure-tdd/references/nextjs.md +81 -0
  254. package/template/.aioson/skills/process/secure-tdd/references/node-express.md +91 -0
  255. package/template/.aioson/skills/process/secure-tdd/references/planned-stacks.md +33 -0
  256. package/template/.aioson/skills/static/harness-validate/SKILL.md +46 -0
  257. package/template/.aioson/skills/static/landing-page-deploy.md +192 -0
  258. package/template/.aioson/skills/static/landing-page-forge.md +730 -0
  259. package/template/.aioson/skills/static/ui-ux-modern.md +1 -0
  260. package/template/.aioson/skills/static/web-research-cache.md +3 -0
  261. package/template/.aioson/tasks/squad-create.md +56 -7
  262. package/template/.aioson/tasks/squad-design.md +80 -2
  263. package/template/.aioson/tasks/squad-investigate.md +14 -1
  264. package/template/.aioson/templates/squads/digital-marketing-agency/template.json +96 -0
  265. package/template/.claude/commands/aioson/agent/committer.md +5 -0
  266. package/template/.claude/commands/aioson/agent/copywriter.md +5 -0
  267. package/template/.claude/commands/aioson/agent/cypher.md +5 -0
  268. package/template/.claude/commands/aioson/agent/pair.md +5 -0
  269. package/template/.claude/commands/aioson/agent/validator.md +5 -0
  270. package/template/.gemini/commands/aios-analyst.toml +6 -3
  271. package/template/.gemini/commands/aios-architect.toml +7 -6
  272. package/template/.gemini/commands/aios-committer.toml +7 -0
  273. package/template/.gemini/commands/aios-copywriter.toml +7 -0
  274. package/template/.gemini/commands/aios-cypher.toml +7 -0
  275. package/template/.gemini/commands/aios-dev.toml +8 -7
  276. package/template/.gemini/commands/aios-deyvin.toml +6 -5
  277. package/template/.gemini/commands/aios-discovery-design-doc.toml +6 -3
  278. package/template/.gemini/commands/aios-genome.toml +7 -0
  279. package/template/.gemini/commands/aios-neo.toml +5 -3
  280. package/template/.gemini/commands/aios-orache.toml +7 -0
  281. package/template/.gemini/commands/aios-orchestrator.toml +8 -7
  282. package/template/.gemini/commands/aios-pair.toml +6 -5
  283. package/template/.gemini/commands/aios-pm.toml +8 -7
  284. package/template/.gemini/commands/aios-product.toml +5 -3
  285. package/template/.gemini/commands/aios-qa.toml +6 -5
  286. package/template/.gemini/commands/aios-setup.toml +5 -2
  287. package/template/.gemini/commands/aios-sheldon.toml +7 -0
  288. package/template/.gemini/commands/aios-site-forge.toml +7 -0
  289. package/template/.gemini/commands/aios-squad.toml +7 -0
  290. package/template/.gemini/commands/aios-tester.toml +6 -5
  291. package/template/.gemini/commands/aios-ux-ui.toml +8 -7
  292. package/template/.gemini/commands/aios-validator.toml +7 -0
  293. package/template/AGENTS.md +12 -1
  294. package/template/CLAUDE.md +6 -1
  295. package/template/.aioson/locales/en/agents/analyst.md +0 -244
  296. package/template/.aioson/locales/en/agents/architect.md +0 -245
  297. package/template/.aioson/locales/en/agents/dev.md +0 -397
  298. package/template/.aioson/locales/en/agents/deyvin.md +0 -137
  299. package/template/.aioson/locales/en/agents/discovery-design-doc.md +0 -27
  300. package/template/.aioson/locales/en/agents/genome.md +0 -212
  301. package/template/.aioson/locales/en/agents/neo.md +0 -8
  302. package/template/.aioson/locales/en/agents/orache.md +0 -6
  303. package/template/.aioson/locales/en/agents/orchestrator.md +0 -189
  304. package/template/.aioson/locales/en/agents/pair.md +0 -5
  305. package/template/.aioson/locales/en/agents/pm.md +0 -84
  306. package/template/.aioson/locales/en/agents/product.md +0 -378
  307. package/template/.aioson/locales/en/agents/profiler-enricher.md +0 -5
  308. package/template/.aioson/locales/en/agents/profiler-forge.md +0 -5
  309. package/template/.aioson/locales/en/agents/profiler-researcher.md +0 -5
  310. package/template/.aioson/locales/en/agents/qa.md +0 -270
  311. package/template/.aioson/locales/en/agents/setup.md +0 -421
  312. package/template/.aioson/locales/en/agents/sheldon.md +0 -455
  313. package/template/.aioson/locales/en/agents/squad.md +0 -449
  314. package/template/.aioson/locales/en/agents/tester.md +0 -6
  315. package/template/.aioson/locales/en/agents/ux-ui.md +0 -668
  316. package/template/.aioson/locales/es/agents/analyst.md +0 -225
  317. package/template/.aioson/locales/es/agents/architect.md +0 -245
  318. package/template/.aioson/locales/es/agents/dev.md +0 -370
  319. package/template/.aioson/locales/es/agents/deyvin.md +0 -99
  320. package/template/.aioson/locales/es/agents/discovery-design-doc.md +0 -21
  321. package/template/.aioson/locales/es/agents/genome.md +0 -104
  322. package/template/.aioson/locales/es/agents/neo.md +0 -50
  323. package/template/.aioson/locales/es/agents/orache.md +0 -105
  324. package/template/.aioson/locales/es/agents/orchestrator.md +0 -194
  325. package/template/.aioson/locales/es/agents/pair.md +0 -7
  326. package/template/.aioson/locales/es/agents/pm.md +0 -90
  327. package/template/.aioson/locales/es/agents/product.md +0 -372
  328. package/template/.aioson/locales/es/agents/profiler-enricher.md +0 -7
  329. package/template/.aioson/locales/es/agents/profiler-forge.md +0 -7
  330. package/template/.aioson/locales/es/agents/profiler-researcher.md +0 -7
  331. package/template/.aioson/locales/es/agents/qa.md +0 -198
  332. package/template/.aioson/locales/es/agents/setup.md +0 -405
  333. package/template/.aioson/locales/es/agents/sheldon.md +0 -309
  334. package/template/.aioson/locales/es/agents/squad.md +0 -532
  335. package/template/.aioson/locales/es/agents/tester.md +0 -9
  336. package/template/.aioson/locales/es/agents/ux-ui.md +0 -212
  337. package/template/.aioson/locales/fr/agents/analyst.md +0 -225
  338. package/template/.aioson/locales/fr/agents/architect.md +0 -245
  339. package/template/.aioson/locales/fr/agents/dev.md +0 -370
  340. package/template/.aioson/locales/fr/agents/deyvin.md +0 -99
  341. package/template/.aioson/locales/fr/agents/discovery-design-doc.md +0 -21
  342. package/template/.aioson/locales/fr/agents/genome.md +0 -104
  343. package/template/.aioson/locales/fr/agents/neo.md +0 -50
  344. package/template/.aioson/locales/fr/agents/orache.md +0 -106
  345. package/template/.aioson/locales/fr/agents/orchestrator.md +0 -194
  346. package/template/.aioson/locales/fr/agents/pair.md +0 -7
  347. package/template/.aioson/locales/fr/agents/pm.md +0 -90
  348. package/template/.aioson/locales/fr/agents/product.md +0 -372
  349. package/template/.aioson/locales/fr/agents/profiler-enricher.md +0 -7
  350. package/template/.aioson/locales/fr/agents/profiler-forge.md +0 -7
  351. package/template/.aioson/locales/fr/agents/profiler-researcher.md +0 -7
  352. package/template/.aioson/locales/fr/agents/qa.md +0 -198
  353. package/template/.aioson/locales/fr/agents/setup.md +0 -405
  354. package/template/.aioson/locales/fr/agents/sheldon.md +0 -309
  355. package/template/.aioson/locales/fr/agents/squad.md +0 -532
  356. package/template/.aioson/locales/fr/agents/tester.md +0 -9
  357. package/template/.aioson/locales/fr/agents/ux-ui.md +0 -212
  358. package/template/.aioson/locales/pt-BR/agents/analyst.md +0 -319
  359. package/template/.aioson/locales/pt-BR/agents/architect.md +0 -284
  360. package/template/.aioson/locales/pt-BR/agents/dev.md +0 -483
  361. package/template/.aioson/locales/pt-BR/agents/deyvin.md +0 -184
  362. package/template/.aioson/locales/pt-BR/agents/discovery-design-doc.md +0 -198
  363. package/template/.aioson/locales/pt-BR/agents/genome.md +0 -297
  364. package/template/.aioson/locales/pt-BR/agents/neo.md +0 -208
  365. package/template/.aioson/locales/pt-BR/agents/orache.md +0 -137
  366. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +0 -324
  367. package/template/.aioson/locales/pt-BR/agents/pair.md +0 -5
  368. package/template/.aioson/locales/pt-BR/agents/pm.md +0 -182
  369. package/template/.aioson/locales/pt-BR/agents/product.md +0 -466
  370. package/template/.aioson/locales/pt-BR/agents/profiler-enricher.md +0 -5
  371. package/template/.aioson/locales/pt-BR/agents/profiler-forge.md +0 -5
  372. package/template/.aioson/locales/pt-BR/agents/profiler-researcher.md +0 -5
  373. package/template/.aioson/locales/pt-BR/agents/qa.md +0 -300
  374. package/template/.aioson/locales/pt-BR/agents/setup.md +0 -533
  375. package/template/.aioson/locales/pt-BR/agents/sheldon.md +0 -323
  376. package/template/.aioson/locales/pt-BR/agents/squad.md +0 -1330
  377. package/template/.aioson/locales/pt-BR/agents/tester.md +0 -449
  378. package/template/.aioson/locales/pt-BR/agents/ux-ui.md +0 -669
  379. package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
  380. package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
  381. package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
  382. package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
  383. package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -0
@@ -0,0 +1,231 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * aioson workflow:harden — autonomous friction detection and codebase hardening.
5
+ *
6
+ * Reads workflow error logs, identifies recurring patterns, and applies
7
+ * preventive fixes where possible (git hooks, test helpers, rules, etc.).
8
+ *
9
+ * Usage:
10
+ * aioson workflow:harden .
11
+ * aioson workflow:harden . --dry-run
12
+ * aioson workflow:harden . --json
13
+ */
14
+
15
+ const path = require('node:path');
16
+ const fs = require('node:fs/promises');
17
+ const { scanFriction, buildRecommendations } = require('../friction-scanner');
18
+ const { ensureDir, exists } = require('../utils');
19
+ const { installPreCommitHook } = require('../lib/git-commit-guard');
20
+
21
+ async function ensureGitignoreBlocks(targetDir, blocks) {
22
+ const gitignorePath = path.join(targetDir, '.gitignore');
23
+ let content = '';
24
+ try {
25
+ content = await fs.readFile(gitignorePath, 'utf8');
26
+ } catch {
27
+ content = '';
28
+ }
29
+ const lines = content.split('\n');
30
+ const added = [];
31
+ for (const block of blocks) {
32
+ if (!lines.some((l) => l.trim() === block)) {
33
+ lines.push(block);
34
+ added.push(block);
35
+ }
36
+ }
37
+ if (added.length > 0) {
38
+ await fs.writeFile(gitignorePath, lines.join('\n') + '\n', 'utf8');
39
+ }
40
+ return added;
41
+ }
42
+
43
+ async function ensureMockHelperStub(targetDir) {
44
+ const helperPath = path.join(targetDir, 'tests', 'helpers', 'mocks.ts');
45
+ if (await exists(helperPath)) return { created: false, path: helperPath };
46
+ const jsPath = path.join(targetDir, 'tests', 'helpers', 'mocks.js');
47
+ if (await exists(jsPath)) return { created: false, path: jsPath };
48
+
49
+ const stub = `/**
50
+ * Shared mock factory — prevents ordering bugs and inconsistent mocks.
51
+ *
52
+ * Usage:
53
+ * import { createServiceMock } from './helpers/mocks';
54
+ */
55
+
56
+ export function createServiceMock(overrides = {}) {
57
+ return {
58
+ get: vi.fn(),
59
+ post: vi.fn(),
60
+ ...overrides
61
+ };
62
+ }
63
+ `;
64
+ await ensureDir(path.dirname(helperPath));
65
+ await fs.writeFile(helperPath, stub, 'utf8');
66
+ return { created: true, path: helperPath };
67
+ }
68
+
69
+ async function applyAutoFixes(targetDir, recommendations, dryRun) {
70
+ const fixes = [];
71
+ for (const rec of recommendations) {
72
+ if (!rec.autoFixable) continue;
73
+
74
+ if (rec.pattern === 'Git staging accidents') {
75
+ const blocks = ['node_modules/', 'dist/', '.next/', '*.db', 'build/', 'coverage/'];
76
+ if (!dryRun) {
77
+ const added = await ensureGitignoreBlocks(targetDir, blocks);
78
+ if (added.length > 0) {
79
+ fixes.push({ ok: true, action: 'Updated .gitignore', details: added });
80
+ }
81
+ } else {
82
+ fixes.push({ ok: true, action: 'Would update .gitignore', details: blocks });
83
+ }
84
+
85
+ if (!dryRun) {
86
+ try {
87
+ const hookResult = await installPreCommitHook(targetDir, { force: false });
88
+ fixes.push({
89
+ ok: hookResult.ok,
90
+ action: hookResult.ok ? 'Installed pre-commit hook' : 'Pre-commit hook already exists or blocked',
91
+ details: hookResult.message || null
92
+ });
93
+ } catch (err) {
94
+ fixes.push({ ok: false, action: 'Failed to install pre-commit hook', details: err.message });
95
+ }
96
+ } else {
97
+ fixes.push({ ok: true, action: 'Would install pre-commit hook', details: null });
98
+ }
99
+ }
100
+
101
+ if (rec.pattern === 'Mock ordering / test helper issues') {
102
+ if (!dryRun) {
103
+ const result = await ensureMockHelperStub(targetDir);
104
+ fixes.push({
105
+ ok: true,
106
+ action: result.created ? 'Created shared mock helper stub' : 'Shared mock helper already exists',
107
+ path: result.path
108
+ });
109
+ } else {
110
+ fixes.push({ ok: true, action: 'Would create shared mock helper stub', path: 'tests/helpers/mocks.ts' });
111
+ }
112
+ }
113
+ }
114
+ return fixes;
115
+ }
116
+
117
+ function buildReport(analysis, recommendations, fixes) {
118
+ const lines = [
119
+ '---',
120
+ `generated_at: ${new Date().toISOString()}`,
121
+ `total_errors_scanned: ${analysis.total}`,
122
+ `patterns_found: ${analysis.patterns.length}`,
123
+ '---',
124
+ '',
125
+ '# Codebase Hardening Report',
126
+ '',
127
+ '## Recurring friction patterns',
128
+ ''
129
+ ];
130
+
131
+ if (analysis.patterns.length === 0) {
132
+ lines.push('No recurring patterns detected. Great job!');
133
+ } else {
134
+ for (const p of analysis.patterns) {
135
+ lines.push(`### ${p.name} (${p.count} occurrences)`);
136
+ if (p.examples.length > 0) {
137
+ lines.push('Recent examples:');
138
+ for (const ex of p.examples) {
139
+ lines.push(`- \`${ex}\``);
140
+ }
141
+ }
142
+ lines.push('');
143
+ }
144
+ }
145
+
146
+ lines.push('## Recommendations');
147
+ lines.push('');
148
+ if (recommendations.length === 0) {
149
+ lines.push('None.');
150
+ } else {
151
+ for (const r of recommendations) {
152
+ lines.push(`- **${r.pattern}** — priority: ${r.priority}`);
153
+ lines.push(` - Action: ${r.action}`);
154
+ lines.push(` - Auto-fixable: ${r.autoFixable ? 'yes' : 'no'}`);
155
+ lines.push('');
156
+ }
157
+ }
158
+
159
+ lines.push('## Auto-fixes applied');
160
+ lines.push('');
161
+ if (fixes.length === 0) {
162
+ lines.push('No auto-fixes were applicable.');
163
+ } else {
164
+ for (const f of fixes) {
165
+ lines.push(`- ${f.action}${f.details ? ` (${Array.isArray(f.details) ? f.details.join(', ') : f.details})` : ''}`);
166
+ }
167
+ }
168
+
169
+ lines.push('');
170
+ lines.push('## Next steps');
171
+ lines.push('- Review high-priority recommendations.');
172
+ lines.push('- Run the full test suite to verify no regressions from auto-fixes.');
173
+ lines.push('- Update `.aioson/rules/` with project-specific conventions.');
174
+ lines.push('');
175
+
176
+ return lines.join('\n');
177
+ }
178
+
179
+ async function runWorkflowHarden({ args, options, logger }) {
180
+ const targetDir = path.resolve(process.cwd(), args[0] || '.');
181
+ const dryRun = Boolean(options['dry-run'] || options.dryRun);
182
+ const jsonMode = Boolean(options.json);
183
+
184
+ const analysis = await scanFriction(targetDir);
185
+ const recommendations = buildRecommendations(analysis);
186
+ const fixes = await applyAutoFixes(targetDir, recommendations, dryRun);
187
+
188
+ const reportMd = buildReport(analysis, recommendations, fixes);
189
+ const reportPath = path.join(targetDir, '.aioson', 'context', 'hardening-report.md');
190
+
191
+ if (!dryRun) {
192
+ await ensureDir(path.dirname(reportPath));
193
+ await fs.writeFile(reportPath, reportMd, 'utf8');
194
+ }
195
+
196
+ const result = {
197
+ ok: true,
198
+ targetDir,
199
+ dryRun,
200
+ totalErrors: analysis.total,
201
+ patternsFound: analysis.patterns.length,
202
+ patterns: analysis.patterns,
203
+ recommendations,
204
+ fixes,
205
+ reportPath: path.relative(targetDir, reportPath)
206
+ };
207
+
208
+ if (jsonMode) {
209
+ return result;
210
+ }
211
+
212
+ logger.log('');
213
+ logger.log(`Codebase Hardening — ${dryRun ? 'DRY RUN' : 'ACTIVE'}`);
214
+ logger.log('━'.repeat(40));
215
+ logger.log(`Errors scanned: ${analysis.total}`);
216
+ logger.log(`Patterns found: ${analysis.patterns.length}`);
217
+ logger.log(`Auto-fixes applied: ${fixes.length}`);
218
+ if (analysis.patterns.length > 0) {
219
+ logger.log('');
220
+ logger.log('Top patterns:');
221
+ for (const p of analysis.patterns.slice(0, 5)) {
222
+ logger.log(` - ${p.name}: ${p.count}`);
223
+ }
224
+ }
225
+ logger.log('');
226
+ logger.log(`Report: ${result.reportPath}`);
227
+
228
+ return result;
229
+ }
230
+
231
+ module.exports = { runWorkflowHarden };
@@ -0,0 +1,136 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * aioson workflow:heal — re-run a failed stage with corrective context.
5
+ *
6
+ * Usage:
7
+ * aioson workflow:heal . --stage=dev
8
+ * aioson workflow:heal . --stage=qa
9
+ *
10
+ * Reads the last recorded error, checks retry budget (max 3),
11
+ * builds a healing prompt, and re-activates the agent.
12
+ */
13
+
14
+ const path = require('node:path');
15
+ const {
16
+ loadOrCreateState,
17
+ activateStage,
18
+ persistState,
19
+ appendWorkflowEvent
20
+ } = require('./workflow-next');
21
+ const { syncWorkflowRuntime } = require('../execution-gateway');
22
+ const { writeHandoff, buildWorkflowHandoff } = require('../session-handoff');
23
+ const { resolveLocaleForTarget } = require('./workflow-next');
24
+ const {
25
+ canRetry,
26
+ incrementRetryCount,
27
+ buildHealingActivation
28
+ } = require('../self-healing');
29
+
30
+ async function runWorkflowHeal({ args, options, logger, t }) {
31
+ const targetDir = path.resolve(process.cwd(), args[0] || '.');
32
+ const tool = options.tool || 'codex';
33
+ const stage = options.stage ? String(options.stage).replace(/^@/, '') : null;
34
+ const locale = await resolveLocaleForTarget(targetDir, options);
35
+
36
+ if (!stage) {
37
+ logger.error('--stage=<agent> is required. Example: aioson workflow:heal . --stage=dev');
38
+ return { ok: false, reason: 'missing_stage' };
39
+ }
40
+
41
+ const allowedStages = ['dev', 'qa', 'tester', 'architect', 'ux-ui'];
42
+ if (!allowedStages.includes(stage)) {
43
+ logger.error(`Stage @${stage} is not supported for healing. Allowed: ${allowedStages.join(', ')}`);
44
+ return { ok: false, reason: 'unsupported_stage' };
45
+ }
46
+
47
+ const retryOk = await canRetry(targetDir, stage);
48
+ if (!retryOk) {
49
+ logger.error(`Retry budget exhausted for @${stage}. Maximum 3 attempts reached. Please intervene manually.`);
50
+ return { ok: false, reason: 'retry_budget_exhausted', stage };
51
+ }
52
+
53
+ const { state } = await loadOrCreateState(targetDir, options);
54
+
55
+ // Ensure the stage is part of the workflow sequence
56
+ if (!state.sequence.includes(stage)) {
57
+ logger.error(`Stage @${stage} is not part of the active workflow sequence.`);
58
+ return { ok: false, reason: 'stage_not_in_sequence' };
59
+ }
60
+
61
+ // Build healing activation
62
+ let activation;
63
+ try {
64
+ activation = await buildHealingActivation(
65
+ targetDir,
66
+ state,
67
+ stage,
68
+ locale,
69
+ tool,
70
+ activateStage
71
+ );
72
+ } catch (err) {
73
+ logger.error(`Unable to build healing activation: ${err.message}`);
74
+ return { ok: false, reason: 'activation_failed', error: err.message };
75
+ }
76
+
77
+ // Increment retry counter
78
+ const newCount = await incrementRetryCount(targetDir, stage, activation.prompt.substring(0, 200));
79
+
80
+ // Persist state with the healed stage as active
81
+ const healedState = {
82
+ ...state,
83
+ current: stage,
84
+ detour: null
85
+ };
86
+ await persistState(targetDir, healedState);
87
+
88
+ // Emit workflow event
89
+ const eventPayload = {
90
+ id: Date.now(),
91
+ kind: 'workflow',
92
+ createdAt: new Date().toISOString(),
93
+ eventType: 'heal',
94
+ message: `Healing @${stage} — retry ${newCount}/3`,
95
+ mode: state.mode,
96
+ classification: state.classification,
97
+ featureSlug: state.featureSlug,
98
+ current: stage,
99
+ next: state.next,
100
+ completed: state.completed,
101
+ skipped: state.skipped,
102
+ sequence: state.sequence,
103
+ healing: true,
104
+ retryCount: newCount
105
+ };
106
+ await appendWorkflowEvent(targetDir, eventPayload);
107
+
108
+ // Sync runtime
109
+ const runtime = await syncWorkflowRuntime(targetDir, {
110
+ state: healedState,
111
+ eventPayload,
112
+ activationAgent: stage,
113
+ completedStage: null
114
+ });
115
+
116
+ // Update handoff
117
+ const handoffData = buildWorkflowHandoff(healedState, null, stage);
118
+ await writeHandoff(targetDir, handoffData);
119
+
120
+ logger.log(t('workflow_heal.title', { stage: `@${stage}`, count: newCount }));
121
+ logger.log(activation.prompt);
122
+
123
+ return {
124
+ ok: true,
125
+ targetDir,
126
+ stage,
127
+ retryCount: newCount,
128
+ maxRetries: 3,
129
+ runtime,
130
+ agent: activation.agent,
131
+ instructionPath: activation.instructionPath,
132
+ prompt: activation.prompt
133
+ };
134
+ }
135
+
136
+ module.exports = { runWorkflowHeal };