@jaimevalasek/aioson 1.3.0 → 1.5.1
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 +31 -1
- package/LICENSE +661 -21
- package/README.md +22 -3
- package/docs/en/squad-dashboard.md +372 -0
- package/docs/openclaw-bridge.md +308 -0
- package/docs/pt/README.md +62 -2
- package/docs/pt/advisor-spec.md +5 -5
- package/docs/pt/agentes-customizados.md +670 -0
- package/docs/pt/agentes.md +235 -23
- package/docs/pt/automacao-squads.md +407 -0
- package/docs/pt/cenarios.md +49 -5
- package/docs/pt/clientes-ai.md +62 -0
- package/docs/pt/comandos-cli.md +226 -17
- package/docs/pt/deyvin.md +115 -0
- package/docs/pt/genome-3.0-spec.md +11 -11
- package/docs/pt/inicio-rapido.md +63 -2
- package/docs/pt/memoria-contexto.md +255 -0
- package/docs/pt/output-strategy-delivery.md +655 -0
- package/docs/pt/profiler-system.md +17 -17
- package/docs/pt/runtime-observability.md +5 -1
- package/docs/pt/skills.md +175 -0
- package/docs/pt/squad-dashboard.md +373 -0
- package/docs/pt/{squad-genoma.md → squad-genome.md} +81 -75
- package/docs/testing/genome-2.0-matrix.md +5 -5
- package/docs/testing/genome-2.0-rollout.md +10 -10
- package/package.json +4 -4
- package/src/agents.js +21 -5
- package/src/backup-local.js +74 -0
- package/src/backup-provider.js +303 -0
- package/src/cli.js +276 -2
- package/src/commands/agents.js +22 -4
- package/src/commands/backup-local-cmd.js +25 -0
- package/src/commands/backup.js +533 -0
- package/src/commands/cloud.js +17 -17
- package/src/commands/context-pack.js +45 -0
- package/src/commands/implementation-plan.js +340 -0
- package/src/commands/learning.js +134 -0
- package/src/commands/live.js +1583 -0
- package/src/commands/runtime.js +1075 -2
- package/src/commands/scan-project.js +288 -24
- package/src/commands/setup-context.js +30 -2
- package/src/commands/skill.js +558 -0
- package/src/commands/squad-agent-create.js +788 -0
- package/src/commands/squad-daemon.js +209 -0
- package/src/commands/squad-dashboard.js +39 -0
- package/src/commands/squad-deploy.js +64 -0
- package/src/commands/squad-doctor.js +103 -1
- package/src/commands/squad-investigate.js +261 -0
- package/src/commands/squad-learning.js +209 -0
- package/src/commands/squad-mcp.js +270 -0
- package/src/commands/squad-pipeline.js +247 -1
- package/src/commands/squad-plan.js +329 -0
- package/src/commands/squad-processes.js +56 -0
- package/src/commands/squad-recovery.js +42 -0
- package/src/commands/squad-roi.js +291 -0
- package/src/commands/squad-score.js +250 -0
- package/src/commands/squad-status.js +38 -2
- package/src/commands/squad-validate.js +118 -1
- package/src/commands/squad-webhook.js +160 -0
- package/src/commands/squad-worker.js +191 -0
- package/src/commands/squad-worktrees.js +75 -0
- package/src/commands/test-agents.js +6 -1
- package/src/commands/web-map.js +70 -0
- package/src/commands/web-scrape.js +71 -0
- package/src/commands/workflow-next.js +8 -1
- package/src/commands/workflow-status.js +250 -0
- package/src/constants.js +88 -16
- package/src/context-memory.js +837 -0
- package/src/context-writer.js +47 -1
- package/src/delivery-runner.js +319 -0
- package/src/genome-files.js +1 -1
- package/src/genome-format.js +1 -1
- package/src/i18n/messages/en.js +333 -8
- package/src/i18n/messages/es.js +240 -6
- package/src/i18n/messages/fr.js +239 -5
- package/src/i18n/messages/pt-BR.js +330 -12
- package/src/installer.js +30 -2
- package/src/lib/genomes/compat.js +1 -1
- package/src/lib/webhook-server.js +328 -0
- package/src/mcp-connectors/registry.js +602 -0
- package/src/runtime-store.js +1037 -42
- package/src/session-handoff.js +77 -0
- package/src/squad/external-session.js +180 -0
- package/src/squad/inter-squad.js +74 -0
- package/src/squad/recovery-context.js +201 -0
- package/src/squad/worktree-manager.js +114 -0
- package/src/squad-daemon.js +490 -0
- package/src/squad-dashboard/api.js +223 -0
- package/src/squad-dashboard/attachment-handler.js +93 -0
- package/src/squad-dashboard/context-monitor.js +157 -0
- package/src/squad-dashboard/execution-logs.js +115 -0
- package/src/squad-dashboard/hunk-review.js +209 -0
- package/src/squad-dashboard/metrics.js +133 -0
- package/src/squad-dashboard/process-monitor.js +125 -0
- package/src/squad-dashboard/renderer.js +858 -0
- package/src/squad-dashboard/server.js +232 -0
- package/src/squad-dashboard/styles.js +525 -0
- package/src/squad-dashboard/token-tracker.js +99 -0
- package/src/web.js +284 -0
- package/src/worker-runner.js +339 -0
- package/template/.aioson/agents/analyst.md +40 -9
- package/template/.aioson/agents/architect.md +24 -5
- package/template/.aioson/agents/dev.md +254 -25
- package/template/.aioson/agents/deyvin.md +174 -0
- package/template/.aioson/agents/discovery-design-doc.md +25 -1
- package/template/.aioson/agents/{genoma.md → genome.md} +20 -20
- package/template/.aioson/agents/neo.md +152 -0
- package/template/.aioson/agents/orache.md +388 -0
- package/template/.aioson/agents/orchestrator.md +63 -2
- package/template/.aioson/agents/pair.md +5 -0
- package/template/.aioson/agents/pm.md +17 -5
- package/template/.aioson/agents/product.md +113 -29
- package/template/.aioson/agents/profiler-enricher.md +1 -1
- package/template/.aioson/agents/profiler-forge.md +9 -9
- package/template/.aioson/agents/profiler-researcher.md +1 -1
- package/template/.aioson/agents/qa.md +18 -5
- package/template/.aioson/agents/setup.md +138 -18
- package/template/.aioson/agents/sheldon.md +603 -0
- package/template/.aioson/agents/squad.md +866 -28
- package/template/.aioson/agents/tester.md +254 -0
- package/template/.aioson/agents/ux-ui.md +289 -34
- package/template/.aioson/config.md +181 -0
- package/template/.aioson/context/spec.md.template +17 -0
- package/template/.aioson/genomes/.gitkeep +0 -0
- package/template/.aioson/installed-skills/.gitkeep +0 -0
- package/template/.aioson/locales/en/agents/analyst.md +34 -4
- package/template/.aioson/locales/en/agents/architect.md +18 -0
- package/template/.aioson/locales/en/agents/dev.md +155 -11
- package/template/.aioson/locales/en/agents/deyvin.md +137 -0
- package/template/.aioson/locales/en/agents/{genoma.md → genome.md} +14 -14
- package/template/.aioson/locales/en/agents/neo.md +8 -0
- package/template/.aioson/locales/en/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/en/agents/pair.md +5 -0
- package/template/.aioson/locales/en/agents/pm.md +7 -0
- package/template/.aioson/locales/en/agents/product.md +35 -17
- package/template/.aioson/locales/en/agents/qa.md +56 -0
- package/template/.aioson/locales/en/agents/setup.md +53 -6
- package/template/.aioson/locales/en/agents/sheldon.md +340 -0
- package/template/.aioson/locales/en/agents/squad.md +203 -15
- package/template/.aioson/locales/en/agents/ux-ui.md +383 -35
- package/template/.aioson/locales/es/agents/analyst.md +24 -4
- package/template/.aioson/locales/es/agents/architect.md +18 -0
- package/template/.aioson/locales/es/agents/dev.md +136 -9
- package/template/.aioson/locales/es/agents/deyvin.md +97 -0
- package/template/.aioson/locales/es/agents/{genoma.md → genome.md} +13 -13
- package/template/.aioson/locales/es/agents/neo.md +48 -0
- package/template/.aioson/locales/es/agents/orache.md +103 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/es/agents/pair.md +5 -0
- package/template/.aioson/locales/es/agents/pm.md +7 -0
- package/template/.aioson/locales/es/agents/product.md +13 -3
- package/template/.aioson/locales/es/agents/qa.md +33 -0
- package/template/.aioson/locales/es/agents/setup.md +30 -6
- package/template/.aioson/locales/es/agents/sheldon.md +192 -0
- package/template/.aioson/locales/es/agents/squad.md +284 -15
- package/template/.aioson/locales/es/agents/ux-ui.md +34 -25
- package/template/.aioson/locales/fr/agents/analyst.md +24 -4
- package/template/.aioson/locales/fr/agents/architect.md +18 -0
- package/template/.aioson/locales/fr/agents/dev.md +136 -9
- package/template/.aioson/locales/fr/agents/deyvin.md +97 -0
- package/template/.aioson/locales/fr/agents/{genoma.md → genome.md} +7 -7
- package/template/.aioson/locales/fr/agents/neo.md +48 -0
- package/template/.aioson/locales/fr/agents/orache.md +104 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/fr/agents/pair.md +5 -0
- package/template/.aioson/locales/fr/agents/pm.md +7 -0
- package/template/.aioson/locales/fr/agents/product.md +13 -3
- package/template/.aioson/locales/fr/agents/qa.md +33 -0
- package/template/.aioson/locales/fr/agents/setup.md +30 -6
- package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
- package/template/.aioson/locales/fr/agents/squad.md +279 -10
- package/template/.aioson/locales/fr/agents/ux-ui.md +34 -25
- package/template/.aioson/locales/pt-BR/agents/analyst.md +45 -4
- package/template/.aioson/locales/pt-BR/agents/architect.md +29 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +167 -15
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +137 -0
- package/template/.aioson/locales/pt-BR/agents/{genoma.md → genome.md} +49 -49
- package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
- package/template/.aioson/locales/pt-BR/agents/orache.md +137 -0
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/pt-BR/agents/pair.md +5 -0
- package/template/.aioson/locales/pt-BR/agents/pm.md +7 -0
- package/template/.aioson/locales/pt-BR/agents/product.md +43 -20
- package/template/.aioson/locales/pt-BR/agents/qa.md +67 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +53 -6
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
- package/template/.aioson/locales/pt-BR/agents/squad.md +591 -47
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +369 -22
- package/template/.aioson/my-agents/.gitkeep +0 -0
- package/template/.aioson/rules/.gitkeep +0 -0
- package/template/.aioson/rules/squad/.gitkeep +0 -0
- package/template/.aioson/rules/squad/README.md +50 -0
- package/template/.aioson/schemas/genome-meta.schema.json +1 -1
- package/template/.aioson/schemas/genome.schema.json +1 -1
- package/template/.aioson/schemas/squad-blueprint.schema.json +32 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +434 -1
- package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +205 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -0
- package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -0
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +203 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +407 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +272 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +524 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +277 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +289 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +437 -0
- package/template/.aioson/skills/design/interface-design/SKILL.md +47 -0
- package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -0
- package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -0
- package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +71 -0
- package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -0
- package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -0
- package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +62 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -0
- package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +209 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -0
- package/template/.aioson/skills/design-system/SKILL.md +92 -0
- package/template/.aioson/skills/design-system/cognitive-core-ui.skill +0 -0
- package/template/.aioson/skills/design-system/components/SKILL.md +274 -0
- package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md +184 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md +250 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md +197 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md +231 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -0
- package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -0
- package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -0
- package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -0
- package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -0
- package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -0
- package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -0
- package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -0
- package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -0
- package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -0
- package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -0
- package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -0
- package/template/.aioson/skills/squad/SKILL.md +58 -0
- package/template/.aioson/skills/squad/domains/.gitkeep +0 -0
- package/template/.aioson/skills/squad/formats/.gitkeep +0 -0
- package/template/.aioson/skills/squad/formats/catalog.json +15 -0
- package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -0
- package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -0
- package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -0
- package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -0
- package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -0
- package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -0
- package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -0
- package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -0
- package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -0
- package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -0
- package/template/.aioson/skills/squad/patterns/.gitkeep +0 -0
- package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -0
- package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -0
- package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -0
- package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -0
- package/template/.aioson/skills/squad/references/.gitkeep +0 -0
- package/template/.aioson/skills/squad/references/checklist-templates.md +122 -0
- package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -0
- package/template/.aioson/skills/squad/references/workflow-templates.md +169 -0
- package/template/.aioson/skills/static/debugging-protocol.md +42 -0
- package/template/.aioson/skills/static/git-worktrees.md +36 -0
- package/template/.aioson/tasks/implementation-plan.md +307 -0
- package/template/.aioson/tasks/squad-create.md +1 -1
- package/template/.aioson/tasks/squad-design.md +28 -0
- package/template/.aioson/tasks/squad-execution-plan.md +279 -0
- package/template/.aioson/tasks/squad-export.md +1 -1
- package/template/.aioson/tasks/squad-investigate.md +44 -0
- package/template/.aioson/tasks/squad-learning-review.md +44 -0
- package/template/.aioson/tasks/squad-output-config.md +177 -0
- package/template/.aioson/tasks/squad-profile.md +48 -0
- package/template/.aioson/tasks/squad-review.md +61 -0
- package/template/.aioson/tasks/squad-task-decompose.md +66 -0
- package/template/.aioson/tasks/squad-validate.md +1 -1
- package/template/.claude/commands/aioson/agent/deyvin.md +5 -0
- package/template/.claude/commands/aioson/agent/discovery-design-doc.md +5 -0
- package/template/.claude/commands/aioson/agent/genome.md +5 -0
- package/template/.claude/commands/aioson/agent/neo.md +5 -0
- package/template/.claude/commands/aioson/agent/product.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-enricher.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-forge.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-researcher.md +5 -0
- package/template/.claude/commands/aioson/agent/squad.md +5 -0
- package/template/.claude/commands/aioson/agent/tester.md +5 -0
- package/template/.gemini/GEMINI.md +3 -0
- package/template/.gemini/commands/aios-deyvin.toml +6 -0
- package/template/.gemini/commands/aios-neo.toml +4 -0
- package/template/.gemini/commands/aios-pair.toml +6 -0
- package/template/.gemini/commands/aios-tester.toml +6 -0
- package/template/AGENTS.md +37 -6
- package/template/CLAUDE.md +34 -4
- package/template/OPENCODE.md +8 -2
- package/template/squad-searches/.gitkeep +0 -0
- package/template/.aioson/skills/static/interface-design.md +0 -372
- package/template/.aioson/skills/static/premium-command-center-ui.md +0 -190
- /package/template/.aioson/{genomas → docs}/.gitkeep +0 -0
- /package/template/.claude/commands/aioson/{analyst.md → agent/analyst.md} +0 -0
- /package/template/.claude/commands/aioson/{architect.md → agent/architect.md} +0 -0
- /package/template/.claude/commands/aioson/{dev.md → agent/dev.md} +0 -0
- /package/template/.claude/commands/aioson/{orchestrator.md → agent/orchestrator.md} +0 -0
- /package/template/.claude/commands/aioson/{pm.md → agent/pm.md} +0 -0
- /package/template/.claude/commands/aioson/{qa.md → agent/qa.md} +0 -0
- /package/template/.claude/commands/aioson/{setup.md → agent/setup.md} +0 -0
- /package/template/.claude/commands/aioson/{ux-ui.md → agent/ux-ui.md} +0 -0
|
@@ -5,15 +5,19 @@
|
|
|
5
5
|
## Mission
|
|
6
6
|
Discover requirements deeply and produce implementation-ready artifacts. For new projects: `discovery.md`. For new features: `requirements-{slug}.md` + `spec-{slug}.md`.
|
|
7
7
|
|
|
8
|
-
## Project rules & docs
|
|
8
|
+
## Project rules, docs & design docs
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
These directories are **optional**. Check silently — if a directory is absent or empty, move on without mentioning it.
|
|
11
11
|
|
|
12
|
-
1. **`.aioson/rules/`** — If
|
|
13
|
-
-
|
|
12
|
+
1. **`.aioson/rules/`** — If `.md` files exist, read each file's YAML frontmatter:
|
|
13
|
+
- If `agents:` is absent → load (universal rule).
|
|
14
14
|
- If `agents:` includes `analyst` → load. Otherwise skip.
|
|
15
15
|
- Loaded rules **override** the default conventions in this file.
|
|
16
|
-
2. **`.aioson/docs/`** — If
|
|
16
|
+
2. **`.aioson/docs/`** — If files exist, load only those whose `description` frontmatter is relevant to the current task, or that are explicitly referenced by a loaded rule.
|
|
17
|
+
3. **`.aioson/context/design-doc*.md`** — If `design-doc.md` or `design-doc-{slug}.md` files exist, read each file's YAML frontmatter:
|
|
18
|
+
- If `agents:` is absent → load when the `scope` or `description` matches the current task.
|
|
19
|
+
- If `agents:` includes `analyst` → load. Otherwise skip.
|
|
20
|
+
- Design docs provide architectural decisions, technical flows, and implementation guidance — use them as constraints, not suggestions.
|
|
17
21
|
|
|
18
22
|
## Mode detection
|
|
19
23
|
|
|
@@ -36,6 +40,16 @@ Check the following before doing anything else:
|
|
|
36
40
|
- `.aioson/context/design-doc.md` + `readiness.md` (if present)
|
|
37
41
|
- `.aioson/context/discovery.md` + `spec.md` (feature mode — project context, if present)
|
|
38
42
|
|
|
43
|
+
## Context integrity
|
|
44
|
+
|
|
45
|
+
Read `project.context.md` before starting discovery.
|
|
46
|
+
|
|
47
|
+
Rules:
|
|
48
|
+
- If the file is inconsistent with the scope artifacts already present (`prd.md`, `prd-{slug}.md`, `discovery.md`, `spec.md`, `features.md`), fix the objectively inferable metadata inside the workflow before proceeding.
|
|
49
|
+
- Only repair fields you can defend from current evidence. Do not guess missing domain rules just to make the file look complete.
|
|
50
|
+
- If the missing or invalid field blocks discovery and is not inferable, ask the minimum clarification or send the workflow back to `@setup` inside the workflow.
|
|
51
|
+
- Never treat context repair as a reason to recommend execution outside the workflow.
|
|
52
|
+
|
|
39
53
|
## Brownfield pre-flight
|
|
40
54
|
|
|
41
55
|
Check `framework_installed` in `project.context.md` before starting any phase.
|
|
@@ -46,14 +60,26 @@ Check `framework_installed` in `project.context.md` before starting any phase.
|
|
|
46
60
|
- Read `discovery.md` AND `spec.md` (if present) together — they are two halves of project memory: discovery.md = structure, spec.md = development decisions.
|
|
47
61
|
- Proceed to enhance or update discovery.md based on the user's request.
|
|
48
62
|
|
|
49
|
-
**If `framework_installed=true` AND no `discovery.md` exists
|
|
50
|
-
|
|
63
|
+
**If `framework_installed=true` AND no `discovery.md` exists AND local scan artifacts already exist** (`scan-index.md`, `scan-folders.md`, at least one `scan-<folder>.md`, or `scan-aioson.md`):
|
|
64
|
+
- Read `scan-index.md` first.
|
|
65
|
+
- Read `scan-folders.md` and `scan-aioson.md` if present.
|
|
66
|
+
- Read every relevant `scan-<folder>.md` that maps the requested brownfield scope.
|
|
67
|
+
- Use those scan artifacts as compressed brownfield memory and generate `.aioson/context/discovery.md` yourself.
|
|
68
|
+
- This path is valid for Codex, Claude Code, Gemini CLI, and similar AI clients even when the user does not use API keys inside `aioson`.
|
|
69
|
+
- If the user wants to save tokens and their client allows model choice, they may pick a smaller/faster model for this discovery step.
|
|
70
|
+
|
|
71
|
+
**If `framework_installed=true` AND no `discovery.md` exists AND no local scan artifacts exist:**
|
|
72
|
+
> ⚠ Existing project detected but no discovery.md found. Run the local scanner first:
|
|
51
73
|
> ```
|
|
52
|
-
> aioson scan:project
|
|
74
|
+
> aioson scan:project . --folder=src
|
|
75
|
+
> ```
|
|
76
|
+
> Optional API path:
|
|
77
|
+
> ```
|
|
78
|
+
> aioson scan:project . --folder=src --with-llm --provider=<provider>
|
|
53
79
|
> ```
|
|
54
80
|
> Then start a new session and run @analyst again.
|
|
55
81
|
|
|
56
|
-
Stop here
|
|
82
|
+
Stop here only when neither `discovery.md` nor local scan artifacts exist. Do not run Phases 1–3 on a large existing codebase without one of those two memory sources.
|
|
57
83
|
|
|
58
84
|
> **Rule:** whenever `discovery.md` is present, always read `spec.md` alongside it — never one without the other.
|
|
59
85
|
|
|
@@ -200,6 +226,9 @@ The `@analyst` owns all technical and structural content: requirements, entities
|
|
|
200
226
|
Copy, interface text, onboarding messages, and marketing content are not within `@analyst` scope.
|
|
201
227
|
|
|
202
228
|
## Output contract
|
|
229
|
+
|
|
230
|
+
> **CRITICAL — FILE WRITE RULE:** Every artifact listed below MUST be written to disk using the Write tool before this agent session ends. Generating content as chat text is NOT sufficient. Always write the file, then confirm it was saved with: `✅ discovery.md written — @architect can proceed.`
|
|
231
|
+
|
|
203
232
|
Generate `.aioson/context/discovery.md` with the following sections:
|
|
204
233
|
|
|
205
234
|
1. **What we are building** — 2–3 objective lines
|
|
@@ -223,3 +252,5 @@ Generate `.aioson/context/discovery.md` with the following sections:
|
|
|
223
252
|
- Do not finalize any output file with missing or assumed fields.
|
|
224
253
|
- In feature mode: never duplicate content already in `discovery.md` — only document what is new or changed.
|
|
225
254
|
- If `readiness.md` already says the context is sufficiently clear, do not reopen broad discovery without a good reason.
|
|
255
|
+
- At session end, after writing the discovery file, register the session: `aioson agent:done . --agent=analyst --summary="<one-line summary of discovery produced>" 2>/dev/null || true`
|
|
256
|
+
- If `aioson` CLI is not available, write a devlog at session end following the "Devlog" section in `.aioson/config.md`.
|
|
@@ -5,15 +5,19 @@
|
|
|
5
5
|
## Mission
|
|
6
6
|
Transform discovery into technical architecture with concrete implementation direction.
|
|
7
7
|
|
|
8
|
-
## Project rules & docs
|
|
8
|
+
## Project rules, docs & design docs
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
These directories are **optional**. Check silently — if a directory is absent or empty, move on without mentioning it.
|
|
11
11
|
|
|
12
|
-
1. **`.aioson/rules/`** — If
|
|
13
|
-
-
|
|
12
|
+
1. **`.aioson/rules/`** — If `.md` files exist, read each file's YAML frontmatter:
|
|
13
|
+
- If `agents:` is absent → load (universal rule).
|
|
14
14
|
- If `agents:` includes `architect` → load. Otherwise skip.
|
|
15
15
|
- Loaded rules **override** the default conventions in this file.
|
|
16
|
-
2. **`.aioson/docs/`** — If
|
|
16
|
+
2. **`.aioson/docs/`** — If files exist, load only those whose `description` frontmatter is relevant to the current task, or that are explicitly referenced by a loaded rule.
|
|
17
|
+
3. **`.aioson/context/design-doc*.md`** — If `design-doc.md` or `design-doc-{slug}.md` files exist, read each file's YAML frontmatter:
|
|
18
|
+
- If `agents:` is absent → load when the `scope` or `description` matches the current task.
|
|
19
|
+
- If `agents:` includes `architect` → load. Otherwise skip.
|
|
20
|
+
- Design docs provide architectural decisions, technical flows, and implementation guidance — use them as constraints, not suggestions.
|
|
17
21
|
|
|
18
22
|
## Required input
|
|
19
23
|
- `.aioson/context/project.context.md`
|
|
@@ -21,6 +25,16 @@ Before executing your mission, scan for project-specific customizations:
|
|
|
21
25
|
- `.aioson/context/readiness.md` (if present)
|
|
22
26
|
- `.aioson/context/discovery.md`
|
|
23
27
|
|
|
28
|
+
## Brownfield memory handoff
|
|
29
|
+
|
|
30
|
+
For existing codebases:
|
|
31
|
+
- `discovery.md` is the required compressed system memory for architecture work.
|
|
32
|
+
- That `discovery.md` may have come from either:
|
|
33
|
+
- `scan:project --with-llm`
|
|
34
|
+
- `@analyst` reading local scan artifacts (`scan-index.md`, `scan-folders.md`, `scan-<folder>.md`, `scan-aioson.md`)
|
|
35
|
+
- If `discovery.md` is missing but local scan artifacts exist, do not architect directly from the raw scan maps. Route through `@analyst` first.
|
|
36
|
+
- If neither `discovery.md` nor local scan artifacts exist, ask for the local scanner before continuing.
|
|
37
|
+
|
|
24
38
|
## Rules
|
|
25
39
|
- Do not redesign entities produced by `@analyst`. Consume the data design as-is.
|
|
26
40
|
- Keep architecture proportional to classification. Never apply MEDIUM patterns to a MICRO project.
|
|
@@ -190,6 +204,9 @@ indexer/ ← subgraph or equivalent
|
|
|
190
204
|
```
|
|
191
205
|
|
|
192
206
|
## Output contract
|
|
207
|
+
|
|
208
|
+
> **CRITICAL — FILE WRITE RULE:** Every artifact listed below MUST be written to disk using the Write tool before this agent session ends. Generating content as chat text is NOT sufficient. Always write the file, then confirm it was saved with: `✅ architecture.md written — @ux-ui or @dev can proceed.`
|
|
209
|
+
|
|
193
210
|
Generate `.aioson/context/architecture.md` with:
|
|
194
211
|
|
|
195
212
|
1. **Architecture overview** — 2–3 lines on the approach
|
|
@@ -219,3 +236,5 @@ Keep architecture.md proportional — verbose output costs tokens without adding
|
|
|
219
236
|
- Ensure output can be executed directly by `@dev` without ambiguity.
|
|
220
237
|
- Do not introduce patterns that do not exist in the chosen stack's conventions.
|
|
221
238
|
- Do not copy content from discovery.md into architecture.md. Reference sections by name: "see discovery.md § Entities". The document chain is already in context.
|
|
239
|
+
- At session end, after writing the architecture file, register the session: `aioson agent:done . --agent=architect --summary="<one-line summary of architecture produced>" 2>/dev/null || true`
|
|
240
|
+
- If `aioson` CLI is not available, write a devlog at session end following the "Devlog" section in `.aioson/config.md`.
|
|
@@ -5,15 +5,19 @@
|
|
|
5
5
|
## Mission
|
|
6
6
|
Implement features according to architecture while preserving stack conventions and project simplicity.
|
|
7
7
|
|
|
8
|
-
## Project rules & docs
|
|
8
|
+
## Project rules, docs & design docs
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
These directories are **optional**. Check silently — if a directory is absent or empty, move on without mentioning it.
|
|
11
11
|
|
|
12
|
-
1. **`.aioson/rules/`** — If
|
|
13
|
-
-
|
|
12
|
+
1. **`.aioson/rules/`** — If `.md` files exist, read each file's YAML frontmatter:
|
|
13
|
+
- If `agents:` is absent → load (universal rule).
|
|
14
14
|
- If `agents:` includes `dev` → load. Otherwise skip.
|
|
15
15
|
- Loaded rules **override** the default conventions in this file.
|
|
16
|
-
2. **`.aioson/docs/`** — If
|
|
16
|
+
2. **`.aioson/docs/`** — If files exist, load only those whose `description` frontmatter is relevant to the current task, or that are explicitly referenced by a loaded rule.
|
|
17
|
+
3. **`.aioson/context/design-doc*.md`** — If `design-doc.md` or `design-doc-{slug}.md` files exist, read each file's YAML frontmatter:
|
|
18
|
+
- If `agents:` is absent → load when the `scope` or `description` matches the current task.
|
|
19
|
+
- If `agents:` includes `dev` → load. Otherwise skip.
|
|
20
|
+
- Design docs provide architectural decisions, technical flows, and implementation guidance — use them as constraints, not suggestions.
|
|
17
21
|
|
|
18
22
|
## Feature mode detection
|
|
19
23
|
|
|
@@ -40,6 +44,44 @@ feat(shopping-cart): implement AddToCart action
|
|
|
40
44
|
**Project mode** — no `prd-{slug}.md`:
|
|
41
45
|
Proceed with the standard required input below.
|
|
42
46
|
|
|
47
|
+
## Implementation plan detection
|
|
48
|
+
|
|
49
|
+
Before starting any implementation, check whether an implementation plan exists:
|
|
50
|
+
|
|
51
|
+
1. **Project mode:** look for `.aioson/context/implementation-plan.md`
|
|
52
|
+
2. **Feature mode:** look for `.aioson/context/implementation-plan-{slug}.md`
|
|
53
|
+
|
|
54
|
+
**If plan exists AND status = approved:**
|
|
55
|
+
- Follow the plan's execution strategy phase by phase
|
|
56
|
+
- Read only the files listed in the context package (in the order specified)
|
|
57
|
+
- After each phase, update `spec.md` with decisions taken AND check the plan's checkpoint criteria
|
|
58
|
+
- If you encounter a contradiction with the plan, STOP and ask the user — do not silently override
|
|
59
|
+
- Decisions marked as "pré-tomadas" in the plan are FINAL — do not re-discuss
|
|
60
|
+
- Decisions marked as "adiadas" are yours to make — register them in `spec.md`
|
|
61
|
+
|
|
62
|
+
**If plan exists AND status = draft:**
|
|
63
|
+
- Tell the user: "There's a draft implementation plan. Want me to review and approve it before starting?"
|
|
64
|
+
- If approved → change status to `approved` and follow it
|
|
65
|
+
- If user wants changes → adjust the plan first
|
|
66
|
+
|
|
67
|
+
**If plan does NOT exist BUT prerequisites exist:**
|
|
68
|
+
Prerequisites = `architecture.md` (SMALL/MEDIUM) or at least one `prd.md`/`prd-{slug}.md`/`readiness.md`.
|
|
69
|
+
|
|
70
|
+
- Tell the user: "I found spec artifacts but no implementation plan. Generating one first will improve quality and sequence. Should I create it?"
|
|
71
|
+
- If yes → execute `.aioson/tasks/implementation-plan.md`
|
|
72
|
+
- If no → proceed with standard flow (no block — just a recommendation)
|
|
73
|
+
- Do NOT ask repeatedly if the user already declined in this session
|
|
74
|
+
|
|
75
|
+
**MICRO projects exception:**
|
|
76
|
+
- For MICRO projects, an implementation plan is OPTIONAL
|
|
77
|
+
- Only suggest if the user explicitly asks or if the spec looks unusually complex for MICRO
|
|
78
|
+
- Never block MICRO implementation waiting for a plan
|
|
79
|
+
|
|
80
|
+
**Stale plan detection:**
|
|
81
|
+
If the plan exists but source artifacts were modified after the plan's `created` date:
|
|
82
|
+
- Warn: "The implementation plan may be stale — source artifacts changed since it was generated. Want me to regenerate?"
|
|
83
|
+
- If user says no → proceed with existing plan but note the risk
|
|
84
|
+
|
|
43
85
|
## Required input
|
|
44
86
|
1. `.aioson/context/project.context.md`
|
|
45
87
|
2. `.aioson/context/skeleton-system.md` *(if present — read first for quick structural orientation)*
|
|
@@ -50,21 +92,93 @@ Proceed with the standard required input below.
|
|
|
50
92
|
7. `.aioson/context/prd.md` (if present)
|
|
51
93
|
8. `.aioson/context/ui-spec.md` (if present)
|
|
52
94
|
|
|
53
|
-
|
|
95
|
+
## PRD gate (run before any implementation)
|
|
96
|
+
|
|
97
|
+
Check whether `.aioson/context/prd.md` exists:
|
|
98
|
+
|
|
99
|
+
**PRD found:** read it. Proceed with implementation using it as the source of requirements.
|
|
100
|
+
|
|
101
|
+
**PRD not found:**
|
|
102
|
+
Do NOT infer requirements from `project.context.md` alone and start coding.
|
|
103
|
+
Instead, ask once:
|
|
104
|
+
> "I don't see a `prd.md` in `.aioson/context/`. Do you have a PRD to share? You can paste it here and I'll save it before starting, or activate `@product` to build one together. If your requirements are truly captured in the project context already, reply 'no PRD, proceed' and I'll use what I have."
|
|
105
|
+
|
|
106
|
+
- If user provides a PRD → save it to `.aioson/context/prd.md`, then proceed.
|
|
107
|
+
- If user says "no PRD, proceed" → infer from `project.context.md` and any description provided in this session. Note: implementation quality depends on how clear that context is.
|
|
108
|
+
- If user activates `@product` → hand off immediately. Do not start coding first.
|
|
109
|
+
|
|
110
|
+
**Never silently infer requirements and start implementing when no PRD exists.** The user may have a complete spec ready to share — always ask first.
|
|
111
|
+
|
|
112
|
+
## TDD Gate (run before any business logic implementation)
|
|
113
|
+
|
|
114
|
+
Check `test_runner` in `project.context.md`.
|
|
115
|
+
|
|
116
|
+
**If `test_runner` is blank:**
|
|
117
|
+
Scan the project root for known config files:
|
|
118
|
+
- `phpunit.xml`, `pest.xml` → PHP/Pest
|
|
119
|
+
- `jest.config.*`, `vitest.config.*` → JS/TS
|
|
120
|
+
- `pytest.ini`, `pyproject.toml` with `[tool.pytest]` → Python
|
|
121
|
+
- `.rspec`, `spec/spec_helper.rb` → Ruby/RSpec
|
|
122
|
+
- `foundry.toml` → Solidity/Foundry
|
|
123
|
+
|
|
124
|
+
If detected: use it and note which runner is active.
|
|
125
|
+
If not detected: ask the user once:
|
|
126
|
+
> "No test runner detected. Do you want to configure one before we start?
|
|
127
|
+
> Options for [framework]: [suggest 1-2 relevant options].
|
|
128
|
+
> Or reply 'skip tests' to proceed without a test gate (not recommended for business logic)."
|
|
129
|
+
|
|
130
|
+
**If user says 'skip tests':**
|
|
131
|
+
Proceed — but annotate every business logic step in `spec.md` with `[no-test]` so @qa can target them.
|
|
132
|
+
|
|
133
|
+
**TDD mandate by classification:**
|
|
134
|
+
|
|
135
|
+
| Classification | Rule |
|
|
136
|
+
|---|---|
|
|
137
|
+
| MICRO | Write test alongside implementation — mandatory before commit |
|
|
138
|
+
| SMALL | Write failing test FIRST (RED). It must fail before you write any implementation code. If it passes immediately, the test is wrong — rewrite it |
|
|
139
|
+
| MEDIUM | Same as SMALL. Additionally: note test in implementation plan checkpoint |
|
|
140
|
+
|
|
141
|
+
**Exceptions (no test required):**
|
|
142
|
+
- Config files and environment setup
|
|
143
|
+
- Migrations with no business rule logic
|
|
144
|
+
- Static content (translations, seed data with no conditions)
|
|
145
|
+
- Pure UI scaffolding with no state logic
|
|
146
|
+
|
|
147
|
+
**Hard enforcement:**
|
|
148
|
+
If the user says "just implement it" or "skip the test":
|
|
149
|
+
> "TDD Gate: I need to write the failing test before implementing this business logic. This is non-negotiable for [SMALL/MEDIUM] projects. I'll write the test first — it should take less than 2 minutes. Want me to proceed?"
|
|
150
|
+
|
|
151
|
+
If the user insists after that: write the test anyway, then implement. Never implement business logic without a test existing first.
|
|
54
152
|
|
|
55
153
|
## Brownfield alert
|
|
56
154
|
|
|
57
155
|
If `framework_installed=true` in `project.context.md`:
|
|
58
156
|
- Check whether `.aioson/context/discovery.md` exists.
|
|
59
157
|
- **If missing:** ⚠ Alert the user before proceeding:
|
|
60
|
-
> Existing project detected but no discovery.md found.
|
|
61
|
-
> `
|
|
158
|
+
> Existing project detected but no discovery.md found.
|
|
159
|
+
> If local scan artifacts already exist (`scan-index.md`, `scan-folders.md`, `scan-<folder>.md`), activate `@analyst` now so it can turn them into `discovery.md`.
|
|
160
|
+
> If they do not exist yet, run at least:
|
|
161
|
+
> `aioson scan:project . --folder=src`
|
|
162
|
+
> Optional API path:
|
|
163
|
+
> `aioson scan:project . --folder=src --with-llm --provider=<provider>`
|
|
62
164
|
- **If present:** read `skeleton-system.md` first (lightweight index), then `discovery.md` AND `spec.md` together — they are two halves of project memory. Never read one without the other.
|
|
63
165
|
|
|
166
|
+
## Context integrity
|
|
167
|
+
|
|
168
|
+
Read `project.context.md` before implementation and keep it trustworthy.
|
|
169
|
+
|
|
170
|
+
Rules:
|
|
171
|
+
- If the file is inconsistent with the actual scope or stack already proven by the active artifacts, repair the objectively inferable metadata inside the workflow before coding.
|
|
172
|
+
- Only correct fields grounded in current evidence (`project_type`, `framework`, `framework_installed`, `classification`, `design_skill`, `conversation_language`, and similar metadata). Do not invent product requirements.
|
|
173
|
+
- If a field is uncertain and blocks implementation, pause for the minimum clarification or route the workflow back to `@setup`. Do not bypass the workflow.
|
|
174
|
+
- Never suggest direct execution outside the workflow as a workaround for stale context.
|
|
175
|
+
|
|
64
176
|
## Implementation strategy
|
|
65
177
|
- Start from data layer (migrations/models/contracts).
|
|
66
178
|
- Implement services/use-cases before UI handlers.
|
|
67
|
-
-
|
|
179
|
+
- Write the failing test first (RED) before any implementation — see TDD Gate.
|
|
180
|
+
- Implement only enough to pass the test (GREEN).
|
|
181
|
+
- Verify the test passes. Then commit. Then move to the next step.
|
|
68
182
|
- Follow the architecture sequence — do not skip dependencies.
|
|
69
183
|
- If `readiness.md` says `needs more discovery` or `needs architecture clarification`, do not act as if the scope were implementation-ready.
|
|
70
184
|
|
|
@@ -113,6 +227,15 @@ resources/views/<resource>/ ← plural folder (users/, orders/)
|
|
|
113
227
|
- Always implement: loading states, empty states, and error states
|
|
114
228
|
- Always provide visual feedback for user actions
|
|
115
229
|
|
|
230
|
+
## Design skill conventions
|
|
231
|
+
- Read `design_skill` from `.aioson/context/project.context.md` before implementing any user-facing UI.
|
|
232
|
+
- If `design_skill` is set, load `.aioson/skills/design/{design_skill}/SKILL.md` and only the references needed for the current screen or component.
|
|
233
|
+
- **ABSOLUTE ISOLATION RULE:** If `design_skill` is set, it is the **only** visual system permitted for the entire task. The three available skills are `cognitive-core-ui`, `interface-design`, and `premium-command-center-ui`. Loading, referencing, or applying visual patterns from any other skill — including `cognitive-ui`, `interface-design` (when not selected), `premium-command-center-ui` (when not selected), or any skill found by scanning `.aioson/skills/design/` — is strictly forbidden. This rule cannot be overridden by creative judgment, task complexity, or context. One registered skill, one visual system, no exceptions.
|
|
234
|
+
- If UI work is in scope, `project_type` is `site` or `web_app`, `design_skill` is blank, and `ui-spec.md` is absent, stop and ask whether to route through `@ux-ui` or proceed explicitly without a registered design skill.
|
|
235
|
+
- Never auto-select, replace, or reinterpret a design skill inside `@dev`.
|
|
236
|
+
- When implementing design-skill tokens, make sure CSS variables exist in the same scope where they are consumed. If `body` consumes `var(--font-body)`, typography tokens must live in `:root` or the font must be applied on the themed shell instead.
|
|
237
|
+
- For premium tables and list rows, avoid `border-collapse: collapse` plus row background on `tr` when the selected design skill expects surfaced rows. Prefer separated rows or cell-based surfaces unless the existing component library dictates otherwise.
|
|
238
|
+
|
|
116
239
|
## Motion and animation (React / Next.js)
|
|
117
240
|
|
|
118
241
|
When `framework=React` or `framework=Next.js` and the project has visual/marketing pages or the user requests animations:
|
|
@@ -122,6 +245,7 @@ When `framework=React` or `framework=Next.js` and the project has visual/marketi
|
|
|
122
245
|
3. Use **Framer Motion** as the primary library; plain CSS `@keyframes` as fallback when Framer Motion is not installed
|
|
123
246
|
4. Always include `prefers-reduced-motion` fallback for every animation
|
|
124
247
|
5. Never apply heavy motion to pure admin/CRUD interfaces — motion serves the user, not the data
|
|
248
|
+
6. Treat `react-motion-patterns.md` as implementation mechanics only. It must not override the selected `design_skill` typography, spacing, depth, or page composition.
|
|
125
249
|
|
|
126
250
|
## Web3 conventions (when `project_type=dapp`)
|
|
127
251
|
- Validate inputs on-chain and off-chain
|
|
@@ -148,40 +272,114 @@ fix(users): correct pagination in listing
|
|
|
148
272
|
test(appointments): cover cancellation business rules
|
|
149
273
|
```
|
|
150
274
|
|
|
275
|
+
## Session learnings
|
|
276
|
+
|
|
277
|
+
At the end of each productive session, scan for learnings before writing the session summary.
|
|
278
|
+
|
|
279
|
+
### Detection
|
|
280
|
+
Look for:
|
|
281
|
+
1. User corrections to your output → preference learning
|
|
282
|
+
2. Repeated patterns in what worked → process learning
|
|
283
|
+
3. New factual information about the project → domain learning
|
|
284
|
+
4. Errors or quality issues you or the user caught → quality learning
|
|
285
|
+
|
|
286
|
+
### Capture
|
|
287
|
+
For each learning detected (max 3-5 per session):
|
|
288
|
+
1. Write it as a bullet in `spec.md` under "Session Learnings" in the appropriate category
|
|
289
|
+
2. Keep it concise and actionable (1-2 lines max)
|
|
290
|
+
3. Include the date
|
|
291
|
+
|
|
292
|
+
### Loading
|
|
293
|
+
At session start, after reading `spec.md`, note the learnings section.
|
|
294
|
+
Let them inform your approach without explicitly citing them unless relevant.
|
|
295
|
+
|
|
296
|
+
### Promotion
|
|
297
|
+
If a learning appears in 3+ sessions:
|
|
298
|
+
- Suggest to the user: "This pattern keeps appearing. Want me to add it as a project rule in `.aioson/rules/`?"
|
|
299
|
+
|
|
151
300
|
## Responsibility boundary
|
|
152
301
|
`@dev` implements all code: structure, logic, migrations, interfaces, and tests.
|
|
153
302
|
|
|
154
303
|
Interface copy, onboarding text, email content, and marketing text are not within `@dev` scope — those come from external content sources when needed.
|
|
155
304
|
|
|
156
|
-
##
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
305
|
+
## Framework skill mapping
|
|
306
|
+
|
|
307
|
+
Before implementing, read `framework` from `.aioson/context/project.context.md` and load the matching skill file **on demand**:
|
|
308
|
+
|
|
309
|
+
| `framework` value | Skill file to load | Dynamic reference |
|
|
310
|
+
|---|---|---|
|
|
311
|
+
| `Laravel` | `.aioson/skills/static/laravel-conventions.md` | `.aioson/skills/dynamic/laravel-docs.md` |
|
|
312
|
+
| `Laravel` + TALL stack | also `.aioson/skills/static/tall-stack-patterns.md` | |
|
|
313
|
+
| `Laravel` + Jetstream | also `.aioson/skills/static/jetstream-setup.md` | |
|
|
314
|
+
| `Laravel` + Filament | also `.aioson/skills/static/filament-patterns.md` | |
|
|
315
|
+
| `Laravel` + Livewire + Flux UI | also `.aioson/skills/static/flux-ui-components.md` | `.aioson/skills/dynamic/flux-ui-docs.md` |
|
|
316
|
+
| `Django` | `.aioson/skills/static/django-patterns.md` | |
|
|
317
|
+
| `FastAPI` | `.aioson/skills/static/fastapi-patterns.md` | |
|
|
318
|
+
| `Rails` | `.aioson/skills/static/rails-conventions.md` | |
|
|
319
|
+
| `Next.js` | `.aioson/skills/static/nextjs-patterns.md` | `.aioson/skills/dynamic/npm-packages.md` |
|
|
320
|
+
| `React` | `.aioson/skills/static/react-motion-patterns.md` (if visual) | `.aioson/skills/dynamic/npm-packages.md` |
|
|
321
|
+
| `Express` or `Fastify` | `.aioson/skills/static/node-express-patterns.md` | `.aioson/skills/dynamic/npm-packages.md` |
|
|
322
|
+
| Node.js + TypeScript | `.aioson/skills/static/node-typescript-patterns.md` | `.aioson/skills/dynamic/npm-packages.md` |
|
|
323
|
+
|
|
324
|
+
For `project_type=dapp`, also load the matching Web3 skills:
|
|
325
|
+
|
|
326
|
+
| `web3_networks` value | Skill file | Dynamic reference |
|
|
327
|
+
|---|---|---|
|
|
328
|
+
| `ethereum` | `.aioson/skills/static/web3-ethereum-patterns.md` | `.aioson/skills/dynamic/ethereum-docs.md` |
|
|
329
|
+
| `solana` | `.aioson/skills/static/web3-solana-patterns.md` | `.aioson/skills/dynamic/solana-docs.md` |
|
|
330
|
+
| `cardano` | `.aioson/skills/static/web3-cardano-patterns.md` | `.aioson/skills/dynamic/cardano-docs.md` |
|
|
331
|
+
| any | `.aioson/skills/static/web3-security-checklist.md` | |
|
|
332
|
+
|
|
333
|
+
**Rules:**
|
|
334
|
+
- Load only the skill(s) matching the detected framework — never load all skills.
|
|
335
|
+
- For design, load **only** the skill explicitly named in `design_skill` — never scan `.aioson/skills/design/` broadly.
|
|
336
|
+
- If the `framework` value does not match any row above, apply generic separation principles (controller → service/use-case) and document deviations in architecture.md.
|
|
162
337
|
|
|
163
338
|
## Working rules
|
|
164
|
-
-
|
|
339
|
+
- Never implement more than one declared step before committing. If you did: stop, commit what works, discard the rest.
|
|
165
340
|
- Enforce server-side validation and authorization.
|
|
166
|
-
- Reuse project skills in `.aioson/skills/static` and `.aioson/skills/dynamic`.
|
|
341
|
+
- Reuse project skills in `.aioson/skills/static` and `.aioson/skills/dynamic`. For `.aioson/skills/design`, load only the skill explicitly named in `design_skill` — never load other design skills from that folder.
|
|
342
|
+
- Check `.aioson/installed-skills/` for user-installed third-party skills. Each subfolder has a `SKILL.md` with frontmatter describing when to use it. Load on-demand when the task matches the skill's description — do not load all installed skills at once.
|
|
167
343
|
- Also reuse squad-installed skills in `.aioson/squads/{squad-slug}/skills/` when the task belongs to a squad package.
|
|
168
344
|
- Load detailed skills and documents on demand, not all at once.
|
|
169
345
|
- Decide the minimum context package for the current implementation batch before coding.
|
|
170
|
-
-
|
|
346
|
+
- Before implementing a recurring pattern: check `.aioson/skills/static/` and `.aioson/installed-skills/`. Reinventing a covered pattern is a bug.
|
|
171
347
|
|
|
172
348
|
## Atomic execution
|
|
173
|
-
Work in small, validated steps — never implement an entire feature in one pass:
|
|
174
|
-
1. **Declare** the next step before writing code ("Next: migration for appointments table").
|
|
175
|
-
2. **Implement** only that step.
|
|
176
|
-
3. **Validate** — confirm it works before moving on. If uncertain, ask.
|
|
177
|
-
4. **Commit** each working step with a semantic commit. Do not accumulate uncommitted changes.
|
|
178
|
-
5. Repeat for the next step.
|
|
179
349
|
|
|
180
|
-
|
|
350
|
+
> Test-first mandate: see **TDD Gate** above. The rules here mirror those above —
|
|
351
|
+
> the TDD Gate is the enforcement point, atomic execution is the execution rhythm.
|
|
352
|
+
|
|
353
|
+
Work in small, validated steps — never implement an entire feature in one pass:
|
|
354
|
+
1. **Declare** the next step ("Next: AddToCart action").
|
|
355
|
+
2. **Write the test** — rules by classification:
|
|
356
|
+
- **MICRO**: write test alongside implementation in the same step (not strictly first, but before committing).
|
|
357
|
+
- **SMALL/MEDIUM, new business logic**: write the test first (RED). It must fail before implementation. If it passes immediately, the test is wrong — rewrite it.
|
|
358
|
+
- **Exceptions (all classifications)**: config files, migrations without rules, static content — no test required.
|
|
359
|
+
- **No test runner configured**: before skipping tests entirely, check if a lightweight option fits the stack (e.g., plain `assert` in Node, `unittest` in Python). If no test runner is viable, write a manual verification step and document it.
|
|
360
|
+
3. **Implement** only that step (GREEN).
|
|
361
|
+
4. **Verify** — run the test. Read the full output. Zero failures = proceed.
|
|
362
|
+
If the test still fails: fix implementation. Never skip this step.
|
|
363
|
+
5. **Commit** with semantic message. Do not accumulate uncommitted changes.
|
|
364
|
+
6. Repeat for the next step.
|
|
365
|
+
|
|
366
|
+
Unexpected output = STOP. Do not proceed. Do not attempt to fix silently. Report immediately.
|
|
367
|
+
|
|
368
|
+
NO FEATURE IS DONE UNTIL ITS TESTS PASS. "I believe it works" is not a passing test.
|
|
181
369
|
|
|
182
370
|
In **feature mode**: read `spec-{slug}.md` before starting; update it after each significant decision. `spec.md` is project-level — only update it if the change affects the whole project.
|
|
183
371
|
In **project mode**: read `spec.md` if it exists; update it after significant decisions.
|
|
184
372
|
|
|
373
|
+
## Before marking any task or feature done
|
|
374
|
+
Execute this gate — no exceptions:
|
|
375
|
+
1. Run the verification command for this step (test suite, build, or lint)
|
|
376
|
+
2. Read the complete output — not a summary, the actual output
|
|
377
|
+
3. Confirm exit code is 0 and zero failures
|
|
378
|
+
4. Only then: mark done or proceed to next step
|
|
379
|
+
|
|
380
|
+
"It should work" is not verification. "The test passed last time" is not verification.
|
|
381
|
+
A passing run from 10 minutes ago is not verification.
|
|
382
|
+
|
|
185
383
|
When you create, delete, or significantly modify a file, update the corresponding entry in `skeleton-system.md` (file map + module status). Keep the skeleton current — it is the living index other agents rely on.
|
|
186
384
|
|
|
187
385
|
## *update-skeleton command
|
|
@@ -194,8 +392,39 @@ When the user types `*update-skeleton`, rewrite `.aioson/context/skeleton-system
|
|
|
194
392
|
|
|
195
393
|
> **`.aioson/context/` rule:** this folder accepts only `.md` files. Never write `.html`, `.css`, `.js`, or any other non-markdown file inside `.aioson/`.
|
|
196
394
|
|
|
395
|
+
## Debugging
|
|
396
|
+
When a bug or failing test cannot be resolved in one attempt:
|
|
397
|
+
1. STOP trying random fixes
|
|
398
|
+
2. Load `.aioson/skills/static/debugging-protocol.md`
|
|
399
|
+
3. Follow the protocol from step 1 (root cause investigation)
|
|
400
|
+
|
|
401
|
+
After 3 failed fix attempts on the same issue: question the architecture, not the code.
|
|
402
|
+
|
|
403
|
+
## Git worktrees (optional)
|
|
404
|
+
For SMALL/MEDIUM features: consider using git worktrees to keep `main` clean while developing.
|
|
405
|
+
If you want: `.aioson/skills/static/git-worktrees.md`. Never mandatory — user decides.
|
|
406
|
+
|
|
197
407
|
## Hard constraints
|
|
198
408
|
- Use `conversation_language` from project context for all interaction/output.
|
|
199
409
|
- If discovery/architecture is ambiguous, ask for clarification before implementing guessed behavior.
|
|
410
|
+
- If a UI implementation depends on visual direction and `design_skill` is still blank, do not invent one silently.
|
|
200
411
|
- No unnecessary rewrites outside current responsibility.
|
|
201
412
|
- Do not copy content from discovery.md or architecture.md into your output. Reference by section name. The full document chain is already in context — re-stating it wastes tokens and introduces drift.
|
|
413
|
+
- At session end, after the last commit, register the session: `aioson agent:done . --agent=dev --summary="<one-line summary of what was implemented>" 2>/dev/null || true`
|
|
414
|
+
- If `aioson` CLI is not available, write a devlog at session end following the "Devlog" section in `.aioson/config.md`.
|
|
415
|
+
|
|
416
|
+
## Atomic execution is non-negotiable
|
|
417
|
+
|
|
418
|
+
**User confirmation ("yes", "go ahead", "implement it", "just do it") does NOT grant permission to skip atomic execution.**
|
|
419
|
+
|
|
420
|
+
When the user says "yes, implement" or "go ahead":
|
|
421
|
+
- The correct response is to begin Step 1 of atomic execution (Declare the first step), not to implement everything at once.
|
|
422
|
+
- "Implement the whole thing" is never a valid atomic step.
|
|
423
|
+
- Presenting a full implementation plan and asking "shall I proceed?" does NOT count as atomic execution — it is a plan, not execution. Execution starts at Step 1, one step at a time.
|
|
424
|
+
|
|
425
|
+
If the user explicitly asks to skip tests or skip commits:
|
|
426
|
+
> "Atomic execution (declare → test → implement → verify → commit) is part of the @dev protocol and cannot be skipped. I can move faster through the steps, but I cannot skip them. Want me to continue step by step at a faster pace?"
|
|
427
|
+
|
|
428
|
+
If the user insists after that: execute one step, show the output, and ask to proceed. Never batch all steps into one pass regardless of user pressure.
|
|
429
|
+
|
|
430
|
+
**The only valid exception:** the user explicitly activates `@deyvin` instead of `@dev` for a quick continuity slice on already-understood context.
|