@jaimevalasek/aioson 1.8.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +595 -595
- package/CODE_OF_CONDUCT.md +12 -12
- package/CONTRIBUTING.md +13 -13
- package/LICENSE +661 -661
- package/README.md +919 -919
- package/bin/aioson.js +4 -4
- package/docs/design-previews/aurora-command-ui-website.html +884 -884
- package/docs/design-previews/aurora-command-ui.html +682 -682
- package/docs/design-previews/bold-editorial-ui-website.html +658 -658
- package/docs/design-previews/bold-editorial-ui.html +717 -717
- package/docs/design-previews/clean-saas-ui-website.html +1202 -1202
- package/docs/design-previews/clean-saas-ui.html +549 -549
- package/docs/design-previews/cognitive-core-ui-website.html +1009 -1009
- package/docs/design-previews/cognitive-core-ui.html +463 -463
- package/docs/design-previews/glassmorphism-ui-website.html +572 -572
- package/docs/design-previews/glassmorphism-ui.html +886 -886
- package/docs/design-previews/index.html +699 -699
- package/docs/design-previews/interface-design-website.html +1187 -1187
- package/docs/design-previews/interface-design.html +513 -513
- package/docs/design-previews/neo-brutalist-ui-website.html +621 -621
- package/docs/design-previews/neo-brutalist-ui.html +797 -797
- package/docs/design-previews/premium-command-center-ui-website.html +1217 -1217
- package/docs/design-previews/premium-command-center-ui.html +552 -552
- package/docs/design-previews/pt.squarespace.com-homepage.html +889 -889
- package/docs/design-previews/warm-craft-ui-website.html +684 -684
- package/docs/design-previews/warm-craft-ui.html +739 -739
- package/docs/en/1-understand/ecosystem-map.md +228 -0
- package/docs/en/1-understand/glossary.md +288 -0
- package/docs/en/1-understand/what-is-aioson.md +94 -0
- package/docs/en/1-understand/why-it-exists.md +106 -0
- package/docs/en/2-start/existing-project.md +246 -0
- package/docs/en/2-start/first-project.md +307 -0
- package/docs/en/2-start/initial-decisions.md +223 -0
- package/docs/en/3-recipes/README.md +28 -0
- package/docs/en/3-recipes/continuity-between-sessions.md +303 -0
- package/docs/en/3-recipes/from-idea-to-prd-via-briefing.md +235 -0
- package/docs/en/3-recipes/full-feature-with-sheldon.md +338 -0
- package/docs/en/4-agents/README.md +56 -0
- package/docs/en/5-reference/README.md +60 -0
- package/docs/en/{cli-reference.md → 5-reference/cli-reference.md} +639 -464
- package/docs/en/{i18n.md → 5-reference/i18n.md} +52 -52
- package/docs/en/{json-schemas.md → 5-reference/json-schemas.md} +41 -41
- package/docs/en/{mcp.md → 5-reference/mcp.md} +56 -56
- package/docs/en/{parallel.md → 5-reference/parallel.md} +82 -82
- package/docs/en/{qa-browser.md → 5-reference/qa-browser.md} +339 -339
- package/docs/en/{release-flow.md → 5-reference/release-flow.md} +22 -22
- package/docs/en/{release-notes-template.md → 5-reference/release-notes-template.md} +41 -41
- package/docs/en/{release.md → 5-reference/release.md} +28 -28
- package/docs/en/{schemas → 5-reference/schemas}/agent-prompt.schema.json +17 -17
- package/docs/en/{schemas → 5-reference/schemas}/agents.schema.json +32 -32
- package/docs/en/{schemas → 5-reference/schemas}/context-validate.schema.json +36 -36
- package/docs/en/{schemas → 5-reference/schemas}/doctor.schema.json +89 -89
- package/docs/en/{schemas → 5-reference/schemas}/error.schema.json +24 -24
- package/docs/en/{schemas → 5-reference/schemas}/i18n-add.schema.json +15 -15
- package/docs/en/{schemas → 5-reference/schemas}/index.json +126 -126
- package/docs/en/{schemas → 5-reference/schemas}/info.schema.json +39 -39
- package/docs/en/{schemas → 5-reference/schemas}/init.schema.json +48 -48
- package/docs/en/{schemas → 5-reference/schemas}/install.schema.json +60 -60
- package/docs/en/{schemas → 5-reference/schemas}/locale-apply.schema.json +30 -30
- package/docs/en/{schemas → 5-reference/schemas}/mcp-doctor.schema.json +95 -95
- package/docs/en/{schemas → 5-reference/schemas}/mcp-init.schema.json +122 -122
- package/docs/en/{schemas → 5-reference/schemas}/package-test.schema.json +24 -24
- package/docs/en/{schemas → 5-reference/schemas}/parallel-assign.schema.json +66 -66
- package/docs/en/{schemas → 5-reference/schemas}/parallel-doctor.schema.json +122 -122
- package/docs/en/{schemas → 5-reference/schemas}/parallel-guard.schema.json +63 -63
- package/docs/en/{schemas → 5-reference/schemas}/parallel-init.schema.json +53 -53
- package/docs/en/{schemas → 5-reference/schemas}/parallel-merge.schema.json +84 -84
- package/docs/en/{schemas → 5-reference/schemas}/parallel-status.schema.json +184 -184
- package/docs/en/{schemas → 5-reference/schemas}/setup-context.schema.json +39 -39
- package/docs/en/{schemas → 5-reference/schemas}/smoke.schema.json +23 -23
- package/docs/en/{schemas → 5-reference/schemas}/update.schema.json +48 -48
- package/docs/en/{schemas → 5-reference/schemas}/workflow-plan.schema.json +30 -30
- package/docs/en/{squad-dashboard.md → 5-reference/squad-dashboard.md} +372 -372
- package/docs/en/{web3.md → 5-reference/web3.md} +54 -54
- package/docs/en/README.md +115 -0
- package/docs/en/active-learning-loop/README.md +117 -0
- package/docs/en/active-learning-loop/active-learning-loop.md +117 -0
- package/docs/en/active-learning-loop/cli-commands.md +320 -0
- package/docs/en/active-learning-loop/diagrams.md +225 -0
- package/docs/en/active-learning-loop/doctor-checks.md +151 -0
- package/docs/en/active-learning-loop/how-to-use.md +313 -0
- package/docs/en/active-learning-loop/troubleshooting.md +283 -0
- package/docs/en/deyvin-subtask-scout/README.md +109 -0
- package/docs/en/deyvin-subtask-scout/cli-commands.md +248 -0
- package/docs/en/deyvin-subtask-scout/diagrams.md +124 -0
- package/docs/en/deyvin-subtask-scout/how-to-use.md +221 -0
- package/docs/en/deyvin-subtask-scout/sub-task-scout.md +115 -0
- package/docs/en/deyvin-subtask-scout/troubleshooting.md +184 -0
- package/docs/integrations/apps-publish-marketplace.md +94 -94
- package/docs/integrations/sdlc-genius-boundary.md +76 -76
- package/docs/integrations/sdlc-genius-eval-matrix.md +75 -75
- package/docs/integrations/sdlc-genius-install-checklist.md +93 -93
- package/docs/integrations/sdlc-genius-review-samples.md +86 -86
- package/docs/openclaw-bridge.md +308 -308
- package/docs/pt/1-entender/glossario.md +288 -0
- package/docs/pt/1-entender/mapa-do-ecossistema.md +228 -0
- package/docs/pt/1-entender/o-que-e-aioson.md +94 -0
- package/docs/pt/1-entender/por-que-existe.md +107 -0
- package/docs/pt/2-comecar/decisoes-iniciais.md +223 -0
- package/docs/pt/2-comecar/primeiro-projeto.md +307 -0
- package/docs/pt/2-comecar/projeto-existente.md +245 -0
- package/docs/pt/3-receitas/README.md +28 -0
- package/docs/pt/3-receitas/app-saas-do-zero.md +324 -0
- package/docs/pt/3-receitas/auditoria-seguranca.md +254 -0
- package/docs/pt/3-receitas/clonar-design-de-site.md +211 -0
- package/docs/pt/3-receitas/continuidade-entre-sessoes.md +303 -0
- package/docs/pt/3-receitas/da-ideia-ao-prd-via-briefing.md +234 -0
- package/docs/pt/3-receitas/feature-completa-com-sheldon.md +338 -0
- package/docs/pt/3-receitas/integracao-em-codebase-grande.md +243 -0
- package/docs/pt/3-receitas/landing-page.md +281 -0
- package/docs/pt/3-receitas/plans-externos-para-product.md +191 -0
- package/docs/pt/3-receitas/publicar-no-aioson-com.md +219 -0
- package/docs/pt/3-receitas/refatoracao-grande.md +251 -0
- package/docs/pt/4-agentes/README.md +65 -0
- package/docs/pt/4-agentes/analyst.md +111 -0
- package/docs/pt/4-agentes/architect.md +113 -0
- package/docs/pt/4-agentes/briefing.md +95 -0
- package/docs/pt/4-agentes/committer.md +108 -0
- package/docs/pt/4-agentes/copywriter.md +279 -0
- package/docs/pt/4-agentes/design-hybrid-forge.md +116 -0
- package/docs/pt/4-agentes/dev.md +136 -0
- package/docs/pt/4-agentes/deyvin.md +99 -0
- package/docs/pt/4-agentes/discover.md +122 -0
- package/docs/pt/4-agentes/discovery-design-doc.md +91 -0
- package/docs/pt/4-agentes/genome.md +115 -0
- package/docs/pt/4-agentes/neo.md +93 -0
- package/docs/pt/4-agentes/orache.md +107 -0
- package/docs/pt/4-agentes/orchestrator.md +118 -0
- package/docs/pt/4-agentes/pentester.md +131 -0
- package/docs/pt/4-agentes/pm.md +97 -0
- package/docs/pt/4-agentes/product.md +114 -0
- package/docs/pt/4-agentes/profiler-enricher.md +93 -0
- package/docs/pt/4-agentes/profiler-forge.md +93 -0
- package/docs/pt/4-agentes/profiler-researcher.md +98 -0
- package/docs/pt/4-agentes/qa.md +124 -0
- package/docs/pt/4-agentes/setup.md +104 -0
- package/docs/pt/4-agentes/sheldon.md +95 -0
- package/docs/pt/4-agentes/site-forge.md +104 -0
- package/docs/pt/4-agentes/squad.md +127 -0
- package/docs/pt/4-agentes/tester.md +105 -0
- package/docs/pt/4-agentes/ux-ui.md +110 -0
- package/docs/pt/4-agentes/validator.md +118 -0
- package/docs/pt/5-referencia/README.md +88 -0
- package/docs/pt/5-referencia/agent-chain-continuity.md +124 -0
- package/docs/pt/{agent-sharding.md → 5-referencia/agent-sharding.md} +132 -132
- package/docs/pt/5-referencia/aioson-com-store.md +119 -0
- package/docs/pt/{automacao-squads.md → 5-referencia/automacao-squads.md} +407 -407
- package/docs/pt/{clientes-ai.md → 5-referencia/clientes-ai.md} +300 -290
- package/docs/pt/{comandos-cli.md → 5-referencia/comandos-cli.md} +1823 -1781
- package/docs/pt/{compress-agents.md → 5-referencia/compress-agents.md} +304 -304
- package/docs/pt/{design-docs-governance.md → 5-referencia/design-docs-governance.md} +59 -59
- package/docs/pt/{devlog-pipeline.md → 5-referencia/devlog-pipeline.md} +270 -270
- package/docs/pt/{feature-archive.md → 5-referencia/feature-archive.md} +199 -191
- package/docs/pt/5-referencia/feature-dossier.md +121 -0
- package/docs/pt/{fluxo-artefatos.md → 5-referencia/fluxo-artefatos.md} +179 -178
- package/docs/pt/{genome-3.0-spec.md → 5-referencia/genome-4.0-spec.md} +407 -407
- package/docs/pt/{genome-distribution.md → 5-referencia/genome-distribution.md} +232 -232
- package/docs/pt/{hooks-session-guard.md → 5-referencia/hooks-session-guard.md} +454 -454
- package/docs/pt/{inteligencia-adaptativa.md → 5-referencia/inteligencia-adaptativa.md} +324 -324
- package/docs/pt/5-referencia/live-sessions.md +144 -0
- package/docs/pt/5-referencia/memoria-e-contexto.md +340 -0
- package/docs/pt/{motor-hardening.md → 5-referencia/motor-hardening.md} +493 -492
- package/docs/pt/{output-strategy-delivery.md → 5-referencia/output-strategy-delivery.md} +655 -655
- package/docs/pt/{runner-system.md → 5-referencia/runner-system.md} +113 -113
- package/docs/pt/{runtime-observability.md → 5-referencia/runtime-observability.md} +76 -76
- package/docs/pt/{sandbox.md → 5-referencia/sandbox.md} +125 -125
- package/docs/pt/{sdd-automation-scripts.md → 5-referencia/sdd-automation-scripts.md} +559 -557
- package/docs/pt/5-referencia/sdd-framework.md +115 -0
- package/docs/pt/5-referencia/sdd-planos-e-estrutura.md +321 -0
- package/docs/pt/5-referencia/secure-by-default.md +117 -0
- package/docs/pt/{skills.md → 5-referencia/skills.md} +275 -267
- package/docs/pt/{spec-learnings-pipeline.md → 5-referencia/spec-learnings-pipeline.md} +265 -265
- package/docs/pt/{squad-dashboard.md → 5-referencia/squad-dashboard.md} +373 -373
- package/docs/pt/{web3.md → 5-referencia/web3.md} +797 -797
- package/docs/pt/README.md +111 -125
- package/docs/pt/_arquivo/README.md +130 -0
- package/docs/pt/{advisor-spec.md → _arquivo/advisor-spec.md} +343 -335
- package/docs/pt/{agentes-customizados.md → _arquivo/agentes-customizados.md} +678 -670
- package/docs/pt/{busca-de-contexto.md → _arquivo/busca-de-contexto.md} +136 -129
- package/docs/pt/{cache-de-contexto.md → _arquivo/cache-de-contexto.md} +163 -156
- package/docs/pt/{cenarios.md → _arquivo/cenarios.md} +1282 -1274
- package/docs/pt/{design-hybrid-forge.md → _arquivo/design-hybrid-forge.md} +365 -356
- package/docs/pt/{deyvin.md → _arquivo/deyvin.md} +123 -115
- package/docs/pt/{guia-engineer.md → _arquivo/guia-engineer.md} +234 -226
- package/docs/pt/{inicio-rapido.md → _arquivo/inicio-rapido.md} +261 -251
- package/docs/pt/{memoria-contexto.md → _arquivo/memoria-contexto.md} +262 -255
- package/docs/pt/{monitor-de-contexto.md → _arquivo/monitor-de-contexto.md} +165 -158
- package/docs/pt/{profiler-system.md → _arquivo/profiler-system.md} +222 -214
- package/docs/pt/{recuperacao-de-sessao.md → _arquivo/recuperacao-de-sessao.md} +134 -125
- package/docs/pt/{site-forge.md → _arquivo/site-forge.md} +318 -309
- package/docs/pt/{squad-genome.md → _arquivo/squad-genome.md} +793 -783
- package/docs/pt/active-learning-loop/README.md +117 -0
- package/docs/pt/active-learning-loop/ativo-learning-loop.md +117 -0
- package/docs/pt/active-learning-loop/comandos-cli.md +320 -0
- package/docs/pt/active-learning-loop/como-usar.md +313 -0
- package/docs/pt/active-learning-loop/diagramas.md +225 -0
- package/docs/pt/active-learning-loop/doctor-checks.md +151 -0
- package/docs/pt/active-learning-loop/troubleshooting.md +283 -0
- package/docs/pt/agentes.md +996 -993
- package/docs/pt/deyvin-subtask-scout/README.md +109 -0
- package/docs/pt/deyvin-subtask-scout/comandos-cli.md +248 -0
- package/docs/pt/deyvin-subtask-scout/como-usar.md +221 -0
- package/docs/pt/deyvin-subtask-scout/diagramas.md +124 -0
- package/docs/pt/deyvin-subtask-scout/sub-task-scout.md +113 -0
- package/docs/pt/deyvin-subtask-scout/troubleshooting.md +184 -0
- package/docs/pt/living-memory/README.md +81 -0
- package/docs/pt/living-memory/autonomy-contract.md +206 -0
- package/docs/pt/living-memory/diagramas.md +365 -0
- package/docs/pt/living-memory/memoria-viva.md +141 -0
- package/docs/pt/living-memory/notificacoes-info.md +142 -0
- package/docs/pt/living-memory/reflexao-in-harness.md +218 -0
- package/docs/pt/living-memory/troubleshooting.md +286 -0
- package/docs/testing/genome-2.0-manual-regression.md +23 -23
- package/docs/testing/genome-2.0-matrix.md +36 -36
- package/docs/testing/genome-2.0-rollout.md +184 -184
- package/package.json +51 -51
- package/src/a2a/client.js +165 -165
- package/src/a2a/server.js +223 -223
- package/src/agent-loader.js +280 -280
- package/src/agent-manifests.js +86 -66
- package/src/agents.js +92 -92
- package/src/autonomy-policy.js +163 -139
- package/src/backup-local.js +74 -74
- package/src/backup-provider.js +303 -303
- package/src/brain-query.js +171 -161
- package/src/cli.js +77 -4
- package/src/commands/agent-audit.js +397 -397
- package/src/commands/agent-export-skill.js +229 -229
- package/src/commands/agent-loader.js +85 -85
- package/src/commands/agents.js +273 -255
- package/src/commands/artifact-validate.js +218 -218
- package/src/commands/auth.js +298 -272
- package/src/commands/backup-local-cmd.js +25 -25
- package/src/commands/backup.js +533 -533
- package/src/commands/brain-query.js +44 -44
- package/src/commands/brief-gen.js +405 -405
- package/src/commands/brief-validate.js +65 -65
- package/src/commands/briefing.js +344 -344
- package/src/commands/classify.js +256 -256
- package/src/commands/cloud.js +1767 -1767
- package/src/commands/commit-prepare.js +610 -547
- package/src/commands/compress-agents.js +416 -416
- package/src/commands/config.js +90 -90
- package/src/commands/context-cache.js +90 -90
- package/src/commands/context-compact.js +49 -49
- package/src/commands/context-health.js +187 -177
- package/src/commands/context-load.js +219 -0
- package/src/commands/context-monitor.js +163 -163
- package/src/commands/context-pack.js +45 -45
- package/src/commands/context-search.js +66 -66
- package/src/commands/context-trim.js +183 -183
- package/src/commands/context-validate.js +91 -91
- package/src/commands/design-hybrid-options.js +385 -385
- package/src/commands/detect-test-runner.js +55 -55
- package/src/commands/dev-resume.js +32 -0
- package/src/commands/devlog-export-brains.js +27 -27
- package/src/commands/devlog-process.js +294 -294
- package/src/commands/devlog-watch.js +131 -131
- package/src/commands/doctor.js +123 -123
- package/src/commands/dossier-add-research.js +114 -0
- package/src/commands/dossier-audit.js +222 -0
- package/src/commands/dossier.js +423 -423
- package/src/commands/feature-archive.js +513 -513
- package/src/commands/feature-close.js +554 -270
- package/src/commands/gate-approve.js +198 -198
- package/src/commands/gate-check.js +247 -247
- package/src/commands/genome-doctor.js +489 -198
- package/src/commands/genome-migrate.js +49 -49
- package/src/commands/git-guard.js +170 -170
- package/src/commands/harness.js +307 -121
- package/src/commands/health.js +214 -214
- package/src/commands/hooks-emit.js +253 -253
- package/src/commands/hooks-install.js +347 -347
- package/src/commands/i18n-add.js +56 -56
- package/src/commands/implementation-plan.js +367 -367
- package/src/commands/info.js +41 -41
- package/src/commands/init.js +120 -120
- package/src/commands/install.js +162 -111
- package/src/commands/learning-auto-promote.js +197 -195
- package/src/commands/learning-evolve.js +364 -364
- package/src/commands/learning-export.js +103 -103
- package/src/commands/learning-rollback.js +164 -164
- package/src/commands/learning.js +134 -134
- package/src/commands/live.js +2101 -2082
- package/src/commands/locale-apply.js +54 -54
- package/src/commands/locale-diff.js +25 -25
- package/src/commands/mcp-doctor.js +407 -407
- package/src/commands/mcp-init.js +373 -373
- package/src/commands/memory-archive.js +193 -0
- package/src/commands/memory-reflect-commit.js +148 -0
- package/src/commands/memory-reflect-prepare.js +97 -0
- package/src/commands/memory-restore.js +177 -0
- package/src/commands/memory-search.js +135 -0
- package/src/commands/memory.js +299 -234
- package/src/commands/notify.js +68 -0
- package/src/commands/package-e2e.js +273 -273
- package/src/commands/parallel-assign.js +483 -483
- package/src/commands/parallel-doctor.js +850 -850
- package/src/commands/parallel-guard.js +241 -241
- package/src/commands/parallel-init.js +311 -311
- package/src/commands/parallel-merge.js +299 -299
- package/src/commands/parallel-status.js +434 -434
- package/src/commands/pattern-detect.js +33 -33
- package/src/commands/preflight-context.js +30 -30
- package/src/commands/preflight.js +267 -267
- package/src/commands/pulse-update.js +130 -130
- package/src/commands/qa-doctor.js +185 -185
- package/src/commands/qa-init.js +166 -166
- package/src/commands/qa-report.js +58 -58
- package/src/commands/qa-run.js +873 -873
- package/src/commands/qa-scan.js +337 -337
- package/src/commands/recovery.js +43 -43
- package/src/commands/revision.js +235 -235
- package/src/commands/runner-daemon.js +274 -274
- package/src/commands/runner-plan.js +70 -70
- package/src/commands/runner-queue-from-plan.js +166 -166
- package/src/commands/runner-queue.js +189 -189
- package/src/commands/runner-run.js +129 -129
- package/src/commands/runtime.js +2086 -2067
- package/src/commands/sandbox.js +37 -37
- package/src/commands/scaffold-complete.js +188 -188
- package/src/commands/scan-project.js +1371 -1371
- package/src/commands/scout-commit.js +163 -0
- package/src/commands/scout-prep.js +214 -0
- package/src/commands/scout-validate.js +112 -0
- package/src/commands/security-audit.js +275 -275
- package/src/commands/security-scan.js +376 -376
- package/src/commands/self-implement-loop.js +306 -300
- package/src/commands/session-guard.js +218 -218
- package/src/commands/setup-context.js +699 -699
- package/src/commands/setup.js +178 -178
- package/src/commands/sizing.js +165 -165
- package/src/commands/skill.js +670 -670
- package/src/commands/smoke.js +426 -426
- package/src/commands/spec-checkpoint.js +177 -177
- package/src/commands/spec-status.js +79 -79
- package/src/commands/spec-sync.js +190 -190
- package/src/commands/spec-tasks.js +288 -288
- package/src/commands/squad-agent-create.js +830 -830
- package/src/commands/squad-autorun.js +1220 -1220
- package/src/commands/squad-bus.js +217 -217
- package/src/commands/squad-card.js +149 -149
- package/src/commands/squad-daemon.js +343 -343
- package/src/commands/squad-dashboard.js +39 -39
- package/src/commands/squad-dependency-graph.js +164 -164
- package/src/commands/squad-deploy.js +64 -64
- package/src/commands/squad-doctor.js +460 -460
- package/src/commands/squad-export.js +77 -46
- package/src/commands/squad-investigate.js +314 -314
- package/src/commands/squad-learning.js +209 -209
- package/src/commands/squad-mcp.js +270 -270
- package/src/commands/squad-pipeline.js +343 -343
- package/src/commands/squad-plan.js +361 -361
- package/src/commands/squad-processes.js +56 -56
- package/src/commands/squad-recovery.js +42 -42
- package/src/commands/squad-repair-genomes.js +39 -39
- package/src/commands/squad-review.js +106 -106
- package/src/commands/squad-roi.js +291 -291
- package/src/commands/squad-scaffold.js +56 -56
- package/src/commands/squad-score.js +311 -307
- package/src/commands/squad-status.js +481 -481
- package/src/commands/squad-tool-register.js +157 -157
- package/src/commands/squad-validate.js +438 -438
- package/src/commands/squad-webhook.js +160 -160
- package/src/commands/squad-worker.js +191 -191
- package/src/commands/squad-worktrees.js +75 -75
- package/src/commands/state-save.js +122 -122
- package/src/commands/store-genome.js +667 -304
- package/src/commands/store-skill.js +247 -247
- package/src/commands/store-squad.js +431 -431
- package/src/commands/store-system.js +392 -392
- package/src/commands/sync-agents-preflight.js +176 -0
- package/src/commands/test-agents.js +199 -199
- package/src/commands/tool-capabilities.js +63 -63
- package/src/commands/tool-registry-cmd.js +232 -232
- package/src/commands/update.js +64 -64
- package/src/commands/verify-gate.js +612 -612
- package/src/commands/web-map.js +70 -70
- package/src/commands/web-scrape.js +71 -71
- package/src/commands/workflow-execute.js +730 -730
- package/src/commands/workflow-harden.js +231 -231
- package/src/commands/workflow-heal.js +136 -136
- package/src/commands/workflow-next.js +1279 -1039
- package/src/commands/workflow-plan.js +108 -108
- package/src/commands/workflow-status.js +440 -440
- package/src/commands/workspace.js +144 -144
- package/src/constants.js +413 -384
- package/src/context-cache.js +159 -159
- package/src/context-memory.js +975 -966
- package/src/context-parse-reason.js +22 -22
- package/src/context-search.js +326 -326
- package/src/context-writer.js +197 -197
- package/src/context.js +247 -247
- package/src/delivery-runner.js +319 -319
- package/src/design-variation-catalog.js +503 -503
- package/src/detector.js +261 -261
- package/src/doctor.js +760 -329
- package/src/dossier/codemap-store.js +267 -267
- package/src/dossier/dossier-bootstrap.js +222 -222
- package/src/dossier/dossier-compact.js +159 -159
- package/src/dossier/lock.js +128 -128
- package/src/dossier/research-index-store.js +233 -0
- package/src/dossier/revision-store.js +313 -313
- package/src/dossier/schema.js +162 -155
- package/src/dossier/scout-section.js +127 -0
- package/src/dossier/store.js +406 -400
- package/src/execution-gateway.js +464 -464
- package/src/friction-scanner.js +202 -202
- package/src/genome-files.js +198 -198
- package/src/genome-format.js +442 -442
- package/src/genome-schema.js +238 -238
- package/src/genomes/bindings.js +281 -281
- package/src/genomes.js +500 -500
- package/src/handoff-contract.js +417 -363
- package/src/handoff-validator.js +45 -45
- package/src/harness/circuit-breaker.js +135 -135
- package/src/i18n/index.js +103 -103
- package/src/i18n/messages/en.js +1541 -1434
- package/src/i18n/messages/es.js +1325 -1221
- package/src/i18n/messages/fr.js +1333 -1229
- package/src/i18n/messages/pt-BR.js +1561 -1457
- package/src/i18n/scaffold.js +64 -64
- package/src/install-animation.js +260 -260
- package/src/install-profile.js +127 -127
- package/src/install-wizard.js +475 -475
- package/src/installer-config-merge.js +207 -0
- package/src/installer.js +449 -358
- package/src/learning-loop-archive.js +595 -0
- package/src/learning-loop-doctor.js +217 -0
- package/src/learning-loop-engine.js +254 -0
- package/src/learning-loop-fts5.js +132 -0
- package/src/learning-loop-migration.js +163 -0
- package/src/lib/dev-resume.js +140 -0
- package/src/lib/dossier-telemetry.js +36 -0
- package/src/lib/genomes/compat.js +206 -206
- package/src/lib/genomes/migrate.js +90 -90
- package/src/lib/git-commit-guard.js +751 -691
- package/src/lib/health-check.js +158 -158
- package/src/lib/hook-protocol.js +76 -76
- package/src/lib/llm-content-sanitizer.js +44 -0
- package/src/lib/security/artifact-reader.js +167 -167
- package/src/lib/security/exit-codes.js +51 -51
- package/src/lib/security/findings-writer.js +176 -176
- package/src/lib/security/runtime-events.js +77 -77
- package/src/lib/security/secrets-regex.js +115 -115
- package/src/lib/squads/genome-repair.js +49 -49
- package/src/lib/store/security-scan.js +175 -173
- package/src/lib/terminal-checkbox.js +135 -130
- package/src/lib/terminal-picker.js +447 -0
- package/src/lib/tmux-launcher.js +163 -163
- package/src/lib/tool-capabilities.js +102 -102
- package/src/lib/webhook-server.js +328 -328
- package/src/locales.js +88 -88
- package/src/mcp/apps/squad-dashboard/app.js +163 -163
- package/src/mcp/apps/squad-dashboard/index.html +261 -261
- package/src/mcp/apps/squad-dashboard/mcp-manifest.json +23 -23
- package/src/mcp/resources/squad-state.js +130 -130
- package/src/mcp-connectors/registry.js +602 -602
- package/src/memory-reflect-engine.js +359 -0
- package/src/notify-renderer.js +32 -0
- package/src/onboarding.js +305 -305
- package/src/parallel-workspace.js +756 -756
- package/src/parser.js +66 -66
- package/src/path-guard.js +47 -47
- package/src/permissions-generator.js +400 -0
- package/src/preflight-engine.js +654 -654
- package/src/prompt-tool.js +20 -20
- package/src/qa-html-report.js +472 -472
- package/src/recovery-context-session.js +154 -154
- package/src/runner/cascade.js +97 -97
- package/src/runner/cli-launcher.js +109 -109
- package/src/runner/plan-importer.js +63 -63
- package/src/runner/queue-store.js +159 -159
- package/src/runtime-store.js +2720 -2676
- package/src/sandbox.js +194 -177
- package/src/self-healing.js +142 -142
- package/src/session-handoff.js +295 -187
- package/src/squad/agent-teams-adapter.js +270 -264
- package/src/squad/brief-validator.js +350 -350
- package/src/squad/bus-bridge.js +140 -140
- package/src/squad/context-compactor.js +265 -265
- package/src/squad/cross-ai-synthesizer.js +250 -250
- package/src/squad/external-session.js +180 -180
- package/src/squad/hooks-generator.js +196 -196
- package/src/squad/inter-squad-events.js +175 -175
- package/src/squad/inter-squad.js +74 -74
- package/src/squad/intra-bus.js +345 -345
- package/src/squad/learning-extractor.js +213 -213
- package/src/squad/pattern-detector.js +365 -365
- package/src/squad/preflight-context.js +296 -296
- package/src/squad/recovery-context.js +372 -372
- package/src/squad/reflection.js +365 -365
- package/src/squad/squad-scaffold.js +341 -341
- package/src/squad/state-manager.js +310 -310
- package/src/squad/task-decomposer.js +652 -652
- package/src/squad/verify-gate.js +303 -303
- package/src/squad/worktree-manager.js +114 -114
- package/src/squad-daemon.js +490 -490
- package/src/squad-dashboard/api.js +223 -223
- package/src/squad-dashboard/attachment-handler.js +93 -93
- package/src/squad-dashboard/context-monitor.js +157 -157
- package/src/squad-dashboard/execution-logs.js +115 -115
- package/src/squad-dashboard/hunk-review.js +209 -209
- package/src/squad-dashboard/metrics.js +133 -133
- package/src/squad-dashboard/process-monitor.js +125 -125
- package/src/squad-dashboard/renderer.js +858 -858
- package/src/squad-dashboard/server.js +232 -232
- package/src/squad-dashboard/styles.js +525 -525
- package/src/squad-dashboard/token-tracker.js +99 -99
- package/src/squads/apply-genome.js +21 -21
- package/src/squads/genome-binding-service.js +154 -154
- package/src/sub-task-engine.js +415 -0
- package/src/sub-task-schemas.js +150 -0
- package/src/sub-task-state.js +152 -0
- package/src/sub-task-telemetry.js +69 -0
- package/src/test-briefing.js +226 -226
- package/src/tool-executor.js +94 -94
- package/src/updater.js +39 -39
- package/src/utils.js +49 -49
- package/src/version.js +50 -50
- package/src/web.js +284 -284
- package/src/worker-runner.js +541 -524
- package/src/workflow-gates.js +185 -185
- package/template/.aioson/advisors/.gitkeep +1 -1
- package/template/.aioson/agents/analyst.md +333 -318
- package/template/.aioson/agents/architect.md +325 -305
- package/template/.aioson/agents/{cypher.md → briefing.md} +264 -252
- package/template/.aioson/agents/committer.md +161 -161
- package/template/.aioson/agents/copywriter.md +937 -463
- package/template/.aioson/agents/design-hybrid-forge.md +141 -141
- package/template/.aioson/agents/dev.md +295 -263
- package/template/.aioson/agents/deyvin.md +198 -87
- package/template/.aioson/agents/discover.md +235 -235
- package/template/.aioson/agents/discovery-design-doc.md +56 -29
- package/template/.aioson/agents/genome.md +1904 -364
- package/template/.aioson/agents/manifests/analyst.manifest.json +26 -26
- package/template/.aioson/agents/manifests/architect.manifest.json +23 -23
- package/template/.aioson/agents/manifests/committer.manifest.json +23 -23
- package/template/.aioson/agents/manifests/dev.manifest.json +54 -37
- package/template/.aioson/agents/manifests/deyvin.manifest.json +41 -0
- package/template/.aioson/agents/manifests/orchestrator.manifest.json +30 -30
- package/template/.aioson/agents/manifests/pentester.manifest.json +39 -39
- package/template/.aioson/agents/manifests/pm.manifest.json +26 -26
- package/template/.aioson/agents/manifests/product.manifest.json +23 -23
- package/template/.aioson/agents/manifests/qa.manifest.json +41 -25
- package/template/.aioson/agents/manifests/setup.manifest.json +20 -20
- package/template/.aioson/agents/manifests/ux-ui.manifest.json +24 -24
- package/template/.aioson/agents/neo.md +341 -231
- package/template/.aioson/agents/orache.md +430 -430
- package/template/.aioson/agents/orchestrator.md +274 -263
- package/template/.aioson/agents/pair.md +5 -5
- package/template/.aioson/agents/pentester.md +289 -235
- package/template/.aioson/agents/pm.md +141 -130
- package/template/.aioson/agents/product.md +351 -273
- package/template/.aioson/agents/profiler-enricher.md +331 -331
- package/template/.aioson/agents/profiler-forge.md +212 -212
- package/template/.aioson/agents/profiler-researcher.md +282 -282
- package/template/.aioson/agents/qa.md +432 -342
- package/template/.aioson/agents/setup.md +423 -423
- package/template/.aioson/agents/sheldon.md +259 -197
- package/template/.aioson/agents/site-forge.md +281 -281
- package/template/.aioson/agents/squad.md +160 -156
- package/template/.aioson/agents/tester.md +536 -473
- package/template/.aioson/agents/ux-ui.md +195 -162
- package/template/.aioson/agents/validator.md +101 -69
- package/template/.aioson/brains/README.md +132 -128
- package/template/.aioson/brains/_archived/.gitkeep +0 -0
- package/template/.aioson/brains/_index.json +34 -16
- package/template/.aioson/brains/dev/patterns.brain.json +79 -0
- package/template/.aioson/brains/scripts/query.js +107 -107
- package/template/.aioson/brains/sheldon/architecture-decisions.brain.json +79 -0
- package/template/.aioson/brains/site-forge/visual-patterns.brain.json +205 -205
- package/template/.aioson/config/autonomy-protocol.json +125 -43
- package/template/.aioson/config/learning-loop.json +10 -0
- package/template/.aioson/config/scout-engine.json +1 -0
- package/template/.aioson/config.md +410 -410
- package/template/.aioson/context/_archived/.gitkeep +0 -0
- package/template/.aioson/context/design-doc.md +136 -136
- package/template/.aioson/context/project-map.md +57 -57
- package/template/.aioson/context/project-pulse.md +34 -34
- package/template/.aioson/context/seeds/seed-example.md +27 -27
- package/template/.aioson/context/spec.md.template +54 -54
- package/template/.aioson/context/user-profile.md +42 -42
- package/template/.aioson/design-docs/code-reuse.md +48 -48
- package/template/.aioson/design-docs/componentization.md +47 -47
- package/template/.aioson/design-docs/file-size.md +52 -52
- package/template/.aioson/design-docs/folder-structure.md +51 -51
- package/template/.aioson/design-docs/naming.md +54 -54
- package/template/.aioson/docs/LAYERS.md +89 -89
- package/template/.aioson/docs/README.md +76 -76
- package/template/.aioson/docs/autonomy-protocol.md +80 -0
- package/template/.aioson/docs/briefing/briefing-craft.md +237 -0
- package/template/.aioson/docs/dev/execution-discipline.md +106 -106
- package/template/.aioson/docs/dev/stack-conventions.md +83 -83
- package/template/.aioson/docs/deyvin/continuity-recovery.md +57 -57
- package/template/.aioson/docs/deyvin/debugging-escalation.md +30 -30
- package/template/.aioson/docs/deyvin/pair-execution.md +44 -44
- package/template/.aioson/docs/deyvin/runtime-handoffs.md +36 -36
- package/template/.aioson/docs/example-external-api-context.md +72 -72
- package/template/.aioson/docs/pentester/app-playbooks.md +206 -0
- package/template/.aioson/docs/pentester/llm-supplychain.md +165 -0
- package/template/.aioson/docs/product/conversation-playbook.md +116 -116
- package/template/.aioson/docs/product/prd-contract.md +107 -107
- package/template/.aioson/docs/product/quality-lens.md +57 -57
- package/template/.aioson/docs/product/research-loop.md +65 -65
- package/template/.aioson/docs/sheldon/enrichment-paths.md +134 -134
- package/template/.aioson/docs/sheldon/harness-contract.md +118 -0
- package/template/.aioson/docs/sheldon/quality-lens.md +57 -57
- package/template/.aioson/docs/sheldon/research-loop.md +56 -56
- package/template/.aioson/docs/sheldon/web-intelligence.md +75 -75
- package/template/.aioson/docs/site-forge-build.md +195 -195
- package/template/.aioson/docs/site-forge-extraction.md +135 -135
- package/template/.aioson/docs/site-forge-qa.md +155 -155
- package/template/.aioson/docs/site-forge-recon.md +434 -434
- package/template/.aioson/docs/site-forge-transform.md +249 -249
- package/template/.aioson/docs/squad/content-output.md +91 -91
- package/template/.aioson/docs/squad/creation-flow.md +149 -135
- package/template/.aioson/docs/squad/domain-breadth.md +322 -0
- package/template/.aioson/docs/squad/domain-classification.md +117 -117
- package/template/.aioson/docs/squad/genome-bindings.md +47 -47
- package/template/.aioson/docs/squad/package-contract.md +260 -234
- package/template/.aioson/docs/squad/quality-lens.md +60 -56
- package/template/.aioson/docs/squad/research-loop.md +59 -59
- package/template/.aioson/docs/squad/session-operations.md +117 -117
- package/template/.aioson/docs/squad/workflow-quality.md +165 -165
- package/template/.aioson/docs/tester/coverage-quality.md +351 -0
- package/template/.aioson/docs/ux-ui/accessibility-audit.md +55 -55
- package/template/.aioson/docs/ux-ui/audit-mode.md +86 -86
- package/template/.aioson/docs/ux-ui/component-map.md +35 -35
- package/template/.aioson/docs/ux-ui/design-execution.md +111 -111
- package/template/.aioson/docs/ux-ui/design-gate.md +27 -27
- package/template/.aioson/docs/ux-ui/research-mode.md +39 -39
- package/template/.aioson/docs/ux-ui/site-delivery.md +156 -156
- package/template/.aioson/docs/ux-ui/token-contract.md +57 -57
- package/template/.aioson/genomes/INDEX.md +195 -0
- package/template/.aioson/genomes/copywriting/SKILL.md +137 -0
- package/template/.aioson/genomes/copywriting/manifest.json +140 -0
- package/template/.aioson/genomes/copywriting/references/application-notes.md +145 -0
- package/template/.aioson/genomes/copywriting/references/decision-weights.md +45 -0
- package/template/.aioson/genomes/copywriting/references/frameworks/5-act-narrative.md +184 -0
- package/template/.aioson/genomes/copywriting/references/frameworks/classical-formulas.md +164 -0
- package/template/.aioson/genomes/copywriting/references/frameworks/offer-stack.md +195 -0
- package/template/.aioson/genomes/copywriting/references/frameworks/one-belief.md +135 -0
- package/template/.aioson/genomes/copywriting/references/frameworks/pms-research.md +211 -0
- package/template/.aioson/genomes/copywriting/references/frameworks/two-paths-close.md +190 -0
- package/template/.aioson/genomes/copywriting/references/heuristics.md +114 -0
- package/template/.aioson/genomes/copywriting/references/meta-axioms.md +68 -0
- package/template/.aioson/genomes/copywriting/references/methodology.md +115 -0
- package/template/.aioson/genomes/copywriting-brunson/SKILL.md +133 -0
- package/template/.aioson/genomes/copywriting-brunson/manifest.json +152 -0
- package/template/.aioson/genomes/copywriting-brunson/references/application-notes.md +113 -0
- package/template/.aioson/genomes/copywriting-brunson/references/decision-weights.md +33 -0
- package/template/.aioson/genomes/copywriting-brunson/references/evidence-and-attribution.md +81 -0
- package/template/.aioson/genomes/copywriting-brunson/references/frameworks/6-part-structure.md +136 -0
- package/template/.aioson/genomes/copywriting-brunson/references/frameworks/origin-story.md +121 -0
- package/template/.aioson/genomes/copywriting-brunson/references/frameworks/perfect-webinar-script.md +139 -0
- package/template/.aioson/genomes/copywriting-brunson/references/frameworks/persuasive-storytelling-5-structures.md +164 -0
- package/template/.aioson/genomes/copywriting-brunson/references/frameworks/value-stack.md +136 -0
- package/template/.aioson/genomes/copywriting-brunson/references/frameworks/who-what-why-how.md +110 -0
- package/template/.aioson/genomes/copywriting-brunson/references/meta-axioms.md +36 -0
- package/template/.aioson/genomes/copywriting-brunson/references/methodology.md +112 -0
- package/template/.aioson/git-guard.json +12 -11
- package/template/.aioson/mcp/servers.md +23 -23
- package/template/.aioson/profiler-reports/.gitkeep +1 -1
- package/template/.aioson/rules/README.md +69 -69
- package/template/.aioson/rules/_archived/.gitkeep +0 -0
- package/template/.aioson/rules/agent-language-policy.md +93 -93
- package/template/.aioson/rules/aioson-context-boundary.md +63 -63
- package/template/.aioson/rules/canonical-path-contract.md +47 -47
- package/template/.aioson/rules/data-format-convention.md +74 -74
- package/template/.aioson/rules/disk-first-artifacts.md +44 -44
- package/template/.aioson/rules/example-monetary-values.md +30 -30
- package/template/.aioson/rules/output-brevity.md +44 -44
- package/template/.aioson/rules/prd-section-ownership.md +49 -49
- package/template/.aioson/rules/security-baseline.md +139 -139
- package/template/.aioson/rules/spec-level-ownership.md +61 -61
- package/template/.aioson/rules/squad/README.md +50 -50
- package/template/.aioson/rules/squad-driver-pattern.md +81 -81
- package/template/.aioson/schemas/content-blueprint.schema.json +30 -30
- package/template/.aioson/schemas/genome-meta.schema.json +150 -150
- package/template/.aioson/schemas/genome.schema.json +115 -115
- package/template/.aioson/schemas/readiness.schema.json +27 -27
- package/template/.aioson/schemas/squad-blueprint.schema.json +228 -228
- package/template/.aioson/schemas/squad-manifest.schema.json +874 -874
- package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +243 -243
- package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -293
- package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -827
- package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -250
- package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -585
- package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -365
- package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +482 -482
- package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +387 -387
- package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +205 -205
- package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -338
- package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -977
- package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -218
- package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -326
- package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -461
- package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -293
- package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -352
- package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -210
- package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -319
- package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -365
- package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -196
- package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -244
- package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -235
- package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -215
- package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -295
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +203 -203
- package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -339
- package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +407 -407
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +272 -272
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +524 -524
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +279 -279
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +289 -289
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +437 -437
- package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +222 -222
- package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -159
- package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -498
- package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -236
- package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -274
- package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -355
- package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -198
- package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -307
- package/template/.aioson/skills/design/interface-design/SKILL.md +47 -47
- package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -105
- package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -101
- package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +71 -71
- package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -74
- package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -173
- package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +213 -213
- package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -228
- package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -855
- package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -334
- package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -342
- package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -286
- package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -458
- package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -723
- package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +62 -62
- package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -74
- package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -116
- package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -47
- package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -215
- package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -31
- package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +66 -66
- package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +368 -368
- package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -150
- package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -270
- package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -189
- package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +165 -165
- package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +209 -209
- package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -324
- package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -508
- package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -223
- package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -374
- package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -356
- package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -288
- package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -289
- package/template/.aioson/skills/design-system/SKILL.md +92 -92
- package/template/.aioson/skills/design-system/components/SKILL.md +274 -274
- package/template/.aioson/skills/design-system/dashboards/SKILL.md +184 -184
- package/template/.aioson/skills/design-system/foundations/SKILL.md +250 -250
- package/template/.aioson/skills/design-system/motion/SKILL.md +197 -197
- package/template/.aioson/skills/design-system/patterns/SKILL.md +231 -231
- package/template/.aioson/skills/dynamic/README.md +30 -30
- package/template/.aioson/skills/dynamic/cardano-docs.md +16 -16
- package/template/.aioson/skills/dynamic/ethereum-docs.md +17 -17
- package/template/.aioson/skills/dynamic/flux-ui-docs.md +13 -13
- package/template/.aioson/skills/dynamic/laravel-docs.md +41 -41
- package/template/.aioson/skills/dynamic/npm-packages.md +16 -16
- package/template/.aioson/skills/dynamic/solana-docs.md +16 -16
- package/template/.aioson/skills/marketing/references/anti-patterns.md +254 -254
- package/template/.aioson/skills/marketing/references/cta-matrix.md +361 -0
- package/template/.aioson/skills/marketing/references/fascinations.md +192 -192
- package/template/.aioson/skills/marketing/references/five-acts.md +248 -248
- package/template/.aioson/skills/marketing/references/headline-matrix.md +358 -0
- package/template/.aioson/skills/marketing/references/market-intelligence.md +198 -198
- package/template/.aioson/skills/marketing/references/offer-structure.md +203 -203
- package/template/.aioson/skills/marketing/references/one-belief.md +149 -149
- package/template/.aioson/skills/marketing/references/patterns.md +218 -218
- package/template/.aioson/skills/marketing/references/platform-constraints.md +337 -0
- package/template/.aioson/skills/marketing/references/pms-research.md +193 -193
- package/template/.aioson/skills/marketing/vsl-craft.md +385 -385
- package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -83
- package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -92
- package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -102
- package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -136
- package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -136
- package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -188
- package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -131
- package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -198
- package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -275
- package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -234
- package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -147
- package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -142
- package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +46 -46
- package/template/.aioson/skills/process/aioson-spec-driven/references/analyst.md +30 -30
- package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +109 -109
- package/template/.aioson/skills/process/aioson-spec-driven/references/architect.md +23 -23
- package/template/.aioson/skills/process/aioson-spec-driven/references/artifact-map.md +44 -44
- package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +37 -37
- package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +47 -47
- package/template/.aioson/skills/process/aioson-spec-driven/references/deyvin.md +27 -27
- package/template/.aioson/skills/process/aioson-spec-driven/references/hardening-lane.md +49 -49
- package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +101 -101
- package/template/.aioson/skills/process/aioson-spec-driven/references/pm.md +30 -30
- package/template/.aioson/skills/process/aioson-spec-driven/references/product.md +25 -25
- package/template/.aioson/skills/process/aioson-spec-driven/references/qa.md +30 -30
- package/template/.aioson/skills/process/aioson-spec-driven/references/sheldon.md +25 -25
- package/template/.aioson/skills/process/aioson-spec-driven/references/ui-language.md +75 -75
- package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +147 -147
- package/template/.aioson/skills/process/design-hybrid-forge/references/crossover-protocol.md +221 -221
- package/template/.aioson/skills/process/design-hybrid-forge/references/naming-registry.md +88 -88
- package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +306 -306
- package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +149 -149
- package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +208 -208
- package/template/.aioson/skills/process/design-hybrid-forge/references/variation-library.md +125 -125
- package/template/.aioson/skills/process/secure-tdd/SKILL.md +97 -97
- package/template/.aioson/skills/process/simplify/SKILL.md +173 -173
- package/template/.aioson/skills/references/premium-command-center-ui/master-application-prompt.md +79 -79
- package/template/.aioson/skills/references/premium-command-center-ui/operational-ux-playbook.md +253 -253
- package/template/.aioson/skills/references/premium-command-center-ui/quality-validation-checklist.md +82 -82
- package/template/.aioson/skills/references/premium-command-center-ui/visual-system-and-component-patterns.md +270 -270
- package/template/.aioson/skills/squad/SKILL.md +58 -58
- package/template/.aioson/skills/squad/formats/catalog.json +15 -15
- package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -47
- package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -47
- package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -43
- package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -41
- package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -42
- package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -42
- package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -39
- package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -39
- package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -47
- package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -39
- package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -108
- package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -98
- package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -106
- package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -81
- package/template/.aioson/skills/squad/references/checklist-templates.md +122 -122
- package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -123
- package/template/.aioson/skills/squad/references/workflow-templates.md +169 -169
- package/template/.aioson/skills/static/context-budget-guide.md +46 -46
- package/template/.aioson/skills/static/debugging-protocol.md +42 -42
- package/template/.aioson/skills/static/django-patterns.md +342 -342
- package/template/.aioson/skills/static/fastapi-patterns.md +344 -344
- package/template/.aioson/skills/static/filament-patterns.md +267 -267
- package/template/.aioson/skills/static/flux-ui-components.md +262 -262
- package/template/.aioson/skills/static/git-conventions.md +227 -227
- package/template/.aioson/skills/static/git-worktrees.md +36 -36
- package/template/.aioson/skills/static/harness-sensors.md +74 -74
- package/template/.aioson/skills/static/harness-validate/SKILL.md +46 -46
- package/template/.aioson/skills/static/jetstream-setup.md +200 -200
- package/template/.aioson/skills/static/landing-page-deploy.md +192 -192
- package/template/.aioson/skills/static/landing-page-forge.md +730 -730
- package/template/.aioson/skills/static/laravel-conventions.md +491 -491
- package/template/.aioson/skills/static/multi-agent-patterns.md +43 -43
- package/template/.aioson/skills/static/nextjs-patterns.md +321 -321
- package/template/.aioson/skills/static/node-express-patterns.md +317 -317
- package/template/.aioson/skills/static/node-typescript-patterns.md +282 -282
- package/template/.aioson/skills/static/rails-conventions.md +307 -307
- package/template/.aioson/skills/static/react-motion-patterns.md +599 -599
- package/template/.aioson/skills/static/static-html-patterns/checklists.md +43 -43
- package/template/.aioson/skills/static/static-html-patterns/css-tokens.md +609 -609
- package/template/.aioson/skills/static/static-html-patterns/motion.md +193 -193
- package/template/.aioson/skills/static/static-html-patterns/premium.md +711 -711
- package/template/.aioson/skills/static/static-html-patterns/structure.md +209 -209
- package/template/.aioson/skills/static/static-html-patterns/utilities.md +190 -190
- package/template/.aioson/skills/static/static-html-patterns.md +80 -80
- package/template/.aioson/skills/static/tall-stack-patterns.md +286 -286
- package/template/.aioson/skills/static/threejs-patterns.md +929 -929
- package/template/.aioson/skills/static/ui-ux-modern.md +76 -76
- package/template/.aioson/skills/static/web-research-cache.md +115 -115
- package/template/.aioson/skills/static/web3-cardano-patterns.md +337 -337
- package/template/.aioson/skills/static/web3-ethereum-patterns.md +310 -310
- package/template/.aioson/skills/static/web3-security-checklist.md +284 -284
- package/template/.aioson/skills/static/web3-solana-patterns.md +324 -324
- package/template/.aioson/squads/memory.md +5 -5
- package/template/.aioson/tasks/implementation-plan.md +327 -327
- package/template/.aioson/tasks/squad-analyze.md +83 -83
- package/template/.aioson/tasks/squad-create.md +148 -148
- package/template/.aioson/tasks/squad-design.md +206 -206
- package/template/.aioson/tasks/squad-execution-plan.md +279 -279
- package/template/.aioson/tasks/squad-export.md +20 -20
- package/template/.aioson/tasks/squad-extend.md +68 -68
- package/template/.aioson/tasks/squad-investigate.md +57 -57
- package/template/.aioson/tasks/squad-learning-review.md +44 -44
- package/template/.aioson/tasks/squad-output-config.md +177 -177
- package/template/.aioson/tasks/squad-pipeline.md +122 -122
- package/template/.aioson/tasks/squad-profile.md +48 -48
- package/template/.aioson/tasks/squad-refresh.md +236 -0
- package/template/.aioson/tasks/squad-repair.md +85 -85
- package/template/.aioson/tasks/squad-review.md +61 -61
- package/template/.aioson/tasks/squad-task-decompose.md +66 -66
- package/template/.aioson/tasks/squad-validate.md +58 -58
- package/template/.aioson/templates/reflect-prompts/current-state.md +36 -0
- package/template/.aioson/templates/reflect-prompts/how-it-works.md +23 -0
- package/template/.aioson/templates/reflect-prompts/what-it-does.md +21 -0
- package/template/.aioson/templates/squads/content-basic/template.json +21 -21
- package/template/.aioson/templates/squads/digital-marketing-agency/template.json +96 -96
- package/template/.aioson/templates/squads/media-channel/template.json +24 -24
- package/template/.aioson/templates/squads/research-analysis/template.json +22 -22
- package/template/.aioson/templates/squads/software-delivery/template.json +21 -21
- package/template/.claude/commands/aioson/agent/analyst.md +5 -5
- package/template/.claude/commands/aioson/agent/architect.md +5 -5
- package/template/.claude/commands/aioson/agent/briefing.md +5 -0
- package/template/.claude/commands/aioson/agent/committer.md +5 -5
- package/template/.claude/commands/aioson/agent/copywriter.md +5 -5
- package/template/.claude/commands/aioson/agent/design-hybrid-forge.md +5 -5
- package/template/.claude/commands/aioson/agent/dev.md +5 -5
- package/template/.claude/commands/aioson/agent/deyvin.md +5 -5
- package/template/.claude/commands/aioson/agent/discover.md +5 -0
- package/template/.claude/commands/aioson/agent/discovery-design-doc.md +5 -5
- package/template/.claude/commands/aioson/agent/genome.md +5 -5
- package/template/.claude/commands/aioson/agent/neo.md +5 -5
- package/template/.claude/commands/aioson/agent/orache.md +5 -5
- package/template/.claude/commands/aioson/agent/orchestrator.md +5 -5
- package/template/.claude/commands/aioson/agent/pair.md +5 -5
- package/template/.claude/commands/aioson/agent/pentester.md +5 -0
- package/template/.claude/commands/aioson/agent/pm.md +5 -5
- package/template/.claude/commands/aioson/agent/product.md +5 -5
- package/template/.claude/commands/aioson/agent/profiler-enricher.md +5 -5
- package/template/.claude/commands/aioson/agent/profiler-forge.md +5 -5
- package/template/.claude/commands/aioson/agent/profiler-researcher.md +5 -5
- package/template/.claude/commands/aioson/agent/qa.md +5 -5
- package/template/.claude/commands/aioson/agent/setup.md +5 -5
- package/template/.claude/commands/aioson/agent/sheldon.md +5 -5
- package/template/.claude/commands/aioson/agent/site-forge.md +5 -5
- package/template/.claude/commands/aioson/agent/squad.md +5 -5
- package/template/.claude/commands/aioson/agent/tester.md +5 -5
- package/template/.claude/commands/aioson/agent/ux-ui.md +5 -5
- package/template/.claude/commands/aioson/agent/validator.md +5 -5
- package/template/.gemini/GEMINI.md +13 -13
- package/template/.gemini/commands/aios-analyst.toml +7 -7
- package/template/.gemini/commands/aios-architect.toml +8 -8
- package/template/.gemini/commands/aios-committer.toml +7 -7
- package/template/.gemini/commands/aios-copywriter.toml +7 -7
- package/template/.gemini/commands/aios-cypher.toml +7 -7
- package/template/.gemini/commands/aios-dev.toml +9 -9
- package/template/.gemini/commands/aios-deyvin.toml +7 -7
- package/template/.gemini/commands/aios-discover.toml +6 -0
- package/template/.gemini/commands/aios-discovery-design-doc.toml +7 -7
- package/template/.gemini/commands/aios-genome.toml +7 -7
- package/template/.gemini/commands/aios-neo.toml +6 -6
- package/template/.gemini/commands/aios-orache.toml +7 -7
- package/template/.gemini/commands/aios-orchestrator.toml +9 -9
- package/template/.gemini/commands/aios-pair.toml +7 -7
- package/template/.gemini/commands/aios-pm.toml +9 -9
- package/template/.gemini/commands/aios-product.toml +6 -6
- package/template/.gemini/commands/aios-qa.toml +7 -7
- package/template/.gemini/commands/aios-setup.toml +6 -6
- package/template/.gemini/commands/aios-sheldon.toml +7 -7
- package/template/.gemini/commands/aios-site-forge.toml +7 -7
- package/template/.gemini/commands/aios-squad.toml +7 -7
- package/template/.gemini/commands/aios-tester.toml +7 -7
- package/template/.gemini/commands/aios-ux-ui.toml +9 -9
- package/template/.gemini/commands/aios-validator.toml +7 -7
- package/template/AGENTS.md +184 -183
- package/template/CLAUDE.md +98 -97
- package/template/OPENCODE.md +35 -34
- package/template/aioson-models.json +40 -40
- package/template/.aioson/genomes/copywriting.md +0 -204
- package/template/.aioson/genomes/copywriting.meta.json +0 -48
- package/template/.aioson/skills/process/secure-tdd/references/nextjs.md +0 -81
- package/template/.aioson/skills/process/secure-tdd/references/node-express.md +0 -91
- package/template/.aioson/skills/process/secure-tdd/references/planned-stacks.md +0 -33
- package/template/.claude/commands/aioson/agent/cypher.md +0 -5
|
@@ -1,128 +1,132 @@
|
|
|
1
|
-
# AIOSON Brains — Procedural Memory System
|
|
2
|
-
|
|
3
|
-
> Inspired by: A-MEM (Zettelkasten networks), MemRL (quality-scored pattern extraction), Letta (OS-tiered loading), and retrieval-as-tool (agents call memory explicitly, not pre-injected).
|
|
4
|
-
|
|
5
|
-
## What is this?
|
|
6
|
-
|
|
7
|
-
Brains are **quality-scored pattern memory** — not event logs, not session history.
|
|
8
|
-
Each brain node answers: *"I've seen this before. Here's what works, what to avoid, and why."*
|
|
9
|
-
|
|
10
|
-
Unlike RAG (retrieve-and-prepend), agents load only what's relevant, when it's relevant.
|
|
11
|
-
|
|
12
|
-
## Loading strategy (tiered — OS-inspired)
|
|
13
|
-
|
|
14
|
-
| Layer | File | When loaded | Token cost |
|
|
15
|
-
|-------|------|-------------|------------|
|
|
16
|
-
| Index | `_index.json` | Always, on activation | ~2KB |
|
|
17
|
-
| Brain file | `agent/domain.brain.json` | Only when tags match the task | ~8–20KB |
|
|
18
|
-
| Node detail | inside brain file | Read selectively by ID | negligible |
|
|
19
|
-
|
|
20
|
-
**Rule:** Load `_index.json` first. If task tags match a brain's tag list, load that brain file. Use `query.js` for cross-referencing across multiple brains.
|
|
21
|
-
|
|
22
|
-
## Brain node schema
|
|
23
|
-
|
|
24
|
-
```json
|
|
25
|
-
{
|
|
26
|
-
"id": "css-001",
|
|
27
|
-
"title": "Short name",
|
|
28
|
-
"tags": ["css", "hover", "animation"],
|
|
29
|
-
"q": 5,
|
|
30
|
-
"v": "EXCELLENT",
|
|
31
|
-
"s": "One-line summary of the pattern and why it works.",
|
|
32
|
-
"p": "code snippet or pseudocode",
|
|
33
|
-
"src": "source site or context",
|
|
34
|
-
"date": "YYYY-MM-DD",
|
|
35
|
-
"not": "what NOT to use instead — the anti-pattern this replaces",
|
|
36
|
-
"warn": "gotcha or edge case to watch out for",
|
|
37
|
-
"see": ["css-002", "css-007"]
|
|
38
|
-
}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
### Verdict values
|
|
42
|
-
|
|
43
|
-
| Verdict | Meaning |
|
|
44
|
-
|---------|---------|
|
|
45
|
-
| `EXCELLENT` | Best-in-class — use by default |
|
|
46
|
-
| `GOOD` | Solid choice — use when EXCELLENT variant isn't applicable |
|
|
47
|
-
| `BEST_PRACTICE` | Mandatory baseline — always include |
|
|
48
|
-
| `AVOID` | Anti-pattern — explicitly do NOT use this |
|
|
49
|
-
| `BROKEN` | Known broken in current context |
|
|
50
|
-
|
|
51
|
-
### Quality score (q)
|
|
52
|
-
|
|
53
|
-
| Score | Meaning |
|
|
54
|
-
|-------|---------|
|
|
55
|
-
| 5 | Verified excellent — used in production, great result |
|
|
56
|
-
| 4 | Verified good — used, worked well |
|
|
57
|
-
| 3 | Theoretical — not yet validated in a real project |
|
|
58
|
-
| 2 | Mixed results — use with caution |
|
|
59
|
-
| 1 | Avoid — kept only for anti-pattern documentation |
|
|
60
|
-
|
|
61
|
-
## Agent integration
|
|
62
|
-
|
|
63
|
-
In your agent file, add a **Brain** section:
|
|
64
|
-
|
|
65
|
-
```markdown
|
|
66
|
-
## Brain (procedural memory)
|
|
67
|
-
|
|
68
|
-
1. Load `.aioson/brains/_index.json` on activation.
|
|
69
|
-
2. Identify relevant tags from the current task.
|
|
70
|
-
3. Load matching brain files (from index `path` field).
|
|
71
|
-
4. For patterns with q ≥ 4: apply as default approach.
|
|
72
|
-
5. For nodes with v === "AVOID": never implement what's in `not` field.
|
|
73
|
-
6. Use `see[]` to traverse linked nodes.
|
|
74
|
-
|
|
75
|
-
Cross-reference query:
|
|
76
|
-
node .aioson/brains/scripts/query.js --tags <tags> --min-quality 4 --format compact
|
|
77
|
-
|
|
78
|
-
After completing a project, record new learnings:
|
|
79
|
-
- Add nodes to the appropriate brain file
|
|
80
|
-
- Rate quality honestly (1-5)
|
|
81
|
-
- Update `_index.json` nodes count and updated date
|
|
82
|
-
- Add `see[]` links to related nodes (Zettelkasten web)
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
## Query script
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
# All EXCELLENT patterns about CSS animation
|
|
89
|
-
node .aioson/brains/scripts/query.js --tags css,animation --verdict EXCELLENT --format compact
|
|
90
|
-
|
|
91
|
-
# All anti-patterns (to know what NOT to do)
|
|
92
|
-
node .aioson/brains/scripts/query.js --avoid --format compact
|
|
93
|
-
|
|
94
|
-
# Best practices for site-forge cloning
|
|
95
|
-
node .aioson/brains/scripts/query.js --agent site-forge --min-quality 4 --format compact
|
|
96
|
-
|
|
97
|
-
# Get specific nodes by ID
|
|
98
|
-
node .aioson/brains/scripts/query.js --id css-001,css-007,js-001
|
|
99
|
-
|
|
100
|
-
# All patterns that match ALL these tags (AND)
|
|
101
|
-
node .aioson/brains/scripts/query.js --tags css,hover,no-js --match all
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
## File structure
|
|
105
|
-
|
|
106
|
-
```
|
|
107
|
-
.aioson/brains/
|
|
108
|
-
├── README.md
|
|
109
|
-
├── _index.json
|
|
110
|
-
├── scripts/
|
|
111
|
-
│ └── query.js
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
- **
|
|
1
|
+
# AIOSON Brains — Procedural Memory System
|
|
2
|
+
|
|
3
|
+
> Inspired by: A-MEM (Zettelkasten networks), MemRL (quality-scored pattern extraction), Letta (OS-tiered loading), and retrieval-as-tool (agents call memory explicitly, not pre-injected).
|
|
4
|
+
|
|
5
|
+
## What is this?
|
|
6
|
+
|
|
7
|
+
Brains are **quality-scored pattern memory** — not event logs, not session history.
|
|
8
|
+
Each brain node answers: *"I've seen this before. Here's what works, what to avoid, and why."*
|
|
9
|
+
|
|
10
|
+
Unlike RAG (retrieve-and-prepend), agents load only what's relevant, when it's relevant.
|
|
11
|
+
|
|
12
|
+
## Loading strategy (tiered — OS-inspired)
|
|
13
|
+
|
|
14
|
+
| Layer | File | When loaded | Token cost |
|
|
15
|
+
|-------|------|-------------|------------|
|
|
16
|
+
| Index | `_index.json` | Always, on activation | ~2KB |
|
|
17
|
+
| Brain file | `agent/domain.brain.json` | Only when tags match the task | ~8–20KB |
|
|
18
|
+
| Node detail | inside brain file | Read selectively by ID | negligible |
|
|
19
|
+
|
|
20
|
+
**Rule:** Load `_index.json` first. If task tags match a brain's tag list, load that brain file. Use `query.js` for cross-referencing across multiple brains.
|
|
21
|
+
|
|
22
|
+
## Brain node schema
|
|
23
|
+
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"id": "css-001",
|
|
27
|
+
"title": "Short name",
|
|
28
|
+
"tags": ["css", "hover", "animation"],
|
|
29
|
+
"q": 5,
|
|
30
|
+
"v": "EXCELLENT",
|
|
31
|
+
"s": "One-line summary of the pattern and why it works.",
|
|
32
|
+
"p": "code snippet or pseudocode",
|
|
33
|
+
"src": "source site or context",
|
|
34
|
+
"date": "YYYY-MM-DD",
|
|
35
|
+
"not": "what NOT to use instead — the anti-pattern this replaces",
|
|
36
|
+
"warn": "gotcha or edge case to watch out for",
|
|
37
|
+
"see": ["css-002", "css-007"]
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Verdict values
|
|
42
|
+
|
|
43
|
+
| Verdict | Meaning |
|
|
44
|
+
|---------|---------|
|
|
45
|
+
| `EXCELLENT` | Best-in-class — use by default |
|
|
46
|
+
| `GOOD` | Solid choice — use when EXCELLENT variant isn't applicable |
|
|
47
|
+
| `BEST_PRACTICE` | Mandatory baseline — always include |
|
|
48
|
+
| `AVOID` | Anti-pattern — explicitly do NOT use this |
|
|
49
|
+
| `BROKEN` | Known broken in current context |
|
|
50
|
+
|
|
51
|
+
### Quality score (q)
|
|
52
|
+
|
|
53
|
+
| Score | Meaning |
|
|
54
|
+
|-------|---------|
|
|
55
|
+
| 5 | Verified excellent — used in production, great result |
|
|
56
|
+
| 4 | Verified good — used, worked well |
|
|
57
|
+
| 3 | Theoretical — not yet validated in a real project |
|
|
58
|
+
| 2 | Mixed results — use with caution |
|
|
59
|
+
| 1 | Avoid — kept only for anti-pattern documentation |
|
|
60
|
+
|
|
61
|
+
## Agent integration
|
|
62
|
+
|
|
63
|
+
In your agent file, add a **Brain** section:
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
## Brain (procedural memory)
|
|
67
|
+
|
|
68
|
+
1. Load `.aioson/brains/_index.json` on activation.
|
|
69
|
+
2. Identify relevant tags from the current task.
|
|
70
|
+
3. Load matching brain files (from index `path` field).
|
|
71
|
+
4. For patterns with q ≥ 4: apply as default approach.
|
|
72
|
+
5. For nodes with v === "AVOID": never implement what's in `not` field.
|
|
73
|
+
6. Use `see[]` to traverse linked nodes.
|
|
74
|
+
|
|
75
|
+
Cross-reference query:
|
|
76
|
+
node .aioson/brains/scripts/query.js --tags <tags> --min-quality 4 --format compact
|
|
77
|
+
|
|
78
|
+
After completing a project, record new learnings:
|
|
79
|
+
- Add nodes to the appropriate brain file
|
|
80
|
+
- Rate quality honestly (1-5)
|
|
81
|
+
- Update `_index.json` nodes count and updated date
|
|
82
|
+
- Add `see[]` links to related nodes (Zettelkasten web)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Query script
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# All EXCELLENT patterns about CSS animation
|
|
89
|
+
node .aioson/brains/scripts/query.js --tags css,animation --verdict EXCELLENT --format compact
|
|
90
|
+
|
|
91
|
+
# All anti-patterns (to know what NOT to do)
|
|
92
|
+
node .aioson/brains/scripts/query.js --avoid --format compact
|
|
93
|
+
|
|
94
|
+
# Best practices for site-forge cloning
|
|
95
|
+
node .aioson/brains/scripts/query.js --agent site-forge --min-quality 4 --format compact
|
|
96
|
+
|
|
97
|
+
# Get specific nodes by ID
|
|
98
|
+
node .aioson/brains/scripts/query.js --id css-001,css-007,js-001
|
|
99
|
+
|
|
100
|
+
# All patterns that match ALL these tags (AND)
|
|
101
|
+
node .aioson/brains/scripts/query.js --tags css,hover,no-js --match all
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## File structure
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
.aioson/brains/
|
|
108
|
+
├── README.md # This file
|
|
109
|
+
├── _index.json # Master index (always loaded, ~2KB)
|
|
110
|
+
├── scripts/
|
|
111
|
+
│ └── query.js # Cross-reference query script
|
|
112
|
+
├── dev/
|
|
113
|
+
│ └── patterns.brain.json # Implementation patterns for @dev (5 nodes)
|
|
114
|
+
├── sheldon/
|
|
115
|
+
│ └── architecture-decisions.brain.json # Architecture decisions for @sheldon (5 nodes)
|
|
116
|
+
└── site-forge/
|
|
117
|
+
└── visual-patterns.brain.json # CSS/animation/interaction patterns (14 nodes)
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Adding a new brain
|
|
121
|
+
|
|
122
|
+
1. Create `agentname/domain.brain.json` following the node schema above
|
|
123
|
+
2. Add an entry to `_index.json` with relevant tags, agent name, and path
|
|
124
|
+
3. Annotate agents that should load it with the relevant tags in their Brain section
|
|
125
|
+
|
|
126
|
+
## Design philosophy
|
|
127
|
+
|
|
128
|
+
- **Procedural, not episodic** — "what works" not "what happened"
|
|
129
|
+
- **Explicit anti-patterns** — `not` and `v:AVOID` nodes prevent regressions
|
|
130
|
+
- **Zettelkasten web** — `see[]` links create traversable knowledge graphs
|
|
131
|
+
- **Token-efficient** — index is tiny; brain files are loaded only when needed
|
|
132
|
+
- **Agent-directed** — agents decide what to load, not an auto-injection system
|
|
File without changes
|
|
@@ -1,16 +1,34 @@
|
|
|
1
|
-
{
|
|
2
|
-
"v": 1,
|
|
3
|
-
"description": "AIOSON Brain Index — agent procedural memory (quality-scored patterns). Load this first, then load specific brain files only when relevant tags match.",
|
|
4
|
-
"loading_strategy": "tiered — this index is always loaded (~2KB); brain files loaded on-demand by tag match",
|
|
5
|
-
"brains": [
|
|
6
|
-
{
|
|
7
|
-
"id": "site-forge/visual-patterns",
|
|
8
|
-
"agents": ["site-forge"],
|
|
9
|
-
"tags": ["css", "animation", "cloning", "visual-effects", "hover", "scroll", "video", "font", "keyframes", "interaction"],
|
|
10
|
-
"desc": "CSS/animation/interaction patterns learned from real site cloning — quality-scored, anti-pattern aware",
|
|
11
|
-
"path": ".aioson/brains/site-forge/visual-patterns.brain.json",
|
|
12
|
-
"nodes": 14,
|
|
13
|
-
"updated": "2026-04-01"
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"description": "AIOSON Brain Index — agent procedural memory (quality-scored patterns). Load this first, then load specific brain files only when relevant tags match.",
|
|
4
|
+
"loading_strategy": "tiered — this index is always loaded (~2KB); brain files loaded on-demand by tag match",
|
|
5
|
+
"brains": [
|
|
6
|
+
{
|
|
7
|
+
"id": "site-forge/visual-patterns",
|
|
8
|
+
"agents": ["site-forge"],
|
|
9
|
+
"tags": ["css", "animation", "cloning", "visual-effects", "hover", "scroll", "video", "font", "keyframes", "interaction"],
|
|
10
|
+
"desc": "CSS/animation/interaction patterns learned from real site cloning — quality-scored, anti-pattern aware",
|
|
11
|
+
"path": ".aioson/brains/site-forge/visual-patterns.brain.json",
|
|
12
|
+
"nodes": 14,
|
|
13
|
+
"updated": "2026-04-01"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "dev/patterns",
|
|
17
|
+
"agents": ["dev", "deyvin", "pair"],
|
|
18
|
+
"tags": ["security", "shell", "injection", "git", "commit", "context", "bootstrap", "cache", "editing", "tooling", "process", "verification", "discipline", "node", "child-process"],
|
|
19
|
+
"desc": "Implementation patterns @dev defaults to — security, shell discipline, git mechanics, editing hygiene, validated-slice loop",
|
|
20
|
+
"path": ".aioson/brains/dev/patterns.brain.json",
|
|
21
|
+
"nodes": 5,
|
|
22
|
+
"updated": "2026-05-07"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "sheldon/architecture-decisions",
|
|
26
|
+
"agents": ["sheldon", "architect"],
|
|
27
|
+
"tags": ["aioson", "template", "agents", "sync", "sdd", "classification", "process", "validator", "sandbox", "impartiality", "discovery", "architecture", "ordering", "cli", "integration", "telemetry"],
|
|
28
|
+
"desc": "Architecture and process decisions @sheldon defaults to — workspace/template parity, classification gates, validator sandbox, discovery-before-architecture, CLI-first integration",
|
|
29
|
+
"path": ".aioson/brains/sheldon/architecture-decisions.brain.json",
|
|
30
|
+
"nodes": 5,
|
|
31
|
+
"updated": "2026-05-07"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"agent": "dev",
|
|
4
|
+
"domain": "patterns",
|
|
5
|
+
"desc": "Implementation patterns @dev should default to. Quality-scored, anti-pattern aware. Seed nodes — extend with new q≥4 patterns after each significant slice.",
|
|
6
|
+
"updated": "2026-05-07",
|
|
7
|
+
"nodes": [
|
|
8
|
+
{
|
|
9
|
+
"id": "dev-001",
|
|
10
|
+
"title": "spawn with array args over execSync template literals",
|
|
11
|
+
"tags": ["security", "shell", "injection", "node", "child-process"],
|
|
12
|
+
"q": 5,
|
|
13
|
+
"v": "BEST_PRACTICE",
|
|
14
|
+
"s": "When invoking external commands from Node, use spawn/execFile with an argv array. Never interpolate user-controlled values into a template-literal command string passed to execSync — that is shell-injection by construction.",
|
|
15
|
+
"p": "// good\nconst { spawnSync } = require('node:child_process');\nspawnSync('git', ['log', '--oneline', '-n', String(n)], { encoding: 'utf8' });\n// bad\nexecSync(`git log --oneline -n ${n}`);",
|
|
16
|
+
"src": "AIOSON commit 171dbf0 (fix tool-invocation)",
|
|
17
|
+
"date": "2026-05-07",
|
|
18
|
+
"not": "execSync(`cmd ${userInput}`) — interpolation goes through /bin/sh and any whitespace/metachar in userInput becomes a new command",
|
|
19
|
+
"warn": "applies even when input feels trusted — slugs, file paths, agent names can all contain shell metachars in tests/fixtures",
|
|
20
|
+
"see": ["dev-002"]
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "dev-002",
|
|
24
|
+
"title": "git commit -m via HEREDOC for multi-line bodies",
|
|
25
|
+
"tags": ["git", "commit", "shell", "formatting"],
|
|
26
|
+
"q": 5,
|
|
27
|
+
"v": "BEST_PRACTICE",
|
|
28
|
+
"s": "Multi-line commit messages must come from a HEREDOC with single-quoted EOF — anything else mangles backticks, $-escapes, and indentation.",
|
|
29
|
+
"p": "git commit -m \"$(cat <<'EOF'\nfix(scope): subject\n\nBody paragraph.\nEOF\n)\"",
|
|
30
|
+
"src": "CLAUDE.md commit protocol",
|
|
31
|
+
"date": "2026-05-07",
|
|
32
|
+
"not": "git commit -m \"line1\\nline2\" — \\n is literal; $vars expand; backticks execute",
|
|
33
|
+
"warn": "the EOF marker must be single-quoted ('EOF') to prevent shell expansion inside the body",
|
|
34
|
+
"see": ["dev-001"]
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "dev-003",
|
|
38
|
+
"title": "append-only updates to context cache files",
|
|
39
|
+
"tags": ["context", "bootstrap", "cache", "idempotency"],
|
|
40
|
+
"q": 4,
|
|
41
|
+
"v": "BEST_PRACTICE",
|
|
42
|
+
"s": "Files that act as system state caches (bootstrap/current-state.md, project-pulse.md, features.md) are append-only. Never replace existing entries — add a new line/row. Other agents trust historical entries to remain stable.",
|
|
43
|
+
"p": "// good — Edit appending one bullet under existing section\n// bad — Write replacing the whole file",
|
|
44
|
+
"src": "AIOSON audit Lote B (commits ff14ccf, 5aa1c0c)",
|
|
45
|
+
"date": "2026-05-07",
|
|
46
|
+
"not": "regenerating the cache from scratch on every update — destroys the audit trail downstream agents read",
|
|
47
|
+
"warn": "if an entry is wrong, mark it superseded with a follow-up entry — do not edit the original line",
|
|
48
|
+
"see": ["dev-005"]
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"id": "dev-004",
|
|
52
|
+
"title": "Read before Edit — surgical edits over rewrites",
|
|
53
|
+
"tags": ["editing", "tooling", "discipline"],
|
|
54
|
+
"q": 5,
|
|
55
|
+
"v": "BEST_PRACTICE",
|
|
56
|
+
"s": "Always read the target file before editing. Prefer Edit (single old_string→new_string) over Write (full rewrite). Anchors must be unique enough to match exactly — surrounding context is your friend.",
|
|
57
|
+
"p": "// good — Edit with a 2-3 line unique anchor\n// bad — Write the whole file just to change one line",
|
|
58
|
+
"src": "Claude Code Edit tool contract; AIOSON dev.md execution invariants",
|
|
59
|
+
"date": "2026-05-07",
|
|
60
|
+
"not": "Write to overwrite an existing file when only one section needs to change — loses concurrent edits and bypasses staleness checks",
|
|
61
|
+
"warn": "if old_string isn't unique, EITHER widen the anchor OR use replace_all — never guess",
|
|
62
|
+
"see": ["dev-003"]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "dev-005",
|
|
66
|
+
"title": "small validated slices over big-bang implementation",
|
|
67
|
+
"tags": ["process", "verification", "tdd-lite", "discipline"],
|
|
68
|
+
"q": 4,
|
|
69
|
+
"v": "GOOD",
|
|
70
|
+
"s": "Implement one slice → run the actual verification command (tsc, cargo check, npm test) → only then move to the next slice. Batched debugging at the end is the slowest path.",
|
|
71
|
+
"p": "loop: { write code → run verification → fix → commit-ready }",
|
|
72
|
+
"src": "dev.md Execution invariants; Motor AIOSON hardening rules",
|
|
73
|
+
"date": "2026-05-07",
|
|
74
|
+
"not": "write 10 files then run tsc — error cascades make root cause hard to find",
|
|
75
|
+
"warn": "verification command must be the real one (the one CI runs), not a proxy you trust",
|
|
76
|
+
"see": ["dev-003"]
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
}
|
|
@@ -1,107 +1,107 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* AIOSON Brain Query
|
|
4
|
-
* Cross-references pattern nodes across brain files by tags, quality, verdict, and agent.
|
|
5
|
-
*
|
|
6
|
-
* Usage:
|
|
7
|
-
* node query.js --tags css,hover # nodes matching any of these tags
|
|
8
|
-
* node query.js --tags css,hover --match all # nodes matching ALL tags (AND)
|
|
9
|
-
* node query.js --min-quality 4 # quality >= 4 only
|
|
10
|
-
* node query.js --agent site-forge # brain files for this agent
|
|
11
|
-
* node query.js --verdict EXCELLENT,BEST_PRACTICE # filter by verdict
|
|
12
|
-
* node query.js --avoid # show only AVOID nodes (anti-patterns)
|
|
13
|
-
* node query.js --id css-001,css-002 # fetch specific node IDs
|
|
14
|
-
* node query.js --tags animation --format compact # one-line per node output
|
|
15
|
-
*
|
|
16
|
-
* Output: JSON array of matching nodes (default) or compact table (--format compact)
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
const fs = require('fs');
|
|
20
|
-
const path = require('path');
|
|
21
|
-
|
|
22
|
-
const BRAINS_DIR = path.resolve(__dirname, '..');
|
|
23
|
-
const INDEX_PATH = path.join(BRAINS_DIR, '_index.json');
|
|
24
|
-
|
|
25
|
-
// --- Parse args ---
|
|
26
|
-
const args = process.argv.slice(2);
|
|
27
|
-
const get = (flag) => { const i = args.indexOf(flag); return i !== -1 ? args[i + 1] : null; };
|
|
28
|
-
const has = (flag) => args.includes(flag);
|
|
29
|
-
|
|
30
|
-
const tagsRaw = get('--tags');
|
|
31
|
-
const tags = tagsRaw ? tagsRaw.split(',').map(t => t.trim()) : [];
|
|
32
|
-
const matchMode = get('--match') || 'any'; // 'any' | 'all'
|
|
33
|
-
const minQ = parseInt(get('--min-quality') || '0', 10);
|
|
34
|
-
const agentFilter = get('--agent');
|
|
35
|
-
const verdictRaw = get('--verdict');
|
|
36
|
-
const verdicts = verdictRaw ? verdictRaw.split(',').map(v => v.trim().toUpperCase()) : [];
|
|
37
|
-
const idRaw = get('--id');
|
|
38
|
-
const ids = idRaw ? idRaw.split(',').map(i => i.trim()) : [];
|
|
39
|
-
const avoidOnly = has('--avoid');
|
|
40
|
-
const format = get('--format') || 'json';
|
|
41
|
-
|
|
42
|
-
// --- Load index ---
|
|
43
|
-
if (!fs.existsSync(INDEX_PATH)) {
|
|
44
|
-
console.error('No _index.json found at', INDEX_PATH);
|
|
45
|
-
process.exit(1);
|
|
46
|
-
}
|
|
47
|
-
const index = JSON.parse(fs.readFileSync(INDEX_PATH, 'utf8'));
|
|
48
|
-
|
|
49
|
-
// --- Determine which brain files to load ---
|
|
50
|
-
let brainFiles = index.brains;
|
|
51
|
-
if (agentFilter) {
|
|
52
|
-
brainFiles = brainFiles.filter(b => b.agents.includes(agentFilter));
|
|
53
|
-
}
|
|
54
|
-
if (tags.length > 0) {
|
|
55
|
-
brainFiles = brainFiles.filter(b => tags.some(t => b.tags.includes(t)));
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// --- Load nodes ---
|
|
59
|
-
let nodes = [];
|
|
60
|
-
for (const brain of brainFiles) {
|
|
61
|
-
const brainPath = path.isAbsolute(brain.path)
|
|
62
|
-
? brain.path
|
|
63
|
-
: brain.path.startsWith('.aioson/brains/')
|
|
64
|
-
? path.join(BRAINS_DIR, '..', '..', brain.path)
|
|
65
|
-
: path.join(BRAINS_DIR, brain.path);
|
|
66
|
-
if (!fs.existsSync(brainPath)) {
|
|
67
|
-
process.stderr.write(`Warning: brain file not found: ${brainPath}\n`);
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
const data = JSON.parse(fs.readFileSync(brainPath, 'utf8'));
|
|
71
|
-
nodes.push(...(data.nodes || []).map(n => ({ ...n, _brain: brain.id })));
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// --- Filter nodes ---
|
|
75
|
-
if (ids.length > 0) {
|
|
76
|
-
nodes = nodes.filter(n => ids.includes(n.id));
|
|
77
|
-
} else {
|
|
78
|
-
if (tags.length > 0) {
|
|
79
|
-
if (matchMode === 'all') {
|
|
80
|
-
nodes = nodes.filter(n => tags.every(t => (n.tags || []).includes(t)));
|
|
81
|
-
} else {
|
|
82
|
-
nodes = nodes.filter(n => tags.some(t => (n.tags || []).includes(t)));
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
if (minQ > 0) {
|
|
86
|
-
nodes = nodes.filter(n => (n.q || 0) >= minQ);
|
|
87
|
-
}
|
|
88
|
-
if (verdicts.length > 0) {
|
|
89
|
-
nodes = nodes.filter(n => verdicts.includes((n.v || '').toUpperCase()));
|
|
90
|
-
}
|
|
91
|
-
if (avoidOnly) {
|
|
92
|
-
nodes = nodes.filter(n => n.v === 'AVOID' || n.v === 'BROKEN');
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// --- Output ---
|
|
97
|
-
if (format === 'compact') {
|
|
98
|
-
const rows = nodes.map(n => `[${n.q}★ ${n.v}] ${n.id} — ${n.title}\n ${n.s}`);
|
|
99
|
-
console.log(rows.join('\n\n') || '(no matches)');
|
|
100
|
-
} else if (format === 'ids') {
|
|
101
|
-
console.log(nodes.map(n => n.id).join('\n'));
|
|
102
|
-
} else {
|
|
103
|
-
console.log(JSON.stringify(nodes, null, 2));
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
// --- Stats footer ---
|
|
107
|
-
process.stderr.write(`\n${nodes.length} node(s) matched across ${brainFiles.length} brain file(s)\n`);
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* AIOSON Brain Query
|
|
4
|
+
* Cross-references pattern nodes across brain files by tags, quality, verdict, and agent.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* node query.js --tags css,hover # nodes matching any of these tags
|
|
8
|
+
* node query.js --tags css,hover --match all # nodes matching ALL tags (AND)
|
|
9
|
+
* node query.js --min-quality 4 # quality >= 4 only
|
|
10
|
+
* node query.js --agent site-forge # brain files for this agent
|
|
11
|
+
* node query.js --verdict EXCELLENT,BEST_PRACTICE # filter by verdict
|
|
12
|
+
* node query.js --avoid # show only AVOID nodes (anti-patterns)
|
|
13
|
+
* node query.js --id css-001,css-002 # fetch specific node IDs
|
|
14
|
+
* node query.js --tags animation --format compact # one-line per node output
|
|
15
|
+
*
|
|
16
|
+
* Output: JSON array of matching nodes (default) or compact table (--format compact)
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
const fs = require('fs');
|
|
20
|
+
const path = require('path');
|
|
21
|
+
|
|
22
|
+
const BRAINS_DIR = path.resolve(__dirname, '..');
|
|
23
|
+
const INDEX_PATH = path.join(BRAINS_DIR, '_index.json');
|
|
24
|
+
|
|
25
|
+
// --- Parse args ---
|
|
26
|
+
const args = process.argv.slice(2);
|
|
27
|
+
const get = (flag) => { const i = args.indexOf(flag); return i !== -1 ? args[i + 1] : null; };
|
|
28
|
+
const has = (flag) => args.includes(flag);
|
|
29
|
+
|
|
30
|
+
const tagsRaw = get('--tags');
|
|
31
|
+
const tags = tagsRaw ? tagsRaw.split(',').map(t => t.trim()) : [];
|
|
32
|
+
const matchMode = get('--match') || 'any'; // 'any' | 'all'
|
|
33
|
+
const minQ = parseInt(get('--min-quality') || '0', 10);
|
|
34
|
+
const agentFilter = get('--agent');
|
|
35
|
+
const verdictRaw = get('--verdict');
|
|
36
|
+
const verdicts = verdictRaw ? verdictRaw.split(',').map(v => v.trim().toUpperCase()) : [];
|
|
37
|
+
const idRaw = get('--id');
|
|
38
|
+
const ids = idRaw ? idRaw.split(',').map(i => i.trim()) : [];
|
|
39
|
+
const avoidOnly = has('--avoid');
|
|
40
|
+
const format = get('--format') || 'json';
|
|
41
|
+
|
|
42
|
+
// --- Load index ---
|
|
43
|
+
if (!fs.existsSync(INDEX_PATH)) {
|
|
44
|
+
console.error('No _index.json found at', INDEX_PATH);
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
const index = JSON.parse(fs.readFileSync(INDEX_PATH, 'utf8'));
|
|
48
|
+
|
|
49
|
+
// --- Determine which brain files to load ---
|
|
50
|
+
let brainFiles = index.brains;
|
|
51
|
+
if (agentFilter) {
|
|
52
|
+
brainFiles = brainFiles.filter(b => b.agents.includes(agentFilter));
|
|
53
|
+
}
|
|
54
|
+
if (tags.length > 0) {
|
|
55
|
+
brainFiles = brainFiles.filter(b => tags.some(t => b.tags.includes(t)));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// --- Load nodes ---
|
|
59
|
+
let nodes = [];
|
|
60
|
+
for (const brain of brainFiles) {
|
|
61
|
+
const brainPath = path.isAbsolute(brain.path)
|
|
62
|
+
? brain.path
|
|
63
|
+
: brain.path.startsWith('.aioson/brains/')
|
|
64
|
+
? path.join(BRAINS_DIR, '..', '..', brain.path)
|
|
65
|
+
: path.join(BRAINS_DIR, brain.path);
|
|
66
|
+
if (!fs.existsSync(brainPath)) {
|
|
67
|
+
process.stderr.write(`Warning: brain file not found: ${brainPath}\n`);
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
const data = JSON.parse(fs.readFileSync(brainPath, 'utf8'));
|
|
71
|
+
nodes.push(...(data.nodes || []).map(n => ({ ...n, _brain: brain.id })));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// --- Filter nodes ---
|
|
75
|
+
if (ids.length > 0) {
|
|
76
|
+
nodes = nodes.filter(n => ids.includes(n.id));
|
|
77
|
+
} else {
|
|
78
|
+
if (tags.length > 0) {
|
|
79
|
+
if (matchMode === 'all') {
|
|
80
|
+
nodes = nodes.filter(n => tags.every(t => (n.tags || []).includes(t)));
|
|
81
|
+
} else {
|
|
82
|
+
nodes = nodes.filter(n => tags.some(t => (n.tags || []).includes(t)));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (minQ > 0) {
|
|
86
|
+
nodes = nodes.filter(n => (n.q || 0) >= minQ);
|
|
87
|
+
}
|
|
88
|
+
if (verdicts.length > 0) {
|
|
89
|
+
nodes = nodes.filter(n => verdicts.includes((n.v || '').toUpperCase()));
|
|
90
|
+
}
|
|
91
|
+
if (avoidOnly) {
|
|
92
|
+
nodes = nodes.filter(n => n.v === 'AVOID' || n.v === 'BROKEN');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// --- Output ---
|
|
97
|
+
if (format === 'compact') {
|
|
98
|
+
const rows = nodes.map(n => `[${n.q}★ ${n.v}] ${n.id} — ${n.title}\n ${n.s}`);
|
|
99
|
+
console.log(rows.join('\n\n') || '(no matches)');
|
|
100
|
+
} else if (format === 'ids') {
|
|
101
|
+
console.log(nodes.map(n => n.id).join('\n'));
|
|
102
|
+
} else {
|
|
103
|
+
console.log(JSON.stringify(nodes, null, 2));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// --- Stats footer ---
|
|
107
|
+
process.stderr.write(`\n${nodes.length} node(s) matched across ${brainFiles.length} brain file(s)\n`);
|