@jaimevalasek/aioson 1.8.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +595 -595
- package/CODE_OF_CONDUCT.md +12 -12
- package/CONTRIBUTING.md +13 -13
- package/LICENSE +661 -661
- package/README.md +919 -919
- package/bin/aioson.js +4 -4
- package/docs/design-previews/aurora-command-ui-website.html +884 -884
- package/docs/design-previews/aurora-command-ui.html +682 -682
- package/docs/design-previews/bold-editorial-ui-website.html +658 -658
- package/docs/design-previews/bold-editorial-ui.html +717 -717
- package/docs/design-previews/clean-saas-ui-website.html +1202 -1202
- package/docs/design-previews/clean-saas-ui.html +549 -549
- package/docs/design-previews/cognitive-core-ui-website.html +1009 -1009
- package/docs/design-previews/cognitive-core-ui.html +463 -463
- package/docs/design-previews/glassmorphism-ui-website.html +572 -572
- package/docs/design-previews/glassmorphism-ui.html +886 -886
- package/docs/design-previews/index.html +699 -699
- package/docs/design-previews/interface-design-website.html +1187 -1187
- package/docs/design-previews/interface-design.html +513 -513
- package/docs/design-previews/neo-brutalist-ui-website.html +621 -621
- package/docs/design-previews/neo-brutalist-ui.html +797 -797
- package/docs/design-previews/premium-command-center-ui-website.html +1217 -1217
- package/docs/design-previews/premium-command-center-ui.html +552 -552
- package/docs/design-previews/pt.squarespace.com-homepage.html +889 -889
- package/docs/design-previews/warm-craft-ui-website.html +684 -684
- package/docs/design-previews/warm-craft-ui.html +739 -739
- package/docs/en/1-understand/ecosystem-map.md +228 -0
- package/docs/en/1-understand/glossary.md +288 -0
- package/docs/en/1-understand/what-is-aioson.md +94 -0
- package/docs/en/1-understand/why-it-exists.md +106 -0
- package/docs/en/2-start/existing-project.md +246 -0
- package/docs/en/2-start/first-project.md +307 -0
- package/docs/en/2-start/initial-decisions.md +223 -0
- package/docs/en/3-recipes/README.md +28 -0
- package/docs/en/3-recipes/continuity-between-sessions.md +303 -0
- package/docs/en/3-recipes/from-idea-to-prd-via-briefing.md +235 -0
- package/docs/en/3-recipes/full-feature-with-sheldon.md +338 -0
- package/docs/en/4-agents/README.md +56 -0
- package/docs/en/5-reference/README.md +60 -0
- package/docs/en/{cli-reference.md → 5-reference/cli-reference.md} +639 -464
- package/docs/en/{i18n.md → 5-reference/i18n.md} +52 -52
- package/docs/en/{json-schemas.md → 5-reference/json-schemas.md} +41 -41
- package/docs/en/{mcp.md → 5-reference/mcp.md} +56 -56
- package/docs/en/{parallel.md → 5-reference/parallel.md} +82 -82
- package/docs/en/{qa-browser.md → 5-reference/qa-browser.md} +339 -339
- package/docs/en/{release-flow.md → 5-reference/release-flow.md} +22 -22
- package/docs/en/{release-notes-template.md → 5-reference/release-notes-template.md} +41 -41
- package/docs/en/{release.md → 5-reference/release.md} +28 -28
- package/docs/en/{schemas → 5-reference/schemas}/agent-prompt.schema.json +17 -17
- package/docs/en/{schemas → 5-reference/schemas}/agents.schema.json +32 -32
- package/docs/en/{schemas → 5-reference/schemas}/context-validate.schema.json +36 -36
- package/docs/en/{schemas → 5-reference/schemas}/doctor.schema.json +89 -89
- package/docs/en/{schemas → 5-reference/schemas}/error.schema.json +24 -24
- package/docs/en/{schemas → 5-reference/schemas}/i18n-add.schema.json +15 -15
- package/docs/en/{schemas → 5-reference/schemas}/index.json +126 -126
- package/docs/en/{schemas → 5-reference/schemas}/info.schema.json +39 -39
- package/docs/en/{schemas → 5-reference/schemas}/init.schema.json +48 -48
- package/docs/en/{schemas → 5-reference/schemas}/install.schema.json +60 -60
- package/docs/en/{schemas → 5-reference/schemas}/locale-apply.schema.json +30 -30
- package/docs/en/{schemas → 5-reference/schemas}/mcp-doctor.schema.json +95 -95
- package/docs/en/{schemas → 5-reference/schemas}/mcp-init.schema.json +122 -122
- package/docs/en/{schemas → 5-reference/schemas}/package-test.schema.json +24 -24
- package/docs/en/{schemas → 5-reference/schemas}/parallel-assign.schema.json +66 -66
- package/docs/en/{schemas → 5-reference/schemas}/parallel-doctor.schema.json +122 -122
- package/docs/en/{schemas → 5-reference/schemas}/parallel-guard.schema.json +63 -63
- package/docs/en/{schemas → 5-reference/schemas}/parallel-init.schema.json +53 -53
- package/docs/en/{schemas → 5-reference/schemas}/parallel-merge.schema.json +84 -84
- package/docs/en/{schemas → 5-reference/schemas}/parallel-status.schema.json +184 -184
- package/docs/en/{schemas → 5-reference/schemas}/setup-context.schema.json +39 -39
- package/docs/en/{schemas → 5-reference/schemas}/smoke.schema.json +23 -23
- package/docs/en/{schemas → 5-reference/schemas}/update.schema.json +48 -48
- package/docs/en/{schemas → 5-reference/schemas}/workflow-plan.schema.json +30 -30
- package/docs/en/{squad-dashboard.md → 5-reference/squad-dashboard.md} +372 -372
- package/docs/en/{web3.md → 5-reference/web3.md} +54 -54
- package/docs/en/README.md +115 -0
- package/docs/en/active-learning-loop/README.md +117 -0
- package/docs/en/active-learning-loop/active-learning-loop.md +117 -0
- package/docs/en/active-learning-loop/cli-commands.md +320 -0
- package/docs/en/active-learning-loop/diagrams.md +225 -0
- package/docs/en/active-learning-loop/doctor-checks.md +151 -0
- package/docs/en/active-learning-loop/how-to-use.md +313 -0
- package/docs/en/active-learning-loop/troubleshooting.md +283 -0
- package/docs/en/deyvin-subtask-scout/README.md +109 -0
- package/docs/en/deyvin-subtask-scout/cli-commands.md +248 -0
- package/docs/en/deyvin-subtask-scout/diagrams.md +124 -0
- package/docs/en/deyvin-subtask-scout/how-to-use.md +221 -0
- package/docs/en/deyvin-subtask-scout/sub-task-scout.md +115 -0
- package/docs/en/deyvin-subtask-scout/troubleshooting.md +184 -0
- package/docs/integrations/apps-publish-marketplace.md +94 -94
- package/docs/integrations/sdlc-genius-boundary.md +76 -76
- package/docs/integrations/sdlc-genius-eval-matrix.md +75 -75
- package/docs/integrations/sdlc-genius-install-checklist.md +93 -93
- package/docs/integrations/sdlc-genius-review-samples.md +86 -86
- package/docs/openclaw-bridge.md +308 -308
- package/docs/pt/1-entender/glossario.md +288 -0
- package/docs/pt/1-entender/mapa-do-ecossistema.md +228 -0
- package/docs/pt/1-entender/o-que-e-aioson.md +94 -0
- package/docs/pt/1-entender/por-que-existe.md +107 -0
- package/docs/pt/2-comecar/decisoes-iniciais.md +223 -0
- package/docs/pt/2-comecar/primeiro-projeto.md +307 -0
- package/docs/pt/2-comecar/projeto-existente.md +245 -0
- package/docs/pt/3-receitas/README.md +28 -0
- package/docs/pt/3-receitas/app-saas-do-zero.md +324 -0
- package/docs/pt/3-receitas/auditoria-seguranca.md +254 -0
- package/docs/pt/3-receitas/clonar-design-de-site.md +211 -0
- package/docs/pt/3-receitas/continuidade-entre-sessoes.md +303 -0
- package/docs/pt/3-receitas/da-ideia-ao-prd-via-briefing.md +234 -0
- package/docs/pt/3-receitas/feature-completa-com-sheldon.md +338 -0
- package/docs/pt/3-receitas/integracao-em-codebase-grande.md +243 -0
- package/docs/pt/3-receitas/landing-page.md +281 -0
- package/docs/pt/3-receitas/plans-externos-para-product.md +191 -0
- package/docs/pt/3-receitas/publicar-no-aioson-com.md +219 -0
- package/docs/pt/3-receitas/refatoracao-grande.md +251 -0
- package/docs/pt/4-agentes/README.md +65 -0
- package/docs/pt/4-agentes/analyst.md +111 -0
- package/docs/pt/4-agentes/architect.md +113 -0
- package/docs/pt/4-agentes/briefing.md +95 -0
- package/docs/pt/4-agentes/committer.md +108 -0
- package/docs/pt/4-agentes/copywriter.md +279 -0
- package/docs/pt/4-agentes/design-hybrid-forge.md +116 -0
- package/docs/pt/4-agentes/dev.md +136 -0
- package/docs/pt/4-agentes/deyvin.md +99 -0
- package/docs/pt/4-agentes/discover.md +122 -0
- package/docs/pt/4-agentes/discovery-design-doc.md +91 -0
- package/docs/pt/4-agentes/genome.md +115 -0
- package/docs/pt/4-agentes/neo.md +93 -0
- package/docs/pt/4-agentes/orache.md +107 -0
- package/docs/pt/4-agentes/orchestrator.md +118 -0
- package/docs/pt/4-agentes/pentester.md +131 -0
- package/docs/pt/4-agentes/pm.md +97 -0
- package/docs/pt/4-agentes/product.md +114 -0
- package/docs/pt/4-agentes/profiler-enricher.md +93 -0
- package/docs/pt/4-agentes/profiler-forge.md +93 -0
- package/docs/pt/4-agentes/profiler-researcher.md +98 -0
- package/docs/pt/4-agentes/qa.md +124 -0
- package/docs/pt/4-agentes/setup.md +104 -0
- package/docs/pt/4-agentes/sheldon.md +95 -0
- package/docs/pt/4-agentes/site-forge.md +104 -0
- package/docs/pt/4-agentes/squad.md +127 -0
- package/docs/pt/4-agentes/tester.md +105 -0
- package/docs/pt/4-agentes/ux-ui.md +110 -0
- package/docs/pt/4-agentes/validator.md +118 -0
- package/docs/pt/5-referencia/README.md +88 -0
- package/docs/pt/5-referencia/agent-chain-continuity.md +124 -0
- package/docs/pt/{agent-sharding.md → 5-referencia/agent-sharding.md} +132 -132
- package/docs/pt/5-referencia/aioson-com-store.md +119 -0
- package/docs/pt/{automacao-squads.md → 5-referencia/automacao-squads.md} +407 -407
- package/docs/pt/{clientes-ai.md → 5-referencia/clientes-ai.md} +300 -290
- package/docs/pt/{comandos-cli.md → 5-referencia/comandos-cli.md} +1823 -1781
- package/docs/pt/{compress-agents.md → 5-referencia/compress-agents.md} +304 -304
- package/docs/pt/{design-docs-governance.md → 5-referencia/design-docs-governance.md} +59 -59
- package/docs/pt/{devlog-pipeline.md → 5-referencia/devlog-pipeline.md} +270 -270
- package/docs/pt/{feature-archive.md → 5-referencia/feature-archive.md} +199 -191
- package/docs/pt/5-referencia/feature-dossier.md +121 -0
- package/docs/pt/{fluxo-artefatos.md → 5-referencia/fluxo-artefatos.md} +179 -178
- package/docs/pt/{genome-3.0-spec.md → 5-referencia/genome-4.0-spec.md} +407 -407
- package/docs/pt/{genome-distribution.md → 5-referencia/genome-distribution.md} +232 -232
- package/docs/pt/{hooks-session-guard.md → 5-referencia/hooks-session-guard.md} +454 -454
- package/docs/pt/{inteligencia-adaptativa.md → 5-referencia/inteligencia-adaptativa.md} +324 -324
- package/docs/pt/5-referencia/live-sessions.md +144 -0
- package/docs/pt/5-referencia/memoria-e-contexto.md +340 -0
- package/docs/pt/{motor-hardening.md → 5-referencia/motor-hardening.md} +493 -492
- package/docs/pt/{output-strategy-delivery.md → 5-referencia/output-strategy-delivery.md} +655 -655
- package/docs/pt/{runner-system.md → 5-referencia/runner-system.md} +113 -113
- package/docs/pt/{runtime-observability.md → 5-referencia/runtime-observability.md} +76 -76
- package/docs/pt/{sandbox.md → 5-referencia/sandbox.md} +125 -125
- package/docs/pt/{sdd-automation-scripts.md → 5-referencia/sdd-automation-scripts.md} +559 -557
- package/docs/pt/5-referencia/sdd-framework.md +115 -0
- package/docs/pt/5-referencia/sdd-planos-e-estrutura.md +321 -0
- package/docs/pt/5-referencia/secure-by-default.md +117 -0
- package/docs/pt/{skills.md → 5-referencia/skills.md} +275 -267
- package/docs/pt/{spec-learnings-pipeline.md → 5-referencia/spec-learnings-pipeline.md} +265 -265
- package/docs/pt/{squad-dashboard.md → 5-referencia/squad-dashboard.md} +373 -373
- package/docs/pt/{web3.md → 5-referencia/web3.md} +797 -797
- package/docs/pt/README.md +111 -125
- package/docs/pt/_arquivo/README.md +130 -0
- package/docs/pt/{advisor-spec.md → _arquivo/advisor-spec.md} +343 -335
- package/docs/pt/{agentes-customizados.md → _arquivo/agentes-customizados.md} +678 -670
- package/docs/pt/{busca-de-contexto.md → _arquivo/busca-de-contexto.md} +136 -129
- package/docs/pt/{cache-de-contexto.md → _arquivo/cache-de-contexto.md} +163 -156
- package/docs/pt/{cenarios.md → _arquivo/cenarios.md} +1282 -1274
- package/docs/pt/{design-hybrid-forge.md → _arquivo/design-hybrid-forge.md} +365 -356
- package/docs/pt/{deyvin.md → _arquivo/deyvin.md} +123 -115
- package/docs/pt/{guia-engineer.md → _arquivo/guia-engineer.md} +234 -226
- package/docs/pt/{inicio-rapido.md → _arquivo/inicio-rapido.md} +261 -251
- package/docs/pt/{memoria-contexto.md → _arquivo/memoria-contexto.md} +262 -255
- package/docs/pt/{monitor-de-contexto.md → _arquivo/monitor-de-contexto.md} +165 -158
- package/docs/pt/{profiler-system.md → _arquivo/profiler-system.md} +222 -214
- package/docs/pt/{recuperacao-de-sessao.md → _arquivo/recuperacao-de-sessao.md} +134 -125
- package/docs/pt/{site-forge.md → _arquivo/site-forge.md} +318 -309
- package/docs/pt/{squad-genome.md → _arquivo/squad-genome.md} +793 -783
- package/docs/pt/active-learning-loop/README.md +117 -0
- package/docs/pt/active-learning-loop/ativo-learning-loop.md +117 -0
- package/docs/pt/active-learning-loop/comandos-cli.md +320 -0
- package/docs/pt/active-learning-loop/como-usar.md +313 -0
- package/docs/pt/active-learning-loop/diagramas.md +225 -0
- package/docs/pt/active-learning-loop/doctor-checks.md +151 -0
- package/docs/pt/active-learning-loop/troubleshooting.md +283 -0
- package/docs/pt/agentes.md +996 -993
- package/docs/pt/deyvin-subtask-scout/README.md +109 -0
- package/docs/pt/deyvin-subtask-scout/comandos-cli.md +248 -0
- package/docs/pt/deyvin-subtask-scout/como-usar.md +221 -0
- package/docs/pt/deyvin-subtask-scout/diagramas.md +124 -0
- package/docs/pt/deyvin-subtask-scout/sub-task-scout.md +113 -0
- package/docs/pt/deyvin-subtask-scout/troubleshooting.md +184 -0
- package/docs/pt/living-memory/README.md +81 -0
- package/docs/pt/living-memory/autonomy-contract.md +206 -0
- package/docs/pt/living-memory/diagramas.md +365 -0
- package/docs/pt/living-memory/memoria-viva.md +141 -0
- package/docs/pt/living-memory/notificacoes-info.md +142 -0
- package/docs/pt/living-memory/reflexao-in-harness.md +218 -0
- package/docs/pt/living-memory/troubleshooting.md +286 -0
- package/docs/testing/genome-2.0-manual-regression.md +23 -23
- package/docs/testing/genome-2.0-matrix.md +36 -36
- package/docs/testing/genome-2.0-rollout.md +184 -184
- package/package.json +51 -51
- package/src/a2a/client.js +165 -165
- package/src/a2a/server.js +223 -223
- package/src/agent-loader.js +280 -280
- package/src/agent-manifests.js +86 -66
- package/src/agents.js +92 -92
- package/src/autonomy-policy.js +163 -139
- package/src/backup-local.js +74 -74
- package/src/backup-provider.js +303 -303
- package/src/brain-query.js +171 -161
- package/src/cli.js +77 -4
- package/src/commands/agent-audit.js +397 -397
- package/src/commands/agent-export-skill.js +229 -229
- package/src/commands/agent-loader.js +85 -85
- package/src/commands/agents.js +273 -255
- package/src/commands/artifact-validate.js +218 -218
- package/src/commands/auth.js +298 -272
- package/src/commands/backup-local-cmd.js +25 -25
- package/src/commands/backup.js +533 -533
- package/src/commands/brain-query.js +44 -44
- package/src/commands/brief-gen.js +405 -405
- package/src/commands/brief-validate.js +65 -65
- package/src/commands/briefing.js +344 -344
- package/src/commands/classify.js +256 -256
- package/src/commands/cloud.js +1767 -1767
- package/src/commands/commit-prepare.js +610 -547
- package/src/commands/compress-agents.js +416 -416
- package/src/commands/config.js +90 -90
- package/src/commands/context-cache.js +90 -90
- package/src/commands/context-compact.js +49 -49
- package/src/commands/context-health.js +187 -177
- package/src/commands/context-load.js +219 -0
- package/src/commands/context-monitor.js +163 -163
- package/src/commands/context-pack.js +45 -45
- package/src/commands/context-search.js +66 -66
- package/src/commands/context-trim.js +183 -183
- package/src/commands/context-validate.js +91 -91
- package/src/commands/design-hybrid-options.js +385 -385
- package/src/commands/detect-test-runner.js +55 -55
- package/src/commands/dev-resume.js +32 -0
- package/src/commands/devlog-export-brains.js +27 -27
- package/src/commands/devlog-process.js +294 -294
- package/src/commands/devlog-watch.js +131 -131
- package/src/commands/doctor.js +123 -123
- package/src/commands/dossier-add-research.js +114 -0
- package/src/commands/dossier-audit.js +222 -0
- package/src/commands/dossier.js +423 -423
- package/src/commands/feature-archive.js +513 -513
- package/src/commands/feature-close.js +554 -270
- package/src/commands/gate-approve.js +198 -198
- package/src/commands/gate-check.js +247 -247
- package/src/commands/genome-doctor.js +489 -198
- package/src/commands/genome-migrate.js +49 -49
- package/src/commands/git-guard.js +170 -170
- package/src/commands/harness.js +307 -121
- package/src/commands/health.js +214 -214
- package/src/commands/hooks-emit.js +253 -253
- package/src/commands/hooks-install.js +347 -347
- package/src/commands/i18n-add.js +56 -56
- package/src/commands/implementation-plan.js +367 -367
- package/src/commands/info.js +41 -41
- package/src/commands/init.js +120 -120
- package/src/commands/install.js +162 -111
- package/src/commands/learning-auto-promote.js +197 -195
- package/src/commands/learning-evolve.js +364 -364
- package/src/commands/learning-export.js +103 -103
- package/src/commands/learning-rollback.js +164 -164
- package/src/commands/learning.js +134 -134
- package/src/commands/live.js +2101 -2082
- package/src/commands/locale-apply.js +54 -54
- package/src/commands/locale-diff.js +25 -25
- package/src/commands/mcp-doctor.js +407 -407
- package/src/commands/mcp-init.js +373 -373
- package/src/commands/memory-archive.js +193 -0
- package/src/commands/memory-reflect-commit.js +148 -0
- package/src/commands/memory-reflect-prepare.js +97 -0
- package/src/commands/memory-restore.js +177 -0
- package/src/commands/memory-search.js +135 -0
- package/src/commands/memory.js +299 -234
- package/src/commands/notify.js +68 -0
- package/src/commands/package-e2e.js +273 -273
- package/src/commands/parallel-assign.js +483 -483
- package/src/commands/parallel-doctor.js +850 -850
- package/src/commands/parallel-guard.js +241 -241
- package/src/commands/parallel-init.js +311 -311
- package/src/commands/parallel-merge.js +299 -299
- package/src/commands/parallel-status.js +434 -434
- package/src/commands/pattern-detect.js +33 -33
- package/src/commands/preflight-context.js +30 -30
- package/src/commands/preflight.js +267 -267
- package/src/commands/pulse-update.js +130 -130
- package/src/commands/qa-doctor.js +185 -185
- package/src/commands/qa-init.js +166 -166
- package/src/commands/qa-report.js +58 -58
- package/src/commands/qa-run.js +873 -873
- package/src/commands/qa-scan.js +337 -337
- package/src/commands/recovery.js +43 -43
- package/src/commands/revision.js +235 -235
- package/src/commands/runner-daemon.js +274 -274
- package/src/commands/runner-plan.js +70 -70
- package/src/commands/runner-queue-from-plan.js +166 -166
- package/src/commands/runner-queue.js +189 -189
- package/src/commands/runner-run.js +129 -129
- package/src/commands/runtime.js +2086 -2067
- package/src/commands/sandbox.js +37 -37
- package/src/commands/scaffold-complete.js +188 -188
- package/src/commands/scan-project.js +1371 -1371
- package/src/commands/scout-commit.js +163 -0
- package/src/commands/scout-prep.js +214 -0
- package/src/commands/scout-validate.js +112 -0
- package/src/commands/security-audit.js +275 -275
- package/src/commands/security-scan.js +376 -376
- package/src/commands/self-implement-loop.js +306 -300
- package/src/commands/session-guard.js +218 -218
- package/src/commands/setup-context.js +699 -699
- package/src/commands/setup.js +178 -178
- package/src/commands/sizing.js +165 -165
- package/src/commands/skill.js +670 -670
- package/src/commands/smoke.js +426 -426
- package/src/commands/spec-checkpoint.js +177 -177
- package/src/commands/spec-status.js +79 -79
- package/src/commands/spec-sync.js +190 -190
- package/src/commands/spec-tasks.js +288 -288
- package/src/commands/squad-agent-create.js +830 -830
- package/src/commands/squad-autorun.js +1220 -1220
- package/src/commands/squad-bus.js +217 -217
- package/src/commands/squad-card.js +149 -149
- package/src/commands/squad-daemon.js +343 -343
- package/src/commands/squad-dashboard.js +39 -39
- package/src/commands/squad-dependency-graph.js +164 -164
- package/src/commands/squad-deploy.js +64 -64
- package/src/commands/squad-doctor.js +460 -460
- package/src/commands/squad-export.js +77 -46
- package/src/commands/squad-investigate.js +314 -314
- package/src/commands/squad-learning.js +209 -209
- package/src/commands/squad-mcp.js +270 -270
- package/src/commands/squad-pipeline.js +343 -343
- package/src/commands/squad-plan.js +361 -361
- package/src/commands/squad-processes.js +56 -56
- package/src/commands/squad-recovery.js +42 -42
- package/src/commands/squad-repair-genomes.js +39 -39
- package/src/commands/squad-review.js +106 -106
- package/src/commands/squad-roi.js +291 -291
- package/src/commands/squad-scaffold.js +56 -56
- package/src/commands/squad-score.js +311 -307
- package/src/commands/squad-status.js +481 -481
- package/src/commands/squad-tool-register.js +157 -157
- package/src/commands/squad-validate.js +438 -438
- package/src/commands/squad-webhook.js +160 -160
- package/src/commands/squad-worker.js +191 -191
- package/src/commands/squad-worktrees.js +75 -75
- package/src/commands/state-save.js +122 -122
- package/src/commands/store-genome.js +667 -304
- package/src/commands/store-skill.js +247 -247
- package/src/commands/store-squad.js +431 -431
- package/src/commands/store-system.js +392 -392
- package/src/commands/sync-agents-preflight.js +176 -0
- package/src/commands/test-agents.js +199 -199
- package/src/commands/tool-capabilities.js +63 -63
- package/src/commands/tool-registry-cmd.js +232 -232
- package/src/commands/update.js +64 -64
- package/src/commands/verify-gate.js +612 -612
- package/src/commands/web-map.js +70 -70
- package/src/commands/web-scrape.js +71 -71
- package/src/commands/workflow-execute.js +730 -730
- package/src/commands/workflow-harden.js +231 -231
- package/src/commands/workflow-heal.js +136 -136
- package/src/commands/workflow-next.js +1279 -1039
- package/src/commands/workflow-plan.js +108 -108
- package/src/commands/workflow-status.js +440 -440
- package/src/commands/workspace.js +144 -144
- package/src/constants.js +413 -384
- package/src/context-cache.js +159 -159
- package/src/context-memory.js +975 -966
- package/src/context-parse-reason.js +22 -22
- package/src/context-search.js +326 -326
- package/src/context-writer.js +197 -197
- package/src/context.js +247 -247
- package/src/delivery-runner.js +319 -319
- package/src/design-variation-catalog.js +503 -503
- package/src/detector.js +261 -261
- package/src/doctor.js +760 -329
- package/src/dossier/codemap-store.js +267 -267
- package/src/dossier/dossier-bootstrap.js +222 -222
- package/src/dossier/dossier-compact.js +159 -159
- package/src/dossier/lock.js +128 -128
- package/src/dossier/research-index-store.js +233 -0
- package/src/dossier/revision-store.js +313 -313
- package/src/dossier/schema.js +162 -155
- package/src/dossier/scout-section.js +127 -0
- package/src/dossier/store.js +406 -400
- package/src/execution-gateway.js +464 -464
- package/src/friction-scanner.js +202 -202
- package/src/genome-files.js +198 -198
- package/src/genome-format.js +442 -442
- package/src/genome-schema.js +238 -238
- package/src/genomes/bindings.js +281 -281
- package/src/genomes.js +500 -500
- package/src/handoff-contract.js +417 -363
- package/src/handoff-validator.js +45 -45
- package/src/harness/circuit-breaker.js +135 -135
- package/src/i18n/index.js +103 -103
- package/src/i18n/messages/en.js +1541 -1434
- package/src/i18n/messages/es.js +1325 -1221
- package/src/i18n/messages/fr.js +1333 -1229
- package/src/i18n/messages/pt-BR.js +1561 -1457
- package/src/i18n/scaffold.js +64 -64
- package/src/install-animation.js +260 -260
- package/src/install-profile.js +127 -127
- package/src/install-wizard.js +475 -475
- package/src/installer-config-merge.js +207 -0
- package/src/installer.js +449 -358
- package/src/learning-loop-archive.js +595 -0
- package/src/learning-loop-doctor.js +217 -0
- package/src/learning-loop-engine.js +254 -0
- package/src/learning-loop-fts5.js +132 -0
- package/src/learning-loop-migration.js +163 -0
- package/src/lib/dev-resume.js +140 -0
- package/src/lib/dossier-telemetry.js +36 -0
- package/src/lib/genomes/compat.js +206 -206
- package/src/lib/genomes/migrate.js +90 -90
- package/src/lib/git-commit-guard.js +751 -691
- package/src/lib/health-check.js +158 -158
- package/src/lib/hook-protocol.js +76 -76
- package/src/lib/llm-content-sanitizer.js +44 -0
- package/src/lib/security/artifact-reader.js +167 -167
- package/src/lib/security/exit-codes.js +51 -51
- package/src/lib/security/findings-writer.js +176 -176
- package/src/lib/security/runtime-events.js +77 -77
- package/src/lib/security/secrets-regex.js +115 -115
- package/src/lib/squads/genome-repair.js +49 -49
- package/src/lib/store/security-scan.js +175 -173
- package/src/lib/terminal-checkbox.js +135 -130
- package/src/lib/terminal-picker.js +447 -0
- package/src/lib/tmux-launcher.js +163 -163
- package/src/lib/tool-capabilities.js +102 -102
- package/src/lib/webhook-server.js +328 -328
- package/src/locales.js +88 -88
- package/src/mcp/apps/squad-dashboard/app.js +163 -163
- package/src/mcp/apps/squad-dashboard/index.html +261 -261
- package/src/mcp/apps/squad-dashboard/mcp-manifest.json +23 -23
- package/src/mcp/resources/squad-state.js +130 -130
- package/src/mcp-connectors/registry.js +602 -602
- package/src/memory-reflect-engine.js +359 -0
- package/src/notify-renderer.js +32 -0
- package/src/onboarding.js +305 -305
- package/src/parallel-workspace.js +756 -756
- package/src/parser.js +66 -66
- package/src/path-guard.js +47 -47
- package/src/permissions-generator.js +400 -0
- package/src/preflight-engine.js +654 -654
- package/src/prompt-tool.js +20 -20
- package/src/qa-html-report.js +472 -472
- package/src/recovery-context-session.js +154 -154
- package/src/runner/cascade.js +97 -97
- package/src/runner/cli-launcher.js +109 -109
- package/src/runner/plan-importer.js +63 -63
- package/src/runner/queue-store.js +159 -159
- package/src/runtime-store.js +2720 -2676
- package/src/sandbox.js +194 -177
- package/src/self-healing.js +142 -142
- package/src/session-handoff.js +295 -187
- package/src/squad/agent-teams-adapter.js +270 -264
- package/src/squad/brief-validator.js +350 -350
- package/src/squad/bus-bridge.js +140 -140
- package/src/squad/context-compactor.js +265 -265
- package/src/squad/cross-ai-synthesizer.js +250 -250
- package/src/squad/external-session.js +180 -180
- package/src/squad/hooks-generator.js +196 -196
- package/src/squad/inter-squad-events.js +175 -175
- package/src/squad/inter-squad.js +74 -74
- package/src/squad/intra-bus.js +345 -345
- package/src/squad/learning-extractor.js +213 -213
- package/src/squad/pattern-detector.js +365 -365
- package/src/squad/preflight-context.js +296 -296
- package/src/squad/recovery-context.js +372 -372
- package/src/squad/reflection.js +365 -365
- package/src/squad/squad-scaffold.js +341 -341
- package/src/squad/state-manager.js +310 -310
- package/src/squad/task-decomposer.js +652 -652
- package/src/squad/verify-gate.js +303 -303
- package/src/squad/worktree-manager.js +114 -114
- package/src/squad-daemon.js +490 -490
- package/src/squad-dashboard/api.js +223 -223
- package/src/squad-dashboard/attachment-handler.js +93 -93
- package/src/squad-dashboard/context-monitor.js +157 -157
- package/src/squad-dashboard/execution-logs.js +115 -115
- package/src/squad-dashboard/hunk-review.js +209 -209
- package/src/squad-dashboard/metrics.js +133 -133
- package/src/squad-dashboard/process-monitor.js +125 -125
- package/src/squad-dashboard/renderer.js +858 -858
- package/src/squad-dashboard/server.js +232 -232
- package/src/squad-dashboard/styles.js +525 -525
- package/src/squad-dashboard/token-tracker.js +99 -99
- package/src/squads/apply-genome.js +21 -21
- package/src/squads/genome-binding-service.js +154 -154
- package/src/sub-task-engine.js +415 -0
- package/src/sub-task-schemas.js +150 -0
- package/src/sub-task-state.js +152 -0
- package/src/sub-task-telemetry.js +69 -0
- package/src/test-briefing.js +226 -226
- package/src/tool-executor.js +94 -94
- package/src/updater.js +39 -39
- package/src/utils.js +49 -49
- package/src/version.js +50 -50
- package/src/web.js +284 -284
- package/src/worker-runner.js +541 -524
- package/src/workflow-gates.js +185 -185
- package/template/.aioson/advisors/.gitkeep +1 -1
- package/template/.aioson/agents/analyst.md +333 -318
- package/template/.aioson/agents/architect.md +325 -305
- package/template/.aioson/agents/{cypher.md → briefing.md} +264 -252
- package/template/.aioson/agents/committer.md +161 -161
- package/template/.aioson/agents/copywriter.md +937 -463
- package/template/.aioson/agents/design-hybrid-forge.md +141 -141
- package/template/.aioson/agents/dev.md +295 -263
- package/template/.aioson/agents/deyvin.md +198 -87
- package/template/.aioson/agents/discover.md +235 -235
- package/template/.aioson/agents/discovery-design-doc.md +56 -29
- package/template/.aioson/agents/genome.md +1904 -364
- package/template/.aioson/agents/manifests/analyst.manifest.json +26 -26
- package/template/.aioson/agents/manifests/architect.manifest.json +23 -23
- package/template/.aioson/agents/manifests/committer.manifest.json +23 -23
- package/template/.aioson/agents/manifests/dev.manifest.json +54 -37
- package/template/.aioson/agents/manifests/deyvin.manifest.json +41 -0
- package/template/.aioson/agents/manifests/orchestrator.manifest.json +30 -30
- package/template/.aioson/agents/manifests/pentester.manifest.json +39 -39
- package/template/.aioson/agents/manifests/pm.manifest.json +26 -26
- package/template/.aioson/agents/manifests/product.manifest.json +23 -23
- package/template/.aioson/agents/manifests/qa.manifest.json +41 -25
- package/template/.aioson/agents/manifests/setup.manifest.json +20 -20
- package/template/.aioson/agents/manifests/ux-ui.manifest.json +24 -24
- package/template/.aioson/agents/neo.md +341 -231
- package/template/.aioson/agents/orache.md +430 -430
- package/template/.aioson/agents/orchestrator.md +274 -263
- package/template/.aioson/agents/pair.md +5 -5
- package/template/.aioson/agents/pentester.md +289 -235
- package/template/.aioson/agents/pm.md +141 -130
- package/template/.aioson/agents/product.md +351 -273
- package/template/.aioson/agents/profiler-enricher.md +331 -331
- package/template/.aioson/agents/profiler-forge.md +212 -212
- package/template/.aioson/agents/profiler-researcher.md +282 -282
- package/template/.aioson/agents/qa.md +432 -342
- package/template/.aioson/agents/setup.md +423 -423
- package/template/.aioson/agents/sheldon.md +259 -197
- package/template/.aioson/agents/site-forge.md +281 -281
- package/template/.aioson/agents/squad.md +160 -156
- package/template/.aioson/agents/tester.md +536 -473
- package/template/.aioson/agents/ux-ui.md +195 -162
- package/template/.aioson/agents/validator.md +101 -69
- package/template/.aioson/brains/README.md +132 -128
- package/template/.aioson/brains/_archived/.gitkeep +0 -0
- package/template/.aioson/brains/_index.json +34 -16
- package/template/.aioson/brains/dev/patterns.brain.json +79 -0
- package/template/.aioson/brains/scripts/query.js +107 -107
- package/template/.aioson/brains/sheldon/architecture-decisions.brain.json +79 -0
- package/template/.aioson/brains/site-forge/visual-patterns.brain.json +205 -205
- package/template/.aioson/config/autonomy-protocol.json +125 -43
- package/template/.aioson/config/learning-loop.json +10 -0
- package/template/.aioson/config/scout-engine.json +1 -0
- package/template/.aioson/config.md +410 -410
- package/template/.aioson/context/_archived/.gitkeep +0 -0
- package/template/.aioson/context/design-doc.md +136 -136
- package/template/.aioson/context/project-map.md +57 -57
- package/template/.aioson/context/project-pulse.md +34 -34
- package/template/.aioson/context/seeds/seed-example.md +27 -27
- package/template/.aioson/context/spec.md.template +54 -54
- package/template/.aioson/context/user-profile.md +42 -42
- package/template/.aioson/design-docs/code-reuse.md +48 -48
- package/template/.aioson/design-docs/componentization.md +47 -47
- package/template/.aioson/design-docs/file-size.md +52 -52
- package/template/.aioson/design-docs/folder-structure.md +51 -51
- package/template/.aioson/design-docs/naming.md +54 -54
- package/template/.aioson/docs/LAYERS.md +89 -89
- package/template/.aioson/docs/README.md +76 -76
- package/template/.aioson/docs/autonomy-protocol.md +80 -0
- package/template/.aioson/docs/briefing/briefing-craft.md +237 -0
- package/template/.aioson/docs/dev/execution-discipline.md +106 -106
- package/template/.aioson/docs/dev/stack-conventions.md +83 -83
- package/template/.aioson/docs/deyvin/continuity-recovery.md +57 -57
- package/template/.aioson/docs/deyvin/debugging-escalation.md +30 -30
- package/template/.aioson/docs/deyvin/pair-execution.md +44 -44
- package/template/.aioson/docs/deyvin/runtime-handoffs.md +36 -36
- package/template/.aioson/docs/example-external-api-context.md +72 -72
- package/template/.aioson/docs/pentester/app-playbooks.md +206 -0
- package/template/.aioson/docs/pentester/llm-supplychain.md +165 -0
- package/template/.aioson/docs/product/conversation-playbook.md +116 -116
- package/template/.aioson/docs/product/prd-contract.md +107 -107
- package/template/.aioson/docs/product/quality-lens.md +57 -57
- package/template/.aioson/docs/product/research-loop.md +65 -65
- package/template/.aioson/docs/sheldon/enrichment-paths.md +134 -134
- package/template/.aioson/docs/sheldon/harness-contract.md +118 -0
- package/template/.aioson/docs/sheldon/quality-lens.md +57 -57
- package/template/.aioson/docs/sheldon/research-loop.md +56 -56
- package/template/.aioson/docs/sheldon/web-intelligence.md +75 -75
- package/template/.aioson/docs/site-forge-build.md +195 -195
- package/template/.aioson/docs/site-forge-extraction.md +135 -135
- package/template/.aioson/docs/site-forge-qa.md +155 -155
- package/template/.aioson/docs/site-forge-recon.md +434 -434
- package/template/.aioson/docs/site-forge-transform.md +249 -249
- package/template/.aioson/docs/squad/content-output.md +91 -91
- package/template/.aioson/docs/squad/creation-flow.md +149 -135
- package/template/.aioson/docs/squad/domain-breadth.md +322 -0
- package/template/.aioson/docs/squad/domain-classification.md +117 -117
- package/template/.aioson/docs/squad/genome-bindings.md +47 -47
- package/template/.aioson/docs/squad/package-contract.md +260 -234
- package/template/.aioson/docs/squad/quality-lens.md +60 -56
- package/template/.aioson/docs/squad/research-loop.md +59 -59
- package/template/.aioson/docs/squad/session-operations.md +117 -117
- package/template/.aioson/docs/squad/workflow-quality.md +165 -165
- package/template/.aioson/docs/tester/coverage-quality.md +351 -0
- package/template/.aioson/docs/ux-ui/accessibility-audit.md +55 -55
- package/template/.aioson/docs/ux-ui/audit-mode.md +86 -86
- package/template/.aioson/docs/ux-ui/component-map.md +35 -35
- package/template/.aioson/docs/ux-ui/design-execution.md +111 -111
- package/template/.aioson/docs/ux-ui/design-gate.md +27 -27
- package/template/.aioson/docs/ux-ui/research-mode.md +39 -39
- package/template/.aioson/docs/ux-ui/site-delivery.md +156 -156
- package/template/.aioson/docs/ux-ui/token-contract.md +57 -57
- package/template/.aioson/genomes/INDEX.md +195 -0
- package/template/.aioson/genomes/copywriting/SKILL.md +137 -0
- package/template/.aioson/genomes/copywriting/manifest.json +140 -0
- package/template/.aioson/genomes/copywriting/references/application-notes.md +145 -0
- package/template/.aioson/genomes/copywriting/references/decision-weights.md +45 -0
- package/template/.aioson/genomes/copywriting/references/frameworks/5-act-narrative.md +184 -0
- package/template/.aioson/genomes/copywriting/references/frameworks/classical-formulas.md +164 -0
- package/template/.aioson/genomes/copywriting/references/frameworks/offer-stack.md +195 -0
- package/template/.aioson/genomes/copywriting/references/frameworks/one-belief.md +135 -0
- package/template/.aioson/genomes/copywriting/references/frameworks/pms-research.md +211 -0
- package/template/.aioson/genomes/copywriting/references/frameworks/two-paths-close.md +190 -0
- package/template/.aioson/genomes/copywriting/references/heuristics.md +114 -0
- package/template/.aioson/genomes/copywriting/references/meta-axioms.md +68 -0
- package/template/.aioson/genomes/copywriting/references/methodology.md +115 -0
- package/template/.aioson/genomes/copywriting-brunson/SKILL.md +133 -0
- package/template/.aioson/genomes/copywriting-brunson/manifest.json +152 -0
- package/template/.aioson/genomes/copywriting-brunson/references/application-notes.md +113 -0
- package/template/.aioson/genomes/copywriting-brunson/references/decision-weights.md +33 -0
- package/template/.aioson/genomes/copywriting-brunson/references/evidence-and-attribution.md +81 -0
- package/template/.aioson/genomes/copywriting-brunson/references/frameworks/6-part-structure.md +136 -0
- package/template/.aioson/genomes/copywriting-brunson/references/frameworks/origin-story.md +121 -0
- package/template/.aioson/genomes/copywriting-brunson/references/frameworks/perfect-webinar-script.md +139 -0
- package/template/.aioson/genomes/copywriting-brunson/references/frameworks/persuasive-storytelling-5-structures.md +164 -0
- package/template/.aioson/genomes/copywriting-brunson/references/frameworks/value-stack.md +136 -0
- package/template/.aioson/genomes/copywriting-brunson/references/frameworks/who-what-why-how.md +110 -0
- package/template/.aioson/genomes/copywriting-brunson/references/meta-axioms.md +36 -0
- package/template/.aioson/genomes/copywriting-brunson/references/methodology.md +112 -0
- package/template/.aioson/git-guard.json +12 -11
- package/template/.aioson/mcp/servers.md +23 -23
- package/template/.aioson/profiler-reports/.gitkeep +1 -1
- package/template/.aioson/rules/README.md +69 -69
- package/template/.aioson/rules/_archived/.gitkeep +0 -0
- package/template/.aioson/rules/agent-language-policy.md +93 -93
- package/template/.aioson/rules/aioson-context-boundary.md +63 -63
- package/template/.aioson/rules/canonical-path-contract.md +47 -47
- package/template/.aioson/rules/data-format-convention.md +74 -74
- package/template/.aioson/rules/disk-first-artifacts.md +44 -44
- package/template/.aioson/rules/example-monetary-values.md +30 -30
- package/template/.aioson/rules/output-brevity.md +44 -44
- package/template/.aioson/rules/prd-section-ownership.md +49 -49
- package/template/.aioson/rules/security-baseline.md +139 -139
- package/template/.aioson/rules/spec-level-ownership.md +61 -61
- package/template/.aioson/rules/squad/README.md +50 -50
- package/template/.aioson/rules/squad-driver-pattern.md +81 -81
- package/template/.aioson/schemas/content-blueprint.schema.json +30 -30
- package/template/.aioson/schemas/genome-meta.schema.json +150 -150
- package/template/.aioson/schemas/genome.schema.json +115 -115
- package/template/.aioson/schemas/readiness.schema.json +27 -27
- package/template/.aioson/schemas/squad-blueprint.schema.json +228 -228
- package/template/.aioson/schemas/squad-manifest.schema.json +874 -874
- package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +243 -243
- package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -293
- package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -827
- package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -250
- package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -585
- package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -365
- package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +482 -482
- package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +387 -387
- package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +205 -205
- package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -338
- package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -977
- package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -218
- package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -326
- package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -461
- package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -293
- package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -352
- package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -210
- package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -319
- package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -365
- package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -196
- package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -244
- package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -235
- package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -215
- package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -295
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +203 -203
- package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -339
- package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +407 -407
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +272 -272
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +524 -524
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +279 -279
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +289 -289
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +437 -437
- package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +222 -222
- package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -159
- package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -498
- package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -236
- package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -274
- package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -355
- package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -198
- package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -307
- package/template/.aioson/skills/design/interface-design/SKILL.md +47 -47
- package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -105
- package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -101
- package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +71 -71
- package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -74
- package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -173
- package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +213 -213
- package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -228
- package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -855
- package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -334
- package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -342
- package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -286
- package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -458
- package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -723
- package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +62 -62
- package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -74
- package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -116
- package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -47
- package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -215
- package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -31
- package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +66 -66
- package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +368 -368
- package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -150
- package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -270
- package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -189
- package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +165 -165
- package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +209 -209
- package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -324
- package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -508
- package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -223
- package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -374
- package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -356
- package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -288
- package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -289
- package/template/.aioson/skills/design-system/SKILL.md +92 -92
- package/template/.aioson/skills/design-system/components/SKILL.md +274 -274
- package/template/.aioson/skills/design-system/dashboards/SKILL.md +184 -184
- package/template/.aioson/skills/design-system/foundations/SKILL.md +250 -250
- package/template/.aioson/skills/design-system/motion/SKILL.md +197 -197
- package/template/.aioson/skills/design-system/patterns/SKILL.md +231 -231
- package/template/.aioson/skills/dynamic/README.md +30 -30
- package/template/.aioson/skills/dynamic/cardano-docs.md +16 -16
- package/template/.aioson/skills/dynamic/ethereum-docs.md +17 -17
- package/template/.aioson/skills/dynamic/flux-ui-docs.md +13 -13
- package/template/.aioson/skills/dynamic/laravel-docs.md +41 -41
- package/template/.aioson/skills/dynamic/npm-packages.md +16 -16
- package/template/.aioson/skills/dynamic/solana-docs.md +16 -16
- package/template/.aioson/skills/marketing/references/anti-patterns.md +254 -254
- package/template/.aioson/skills/marketing/references/cta-matrix.md +361 -0
- package/template/.aioson/skills/marketing/references/fascinations.md +192 -192
- package/template/.aioson/skills/marketing/references/five-acts.md +248 -248
- package/template/.aioson/skills/marketing/references/headline-matrix.md +358 -0
- package/template/.aioson/skills/marketing/references/market-intelligence.md +198 -198
- package/template/.aioson/skills/marketing/references/offer-structure.md +203 -203
- package/template/.aioson/skills/marketing/references/one-belief.md +149 -149
- package/template/.aioson/skills/marketing/references/patterns.md +218 -218
- package/template/.aioson/skills/marketing/references/platform-constraints.md +337 -0
- package/template/.aioson/skills/marketing/references/pms-research.md +193 -193
- package/template/.aioson/skills/marketing/vsl-craft.md +385 -385
- package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -83
- package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -92
- package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -102
- package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -136
- package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -136
- package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -188
- package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -131
- package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -198
- package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -275
- package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -234
- package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -147
- package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -142
- package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +46 -46
- package/template/.aioson/skills/process/aioson-spec-driven/references/analyst.md +30 -30
- package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +109 -109
- package/template/.aioson/skills/process/aioson-spec-driven/references/architect.md +23 -23
- package/template/.aioson/skills/process/aioson-spec-driven/references/artifact-map.md +44 -44
- package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +37 -37
- package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +47 -47
- package/template/.aioson/skills/process/aioson-spec-driven/references/deyvin.md +27 -27
- package/template/.aioson/skills/process/aioson-spec-driven/references/hardening-lane.md +49 -49
- package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +101 -101
- package/template/.aioson/skills/process/aioson-spec-driven/references/pm.md +30 -30
- package/template/.aioson/skills/process/aioson-spec-driven/references/product.md +25 -25
- package/template/.aioson/skills/process/aioson-spec-driven/references/qa.md +30 -30
- package/template/.aioson/skills/process/aioson-spec-driven/references/sheldon.md +25 -25
- package/template/.aioson/skills/process/aioson-spec-driven/references/ui-language.md +75 -75
- package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +147 -147
- package/template/.aioson/skills/process/design-hybrid-forge/references/crossover-protocol.md +221 -221
- package/template/.aioson/skills/process/design-hybrid-forge/references/naming-registry.md +88 -88
- package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +306 -306
- package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +149 -149
- package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +208 -208
- package/template/.aioson/skills/process/design-hybrid-forge/references/variation-library.md +125 -125
- package/template/.aioson/skills/process/secure-tdd/SKILL.md +97 -97
- package/template/.aioson/skills/process/simplify/SKILL.md +173 -173
- package/template/.aioson/skills/references/premium-command-center-ui/master-application-prompt.md +79 -79
- package/template/.aioson/skills/references/premium-command-center-ui/operational-ux-playbook.md +253 -253
- package/template/.aioson/skills/references/premium-command-center-ui/quality-validation-checklist.md +82 -82
- package/template/.aioson/skills/references/premium-command-center-ui/visual-system-and-component-patterns.md +270 -270
- package/template/.aioson/skills/squad/SKILL.md +58 -58
- package/template/.aioson/skills/squad/formats/catalog.json +15 -15
- package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -47
- package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -47
- package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -43
- package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -41
- package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -42
- package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -42
- package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -39
- package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -39
- package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -47
- package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -39
- package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -108
- package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -98
- package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -106
- package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -81
- package/template/.aioson/skills/squad/references/checklist-templates.md +122 -122
- package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -123
- package/template/.aioson/skills/squad/references/workflow-templates.md +169 -169
- package/template/.aioson/skills/static/context-budget-guide.md +46 -46
- package/template/.aioson/skills/static/debugging-protocol.md +42 -42
- package/template/.aioson/skills/static/django-patterns.md +342 -342
- package/template/.aioson/skills/static/fastapi-patterns.md +344 -344
- package/template/.aioson/skills/static/filament-patterns.md +267 -267
- package/template/.aioson/skills/static/flux-ui-components.md +262 -262
- package/template/.aioson/skills/static/git-conventions.md +227 -227
- package/template/.aioson/skills/static/git-worktrees.md +36 -36
- package/template/.aioson/skills/static/harness-sensors.md +74 -74
- package/template/.aioson/skills/static/harness-validate/SKILL.md +46 -46
- package/template/.aioson/skills/static/jetstream-setup.md +200 -200
- package/template/.aioson/skills/static/landing-page-deploy.md +192 -192
- package/template/.aioson/skills/static/landing-page-forge.md +730 -730
- package/template/.aioson/skills/static/laravel-conventions.md +491 -491
- package/template/.aioson/skills/static/multi-agent-patterns.md +43 -43
- package/template/.aioson/skills/static/nextjs-patterns.md +321 -321
- package/template/.aioson/skills/static/node-express-patterns.md +317 -317
- package/template/.aioson/skills/static/node-typescript-patterns.md +282 -282
- package/template/.aioson/skills/static/rails-conventions.md +307 -307
- package/template/.aioson/skills/static/react-motion-patterns.md +599 -599
- package/template/.aioson/skills/static/static-html-patterns/checklists.md +43 -43
- package/template/.aioson/skills/static/static-html-patterns/css-tokens.md +609 -609
- package/template/.aioson/skills/static/static-html-patterns/motion.md +193 -193
- package/template/.aioson/skills/static/static-html-patterns/premium.md +711 -711
- package/template/.aioson/skills/static/static-html-patterns/structure.md +209 -209
- package/template/.aioson/skills/static/static-html-patterns/utilities.md +190 -190
- package/template/.aioson/skills/static/static-html-patterns.md +80 -80
- package/template/.aioson/skills/static/tall-stack-patterns.md +286 -286
- package/template/.aioson/skills/static/threejs-patterns.md +929 -929
- package/template/.aioson/skills/static/ui-ux-modern.md +76 -76
- package/template/.aioson/skills/static/web-research-cache.md +115 -115
- package/template/.aioson/skills/static/web3-cardano-patterns.md +337 -337
- package/template/.aioson/skills/static/web3-ethereum-patterns.md +310 -310
- package/template/.aioson/skills/static/web3-security-checklist.md +284 -284
- package/template/.aioson/skills/static/web3-solana-patterns.md +324 -324
- package/template/.aioson/squads/memory.md +5 -5
- package/template/.aioson/tasks/implementation-plan.md +327 -327
- package/template/.aioson/tasks/squad-analyze.md +83 -83
- package/template/.aioson/tasks/squad-create.md +148 -148
- package/template/.aioson/tasks/squad-design.md +206 -206
- package/template/.aioson/tasks/squad-execution-plan.md +279 -279
- package/template/.aioson/tasks/squad-export.md +20 -20
- package/template/.aioson/tasks/squad-extend.md +68 -68
- package/template/.aioson/tasks/squad-investigate.md +57 -57
- package/template/.aioson/tasks/squad-learning-review.md +44 -44
- package/template/.aioson/tasks/squad-output-config.md +177 -177
- package/template/.aioson/tasks/squad-pipeline.md +122 -122
- package/template/.aioson/tasks/squad-profile.md +48 -48
- package/template/.aioson/tasks/squad-refresh.md +236 -0
- package/template/.aioson/tasks/squad-repair.md +85 -85
- package/template/.aioson/tasks/squad-review.md +61 -61
- package/template/.aioson/tasks/squad-task-decompose.md +66 -66
- package/template/.aioson/tasks/squad-validate.md +58 -58
- package/template/.aioson/templates/reflect-prompts/current-state.md +36 -0
- package/template/.aioson/templates/reflect-prompts/how-it-works.md +23 -0
- package/template/.aioson/templates/reflect-prompts/what-it-does.md +21 -0
- package/template/.aioson/templates/squads/content-basic/template.json +21 -21
- package/template/.aioson/templates/squads/digital-marketing-agency/template.json +96 -96
- package/template/.aioson/templates/squads/media-channel/template.json +24 -24
- package/template/.aioson/templates/squads/research-analysis/template.json +22 -22
- package/template/.aioson/templates/squads/software-delivery/template.json +21 -21
- package/template/.claude/commands/aioson/agent/analyst.md +5 -5
- package/template/.claude/commands/aioson/agent/architect.md +5 -5
- package/template/.claude/commands/aioson/agent/briefing.md +5 -0
- package/template/.claude/commands/aioson/agent/committer.md +5 -5
- package/template/.claude/commands/aioson/agent/copywriter.md +5 -5
- package/template/.claude/commands/aioson/agent/design-hybrid-forge.md +5 -5
- package/template/.claude/commands/aioson/agent/dev.md +5 -5
- package/template/.claude/commands/aioson/agent/deyvin.md +5 -5
- package/template/.claude/commands/aioson/agent/discover.md +5 -0
- package/template/.claude/commands/aioson/agent/discovery-design-doc.md +5 -5
- package/template/.claude/commands/aioson/agent/genome.md +5 -5
- package/template/.claude/commands/aioson/agent/neo.md +5 -5
- package/template/.claude/commands/aioson/agent/orache.md +5 -5
- package/template/.claude/commands/aioson/agent/orchestrator.md +5 -5
- package/template/.claude/commands/aioson/agent/pair.md +5 -5
- package/template/.claude/commands/aioson/agent/pentester.md +5 -0
- package/template/.claude/commands/aioson/agent/pm.md +5 -5
- package/template/.claude/commands/aioson/agent/product.md +5 -5
- package/template/.claude/commands/aioson/agent/profiler-enricher.md +5 -5
- package/template/.claude/commands/aioson/agent/profiler-forge.md +5 -5
- package/template/.claude/commands/aioson/agent/profiler-researcher.md +5 -5
- package/template/.claude/commands/aioson/agent/qa.md +5 -5
- package/template/.claude/commands/aioson/agent/setup.md +5 -5
- package/template/.claude/commands/aioson/agent/sheldon.md +5 -5
- package/template/.claude/commands/aioson/agent/site-forge.md +5 -5
- package/template/.claude/commands/aioson/agent/squad.md +5 -5
- package/template/.claude/commands/aioson/agent/tester.md +5 -5
- package/template/.claude/commands/aioson/agent/ux-ui.md +5 -5
- package/template/.claude/commands/aioson/agent/validator.md +5 -5
- package/template/.gemini/GEMINI.md +13 -13
- package/template/.gemini/commands/aios-analyst.toml +7 -7
- package/template/.gemini/commands/aios-architect.toml +8 -8
- package/template/.gemini/commands/aios-committer.toml +7 -7
- package/template/.gemini/commands/aios-copywriter.toml +7 -7
- package/template/.gemini/commands/aios-cypher.toml +7 -7
- package/template/.gemini/commands/aios-dev.toml +9 -9
- package/template/.gemini/commands/aios-deyvin.toml +7 -7
- package/template/.gemini/commands/aios-discover.toml +6 -0
- package/template/.gemini/commands/aios-discovery-design-doc.toml +7 -7
- package/template/.gemini/commands/aios-genome.toml +7 -7
- package/template/.gemini/commands/aios-neo.toml +6 -6
- package/template/.gemini/commands/aios-orache.toml +7 -7
- package/template/.gemini/commands/aios-orchestrator.toml +9 -9
- package/template/.gemini/commands/aios-pair.toml +7 -7
- package/template/.gemini/commands/aios-pm.toml +9 -9
- package/template/.gemini/commands/aios-product.toml +6 -6
- package/template/.gemini/commands/aios-qa.toml +7 -7
- package/template/.gemini/commands/aios-setup.toml +6 -6
- package/template/.gemini/commands/aios-sheldon.toml +7 -7
- package/template/.gemini/commands/aios-site-forge.toml +7 -7
- package/template/.gemini/commands/aios-squad.toml +7 -7
- package/template/.gemini/commands/aios-tester.toml +7 -7
- package/template/.gemini/commands/aios-ux-ui.toml +9 -9
- package/template/.gemini/commands/aios-validator.toml +7 -7
- package/template/AGENTS.md +184 -183
- package/template/CLAUDE.md +98 -97
- package/template/OPENCODE.md +35 -34
- package/template/aioson-models.json +40 -40
- package/template/.aioson/genomes/copywriting.md +0 -204
- package/template/.aioson/genomes/copywriting.meta.json +0 -48
- package/template/.aioson/skills/process/secure-tdd/references/nextjs.md +0 -81
- package/template/.aioson/skills/process/secure-tdd/references/node-express.md +0 -91
- package/template/.aioson/skills/process/secure-tdd/references/planned-stacks.md +0 -33
- package/template/.claude/commands/aioson/agent/cypher.md +0 -5
|
@@ -1,284 +1,284 @@
|
|
|
1
|
-
# Web3 Security Checklist
|
|
2
|
-
|
|
3
|
-
> Every vulnerability on this list has drained real funds. Check all of them before mainnet.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Critical: Reentrancy
|
|
8
|
-
|
|
9
|
-
**What:** An external contract calls back into your contract before the first execution completes.
|
|
10
|
-
|
|
11
|
-
```solidity
|
|
12
|
-
// VULNERABLE
|
|
13
|
-
function withdraw() external {
|
|
14
|
-
uint256 amount = balances[msg.sender];
|
|
15
|
-
(bool success,) = msg.sender.call{value: amount}(""); // attacker re-enters here
|
|
16
|
-
require(success);
|
|
17
|
-
balances[msg.sender] = 0; // never reached in attack
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// SAFE — CEI pattern + ReentrancyGuard
|
|
21
|
-
function withdraw() external nonReentrant {
|
|
22
|
-
uint256 amount = balances[msg.sender];
|
|
23
|
-
balances[msg.sender] = 0; // effect first
|
|
24
|
-
(bool success,) = msg.sender.call{value: amount}(""); // interaction last
|
|
25
|
-
require(success, "Transfer failed");
|
|
26
|
-
}
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
**Checklist:**
|
|
30
|
-
- [ ] All external calls come AFTER state changes (CEI pattern)
|
|
31
|
-
- [ ] `ReentrancyGuard` on all functions making external calls
|
|
32
|
-
- [ ] `nonReentrant` on withdraw, claim, and swap functions
|
|
33
|
-
- [ ] Cross-function reentrancy checked (function A → function B → reenter A)
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## Critical: Access Control
|
|
38
|
-
|
|
39
|
-
**What:** Missing or bypassed authorization on privileged functions.
|
|
40
|
-
|
|
41
|
-
```solidity
|
|
42
|
-
// VULNERABLE — anyone can drain
|
|
43
|
-
function withdrawFees() external {
|
|
44
|
-
payable(msg.sender).transfer(address(this).balance);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// SAFE
|
|
48
|
-
function withdrawFees() external onlyRole(TREASURY_ROLE) {
|
|
49
|
-
payable(treasury).transfer(address(this).balance);
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
**Checklist:**
|
|
54
|
-
- [ ] Every state-changing function has explicit caller validation
|
|
55
|
-
- [ ] Admin functions use `AccessControl` roles, not `onlyOwner` alone
|
|
56
|
-
- [ ] Constructor sets roles explicitly — no open initialization window
|
|
57
|
-
- [ ] Role transfers require two-step confirmation (propose + accept)
|
|
58
|
-
- [ ] `renounceRole` / `transferOwnership` tested and working as expected
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## Critical: Integer Overflow / Underflow
|
|
63
|
-
|
|
64
|
-
Pre-Solidity 0.8: integers wrap silently. Post-0.8: revert on overflow by default.
|
|
65
|
-
|
|
66
|
-
```solidity
|
|
67
|
-
// Post-0.8 — safe by default, but watch unchecked blocks
|
|
68
|
-
unchecked {
|
|
69
|
-
// No overflow protection here — only use when you've proven safety
|
|
70
|
-
total += amount;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Safe arithmetic pattern for complex calculations
|
|
74
|
-
uint256 fee = Math.mulDiv(amount, feeBps, 10_000); // OpenZeppelin safe mulDiv
|
|
75
|
-
|
|
76
|
-
// Precision loss from division order
|
|
77
|
-
uint256 bad = (amount / 100) * 3; // loses decimals
|
|
78
|
-
uint256 good = (amount * 3) / 100; // multiply first
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
**Checklist:**
|
|
82
|
-
- [ ] Solidity version ≥ 0.8.0 (overflow protection by default)
|
|
83
|
-
- [ ] All `unchecked` blocks justified with a comment explaining why it's safe
|
|
84
|
-
- [ ] Multiplication happens before division in all fee calculations
|
|
85
|
-
- [ ] No precision loss in basis-points calculations (use `mulDiv`)
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## Critical: Oracle Manipulation
|
|
90
|
-
|
|
91
|
-
**What:** Price oracles can be manipulated, especially spot prices read in a single block.
|
|
92
|
-
|
|
93
|
-
```solidity
|
|
94
|
-
// VULNERABLE — spot price from AMM, manipulable via flash loan
|
|
95
|
-
function getPrice() external view returns (uint256) {
|
|
96
|
-
return IUniswapV2Pair(pair).getReserves(); // single-block price
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// SAFE — use time-weighted average price (TWAP)
|
|
100
|
-
function getPrice() external view returns (uint256) {
|
|
101
|
-
return IUniswapV3Pool(pool).observe(twapInterval); // time-weighted
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// ALSO SAFE — Chainlink oracle with staleness check
|
|
105
|
-
function getPrice() external view returns (uint256) {
|
|
106
|
-
(, int256 price,, uint256 updatedAt,) = AggregatorV3Interface(feed).latestRoundData();
|
|
107
|
-
require(block.timestamp - updatedAt < 3600, "Oracle: stale price");
|
|
108
|
-
require(price > 0, "Oracle: invalid price");
|
|
109
|
-
return uint256(price);
|
|
110
|
-
}
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
**Checklist:**
|
|
114
|
-
- [ ] No spot prices from AMMs used for liquidations, borrowing, or minting
|
|
115
|
-
- [ ] TWAP or Chainlink feeds for all price-sensitive logic
|
|
116
|
-
- [ ] Chainlink answers validated: `updatedAt`, `answeredInRound`, `price > 0`
|
|
117
|
-
- [ ] Circuit breaker for extreme price deviations (±X% from last round)
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## Critical: Flash Loan Attacks
|
|
122
|
-
|
|
123
|
-
**What:** An attacker borrows a large amount, manipulates your protocol's state, and repays — all in one transaction.
|
|
124
|
-
|
|
125
|
-
```solidity
|
|
126
|
-
// Pattern: protect against flash loan price manipulation
|
|
127
|
-
modifier noFlashLoan() {
|
|
128
|
-
require(tx.origin == msg.sender, "Flash loans not allowed");
|
|
129
|
-
_;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// Better: use internal accounting, not external balances
|
|
133
|
-
// VULNERABLE — reads current balance (flash-loanable)
|
|
134
|
-
function getReserves() view returns (uint256) {
|
|
135
|
-
return IERC20(token).balanceOf(address(this));
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// SAFE — uses tracked internal accounting
|
|
139
|
-
mapping(address => uint256) private reserves;
|
|
140
|
-
function getReserves(address token) view returns (uint256) {
|
|
141
|
-
return reserves[token]; // updated only after safe deposits
|
|
142
|
-
}
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**Checklist:**
|
|
146
|
-
- [ ] State does not depend on `balanceOf` for protocol invariants
|
|
147
|
-
- [ ] Invariants checked before and after complex operations
|
|
148
|
-
- [ ] Slippage / deviation limits on swaps and liquidations
|
|
149
|
-
- [ ] Test with foundry `vm.deal` simulating flash loan amounts
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
## High: Front-Running
|
|
154
|
-
|
|
155
|
-
**What:** Miners or MEV bots see your pending transaction and insert their own first.
|
|
156
|
-
|
|
157
|
-
```solidity
|
|
158
|
-
// Vulnerable: deadline and slippage in swap
|
|
159
|
-
function swap(uint256 amountIn) external {
|
|
160
|
-
// No deadline, no slippage — sandwich attack trivial
|
|
161
|
-
uint256 out = pool.swap(amountIn);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
// Protected: explicit slippage and deadline
|
|
165
|
-
function swap(
|
|
166
|
-
uint256 amountIn,
|
|
167
|
-
uint256 minAmountOut,
|
|
168
|
-
uint256 deadline
|
|
169
|
-
) external {
|
|
170
|
-
require(block.timestamp <= deadline, "Expired");
|
|
171
|
-
uint256 out = pool.swap(amountIn);
|
|
172
|
-
require(out >= minAmountOut, "Slippage too high");
|
|
173
|
-
}
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
**Checklist:**
|
|
177
|
-
- [ ] All user-facing swaps include `minAmountOut` and `deadline`
|
|
178
|
-
- [ ] Governance votes have timelocks (≥48h for critical changes)
|
|
179
|
-
- [ ] Commit-reveal scheme for any sensitive on-chain randomness
|
|
180
|
-
- [ ] Consider using Flashbots Protect RPC for sensitive deployments
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
## High: Signature Replay
|
|
185
|
-
|
|
186
|
-
**What:** A valid signed message is resubmitted to the same or a different contract.
|
|
187
|
-
|
|
188
|
-
```solidity
|
|
189
|
-
// VULNERABLE — no nonce, no chain ID
|
|
190
|
-
function execute(bytes32 hash, bytes calldata sig) external {
|
|
191
|
-
address signer = ECDSA.recover(hash, sig);
|
|
192
|
-
require(signer == admin);
|
|
193
|
-
// attacker replays this on another chain or calls again
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
// SAFE — EIP-712 with nonce and chainId
|
|
197
|
-
function execute(
|
|
198
|
-
address target,
|
|
199
|
-
uint256 value,
|
|
200
|
-
uint256 nonce,
|
|
201
|
-
uint256 deadline,
|
|
202
|
-
bytes calldata sig
|
|
203
|
-
) external {
|
|
204
|
-
require(block.timestamp <= deadline, "Expired");
|
|
205
|
-
require(nonces[msg.sender] == nonce, "Invalid nonce");
|
|
206
|
-
|
|
207
|
-
bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(
|
|
208
|
-
EXECUTE_TYPEHASH, target, value, nonce, deadline
|
|
209
|
-
)));
|
|
210
|
-
|
|
211
|
-
require(ECDSA.recover(digest, sig) == admin, "Invalid signature");
|
|
212
|
-
nonces[msg.sender]++;
|
|
213
|
-
// execute...
|
|
214
|
-
}
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
**Checklist:**
|
|
218
|
-
- [ ] All permit/signature functions use EIP-712 typed data
|
|
219
|
-
- [ ] Nonce incremented on every use
|
|
220
|
-
- [ ] `chainId` included in the domain separator
|
|
221
|
-
- [ ] `deadline` on every signature
|
|
222
|
-
- [ ] Signatures cannot be reused across different contract addresses
|
|
223
|
-
|
|
224
|
-
---
|
|
225
|
-
|
|
226
|
-
## High: Logic Errors
|
|
227
|
-
|
|
228
|
-
**Checklist:**
|
|
229
|
-
- [ ] All invariants documented and tested (e.g., `totalSupply == sum of balances`)
|
|
230
|
-
- [ ] Edge cases: zero amounts, single user, max amounts, empty state
|
|
231
|
-
- [ ] Rounding direction favors the protocol, not the user (round down on user withdrawals)
|
|
232
|
-
- [ ] State transitions are complete and correct (no half-updated state on revert)
|
|
233
|
-
|
|
234
|
-
---
|
|
235
|
-
|
|
236
|
-
## Pre-Deployment Checklist
|
|
237
|
-
|
|
238
|
-
### Code review
|
|
239
|
-
- [ ] Static analysis: `slither .` — zero critical/high findings
|
|
240
|
-
- [ ] Fuzzing: Foundry `forge fuzz` on all state-changing functions
|
|
241
|
-
- [ ] Invariant tests: Foundry invariant testing for protocol-level invariants
|
|
242
|
-
- [ ] Fork testing: mainnet fork with realistic protocols (DeFi integrations)
|
|
243
|
-
- [ ] Independent audit (3rd party, not affiliated team)
|
|
244
|
-
|
|
245
|
-
### Deployment
|
|
246
|
-
- [ ] Compiler version pinned: `pragma solidity 0.8.24;` (not `^`)
|
|
247
|
-
- [ ] All constructor arguments verified correct
|
|
248
|
-
- [ ] Contract verified on Etherscan before calling any admin function
|
|
249
|
-
- [ ] Multisig wallet as owner/admin (≥3 of 5)
|
|
250
|
-
- [ ] Timelock on all parameter changes (≥24h, ≥48h for critical)
|
|
251
|
-
- [ ] Deployment addresses, block numbers, and ABI hashes recorded
|
|
252
|
-
|
|
253
|
-
### Operations
|
|
254
|
-
- [ ] Emergency pause mechanism tested on testnet
|
|
255
|
-
- [ ] Incident response plan documented (who to call, how to pause, how to communicate)
|
|
256
|
-
- [ ] Monitoring: alerts on unusual value flows, failed transactions, admin calls
|
|
257
|
-
- [ ] Upgrade strategy defined (proxy pattern) or explicitly immutable with documentation
|
|
258
|
-
|
|
259
|
-
---
|
|
260
|
-
|
|
261
|
-
## Testing requirements by severity
|
|
262
|
-
|
|
263
|
-
| Scenario | Test type | Coverage |
|
|
264
|
-
|---|---|---|
|
|
265
|
-
| Normal operations | Unit tests | 100% |
|
|
266
|
-
| Access control violations | Unit tests | Every protected function |
|
|
267
|
-
| Reentrancy attacks | Fork tests with attacker contract | All external-call functions |
|
|
268
|
-
| Oracle manipulation | Fork tests with large swaps | All price-dependent paths |
|
|
269
|
-
| Integer edge cases | Fuzz tests | All arithmetic functions |
|
|
270
|
-
| Protocol invariants | Invariant tests | Total supply, balances, fees |
|
|
271
|
-
| Flash loan attacks | Fork tests with vm.deal | All single-tx exploit vectors |
|
|
272
|
-
|
|
273
|
-
---
|
|
274
|
-
|
|
275
|
-
## Emergency response
|
|
276
|
-
|
|
277
|
-
If a vulnerability is found post-deployment:
|
|
278
|
-
1. Pause the contract immediately (if pause mechanism exists)
|
|
279
|
-
2. Assess: is there active exploitation? How much at risk?
|
|
280
|
-
3. Do NOT disclose publicly until a fix is ready or funds are rescued
|
|
281
|
-
4. Contact affected protocols/integrations privately
|
|
282
|
-
5. Prepare and test the fix in isolation
|
|
283
|
-
6. Coordinate with security researchers / auditors
|
|
284
|
-
7. Deploy fix with a clear timeline communicated to users
|
|
1
|
+
# Web3 Security Checklist
|
|
2
|
+
|
|
3
|
+
> Every vulnerability on this list has drained real funds. Check all of them before mainnet.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Critical: Reentrancy
|
|
8
|
+
|
|
9
|
+
**What:** An external contract calls back into your contract before the first execution completes.
|
|
10
|
+
|
|
11
|
+
```solidity
|
|
12
|
+
// VULNERABLE
|
|
13
|
+
function withdraw() external {
|
|
14
|
+
uint256 amount = balances[msg.sender];
|
|
15
|
+
(bool success,) = msg.sender.call{value: amount}(""); // attacker re-enters here
|
|
16
|
+
require(success);
|
|
17
|
+
balances[msg.sender] = 0; // never reached in attack
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// SAFE — CEI pattern + ReentrancyGuard
|
|
21
|
+
function withdraw() external nonReentrant {
|
|
22
|
+
uint256 amount = balances[msg.sender];
|
|
23
|
+
balances[msg.sender] = 0; // effect first
|
|
24
|
+
(bool success,) = msg.sender.call{value: amount}(""); // interaction last
|
|
25
|
+
require(success, "Transfer failed");
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Checklist:**
|
|
30
|
+
- [ ] All external calls come AFTER state changes (CEI pattern)
|
|
31
|
+
- [ ] `ReentrancyGuard` on all functions making external calls
|
|
32
|
+
- [ ] `nonReentrant` on withdraw, claim, and swap functions
|
|
33
|
+
- [ ] Cross-function reentrancy checked (function A → function B → reenter A)
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Critical: Access Control
|
|
38
|
+
|
|
39
|
+
**What:** Missing or bypassed authorization on privileged functions.
|
|
40
|
+
|
|
41
|
+
```solidity
|
|
42
|
+
// VULNERABLE — anyone can drain
|
|
43
|
+
function withdrawFees() external {
|
|
44
|
+
payable(msg.sender).transfer(address(this).balance);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// SAFE
|
|
48
|
+
function withdrawFees() external onlyRole(TREASURY_ROLE) {
|
|
49
|
+
payable(treasury).transfer(address(this).balance);
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Checklist:**
|
|
54
|
+
- [ ] Every state-changing function has explicit caller validation
|
|
55
|
+
- [ ] Admin functions use `AccessControl` roles, not `onlyOwner` alone
|
|
56
|
+
- [ ] Constructor sets roles explicitly — no open initialization window
|
|
57
|
+
- [ ] Role transfers require two-step confirmation (propose + accept)
|
|
58
|
+
- [ ] `renounceRole` / `transferOwnership` tested and working as expected
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Critical: Integer Overflow / Underflow
|
|
63
|
+
|
|
64
|
+
Pre-Solidity 0.8: integers wrap silently. Post-0.8: revert on overflow by default.
|
|
65
|
+
|
|
66
|
+
```solidity
|
|
67
|
+
// Post-0.8 — safe by default, but watch unchecked blocks
|
|
68
|
+
unchecked {
|
|
69
|
+
// No overflow protection here — only use when you've proven safety
|
|
70
|
+
total += amount;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Safe arithmetic pattern for complex calculations
|
|
74
|
+
uint256 fee = Math.mulDiv(amount, feeBps, 10_000); // OpenZeppelin safe mulDiv
|
|
75
|
+
|
|
76
|
+
// Precision loss from division order
|
|
77
|
+
uint256 bad = (amount / 100) * 3; // loses decimals
|
|
78
|
+
uint256 good = (amount * 3) / 100; // multiply first
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Checklist:**
|
|
82
|
+
- [ ] Solidity version ≥ 0.8.0 (overflow protection by default)
|
|
83
|
+
- [ ] All `unchecked` blocks justified with a comment explaining why it's safe
|
|
84
|
+
- [ ] Multiplication happens before division in all fee calculations
|
|
85
|
+
- [ ] No precision loss in basis-points calculations (use `mulDiv`)
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Critical: Oracle Manipulation
|
|
90
|
+
|
|
91
|
+
**What:** Price oracles can be manipulated, especially spot prices read in a single block.
|
|
92
|
+
|
|
93
|
+
```solidity
|
|
94
|
+
// VULNERABLE — spot price from AMM, manipulable via flash loan
|
|
95
|
+
function getPrice() external view returns (uint256) {
|
|
96
|
+
return IUniswapV2Pair(pair).getReserves(); // single-block price
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// SAFE — use time-weighted average price (TWAP)
|
|
100
|
+
function getPrice() external view returns (uint256) {
|
|
101
|
+
return IUniswapV3Pool(pool).observe(twapInterval); // time-weighted
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// ALSO SAFE — Chainlink oracle with staleness check
|
|
105
|
+
function getPrice() external view returns (uint256) {
|
|
106
|
+
(, int256 price,, uint256 updatedAt,) = AggregatorV3Interface(feed).latestRoundData();
|
|
107
|
+
require(block.timestamp - updatedAt < 3600, "Oracle: stale price");
|
|
108
|
+
require(price > 0, "Oracle: invalid price");
|
|
109
|
+
return uint256(price);
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Checklist:**
|
|
114
|
+
- [ ] No spot prices from AMMs used for liquidations, borrowing, or minting
|
|
115
|
+
- [ ] TWAP or Chainlink feeds for all price-sensitive logic
|
|
116
|
+
- [ ] Chainlink answers validated: `updatedAt`, `answeredInRound`, `price > 0`
|
|
117
|
+
- [ ] Circuit breaker for extreme price deviations (±X% from last round)
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Critical: Flash Loan Attacks
|
|
122
|
+
|
|
123
|
+
**What:** An attacker borrows a large amount, manipulates your protocol's state, and repays — all in one transaction.
|
|
124
|
+
|
|
125
|
+
```solidity
|
|
126
|
+
// Pattern: protect against flash loan price manipulation
|
|
127
|
+
modifier noFlashLoan() {
|
|
128
|
+
require(tx.origin == msg.sender, "Flash loans not allowed");
|
|
129
|
+
_;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// Better: use internal accounting, not external balances
|
|
133
|
+
// VULNERABLE — reads current balance (flash-loanable)
|
|
134
|
+
function getReserves() view returns (uint256) {
|
|
135
|
+
return IERC20(token).balanceOf(address(this));
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// SAFE — uses tracked internal accounting
|
|
139
|
+
mapping(address => uint256) private reserves;
|
|
140
|
+
function getReserves(address token) view returns (uint256) {
|
|
141
|
+
return reserves[token]; // updated only after safe deposits
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Checklist:**
|
|
146
|
+
- [ ] State does not depend on `balanceOf` for protocol invariants
|
|
147
|
+
- [ ] Invariants checked before and after complex operations
|
|
148
|
+
- [ ] Slippage / deviation limits on swaps and liquidations
|
|
149
|
+
- [ ] Test with foundry `vm.deal` simulating flash loan amounts
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## High: Front-Running
|
|
154
|
+
|
|
155
|
+
**What:** Miners or MEV bots see your pending transaction and insert their own first.
|
|
156
|
+
|
|
157
|
+
```solidity
|
|
158
|
+
// Vulnerable: deadline and slippage in swap
|
|
159
|
+
function swap(uint256 amountIn) external {
|
|
160
|
+
// No deadline, no slippage — sandwich attack trivial
|
|
161
|
+
uint256 out = pool.swap(amountIn);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// Protected: explicit slippage and deadline
|
|
165
|
+
function swap(
|
|
166
|
+
uint256 amountIn,
|
|
167
|
+
uint256 minAmountOut,
|
|
168
|
+
uint256 deadline
|
|
169
|
+
) external {
|
|
170
|
+
require(block.timestamp <= deadline, "Expired");
|
|
171
|
+
uint256 out = pool.swap(amountIn);
|
|
172
|
+
require(out >= minAmountOut, "Slippage too high");
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Checklist:**
|
|
177
|
+
- [ ] All user-facing swaps include `minAmountOut` and `deadline`
|
|
178
|
+
- [ ] Governance votes have timelocks (≥48h for critical changes)
|
|
179
|
+
- [ ] Commit-reveal scheme for any sensitive on-chain randomness
|
|
180
|
+
- [ ] Consider using Flashbots Protect RPC for sensitive deployments
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## High: Signature Replay
|
|
185
|
+
|
|
186
|
+
**What:** A valid signed message is resubmitted to the same or a different contract.
|
|
187
|
+
|
|
188
|
+
```solidity
|
|
189
|
+
// VULNERABLE — no nonce, no chain ID
|
|
190
|
+
function execute(bytes32 hash, bytes calldata sig) external {
|
|
191
|
+
address signer = ECDSA.recover(hash, sig);
|
|
192
|
+
require(signer == admin);
|
|
193
|
+
// attacker replays this on another chain or calls again
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// SAFE — EIP-712 with nonce and chainId
|
|
197
|
+
function execute(
|
|
198
|
+
address target,
|
|
199
|
+
uint256 value,
|
|
200
|
+
uint256 nonce,
|
|
201
|
+
uint256 deadline,
|
|
202
|
+
bytes calldata sig
|
|
203
|
+
) external {
|
|
204
|
+
require(block.timestamp <= deadline, "Expired");
|
|
205
|
+
require(nonces[msg.sender] == nonce, "Invalid nonce");
|
|
206
|
+
|
|
207
|
+
bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(
|
|
208
|
+
EXECUTE_TYPEHASH, target, value, nonce, deadline
|
|
209
|
+
)));
|
|
210
|
+
|
|
211
|
+
require(ECDSA.recover(digest, sig) == admin, "Invalid signature");
|
|
212
|
+
nonces[msg.sender]++;
|
|
213
|
+
// execute...
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
**Checklist:**
|
|
218
|
+
- [ ] All permit/signature functions use EIP-712 typed data
|
|
219
|
+
- [ ] Nonce incremented on every use
|
|
220
|
+
- [ ] `chainId` included in the domain separator
|
|
221
|
+
- [ ] `deadline` on every signature
|
|
222
|
+
- [ ] Signatures cannot be reused across different contract addresses
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## High: Logic Errors
|
|
227
|
+
|
|
228
|
+
**Checklist:**
|
|
229
|
+
- [ ] All invariants documented and tested (e.g., `totalSupply == sum of balances`)
|
|
230
|
+
- [ ] Edge cases: zero amounts, single user, max amounts, empty state
|
|
231
|
+
- [ ] Rounding direction favors the protocol, not the user (round down on user withdrawals)
|
|
232
|
+
- [ ] State transitions are complete and correct (no half-updated state on revert)
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Pre-Deployment Checklist
|
|
237
|
+
|
|
238
|
+
### Code review
|
|
239
|
+
- [ ] Static analysis: `slither .` — zero critical/high findings
|
|
240
|
+
- [ ] Fuzzing: Foundry `forge fuzz` on all state-changing functions
|
|
241
|
+
- [ ] Invariant tests: Foundry invariant testing for protocol-level invariants
|
|
242
|
+
- [ ] Fork testing: mainnet fork with realistic protocols (DeFi integrations)
|
|
243
|
+
- [ ] Independent audit (3rd party, not affiliated team)
|
|
244
|
+
|
|
245
|
+
### Deployment
|
|
246
|
+
- [ ] Compiler version pinned: `pragma solidity 0.8.24;` (not `^`)
|
|
247
|
+
- [ ] All constructor arguments verified correct
|
|
248
|
+
- [ ] Contract verified on Etherscan before calling any admin function
|
|
249
|
+
- [ ] Multisig wallet as owner/admin (≥3 of 5)
|
|
250
|
+
- [ ] Timelock on all parameter changes (≥24h, ≥48h for critical)
|
|
251
|
+
- [ ] Deployment addresses, block numbers, and ABI hashes recorded
|
|
252
|
+
|
|
253
|
+
### Operations
|
|
254
|
+
- [ ] Emergency pause mechanism tested on testnet
|
|
255
|
+
- [ ] Incident response plan documented (who to call, how to pause, how to communicate)
|
|
256
|
+
- [ ] Monitoring: alerts on unusual value flows, failed transactions, admin calls
|
|
257
|
+
- [ ] Upgrade strategy defined (proxy pattern) or explicitly immutable with documentation
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Testing requirements by severity
|
|
262
|
+
|
|
263
|
+
| Scenario | Test type | Coverage |
|
|
264
|
+
|---|---|---|
|
|
265
|
+
| Normal operations | Unit tests | 100% |
|
|
266
|
+
| Access control violations | Unit tests | Every protected function |
|
|
267
|
+
| Reentrancy attacks | Fork tests with attacker contract | All external-call functions |
|
|
268
|
+
| Oracle manipulation | Fork tests with large swaps | All price-dependent paths |
|
|
269
|
+
| Integer edge cases | Fuzz tests | All arithmetic functions |
|
|
270
|
+
| Protocol invariants | Invariant tests | Total supply, balances, fees |
|
|
271
|
+
| Flash loan attacks | Fork tests with vm.deal | All single-tx exploit vectors |
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## Emergency response
|
|
276
|
+
|
|
277
|
+
If a vulnerability is found post-deployment:
|
|
278
|
+
1. Pause the contract immediately (if pause mechanism exists)
|
|
279
|
+
2. Assess: is there active exploitation? How much at risk?
|
|
280
|
+
3. Do NOT disclose publicly until a fix is ready or funds are rescued
|
|
281
|
+
4. Contact affected protocols/integrations privately
|
|
282
|
+
5. Prepare and test the fix in isolation
|
|
283
|
+
6. Coordinate with security researchers / auditors
|
|
284
|
+
7. Deploy fix with a clear timeline communicated to users
|