@jaimevalasek/aioson 1.3.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 (288) hide show
  1. package/CHANGELOG.md +456 -0
  2. package/CODE_OF_CONDUCT.md +12 -0
  3. package/CONTRIBUTING.md +13 -0
  4. package/LICENSE +21 -0
  5. package/README.md +254 -0
  6. package/bin/aioson.js +4 -0
  7. package/docs/en/cli-reference.md +398 -0
  8. package/docs/en/i18n.md +52 -0
  9. package/docs/en/json-schemas.md +41 -0
  10. package/docs/en/mcp.md +56 -0
  11. package/docs/en/parallel.md +82 -0
  12. package/docs/en/qa-browser.md +339 -0
  13. package/docs/en/release-flow.md +22 -0
  14. package/docs/en/release-notes-template.md +41 -0
  15. package/docs/en/release.md +28 -0
  16. package/docs/en/schemas/agent-prompt.schema.json +17 -0
  17. package/docs/en/schemas/agents.schema.json +32 -0
  18. package/docs/en/schemas/context-validate.schema.json +36 -0
  19. package/docs/en/schemas/doctor.schema.json +89 -0
  20. package/docs/en/schemas/error.schema.json +24 -0
  21. package/docs/en/schemas/i18n-add.schema.json +15 -0
  22. package/docs/en/schemas/index.json +116 -0
  23. package/docs/en/schemas/info.schema.json +39 -0
  24. package/docs/en/schemas/init.schema.json +48 -0
  25. package/docs/en/schemas/install.schema.json +60 -0
  26. package/docs/en/schemas/locale-apply.schema.json +30 -0
  27. package/docs/en/schemas/mcp-doctor.schema.json +95 -0
  28. package/docs/en/schemas/mcp-init.schema.json +122 -0
  29. package/docs/en/schemas/package-test.schema.json +24 -0
  30. package/docs/en/schemas/parallel-assign.schema.json +57 -0
  31. package/docs/en/schemas/parallel-doctor.schema.json +86 -0
  32. package/docs/en/schemas/parallel-init.schema.json +53 -0
  33. package/docs/en/schemas/parallel-status.schema.json +94 -0
  34. package/docs/en/schemas/setup-context.schema.json +39 -0
  35. package/docs/en/schemas/smoke.schema.json +23 -0
  36. package/docs/en/schemas/update.schema.json +48 -0
  37. package/docs/en/schemas/workflow-plan.schema.json +30 -0
  38. package/docs/en/web3.md +54 -0
  39. package/docs/pt/README.md +46 -0
  40. package/docs/pt/advisor-spec.md +335 -0
  41. package/docs/pt/agentes.md +453 -0
  42. package/docs/pt/cenarios.md +1230 -0
  43. package/docs/pt/clientes-ai.md +224 -0
  44. package/docs/pt/comandos-cli.md +511 -0
  45. package/docs/pt/genome-3.0-spec.md +296 -0
  46. package/docs/pt/guia-engineer.md +226 -0
  47. package/docs/pt/inicio-rapido.md +138 -0
  48. package/docs/pt/profiler-system.md +214 -0
  49. package/docs/pt/runtime-observability.md +72 -0
  50. package/docs/pt/squad-genoma.md +777 -0
  51. package/docs/pt/web3.md +797 -0
  52. package/docs/testing/genome-2.0-manual-regression.md +23 -0
  53. package/docs/testing/genome-2.0-matrix.md +36 -0
  54. package/docs/testing/genome-2.0-rollout.md +184 -0
  55. package/package.json +50 -0
  56. package/src/agents.js +56 -0
  57. package/src/cli.js +497 -0
  58. package/src/commands/agents.js +142 -0
  59. package/src/commands/cloud.js +1767 -0
  60. package/src/commands/config.js +90 -0
  61. package/src/commands/context-validate.js +91 -0
  62. package/src/commands/doctor.js +123 -0
  63. package/src/commands/genome-doctor.js +41 -0
  64. package/src/commands/genome-migrate.js +49 -0
  65. package/src/commands/i18n-add.js +56 -0
  66. package/src/commands/info.js +41 -0
  67. package/src/commands/init.js +75 -0
  68. package/src/commands/install.js +68 -0
  69. package/src/commands/locale-apply.js +51 -0
  70. package/src/commands/locale-diff.js +126 -0
  71. package/src/commands/mcp-doctor.js +406 -0
  72. package/src/commands/mcp-init.js +379 -0
  73. package/src/commands/package-e2e.js +273 -0
  74. package/src/commands/parallel-assign.js +403 -0
  75. package/src/commands/parallel-doctor.js +437 -0
  76. package/src/commands/parallel-init.js +249 -0
  77. package/src/commands/parallel-status.js +290 -0
  78. package/src/commands/qa-doctor.js +185 -0
  79. package/src/commands/qa-init.js +161 -0
  80. package/src/commands/qa-report.js +58 -0
  81. package/src/commands/qa-run.js +873 -0
  82. package/src/commands/qa-scan.js +337 -0
  83. package/src/commands/runtime.js +948 -0
  84. package/src/commands/scan-project.js +1107 -0
  85. package/src/commands/setup-context.js +650 -0
  86. package/src/commands/smoke.js +426 -0
  87. package/src/commands/squad-doctor.js +358 -0
  88. package/src/commands/squad-export.js +46 -0
  89. package/src/commands/squad-pipeline.js +97 -0
  90. package/src/commands/squad-repair-genomes.js +39 -0
  91. package/src/commands/squad-status.js +424 -0
  92. package/src/commands/squad-validate.js +230 -0
  93. package/src/commands/test-agents.js +194 -0
  94. package/src/commands/update.js +55 -0
  95. package/src/commands/workflow-next.js +594 -0
  96. package/src/commands/workflow-plan.js +108 -0
  97. package/src/constants.js +314 -0
  98. package/src/context-parse-reason.js +22 -0
  99. package/src/context-writer.js +150 -0
  100. package/src/context.js +217 -0
  101. package/src/detector.js +261 -0
  102. package/src/doctor.js +289 -0
  103. package/src/execution-gateway.js +461 -0
  104. package/src/genome-files.js +198 -0
  105. package/src/genome-format.js +442 -0
  106. package/src/genome-schema.js +215 -0
  107. package/src/genomes/bindings.js +281 -0
  108. package/src/genomes.js +467 -0
  109. package/src/i18n/index.js +103 -0
  110. package/src/i18n/messages/en.js +784 -0
  111. package/src/i18n/messages/es.js +718 -0
  112. package/src/i18n/messages/fr.js +725 -0
  113. package/src/i18n/messages/pt-BR.js +818 -0
  114. package/src/i18n/scaffold.js +64 -0
  115. package/src/installer.js +232 -0
  116. package/src/lib/genomes/compat.js +206 -0
  117. package/src/lib/genomes/migrate.js +90 -0
  118. package/src/lib/squads/genome-repair.js +49 -0
  119. package/src/locales.js +84 -0
  120. package/src/onboarding.js +305 -0
  121. package/src/parser.js +53 -0
  122. package/src/prompt-tool.js +20 -0
  123. package/src/qa-html-report.js +472 -0
  124. package/src/runtime-store.js +1527 -0
  125. package/src/squads/apply-genome.js +21 -0
  126. package/src/squads/genome-binding-service.js +154 -0
  127. package/src/updater.js +32 -0
  128. package/src/utils.js +46 -0
  129. package/src/version.js +50 -0
  130. package/template/.aioson/advisors/.gitkeep +1 -0
  131. package/template/.aioson/agents/analyst.md +225 -0
  132. package/template/.aioson/agents/architect.md +221 -0
  133. package/template/.aioson/agents/dev.md +201 -0
  134. package/template/.aioson/agents/discovery-design-doc.md +196 -0
  135. package/template/.aioson/agents/genoma.md +300 -0
  136. package/template/.aioson/agents/orchestrator.md +107 -0
  137. package/template/.aioson/agents/pm.md +89 -0
  138. package/template/.aioson/agents/product.md +361 -0
  139. package/template/.aioson/agents/profiler-enricher.md +266 -0
  140. package/template/.aioson/agents/profiler-forge.md +188 -0
  141. package/template/.aioson/agents/profiler-researcher.md +245 -0
  142. package/template/.aioson/agents/qa.md +344 -0
  143. package/template/.aioson/agents/setup.md +381 -0
  144. package/template/.aioson/agents/squad.md +837 -0
  145. package/template/.aioson/agents/ux-ui.md +416 -0
  146. package/template/.aioson/config.md +56 -0
  147. package/template/.aioson/context/.gitkeep +0 -0
  148. package/template/.aioson/context/parallel/.gitkeep +0 -0
  149. package/template/.aioson/context/spec.md.template +37 -0
  150. package/template/.aioson/genomas/.gitkeep +0 -0
  151. package/template/.aioson/locales/en/agents/analyst.md +214 -0
  152. package/template/.aioson/locales/en/agents/architect.md +210 -0
  153. package/template/.aioson/locales/en/agents/dev.md +187 -0
  154. package/template/.aioson/locales/en/agents/discovery-design-doc.md +27 -0
  155. package/template/.aioson/locales/en/agents/genoma.md +212 -0
  156. package/template/.aioson/locales/en/agents/orchestrator.md +105 -0
  157. package/template/.aioson/locales/en/agents/pm.md +77 -0
  158. package/template/.aioson/locales/en/agents/product.md +310 -0
  159. package/template/.aioson/locales/en/agents/profiler-enricher.md +5 -0
  160. package/template/.aioson/locales/en/agents/profiler-forge.md +5 -0
  161. package/template/.aioson/locales/en/agents/profiler-researcher.md +5 -0
  162. package/template/.aioson/locales/en/agents/qa.md +214 -0
  163. package/template/.aioson/locales/en/agents/setup.md +342 -0
  164. package/template/.aioson/locales/en/agents/squad.md +247 -0
  165. package/template/.aioson/locales/en/agents/ux-ui.md +320 -0
  166. package/template/.aioson/locales/es/agents/analyst.md +203 -0
  167. package/template/.aioson/locales/es/agents/architect.md +208 -0
  168. package/template/.aioson/locales/es/agents/dev.md +183 -0
  169. package/template/.aioson/locales/es/agents/discovery-design-doc.md +19 -0
  170. package/template/.aioson/locales/es/agents/genoma.md +102 -0
  171. package/template/.aioson/locales/es/agents/orchestrator.md +108 -0
  172. package/template/.aioson/locales/es/agents/pm.md +81 -0
  173. package/template/.aioson/locales/es/agents/product.md +310 -0
  174. package/template/.aioson/locales/es/agents/profiler-enricher.md +5 -0
  175. package/template/.aioson/locales/es/agents/profiler-forge.md +5 -0
  176. package/template/.aioson/locales/es/agents/profiler-researcher.md +5 -0
  177. package/template/.aioson/locales/es/agents/qa.md +163 -0
  178. package/template/.aioson/locales/es/agents/setup.md +347 -0
  179. package/template/.aioson/locales/es/agents/squad.md +247 -0
  180. package/template/.aioson/locales/es/agents/ux-ui.md +201 -0
  181. package/template/.aioson/locales/fr/agents/analyst.md +203 -0
  182. package/template/.aioson/locales/fr/agents/architect.md +208 -0
  183. package/template/.aioson/locales/fr/agents/dev.md +183 -0
  184. package/template/.aioson/locales/fr/agents/discovery-design-doc.md +19 -0
  185. package/template/.aioson/locales/fr/agents/genoma.md +102 -0
  186. package/template/.aioson/locales/fr/agents/orchestrator.md +108 -0
  187. package/template/.aioson/locales/fr/agents/pm.md +81 -0
  188. package/template/.aioson/locales/fr/agents/product.md +310 -0
  189. package/template/.aioson/locales/fr/agents/profiler-enricher.md +5 -0
  190. package/template/.aioson/locales/fr/agents/profiler-forge.md +5 -0
  191. package/template/.aioson/locales/fr/agents/profiler-researcher.md +5 -0
  192. package/template/.aioson/locales/fr/agents/qa.md +163 -0
  193. package/template/.aioson/locales/fr/agents/setup.md +347 -0
  194. package/template/.aioson/locales/fr/agents/squad.md +247 -0
  195. package/template/.aioson/locales/fr/agents/ux-ui.md +201 -0
  196. package/template/.aioson/locales/pt-BR/agents/analyst.md +217 -0
  197. package/template/.aioson/locales/pt-BR/agents/architect.md +213 -0
  198. package/template/.aioson/locales/pt-BR/agents/dev.md +198 -0
  199. package/template/.aioson/locales/pt-BR/agents/discovery-design-doc.md +198 -0
  200. package/template/.aioson/locales/pt-BR/agents/genoma.md +297 -0
  201. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +108 -0
  202. package/template/.aioson/locales/pt-BR/agents/pm.md +81 -0
  203. package/template/.aioson/locales/pt-BR/agents/product.md +316 -0
  204. package/template/.aioson/locales/pt-BR/agents/profiler-enricher.md +5 -0
  205. package/template/.aioson/locales/pt-BR/agents/profiler-forge.md +5 -0
  206. package/template/.aioson/locales/pt-BR/agents/profiler-researcher.md +5 -0
  207. package/template/.aioson/locales/pt-BR/agents/qa.md +217 -0
  208. package/template/.aioson/locales/pt-BR/agents/setup.md +371 -0
  209. package/template/.aioson/locales/pt-BR/agents/squad.md +772 -0
  210. package/template/.aioson/locales/pt-BR/agents/ux-ui.md +322 -0
  211. package/template/.aioson/mcp/servers.md +24 -0
  212. package/template/.aioson/profiler-reports/.gitkeep +1 -0
  213. package/template/.aioson/schemas/content-blueprint.schema.json +30 -0
  214. package/template/.aioson/schemas/genome-meta.schema.json +150 -0
  215. package/template/.aioson/schemas/genome.schema.json +115 -0
  216. package/template/.aioson/schemas/readiness.schema.json +27 -0
  217. package/template/.aioson/schemas/squad-blueprint.schema.json +172 -0
  218. package/template/.aioson/schemas/squad-manifest.schema.json +276 -0
  219. package/template/.aioson/skills/dynamic/README.md +30 -0
  220. package/template/.aioson/skills/dynamic/cardano-docs.md +16 -0
  221. package/template/.aioson/skills/dynamic/ethereum-docs.md +17 -0
  222. package/template/.aioson/skills/dynamic/flux-ui-docs.md +13 -0
  223. package/template/.aioson/skills/dynamic/laravel-docs.md +41 -0
  224. package/template/.aioson/skills/dynamic/npm-packages.md +16 -0
  225. package/template/.aioson/skills/dynamic/solana-docs.md +16 -0
  226. package/template/.aioson/skills/references/premium-command-center-ui/master-application-prompt.md +79 -0
  227. package/template/.aioson/skills/references/premium-command-center-ui/operational-ux-playbook.md +253 -0
  228. package/template/.aioson/skills/references/premium-command-center-ui/quality-validation-checklist.md +82 -0
  229. package/template/.aioson/skills/references/premium-command-center-ui/visual-system-and-component-patterns.md +270 -0
  230. package/template/.aioson/skills/static/django-patterns.md +342 -0
  231. package/template/.aioson/skills/static/fastapi-patterns.md +344 -0
  232. package/template/.aioson/skills/static/filament-patterns.md +267 -0
  233. package/template/.aioson/skills/static/flux-ui-components.md +262 -0
  234. package/template/.aioson/skills/static/git-conventions.md +227 -0
  235. package/template/.aioson/skills/static/interface-design.md +372 -0
  236. package/template/.aioson/skills/static/jetstream-setup.md +200 -0
  237. package/template/.aioson/skills/static/laravel-conventions.md +491 -0
  238. package/template/.aioson/skills/static/nextjs-patterns.md +321 -0
  239. package/template/.aioson/skills/static/node-express-patterns.md +317 -0
  240. package/template/.aioson/skills/static/node-typescript-patterns.md +282 -0
  241. package/template/.aioson/skills/static/premium-command-center-ui.md +190 -0
  242. package/template/.aioson/skills/static/rails-conventions.md +307 -0
  243. package/template/.aioson/skills/static/react-motion-patterns.md +577 -0
  244. package/template/.aioson/skills/static/static-html-patterns.md +1935 -0
  245. package/template/.aioson/skills/static/tall-stack-patterns.md +286 -0
  246. package/template/.aioson/skills/static/ui-ux-modern.md +75 -0
  247. package/template/.aioson/skills/static/web3-cardano-patterns.md +337 -0
  248. package/template/.aioson/skills/static/web3-ethereum-patterns.md +310 -0
  249. package/template/.aioson/skills/static/web3-security-checklist.md +284 -0
  250. package/template/.aioson/skills/static/web3-solana-patterns.md +324 -0
  251. package/template/.aioson/squads/.artisan/.gitkeep +0 -0
  252. package/template/.aioson/squads/.gitkeep +0 -0
  253. package/template/.aioson/squads/memory.md +5 -0
  254. package/template/.aioson/tasks/squad-analyze.md +83 -0
  255. package/template/.aioson/tasks/squad-create.md +99 -0
  256. package/template/.aioson/tasks/squad-design.md +100 -0
  257. package/template/.aioson/tasks/squad-export.md +20 -0
  258. package/template/.aioson/tasks/squad-extend.md +68 -0
  259. package/template/.aioson/tasks/squad-pipeline.md +122 -0
  260. package/template/.aioson/tasks/squad-repair.md +85 -0
  261. package/template/.aioson/tasks/squad-validate.md +58 -0
  262. package/template/.aioson/templates/squads/content-basic/template.json +21 -0
  263. package/template/.aioson/templates/squads/media-channel/template.json +24 -0
  264. package/template/.aioson/templates/squads/research-analysis/template.json +22 -0
  265. package/template/.aioson/templates/squads/software-delivery/template.json +21 -0
  266. package/template/.claude/commands/aioson/analyst.md +5 -0
  267. package/template/.claude/commands/aioson/architect.md +5 -0
  268. package/template/.claude/commands/aioson/dev.md +5 -0
  269. package/template/.claude/commands/aioson/orchestrator.md +5 -0
  270. package/template/.claude/commands/aioson/pm.md +5 -0
  271. package/template/.claude/commands/aioson/qa.md +5 -0
  272. package/template/.claude/commands/aioson/setup.md +5 -0
  273. package/template/.claude/commands/aioson/ux-ui.md +5 -0
  274. package/template/.gemini/GEMINI.md +10 -0
  275. package/template/.gemini/commands/aios-analyst.toml +4 -0
  276. package/template/.gemini/commands/aios-architect.toml +7 -0
  277. package/template/.gemini/commands/aios-dev.toml +8 -0
  278. package/template/.gemini/commands/aios-discovery-design-doc.toml +4 -0
  279. package/template/.gemini/commands/aios-orchestrator.toml +8 -0
  280. package/template/.gemini/commands/aios-pm.toml +8 -0
  281. package/template/.gemini/commands/aios-product.toml +4 -0
  282. package/template/.gemini/commands/aios-qa.toml +6 -0
  283. package/template/.gemini/commands/aios-setup.toml +3 -0
  284. package/template/.gemini/commands/aios-ux-ui.toml +8 -0
  285. package/template/AGENTS.md +67 -0
  286. package/template/CLAUDE.md +31 -0
  287. package/template/OPENCODE.md +24 -0
  288. package/template/aioson-models.json +40 -0
