@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
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
# CLI reference — Active Learning Loop
|
|
2
|
+
|
|
3
|
+
> Four new verbs. Each section covers the full contract: flags, behavior, exit codes, output examples.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## `aioson context:load`
|
|
8
|
+
|
|
9
|
+
Records that an agent loaded a rule or brain. Writes a `rule_loaded` or `brain_loaded` event to `execution_events`.
|
|
10
|
+
|
|
11
|
+
**Tier:** 1 (silent — no output by default)
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
aioson context:load [path] --target=<rule|brain>:<slug> --agent=<name> [options]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Flags
|
|
18
|
+
|
|
19
|
+
| Flag | Required | Description |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| `--target=<type>:<slug>` | yes | Type (`rule` or `brain`) and identifier. Ex: `rule:authn-rules`, `brain:sheldon-005` |
|
|
22
|
+
| `--agent=<name>` | yes | Name of the loading agent. Ex: `dev`, `qa`, `sheldon` |
|
|
23
|
+
| `--batch="a,b,c"` | no | Additional slugs to record in batch (same type and agent). Comma-separated |
|
|
24
|
+
| `--feature=<slug>` | no | Associated feature (for traceability in `execution_events`) |
|
|
25
|
+
| `--verbose` | no | Prints confirmation for each recorded event |
|
|
26
|
+
| `--json` | no | JSON output (`{ ok, event, target, agent }`) |
|
|
27
|
+
|
|
28
|
+
### Behavior
|
|
29
|
+
|
|
30
|
+
- Creates a row in `execution_events` with `event_type='rule_loaded'` or `event_type='brain_loaded'`, `payload_json` containing `target_slug`, `agent`, `feature_slug` (if provided).
|
|
31
|
+
- `--batch="b,c"` records additional events for slugs `b` and `c` with the same type as the primary `--target`.
|
|
32
|
+
- Payload cap: 4KB per event.
|
|
33
|
+
- Cross-platform path normalization: slugs are normalized before writing.
|
|
34
|
+
- Does not validate whether the rule/brain file exists — it's pure telemetry.
|
|
35
|
+
|
|
36
|
+
### Exit codes
|
|
37
|
+
|
|
38
|
+
| Code | When |
|
|
39
|
+
|---|---|
|
|
40
|
+
| 0 | Event(s) recorded successfully |
|
|
41
|
+
| 1 | Argument error (malformed target, missing agent) |
|
|
42
|
+
|
|
43
|
+
### Examples
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# Basic
|
|
47
|
+
aioson context:load --target=rule:authn-rules --agent=dev
|
|
48
|
+
|
|
49
|
+
# Batch of 3 rules + verbose
|
|
50
|
+
aioson context:load --target=rule:authn-rules --agent=dev \
|
|
51
|
+
--batch="jwt-patterns,session-management" --verbose
|
|
52
|
+
|
|
53
|
+
# Associated with feature + JSON
|
|
54
|
+
aioson context:load --target=brain:sheldon-006 --agent=sheldon \
|
|
55
|
+
--feature=authn-flow --json
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## `aioson memory:search`
|
|
61
|
+
|
|
62
|
+
BM25 search over `project_learnings` (title + evidence) via SQLite FTS5.
|
|
63
|
+
|
|
64
|
+
**Tier:** 1 (silent — does not emit notify)
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
aioson memory:search "<query>" [path] [options]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Flags
|
|
71
|
+
|
|
72
|
+
| Flag | Default | Description |
|
|
73
|
+
|---|---|---|
|
|
74
|
+
| `"<query>"` | — (required) | Search text. Maximum 500 characters |
|
|
75
|
+
| `path` | `.` | Project root directory |
|
|
76
|
+
| `--limit=N` | 5 | Maximum number of results |
|
|
77
|
+
| `--surface=<value>` | `learnings` | Where to search: `rules`, `learnings`, or `all` |
|
|
78
|
+
| `--include-archived` | false | Includes entries with `archived` status |
|
|
79
|
+
| `--json` | false | JSON output |
|
|
80
|
+
|
|
81
|
+
### Behavior and query sanitization
|
|
82
|
+
|
|
83
|
+
Each token (whitespace-separated) is converted to a quoted phrase and ANDed with the others:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
"JWT authentication" → '"JWT" "authentication"'
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
FTS5 operator characters (`* ( ) ^ : + - "`) are stripped before conversion. If after sanitization the query results in an empty string, the command returns `{ ok: false, reason: 'query_unparseable' }` with exit code 0 (not an error — expected behavior).
|
|
90
|
+
|
|
91
|
+
Archived entries are excluded by default; `--include-archived` includes them.
|
|
92
|
+
|
|
93
|
+
Ranking: BM25 (lower score = more relevant).
|
|
94
|
+
|
|
95
|
+
### Exit codes
|
|
96
|
+
|
|
97
|
+
| Code | When |
|
|
98
|
+
|---|---|
|
|
99
|
+
| 0 | Search executed (even with no results) |
|
|
100
|
+
| 1 | Argument error or DB failure |
|
|
101
|
+
|
|
102
|
+
### Output examples
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
aioson memory:search "JWT authentication"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
2 results for "JWT authentication"
|
|
110
|
+
|
|
111
|
+
[1] authn-refresh-token-ttl (promoted)
|
|
112
|
+
Refresh tokens must have a 7-day max TTL.
|
|
113
|
+
Evidence: 4 sessions
|
|
114
|
+
|
|
115
|
+
[2] jwt-audience-check (for_review)
|
|
116
|
+
Validate 'aud' claim on all endpoints.
|
|
117
|
+
Evidence: 2 sessions
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
No results:
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
0 results for "xyzzy"
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Unparseable query:
|
|
127
|
+
|
|
128
|
+
```json
|
|
129
|
+
{ "ok": false, "reason": "query_unparseable" }
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Full JSON output:
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
{
|
|
136
|
+
"ok": true,
|
|
137
|
+
"query": "JWT authentication",
|
|
138
|
+
"sanitized_query": "\"JWT\" \"authentication\"",
|
|
139
|
+
"results": [
|
|
140
|
+
{
|
|
141
|
+
"id": "authn-refresh-token-ttl",
|
|
142
|
+
"title": "authn-refresh-token-ttl",
|
|
143
|
+
"status": "promoted",
|
|
144
|
+
"score": -2.14,
|
|
145
|
+
"snippet": "Refresh tokens must have a 7-day max TTL."
|
|
146
|
+
}
|
|
147
|
+
],
|
|
148
|
+
"total": 2
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## `aioson memory:archive`
|
|
155
|
+
|
|
156
|
+
Archives a rule, learning, or brain: moves the physical file to `_archived/YYYY-MM-DD/` and records the history in `evolution_log`.
|
|
157
|
+
|
|
158
|
+
**Tier:** 2 (notified — emits `notify --level=warn` before mutation)
|
|
159
|
+
|
|
160
|
+
**Human-only:** refuses when `AIOSON_RUNTIME_HOOK=1` is set.
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
aioson memory:archive [path] --id=<rule|learning|brain>:<slug> --reason="<text>" [options]
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Flags
|
|
167
|
+
|
|
168
|
+
| Flag | Required | Description |
|
|
169
|
+
|---|---|---|
|
|
170
|
+
| `--id=<type>:<slug>` | yes | Type and slug of the target. Types: `rule`, `learning`, `brain` |
|
|
171
|
+
| `--reason="<text>"` | yes | Archival reason (recorded in `evolution_log`) |
|
|
172
|
+
| `--feature=<slug>` | no | Associated feature (for traceability) |
|
|
173
|
+
| `--dry-run` | no | Simulates without side effects — prints what would happen |
|
|
174
|
+
| `--json` | no | JSON output |
|
|
175
|
+
|
|
176
|
+
### Paths by type
|
|
177
|
+
|
|
178
|
+
| Type | Source | Destination |
|
|
179
|
+
|---|---|---|
|
|
180
|
+
| `rule` | `.aioson/rules/<slug>.md` | `.aioson/rules/_archived/YYYY-MM-DD/<slug>.md` |
|
|
181
|
+
| `brain` | `.aioson/brains/<slug>.brain.json` | `.aioson/brains/_archived/YYYY-MM-DD/<slug>.brain.json` |
|
|
182
|
+
| `learning` | `.aioson/context/<slug>.json` | `.aioson/context/_archived/YYYY-MM-DD/<slug>.json` |
|
|
183
|
+
|
|
184
|
+
Name collision at destination: `-{seq}` suffix is added automatically (`-1`, `-2`, etc.).
|
|
185
|
+
|
|
186
|
+
### Behavior
|
|
187
|
+
|
|
188
|
+
1. Checks `AIOSON_RUNTIME_HOOK=1` — refuses if set.
|
|
189
|
+
2. Resolves the file path. Errors if not found.
|
|
190
|
+
3. Idempotent noop if already archived.
|
|
191
|
+
4. Emits `notify --level=warn` before any mutation.
|
|
192
|
+
5. Atomic operation: BEGIN TRANSACTION, physical move, INSERT/UPDATE in `evolution_log`, COMMIT. If COMMIT fails, attempts to reverse the physical move.
|
|
193
|
+
6. Records `event_type='archived'` in `evolution_log` (previous active entry receives `end_at`).
|
|
194
|
+
|
|
195
|
+
### Exit codes
|
|
196
|
+
|
|
197
|
+
| Code | When |
|
|
198
|
+
|---|---|
|
|
199
|
+
| 0 | Archived successfully (or noop if already archived) |
|
|
200
|
+
| 0 | `--dry-run` executed |
|
|
201
|
+
| 1 | Target not found, AIOSON_RUNTIME_HOOK=1, DB or FS failure |
|
|
202
|
+
|
|
203
|
+
### Examples
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# Dry-run first
|
|
207
|
+
aioson memory:archive --id=rule:legacy-session-cookies \
|
|
208
|
+
--reason="replaced by JWT auth (authn-flow)" --dry-run
|
|
209
|
+
|
|
210
|
+
# Real execution
|
|
211
|
+
aioson memory:archive --id=rule:legacy-session-cookies \
|
|
212
|
+
--reason="replaced by JWT auth (authn-flow)"
|
|
213
|
+
|
|
214
|
+
# With associated feature
|
|
215
|
+
aioson memory:archive --id=rule:legacy-session-cookies \
|
|
216
|
+
--reason="replaced by JWT auth (authn-flow)" --feature=authn-flow
|
|
217
|
+
|
|
218
|
+
# JSON
|
|
219
|
+
aioson memory:archive --id=rule:legacy-session-cookies \
|
|
220
|
+
--reason="obsolete" --json
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
JSON output:
|
|
224
|
+
|
|
225
|
+
```json
|
|
226
|
+
{
|
|
227
|
+
"ok": true,
|
|
228
|
+
"action": "archived",
|
|
229
|
+
"type": "rule",
|
|
230
|
+
"slug": "legacy-session-cookies",
|
|
231
|
+
"source": ".aioson/rules/legacy-session-cookies.md",
|
|
232
|
+
"dest": ".aioson/rules/_archived/2026-05-14/legacy-session-cookies.md",
|
|
233
|
+
"evolution_log_rowid": 42
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## `aioson memory:restore`
|
|
240
|
+
|
|
241
|
+
Restores an archived item: moves it back to the original path and records `event_type='restored'` in `evolution_log`.
|
|
242
|
+
|
|
243
|
+
**Tier:** 2 (notified — emits `notify --level=warn` before mutation)
|
|
244
|
+
|
|
245
|
+
**Human-only:** refuses when `AIOSON_RUNTIME_HOOK=1` is set.
|
|
246
|
+
|
|
247
|
+
```
|
|
248
|
+
aioson memory:restore [path] --id=<rule|learning|brain>:<slug> [options]
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Flags
|
|
252
|
+
|
|
253
|
+
| Flag | Required | Description |
|
|
254
|
+
|---|---|---|
|
|
255
|
+
| `--id=<type>:<slug>` | yes | Type and slug of the item to restore |
|
|
256
|
+
| `--reason="<text>"` | no | Restoration reason (recorded in `evolution_log`) |
|
|
257
|
+
| `--feature=<slug>` | no | Associated feature (for traceability) |
|
|
258
|
+
| `--dry-run` | no | Simulates without side effects |
|
|
259
|
+
| `--json` | no | JSON output |
|
|
260
|
+
|
|
261
|
+
### Behavior
|
|
262
|
+
|
|
263
|
+
1. Locates the most recent file in `_archived/*/` matching the slug.
|
|
264
|
+
2. Verifies that the original destination path is available — errors if a file already exists there.
|
|
265
|
+
3. Emits `notify --level=warn` before any mutation.
|
|
266
|
+
4. Atomic operation: physical move + INSERT `event_type='restored'` + UPDATE `end_at` of the active `archived` entry.
|
|
267
|
+
|
|
268
|
+
### Exit codes
|
|
269
|
+
|
|
270
|
+
| Code | When |
|
|
271
|
+
|---|---|
|
|
272
|
+
| 0 | Restored successfully |
|
|
273
|
+
| 0 | `--dry-run` executed |
|
|
274
|
+
| 1 | Item not found in `_archived/`, original path already occupied, AIOSON_RUNTIME_HOOK=1 |
|
|
275
|
+
|
|
276
|
+
### Examples
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# Dry-run
|
|
280
|
+
aioson memory:restore --id=rule:rate-limiting-rules --dry-run
|
|
281
|
+
|
|
282
|
+
# Real execution with reason
|
|
283
|
+
aioson memory:restore --id=rule:rate-limiting-rules \
|
|
284
|
+
--reason="rule still needed — removal was premature"
|
|
285
|
+
|
|
286
|
+
# JSON
|
|
287
|
+
aioson memory:restore --id=rule:rate-limiting-rules --json
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## `aioson feature:close` (modified)
|
|
293
|
+
|
|
294
|
+
The existing `feature:close` command gained a distillation hook at the end. The syntax has not changed — only `--no-distill` was added.
|
|
295
|
+
|
|
296
|
+
```
|
|
297
|
+
aioson feature:close --slug=<slug> --verdict=<PASS|FAIL|ABANDONED> [--no-distill]
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Added flag
|
|
301
|
+
|
|
302
|
+
| Flag | Description |
|
|
303
|
+
|---|---|
|
|
304
|
+
| `--no-distill` | Skips the distillation hook for this call (does not permanently alter config) |
|
|
305
|
+
|
|
306
|
+
### Hook behavior
|
|
307
|
+
|
|
308
|
+
- Only runs when `--verdict=PASS` and classification is not MICRO.
|
|
309
|
+
- Foreground with 5s timeout (configurable in `learning-loop.json`).
|
|
310
|
+
- Exit code always 0, even if distillation fails.
|
|
311
|
+
- Emits exactly 1 notify `--level=info --topic=learning-loop` with the summary.
|
|
312
|
+
- Records result in `evolution_log` (`auto_distillation` or `distillation_failed`).
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## Continue reading
|
|
317
|
+
|
|
318
|
+
- [How to use](./how-to-use.md) — end-to-end examples
|
|
319
|
+
- [Doctor checks](./doctor-checks.md) — what the doctor checks mean
|
|
320
|
+
- [Troubleshooting](./troubleshooting.md) — known issues
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# Diagrams — Active Learning Loop in ASCII
|
|
2
|
+
|
|
3
|
+
> Canonical flows for the feature. ASCII because it renders in any terminal, any Markdown viewer, and any diff.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. `feature:close` → distillation → `evolution_log` → `doctor`
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
aioson feature:close --slug=my-feature --verdict=PASS
|
|
11
|
+
│
|
|
12
|
+
├── [existing] gate validation
|
|
13
|
+
├── [existing] dossier finalize
|
|
14
|
+
├── [existing] features.md update
|
|
15
|
+
│
|
|
16
|
+
└── [NEW] runHookOnFeatureClose()
|
|
17
|
+
│
|
|
18
|
+
├── Read PRD frontmatter classification
|
|
19
|
+
│ └── MICRO? → notify "skipped: MICRO classification" → exit 0
|
|
20
|
+
│
|
|
21
|
+
├── Read features.md status
|
|
22
|
+
│ └── abandoned? → silent skip → exit 0
|
|
23
|
+
│
|
|
24
|
+
├── --no-distill passed? → skip → exit 0
|
|
25
|
+
│
|
|
26
|
+
├── Attempt to acquire lock:
|
|
27
|
+
│ INSERT INTO evolution_log
|
|
28
|
+
│ (feature_slug='my-feature', event_type='auto_distillation',
|
|
29
|
+
│ start_at=now(), end_at=NULL, actor='auto', payload='{"state":"start"}')
|
|
30
|
+
│ └── active row already exists? → notify "already in progress" → exit 0
|
|
31
|
+
│
|
|
32
|
+
├── setTimeout(5000ms) → AbortController.abort()
|
|
33
|
+
│
|
|
34
|
+
├── try {
|
|
35
|
+
│ learning:auto-promote --feature=my-feature
|
|
36
|
+
│ └── returns { promoted: N, for_review: M }
|
|
37
|
+
│ }
|
|
38
|
+
│ catch (err) {
|
|
39
|
+
│ UPDATE evolution_log SET event_type='distillation_failed',
|
|
40
|
+
│ end_at=now(), payload='{"error":"...", "phase":"auto-promote"}'
|
|
41
|
+
│ // swallow exception — do not rethrow
|
|
42
|
+
│ }
|
|
43
|
+
│
|
|
44
|
+
├── UPDATE evolution_log SET end_at=now(),
|
|
45
|
+
│ payload='{"state":"complete","promoted":N,"review":M,"merge":0,"duration_ms":D}'
|
|
46
|
+
│
|
|
47
|
+
├── aioson notify --level=info --topic=learning-loop
|
|
48
|
+
│ --message="distillation: N promoted, M for review, 0 merge candidates"
|
|
49
|
+
│
|
|
50
|
+
└── exit 0 ← always 0, regardless of distillation failure
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 2. Lock pattern (DD-3 — two simultaneous terminals)
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
Terminal A Terminal B
|
|
59
|
+
────────────────────────────────── ──────────────────────────────────
|
|
60
|
+
feature:close --slug=X feature:close --slug=X (simultaneous)
|
|
61
|
+
|
|
62
|
+
SELECT 1 FROM evolution_log
|
|
63
|
+
WHERE feature_slug='X'
|
|
64
|
+
AND event_type='auto_distillation'
|
|
65
|
+
AND end_at IS NULL
|
|
66
|
+
→ 0 rows
|
|
67
|
+
|
|
68
|
+
INSERT row (end_at=NULL) → rowid=42
|
|
69
|
+
SELECT 1 ... → 1 row (rowid=42)
|
|
70
|
+
notify "already in progress" → exit 0
|
|
71
|
+
|
|
72
|
+
(distillation runs ~2-3s)
|
|
73
|
+
|
|
74
|
+
UPDATE rowid=42 SET end_at=now()
|
|
75
|
+
notify "N promoted, M for review"
|
|
76
|
+
exit 0
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 3. `memory:archive` — atomic operation with rollback
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
aioson memory:archive --id=rule:authn --reason="obsolete after OAuth"
|
|
85
|
+
│
|
|
86
|
+
├── Check AIOSON_RUNTIME_HOOK=1 → refuse (tier-2 human-only)
|
|
87
|
+
│
|
|
88
|
+
├── Resolve path: .aioson/rules/authn.md
|
|
89
|
+
│ └── not found? → error: "target not found"
|
|
90
|
+
│
|
|
91
|
+
├── Already archived? → noop (idempotent)
|
|
92
|
+
│
|
|
93
|
+
├── aioson notify --level=warn --topic=memory-archive
|
|
94
|
+
│ --message="archiving rule:authn — authn.md"
|
|
95
|
+
│
|
|
96
|
+
├── BEGIN TRANSACTION (SQLite)
|
|
97
|
+
│
|
|
98
|
+
├── physical move:
|
|
99
|
+
│ .aioson/rules/authn.md
|
|
100
|
+
│ → .aioson/rules/_archived/2026-05-14/authn.md
|
|
101
|
+
│ └── move error → ROLLBACK → exit 1
|
|
102
|
+
│
|
|
103
|
+
├── INSERT evolution_log (event_type='archived', start_at=now(), end_at=NULL,
|
|
104
|
+
│ target_type='rule', target_id='authn', reason='obsolete after OAuth',
|
|
105
|
+
│ actor='human', feature_slug=<--feature if passed>)
|
|
106
|
+
│
|
|
107
|
+
├── UPDATE evolution_log SET end_at=now()
|
|
108
|
+
│ WHERE target_id='authn' AND end_at IS NULL AND event_type != 'archived'
|
|
109
|
+
│ (closes previous active entry)
|
|
110
|
+
│
|
|
111
|
+
├── COMMIT
|
|
112
|
+
│ └── COMMIT error → attempt to reverse physical move → exit 1
|
|
113
|
+
│
|
|
114
|
+
└── { ok: true, path: "_archived/2026-05-14/authn.md" }
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## 4. `doctor` cycle with the new checks
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
$ aioson doctor .
|
|
123
|
+
│
|
|
124
|
+
▼
|
|
125
|
+
┌──────────────────────────────────────────────────────────────────┐
|
|
126
|
+
│ runDoctor(targetDir) │
|
|
127
|
+
│ └─ checks[] │
|
|
128
|
+
│ ├─ ... [existing checks severity='error'] ... │
|
|
129
|
+
│ ├─ living-memory:bootstrap_coverage [severity: warning] │
|
|
130
|
+
│ ├─ living-memory:features_dir [severity: warning] │
|
|
131
|
+
│ ├─ living-memory:claude_commands [severity: warning] │
|
|
132
|
+
│ ├─ living-memory:version_drift [severity: warning] │
|
|
133
|
+
│ ├─ living-memory:permissions_in_sync [severity: warning] │
|
|
134
|
+
│ │ │
|
|
135
|
+
│ ├─ [NEW] living-memory:rule_staleness [severity: warning] │
|
|
136
|
+
│ │ └─ query: execution_events WHERE event_type='rule_loaded'
|
|
137
|
+
│ │ AND context LIKE 'feature=%' GROUP BY slug
|
|
138
|
+
│ │ → stale if no hit in last N features │
|
|
139
|
+
│ │ │
|
|
140
|
+
│ ├─ [NEW] living-memory:learning_orphans [severity: warning] │
|
|
141
|
+
│ │ └─ query: project_learnings WHERE status='promoted' │
|
|
142
|
+
│ │ LEFT JOIN execution_events (rule_loaded, after │
|
|
143
|
+
│ │ promoted_at) → orphan if join returns NULL │
|
|
144
|
+
│ │ │
|
|
145
|
+
│ └─ [NEW] living-memory:distillation_lag [severity: warning] │
|
|
146
|
+
│ └─ count(closed features) vs count(auto_distillation │
|
|
147
|
+
│ in evolution_log) → lag if closed > distillations │
|
|
148
|
+
│ │
|
|
149
|
+
│ report.ok = errorCount === 0 │
|
|
150
|
+
│ (warnings count in failedCount but do not affect ok) │
|
|
151
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 5. Validity-window in `evolution_log`
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
Initial state (active rule):
|
|
160
|
+
─────────────────────────────────────────────────────────────────
|
|
161
|
+
rowid | target_type | target_id | event_type | start_at | end_at
|
|
162
|
+
1 | 'rule' | 'authn' | 'created' | 2026-01-10 | NULL ← active
|
|
163
|
+
|
|
164
|
+
memory:archive runs:
|
|
165
|
+
─────────────────────────────────────────────────────────────────
|
|
166
|
+
rowid | target_type | target_id | event_type | start_at | end_at
|
|
167
|
+
1 | 'rule' | 'authn' | 'created' | 2026-01-10 | 2026-05-14 ← closed
|
|
168
|
+
2 | 'rule' | 'authn' | 'archived'| 2026-05-14 | NULL ← active
|
|
169
|
+
|
|
170
|
+
memory:restore runs:
|
|
171
|
+
─────────────────────────────────────────────────────────────────
|
|
172
|
+
rowid | target_type | target_id | event_type | start_at | end_at
|
|
173
|
+
1 | 'rule' | 'authn' | 'created' | 2026-01-10 | 2026-05-14
|
|
174
|
+
2 | 'rule' | 'authn' | 'archived'| 2026-05-14 | 2026-05-14 ← closed
|
|
175
|
+
3 | 'rule' | 'authn' | 'restored'| 2026-05-14 | NULL ← active
|
|
176
|
+
|
|
177
|
+
Invariant: start_at and reason never change after INSERT.
|
|
178
|
+
Only end_at is updated, and only once.
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## 6. FTS5 — sync flow and search
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
project_learnings (normal table)
|
|
187
|
+
│
|
|
188
|
+
│ SQL triggers (INSERT, UPDATE, DELETE)
|
|
189
|
+
▼
|
|
190
|
+
project_learnings_fts (FTS5 virtual table)
|
|
191
|
+
indexed columns: title, evidence
|
|
192
|
+
ranking: BM25 (default)
|
|
193
|
+
│
|
|
194
|
+
│ aioson memory:search "JWT authentication"
|
|
195
|
+
▼
|
|
196
|
+
Query sanitization:
|
|
197
|
+
input: "JWT authentication"
|
|
198
|
+
tokens: ["JWT", "authentication"]
|
|
199
|
+
FTS5: '"JWT" "authentication"' ← token-AND, each token is a literal phrase
|
|
200
|
+
│
|
|
201
|
+
▼
|
|
202
|
+
SELECT l.*, fts.rank
|
|
203
|
+
FROM project_learnings_fts fts
|
|
204
|
+
JOIN project_learnings l ON l.rowid = fts.rowid
|
|
205
|
+
WHERE fts MATCH '"JWT" "authentication"'
|
|
206
|
+
AND l.status != 'archived' ← excluded by default
|
|
207
|
+
ORDER BY fts.rank ← BM25 (lower = more relevant)
|
|
208
|
+
LIMIT 5
|
|
209
|
+
│
|
|
210
|
+
▼
|
|
211
|
+
Result:
|
|
212
|
+
[1] jwt-refresh-token-ttl (score: -2.14)
|
|
213
|
+
"Refresh JWT tokens must have a 7-day TTL..."
|
|
214
|
+
[2] jwt-audience-validation (score: -1.87)
|
|
215
|
+
...
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Continue reading
|
|
221
|
+
|
|
222
|
+
- [What is the Active Learning Loop](./active-learning-loop.md) — concept and phases
|
|
223
|
+
- [How to use](./how-to-use.md) — concrete examples
|
|
224
|
+
- [Doctor checks](./doctor-checks.md) — what the checks mean
|
|
225
|
+
- [Troubleshooting](./troubleshooting.md) — known issues
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# Doctor checks — memory curation
|
|
2
|
+
|
|
3
|
+
> The three new checks appear in `aioson doctor .` with `severity='warning'`. Warnings do not affect `ok=true` — the project keeps working. But each one represents a curation gap that, if ignored, makes project memory less useful over time.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## How the checks appear
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
aioson doctor .
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
When everything is healthy:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
[OK] living-memory:rule_staleness
|
|
17
|
+
[OK] living-memory:learning_orphans
|
|
18
|
+
[OK] living-memory:distillation_lag
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
When there are gaps:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
[WARN] living-memory:rule_staleness (2 stale rules)
|
|
25
|
+
...
|
|
26
|
+
[WARN] living-memory:learning_orphans (1 orphan)
|
|
27
|
+
...
|
|
28
|
+
[WARN] living-memory:distillation_lag
|
|
29
|
+
...
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
All three checks only run on projects with **SMALL** or **MEDIUM** classification. MICRO projects opt out automatically — none of the three will appear.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## `living-memory:rule_staleness`
|
|
37
|
+
|
|
38
|
+
**What it detects:** rules (files in `.aioson/rules/`) with zero `rule_loaded` events in the last N closed features.
|
|
39
|
+
|
|
40
|
+
**Why it matters:** if no agent loaded a rule in the last N features, it has likely lost relevance — the project context changed, the rule was superseded, or it was simply never used. Stale rules occupy space in agents' context windows without adding value.
|
|
41
|
+
|
|
42
|
+
**How N is calculated:**
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
N = max(5, ceil(average days between last 5 features / 7))
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Projects with frequent features (1 per week) get N = 5. Projects with a slower pace (1 per month) get a larger N — the window expands to cover the same real period of time.
|
|
49
|
+
|
|
50
|
+
`staleness_window_features_min: 5` in `learning-loop.json` defines the floor.
|
|
51
|
+
|
|
52
|
+
**Typical output:**
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
[WARN] living-memory:rule_staleness (2 stale rules)
|
|
56
|
+
Rule 'legacy-session-cookies' has 0 rule_loaded events in last 7 features.
|
|
57
|
+
Rule 'old-rate-limit-policy' has 0 rule_loaded events in last 7 features.
|
|
58
|
+
Hint:
|
|
59
|
+
aioson memory:archive --id=rule:legacy-session-cookies --reason="<reason>"
|
|
60
|
+
aioson memory:archive --id=rule:old-rate-limit-policy --reason="<reason>"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**How to act:**
|
|
64
|
+
|
|
65
|
+
1. Check if the rule is still relevant to the current project.
|
|
66
|
+
2. If not: use the doctor's hint to archive it.
|
|
67
|
+
3. If still relevant but not being loaded: add `context:load` to the agents that should use it.
|
|
68
|
+
4. If unsure: archive with `--dry-run` to see the impact before executing.
|
|
69
|
+
|
|
70
|
+
**False positive:** the check only works when agents are using `aioson context:load` to declare loads. If your custom agents don't do this, the check will report everything as stale. Solution: add `aioson context:load` to the beginning of sessions.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## `living-memory:learning_orphans`
|
|
75
|
+
|
|
76
|
+
**What it detects:** learnings with `status='promoted'` whose target rule had no `rule_loaded` events after the promotion date.
|
|
77
|
+
|
|
78
|
+
**Why it matters:** when a learning is promoted, it generated (or should have generated) a rule. If that rule was never loaded by any agent since the promotion, it means one of two things: either the rule was never actually created (a failure in the promotion flow), or it was created but agents aren't consulting it. Either way, it's a gap.
|
|
79
|
+
|
|
80
|
+
**Typical output:**
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
[WARN] living-memory:learning_orphans (1 orphan)
|
|
84
|
+
Learning 'jwt-expiry-pattern' (promoted 2026-04-10) — target rule had no
|
|
85
|
+
rule_loaded events after promotion date.
|
|
86
|
+
Hint:
|
|
87
|
+
aioson memory:archive --id=learning:jwt-expiry-pattern --reason="<reason>"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**How to act:**
|
|
91
|
+
|
|
92
|
+
1. Check if the corresponding rule exists in `.aioson/rules/`.
|
|
93
|
+
2. If the rule doesn't exist: the learning was promoted but never materialized a rule — create the rule manually or archive the learning.
|
|
94
|
+
3. If the rule exists but was never loaded: add `context:load` where appropriate, or archive the rule if it's no longer relevant.
|
|
95
|
+
4. If the learning was promoted by mistake: archive it.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## `living-memory:distillation_lag`
|
|
100
|
+
|
|
101
|
+
**What it detects:** projects where the number of closed features significantly exceeds the number of `auto_distillation` events recorded in `evolution_log`. Threshold: 5+ features closed with fewer distillations than closures.
|
|
102
|
+
|
|
103
|
+
**Why it matters:** if `feature:close` is being called but distillation isn't running, the loop is silently broken. Learnings are accumulating without distillation. It may be that `--no-distill` is being used consistently, that the hook is failing silently, or that the project migrated to the framework after closing several features.
|
|
104
|
+
|
|
105
|
+
**Typical output:**
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
[WARN] living-memory:distillation_lag
|
|
109
|
+
8 features closed, 5 auto_distillation events recorded.
|
|
110
|
+
Hint: check if distillation is failing silently:
|
|
111
|
+
sqlite3 .aioson/runtime/aios.sqlite \
|
|
112
|
+
"SELECT feature_slug, payload_json FROM evolution_log \
|
|
113
|
+
WHERE event_type='distillation_failed' ORDER BY start_at DESC LIMIT 5;"
|
|
114
|
+
Or run distillation manually on recent features.
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**How to act:**
|
|
118
|
+
|
|
119
|
+
1. Run the SQLite command from the hint to see if there are recorded silent failures.
|
|
120
|
+
2. If there are `distillation_failed` entries: check `payload_json.error_phase` to understand where it's failing and consult [Troubleshooting](./troubleshooting.md).
|
|
121
|
+
3. If there are no failures but there is lag: features were probably closed with `--no-distill` or before the hook existed. The lag will decrease naturally as new features are closed.
|
|
122
|
+
4. If the project is new to the framework but had old features: the lag is expected and will resolve itself.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Quick summary
|
|
127
|
+
|
|
128
|
+
| Check | Problematic signal | Immediate action |
|
|
129
|
+
|---|---|---|
|
|
130
|
+
| `rule_staleness` | Rule with no `rule_loaded` in N features | Check relevance → archive or add `context:load` |
|
|
131
|
+
| `learning_orphans` | Promoted learning, rule never loaded | Check if rule exists → create, archive learning, or add `context:load` |
|
|
132
|
+
| `distillation_lag` | More features closed than distillations | Inspect `distillation_failed` in `evolution_log` |
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## About `warning` severity
|
|
137
|
+
|
|
138
|
+
The three checks have `severity='warning'`, not `severity='error'`. This means:
|
|
139
|
+
|
|
140
|
+
- `report.ok` remains `true` even with warnings.
|
|
141
|
+
- `report.failedCount` includes warnings.
|
|
142
|
+
- There is no automatic `doctor --fix` for these checks — the actions are semantic and require human judgment.
|
|
143
|
+
- The hint for each check includes the exact command to run when you decide to act.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Continue reading
|
|
148
|
+
|
|
149
|
+
- [How to use](./how-to-use.md) — examples of archive and restore
|
|
150
|
+
- [CLI reference](./cli-commands.md) — flags for `memory:archive` and `memory:restore`
|
|
151
|
+
- [Troubleshooting](./troubleshooting.md) — stuck lock, distillation failures
|