@jaimevalasek/aioson 1.5.1 → 1.7.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 +49 -0
- package/README.md +729 -226
- package/docs/design-previews/aurora-command-ui-website.html +884 -0
- package/docs/design-previews/aurora-command-ui.html +682 -0
- package/docs/design-previews/bold-editorial-ui-website.html +658 -0
- package/docs/design-previews/bold-editorial-ui.html +717 -0
- package/docs/design-previews/clean-saas-ui-website.html +1202 -0
- package/docs/design-previews/clean-saas-ui.html +549 -0
- package/docs/design-previews/cognitive-core-ui-website.html +1009 -0
- package/docs/design-previews/cognitive-core-ui.html +463 -0
- package/docs/design-previews/glassmorphism-ui-website.html +572 -0
- package/docs/design-previews/glassmorphism-ui.html +886 -0
- package/docs/design-previews/index.html +699 -0
- package/docs/design-previews/interface-design-website.html +1187 -0
- package/docs/design-previews/interface-design.html +513 -0
- package/docs/design-previews/neo-brutalist-ui-website.html +621 -0
- package/docs/design-previews/neo-brutalist-ui.html +797 -0
- package/docs/design-previews/premium-command-center-ui-website.html +1217 -0
- package/docs/design-previews/premium-command-center-ui.html +552 -0
- package/docs/design-previews/pt.squarespace.com-homepage.html +889 -0
- package/docs/design-previews/warm-craft-ui-website.html +684 -0
- package/docs/design-previews/warm-craft-ui.html +739 -0
- package/docs/en/cli-reference.md +20 -9
- package/docs/integrations/sdlc-genius-boundary.md +76 -0
- package/docs/integrations/sdlc-genius-eval-matrix.md +75 -0
- package/docs/integrations/sdlc-genius-install-checklist.md +93 -0
- package/docs/integrations/sdlc-genius-review-samples.md +86 -0
- package/docs/pt/README.md +10 -0
- package/docs/pt/agent-sharding.md +132 -0
- package/docs/pt/agentes.md +9 -2
- package/docs/pt/busca-de-contexto.md +129 -0
- package/docs/pt/cache-de-contexto.md +156 -0
- package/docs/pt/comandos-cli.md +915 -1
- package/docs/pt/design-hybrid-forge.md +356 -0
- package/docs/pt/devlog-pipeline.md +270 -0
- package/docs/pt/fluxo-artefatos.md +178 -0
- package/docs/pt/hooks-session-guard.md +454 -0
- package/docs/pt/inicio-rapido.md +54 -3
- package/docs/pt/inteligencia-adaptativa.md +324 -0
- package/docs/pt/monitor-de-contexto.md +158 -0
- package/docs/pt/recuperacao-de-sessao.md +125 -0
- package/docs/pt/sandbox.md +125 -0
- package/docs/pt/sdd-automation-scripts.md +557 -0
- package/docs/pt/site-forge.md +309 -0
- package/docs/pt/skills.md +98 -6
- package/docs/pt/spec-learnings-pipeline.md +265 -0
- package/package.json +1 -1
- package/src/a2a/client.js +165 -0
- package/src/a2a/server.js +223 -0
- package/src/agent-loader.js +280 -0
- package/src/cli.js +329 -1
- package/src/commands/agent-audit.js +397 -0
- package/src/commands/agent-export-skill.js +229 -0
- package/src/commands/agent-loader.js +85 -0
- package/src/commands/artifact-validate.js +189 -0
- package/src/commands/brief-gen.js +405 -0
- package/src/commands/brief-validate.js +65 -0
- package/src/commands/classify.js +256 -0
- package/src/commands/context-cache.js +90 -0
- package/src/commands/context-compact.js +49 -0
- package/src/commands/context-health.js +175 -0
- package/src/commands/context-monitor.js +163 -0
- package/src/commands/context-search.js +66 -0
- package/src/commands/context-trim.js +177 -0
- package/src/commands/design-hybrid-options.js +385 -0
- package/src/commands/detect-test-runner.js +55 -0
- package/src/commands/devlog-export-brains.js +27 -0
- package/src/commands/devlog-process.js +292 -0
- package/src/commands/devlog-watch.js +131 -0
- package/src/commands/feature-close.js +165 -0
- package/src/commands/gate-check.js +228 -0
- package/src/commands/health.js +214 -0
- package/src/commands/hooks-emit.js +253 -0
- package/src/commands/hooks-install.js +347 -0
- package/src/commands/init.js +54 -13
- package/src/commands/install.js +52 -13
- package/src/commands/learning-auto-promote.js +195 -0
- package/src/commands/learning-evolve.js +364 -0
- package/src/commands/learning-export.js +103 -0
- package/src/commands/learning-rollback.js +164 -0
- package/src/commands/live.js +59 -1
- package/src/commands/pattern-detect.js +33 -0
- package/src/commands/preflight-context.js +30 -0
- package/src/commands/preflight.js +208 -0
- package/src/commands/pulse-update.js +130 -0
- package/src/commands/recovery.js +43 -0
- package/src/commands/runner-daemon.js +274 -0
- package/src/commands/runner-plan.js +70 -0
- package/src/commands/runner-queue-from-plan.js +166 -0
- package/src/commands/runner-queue.js +189 -0
- package/src/commands/runner-run.js +129 -0
- package/src/commands/runtime.js +47 -1
- package/src/commands/sandbox.js +37 -0
- package/src/commands/self-implement-loop.js +256 -0
- package/src/commands/session-guard.js +218 -0
- package/src/commands/setup-context.js +22 -2
- package/src/commands/setup.js +178 -0
- package/src/commands/sizing.js +165 -0
- package/src/commands/skill.js +144 -32
- package/src/commands/spec-checkpoint.js +177 -0
- package/src/commands/spec-status.js +79 -0
- package/src/commands/spec-sync.js +190 -0
- package/src/commands/spec-tasks.js +288 -0
- package/src/commands/squad-autorun.js +1220 -0
- package/src/commands/squad-bus.js +217 -0
- package/src/commands/squad-card.js +149 -0
- package/src/commands/squad-daemon.js +134 -0
- package/src/commands/squad-dependency-graph.js +164 -0
- package/src/commands/squad-review.js +106 -0
- package/src/commands/squad-scaffold.js +55 -0
- package/src/commands/squad-tool-register.js +157 -0
- package/src/commands/state-save.js +122 -0
- package/src/commands/tool-registry-cmd.js +232 -0
- package/src/commands/update.js +9 -0
- package/src/commands/verify-gate.js +572 -0
- package/src/commands/workflow-execute.js +241 -0
- package/src/constants.js +18 -0
- package/src/context-cache.js +159 -0
- package/src/context-search.js +326 -0
- package/src/design-variation-catalog.js +503 -0
- package/src/i18n/messages/en.js +32 -2
- package/src/i18n/messages/es.js +30 -2
- package/src/i18n/messages/fr.js +30 -2
- package/src/i18n/messages/pt-BR.js +32 -2
- package/src/install-animation.js +260 -0
- package/src/install-profile.js +143 -0
- package/src/install-wizard.js +475 -0
- package/src/installer.js +44 -10
- package/src/lib/health-check.js +158 -0
- package/src/lib/hook-protocol.js +76 -0
- package/src/mcp/apps/squad-dashboard/app.js +163 -0
- package/src/mcp/apps/squad-dashboard/index.html +261 -0
- package/src/mcp/apps/squad-dashboard/mcp-manifest.json +23 -0
- package/src/mcp/resources/squad-state.js +130 -0
- package/src/parser.js +7 -1
- package/src/preflight-engine.js +443 -0
- package/src/recovery-context-session.js +154 -0
- package/src/runner/cascade.js +97 -0
- package/src/runner/cli-launcher.js +109 -0
- package/src/runner/plan-importer.js +63 -0
- package/src/runner/queue-store.js +159 -0
- package/src/runtime-store.js +158 -4
- package/src/sandbox.js +177 -0
- package/src/squad/agent-teams-adapter.js +264 -0
- package/src/squad/brief-validator.js +350 -0
- package/src/squad/bus-bridge.js +140 -0
- package/src/squad/context-compactor.js +265 -0
- package/src/squad/cross-ai-synthesizer.js +250 -0
- package/src/squad/hooks-generator.js +196 -0
- package/src/squad/inter-squad-events.js +175 -0
- package/src/squad/intra-bus.js +345 -0
- package/src/squad/learning-extractor.js +213 -0
- package/src/squad/pattern-detector.js +365 -0
- package/src/squad/preflight-context.js +296 -0
- package/src/squad/recovery-context.js +242 -71
- package/src/squad/reflection.js +365 -0
- package/src/squad/squad-scaffold.js +177 -0
- package/src/squad/state-manager.js +310 -0
- package/src/squad/task-decomposer.js +652 -0
- package/src/squad/verify-gate.js +303 -0
- package/src/tool-executor.js +94 -0
- package/src/updater.js +10 -3
- package/src/worker-runner.js +186 -1
- package/template/.aioson/agents/analyst.md +119 -3
- package/template/.aioson/agents/architect.md +98 -0
- package/template/.aioson/agents/design-hybrid-forge.md +141 -0
- package/template/.aioson/agents/dev.md +335 -14
- package/template/.aioson/agents/deyvin.md +117 -2
- package/template/.aioson/agents/discovery-design-doc.md +44 -0
- package/template/.aioson/agents/genome.md +14 -0
- package/template/.aioson/agents/neo.md +78 -1
- package/template/.aioson/agents/orache.md +50 -4
- package/template/.aioson/agents/orchestrator.md +197 -1
- package/template/.aioson/agents/pm.md +93 -0
- package/template/.aioson/agents/product.md +77 -4
- package/template/.aioson/agents/profiler-enricher.md +14 -0
- package/template/.aioson/agents/profiler-forge.md +14 -0
- package/template/.aioson/agents/profiler-researcher.md +14 -0
- package/template/.aioson/agents/qa.md +249 -19
- package/template/.aioson/agents/setup.md +144 -12
- package/template/.aioson/agents/sheldon.md +237 -11
- package/template/.aioson/agents/site-forge.md +1753 -0
- package/template/.aioson/agents/squad.md +162 -0
- package/template/.aioson/agents/tester.md +209 -0
- package/template/.aioson/agents/ux-ui.md +34 -1
- package/template/.aioson/brains/README.md +128 -0
- package/template/.aioson/brains/_index.json +16 -0
- package/template/.aioson/brains/scripts/query.js +103 -0
- package/template/.aioson/brains/site-forge/visual-patterns.brain.json +205 -0
- package/template/.aioson/config.md +158 -13
- package/template/.aioson/constitution.md +33 -0
- package/template/.aioson/context/forensics/.gitkeep +0 -0
- package/template/.aioson/context/project-pulse.md +34 -0
- package/template/.aioson/context/seeds/seed-example.md +27 -0
- package/template/.aioson/context/user-profile.md +42 -0
- package/template/.aioson/docs/LAYERS.md +79 -0
- package/template/.aioson/docs/README.md +76 -0
- package/template/.aioson/docs/example-external-api-context.md +72 -0
- package/template/.aioson/locales/en/agents/architect.md +17 -0
- package/template/.aioson/locales/en/agents/dev.md +79 -13
- package/template/.aioson/locales/en/agents/orache.md +6 -0
- package/template/.aioson/locales/en/agents/orchestrator.md +24 -0
- package/template/.aioson/locales/en/agents/product.md +50 -0
- package/template/.aioson/locales/en/agents/setup.md +33 -1
- package/template/.aioson/locales/en/agents/sheldon.md +115 -0
- package/template/.aioson/locales/en/agents/squad.md +14 -0
- package/template/.aioson/locales/en/agents/tester.md +6 -0
- package/template/.aioson/locales/es/agents/analyst.md +2 -0
- package/template/.aioson/locales/es/agents/architect.md +19 -0
- package/template/.aioson/locales/es/agents/dev.md +64 -4
- package/template/.aioson/locales/es/agents/deyvin.md +2 -0
- package/template/.aioson/locales/es/agents/discovery-design-doc.md +2 -0
- package/template/.aioson/locales/es/agents/genome.md +2 -0
- package/template/.aioson/locales/es/agents/neo.md +2 -0
- package/template/.aioson/locales/es/agents/orache.md +2 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/es/agents/pair.md +2 -0
- package/template/.aioson/locales/es/agents/pm.md +2 -0
- package/template/.aioson/locales/es/agents/product.md +52 -0
- package/template/.aioson/locales/es/agents/profiler-enricher.md +2 -0
- package/template/.aioson/locales/es/agents/profiler-forge.md +2 -0
- package/template/.aioson/locales/es/agents/profiler-researcher.md +2 -0
- package/template/.aioson/locales/es/agents/qa.md +2 -0
- package/template/.aioson/locales/es/agents/setup.md +35 -1
- package/template/.aioson/locales/es/agents/sheldon.md +117 -0
- package/template/.aioson/locales/es/agents/squad.md +16 -0
- package/template/.aioson/locales/es/agents/tester.md +9 -0
- package/template/.aioson/locales/es/agents/ux-ui.md +2 -0
- package/template/.aioson/locales/fr/agents/analyst.md +2 -0
- package/template/.aioson/locales/fr/agents/architect.md +19 -0
- package/template/.aioson/locales/fr/agents/dev.md +64 -4
- package/template/.aioson/locales/fr/agents/deyvin.md +2 -0
- package/template/.aioson/locales/fr/agents/discovery-design-doc.md +2 -0
- package/template/.aioson/locales/fr/agents/genome.md +2 -0
- package/template/.aioson/locales/fr/agents/neo.md +2 -0
- package/template/.aioson/locales/fr/agents/orache.md +2 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/fr/agents/pair.md +2 -0
- package/template/.aioson/locales/fr/agents/pm.md +2 -0
- package/template/.aioson/locales/fr/agents/product.md +52 -0
- package/template/.aioson/locales/fr/agents/profiler-enricher.md +2 -0
- package/template/.aioson/locales/fr/agents/profiler-forge.md +2 -0
- package/template/.aioson/locales/fr/agents/profiler-researcher.md +2 -0
- package/template/.aioson/locales/fr/agents/qa.md +2 -0
- package/template/.aioson/locales/fr/agents/setup.md +35 -1
- package/template/.aioson/locales/fr/agents/sheldon.md +117 -0
- package/template/.aioson/locales/fr/agents/squad.md +16 -0
- package/template/.aioson/locales/fr/agents/tester.md +9 -0
- package/template/.aioson/locales/fr/agents/ux-ui.md +2 -0
- package/template/.aioson/locales/pt-BR/agents/analyst.md +64 -3
- package/template/.aioson/locales/pt-BR/agents/architect.md +42 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +147 -14
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +47 -0
- package/template/.aioson/locales/pt-BR/agents/neo.md +62 -1
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +158 -2
- package/template/.aioson/locales/pt-BR/agents/pm.md +95 -1
- package/template/.aioson/locales/pt-BR/agents/product.md +145 -18
- package/template/.aioson/locales/pt-BR/agents/qa.md +16 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +134 -19
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +132 -1
- package/template/.aioson/locales/pt-BR/agents/squad.md +14 -0
- package/template/.aioson/locales/pt-BR/agents/tester.md +449 -0
- package/template/.aioson/rules/README.md +69 -0
- package/template/.aioson/rules/data-format-convention.md +136 -0
- package/template/.aioson/rules/example-monetary-values.md +30 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +124 -3
- package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +243 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +482 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +387 -0
- package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +222 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +213 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -0
- package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -0
- package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +66 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +368 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +165 -0
- package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +46 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/analyst.md +30 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +109 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/architect.md +23 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/artifact-map.md +44 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +37 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +47 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/deyvin.md +27 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/hardening-lane.md +49 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +101 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/product.md +25 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/qa.md +30 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/sheldon.md +25 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/ui-language.md +75 -0
- package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +147 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/crossover-protocol.md +221 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/naming-registry.md +88 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +306 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +149 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +208 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/variation-library.md +125 -0
- package/template/.aioson/skills/process/simplify/SKILL.md +173 -0
- package/template/.aioson/skills/static/context-budget-guide.md +46 -0
- package/template/.aioson/skills/static/harness-sensors.md +74 -0
- package/template/.aioson/skills/static/multi-agent-patterns.md +43 -0
- package/template/.aioson/skills/static/react-motion-patterns.md +22 -0
- package/template/.aioson/skills/static/static-html-patterns/checklists.md +43 -0
- package/template/.aioson/skills/static/static-html-patterns/css-tokens.md +609 -0
- package/template/.aioson/skills/static/static-html-patterns/motion.md +193 -0
- package/template/.aioson/skills/static/static-html-patterns/premium.md +711 -0
- package/template/.aioson/skills/static/static-html-patterns/structure.md +209 -0
- package/template/.aioson/skills/static/static-html-patterns/utilities.md +190 -0
- package/template/.aioson/skills/static/static-html-patterns.md +58 -1913
- package/template/.aioson/skills/static/threejs-patterns.md +929 -0
- package/template/.aioson/skills/static/web-research-cache.md +112 -0
- package/template/.aioson/tasks/implementation-plan.md +21 -1
- package/template/.claude/commands/aioson/agent/design-hybrid-forge.md +5 -0
- package/template/.claude/commands/aioson/agent/orache.md +5 -0
- package/template/.claude/commands/aioson/agent/sheldon.md +5 -0
- package/template/.claude/commands/aioson/agent/site-forge.md +5 -0
- package/template/AGENTS.md +75 -1
- package/template/CLAUDE.md +31 -0
- package/template/OPENCODE.md +4 -0
- package/template/researchs/.gitkeep +0 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Sandbox de Execução
|
|
2
|
+
|
|
3
|
+
> Executa comandos shell com timeout automático, redação de secrets e summarização de output longo.
|
|
4
|
+
|
|
5
|
+
O `sandbox:exec` roda comandos em subprocesso isolado com três garantias: o comando é interrompido se passar do tempo máximo, qualquer secret reconhecido no output é redatado antes de ser exibido, e outputs maiores que 5KB são automaticamente resumidos mantendo início e fim.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Comando
|
|
10
|
+
|
|
11
|
+
### `sandbox:exec`
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
aioson sandbox:exec "<comando>" [opções]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**Opções:**
|
|
18
|
+
|
|
19
|
+
| Opção | Descrição |
|
|
20
|
+
|---|---|
|
|
21
|
+
| `--timeout=<ms>` | Interromper após N milissegundos (padrão: 30000) |
|
|
22
|
+
| `--cwd=<path>` | Diretório de trabalho do comando |
|
|
23
|
+
| `--intent="..."` | Rótulo para output truncado (aparece na marcação de omissão) |
|
|
24
|
+
| `--json` | Retorna stdout, stderr, exitCode e timedOut em JSON |
|
|
25
|
+
|
|
26
|
+
**Exemplos:**
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Rodar testes com timeout de 60 segundos
|
|
30
|
+
aioson sandbox:exec "npm test" --timeout=60000
|
|
31
|
+
|
|
32
|
+
# Comando que pode exibir secrets (redatado automaticamente)
|
|
33
|
+
aioson sandbox:exec "env | grep TOKEN"
|
|
34
|
+
|
|
35
|
+
# Executar em outro diretório
|
|
36
|
+
aioson sandbox:exec "npm run build" --cwd=./frontend
|
|
37
|
+
|
|
38
|
+
# Capturar resultado estruturado
|
|
39
|
+
aioson sandbox:exec "node -e 'console.log(JSON.stringify({ok:true}))'" --json
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Redação automática de secrets
|
|
45
|
+
|
|
46
|
+
O output é varrido automaticamente antes de ser exibido. Qualquer padrão reconhecido é substituído por `[REDACTED]`:
|
|
47
|
+
|
|
48
|
+
| Padrão | Exemplo |
|
|
49
|
+
|---|---|
|
|
50
|
+
| GitHub token (`ghp_*`) | `ghp_abc123...` → `ghp_[REDACTED]` |
|
|
51
|
+
| GitHub fine-grained (`github_pat_*`) | `github_pat_abc...` → `github_pat_[REDACTED]` |
|
|
52
|
+
| AWS access key (`AKIA*`) | `AKIAIOSFODNN7EXAMPLE` → `AKIA[REDACTED]` |
|
|
53
|
+
| Google OAuth (`ya29.*`) | `ya29.A0ARrd...` → `ya29.[REDACTED]` |
|
|
54
|
+
| Bearer token | `Bearer eyJhb...` → `Bearer [REDACTED]` |
|
|
55
|
+
| Senha em URL | `:minhasenha@host` → `:[REDACTED]@host` |
|
|
56
|
+
| `password=...` | `password=abc123` → `password=[REDACTED]` |
|
|
57
|
+
| `passwd=...` | `passwd=abc123` → `passwd=[REDACTED]` |
|
|
58
|
+
| `secret=...` | `secret=xyz` → `secret=[REDACTED]` |
|
|
59
|
+
| `api_key=...` | `api_key=sk-abc` → `api_key=[REDACTED]` |
|
|
60
|
+
| Bloco de chave privada | `-----BEGIN PRIVATE KEY-----...` → `[REDACTED]` |
|
|
61
|
+
|
|
62
|
+
A redação é aplicada tanto ao stdout quanto ao stderr.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Timeout e interrupção
|
|
67
|
+
|
|
68
|
+
O comando é encerrado com `AbortController` quando o timeout é atingido. O resultado retorna `timedOut: true` e `ok: false`.
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# Vai ser interrompido após 500ms
|
|
72
|
+
aioson sandbox:exec "sleep 10" --timeout=500
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Summarização de output longo
|
|
78
|
+
|
|
79
|
+
Se o output ultrapassar 5KB, a resposta mantém o início e o fim e indica quantos bytes foram omitidos:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
[início do output...]
|
|
83
|
+
|
|
84
|
+
[... 12.450 bytes omitted (npm test) ...]
|
|
85
|
+
|
|
86
|
+
[...fim do output]
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Use `--intent="..."` para que o rótulo apareça na marcação de omissão.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## JSON output
|
|
94
|
+
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"ok": true,
|
|
98
|
+
"stdout": "Tests: 42 passed\n",
|
|
99
|
+
"stderr": "",
|
|
100
|
+
"exitCode": 0,
|
|
101
|
+
"timedOut": false,
|
|
102
|
+
"signal": null
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Quando há timeout:
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"ok": false,
|
|
111
|
+
"stdout": "",
|
|
112
|
+
"stderr": "Command timed out after 500ms",
|
|
113
|
+
"exitCode": null,
|
|
114
|
+
"timedOut": true
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Quando usar
|
|
121
|
+
|
|
122
|
+
- Rodar scripts ou testes dentro de uma sessão de agente sem expor secrets do ambiente
|
|
123
|
+
- Capturar output de comandos que podem conter variáveis de ambiente sensíveis
|
|
124
|
+
- Executar builds ou verificações com tempo máximo controlado
|
|
125
|
+
- Testar comandos cujo output vai ser lido de volta pelo agente (redação evita envenenamento de contexto com secrets)
|
|
@@ -0,0 +1,557 @@
|
|
|
1
|
+
# SDD Automation Scripts — Regra dos 80%
|
|
2
|
+
|
|
3
|
+
> Referência completa dos 12 comandos determinísticos do AIOSON que movem trabalho de arquivo/estado/validação para fora do contexto LLM.
|
|
4
|
+
|
|
5
|
+
## Por que esses scripts existem
|
|
6
|
+
|
|
7
|
+
Antes desses scripts, verificações como "o gate A está aprovado?" ou "qual o classificação desse projeto?" eram resolvidas dentro da janela de contexto do agente — custando entre 7.200 e 18.500 tokens por feature. Os scripts SDD cobrem exatamente esses 80% de trabalho determinístico, deixando o agente focar nos 20% que exigem raciocínio.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## preflight
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
aioson preflight [path] [--agent=<agent>] [--feature=<slug>] [--json]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Coleta todos os dados de pré-voo em uma chamada só: modo do projeto, classificação, framework detectado, test runner, artefatos disponíveis, estado dos phase gates, dev-state, contexto compacto e prontidão para o agente pedido.
|
|
18
|
+
|
|
19
|
+
**Flags:**
|
|
20
|
+
|
|
21
|
+
| Flag | Descrição |
|
|
22
|
+
|---|---|
|
|
23
|
+
| `--agent=<name>` | Filtra prontidão para o agente específico (dev, qa, analyst…) |
|
|
24
|
+
| `--feature=<slug>` | Slug da feature para procurar artefatos e gates |
|
|
25
|
+
| `--json` | Saída estruturada JSON |
|
|
26
|
+
|
|
27
|
+
**Saída JSON (campos principais):**
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"ok": true,
|
|
32
|
+
"mode": "feature",
|
|
33
|
+
"classification": "SMALL",
|
|
34
|
+
"framework": "Laravel",
|
|
35
|
+
"test_runner": "phpunit",
|
|
36
|
+
"artifacts": { "prd": true, "spec": true, "implementation_plan": false },
|
|
37
|
+
"phase_gates": { "A": "approved", "B": "approved", "C": null, "D": null },
|
|
38
|
+
"readiness": { "status": "READY", "blockers": [] },
|
|
39
|
+
"rules": ["process-atomic-commits.md"]
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Quando usar:** no início de qualquer sessão de agente para eliminar a necessidade de ler vários arquivos manualmente.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## classify
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
aioson classify [path] [--feature=<slug>] [--interactive] [--json]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Detecta a classificação da feature (MICRO / SMALL / MEDIUM) automaticamente a partir do PRD e dos requirements, ou interativamente via prompts.
|
|
54
|
+
|
|
55
|
+
**Algoritmo de pontuação:**
|
|
56
|
+
|
|
57
|
+
| Dimensão | 0 pts | 1 pt | 2 pts |
|
|
58
|
+
|---|---|---|---|
|
|
59
|
+
| Tipos de usuário | 1 | 2 | 3+ |
|
|
60
|
+
| Integrações externas | nenhuma | 1 | 2+ |
|
|
61
|
+
| Regras de negócio | simples | moderadas | complexas |
|
|
62
|
+
|
|
63
|
+
- **0–1:** MICRO — só `@dev`, sem fases
|
|
64
|
+
- **2–3:** SMALL — `@product → @analyst → @dev → @qa`
|
|
65
|
+
- **4–6:** MEDIUM — adiciona `@architect`, paralelismo, conformance
|
|
66
|
+
|
|
67
|
+
**Flags:**
|
|
68
|
+
|
|
69
|
+
| Flag | Descrição |
|
|
70
|
+
|---|---|
|
|
71
|
+
| `--feature=<slug>` | Lê `prd-<slug>.md` e `requirements-<slug>.md` automaticamente |
|
|
72
|
+
| `--interactive` | Prompts no terminal para entrada manual |
|
|
73
|
+
| `--json` | Saída estruturada |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## sizing
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
aioson sizing [path] [--feature=<slug>] [--prd=<path>] [--json]
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Lê o PRD e determina o modelo de sizing: `inplace`, `phased_inplace` ou `phased_external`.
|
|
84
|
+
|
|
85
|
+
**Critérios:**
|
|
86
|
+
|
|
87
|
+
| Decisão | Quando |
|
|
88
|
+
|---|---|
|
|
89
|
+
| `inplace` | ≤ 3 entidades, ≤ 2 fases, sem integração externa |
|
|
90
|
+
| `phased_inplace` | 4–7 entidades, 3–5 fases, 1 integração |
|
|
91
|
+
| `phased_external` | 8+ entidades ou 6+ fases ou 2+ integrações |
|
|
92
|
+
|
|
93
|
+
**Saída:**
|
|
94
|
+
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"ok": true,
|
|
98
|
+
"sizing": "phased_inplace",
|
|
99
|
+
"entities": 5,
|
|
100
|
+
"phases": 4,
|
|
101
|
+
"integrations": 1,
|
|
102
|
+
"score": 10
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## detect:test-runner
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
aioson detect:test-runner [path] [--json]
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Detecta o test runner do projeto verificando arquivos de configuração e `package.json`.
|
|
115
|
+
|
|
116
|
+
**Frameworks detectados:**
|
|
117
|
+
|
|
118
|
+
| Framework | Arquivo de configuração |
|
|
119
|
+
|---|---|
|
|
120
|
+
| PHPUnit | `phpunit.xml`, `phpunit.xml.dist` |
|
|
121
|
+
| Pest | `phpunit.xml` com `pestphp` |
|
|
122
|
+
| Jest | `jest.config.js`, `jest.config.ts`, `jest.config.mjs` |
|
|
123
|
+
| Vitest | `vitest.config.js`, `vitest.config.ts` |
|
|
124
|
+
| Pytest | `pytest.ini`, `pyproject.toml`, `setup.cfg` |
|
|
125
|
+
| RSpec | `.rspec`, `spec/spec_helper.rb` |
|
|
126
|
+
| Forge | `phpunit.xml` com `orchestra/testbench` |
|
|
127
|
+
| node:test | `package.json` com script `test` usando `node --test` |
|
|
128
|
+
|
|
129
|
+
**Saída:**
|
|
130
|
+
|
|
131
|
+
```json
|
|
132
|
+
{
|
|
133
|
+
"ok": true,
|
|
134
|
+
"name": "jest",
|
|
135
|
+
"command": "npx jest",
|
|
136
|
+
"configFile": "jest.config.ts"
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## pulse:update
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
aioson pulse:update [path] --agent=<agent> [--feature=<slug>] [--gate=<text>] [--action=<text>] [--next=<text>] [--json]
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Cria ou atualiza `.aioson/context/project-pulse.md` com o estado atual da sessão.
|
|
149
|
+
|
|
150
|
+
**O que atualiza:**
|
|
151
|
+
- `active_agent`, `active_feature`, `active_work`
|
|
152
|
+
- `last_gate` e `last_agent`
|
|
153
|
+
- Seção `## Recent Activity` (mantém as últimas 3 entradas)
|
|
154
|
+
|
|
155
|
+
**Flags:**
|
|
156
|
+
|
|
157
|
+
| Flag | Descrição |
|
|
158
|
+
|---|---|
|
|
159
|
+
| `--agent=<name>` | Agente ativo (obrigatório) |
|
|
160
|
+
| `--feature=<slug>` | Feature em andamento |
|
|
161
|
+
| `--gate=<text>` | Último gate avançado |
|
|
162
|
+
| `--action=<text>` | O que está sendo feito agora |
|
|
163
|
+
| `--next=<text>` | Próximo passo previsto |
|
|
164
|
+
|
|
165
|
+
**Exemplo:**
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
aioson pulse:update . \
|
|
169
|
+
--agent=dev \
|
|
170
|
+
--feature=checkout \
|
|
171
|
+
--gate="Gate C: approved" \
|
|
172
|
+
--action="Implementing Phase 2: AddToCart" \
|
|
173
|
+
--next="Phase 3: Payment webhook"
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## state:save
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
aioson state:save [path] --feature=<slug> [--phase=<n>] [--next=<text>] [--spec-version=<n>] [--status=<status>] [--json]
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Cria ou atualiza `.aioson/context/dev-state.md` com o ponto de continuação atual.
|
|
185
|
+
|
|
186
|
+
**Status válidos:** `in_progress`, `blocked`, `complete`, `paused`
|
|
187
|
+
|
|
188
|
+
**O que grava:**
|
|
189
|
+
- Frontmatter: `feature`, `phase`, `status`, `spec_version`, `updated_at`
|
|
190
|
+
- Seção `## History` com entrada timestampada para auditoria
|
|
191
|
+
|
|
192
|
+
**Exemplo:**
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
aioson state:save . \
|
|
196
|
+
--feature=checkout \
|
|
197
|
+
--phase=3 \
|
|
198
|
+
--next="Implement webhook idempotency" \
|
|
199
|
+
--spec-version=4 \
|
|
200
|
+
--status=in_progress
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## feature:close
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
aioson feature:close [path] --feature=<slug> --verdict=<PASS|FAIL> [--residual=<text>] [--notes=<text>] [--json]
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Fecha uma feature após QA sign-off. Atualiza três arquivos:
|
|
212
|
+
|
|
213
|
+
1. **`spec-<slug>.md`** — adiciona bloco `## QA Sign-off` e atualiza `gate_execution` no frontmatter
|
|
214
|
+
2. **`features.md`** — muda status para `done` ou `qa_failed`
|
|
215
|
+
3. **`project-pulse.md`** — zera `active_feature`, atualiza `last_gate`
|
|
216
|
+
|
|
217
|
+
**Exemplo (PASS):**
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
aioson feature:close . --feature=checkout --verdict=PASS
|
|
221
|
+
# Com residual (item não testado mas aceito):
|
|
222
|
+
aioson feature:close . \
|
|
223
|
+
--feature=checkout \
|
|
224
|
+
--verdict=PASS \
|
|
225
|
+
--residual="Email delivery not tested E2E"
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**Exemplo (FAIL):**
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
aioson feature:close . \
|
|
232
|
+
--feature=checkout \
|
|
233
|
+
--verdict=FAIL \
|
|
234
|
+
--notes="Auth edge case missing — re-open after fix"
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
**Saída JSON:**
|
|
238
|
+
|
|
239
|
+
```json
|
|
240
|
+
{
|
|
241
|
+
"ok": true,
|
|
242
|
+
"feature": "checkout",
|
|
243
|
+
"verdict": "PASS",
|
|
244
|
+
"date": "2026-04-04",
|
|
245
|
+
"residual": null,
|
|
246
|
+
"updates": [
|
|
247
|
+
"spec-checkout.md: added QA sign-off (2026-04-04, PASS)",
|
|
248
|
+
"features.md: checkout → done (2026-04-04)",
|
|
249
|
+
"project-pulse.md: updated active work"
|
|
250
|
+
]
|
|
251
|
+
}
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## gate:check
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
aioson gate:check [path] --feature=<slug> --gate=<gate> [--json]
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Verifica se um phase gate pode ser aprovado. Retorna `PASS` ou `BLOCKED` com lista de evidências.
|
|
263
|
+
|
|
264
|
+
**Gates aceitos:** `A` / `requirements`, `B` / `design`, `C` / `plan`, `D` / `execution`
|
|
265
|
+
|
|
266
|
+
**Pré-requisitos por gate:**
|
|
267
|
+
|
|
268
|
+
| Gate | Requer | Artefato obrigatório |
|
|
269
|
+
|---|---|---|
|
|
270
|
+
| A | — | `requirements-<slug>.md` ou `prd-<slug>.md` |
|
|
271
|
+
| B | Gate A | `spec-<slug>.md` |
|
|
272
|
+
| C | Gates A + B | `implementation-plan-<slug>.md` |
|
|
273
|
+
| D | Gates A + B + C | QA sign-off em `spec-<slug>.md` |
|
|
274
|
+
|
|
275
|
+
**Exemplo:**
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
aioson gate:check . --feature=checkout --gate=C --json
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
```json
|
|
282
|
+
{
|
|
283
|
+
"ok": true,
|
|
284
|
+
"gate": "C",
|
|
285
|
+
"gate_name": "plan",
|
|
286
|
+
"verdict": "PASS",
|
|
287
|
+
"evidence": [
|
|
288
|
+
"Gate A: approved",
|
|
289
|
+
"Gate B: approved",
|
|
290
|
+
"implementation-plan-checkout.md: found"
|
|
291
|
+
]
|
|
292
|
+
}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**Quando BLOCKED:**
|
|
296
|
+
|
|
297
|
+
```json
|
|
298
|
+
{
|
|
299
|
+
"ok": false,
|
|
300
|
+
"gate": "C",
|
|
301
|
+
"verdict": "BLOCKED",
|
|
302
|
+
"blockers": ["Gate B not approved — spec-checkout.md missing or gate_design not set"],
|
|
303
|
+
"evidence": ["Gate A: approved"]
|
|
304
|
+
}
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## artifact:validate
|
|
310
|
+
|
|
311
|
+
```
|
|
312
|
+
aioson artifact:validate [path] --feature=<slug> [--json]
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
Valida a cadeia completa de artefatos de uma feature. Verifica a existência de cada arquivo esperado e reporta o que está presente, ausente ou opcional.
|
|
316
|
+
|
|
317
|
+
**Cadeia verificada:**
|
|
318
|
+
|
|
319
|
+
```
|
|
320
|
+
project.context.md
|
|
321
|
+
→ prd-<slug>.md
|
|
322
|
+
→ sheldon-<slug>.md (opcional para MICRO)
|
|
323
|
+
→ requirements-<slug>.md
|
|
324
|
+
→ spec-<slug>.md
|
|
325
|
+
→ architecture.md
|
|
326
|
+
→ implementation-plan-<slug>.md
|
|
327
|
+
→ conformance-<slug>.yaml (somente MEDIUM)
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
**Saída:**
|
|
331
|
+
|
|
332
|
+
```json
|
|
333
|
+
{
|
|
334
|
+
"ok": true,
|
|
335
|
+
"feature": "checkout",
|
|
336
|
+
"classification": "SMALL",
|
|
337
|
+
"present": ["project.context.md", "prd-checkout.md", "spec-checkout.md"],
|
|
338
|
+
"missing": ["implementation-plan-checkout.md"],
|
|
339
|
+
"optional_missing": ["sheldon-checkout.md"],
|
|
340
|
+
"chain_complete": false,
|
|
341
|
+
"next_missing": "implementation-plan-checkout.md"
|
|
342
|
+
}
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## workflow:execute
|
|
348
|
+
|
|
349
|
+
```
|
|
350
|
+
aioson workflow:execute [path] --feature=<slug> [--tool=<tool>] [--classification=<tier>] [--dry-run] [--start-from=<agent>] [--json]
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
Monta e executa o plano de agentes para uma feature com base na classificação.
|
|
354
|
+
|
|
355
|
+
**Planos por tier:**
|
|
356
|
+
|
|
357
|
+
| Tier | Passos |
|
|
358
|
+
|---|---|
|
|
359
|
+
| MICRO | `@dev` |
|
|
360
|
+
| SMALL | `@product → @analyst → @dev → @qa` |
|
|
361
|
+
| MEDIUM | `@product → @analyst → @architect → gate:check C → @dev (por fase) → @qa` |
|
|
362
|
+
|
|
363
|
+
**Flags:**
|
|
364
|
+
|
|
365
|
+
| Flag | Descrição |
|
|
366
|
+
|---|---|
|
|
367
|
+
| `--tool=<tool>` | Ferramenta a usar (`claude`, `codex`, `gemini`) |
|
|
368
|
+
| `--classification=<tier>` | Override manual da classificação |
|
|
369
|
+
| `--dry-run` | Mostra o plano sem executar |
|
|
370
|
+
| `--start-from=<agent>` | Pula agentes anteriores ao agente dado |
|
|
371
|
+
|
|
372
|
+
**Exemplo dry-run:**
|
|
373
|
+
|
|
374
|
+
```bash
|
|
375
|
+
aioson workflow:execute . \
|
|
376
|
+
--feature=checkout \
|
|
377
|
+
--classification=SMALL \
|
|
378
|
+
--dry-run \
|
|
379
|
+
--json
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
```json
|
|
383
|
+
{
|
|
384
|
+
"ok": true,
|
|
385
|
+
"dry_run": true,
|
|
386
|
+
"feature": "checkout",
|
|
387
|
+
"classification": "SMALL",
|
|
388
|
+
"steps": [
|
|
389
|
+
{ "agent": "product", "skip": false, "reason": "prd not found" },
|
|
390
|
+
{ "agent": "analyst", "skip": false },
|
|
391
|
+
{ "agent": "dev", "skip": false },
|
|
392
|
+
{ "agent": "qa", "skip": false }
|
|
393
|
+
]
|
|
394
|
+
}
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
**Exemplo com retomada:**
|
|
398
|
+
|
|
399
|
+
```bash
|
|
400
|
+
# Feature travada em dev — pular product e analyst
|
|
401
|
+
aioson workflow:execute . \
|
|
402
|
+
--feature=checkout \
|
|
403
|
+
--tool=claude \
|
|
404
|
+
--start-from=dev
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
---
|
|
408
|
+
|
|
409
|
+
## runner:queue:from-plan
|
|
410
|
+
|
|
411
|
+
```
|
|
412
|
+
aioson runner:queue:from-plan [path] --feature=<slug> [--plan=<path>] [--agent=<agent>] [--dry-run] [--json]
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
Extrai as fases de um plano de implementação e as enfileira no runner do AIOSON com prioridades correspondentes ao número da fase.
|
|
416
|
+
|
|
417
|
+
**Formato reconhecido:**
|
|
418
|
+
|
|
419
|
+
O arquivo deve conter headers `## Phase N: Título da fase` (onde N é um inteiro). Qualquer nível de heading funciona.
|
|
420
|
+
|
|
421
|
+
**Requer:** banco de runtime inicializado (`aioson runtime:init .` ou uso prévio do runner).
|
|
422
|
+
|
|
423
|
+
**Flags:**
|
|
424
|
+
|
|
425
|
+
| Flag | Descrição |
|
|
426
|
+
|---|---|
|
|
427
|
+
| `--feature=<slug>` | Lê `.aioson/context/implementation-plan-<slug>.md` |
|
|
428
|
+
| `--plan=<path>` | Caminho arbitrário para o arquivo de plano |
|
|
429
|
+
| `--agent=<name>` | Agente padrão para as tarefas enfileiradas |
|
|
430
|
+
| `--dry-run` | Lista as fases sem enfileirar |
|
|
431
|
+
|
|
432
|
+
**Exemplo:**
|
|
433
|
+
|
|
434
|
+
```bash
|
|
435
|
+
# Dry-run para ver as fases antes de enfileirar
|
|
436
|
+
aioson runner:queue:from-plan . --feature=checkout --dry-run
|
|
437
|
+
|
|
438
|
+
# Enfileirar todas as fases para o agente dev
|
|
439
|
+
aioson runner:queue:from-plan . --feature=checkout --agent=dev
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
**Saída (modo enfileirado):**
|
|
443
|
+
|
|
444
|
+
```json
|
|
445
|
+
{
|
|
446
|
+
"ok": true,
|
|
447
|
+
"feature": "checkout",
|
|
448
|
+
"queued": [
|
|
449
|
+
{ "phase": 1, "title": "Create database migrations", "priority": 1 },
|
|
450
|
+
{ "phase": 2, "title": "Implement AddToCart action", "priority": 2 },
|
|
451
|
+
{ "phase": 3, "title": "Payment webhook handler", "priority": 3 }
|
|
452
|
+
]
|
|
453
|
+
}
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
## learning:auto-promote
|
|
459
|
+
|
|
460
|
+
```
|
|
461
|
+
aioson learning:auto-promote [path] [--threshold=<n>] [--dry-run] [--json]
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
Lê `project_learnings` do SQLite de runtime e promove automaticamente aprendizados de processo e qualidade de alta frequência para arquivos de regra em `.aioson/rules/`.
|
|
465
|
+
|
|
466
|
+
**Tipos promovidos:** `process`, `quality`
|
|
467
|
+
**Tipos não promovidos:** `domain` (anotados em `noted_items`, não viram regras)
|
|
468
|
+
|
|
469
|
+
**Threshold padrão:** 3 ocorrências
|
|
470
|
+
|
|
471
|
+
**Arquivo gerado:** `.aioson/rules/<type>-<slug>.md`
|
|
472
|
+
|
|
473
|
+
**Exemplo:**
|
|
474
|
+
|
|
475
|
+
```bash
|
|
476
|
+
# Ver o que seria promovido sem escrever nada
|
|
477
|
+
aioson learning:auto-promote . --threshold=3 --dry-run
|
|
478
|
+
|
|
479
|
+
# Promover com threshold mais alto
|
|
480
|
+
aioson learning:auto-promote . --threshold=5
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
**Saída:**
|
|
484
|
+
|
|
485
|
+
```json
|
|
486
|
+
{
|
|
487
|
+
"ok": true,
|
|
488
|
+
"dry_run": false,
|
|
489
|
+
"threshold": 3,
|
|
490
|
+
"eligible": 2,
|
|
491
|
+
"promoted": 2,
|
|
492
|
+
"skipped": 0,
|
|
493
|
+
"noted": 1,
|
|
494
|
+
"promoted_items": [
|
|
495
|
+
{ "title": "Commit after each atomic step", "type": "process", "file": ".aioson/rules/process-commit-after-each-atomic-step.md" },
|
|
496
|
+
{ "title": "Run tests before commit", "type": "process", "file": ".aioson/rules/process-run-tests-before-commit.md" }
|
|
497
|
+
],
|
|
498
|
+
"noted_items": [
|
|
499
|
+
{ "title": "Cart uniqueness constraint", "type": "domain" }
|
|
500
|
+
]
|
|
501
|
+
}
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
---
|
|
505
|
+
|
|
506
|
+
## Fluxo completo de uma feature SMALL
|
|
507
|
+
|
|
508
|
+
```bash
|
|
509
|
+
# 1. Pré-voo: ver o estado antes de começar
|
|
510
|
+
aioson preflight . --agent=dev --feature=checkout
|
|
511
|
+
|
|
512
|
+
# 2. Classificar automaticamente
|
|
513
|
+
aioson classify . --feature=checkout
|
|
514
|
+
|
|
515
|
+
# 3. Verificar cadeia de artefatos
|
|
516
|
+
aioson artifact:validate . --feature=checkout
|
|
517
|
+
|
|
518
|
+
# 4. Checar gate C antes de começar dev
|
|
519
|
+
aioson gate:check . --feature=checkout --gate=C
|
|
520
|
+
|
|
521
|
+
# 5. Executar workflow (ou dry-run primeiro)
|
|
522
|
+
aioson workflow:execute . --feature=checkout --tool=claude --dry-run
|
|
523
|
+
aioson workflow:execute . --feature=checkout --tool=claude
|
|
524
|
+
|
|
525
|
+
# 6. Durante dev: salvar estado ao final de cada fase
|
|
526
|
+
aioson state:save . --feature=checkout --phase=2 --status=in_progress \
|
|
527
|
+
--next="Phase 3: webhook" --spec-version=3
|
|
528
|
+
aioson pulse:update . --agent=dev --feature=checkout \
|
|
529
|
+
--action="Phase 2 done" --next="Phase 3"
|
|
530
|
+
|
|
531
|
+
# 7. QA sign-off
|
|
532
|
+
aioson feature:close . --feature=checkout --verdict=PASS
|
|
533
|
+
|
|
534
|
+
# 8. Promover aprendizados para regras
|
|
535
|
+
aioson learning:auto-promote . --threshold=3
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
---
|
|
539
|
+
|
|
540
|
+
## Integração com a Regra dos 80%
|
|
541
|
+
|
|
542
|
+
Esses scripts foram criados conforme o **Plan 79 — SDD Automation Scripts**. A ideia central é:
|
|
543
|
+
|
|
544
|
+
- **80% do trabalho** de verificação, estado e validação é determinístico — scripts fazem melhor que LLMs
|
|
545
|
+
- **20% restantes** exigem raciocínio — reserve o contexto do agente para isso
|
|
546
|
+
|
|
547
|
+
**Economia estimada por feature:**
|
|
548
|
+
|
|
549
|
+
| Comando | Tokens economizados |
|
|
550
|
+
|---|---|
|
|
551
|
+
| `preflight` | 1.800–3.200 tokens (leitura de vários arquivos) |
|
|
552
|
+
| `classify` | 800–1.500 tokens (análise de scoring) |
|
|
553
|
+
| `gate:check` | 600–1.200 tokens (verificação de pré-requisitos) |
|
|
554
|
+
| `artifact:validate` | 500–900 tokens (varredura de cadeia) |
|
|
555
|
+
| `state:save` + `pulse:update` | 300–600 tokens (escrita de estado) |
|
|
556
|
+
| `feature:close` | 800–1.400 tokens (atualização de três arquivos) |
|
|
557
|
+
| **Total** | **4.800–8.800 por feature** |
|