@@ -0,0 +1,52 @@
1
+ # i18n Guide
2
+
3
+ AIOSON CLI supports localization through message dictionaries.
4
+
5
+ ## How it works
6
+ - Dictionaries are stored in `src/i18n/messages/`.
7
+ - `src/i18n/index.js` resolves locale and fallback behavior.
8
+ - Commands use translation keys instead of hardcoded strings.
9
+ - Agent templates read `conversation_language` from `.aioson/context/project.context.md` and should use it for interaction/output language.
10
+ - Localized agent packs live in `.aioson/locales/<locale>/agents/` and can be applied to active prompts with `aioson locale:apply`.
11
+
12
+ ## Runtime selection
13
+ - CLI option: `--locale=en`
14
+ - Env var: `AIOS_LITE_LOCALE=en`
15
+ - Default: `en`
16
+
17
+ Built-in locales:
18
+ - `en`
19
+ - `pt-BR`
20
+ - `es`
21
+ - `fr`
22
+
23
+ Built-in localized agent packs:
24
+ - `en`
25
+ - `pt-BR`
26
+ - `es`
27
+ - `fr`
28
+
29
+ Resolution behavior:
30
+ - `pt-BR`, `pt_br`, and `pt` resolve to `pt-BR` dictionary.
31
+ - `es-MX` and other `es-*` variants resolve to `es`.
32
+ - `fr-CA` and other `fr-*` variants resolve to `fr`.
33
+ - Unknown locales fall back to `en`.
34
+
35
+ ## Create a locale scaffold
36
+ ```bash
37
+ aioson i18n:add fr
38
+ ```
39
+
40
+ ## Apply localized agent prompts
41
+ ```bash
42
+ # Use language from project.context.md
43
+ aioson locale:apply
44
+
45
+ # Or force a locale
46
+ aioson locale:apply --lang=pt-BR
47
+ ```
48
+
49
+ ## Add a new locale
50
+ 1. Run `aioson i18n:add <locale>`.
51
+ 2. Replace English strings in `src/i18n/messages/<locale>.js`.
52
+ 3. Add tests for locale resolution and fallback behavior.
@@ -0,0 +1,41 @@
1
+ # JSON Schemas
2
+
3
+ AIOSON exposes machine-readable JSON output on selected commands.
4
+
5
+ This folder provides formal schemas for automation:
6
+ - `docs/en/schemas/index.json`
7
+ - `docs/en/schemas/*.schema.json`
8
+
9
+ ## Commands covered
10
+ - `aioson init <project-name> --json`
11
+ - `aioson install [path] --json`
12
+ - `aioson update [path] --json`
13
+ - `aioson info --json`
14
+ - `aioson agents [path] --json`
15
+ - `aioson agent:prompt <agent> [path] --json`
16
+ - `aioson locale:apply [path] --json`
17
+ - `aioson setup:context [path] --defaults --json`
18
+ - `aioson i18n:add <locale> --dry-run --json`
19
+ - `aioson doctor --json`
20
+ - `aioson context:validate --json`
21
+ - `aioson test:smoke --json`
22
+ - `aioson mcp:init --json`
23
+ - `aioson mcp:doctor --json`
24
+ - `aioson test:package --json`
25
+ - `aioson workflow:plan --json`
26
+ - `aioson parallel:init --json`
27
+ - `aioson parallel:assign --json`
28
+ - `aioson parallel:status --json`
29
+ - `aioson parallel:doctor --json`
30
+ - Generic CLI JSON errors (`unknown_command`, `command_error`)
31
+
32
+ ## Compatibility policy
33
+ - Keys listed in each schema `required` array are stable for automation.
34
+ - New optional keys may be added in future releases.
35
+ - Removing or renaming required keys is a breaking change and must be called out in release notes.
36
+
37
+ ## Suggested validation flow
38
+ 1. Load schema from `docs/en/schemas/index.json`.
39
+ 2. Validate command output against the corresponding schema.
40
+ 3. Treat missing required keys as contract breakage.
41
+ 4. Ignore unknown keys unless your integration explicitly disallows them.
package/docs/en/mcp.md ADDED
@@ -0,0 +1,56 @@
1
+ # MCP Guide
2
+
3
+ AIOSON provides lightweight MCP planning and validation for multi-tool usage.
4
+
5
+ ## Commands
6
+
7
+ ### `mcp:init`
8
+ Generate a local MCP plan and tool presets:
9
+
10
+ ```bash
11
+ aioson mcp:init
12
+ aioson mcp:init --dry-run
13
+ aioson mcp:init --tool=codex
14
+ ```
15
+
16
+ Outputs:
17
+ - `.aioson/mcp/servers.local.json`
18
+ - `.aioson/mcp/presets/<tool>.json`
19
+
20
+ Preset strategy:
21
+ - Context7 and Database presets are generated in a remote-endpoint mode using `mcp-remote`.
22
+ - This removes generic `<...>` placeholders and gives executable command templates.
23
+
24
+ ### `mcp:doctor`
25
+ Validate MCP readiness:
26
+
27
+ ```bash
28
+ aioson mcp:doctor
29
+ aioson mcp:doctor --strict-env
30
+ aioson mcp:doctor --json
31
+ ```
32
+
33
+ Checks include:
34
+ - `servers.local.json` existence and JSON validity
35
+ - Core server baseline (`filesystem`, `context7`)
36
+ - Preset coverage (`claude`, `codex`, `gemini`, `opencode`)
37
+ - Required environment variables from enabled servers
38
+ - Context compatibility for database and Web3 (`chain-rpc`)
39
+
40
+ ## Strict environment mode
41
+ - Default mode reports missing env vars as warnings.
42
+ - `--strict-env` upgrades missing env vars to failures.
43
+
44
+ Use strict mode in CI when you want runtime-ready MCP validation gates.
45
+
46
+ ## Required environment variables (common)
47
+ - `CONTEXT7_MCP_URL` for Context7 endpoint
48
+ - `DATABASE_MCP_URL` when database MCP is enabled by project stack
49
+ - `RPC_URL`, `CHAIN_ID`, `PRIVATE_KEY` for Web3 `chain-rpc` profile
50
+
51
+ Example:
52
+
53
+ ```bash
54
+ export CONTEXT7_MCP_URL="https://your-context7-endpoint"
55
+ export DATABASE_MCP_URL="https://your-database-mcp-endpoint"
56
+ ```
@@ -0,0 +1,82 @@
1
+ # Parallel Orchestration Guide
2
+
3
+ Use `parallel:init` to bootstrap the parallel context files used by `@orchestrator`.
4
+
5
+ ## Command
6
+
7
+ ```bash
8
+ aioson parallel:init [path] [--workers=2..6] [--force] [--dry-run] [--json]
9
+ ```
10
+
11
+ Aliases:
12
+ - `aioson orchestrator:init`
13
+ - `aioson parallel-init`
14
+
15
+ ## Behavior
16
+ - Requires parseable `.aioson/context/project.context.md`.
17
+ - Only allows `classification=MEDIUM` by default.
18
+ - Use `--force` to initialize for other classifications.
19
+ - Generates:
20
+ - `.aioson/context/parallel/shared-decisions.md`
21
+ - `.aioson/context/parallel/agent-N.status.md`
22
+
23
+ ## Prerequisite checks
24
+ The command reports whether these files are present:
25
+ - `.aioson/context/discovery.md`
26
+ - `.aioson/context/architecture.md`
27
+ - `.aioson/context/prd.md`
28
+
29
+ Missing prerequisites are reported but do not block file generation.
30
+
31
+ ## Scope assignment
32
+
33
+ ```bash
34
+ aioson parallel:assign
35
+ aioson parallel:assign --source=architecture --workers=3
36
+ aioson parallel:assign --source=prd
37
+ aioson parallel:assign --dry-run
38
+ ```
39
+
40
+ Aliases:
41
+ - `aioson orchestrator:assign`
42
+ - `aioson parallel-assign`
43
+
44
+ Behavior:
45
+ - Reads scope candidates from `prd`, `architecture`, or `discovery` context docs.
46
+ - Distributes scope items across lane files in round-robin mode.
47
+ - Updates `## Scope` section and `updated_at` in each lane file.
48
+ - Appends a decision-log entry to `shared-decisions.md` when present.
49
+
50
+ ## Status overview
51
+
52
+ ```bash
53
+ aioson parallel:status
54
+ aioson parallel:status --json
55
+ ```
56
+
57
+ Aliases:
58
+ - `aioson orchestrator:status`
59
+ - `aioson parallel-status`
60
+
61
+ Behavior:
62
+ - Reads all `agent-N.status.md` lane files under `.aioson/context/parallel`.
63
+ - Aggregates lane status counts, scope counts, blocker counts, and deliverable progress.
64
+ - Includes shared decision log entry count from `shared-decisions.md` when present.
65
+ - Returns a structured machine-readable report with `--json`.
66
+
67
+ ## Diagnose and repair
68
+
69
+ ```bash
70
+ aioson parallel:doctor
71
+ aioson parallel:doctor --workers=3
72
+ aioson parallel:doctor --fix
73
+ aioson parallel:doctor --fix --dry-run
74
+ ```
75
+
76
+ Aliases:
77
+ - `aioson orchestrator:doctor`
78
+ - `aioson parallel-doctor`
79
+
80
+ Notes:
81
+ - `--fix` can recreate missing `shared-decisions.md` and missing lane files.
82
+ - For non-`MEDIUM` projects, `--fix` requires `--force`.
@@ -0,0 +1,339 @@
1
+ # QA Browser Testing Guide
2
+
3
+ AIOSON includes a built-in browser QA engine powered by [Playwright](https://playwright.dev). It opens a real Chrome browser, runs automated tests across multiple personas, and generates a report in the same format as the `@qa` agent — so both can be used together.
4
+
5
+ No LLM required. No separate tool to install beyond Playwright itself.
6
+
7
+ ---
8
+
9
+ ## Prerequisites
10
+
11
+ ```bash
12
+ npm install -g playwright
13
+ npx playwright install chromium
14
+ ```
15
+
16
+ Verify everything is ready:
17
+
18
+ ```bash
19
+ aioson qa:doctor
20
+ ```
21
+
22
+ ---
23
+
24
+ ## Quick start
25
+
26
+ ```bash
27
+ # 1. Generate config (reads prd.md and discovery.md automatically)
28
+ aioson qa:init --url=http://localhost:3000
29
+
30
+ # 2. Start your application, then run
31
+ aioson qa:run
32
+
33
+ # 3. View the report
34
+ aioson qa:report
35
+ ```
36
+
37
+ Output files written to the project root:
38
+ - `aios-qa-report.md` — full report (same severity format as `@qa`)
39
+ - `aios-qa-report.json` — machine-readable for CI/CD
40
+ - `aios-qa-screenshots/` — screenshot evidence per finding
41
+
42
+ ---
43
+
44
+ ## Commands
45
+
46
+ ### `qa:init`
47
+
48
+ Generates `aios-qa.config.json` from your project context.
49
+
50
+ ```bash
51
+ aioson qa:init [path] [--url=<app-url>] [--dry-run] [--json]
52
+ ```
53
+
54
+ If `.aioson/context/project.context.md` exists, the project name and language are read automatically. If `prd.md` exists, acceptance criteria are extracted and added as test scenarios.
55
+
56
+ **Flags:**
57
+
58
+ | Flag | Description |
59
+ |------|-------------|
60
+ | `--url=<url>` | Target application URL (default: `http://localhost:3000`) |
61
+ | `--dry-run` | Preview config without writing |
62
+ | `--json` | Output result as JSON |
63
+
64
+ **Example output — `aios-qa.config.json`:**
65
+
66
+ ```json
67
+ {
68
+ "project_name": "MyApp",
69
+ "url": "http://localhost:3000",
70
+ "language": "en",
71
+ "personas": ["naive", "hacker", "power", "mobile"],
72
+ "security_probes": [
73
+ "exposed_env_vars", "xss_inputs", "open_redirect",
74
+ "sensitive_files", "idor_probe", "console_leaks",
75
+ "debug_routes", "mixed_content", "sensitive_get_params"
76
+ ],
77
+ "performance_thresholds": {
78
+ "page_load_ms": 3000,
79
+ "ttfb_ms": 800,
80
+ "requests_max": 80,
81
+ "transfer_max_kb": 2048
82
+ },
83
+ "accessibility": true,
84
+ "network_capture": true,
85
+ "screenshot_on_finding": true,
86
+ "scenarios": []
87
+ }
88
+ ```
89
+
90
+ ---
91
+
92
+ ### `qa:doctor`
93
+
94
+ Checks all prerequisites before running tests.
95
+
96
+ ```bash
97
+ aioson qa:doctor [path] [--json]
98
+ ```
99
+
100
+ **Checks performed:**
101
+
102
+ | Check | Severity |
103
+ |-------|----------|
104
+ | Playwright package installed | Error |
105
+ | Chromium binary found | Error |
106
+ | `aios-qa.config.json` exists and is valid JSON | Error |
107
+ | Target URL is reachable | Warning |
108
+ | `project.context.md` present (enriches tests) | Warning |
109
+ | `prd.md` present (enables AC coverage) | Warning |
110
+
111
+ **Example:**
112
+
113
+ ```
114
+ [OK] playwright.installed - Playwright is installed.
115
+ [OK] chromium.binary - Chromium browser binary found.
116
+ [OK] config.exists - aios-qa.config.json found and valid.
117
+ [OK] url.reachable - Target URL is reachable (http://localhost:3000).
118
+ [OK] context.exists - project.context.md found.
119
+ [WARN] prd.md — prd.md not found — AC coverage mapping will be skipped.
120
+ Summary: 5 passed, 0 failed, 1 warnings.
121
+ ```
122
+
123
+ ---
124
+
125
+ ### `qa:run`
126
+
127
+ Runs a full browser QA session: 4 personas, security probes, accessibility audit, performance capture, and AC coverage.
128
+
129
+ ```bash
130
+ aioson qa:run [path] [--url=<app-url>] [--persona=naive|hacker|power|mobile] [--headed] [--html] [--json]
131
+ ```
132
+
133
+ **Flags:**
134
+
135
+ | Flag | Description |
136
+ |------|-------------|
137
+ | `--url=<url>` | Override URL from config |
138
+ | `--persona=<name>` | Run only one persona |
139
+ | `--headed` | Show browser window (useful for debugging) |
140
+ | `--html` | Also generate an HTML report in `reports/<run-id>/index.html` |
141
+ | `--json` | Output result as JSON |
142
+
143
+ #### Personas
144
+
145
+ **`naive` — Clumsy user**
146
+ - Submits all forms empty → detects unhandled 5xx
147
+ - Types 10,000-character strings → detects missing length validation
148
+ - Clicks elements with `cursor:pointer` that have no handler → detects ghost clickables
149
+
150
+ **`hacker` — Attacker mindset**
151
+ - Scans `window.__NEXT_DATA__`, `window.__env__`, `window.ENV`, `window.CONFIG` for exposed secrets (OpenAI, Stripe, AWS, Google, GitHub, Slack patterns)
152
+ - Scans rendered HTML source for the same patterns
153
+ - Tries 10 sensitive file URLs: `/.env`, `/.env.local`, `/.env.production`, `/.git/config`, `/config.js`, and more
154
+ - Injects XSS payload in all text inputs, detects execution
155
+ - Probes 8 redirect parameters for open redirect
156
+ - Types SQL injection payload, detects DB error messages in response
157
+ - Tests IDOR: increments/decrements numeric IDs in URL by ±1 and +9999
158
+ - Checks 8 debug/admin routes for unauthenticated access
159
+
160
+ **`power` — Keyboard-only, boundary values**
161
+ - Tabs through all interactive elements, detects missing visible focus indicator
162
+ - Enters boundary values in number/range inputs: `-999999999`, `0`, `999999999999999`
163
+ - Enters edge dates: `1900-01-01`, `9999-12-31`, `2000-02-29`
164
+
165
+ **`mobile` — iPhone SE (375×667)**
166
+ - Detects horizontal overflow (content wider than viewport)
167
+ - Flags touch targets smaller than 44×44px (WCAG 2.5.5)
168
+ - Flags text smaller than 12px
169
+
170
+ #### Security probes (post-persona, network layer)
171
+ - Console errors containing stack traces → Medium finding
172
+ - Sensitive parameter names (`token`, `password`, `api_key`) in GET URLs → High finding
173
+ - HTTP requests from HTTPS page (mixed content) → Medium finding
174
+
175
+ #### Accessibility audit
176
+ - Images missing `alt` attribute (WCAG 1.1.1)
177
+ - Form inputs with no accessible label (WCAG 1.3.1)
178
+ - Buttons with no accessible name (WCAG 4.1.2)
179
+ - Heading levels skipped (e.g. `h1` → `h3`)
180
+ - `<html>` missing `lang` attribute (WCAG 3.1.1)
181
+
182
+ #### Performance capture
183
+ | Metric | Default threshold |
184
+ |--------|------------------|
185
+ | Page load complete | 3000ms |
186
+ | Time to First Byte (TTFB) | 800ms |
187
+ | Network request count | 80 |
188
+ | Total transfer size | 2048KB |
189
+
190
+ Thresholds are configurable in `aios-qa.config.json` under `performance_thresholds`.
191
+
192
+ #### AC coverage
193
+ If `prd.md` exists, acceptance criteria are extracted from the table and 🔴 must-have items. For each AC, a screenshot is taken of the current page state and saved to `aios-qa-screenshots/`.
194
+
195
+ ---
196
+
197
+ ### `qa:scan`
198
+
199
+ Autonomous crawl mode. No pre-defined scenarios needed — the tool discovers all routes and probes each one.
200
+
201
+ ```bash
202
+ aioson qa:scan [path] [--url=<app-url>] [--depth=3] [--max-pages=50] [--headed] [--html] [--json]
203
+ ```
204
+
205
+ **Flags:**
206
+
207
+ | Flag | Default | Description |
208
+ |------|---------|-------------|
209
+ | `--url=<url>` | from config | Override base URL |
210
+ | `--depth=<n>` | `3` | Max crawl depth from base URL |
211
+ | `--max-pages=<n>` | `50` | Max pages to visit |
212
+ | `--headed` | false | Show browser window |
213
+ | `--html` | false | Also generate an HTML report in `reports/<run-id>/index.html` |
214
+ | `--json` | false | Output result as JSON |
215
+
216
+ **What it does on each route:**
217
+ - Scans HTML source and window globals for exposed secrets
218
+ - Checks for stack trace leakage in console errors
219
+ - Accessibility quick check (images alt, html lang)
220
+ - Horizontal overflow detection
221
+
222
+ Sensitive files (`/.env`, `/.git/config`, etc.) are probed once per domain at the start of the scan.
223
+
224
+ ---
225
+
226
+ ### `qa:report`
227
+
228
+ Displays the last generated report.
229
+
230
+ ```bash
231
+ aioson qa:report [path] [--html] [--json]
232
+ ```
233
+
234
+ | Flag | Description |
235
+ |------|-------------|
236
+ | `--html` | Regenerate an HTML report from the existing `aios-qa-report.json` |
237
+ | `--json` | Return the parsed `aios-qa-report.json` as JSON |
238
+
239
+ In default mode, prints `aios-qa-report.md` to the terminal.
240
+
241
+ ---
242
+
243
+ ## Integration with @qa agent
244
+
245
+ When the `@qa` agent runs, it automatically checks for `aios-qa-report.md` in the project root. If found, it:
246
+
247
+ 1. Maps browser findings to AC status — any AC that failed in the browser is marked **Missing**
248
+ 2. Promotes severity — if both static review and browser test flag the same issue, severity goes up one level
249
+ 3. Adds a **Browser findings (aios-qa)** subsection to its report
250
+ 4. Tags ACs that passed in the browser with `[browser-validated]`
251
+
252
+ This means running `aioson qa:run` before `@qa` gives you a richer, more complete QA report with zero extra effort.
253
+
254
+ ---
255
+
256
+ ## Typical workflow
257
+
258
+ Two terminals, running in parallel:
259
+
260
+ ```bash
261
+ # Terminal 1 — aioson agents
262
+ @setup → @product → @analyst → @architect → @dev
263
+
264
+ # Terminal 2 — browser QA (while app is running)
265
+ aioson qa:init --url=http://localhost:3000
266
+ aioson qa:run
267
+
268
+ # Terminal 1 — continues with merged findings
269
+ @qa # reads aios-qa-report.md automatically
270
+ ```
271
+
272
+ ---
273
+
274
+ ## HTML reports
275
+
276
+ Add `--html` to `qa:run` or `qa:scan` to generate a self-contained visual report alongside the default MD/JSON outputs.
277
+
278
+ ```bash
279
+ aioson qa:run --html
280
+ aioson qa:scan --html
281
+ ```
282
+
283
+ Or generate HTML retroactively from an existing run:
284
+
285
+ ```bash
286
+ aioson qa:report --html
287
+ ```
288
+
289
+ **Output structure:**
290
+
291
+ ```
292
+ reports/
293
+ index.html ← historical index of all runs
294
+ 2026-03-04_15-30-00_run/
295
+ index.html ← full report (self-contained)
296
+ meta.json ← run metadata for the index
297
+ 2026-03-04_14-00-00_scan/
298
+ index.html
299
+ meta.json
300
+ ```
301
+
302
+ **Features:**
303
+ - Screenshots embedded as base64 — no external file references, fully portable for sharing
304
+ - Severity filter buttons (All / Critical / High / Medium / Low)
305
+ - Collapsible finding cards with location, risk, fix, and screenshot
306
+ - Performance cards with colour-coded thresholds
307
+ - AC coverage table (when `prd.md` was used)
308
+ - Routes discovered list (scan mode)
309
+ - Click-to-zoom screenshot lightbox
310
+ - `reports/index.html` auto-updated after each run with a sortable history table
311
+
312
+ The MD and JSON outputs are never modified — `--html` is purely additive.
313
+
314
+ ---
315
+
316
+ ## CI/CD integration
317
+
318
+ `aios-qa-report.json` is written alongside the markdown report and is suitable for CI pipelines:
319
+
320
+ ```bash
321
+ aioson qa:run --json | jq '.summary'
322
+ # { "critical": 0, "high": 1, "medium": 3, "low": 2 }
323
+
324
+ # Fail CI if any critical findings
325
+ aioson qa:run --json | jq 'if .summary.critical > 0 then error else . end'
326
+ ```
327
+
328
+ For headless environments, Playwright runs in headless mode by default (no `--headed` flag needed in CI).
329
+
330
+ ---
331
+
332
+ ## Report severity reference
333
+
334
+ | Severity | Examples |
335
+ |----------|---------|
336
+ | **Critical** | Exposed API key, XSS executed, sensitive file accessible, SQL error exposed |
337
+ | **High** | IDOR potential, open redirect, 5xx on empty form, sensitive param in GET URL |
338
+ | **Medium** | Missing auth on debug route, console stack traces, TTFB > 800ms, accessibility violations |
339
+ | **Low** | Ghost clickable elements, touch targets < 44px, fonts < 12px, missing lang attribute |
@@ -0,0 +1,22 @@
1
+ # Release Tag Flow
2
+
3
+ ## Preconditions
4
+ - Git repository initialized and connected to GitHub.
5
+ - `NPM_TOKEN` configured in repository secrets.
6
+ - `main` branch green in CI.
7
+
8
+ ## Steps
9
+ 1. Update `CHANGELOG.md` and `package.json` version.
10
+ 2. Run local validation:
11
+ - `npm run ci`
12
+ 3. Commit release changes.
13
+ 4. Create tag:
14
+ - `git tag vX.Y.Z`
15
+ 5. Push branch and tag:
16
+ - `git push origin main --tags`
17
+ 6. Watch `Release` workflow in GitHub Actions.
18
+ 7. Publish GitHub release using `.github/release-notes-template.md`.
19
+
20
+ ## Verify publication
21
+ - `npm view @jaimevalasek/aioson version`
22
+ - `npx @jaimevalasek/aioson@latest info`
@@ -0,0 +1,41 @@
1
+ # Release Notes Template
2
+
3
+ ## AIOSON vX.Y.Z
4
+
5
+ ### Highlights
6
+ - [short summary 1]
7
+ - [short summary 2]
8
+ - [short summary 3]
9
+
10
+ ### Added
11
+ - [feature]
12
+ - [feature]
13
+
14
+ ### Changed
15
+ - [change]
16
+ - [change]
17
+
18
+ ### Fixed
19
+ - [bug fix]
20
+ - [bug fix]
21
+
22
+ ### CLI
23
+ - Commands impacted: `[list]`
24
+ - Breaking changes: `yes/no` (if yes, describe migration)
25
+
26
+ ### i18n
27
+ - New locale scaffolds or translation keys:
28
+ - [item]
29
+
30
+ ### Upgrade notes
31
+ 1. Update package:
32
+ - `npx @jaimevalasek/aioson@latest update`
33
+ 2. Run health check:
34
+ - `aioson doctor`
35
+ 3. Verify local customizations in `.aioson/backups/` if applicable.
36
+
37
+ ### Checks
38
+ - [ ] Lint passed
39
+ - [ ] Tests passed
40
+ - [ ] Smoke test passed
41
+
@@ -0,0 +1,28 @@
1
+ # Release Guide
2
+
3
+ ## CI
4
+ - Workflow: `.github/workflows/ci.yml`
5
+ - Triggers: push to `main`, pull requests
6
+ - Steps: install, lint, test, `npm pack --dry-run`
7
+
8
+ ## npm publish
9
+ - Workflow: `.github/workflows/release.yml`
10
+ - Triggers: `v*` git tags or manual dispatch
11
+ - Required secret: `NPM_TOKEN`
12
+
13
+ ## npm package name
14
+ The published package name is `@jaimevalasek/aioson`.
15
+
16
+ The unscoped name `aioson` was rejected by npm because it is considered too similar to an existing package, so releases should use the scoped package.
17
+
18
+ ## Recommended release flow
19
+ 1. Update `CHANGELOG.md`.
20
+ 2. Bump version in `package.json`.
21
+ 3. Commit and push to `main`.
22
+ 4. Create and push a tag like `v0.1.1`.
23
+ 5. Verify publish logs in GitHub Actions or in the local npm publish output.
24
+
25
+ ## Templates
26
+ - Release notes template: `.github/release-notes-template.md`
27
+ - Extended release notes guide: `docs/en/release-notes-template.md`
28
+ - Tag flow checklist: `docs/en/release-flow.md`
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://aiosforge.dev/schemas/agent-prompt.schema.json",
4
+ "title": "AIOSON agent:prompt --json output",
5
+ "type": "object",
6
+ "required": ["ok", "targetDir", "agent", "tool", "locale", "instructionPath", "prompt"],
7
+ "properties": {
8
+ "ok": { "type": "boolean", "const": true },
9
+ "targetDir": { "type": "string" },
10
+ "agent": { "type": "string" },
11
+ "tool": { "type": "string" },
12
+ "locale": { "type": "string" },
13
+ "instructionPath": { "type": "string" },
14
+ "prompt": { "type": "string" }
15
+ },
16
+ "additionalProperties": true
17
+ }