@jaimevalasek/aioson 1.7.2 → 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 +35 -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 +42 -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/cypher.md +252 -0
- package/template/.aioson/agents/dev.md +112 -628
- package/template/.aioson/agents/deyvin.md +33 -236
- 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 +5 -7
- 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 +168 -514
- package/template/.aioson/agents/setup.md +52 -278
- package/template/.aioson/agents/sheldon.md +122 -754
- package/template/.aioson/agents/site-forge.md +111 -1583
- package/template/.aioson/agents/squad.md +139 -2010
- package/template/.aioson/agents/tester.md +10 -0
- package/template/.aioson/agents/ux-ui.md +104 -812
- 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.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/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/web-research-cache.md +3 -0
- package/template/.aioson/tasks/squad-create.md +35 -8
- package/template/.aioson/tasks/squad-design.md +50 -2
- package/template/.aioson/tasks/squad-investigate.md +14 -1
- 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 +5 -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
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Universal folder organization rules — hierarchy, depth, naming, grouping"
|
|
3
|
+
scope: "governance"
|
|
4
|
+
agents: []
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Folder Structure — Governance Rules
|
|
8
|
+
|
|
9
|
+
> Loaded automatically by @dev and @deyvin. Override per-project via `.aioson/rules/`.
|
|
10
|
+
|
|
11
|
+
## Depth
|
|
12
|
+
|
|
13
|
+
- Maximum 3 levels of nesting before splitting into a separate module.
|
|
14
|
+
- If you need a 4th level, the responsibility likely belongs in its own module or package.
|
|
15
|
+
|
|
16
|
+
## Naming
|
|
17
|
+
|
|
18
|
+
- **kebab-case** for all folder names: `user-auth/`, `squad-dashboard/`, `context-cache/`
|
|
19
|
+
- **Singular** for a single entity or specific responsibility: `service/`, `command/`, `handler/`
|
|
20
|
+
- **Plural** for collections of items of the same type: `services/`, `commands/`, `handlers/`
|
|
21
|
+
- Never mix styles within the same directory level
|
|
22
|
+
|
|
23
|
+
## Grouping strategy
|
|
24
|
+
|
|
25
|
+
Prefer **domain-based grouping** over layer-based when the project grows beyond 5–6 modules:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
src/
|
|
29
|
+
auth/ ← domain: everything related to authentication
|
|
30
|
+
billing/ ← domain: everything related to billing
|
|
31
|
+
shared/ ← cross-domain: utilities, types, helpers
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Layer-based is valid for small projects or when the framework enforces it:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
src/
|
|
38
|
+
controllers/ ← HTTP layer
|
|
39
|
+
services/ ← business logic
|
|
40
|
+
models/ ← data layer
|
|
41
|
+
utils/ ← shared helpers
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Choose one strategy and stay consistent within the same project.
|
|
45
|
+
|
|
46
|
+
## Anti-patterns
|
|
47
|
+
|
|
48
|
+
- Never use generic folders: `misc/`, `stuff/`, `temp/`, `old/`, `helpers/`
|
|
49
|
+
- Never leave unrelated files loose in `src/` root — every file belongs to a domain
|
|
50
|
+
- Never create a folder with a single file (except `index.js` / `index.ts` as a public module entry point)
|
|
51
|
+
- Never nest a folder that has the same semantic scope as its parent
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Naming conventions for files, variables, functions, and classes"
|
|
3
|
+
scope: "governance"
|
|
4
|
+
agents: []
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Naming — Governance Rules
|
|
8
|
+
|
|
9
|
+
> Loaded automatically by @dev and @deyvin. Override per-project via `.aioson/rules/`.
|
|
10
|
+
|
|
11
|
+
## Files
|
|
12
|
+
|
|
13
|
+
- **kebab-case** for all source files: `user-auth.js`, `billing-service.ts`, `context-writer.py`
|
|
14
|
+
- When inside a flat directory, use a domain prefix to group related files: `user-create.js`, `user-update.js`, `user-delete.js`
|
|
15
|
+
- Avoid generic suffixes when the domain name already conveys the type: prefer `auth.js` over `auth-helper.js`
|
|
16
|
+
- Test files mirror the source file name: `user-auth.test.js`, `billing_service_test.py`
|
|
17
|
+
|
|
18
|
+
## Variables and constants
|
|
19
|
+
|
|
20
|
+
| Type | JS / TS | Python / Ruby | Go / Rust |
|
|
21
|
+
|------|---------|---------------|-----------|
|
|
22
|
+
| Local variables | camelCase | snake_case | camelCase / snake_case |
|
|
23
|
+
| Global constants | SCREAMING_SNAKE_CASE | SCREAMING_SNAKE_CASE | SCREAMING_SNAKE_CASE |
|
|
24
|
+
| Environment variables | SCREAMING_SNAKE_CASE | SCREAMING_SNAKE_CASE | SCREAMING_SNAKE_CASE |
|
|
25
|
+
|
|
26
|
+
## Functions and methods
|
|
27
|
+
|
|
28
|
+
Pattern: **verb + noun** — describes what the function does and to what.
|
|
29
|
+
|
|
30
|
+
Good: `loadUser()`, `parseManifest()`, `validateEmail()`, `sendInvoice()`, `buildQuery()`
|
|
31
|
+
Avoid: `doUser()`, `process()`, `handle()` — too vague to understand intent
|
|
32
|
+
Avoid: `userLoader()`, `manifestParser()` — noun-first reads as a class or object, not a function
|
|
33
|
+
|
|
34
|
+
## Booleans
|
|
35
|
+
|
|
36
|
+
Always use a prefix that makes the boolean read as a yes/no question:
|
|
37
|
+
|
|
38
|
+
- `is` — state: `isReady`, `isEmpty`, `isAuthenticated`, `isValid`
|
|
39
|
+
- `has` — possession: `hasErrors`, `hasChildren`, `hasPermission`
|
|
40
|
+
- `should` — intent: `shouldRetry`, `shouldRedirect`, `shouldNotify`
|
|
41
|
+
- `can` — capability: `canEdit`, `canDelete`, `canPublish`
|
|
42
|
+
|
|
43
|
+
## Classes and components
|
|
44
|
+
|
|
45
|
+
- **PascalCase**: `UserService`, `BillingController`, `AuthModal`, `InvoiceJob`
|
|
46
|
+
- Singular: `User`, not `Users` — a class represents one entity, not a collection
|
|
47
|
+
- React / Vue / Svelte components: same PascalCase rule, filename in kebab-case: `UserCard.tsx` → `user-card.tsx`
|
|
48
|
+
|
|
49
|
+
## Avoid
|
|
50
|
+
|
|
51
|
+
- Abbreviations unless they are industry-standard: `url`, `id`, `api`, `html`, `dto` are fine; `usrCtx`, `mngr`, `cfg`, `hlpr` are not
|
|
52
|
+
- Single-letter variables except for loop indices (`i`, `j`, `k`) and math/geometry variables
|
|
53
|
+
- Names that describe the type instead of the intent: `dataObject`, `listArray`, `stringValue`
|
|
54
|
+
- Negative booleans: `isNotReady`, `hasNoErrors` — flip to positive: `isReady`, `isValid`
|
|
@@ -5,7 +5,7 @@ agents: []
|
|
|
5
5
|
|
|
6
6
|
# AIOSON Project Memory Layers
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Four directories accumulate project knowledge over time.
|
|
9
9
|
Each has a different purpose and a different update cadence.
|
|
10
10
|
|
|
11
11
|
---
|
|
@@ -42,7 +42,16 @@ See `docs/README.md` for format and naming conventions.
|
|
|
42
42
|
|
|
43
43
|
---
|
|
44
44
|
|
|
45
|
-
## Layer 3 — `.aioson/
|
|
45
|
+
## Layer 3 — `.aioson/design-docs/`
|
|
46
|
+
|
|
47
|
+
**What it is:** structural code governance: folder structure, componentization, reuse, naming, and file-size thresholds.
|
|
48
|
+
**Who writes it:** installed by AIOSON, then edited by the project team when conventions change.
|
|
49
|
+
**When to use:** before architectural structure decisions and before implementation that creates files, splits modules, introduces reusable code, or names APIs.
|
|
50
|
+
**Cadence:** stable. These files are project-local and preserved on update.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Layer 4 — `.aioson/context/design-doc*.md`
|
|
46
55
|
|
|
47
56
|
**What it is:** living decision document for the current feature or project scope.
|
|
48
57
|
**Who writes it:** @discovery-design-doc.
|
|
@@ -58,6 +67,7 @@ See `docs/README.md` for format and naming conventions.
|
|
|
58
67
|
|-----------|--------------|
|
|
59
68
|
| Enforce a coding convention for this project | `rules/` |
|
|
60
69
|
| Agents must always know about an external API behavior | `docs/` |
|
|
70
|
+
| Enforce structural code quality guidance | `design-docs/` |
|
|
61
71
|
| Document the scope and decisions for a specific feature | `design-doc-{slug}.md` |
|
|
62
72
|
| Log a global project-wide architecture decision | `design-doc.md` |
|
|
63
73
|
| Promote a recurring @dev pattern | `rules/` via @dev promotion |
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Dev execution discipline — semantic commits, learnings, task tracking, planning, atomic execution, verification gates, skeleton updates, and debugging."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Dev Execution Discipline
|
|
6
|
+
|
|
7
|
+
Load this module when the work is multi-file, ambiguous, near completion, or requires repeated verification.
|
|
8
|
+
|
|
9
|
+
## Semantic commit format
|
|
10
|
+
|
|
11
|
+
Use:
|
|
12
|
+
|
|
13
|
+
- `feat(module): ...`
|
|
14
|
+
- `fix(module): ...`
|
|
15
|
+
- `refactor(module): ...`
|
|
16
|
+
- `test(module): ...`
|
|
17
|
+
- `docs(module): ...`
|
|
18
|
+
- `chore(module): ...`
|
|
19
|
+
|
|
20
|
+
## Session learnings
|
|
21
|
+
|
|
22
|
+
At the end of productive sessions, look for:
|
|
23
|
+
|
|
24
|
+
- user corrections
|
|
25
|
+
- repeated successful patterns
|
|
26
|
+
- new domain facts
|
|
27
|
+
- quality failures or bugs
|
|
28
|
+
|
|
29
|
+
Capture only the top 3 to 5 concise learnings in `spec.md` under session learnings.
|
|
30
|
+
|
|
31
|
+
## Working memory
|
|
32
|
+
|
|
33
|
+
Use task tooling when available:
|
|
34
|
+
|
|
35
|
+
- `TaskCreate` — create slices
|
|
36
|
+
- `TaskUpdate (in_progress)` — mark in-progress
|
|
37
|
+
- `TaskUpdate (completed)` — mark completed with a one-line summary
|
|
38
|
+
- `TaskList` — review before starting new slices
|
|
39
|
+
|
|
40
|
+
`dev-state.md` is the persistent human-readable summary, not the live task board.
|
|
41
|
+
|
|
42
|
+
## Self-directed planning
|
|
43
|
+
|
|
44
|
+
Before ambiguous or multi-file work:
|
|
45
|
+
|
|
46
|
+
1. declare planning mode
|
|
47
|
+
2. list touched files and why
|
|
48
|
+
3. sequence the implementation
|
|
49
|
+
4. define verification criteria
|
|
50
|
+
5. exit planning mode before coding
|
|
51
|
+
|
|
52
|
+
Single-file, obvious changes do not need a full planning pass.
|
|
53
|
+
|
|
54
|
+
## Working rules
|
|
55
|
+
|
|
56
|
+
- reuse skills before reinventing patterns
|
|
57
|
+
- load detailed skills and docs on demand
|
|
58
|
+
- decide the minimum context package before coding
|
|
59
|
+
- stop if a recurring pattern already exists in `.aioson/skills/static/` or `.aioson/installed-skills/`
|
|
60
|
+
|
|
61
|
+
## Atomic execution
|
|
62
|
+
|
|
63
|
+
Work in small validated steps:
|
|
64
|
+
|
|
65
|
+
1. declare the next step
|
|
66
|
+
2. write the test first when business logic is new
|
|
67
|
+
3. implement only that slice
|
|
68
|
+
4. verify with the actual command output
|
|
69
|
+
5. commit the working slice
|
|
70
|
+
6. repeat
|
|
71
|
+
|
|
72
|
+
Unexpected output means stop and investigate. Do not stack speculative fixes.
|
|
73
|
+
|
|
74
|
+
## Done gate
|
|
75
|
+
|
|
76
|
+
Before marking any task or feature done:
|
|
77
|
+
|
|
78
|
+
1. run the verification command
|
|
79
|
+
2. read the complete output
|
|
80
|
+
3. confirm exit code `0`
|
|
81
|
+
4. only then mark done
|
|
82
|
+
|
|
83
|
+
Update `skeleton-system.md` whenever files are created, deleted, or materially changed.
|
|
84
|
+
|
|
85
|
+
## `*update-skeleton`
|
|
86
|
+
|
|
87
|
+
If the user types `*update-skeleton`, rewrite `.aioson/context/skeleton-system.md` to reflect:
|
|
88
|
+
|
|
89
|
+
- file map status
|
|
90
|
+
- module status
|
|
91
|
+
- key routes
|
|
92
|
+
- update date
|
|
93
|
+
|
|
94
|
+
## Debugging
|
|
95
|
+
|
|
96
|
+
If a failing issue survives one attempt:
|
|
97
|
+
|
|
98
|
+
- stop random fixing
|
|
99
|
+
- load `.aioson/skills/static/debugging-protocol.md`
|
|
100
|
+
- follow the protocol from root-cause analysis onward
|
|
101
|
+
|
|
102
|
+
After 3 failed attempts on the same issue, question the architecture instead of pushing patches blindly.
|
|
103
|
+
|
|
104
|
+
## Git worktrees
|
|
105
|
+
|
|
106
|
+
For SMALL or MEDIUM work, consider `.aioson/skills/static/git-worktrees.md` if the user wants a cleaner parallel workflow.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Dev stack conventions — Laravel, UI/UX, design skill, motion, Web3, and any-stack separation rules."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Dev Stack Conventions
|
|
6
|
+
|
|
7
|
+
Load this module when the active task touches framework-specific implementation details or user-facing UI.
|
|
8
|
+
|
|
9
|
+
## Laravel conventions
|
|
10
|
+
|
|
11
|
+
Respect this layout:
|
|
12
|
+
|
|
13
|
+
- `app/Actions/`
|
|
14
|
+
- `app/Http/Controllers/`
|
|
15
|
+
- `app/Http/Requests/`
|
|
16
|
+
- `app/Models/`
|
|
17
|
+
- `app/Policies/`
|
|
18
|
+
- `app/Events/` + `app/Listeners/`
|
|
19
|
+
- `app/Jobs/`
|
|
20
|
+
- `app/Livewire/`
|
|
21
|
+
- `resources/views/<resource>/`
|
|
22
|
+
|
|
23
|
+
Rules:
|
|
24
|
+
|
|
25
|
+
- controllers orchestrate; they do not own business logic
|
|
26
|
+
- use Form Requests for validation
|
|
27
|
+
- use Policies for authorization
|
|
28
|
+
- use Actions for business logic
|
|
29
|
+
- use queued events/listeners for side effects
|
|
30
|
+
- use Jobs for heavy processing
|
|
31
|
+
- eager-load to avoid N+1 queries
|
|
32
|
+
- implement `down()` in every migration
|
|
33
|
+
|
|
34
|
+
## UI / UX conventions
|
|
35
|
+
|
|
36
|
+
- use the project's component library when it exists
|
|
37
|
+
- do not reinvent standard controls
|
|
38
|
+
- mobile-responsive by default
|
|
39
|
+
- always implement loading, empty, and error states
|
|
40
|
+
- always provide visual feedback
|
|
41
|
+
|
|
42
|
+
## Design skill conventions
|
|
43
|
+
|
|
44
|
+
Read `design_skill` from `project.context.md` before implementing user-facing UI.
|
|
45
|
+
|
|
46
|
+
If `design_skill` is set:
|
|
47
|
+
|
|
48
|
+
- load `.aioson/skills/design/{design_skill}/SKILL.md`
|
|
49
|
+
- load only the references needed for the current screen or component
|
|
50
|
+
- treat it as the only active visual system
|
|
51
|
+
|
|
52
|
+
If `design_skill` is blank and the task clearly depends on visual direction:
|
|
53
|
+
|
|
54
|
+
- stop and ask whether to route through `@ux-ui` or proceed explicitly without a registered design skill
|
|
55
|
+
|
|
56
|
+
## Motion and animation
|
|
57
|
+
|
|
58
|
+
When the framework is React or Next.js and motion is relevant:
|
|
59
|
+
|
|
60
|
+
- load `.aioson/skills/static/react-motion-patterns.md`
|
|
61
|
+
- prefer Framer Motion
|
|
62
|
+
- provide `prefers-reduced-motion` fallback
|
|
63
|
+
- do not add heavy motion to admin/CRUD interfaces without a clear reason
|
|
64
|
+
|
|
65
|
+
## Web3 conventions
|
|
66
|
+
|
|
67
|
+
For `project_type=dapp`:
|
|
68
|
+
|
|
69
|
+
- validate inputs on-chain and off-chain
|
|
70
|
+
- never trust client-provided values for sensitive contract calls
|
|
71
|
+
- use typed ABIs
|
|
72
|
+
- test contract interactions before UI wiring
|
|
73
|
+
- document gas implications for user-facing transactions
|
|
74
|
+
|
|
75
|
+
## Any-stack conventions
|
|
76
|
+
|
|
77
|
+
For stacks without a dedicated section:
|
|
78
|
+
|
|
79
|
+
- separate business logic from request handlers
|
|
80
|
+
- validate input at the boundary
|
|
81
|
+
- follow the framework's conventions first
|
|
82
|
+
- check `.aioson/skills/static/`, `.aioson/skills/dynamic/`, and `.aioson/skills/design/` before inventing patterns
|
|
83
|
+
- document deviations in `architecture.md` when needed
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Deyvin continuity recovery — session start order, resumption rules, brownfield guardrails, SDD bridge, and Git fallback."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Deyvin Continuity Recovery
|
|
6
|
+
|
|
7
|
+
Load this module at the start of every `@deyvin` session before touching code.
|
|
8
|
+
|
|
9
|
+
## Session start order
|
|
10
|
+
|
|
11
|
+
Build context in this order:
|
|
12
|
+
|
|
13
|
+
1. If `aioson` is available, run `aioson memory:summary . --last=5` as the fast continuity bootstrap
|
|
14
|
+
2. Read `.aioson/context/project.context.md`
|
|
15
|
+
3. Check `.aioson/rules/`; load universal rules and rules targeted at `deyvin`
|
|
16
|
+
4. Check `.aioson/docs/`; load docs referenced by rules or relevant to the task
|
|
17
|
+
5. If the task is specific, run `aioson context:pack . --agent=deyvin --goal="<task>"` and read the generated pack
|
|
18
|
+
6. Read `.aioson/context/memory-index.md` if present
|
|
19
|
+
7. Read `.aioson/context/spec-current.md` and `.aioson/context/spec-history.md` if present
|
|
20
|
+
8. Read `.aioson/context/spec.md` if present
|
|
21
|
+
9. Read `.aioson/context/features.md` if present; if a feature is in progress, also read `prd-{slug}.md`, `requirements-{slug}.md`, and `spec-{slug}.md`
|
|
22
|
+
10. Read `.aioson/context/skeleton-system.md`, `discovery.md`, and `architecture.md` as needed
|
|
23
|
+
11. When the task matches procedural tags, run `aioson brain:query . --tags=<tags> --min-quality=4`
|
|
24
|
+
12. Inspect recent runtime state in `.aioson/runtime/aios.sqlite` when memory summary is insufficient
|
|
25
|
+
13. Use Git only as a fallback after memory + runtime + rules/docs
|
|
26
|
+
|
|
27
|
+
If the user asks what happened recently, answer from memory and runtime first. Go to Git only if those sources are insufficient.
|
|
28
|
+
|
|
29
|
+
## SDD bridge
|
|
30
|
+
|
|
31
|
+
When continuation depends on spec or execution state:
|
|
32
|
+
|
|
33
|
+
1. Load `.aioson/skills/process/aioson-spec-driven/SKILL.md`
|
|
34
|
+
2. Then load only `references/deyvin.md`
|
|
35
|
+
3. Follow that router to `maintenance-and-state.md` and `approval-gates.md` as needed
|
|
36
|
+
4. Treat shared SDD references as read-only process sources used by multiple agents
|
|
37
|
+
|
|
38
|
+
Do not duplicate or rewrite the shared SDD references inside `@deyvin`.
|
|
39
|
+
|
|
40
|
+
## Brownfield guardrails
|
|
41
|
+
|
|
42
|
+
If `framework_installed=true` in `project.context.md` and the task depends on existing system behavior:
|
|
43
|
+
|
|
44
|
+
- prefer `discovery.md` + `spec.md` as the primary memory pair
|
|
45
|
+
- use `skeleton-system.md` or `memory-index.md` first for faster orientation
|
|
46
|
+
- if `discovery.md` is missing but scan artifacts exist, stop and hand off to `@analyst`
|
|
47
|
+
- if broad architecture decisions are required, hand off to `@architect`
|
|
48
|
+
|
|
49
|
+
## Git fallback
|
|
50
|
+
|
|
51
|
+
Git is a fallback, not your first source of truth.
|
|
52
|
+
|
|
53
|
+
Use Git only when:
|
|
54
|
+
|
|
55
|
+
- AIOSON memory does not explain recent work well enough
|
|
56
|
+
- runtime data is missing or too shallow
|
|
57
|
+
- the user explicitly asks for commit-level history
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Deyvin debugging and escalation — root-cause protocol, retry limits, and when to hand off."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Deyvin Debugging and Escalation
|
|
6
|
+
|
|
7
|
+
Load this module when the request is bug diagnosis, failing test repair, or when the first fix attempt fails.
|
|
8
|
+
|
|
9
|
+
## Debugging protocol
|
|
10
|
+
|
|
11
|
+
When a bug or failing test cannot be resolved in one attempt:
|
|
12
|
+
|
|
13
|
+
1. STOP trying random fixes
|
|
14
|
+
2. Load `.aioson/skills/static/debugging-protocol.md`
|
|
15
|
+
3. Follow the protocol from step 1 (root cause investigation)
|
|
16
|
+
|
|
17
|
+
## Retry threshold
|
|
18
|
+
|
|
19
|
+
After 3 failed fix attempts on the same issue:
|
|
20
|
+
|
|
21
|
+
- question the architecture, not the code
|
|
22
|
+
- decide whether the issue still fits pair mode
|
|
23
|
+
- hand off when structural redesign, broader planning, or formal QA is needed
|
|
24
|
+
|
|
25
|
+
## Escalation hints
|
|
26
|
+
|
|
27
|
+
- `@dev` -> larger structured implementation batch once root cause is known
|
|
28
|
+
- `@architect` -> structural or system-level flaw
|
|
29
|
+
- `@analyst` -> missing domain rules or unclear brownfield behavior
|
|
30
|
+
- `@qa` -> formal risk review, regression sweep, or broader test design
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Deyvin pair execution — working mode, small-slice loop, memory updates, and implementation governance."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Deyvin Pair Execution
|
|
6
|
+
|
|
7
|
+
Load this module when `@deyvin` is about to inspect, explain, fix, or implement a small continuity slice.
|
|
8
|
+
|
|
9
|
+
## Pair working style
|
|
10
|
+
|
|
11
|
+
- summarize the latest confirmed context first
|
|
12
|
+
- ask what the user wants to do now if the next step is unclear
|
|
13
|
+
- propose the smallest sensible next step
|
|
14
|
+
- implement, inspect, or fix one small batch at a time
|
|
15
|
+
- validate before moving on
|
|
16
|
+
|
|
17
|
+
## Implementation governance
|
|
18
|
+
|
|
19
|
+
Before changing code:
|
|
20
|
+
|
|
21
|
+
1. load the relevant project rules and docs already discovered during recovery
|
|
22
|
+
2. if `.aioson/design-docs/` contains implementation governance docs, load the relevant ones for the touched area
|
|
23
|
+
3. if a recurring pattern already exists in `.aioson/skills/static/` or `.aioson/installed-skills/`, reuse it instead of improvising
|
|
24
|
+
|
|
25
|
+
## Small-slice loop
|
|
26
|
+
|
|
27
|
+
Work in this order:
|
|
28
|
+
|
|
29
|
+
1. define the immediate slice
|
|
30
|
+
2. inspect the relevant files and runtime context
|
|
31
|
+
3. implement only that slice
|
|
32
|
+
4. verify with the real command or observable behavior
|
|
33
|
+
5. summarize what changed
|
|
34
|
+
6. decide whether the next slice still fits pair mode
|
|
35
|
+
|
|
36
|
+
If the work stops being small, validated, and reviewable, hand off.
|
|
37
|
+
|
|
38
|
+
## Memory update rules
|
|
39
|
+
|
|
40
|
+
- update `spec.md` when the session changes project-wide engineering knowledge, decisions, or current state
|
|
41
|
+
- in feature mode, update `spec-{slug}.md` for feature-specific progress and decisions
|
|
42
|
+
- treat `spec-current.md` and `spec-history.md` as read-optimized derivatives; prefer updating `spec.md` / `spec-{slug}.md`
|
|
43
|
+
- update `skeleton-system.md` when files, routes, or module status change materially
|
|
44
|
+
- if the task becomes broad and context starts to sprawl, suggest or regenerate `context:pack`
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Deyvin runtime and handoffs — tracked session behavior, live milestones, direct sessions, and dashboard visibility."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Deyvin Runtime and Handoffs
|
|
6
|
+
|
|
7
|
+
Load this module when the session is tracked or when the user asks about runtime visibility.
|
|
8
|
+
|
|
9
|
+
## Runtime principle
|
|
10
|
+
|
|
11
|
+
The AIOSON execution gateway records tasks, runs, and events in the project runtime automatically. Focus on accurate step summaries, clean handoffs, and updated memory.
|
|
12
|
+
|
|
13
|
+
## Live-session behavior
|
|
14
|
+
|
|
15
|
+
If the user entered through `aioson live:start`, do not open a parallel `runtime:session:*` session. Reuse the live session and emit compact milestones instead:
|
|
16
|
+
|
|
17
|
+
1. When clearly starting a new user-visible slice, run `aioson runtime:emit . --agent=deyvin --type=task_started --title="<short slice title>"`
|
|
18
|
+
2. After each completed user-visible task, run `aioson runtime:emit . --agent=deyvin --type=task_completed --summary="<what was just completed>" --refs="<files>"`
|
|
19
|
+
3. When the session is linked to a plan and you complete a named step, run `aioson runtime:emit . --agent=deyvin --type=plan_checkpoint --plan-step="<step-id>" --summary="<what was completed>"`
|
|
20
|
+
4. For meaningful progress or risk, run `aioson runtime:emit . --agent=deyvin --type=milestone|correction|block --summary="<what changed>"`
|
|
21
|
+
5. If the request clearly belongs to another AIOSON agent, hand the same live session over with `aioson live:handoff . --agent=deyvin --to=<next-agent> --reason="<why the handoff is needed>"`
|
|
22
|
+
6. If the user wants to monitor the session in another terminal, recommend `aioson live:status . --agent=deyvin --watch=2`
|
|
23
|
+
7. Let the session owner close it with `aioson live:close . --agent=<active-agent> --summary="<one-line summary>"`
|
|
24
|
+
|
|
25
|
+
## Direct-session behavior
|
|
26
|
+
|
|
27
|
+
If the user did not enter through `aioson live:start`, keep one direct session open while the pair session is active:
|
|
28
|
+
|
|
29
|
+
1. At session start or when resuming work, run `aioson runtime:session:start . --agent=deyvin --title="<current focus>"`
|
|
30
|
+
2. After each completed user-visible task, run `aioson runtime:session:log . --agent=deyvin --message="<what was just completed>"`
|
|
31
|
+
3. On handoff, explicit pause, or session end, run `aioson runtime:session:finish . --agent=deyvin --summary="<one-line summary>"`
|
|
32
|
+
4. If the user wants to monitor the session in another terminal, recommend `aioson runtime:session:status . --agent=deyvin --watch=2`
|
|
33
|
+
|
|
34
|
+
## Dashboard visibility
|
|
35
|
+
|
|
36
|
+
Plain natural-language agent activation in an external client does not create runtime records by itself. If the user wants tracked dashboard visibility, they must enter through `aioson workflow:next`, `aioson agent:prompt`, or `aioson live:start` first.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Product conversation playbook — opening messages, batching rules, proactive triggers, conversation phases, and finalize/surprise handling."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Product Conversation Playbook
|
|
6
|
+
|
|
7
|
+
Load this module when `@product` is about to ask questions, refine an existing PRD, or continue a product conversation.
|
|
8
|
+
|
|
9
|
+
## Opening message by mode
|
|
10
|
+
|
|
11
|
+
Creation mode:
|
|
12
|
+
|
|
13
|
+
> "Tell me about the idea — what problem does it solve and who has that problem?"
|
|
14
|
+
|
|
15
|
+
Feature mode:
|
|
16
|
+
|
|
17
|
+
> "What's the feature? Tell me what it should do and who it's for."
|
|
18
|
+
|
|
19
|
+
Enrichment mode:
|
|
20
|
+
|
|
21
|
+
> "I read the PRD. I noticed [specific gap or missing section]. Want to start there, or is there something else you'd like to refine first?"
|
|
22
|
+
|
|
23
|
+
## Conversation rules
|
|
24
|
+
|
|
25
|
+
1. First message = one open question only.
|
|
26
|
+
2. From the second message onward, batch up to 5 numbered questions.
|
|
27
|
+
3. End every batch with: `6 - Finalize — write the PRD now with what we have.`
|
|
28
|
+
4. Reflect understanding before advancing to a new topic.
|
|
29
|
+
5. Surface what founders usually forget: edge cases, empty states, admin roles, permissions, ownership, failure modes.
|
|
30
|
+
6. Challenge confident assumptions gently with questions rather than assertions.
|
|
31
|
+
7. Ruthlessly narrow scope when the discussion starts expanding.
|
|
32
|
+
8. No filler openers.
|
|
33
|
+
|
|
34
|
+
## Proactive domain triggers
|
|
35
|
+
|
|
36
|
+
If the user did not mention a critical area, raise it when these signals appear:
|
|
37
|
+
|
|
38
|
+
| Signal | Raise this |
|
|
39
|
+
|--------|-----------|
|
|
40
|
+
| Multiple user types | "Who manages the other users — is there an admin role?" |
|
|
41
|
+
| Create/update/delete flows | "What happens if two people try to edit the same thing at the same time?" |
|
|
42
|
+
| Stateful workflows | "Who can change a [state] and what happens when they do?" |
|
|
43
|
+
| Potentially empty data | "What does the screen look like before the first [item] is added?" |
|
|
44
|
+
| Money or subscription | "How does billing work — one-time, subscription, usage-based?" |
|
|
45
|
+
| User-generated content | "What happens if a user posts something inappropriate?" |
|
|
46
|
+
| External services | "What happens in the app if [service] is down?" |
|
|
47
|
+
| Notifications | "What triggers a notification, and can users control which ones they get?" |
|
|
48
|
+
| Team growth | "How does a new team member get access?" |
|
|
49
|
+
|
|
50
|
+
## Visual and design triggers
|
|
51
|
+
|
|
52
|
+
When visual quality is materially relevant:
|
|
53
|
+
|
|
54
|
+
| Signal | Raise this |
|
|
55
|
+
|--------|-----------|
|
|
56
|
+
| "modern", "beautiful", "premium", "clean", "elegant" | "Is there an app or website whose look you admire?" |
|
|
57
|
+
| Color, theme, or mood words | "What feeling should the interface transmit?" |
|
|
58
|
+
| Consumer-facing product | "How important is visual quality relative to shipping speed for this first version?" |
|
|
59
|
+
| Motion or interaction mentions | "Which interactions feel essential to the experience?" |
|
|
60
|
+
| Existing brand mention | "Is there an existing brand guide, or are we defining the visual language from scratch?" |
|
|
61
|
+
| Mobile implied | "Should mobile mirror desktop, or be adapted differently?" |
|
|
62
|
+
| UI stack mention | "Is this the production UI, or a functional prototype that will be redesigned later?" |
|
|
63
|
+
|
|
64
|
+
## Design skill preservation
|
|
65
|
+
|
|
66
|
+
Before asking additional visual questions, read `design_skill` from `project.context.md`.
|
|
67
|
+
|
|
68
|
+
Rules:
|
|
69
|
+
|
|
70
|
+
- if `design_skill` is already set, preserve it
|
|
71
|
+
- if `project_type=site` or `project_type=web_app` and `design_skill` is blank, ask whether to register one of the installed design skills under `.aioson/skills/design/`
|
|
72
|
+
- never auto-select a design skill
|
|
73
|
+
- if the user wants to postpone the decision, record `pending-selection`
|
|
74
|
+
|
|
75
|
+
## Natural conversation phases
|
|
76
|
+
|
|
77
|
+
The conversation normally moves through:
|
|
78
|
+
|
|
79
|
+
- understand the problem
|
|
80
|
+
- define the product
|
|
81
|
+
- scope the first version
|
|
82
|
+
- validate and close
|
|
83
|
+
|
|
84
|
+
These are phases, not rigid steps. Move naturally based on what the user already answered.
|
|
85
|
+
|
|
86
|
+
## Flow control
|
|
87
|
+
|
|
88
|
+
Detect spontaneous finalize phrases:
|
|
89
|
+
|
|
90
|
+
- `finalizar`
|
|
91
|
+
- `finalize`
|
|
92
|
+
- `chega de perguntas`
|
|
93
|
+
- `pode gerar`
|
|
94
|
+
- `wrap up`
|
|
95
|
+
- `just write it`
|
|
96
|
+
- `6`
|
|
97
|
+
|
|
98
|
+
Detect surprise-mode phrases:
|
|
99
|
+
|
|
100
|
+
- `me faça uma surpresa`
|
|
101
|
+
- `surprise me`
|
|
102
|
+
- `be creative`
|
|
103
|
+
- `fill in the gaps`
|
|
104
|
+
- `inventa você`
|
|
105
|
+
|
|
106
|
+
### Finalize mode
|
|
107
|
+
|
|
108
|
+
Generate the PRD immediately.
|
|
109
|
+
Any undiscussed section should be written as `TBD — not discussed.`
|
|
110
|
+
Do not invent content.
|
|
111
|
+
|
|
112
|
+
### Surprise mode
|
|
113
|
+
|
|
114
|
+
Fill undiscussed sections with explicit, reviewable judgment.
|
|
115
|
+
Mark every inferred item with `_(inferred)_`.
|
|
116
|
+
Do not leave sections empty.
|