@jaimevalasek/aioson 1.7.0 → 1.8.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 +60 -0
- package/README.md +153 -10
- package/docs/en/cli-reference.md +56 -1
- package/docs/en/i18n.md +18 -18
- package/docs/en/schemas/index.json +10 -0
- package/docs/en/schemas/parallel-assign.schema.json +9 -0
- package/docs/en/schemas/parallel-doctor.schema.json +36 -0
- package/docs/en/schemas/parallel-guard.schema.json +63 -0
- package/docs/en/schemas/parallel-merge.schema.json +84 -0
- package/docs/en/schemas/parallel-status.schema.json +91 -1
- package/docs/integrations/apps-publish-marketplace.md +94 -0
- package/docs/pt/README.md +9 -0
- package/docs/pt/agentes.md +324 -3
- package/docs/pt/clientes-ai.md +7 -3
- package/docs/pt/comandos-cli.md +160 -13
- package/docs/pt/compress-agents.md +304 -0
- package/docs/pt/design-docs-governance.md +59 -0
- package/docs/pt/feature-archive.md +191 -0
- package/docs/pt/genome-3.0-spec.md +115 -4
- package/docs/pt/genome-distribution.md +232 -0
- package/docs/pt/inicio-rapido.md +1 -0
- package/docs/pt/motor-hardening.md +492 -0
- package/docs/pt/runner-system.md +113 -0
- package/package.json +2 -1
- package/src/agent-manifests.js +66 -0
- package/src/agents.js +27 -7
- package/src/autonomy-policy.js +139 -0
- package/src/brain-query.js +161 -0
- package/src/cli.js +1377 -1099
- package/src/commands/agents.js +102 -7
- package/src/commands/artifact-validate.js +33 -4
- package/src/commands/auth.js +272 -0
- package/src/commands/brain-query.js +44 -0
- package/src/commands/briefing.js +344 -0
- package/src/commands/commit-prepare.js +547 -0
- package/src/commands/compress-agents.js +416 -0
- package/src/commands/context-health.js +4 -2
- package/src/commands/context-trim.js +17 -11
- package/src/commands/design-hybrid-options.js +3 -3
- package/src/commands/devlog-process.js +6 -4
- package/src/commands/dossier.js +423 -0
- package/src/commands/feature-archive.js +513 -0
- package/src/commands/feature-close.js +123 -18
- package/src/commands/gate-approve.js +198 -0
- package/src/commands/gate-check.js +24 -5
- package/src/commands/genome-doctor.js +166 -9
- package/src/commands/git-guard.js +170 -0
- package/src/commands/harness.js +121 -0
- package/src/commands/implementation-plan.js +47 -20
- package/src/commands/init.js +6 -2
- package/src/commands/install.js +6 -2
- package/src/commands/live.js +497 -56
- package/src/commands/locale-apply.js +9 -6
- package/src/commands/locale-diff.js +11 -112
- package/src/commands/mcp-doctor.js +2 -1
- package/src/commands/mcp-init.js +4 -10
- package/src/commands/memory.js +234 -0
- package/src/commands/parallel-assign.js +107 -27
- package/src/commands/parallel-doctor.js +416 -3
- package/src/commands/parallel-guard.js +241 -0
- package/src/commands/parallel-init.js +66 -4
- package/src/commands/parallel-merge.js +299 -0
- package/src/commands/parallel-status.js +147 -3
- package/src/commands/preflight.js +63 -4
- package/src/commands/qa-init.js +10 -5
- package/src/commands/revision.js +235 -0
- package/src/commands/scaffold-complete.js +188 -0
- package/src/commands/security-audit.js +275 -0
- package/src/commands/security-scan.js +376 -0
- package/src/commands/self-implement-loop.js +46 -2
- package/src/commands/setup-context.js +11 -10
- package/src/commands/squad-agent-create.js +51 -9
- package/src/commands/squad-investigate.js +53 -0
- package/src/commands/squad-plan.js +33 -1
- package/src/commands/squad-scaffold.js +4 -3
- package/src/commands/squad-score.js +71 -14
- package/src/commands/squad-status.js +22 -1
- package/src/commands/squad-validate.js +93 -2
- package/src/commands/store-genome.js +304 -0
- package/src/commands/store-skill.js +247 -0
- package/src/commands/store-squad.js +431 -0
- package/src/commands/store-system.js +392 -0
- package/src/commands/tool-capabilities.js +63 -0
- package/src/commands/update.js +3 -3
- package/src/commands/verify-gate.js +40 -0
- package/src/commands/workflow-execute.js +644 -155
- package/src/commands/workflow-harden.js +231 -0
- package/src/commands/workflow-heal.js +136 -0
- package/src/commands/workflow-next.js +460 -22
- package/src/commands/workflow-status.js +328 -138
- package/src/commands/workspace.js +144 -0
- package/src/constants.js +55 -75
- package/src/context-memory.js +133 -4
- package/src/context-writer.js +2 -1
- package/src/context.js +32 -2
- package/src/doctor.js +46 -6
- package/src/dossier/codemap-store.js +267 -0
- package/src/dossier/dossier-bootstrap.js +222 -0
- package/src/dossier/dossier-compact.js +159 -0
- package/src/dossier/lock.js +128 -0
- package/src/dossier/revision-store.js +313 -0
- package/src/dossier/schema.js +155 -0
- package/src/dossier/store.js +400 -0
- package/src/execution-gateway.js +3 -0
- package/src/friction-scanner.js +202 -0
- package/src/genome-schema.js +24 -1
- package/src/genomes.js +33 -0
- package/src/handoff-contract.js +363 -0
- package/src/handoff-validator.js +45 -0
- package/src/harness/circuit-breaker.js +135 -0
- package/src/i18n/messages/en.js +317 -22
- package/src/i18n/messages/es.js +259 -18
- package/src/i18n/messages/fr.js +260 -18
- package/src/i18n/messages/pt-BR.js +313 -22
- package/src/install-profile.js +0 -16
- package/src/installer.js +70 -6
- package/src/lib/git-commit-guard.js +691 -0
- package/src/lib/security/artifact-reader.js +167 -0
- package/src/lib/security/exit-codes.js +51 -0
- package/src/lib/security/findings-writer.js +176 -0
- package/src/lib/security/runtime-events.js +77 -0
- package/src/lib/security/secrets-regex.js +115 -0
- package/src/lib/store/security-scan.js +173 -0
- package/src/lib/terminal-checkbox.js +130 -0
- package/src/lib/tmux-launcher.js +163 -0
- package/src/lib/tool-capabilities.js +102 -0
- package/src/locales.js +12 -8
- package/src/parallel-workspace.js +756 -0
- package/src/parser.js +8 -1
- package/src/path-guard.js +47 -0
- package/src/preflight-engine.js +237 -26
- package/src/self-healing.js +142 -0
- package/src/session-handoff.js +111 -1
- package/src/squad/squad-scaffold.js +183 -19
- package/src/test-briefing.js +226 -0
- package/src/updater.js +1 -1
- package/src/utils.js +3 -0
- package/src/workflow-gates.js +185 -0
- package/template/.aioson/agents/analyst.md +76 -130
- package/template/.aioson/agents/architect.md +53 -86
- package/template/.aioson/agents/committer.md +161 -0
- package/template/.aioson/agents/copywriter.md +463 -0
- package/template/.aioson/agents/cypher.md +252 -0
- package/template/.aioson/agents/dev.md +112 -600
- package/template/.aioson/agents/deyvin.md +33 -235
- package/template/.aioson/agents/discover.md +235 -0
- package/template/.aioson/agents/discovery-design-doc.md +17 -252
- package/template/.aioson/agents/genome.md +76 -26
- package/template/.aioson/agents/manifests/analyst.manifest.json +26 -0
- package/template/.aioson/agents/manifests/architect.manifest.json +23 -0
- package/template/.aioson/agents/manifests/committer.manifest.json +23 -0
- package/template/.aioson/agents/manifests/dev.manifest.json +37 -0
- package/template/.aioson/agents/manifests/orchestrator.manifest.json +30 -0
- package/template/.aioson/agents/manifests/pentester.manifest.json +39 -0
- package/template/.aioson/agents/manifests/pm.manifest.json +26 -0
- package/template/.aioson/agents/manifests/product.manifest.json +23 -0
- package/template/.aioson/agents/manifests/qa.manifest.json +25 -0
- package/template/.aioson/agents/manifests/setup.manifest.json +20 -0
- package/template/.aioson/agents/manifests/ux-ui.manifest.json +24 -0
- package/template/.aioson/agents/neo.md +10 -8
- package/template/.aioson/agents/orache.md +2 -6
- package/template/.aioson/agents/orchestrator.md +81 -182
- package/template/.aioson/agents/pentester.md +235 -0
- package/template/.aioson/agents/pm.md +40 -104
- package/template/.aioson/agents/product.md +99 -344
- package/template/.aioson/agents/profiler-enricher.md +57 -6
- package/template/.aioson/agents/profiler-forge.md +17 -7
- package/template/.aioson/agents/profiler-researcher.md +29 -6
- package/template/.aioson/agents/qa.md +165 -410
- package/template/.aioson/agents/setup.md +52 -262
- package/template/.aioson/agents/sheldon.md +122 -754
- package/template/.aioson/agents/site-forge.md +111 -1583
- package/template/.aioson/agents/squad.md +139 -1820
- package/template/.aioson/agents/tester.md +10 -0
- package/template/.aioson/agents/ux-ui.md +103 -645
- package/template/.aioson/agents/validator.md +69 -0
- package/template/.aioson/brains/scripts/query.js +5 -1
- package/template/.aioson/config/autonomy-protocol.json +43 -0
- package/template/.aioson/config.md +43 -15
- package/template/.aioson/constitution.md +36 -33
- package/template/.aioson/context/design-doc.md +136 -0
- package/template/.aioson/context/project-map.md +57 -0
- package/template/.aioson/design-docs/code-reuse.md +48 -0
- package/template/.aioson/design-docs/componentization.md +47 -0
- package/template/.aioson/design-docs/file-size.md +52 -0
- package/template/.aioson/design-docs/folder-structure.md +51 -0
- package/template/.aioson/design-docs/naming.md +54 -0
- package/template/.aioson/docs/LAYERS.md +12 -2
- package/template/.aioson/docs/dev/execution-discipline.md +106 -0
- package/template/.aioson/docs/dev/stack-conventions.md +83 -0
- package/template/.aioson/docs/deyvin/continuity-recovery.md +57 -0
- package/template/.aioson/docs/deyvin/debugging-escalation.md +30 -0
- package/template/.aioson/docs/deyvin/pair-execution.md +44 -0
- package/template/.aioson/docs/deyvin/runtime-handoffs.md +36 -0
- package/template/.aioson/docs/product/conversation-playbook.md +116 -0
- package/template/.aioson/docs/product/prd-contract.md +107 -0
- package/template/.aioson/docs/product/quality-lens.md +57 -0
- package/template/.aioson/docs/product/research-loop.md +65 -0
- package/template/.aioson/docs/sheldon/enrichment-paths.md +134 -0
- package/template/.aioson/docs/sheldon/quality-lens.md +57 -0
- package/template/.aioson/docs/sheldon/research-loop.md +56 -0
- package/template/.aioson/docs/sheldon/web-intelligence.md +75 -0
- package/template/.aioson/docs/site-forge-build.md +195 -0
- package/template/.aioson/docs/site-forge-extraction.md +135 -0
- package/template/.aioson/docs/site-forge-qa.md +155 -0
- package/template/.aioson/docs/site-forge-recon.md +434 -0
- package/template/.aioson/docs/site-forge-transform.md +249 -0
- package/template/.aioson/docs/squad/content-output.md +91 -0
- package/template/.aioson/docs/squad/creation-flow.md +135 -0
- package/template/.aioson/docs/squad/domain-classification.md +117 -0
- package/template/.aioson/docs/squad/genome-bindings.md +47 -0
- package/template/.aioson/docs/squad/package-contract.md +234 -0
- package/template/.aioson/docs/squad/quality-lens.md +56 -0
- package/template/.aioson/docs/squad/research-loop.md +59 -0
- package/template/.aioson/docs/squad/session-operations.md +117 -0
- package/template/.aioson/docs/squad/workflow-quality.md +165 -0
- package/template/.aioson/docs/ux-ui/accessibility-audit.md +55 -0
- package/template/.aioson/docs/ux-ui/audit-mode.md +86 -0
- package/template/.aioson/docs/ux-ui/component-map.md +35 -0
- package/template/.aioson/docs/ux-ui/design-execution.md +111 -0
- package/template/.aioson/docs/ux-ui/design-gate.md +27 -0
- package/template/.aioson/docs/ux-ui/research-mode.md +39 -0
- package/template/.aioson/docs/ux-ui/site-delivery.md +156 -0
- package/template/.aioson/docs/ux-ui/token-contract.md +57 -0
- package/template/.aioson/genomes/copywriting.md +204 -0
- package/template/.aioson/genomes/copywriting.meta.json +48 -0
- package/template/.aioson/git-guard.json +11 -0
- package/template/.aioson/mcp/servers.md +0 -1
- package/template/.aioson/rules/agent-language-policy.md +93 -0
- package/template/.aioson/rules/aioson-context-boundary.md +63 -0
- package/template/.aioson/rules/canonical-path-contract.md +47 -0
- package/template/.aioson/rules/data-format-convention.md +24 -86
- package/template/.aioson/rules/disk-first-artifacts.md +44 -0
- package/template/.aioson/rules/output-brevity.md +44 -0
- package/template/.aioson/rules/prd-section-ownership.md +49 -0
- package/template/.aioson/rules/security-baseline.md +139 -0
- package/template/.aioson/rules/spec-level-ownership.md +61 -0
- package/template/.aioson/rules/squad-driver-pattern.md +81 -0
- package/template/.aioson/schemas/squad-blueprint.schema.json +24 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +44 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +2 -0
- package/template/.aioson/skills/marketing/references/anti-patterns.md +254 -0
- package/template/.aioson/skills/marketing/references/fascinations.md +192 -0
- package/template/.aioson/skills/marketing/references/five-acts.md +248 -0
- package/template/.aioson/skills/marketing/references/market-intelligence.md +198 -0
- package/template/.aioson/skills/marketing/references/offer-structure.md +203 -0
- package/template/.aioson/skills/marketing/references/one-belief.md +149 -0
- package/template/.aioson/skills/marketing/references/patterns.md +218 -0
- package/template/.aioson/skills/marketing/references/pms-research.md +193 -0
- package/template/.aioson/skills/marketing/vsl-craft.md +385 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/pm.md +30 -0
- package/template/.aioson/skills/process/secure-tdd/SKILL.md +97 -0
- package/template/.aioson/skills/process/secure-tdd/references/nextjs.md +81 -0
- package/template/.aioson/skills/process/secure-tdd/references/node-express.md +91 -0
- package/template/.aioson/skills/process/secure-tdd/references/planned-stacks.md +33 -0
- package/template/.aioson/skills/static/harness-validate/SKILL.md +46 -0
- package/template/.aioson/skills/static/landing-page-deploy.md +192 -0
- package/template/.aioson/skills/static/landing-page-forge.md +730 -0
- package/template/.aioson/skills/static/ui-ux-modern.md +1 -0
- package/template/.aioson/skills/static/web-research-cache.md +3 -0
- package/template/.aioson/tasks/squad-create.md +56 -7
- package/template/.aioson/tasks/squad-design.md +80 -2
- package/template/.aioson/tasks/squad-investigate.md +14 -1
- package/template/.aioson/templates/squads/digital-marketing-agency/template.json +96 -0
- package/template/.claude/commands/aioson/agent/committer.md +5 -0
- package/template/.claude/commands/aioson/agent/copywriter.md +5 -0
- package/template/.claude/commands/aioson/agent/cypher.md +5 -0
- package/template/.claude/commands/aioson/agent/pair.md +5 -0
- package/template/.claude/commands/aioson/agent/validator.md +5 -0
- package/template/.gemini/commands/aios-analyst.toml +6 -3
- package/template/.gemini/commands/aios-architect.toml +7 -6
- package/template/.gemini/commands/aios-committer.toml +7 -0
- package/template/.gemini/commands/aios-copywriter.toml +7 -0
- package/template/.gemini/commands/aios-cypher.toml +7 -0
- package/template/.gemini/commands/aios-dev.toml +8 -7
- package/template/.gemini/commands/aios-deyvin.toml +6 -5
- package/template/.gemini/commands/aios-discovery-design-doc.toml +6 -3
- package/template/.gemini/commands/aios-genome.toml +7 -0
- package/template/.gemini/commands/aios-neo.toml +5 -3
- package/template/.gemini/commands/aios-orache.toml +7 -0
- package/template/.gemini/commands/aios-orchestrator.toml +8 -7
- package/template/.gemini/commands/aios-pair.toml +6 -5
- package/template/.gemini/commands/aios-pm.toml +8 -7
- package/template/.gemini/commands/aios-product.toml +5 -3
- package/template/.gemini/commands/aios-qa.toml +6 -5
- package/template/.gemini/commands/aios-setup.toml +5 -2
- package/template/.gemini/commands/aios-sheldon.toml +7 -0
- package/template/.gemini/commands/aios-site-forge.toml +7 -0
- package/template/.gemini/commands/aios-squad.toml +7 -0
- package/template/.gemini/commands/aios-tester.toml +6 -5
- package/template/.gemini/commands/aios-ux-ui.toml +8 -7
- package/template/.gemini/commands/aios-validator.toml +7 -0
- package/template/AGENTS.md +12 -1
- package/template/CLAUDE.md +6 -1
- package/template/.aioson/locales/en/agents/analyst.md +0 -244
- package/template/.aioson/locales/en/agents/architect.md +0 -245
- package/template/.aioson/locales/en/agents/dev.md +0 -397
- package/template/.aioson/locales/en/agents/deyvin.md +0 -137
- package/template/.aioson/locales/en/agents/discovery-design-doc.md +0 -27
- package/template/.aioson/locales/en/agents/genome.md +0 -212
- package/template/.aioson/locales/en/agents/neo.md +0 -8
- package/template/.aioson/locales/en/agents/orache.md +0 -6
- package/template/.aioson/locales/en/agents/orchestrator.md +0 -189
- package/template/.aioson/locales/en/agents/pair.md +0 -5
- package/template/.aioson/locales/en/agents/pm.md +0 -84
- package/template/.aioson/locales/en/agents/product.md +0 -378
- package/template/.aioson/locales/en/agents/profiler-enricher.md +0 -5
- package/template/.aioson/locales/en/agents/profiler-forge.md +0 -5
- package/template/.aioson/locales/en/agents/profiler-researcher.md +0 -5
- package/template/.aioson/locales/en/agents/qa.md +0 -270
- package/template/.aioson/locales/en/agents/setup.md +0 -421
- package/template/.aioson/locales/en/agents/sheldon.md +0 -455
- package/template/.aioson/locales/en/agents/squad.md +0 -449
- package/template/.aioson/locales/en/agents/tester.md +0 -6
- package/template/.aioson/locales/en/agents/ux-ui.md +0 -668
- package/template/.aioson/locales/es/agents/analyst.md +0 -225
- package/template/.aioson/locales/es/agents/architect.md +0 -245
- package/template/.aioson/locales/es/agents/dev.md +0 -370
- package/template/.aioson/locales/es/agents/deyvin.md +0 -99
- package/template/.aioson/locales/es/agents/discovery-design-doc.md +0 -21
- package/template/.aioson/locales/es/agents/genome.md +0 -104
- package/template/.aioson/locales/es/agents/neo.md +0 -50
- package/template/.aioson/locales/es/agents/orache.md +0 -105
- package/template/.aioson/locales/es/agents/orchestrator.md +0 -194
- package/template/.aioson/locales/es/agents/pair.md +0 -7
- package/template/.aioson/locales/es/agents/pm.md +0 -90
- package/template/.aioson/locales/es/agents/product.md +0 -372
- package/template/.aioson/locales/es/agents/profiler-enricher.md +0 -7
- package/template/.aioson/locales/es/agents/profiler-forge.md +0 -7
- package/template/.aioson/locales/es/agents/profiler-researcher.md +0 -7
- package/template/.aioson/locales/es/agents/qa.md +0 -198
- package/template/.aioson/locales/es/agents/setup.md +0 -405
- package/template/.aioson/locales/es/agents/sheldon.md +0 -309
- package/template/.aioson/locales/es/agents/squad.md +0 -532
- package/template/.aioson/locales/es/agents/tester.md +0 -9
- package/template/.aioson/locales/es/agents/ux-ui.md +0 -212
- package/template/.aioson/locales/fr/agents/analyst.md +0 -225
- package/template/.aioson/locales/fr/agents/architect.md +0 -245
- package/template/.aioson/locales/fr/agents/dev.md +0 -370
- package/template/.aioson/locales/fr/agents/deyvin.md +0 -99
- package/template/.aioson/locales/fr/agents/discovery-design-doc.md +0 -21
- package/template/.aioson/locales/fr/agents/genome.md +0 -104
- package/template/.aioson/locales/fr/agents/neo.md +0 -50
- package/template/.aioson/locales/fr/agents/orache.md +0 -106
- package/template/.aioson/locales/fr/agents/orchestrator.md +0 -194
- package/template/.aioson/locales/fr/agents/pair.md +0 -7
- package/template/.aioson/locales/fr/agents/pm.md +0 -90
- package/template/.aioson/locales/fr/agents/product.md +0 -372
- package/template/.aioson/locales/fr/agents/profiler-enricher.md +0 -7
- package/template/.aioson/locales/fr/agents/profiler-forge.md +0 -7
- package/template/.aioson/locales/fr/agents/profiler-researcher.md +0 -7
- package/template/.aioson/locales/fr/agents/qa.md +0 -198
- package/template/.aioson/locales/fr/agents/setup.md +0 -405
- package/template/.aioson/locales/fr/agents/sheldon.md +0 -309
- package/template/.aioson/locales/fr/agents/squad.md +0 -532
- package/template/.aioson/locales/fr/agents/tester.md +0 -9
- package/template/.aioson/locales/fr/agents/ux-ui.md +0 -212
- package/template/.aioson/locales/pt-BR/agents/analyst.md +0 -319
- package/template/.aioson/locales/pt-BR/agents/architect.md +0 -284
- package/template/.aioson/locales/pt-BR/agents/dev.md +0 -483
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +0 -184
- package/template/.aioson/locales/pt-BR/agents/discovery-design-doc.md +0 -198
- package/template/.aioson/locales/pt-BR/agents/genome.md +0 -297
- package/template/.aioson/locales/pt-BR/agents/neo.md +0 -208
- package/template/.aioson/locales/pt-BR/agents/orache.md +0 -137
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +0 -324
- package/template/.aioson/locales/pt-BR/agents/pair.md +0 -5
- package/template/.aioson/locales/pt-BR/agents/pm.md +0 -182
- package/template/.aioson/locales/pt-BR/agents/product.md +0 -466
- package/template/.aioson/locales/pt-BR/agents/profiler-enricher.md +0 -5
- package/template/.aioson/locales/pt-BR/agents/profiler-forge.md +0 -5
- package/template/.aioson/locales/pt-BR/agents/profiler-researcher.md +0 -5
- package/template/.aioson/locales/pt-BR/agents/qa.md +0 -300
- package/template/.aioson/locales/pt-BR/agents/setup.md +0 -533
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +0 -323
- package/template/.aioson/locales/pt-BR/agents/squad.md +0 -1330
- package/template/.aioson/locales/pt-BR/agents/tester.md +0 -449
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +0 -669
- package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -0
|
@@ -7,104 +7,52 @@ version: 1.0.0
|
|
|
7
7
|
|
|
8
8
|
# Data Format Convention
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
## Decision rule (apply in order)
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
```
|
|
13
|
+
Will a machine (CLI, API, webhook, dashboard) consume this? → JSON
|
|
14
|
+
Will human/agent read top-to-bottom as narrative? → Markdown
|
|
15
|
+
Will an agent reference specific fields to make decisions? → YAML
|
|
16
|
+
```
|
|
13
17
|
|
|
14
|
-
|
|
18
|
+
If uncertain: prefer Markdown. Only use YAML when structured fields are the point.
|
|
15
19
|
|
|
16
|
-
|
|
20
|
+
## The three formats
|
|
17
21
|
|
|
18
|
-
|
|
22
|
+
### YAML — structured data for agent field-by-field consumption
|
|
19
23
|
|
|
20
|
-
|
|
21
|
-
- ICP definitions, persona profiles, audience segments
|
|
22
|
-
- Offer sheets, product definitions, pricing structures
|
|
23
|
-
- Brand guidelines (structured parts: tone, values, vocabulary, positioning)
|
|
24
|
-
- Competitive analysis snapshots (structured fields)
|
|
25
|
-
- Briefing data that a copy squad or design squad will consume
|
|
26
|
-
- Entity catalogs referenced across multiple sessions
|
|
24
|
+
LLMs read YAML more accurately than JSON for reference data (comments allowed, less punctuation).
|
|
27
25
|
|
|
28
|
-
|
|
26
|
+
Use for: ICP profiles, persona profiles, audience segments, offer sheets, pricing structures, brand guidelines (structured parts), competitive analysis (structured), briefing data for copy/design squads.
|
|
29
27
|
|
|
30
|
-
**Example
|
|
28
|
+
**Example (`icp-primary.yaml`):**
|
|
31
29
|
```yaml
|
|
32
|
-
# ICP — Primary Audience
|
|
33
|
-
# Created by: @research-squad | Updated: 2026-04-02
|
|
34
|
-
|
|
35
30
|
profile:
|
|
36
31
|
name: "Empreendedor Refém"
|
|
37
32
|
description: "Dono de negócio que depende de agências ou devs externos"
|
|
38
|
-
|
|
39
33
|
pain_points:
|
|
40
34
|
- Perda de controle sobre o produto
|
|
41
35
|
- Atrasos e custos imprevisíveis
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
desired_outcome: "Autonomia e velocidade — entregar sem depender de terceiros"
|
|
45
|
-
|
|
36
|
+
desired_outcome: "Autonomia e velocidade"
|
|
46
37
|
buying_trigger: "Prazo vencendo ou fatura chegando de dev que atrasou"
|
|
47
|
-
|
|
48
38
|
messaging:
|
|
49
39
|
primary: "Retome o controle do seu produto"
|
|
50
|
-
objection_1: "Não preciso saber programar?"
|
|
51
|
-
objection_1_answer: "Não. Você vai orquestrar, não digitar código."
|
|
52
|
-
|
|
53
40
|
channels: [instagram, linkedin, youtube]
|
|
54
41
|
```
|
|
55
42
|
|
|
56
|
-
|
|
43
|
+
### Markdown — narrative for humans and linear agent reading
|
|
57
44
|
|
|
58
|
-
|
|
45
|
+
Use for: reports, analyses, article drafts, scripts, agent instructions, specs, PRDs, discovery docs, README files, any output read top-to-bottom.
|
|
59
46
|
|
|
60
|
-
|
|
47
|
+
Never use YAML or JSON for: articles, scripts, agent instructions, PRDs, analysis narratives.
|
|
61
48
|
|
|
62
|
-
|
|
63
|
-
- Reports, analyses, article drafts
|
|
64
|
-
- Scripts, hooks, copy blocks
|
|
65
|
-
- Agent instructions and rules (this file is an example)
|
|
66
|
-
- Specs, PRDs, discovery documents
|
|
67
|
-
- Any output meant to be read from top to bottom
|
|
49
|
+
### JSON — structured data for machine consumption
|
|
68
50
|
|
|
69
|
-
|
|
51
|
+
Use for: `squad.manifest.json`, `content.json`, API payloads, webhook responses, CLI config files.
|
|
70
52
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
### JSON — structured data consumed by machines
|
|
74
|
-
|
|
75
|
-
Use `.json` when the output is consumed by code — CLIs, APIs, webhooks, dashboards, or configuration parsers.
|
|
76
|
-
|
|
77
|
-
**Use JSON for:**
|
|
78
|
-
- `squad.manifest.json` — consumed by the AIOSON CLI and dashboard
|
|
79
|
-
- `content.json` — consumed by the webhook server and dashboard
|
|
80
|
-
- API payloads and webhook responses
|
|
81
|
-
- CLI configuration files
|
|
82
|
-
- Any file that `JSON.parse()` will read programmatically
|
|
53
|
+
Never change to YAML: `squad.manifest.json`, `content.json`, `squad.json`, `aioson-models.json` — machine-consumed, must stay JSON for CLI compatibility.
|
|
83
54
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Decision rule (apply in this order)
|
|
89
|
-
|
|
90
|
-
```
|
|
91
|
-
Will a machine (CLI, API, webhook, dashboard) consume this file?
|
|
92
|
-
YES → JSON
|
|
93
|
-
|
|
94
|
-
Will a human or agent read this top-to-bottom as narrative?
|
|
95
|
-
YES → Markdown
|
|
96
|
-
|
|
97
|
-
Will an agent reference specific fields to make decisions or produce content?
|
|
98
|
-
YES → YAML
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
If uncertain: prefer Markdown. Only use YAML when the structured fields are the point — not the prose.
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## Squad executor guidance
|
|
106
|
-
|
|
107
|
-
When a squad executor produces output, choose the format based on what happens next:
|
|
55
|
+
## Squad executor output format
|
|
108
56
|
|
|
109
57
|
| Output type | Format | Example |
|
|
110
58
|
|---|---|---|
|
|
@@ -116,21 +64,11 @@ When a squad executor produces output, choose the format based on what happens n
|
|
|
116
64
|
| Webhook payload, API response | `.json` | handled by `content.json` convention |
|
|
117
65
|
| Squad manifest, config | `.json` | `squad.manifest.json` (do not change) |
|
|
118
66
|
|
|
119
|
-
**Cross-squad consumption:** when Squad A produces data
|
|
120
|
-
|
|
121
|
-
---
|
|
67
|
+
**Cross-squad consumption:** when Squad A produces data for Squad B, prefer YAML for structured reference — more reliable than parsing a Markdown table.
|
|
122
68
|
|
|
123
69
|
## What NOT to change
|
|
124
70
|
|
|
125
|
-
-
|
|
71
|
+
- `.json` files consumed by AIOSON CLI or dashboard
|
|
126
72
|
- Agent instruction files (`agents/*.md`) — narrative, not data
|
|
127
|
-
- Existing specs and context files
|
|
128
|
-
- YAML frontmatter inside `.md` files
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
## Why this matters
|
|
133
|
-
|
|
134
|
-
The same structured content stored as JSON or Markdown loses precision when an agent reads it. A JSON blob requires the agent to mentally parse brackets and quotes while tracking field relationships. A Markdown table requires the agent to infer column semantics from headers. A YAML document makes field names, nesting, and relationships immediately legible — the LLM spends its attention on the content, not the syntax.
|
|
135
|
-
|
|
136
|
-
For squads that pass structured data between executors across sessions, this compounds: each session starts fresh, and a YAML profile loads faster and more accurately into working context than an equivalent JSON or Markdown representation.
|
|
73
|
+
- Existing specs and context files — Markdown is correct
|
|
74
|
+
- YAML frontmatter inside `.md` files
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: disk-first-artifacts
|
|
3
|
+
description: Todo artefato gerado por um agente deve ser gravado em disco antes do fim da sessão — nunca apenas exibido no chat
|
|
4
|
+
priority: 10
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Disk-First: Artifacts Always on Disk
|
|
9
|
+
|
|
10
|
+
Every artifact produced by an AIOSON agent MUST be written to disk before session end. Showing in chat does not count as delivery — the next agent starts without context and the work is lost.
|
|
11
|
+
|
|
12
|
+
## Mandatory artifacts by agent
|
|
13
|
+
|
|
14
|
+
| Agent | Mandatory artifact | Path |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| `@product` | PRD | `.aioson/context/prd.md` or `prd-{slug}.md` |
|
|
17
|
+
| `@product` | features.md | `.aioson/context/features.md` |
|
|
18
|
+
| `@analyst` | Discovery | `.aioson/context/discovery.md` |
|
|
19
|
+
| `@analyst` | Requirements | `.aioson/context/requirements-{slug}.md` |
|
|
20
|
+
| `@architect` | Architecture | `.aioson/context/architecture.md` |
|
|
21
|
+
| `@ux-ui` | UI Spec | `.aioson/context/ui-spec-{slug}.md` |
|
|
22
|
+
| `@sheldon` | Manifest | `.aioson/plans/{slug}/manifest.md` |
|
|
23
|
+
| `@pm` | Implementation Plan | `.aioson/context/implementation-plan-{slug}.md` |
|
|
24
|
+
| `@dev` | Feature spec | `.aioson/context/spec-{slug}.md` |
|
|
25
|
+
| `@qa` | QA report | `.aioson/context/qa-report-{slug}.md` |
|
|
26
|
+
| `@squad` | Squad manifest | `.aioson/squads/{slug}/squad.manifest.json` |
|
|
27
|
+
| `@squad` | Agent prompts | `.aioson/squads/{slug}/agents/{agent}.md` |
|
|
28
|
+
|
|
29
|
+
## Correct delivery pattern
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
✅ Write artifact to disk → inform user of path.
|
|
33
|
+
❌ Show in chat → ask "Can I save?" → Do NOT do this.
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Exceptions: drafts shown mid-session for validation (before final save), artifacts explicitly cancelled by user.
|
|
37
|
+
|
|
38
|
+
`project-pulse.md` must be updated at session end regardless of other artifacts.
|
|
39
|
+
|
|
40
|
+
## On violation detected
|
|
41
|
+
|
|
42
|
+
1. Write the artifact before closing — never defer to next session.
|
|
43
|
+
2. If content was shown in chat, use it to write the file now.
|
|
44
|
+
3. Update `project-pulse.md`.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: output-brevity
|
|
3
|
+
description: All agents must produce terse, direct output — no preambles, no trailing summaries, no narration of actions
|
|
4
|
+
priority: 8
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Output Brevity
|
|
9
|
+
|
|
10
|
+
All agents produce direct output. No padding.
|
|
11
|
+
|
|
12
|
+
## What to eliminate
|
|
13
|
+
|
|
14
|
+
- Preambles: "I will now...", "Let me...", "I'm going to..."
|
|
15
|
+
- Trailing summaries: "In summary, I have...", "To recap what was done..."
|
|
16
|
+
- Action narration: "Reading the file...", "Now I'll check..."
|
|
17
|
+
- Filler acknowledgements: "Great!", "Sure!", "Of course!", "Absolutely!"
|
|
18
|
+
- Restating the user's request before answering it
|
|
19
|
+
|
|
20
|
+
## What to keep
|
|
21
|
+
|
|
22
|
+
- Artifact content — complete and uncompressed
|
|
23
|
+
- Technical explanations when genuinely non-obvious
|
|
24
|
+
- Questions when clarification is required
|
|
25
|
+
- Security warnings, irreversible action confirmations — revert to full prose for these
|
|
26
|
+
|
|
27
|
+
## Pattern
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
❌ "I'll analyze the project structure and then provide my findings..."
|
|
31
|
+
✅ [analysis output directly]
|
|
32
|
+
|
|
33
|
+
❌ "In summary, I've created 3 files and updated the spec."
|
|
34
|
+
✅ "Created: spec-auth.md, prd-auth.md, features.md"
|
|
35
|
+
|
|
36
|
+
❌ "Great question! Let me explain how this works..."
|
|
37
|
+
✅ [explanation directly]
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Exceptions — use full prose
|
|
41
|
+
|
|
42
|
+
- Security warnings or destructive action confirmations
|
|
43
|
+
- Multi-step sequences where brevity would cause ambiguity
|
|
44
|
+
- User appears confused or has contradictory requirements
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prd-section-ownership
|
|
3
|
+
description: Define qual agente é dono de cada seção do PRD — outros agentes não podem modificar seções que não são suas
|
|
4
|
+
priority: 9
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
agents: [product, pm, analyst, architect, ux-ui, sheldon]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# PRD Section Ownership
|
|
10
|
+
|
|
11
|
+
`prd.md` and `prd-{slug}.md` are shared documents. Each section has one owner — others may only read or append sub-sections, never replace.
|
|
12
|
+
|
|
13
|
+
## Ownership table
|
|
14
|
+
|
|
15
|
+
| PRD Section | Owner | Others may |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| `## Objetivo` | `@product` | Read only |
|
|
18
|
+
| `## Problema` | `@product` | Read only |
|
|
19
|
+
| `## Usuários e Personas` | `@product` | Read only |
|
|
20
|
+
| `## Funcionalidades` | `@product` | Read only |
|
|
21
|
+
| `## Critérios de Aceite` | `@product` (structure) / `@pm` (enrichment) | `@analyst`, `@architect` add technical sub-items |
|
|
22
|
+
| `## Fases de Entrega` | `@pm` | Read only |
|
|
23
|
+
| `## Restrições Técnicas` | `@architect` | Read only |
|
|
24
|
+
| `## Considerações de UX` | `@ux-ui` | Read only |
|
|
25
|
+
| `## Riscos` | `@pm` | `@analyst`, `@architect` add new risks only |
|
|
26
|
+
| `## Decisões Registradas` | `@sheldon` (project) / `@pm` (feature) | Read only |
|
|
27
|
+
|
|
28
|
+
## Modification rule
|
|
29
|
+
|
|
30
|
+
An agent may only modify sections it owns. Non-owners may only **add** a new sub-section at the end — never replace or rewrite existing content.
|
|
31
|
+
|
|
32
|
+
## Safe addition pattern
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
## Critérios de Aceite
|
|
36
|
+
<!-- @product: owner of this section -->
|
|
37
|
+
|
|
38
|
+
- CA-01: User can schedule an appointment
|
|
39
|
+
- CA-02: System sends confirmation email
|
|
40
|
+
|
|
41
|
+
### Technical criteria (added by @analyst)
|
|
42
|
+
- CA-T01: Scheduling validates availability via DB query before confirming
|
|
43
|
+
- CA-T02: Email queue uses BullMQ with 3x retry
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## On violation detected
|
|
47
|
+
|
|
48
|
+
1. Do not overwrite the section.
|
|
49
|
+
2. Create a sub-section with explicit attribution (`<!-- added by @{agent} -->`), OR create a separate artifact (`requirements-{slug}.md`, `architecture.md`, etc.).
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-baseline
|
|
3
|
+
description: Secure by Default baseline controls for technical agents
|
|
4
|
+
priority: 10
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
agents: [analyst, architect, dev, qa]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Security Baseline — Secure by Default
|
|
10
|
+
|
|
11
|
+
> Implements `Article VII — Zero Trust by Default` of the AIOSON constitution.
|
|
12
|
+
> Loaded by `@analyst`, `@architect`, `@dev`, and `@qa`. Other agents must not
|
|
13
|
+
> load this rule — product, copy, design and orchestration scopes are out of band.
|
|
14
|
+
|
|
15
|
+
This rule defines the minimum security baseline every technical agent must
|
|
16
|
+
respect. It does **not** promise absolute security. It declares concrete
|
|
17
|
+
controls, expected evidence and how each project classification consumes them.
|
|
18
|
+
Deviations are allowed only when recorded as an explicit decision in the
|
|
19
|
+
feature `spec-{slug}.md` with N/A rationale.
|
|
20
|
+
|
|
21
|
+
## Classification policy
|
|
22
|
+
|
|
23
|
+
| Classification | Behavior |
|
|
24
|
+
|---|---|
|
|
25
|
+
| **MICRO** | **Advisory.** Controls are surfaced as recommendations. No automated blocking. `@qa` may still flag obviously dangerous patterns. |
|
|
26
|
+
| **SMALL** | **Scan-oriented.** Static checks and tool-first scans run automatically. `@pentester` is **not** mandatory. Open Medium+ findings are reported but do not block by default. |
|
|
27
|
+
| **MEDIUM** | **Audit-blocking.** Surface assessment runs against attack-surface map. **Open High or Critical findings block Gate D** until resolved or explicitly waived with rationale recorded in `spec-{slug}.md`. |
|
|
28
|
+
|
|
29
|
+
`@pentester` (`app_target` mode) may be invoked by `@qa` for any feature with
|
|
30
|
+
auth, money, ownership, file uploads, external URLs or suspicious audit
|
|
31
|
+
findings — regardless of classification. It is never required by classification
|
|
32
|
+
alone.
|
|
33
|
+
|
|
34
|
+
## Severity scale
|
|
35
|
+
|
|
36
|
+
| Severity | Examples |
|
|
37
|
+
|---|---|
|
|
38
|
+
| `critical` | Ownership bypass, financial race condition, committed production secret. |
|
|
39
|
+
| `high` | Missing server-side validation, unsafe upload signature handling, missing rate limit on sensitive endpoint. |
|
|
40
|
+
| `medium` | Unsanitized external URL, low-impact tracker, storage boundary abuse surface. |
|
|
41
|
+
| `advisory` | MICRO recommendations or surfaces marked N/A with explicit rationale. |
|
|
42
|
+
|
|
43
|
+
## Direct LLM mode (no CLI)
|
|
44
|
+
|
|
45
|
+
When the `aioson` CLI is unavailable, agents must fall back to **checklist-only
|
|
46
|
+
verification** of the controls below, record the limitation in the session
|
|
47
|
+
devlog, and **must not** fabricate runtime telemetry events. Findings still
|
|
48
|
+
land in `.aioson/context/security-findings-{slug}.json` (one of the few
|
|
49
|
+
machine-readable exceptions allowed under `.aioson/context/`).
|
|
50
|
+
|
|
51
|
+
## Controls
|
|
52
|
+
|
|
53
|
+
### SEC-SBD-01 — Server-side input limits
|
|
54
|
+
|
|
55
|
+
- Maps to: OWASP A03 / A04
|
|
56
|
+
- Default severity: `high`
|
|
57
|
+
- Owner agent: `@dev` (implements), `@analyst` (declares limits), `@qa` (verifies)
|
|
58
|
+
- Applies to: analyst, dev, qa
|
|
59
|
+
- Classification policy: MICRO advisory; SMALL scan-oriented; MEDIUM audit-blocking when feature accepts user input
|
|
60
|
+
- Required evidence: explicit field-length / type / range limits enforced server-side, plus negative tests asserting rejection on overflow or wrong type. N/A rationale required when feature has no user input.
|
|
61
|
+
|
|
62
|
+
### SEC-SBD-02 — Upload file signature validation
|
|
63
|
+
|
|
64
|
+
- Maps to: OWASP A03 / A05
|
|
65
|
+
- Default severity: `high`
|
|
66
|
+
- Owner agent: `@dev` (implements), `@qa` (verifies)
|
|
67
|
+
- Applies to: analyst, dev, qa
|
|
68
|
+
- Classification policy: MICRO advisory; SMALL scan-oriented; MEDIUM audit-blocking when feature accepts uploads
|
|
69
|
+
- Required evidence: magic-byte / file-signature validation independent of MIME header and extension; rejection test for spoofed extension. N/A when no upload surface exists.
|
|
70
|
+
|
|
71
|
+
### SEC-SBD-03 — Ownership / IDOR authorization
|
|
72
|
+
|
|
73
|
+
- Maps to: OWASP A01
|
|
74
|
+
- Default severity: `critical`
|
|
75
|
+
- Owner agent: `@dev` (implements), `@analyst` (maps surfaces), `@qa` (verifies)
|
|
76
|
+
- Applies to: analyst, architect, dev, qa
|
|
77
|
+
- Classification policy: MICRO advisory; SMALL scan-oriented; MEDIUM audit-blocking on every endpoint that returns or mutates per-user data
|
|
78
|
+
- Required evidence: ownership check at the data layer (not only route), and a negative test where user A attempts to access user B's resource and receives 403/404. N/A only when resource is intentionally public.
|
|
79
|
+
|
|
80
|
+
### SEC-SBD-04 — Atomic critical state changes
|
|
81
|
+
|
|
82
|
+
- Maps to: OWASP A04
|
|
83
|
+
- Default severity: `critical`
|
|
84
|
+
- Owner agent: `@architect` (designs), `@dev` (implements), `@qa` (verifies)
|
|
85
|
+
- Applies to: architect, dev, qa
|
|
86
|
+
- Classification policy: MICRO advisory; SMALL scan-oriented; MEDIUM audit-blocking on money, inventory, quotas, ownership transfers, balance updates
|
|
87
|
+
- Required evidence: transactional boundary (DB transaction, row lock, or equivalent) plus a concurrency test or documented invariant proving no double-spend / lost update. N/A when feature has no shared mutable state.
|
|
88
|
+
|
|
89
|
+
### SEC-SBD-05 — Secrets outside code
|
|
90
|
+
|
|
91
|
+
- Maps to: OWASP A02 / A05
|
|
92
|
+
- Default severity: `critical` (committed) / `high` (config drift)
|
|
93
|
+
- Owner agent: `@dev` (implements), `@qa` (verifies)
|
|
94
|
+
- Applies to: analyst, architect, dev, qa
|
|
95
|
+
- Classification policy: MICRO advisory; SMALL scan-oriented; MEDIUM audit-blocking on any commit
|
|
96
|
+
- Required evidence: secrets loaded from environment / vault / managed config; `.env` and equivalents in `.gitignore`; secret-scan pass on diff. Brownfield exception: pre-existing secret must be rotated and tracked, never silently kept.
|
|
97
|
+
|
|
98
|
+
### SEC-SBD-06 — External URL sanitization
|
|
99
|
+
|
|
100
|
+
- Maps to: OWASP A03 / A10
|
|
101
|
+
- Default severity: `medium` (raises to `high` when URL is followed server-side)
|
|
102
|
+
- Owner agent: `@dev` (implements), `@qa` (verifies)
|
|
103
|
+
- Applies to: analyst, dev, qa
|
|
104
|
+
- Classification policy: MICRO advisory; SMALL scan-oriented; MEDIUM audit-blocking when feature accepts or follows external URLs
|
|
105
|
+
- Required evidence: scheme allowlist, host validation, SSRF protection (private-range block) when followed server-side, escaping when rendered. N/A when no external URL is accepted.
|
|
106
|
+
|
|
107
|
+
### SEC-SBD-07 — Storage default-deny / RLS boundary
|
|
108
|
+
|
|
109
|
+
- Maps to: OWASP A01 / A05
|
|
110
|
+
- Default severity: `critical`
|
|
111
|
+
- Owner agent: `@architect` (designs), `@dev` (implements), `@qa` (verifies)
|
|
112
|
+
- Applies to: architect, dev, qa
|
|
113
|
+
- Classification policy: MICRO advisory; SMALL scan-oriented; MEDIUM audit-blocking on every multi-tenant or per-user store
|
|
114
|
+
- Required evidence: storage layer denies by default (RLS policies enabled, bucket private, queue ACL closed) plus a negative test from an unauthorized identity. N/A when storage is single-tenant and intentionally public.
|
|
115
|
+
|
|
116
|
+
### SEC-SBD-08 — Auth enumeration / rate limiting
|
|
117
|
+
|
|
118
|
+
- Maps to: OWASP A07
|
|
119
|
+
- Default severity: `high`
|
|
120
|
+
- Owner agent: `@dev` (implements), `@qa` (verifies)
|
|
121
|
+
- Applies to: analyst, dev, qa
|
|
122
|
+
- Classification policy: MICRO advisory; SMALL scan-oriented; MEDIUM audit-blocking on login, password reset, signup, OTP and any auth-adjacent endpoint
|
|
123
|
+
- Required evidence: per-endpoint rate limit (per IP and per identifier), uniform error response for "user not found" vs "wrong password", lockout or backoff after N failures, and a negative test asserting enumeration is not possible. N/A when feature has no auth surface.
|
|
124
|
+
|
|
125
|
+
## Out of scope (v1)
|
|
126
|
+
|
|
127
|
+
The following are explicitly **not** part of this baseline and require a future
|
|
128
|
+
PRD before adoption: deceptive endpoints (honeypots), jump-scare responses,
|
|
129
|
+
adversarial CAPTCHAs, and any technique whose primary purpose is to deceive
|
|
130
|
+
attackers. The baseline is preventive, not deceptive.
|
|
131
|
+
|
|
132
|
+
## Maintenance
|
|
133
|
+
|
|
134
|
+
- Control IDs are stable. Adding a control means appending `SEC-SBD-09`, never
|
|
135
|
+
renumbering or repurposing an existing ID.
|
|
136
|
+
- Severity defaults can be raised per-feature in `spec-{slug}.md` with rationale; they cannot be silently lowered.
|
|
137
|
+
- Changes to this rule require an explicit decision recorded in the relevant
|
|
138
|
+
feature spec and a `last_amended`-style note in the constitution if they
|
|
139
|
+
alter Article VII semantics.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-level-ownership
|
|
3
|
+
description: spec.md é de projeto, spec-{slug}.md é de feature — os dois níveis nunca se misturam
|
|
4
|
+
priority: 9
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
agents: [dev, qa, pm, sheldon]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Spec Ownership: Project vs Feature Level
|
|
10
|
+
|
|
11
|
+
Two distinct levels — never mix them.
|
|
12
|
+
|
|
13
|
+
| File | Level | Owner | Content |
|
|
14
|
+
|---|---|---|---|
|
|
15
|
+
| `spec.md` | **Project** | `@dev` (full project) | Stack, global patterns, infrastructure — decisions affecting the whole project |
|
|
16
|
+
| `spec-{slug}.md` | **Feature** | `@dev` (specific feature) | Decisions, entities, dependencies, ACs for ONE feature |
|
|
17
|
+
|
|
18
|
+
## Absolute rules
|
|
19
|
+
|
|
20
|
+
1. `spec.md` never receives feature-specific content → create `spec-{slug}.md` for that.
|
|
21
|
+
2. `spec-{slug}.md` never receives project decisions → stack decisions go in `spec.md` or `architecture.md`.
|
|
22
|
+
3. `spec-{slug}.md` is created by `@dev` at feature implementation start. One file per slug. Slug must match `prd-{slug}.md` and `implementation-plan-{slug}.md`.
|
|
23
|
+
4. No `spec-{slug}.md` without a corresponding `prd-{slug}.md`.
|
|
24
|
+
|
|
25
|
+
## Mandatory structure: spec-{slug}.md
|
|
26
|
+
|
|
27
|
+
```markdown
|
|
28
|
+
---
|
|
29
|
+
feature: {slug}
|
|
30
|
+
status: in_progress | done
|
|
31
|
+
phase_gates:
|
|
32
|
+
requirements: approved | pending | skipped
|
|
33
|
+
design: approved | pending | skipped
|
|
34
|
+
plan: approved | pending | skipped
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
# Spec — {feature name}
|
|
38
|
+
|
|
39
|
+
## Implemented entities
|
|
40
|
+
## Technical decisions
|
|
41
|
+
## Dependencies
|
|
42
|
+
## QA approval
|
|
43
|
+
(filled by @qa on feature close)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Mandatory structure: spec.md (project level)
|
|
47
|
+
|
|
48
|
+
```markdown
|
|
49
|
+
# Spec — {project name}
|
|
50
|
+
|
|
51
|
+
## Stack and infrastructure
|
|
52
|
+
## Global code patterns
|
|
53
|
+
## External integrations
|
|
54
|
+
## Cross-feature architecture decisions
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## On violation detected
|
|
58
|
+
|
|
59
|
+
1. Do not write to the wrong file.
|
|
60
|
+
2. Identify the correct level.
|
|
61
|
+
3. Write to the correct file (create if needed following mandatory structure above).
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: squad-driver-pattern
|
|
3
|
+
description: Territory boundaries and integration pattern for AIOSON squads — separates squad definitions (owned by @squad) from application driver code (owned by @dev)
|
|
4
|
+
priority: 9
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
agents: [dev, sheldon, pm, qa, architect]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Squad Driver Pattern
|
|
10
|
+
|
|
11
|
+
Two distinct layers — never mixed:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Layer 1 — Definition (owned by @squad)
|
|
15
|
+
.aioson/squads/{squad-slug}/
|
|
16
|
+
agents/greeting-agent.md ← prompt and personality
|
|
17
|
+
agents/orquestrador.md ← orchestration logic
|
|
18
|
+
squad.manifest.json ← configuration
|
|
19
|
+
workflows/main.md ← execution pipeline
|
|
20
|
+
|
|
21
|
+
Layer 2 — Driver (owned by @dev)
|
|
22
|
+
src/services/squadRunner.js ← loads and executes definitions
|
|
23
|
+
src/services/greetingService.js ← driver consuming greeting-agent.md
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Territory rules — absolute for all agents
|
|
27
|
+
|
|
28
|
+
| Agent | Can create/modify | Must never touch |
|
|
29
|
+
|---|---|---|
|
|
30
|
+
| `@squad` | `.aioson/squads/` | Application code (`src/`, `app/`, etc.) |
|
|
31
|
+
| `@dev` | Application code | `.aioson/squads/` |
|
|
32
|
+
| `@pm` | Implementation plan | Either layer |
|
|
33
|
+
| `@architect` | `architecture.md` | Squad files or agent code |
|
|
34
|
+
|
|
35
|
+
## Correct integration pattern
|
|
36
|
+
|
|
37
|
+
The application service is a **driver** — loads the squad definition and sends it to the LLM. Never embeds prompts in code.
|
|
38
|
+
|
|
39
|
+
```javascript
|
|
40
|
+
// CORRECT — driver consuming @squad definition
|
|
41
|
+
class GreetingService {
|
|
42
|
+
async respond(message) {
|
|
43
|
+
const agentDef = fs.readFileSync(
|
|
44
|
+
'.aioson/squads/squad-greeting/agents/greeting-agent.md', 'utf-8'
|
|
45
|
+
)
|
|
46
|
+
return await llm.call({ system: agentDef, user: message })
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// WRONG — prompt embedded in code (@dev must not do this)
|
|
51
|
+
class GreetingService {
|
|
52
|
+
async respond(message) {
|
|
53
|
+
const prompt = "Voce e um atendente de farmacia..." // ← @squad territory
|
|
54
|
+
return await llm.call({ system: prompt, user: message })
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Per-agent responsibilities
|
|
60
|
+
|
|
61
|
+
**`@product` / `@sheldon`:** describe squad behavior and objective in PRDs — never literal prompts. Prompts are `@squad` territory.
|
|
62
|
+
|
|
63
|
+
**`@analyst` / `@architect`:** include the driver layer as explicit component in `architecture.md`:
|
|
64
|
+
```
|
|
65
|
+
SquadRunner — loads definitions from .aioson/squads/ and executes via LLM API
|
|
66
|
+
dependencies: fs (read .md), llm-client (model call)
|
|
67
|
+
no domain logic — only orchestrates loading and execution
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**`@pm`:** separate squad phases from code phases in implementation plans:
|
|
71
|
+
- Squad phases → `executor: @squad`
|
|
72
|
+
- Driver phases → `executor: @dev` with task "create SquadRunner that loads `.aioson/squads/{slug}/`"
|
|
73
|
+
|
|
74
|
+
**`@dev`:** never write inline prompts. If a task requires creating/modifying files in `.aioson/squads/` — stop and redirect to `@squad`.
|
|
75
|
+
|
|
76
|
+
**`@squad`:** read `implementation-plan` and `prd` before asking anything — context is already in artifacts.
|
|
77
|
+
|
|
78
|
+
**`@qa`:** verify:
|
|
79
|
+
- [ ] Squad services are drivers (load `.md`, never embed prompts)
|
|
80
|
+
- [ ] No agent prompt is hardcoded in application code
|
|
81
|
+
- [ ] `.aioson/squads/` was not modified by `@dev`
|
|
@@ -31,6 +31,30 @@
|
|
|
31
31
|
"enum": ["content", "software", "research", "mixed"]
|
|
32
32
|
},
|
|
33
33
|
"domain": { "type": "string" },
|
|
34
|
+
"locale_scope": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "Universal or locale-specific scope for generated agent files",
|
|
37
|
+
"pattern": "^(universal|[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*)$"
|
|
38
|
+
},
|
|
39
|
+
"locale_rationale": { "type": "string" },
|
|
40
|
+
"domainClassification": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"properties": {
|
|
43
|
+
"tier": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"enum": ["tier-1-regulated", "tier-2-specialized", "tier-3-common"]
|
|
46
|
+
},
|
|
47
|
+
"rationale": { "type": "string" },
|
|
48
|
+
"regulations": {
|
|
49
|
+
"type": "array",
|
|
50
|
+
"items": { "type": "string" }
|
|
51
|
+
},
|
|
52
|
+
"investigationPolicy": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"enum": ["required", "recommended", "optional"]
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
34
58
|
"executors": {
|
|
35
59
|
"type": "array",
|
|
36
60
|
"items": {
|
|
@@ -38,6 +38,34 @@
|
|
|
38
38
|
"enum": ["private", "public"],
|
|
39
39
|
"default": "private"
|
|
40
40
|
},
|
|
41
|
+
"locale_scope": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"description": "Universal or locale-specific scope for agent prompt files",
|
|
44
|
+
"pattern": "^(universal|[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*)$"
|
|
45
|
+
},
|
|
46
|
+
"locale_rationale": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"description": "Why the squad is locale-specific when locale_scope is not universal"
|
|
49
|
+
},
|
|
50
|
+
"domainClassification": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"description": "Classification of the squad domain for research and safety routing",
|
|
53
|
+
"properties": {
|
|
54
|
+
"tier": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"enum": ["tier-1-regulated", "tier-2-specialized", "tier-3-common"]
|
|
57
|
+
},
|
|
58
|
+
"rationale": { "type": "string" },
|
|
59
|
+
"regulations": {
|
|
60
|
+
"type": "array",
|
|
61
|
+
"items": { "type": "string" }
|
|
62
|
+
},
|
|
63
|
+
"investigationPolicy": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"enum": ["required", "recommended", "optional"]
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
},
|
|
41
69
|
"ephemeral": {
|
|
42
70
|
"type": "boolean",
|
|
43
71
|
"default": false,
|
|
@@ -48,6 +76,22 @@
|
|
|
48
76
|
"description": "Time-to-live for ephemeral squads (e.g. '24h', '7d'). After TTL, squad files are eligible for cleanup."
|
|
49
77
|
},
|
|
50
78
|
"aiosLiteCompatibility": { "type": "string" },
|
|
79
|
+
"sourceDocs": {
|
|
80
|
+
"type": "array",
|
|
81
|
+
"items": { "type": "string" },
|
|
82
|
+
"description": "Project artifacts consumed during squad design"
|
|
83
|
+
},
|
|
84
|
+
"investigation": {
|
|
85
|
+
"type": "object",
|
|
86
|
+
"description": "Reference to a persisted @orache investigation report",
|
|
87
|
+
"properties": {
|
|
88
|
+
"slug": { "type": "string" },
|
|
89
|
+
"path": { "type": "string" },
|
|
90
|
+
"confidence": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
91
|
+
"dimensionsCovered": { "type": "integer", "minimum": 0, "maximum": 7 },
|
|
92
|
+
"date": { "type": "string", "format": "date" }
|
|
93
|
+
}
|
|
94
|
+
},
|
|
51
95
|
"storagePolicy": {
|
|
52
96
|
"type": "object",
|
|
53
97
|
"properties": {
|
|
@@ -4,6 +4,8 @@ Read after `design-tokens.md`. Add to context only when motion materially improv
|
|
|
4
4
|
|
|
5
5
|
Motion is **purposeful and restrained**. Dashboards use minimal motion. Landing pages use more dramatic entrances and scroll effects.
|
|
6
6
|
|
|
7
|
+
> **For landing pages / sales pages / event pages:** also load `skills/static/landing-page-forge.md` — it provides GSAP and AnimeJS integration patterns for horizontal scroll, magnetic mouse effects, hero sequences, and the full performance + tracking checklist.
|
|
8
|
+
|
|
7
9
|
---
|
|
8
10
|
|
|
9
11
|
## Principles
|