@jaimevalasek/aioson 1.3.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 +456 -0
- package/CODE_OF_CONDUCT.md +12 -0
- package/CONTRIBUTING.md +13 -0
- package/LICENSE +21 -0
- package/README.md +254 -0
- package/bin/aioson.js +4 -0
- package/docs/en/cli-reference.md +398 -0
- package/docs/en/i18n.md +52 -0
- package/docs/en/json-schemas.md +41 -0
- package/docs/en/mcp.md +56 -0
- package/docs/en/parallel.md +82 -0
- package/docs/en/qa-browser.md +339 -0
- package/docs/en/release-flow.md +22 -0
- package/docs/en/release-notes-template.md +41 -0
- package/docs/en/release.md +28 -0
- package/docs/en/schemas/agent-prompt.schema.json +17 -0
- package/docs/en/schemas/agents.schema.json +32 -0
- package/docs/en/schemas/context-validate.schema.json +36 -0
- package/docs/en/schemas/doctor.schema.json +89 -0
- package/docs/en/schemas/error.schema.json +24 -0
- package/docs/en/schemas/i18n-add.schema.json +15 -0
- package/docs/en/schemas/index.json +116 -0
- package/docs/en/schemas/info.schema.json +39 -0
- package/docs/en/schemas/init.schema.json +48 -0
- package/docs/en/schemas/install.schema.json +60 -0
- package/docs/en/schemas/locale-apply.schema.json +30 -0
- package/docs/en/schemas/mcp-doctor.schema.json +95 -0
- package/docs/en/schemas/mcp-init.schema.json +122 -0
- package/docs/en/schemas/package-test.schema.json +24 -0
- package/docs/en/schemas/parallel-assign.schema.json +57 -0
- package/docs/en/schemas/parallel-doctor.schema.json +86 -0
- package/docs/en/schemas/parallel-init.schema.json +53 -0
- package/docs/en/schemas/parallel-status.schema.json +94 -0
- package/docs/en/schemas/setup-context.schema.json +39 -0
- package/docs/en/schemas/smoke.schema.json +23 -0
- package/docs/en/schemas/update.schema.json +48 -0
- package/docs/en/schemas/workflow-plan.schema.json +30 -0
- package/docs/en/web3.md +54 -0
- package/docs/pt/README.md +46 -0
- package/docs/pt/advisor-spec.md +335 -0
- package/docs/pt/agentes.md +453 -0
- package/docs/pt/cenarios.md +1230 -0
- package/docs/pt/clientes-ai.md +224 -0
- package/docs/pt/comandos-cli.md +511 -0
- package/docs/pt/genome-3.0-spec.md +296 -0
- package/docs/pt/guia-engineer.md +226 -0
- package/docs/pt/inicio-rapido.md +138 -0
- package/docs/pt/profiler-system.md +214 -0
- package/docs/pt/runtime-observability.md +72 -0
- package/docs/pt/squad-genoma.md +777 -0
- package/docs/pt/web3.md +797 -0
- package/docs/testing/genome-2.0-manual-regression.md +23 -0
- package/docs/testing/genome-2.0-matrix.md +36 -0
- package/docs/testing/genome-2.0-rollout.md +184 -0
- package/package.json +50 -0
- package/src/agents.js +56 -0
- package/src/cli.js +497 -0
- package/src/commands/agents.js +142 -0
- package/src/commands/cloud.js +1767 -0
- package/src/commands/config.js +90 -0
- package/src/commands/context-validate.js +91 -0
- package/src/commands/doctor.js +123 -0
- package/src/commands/genome-doctor.js +41 -0
- package/src/commands/genome-migrate.js +49 -0
- package/src/commands/i18n-add.js +56 -0
- package/src/commands/info.js +41 -0
- package/src/commands/init.js +75 -0
- package/src/commands/install.js +68 -0
- package/src/commands/locale-apply.js +51 -0
- package/src/commands/locale-diff.js +126 -0
- package/src/commands/mcp-doctor.js +406 -0
- package/src/commands/mcp-init.js +379 -0
- package/src/commands/package-e2e.js +273 -0
- package/src/commands/parallel-assign.js +403 -0
- package/src/commands/parallel-doctor.js +437 -0
- package/src/commands/parallel-init.js +249 -0
- package/src/commands/parallel-status.js +290 -0
- package/src/commands/qa-doctor.js +185 -0
- package/src/commands/qa-init.js +161 -0
- package/src/commands/qa-report.js +58 -0
- package/src/commands/qa-run.js +873 -0
- package/src/commands/qa-scan.js +337 -0
- package/src/commands/runtime.js +948 -0
- package/src/commands/scan-project.js +1107 -0
- package/src/commands/setup-context.js +650 -0
- package/src/commands/smoke.js +426 -0
- package/src/commands/squad-doctor.js +358 -0
- package/src/commands/squad-export.js +46 -0
- package/src/commands/squad-pipeline.js +97 -0
- package/src/commands/squad-repair-genomes.js +39 -0
- package/src/commands/squad-status.js +424 -0
- package/src/commands/squad-validate.js +230 -0
- package/src/commands/test-agents.js +194 -0
- package/src/commands/update.js +55 -0
- package/src/commands/workflow-next.js +594 -0
- package/src/commands/workflow-plan.js +108 -0
- package/src/constants.js +314 -0
- package/src/context-parse-reason.js +22 -0
- package/src/context-writer.js +150 -0
- package/src/context.js +217 -0
- package/src/detector.js +261 -0
- package/src/doctor.js +289 -0
- package/src/execution-gateway.js +461 -0
- package/src/genome-files.js +198 -0
- package/src/genome-format.js +442 -0
- package/src/genome-schema.js +215 -0
- package/src/genomes/bindings.js +281 -0
- package/src/genomes.js +467 -0
- package/src/i18n/index.js +103 -0
- package/src/i18n/messages/en.js +784 -0
- package/src/i18n/messages/es.js +718 -0
- package/src/i18n/messages/fr.js +725 -0
- package/src/i18n/messages/pt-BR.js +818 -0
- package/src/i18n/scaffold.js +64 -0
- package/src/installer.js +232 -0
- package/src/lib/genomes/compat.js +206 -0
- package/src/lib/genomes/migrate.js +90 -0
- package/src/lib/squads/genome-repair.js +49 -0
- package/src/locales.js +84 -0
- package/src/onboarding.js +305 -0
- package/src/parser.js +53 -0
- package/src/prompt-tool.js +20 -0
- package/src/qa-html-report.js +472 -0
- package/src/runtime-store.js +1527 -0
- package/src/squads/apply-genome.js +21 -0
- package/src/squads/genome-binding-service.js +154 -0
- package/src/updater.js +32 -0
- package/src/utils.js +46 -0
- package/src/version.js +50 -0
- package/template/.aioson/advisors/.gitkeep +1 -0
- package/template/.aioson/agents/analyst.md +225 -0
- package/template/.aioson/agents/architect.md +221 -0
- package/template/.aioson/agents/dev.md +201 -0
- package/template/.aioson/agents/discovery-design-doc.md +196 -0
- package/template/.aioson/agents/genoma.md +300 -0
- package/template/.aioson/agents/orchestrator.md +107 -0
- package/template/.aioson/agents/pm.md +89 -0
- package/template/.aioson/agents/product.md +361 -0
- package/template/.aioson/agents/profiler-enricher.md +266 -0
- package/template/.aioson/agents/profiler-forge.md +188 -0
- package/template/.aioson/agents/profiler-researcher.md +245 -0
- package/template/.aioson/agents/qa.md +344 -0
- package/template/.aioson/agents/setup.md +381 -0
- package/template/.aioson/agents/squad.md +837 -0
- package/template/.aioson/agents/ux-ui.md +416 -0
- package/template/.aioson/config.md +56 -0
- package/template/.aioson/context/.gitkeep +0 -0
- package/template/.aioson/context/parallel/.gitkeep +0 -0
- package/template/.aioson/context/spec.md.template +37 -0
- package/template/.aioson/genomas/.gitkeep +0 -0
- package/template/.aioson/locales/en/agents/analyst.md +214 -0
- package/template/.aioson/locales/en/agents/architect.md +210 -0
- package/template/.aioson/locales/en/agents/dev.md +187 -0
- package/template/.aioson/locales/en/agents/discovery-design-doc.md +27 -0
- package/template/.aioson/locales/en/agents/genoma.md +212 -0
- package/template/.aioson/locales/en/agents/orchestrator.md +105 -0
- package/template/.aioson/locales/en/agents/pm.md +77 -0
- package/template/.aioson/locales/en/agents/product.md +310 -0
- package/template/.aioson/locales/en/agents/profiler-enricher.md +5 -0
- package/template/.aioson/locales/en/agents/profiler-forge.md +5 -0
- package/template/.aioson/locales/en/agents/profiler-researcher.md +5 -0
- package/template/.aioson/locales/en/agents/qa.md +214 -0
- package/template/.aioson/locales/en/agents/setup.md +342 -0
- package/template/.aioson/locales/en/agents/squad.md +247 -0
- package/template/.aioson/locales/en/agents/ux-ui.md +320 -0
- package/template/.aioson/locales/es/agents/analyst.md +203 -0
- package/template/.aioson/locales/es/agents/architect.md +208 -0
- package/template/.aioson/locales/es/agents/dev.md +183 -0
- package/template/.aioson/locales/es/agents/discovery-design-doc.md +19 -0
- package/template/.aioson/locales/es/agents/genoma.md +102 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +108 -0
- package/template/.aioson/locales/es/agents/pm.md +81 -0
- package/template/.aioson/locales/es/agents/product.md +310 -0
- package/template/.aioson/locales/es/agents/profiler-enricher.md +5 -0
- package/template/.aioson/locales/es/agents/profiler-forge.md +5 -0
- package/template/.aioson/locales/es/agents/profiler-researcher.md +5 -0
- package/template/.aioson/locales/es/agents/qa.md +163 -0
- package/template/.aioson/locales/es/agents/setup.md +347 -0
- package/template/.aioson/locales/es/agents/squad.md +247 -0
- package/template/.aioson/locales/es/agents/ux-ui.md +201 -0
- package/template/.aioson/locales/fr/agents/analyst.md +203 -0
- package/template/.aioson/locales/fr/agents/architect.md +208 -0
- package/template/.aioson/locales/fr/agents/dev.md +183 -0
- package/template/.aioson/locales/fr/agents/discovery-design-doc.md +19 -0
- package/template/.aioson/locales/fr/agents/genoma.md +102 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +108 -0
- package/template/.aioson/locales/fr/agents/pm.md +81 -0
- package/template/.aioson/locales/fr/agents/product.md +310 -0
- package/template/.aioson/locales/fr/agents/profiler-enricher.md +5 -0
- package/template/.aioson/locales/fr/agents/profiler-forge.md +5 -0
- package/template/.aioson/locales/fr/agents/profiler-researcher.md +5 -0
- package/template/.aioson/locales/fr/agents/qa.md +163 -0
- package/template/.aioson/locales/fr/agents/setup.md +347 -0
- package/template/.aioson/locales/fr/agents/squad.md +247 -0
- package/template/.aioson/locales/fr/agents/ux-ui.md +201 -0
- package/template/.aioson/locales/pt-BR/agents/analyst.md +217 -0
- package/template/.aioson/locales/pt-BR/agents/architect.md +213 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +198 -0
- package/template/.aioson/locales/pt-BR/agents/discovery-design-doc.md +198 -0
- package/template/.aioson/locales/pt-BR/agents/genoma.md +297 -0
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +108 -0
- package/template/.aioson/locales/pt-BR/agents/pm.md +81 -0
- package/template/.aioson/locales/pt-BR/agents/product.md +316 -0
- package/template/.aioson/locales/pt-BR/agents/profiler-enricher.md +5 -0
- package/template/.aioson/locales/pt-BR/agents/profiler-forge.md +5 -0
- package/template/.aioson/locales/pt-BR/agents/profiler-researcher.md +5 -0
- package/template/.aioson/locales/pt-BR/agents/qa.md +217 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +371 -0
- package/template/.aioson/locales/pt-BR/agents/squad.md +772 -0
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +322 -0
- package/template/.aioson/mcp/servers.md +24 -0
- package/template/.aioson/profiler-reports/.gitkeep +1 -0
- package/template/.aioson/schemas/content-blueprint.schema.json +30 -0
- package/template/.aioson/schemas/genome-meta.schema.json +150 -0
- package/template/.aioson/schemas/genome.schema.json +115 -0
- package/template/.aioson/schemas/readiness.schema.json +27 -0
- package/template/.aioson/schemas/squad-blueprint.schema.json +172 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +276 -0
- package/template/.aioson/skills/dynamic/README.md +30 -0
- package/template/.aioson/skills/dynamic/cardano-docs.md +16 -0
- package/template/.aioson/skills/dynamic/ethereum-docs.md +17 -0
- package/template/.aioson/skills/dynamic/flux-ui-docs.md +13 -0
- package/template/.aioson/skills/dynamic/laravel-docs.md +41 -0
- package/template/.aioson/skills/dynamic/npm-packages.md +16 -0
- package/template/.aioson/skills/dynamic/solana-docs.md +16 -0
- package/template/.aioson/skills/references/premium-command-center-ui/master-application-prompt.md +79 -0
- package/template/.aioson/skills/references/premium-command-center-ui/operational-ux-playbook.md +253 -0
- package/template/.aioson/skills/references/premium-command-center-ui/quality-validation-checklist.md +82 -0
- package/template/.aioson/skills/references/premium-command-center-ui/visual-system-and-component-patterns.md +270 -0
- package/template/.aioson/skills/static/django-patterns.md +342 -0
- package/template/.aioson/skills/static/fastapi-patterns.md +344 -0
- package/template/.aioson/skills/static/filament-patterns.md +267 -0
- package/template/.aioson/skills/static/flux-ui-components.md +262 -0
- package/template/.aioson/skills/static/git-conventions.md +227 -0
- package/template/.aioson/skills/static/interface-design.md +372 -0
- package/template/.aioson/skills/static/jetstream-setup.md +200 -0
- package/template/.aioson/skills/static/laravel-conventions.md +491 -0
- package/template/.aioson/skills/static/nextjs-patterns.md +321 -0
- package/template/.aioson/skills/static/node-express-patterns.md +317 -0
- package/template/.aioson/skills/static/node-typescript-patterns.md +282 -0
- package/template/.aioson/skills/static/premium-command-center-ui.md +190 -0
- package/template/.aioson/skills/static/rails-conventions.md +307 -0
- package/template/.aioson/skills/static/react-motion-patterns.md +577 -0
- package/template/.aioson/skills/static/static-html-patterns.md +1935 -0
- package/template/.aioson/skills/static/tall-stack-patterns.md +286 -0
- package/template/.aioson/skills/static/ui-ux-modern.md +75 -0
- package/template/.aioson/skills/static/web3-cardano-patterns.md +337 -0
- package/template/.aioson/skills/static/web3-ethereum-patterns.md +310 -0
- package/template/.aioson/skills/static/web3-security-checklist.md +284 -0
- package/template/.aioson/skills/static/web3-solana-patterns.md +324 -0
- package/template/.aioson/squads/.artisan/.gitkeep +0 -0
- package/template/.aioson/squads/.gitkeep +0 -0
- package/template/.aioson/squads/memory.md +5 -0
- package/template/.aioson/tasks/squad-analyze.md +83 -0
- package/template/.aioson/tasks/squad-create.md +99 -0
- package/template/.aioson/tasks/squad-design.md +100 -0
- package/template/.aioson/tasks/squad-export.md +20 -0
- package/template/.aioson/tasks/squad-extend.md +68 -0
- package/template/.aioson/tasks/squad-pipeline.md +122 -0
- package/template/.aioson/tasks/squad-repair.md +85 -0
- package/template/.aioson/tasks/squad-validate.md +58 -0
- package/template/.aioson/templates/squads/content-basic/template.json +21 -0
- package/template/.aioson/templates/squads/media-channel/template.json +24 -0
- package/template/.aioson/templates/squads/research-analysis/template.json +22 -0
- package/template/.aioson/templates/squads/software-delivery/template.json +21 -0
- package/template/.claude/commands/aioson/analyst.md +5 -0
- package/template/.claude/commands/aioson/architect.md +5 -0
- package/template/.claude/commands/aioson/dev.md +5 -0
- package/template/.claude/commands/aioson/orchestrator.md +5 -0
- package/template/.claude/commands/aioson/pm.md +5 -0
- package/template/.claude/commands/aioson/qa.md +5 -0
- package/template/.claude/commands/aioson/setup.md +5 -0
- package/template/.claude/commands/aioson/ux-ui.md +5 -0
- package/template/.gemini/GEMINI.md +10 -0
- package/template/.gemini/commands/aios-analyst.toml +4 -0
- package/template/.gemini/commands/aios-architect.toml +7 -0
- package/template/.gemini/commands/aios-dev.toml +8 -0
- package/template/.gemini/commands/aios-discovery-design-doc.toml +4 -0
- package/template/.gemini/commands/aios-orchestrator.toml +8 -0
- package/template/.gemini/commands/aios-pm.toml +8 -0
- package/template/.gemini/commands/aios-product.toml +4 -0
- package/template/.gemini/commands/aios-qa.toml +6 -0
- package/template/.gemini/commands/aios-setup.toml +3 -0
- package/template/.gemini/commands/aios-ux-ui.toml +8 -0
- package/template/AGENTS.md +67 -0
- package/template/CLAUDE.md +31 -0
- package/template/OPENCODE.md +24 -0
- package/template/aioson-models.json +40 -0
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
# Agent @setup
|
|
2
|
+
|
|
3
|
+
## Mission
|
|
4
|
+
Collect project information and generate `.aioson/context/project.context.md` with complete, parseable YAML frontmatter.
|
|
5
|
+
|
|
6
|
+
> ⚡ **ACTIVATED** — You are now operating as @setup. Execute the instructions in this file immediately, starting with Language detection.
|
|
7
|
+
|
|
8
|
+
## Language detection
|
|
9
|
+
Before any other action, detect the language of the user's first message:
|
|
10
|
+
- Portuguese → check if `.aioson/locales/pt-BR/agents/setup.md` exists → if yes, read it and follow its instructions for the entire session instead of this file
|
|
11
|
+
- Spanish → check `.aioson/locales/es/agents/setup.md` → same
|
|
12
|
+
- French → check `.aioson/locales/fr/agents/setup.md` → same
|
|
13
|
+
- English or locale file not found → continue here
|
|
14
|
+
|
|
15
|
+
## Entry check
|
|
16
|
+
|
|
17
|
+
Before running the full setup, check whether `.aioson/context/project.context.md` already exists:
|
|
18
|
+
|
|
19
|
+
**Returning project (file exists):**
|
|
20
|
+
Read the file. Greet the user with a one-line summary of the project name, stack, and classification.
|
|
21
|
+
> "I see this project is already configured: [project_name] — [framework] — [classification]. What would you like to do?
|
|
22
|
+
> → **Continue** — go straight to the next agent.
|
|
23
|
+
> → **Update context** — re-run setup to change any values.
|
|
24
|
+
> → **Scan codebase** — run `aioson scan:project` to analyse existing code before proceeding."
|
|
25
|
+
|
|
26
|
+
Do NOT re-run the full onboarding unless the user explicitly requests it.
|
|
27
|
+
|
|
28
|
+
**First run (file does not exist):**
|
|
29
|
+
Proceed with detection and full onboarding below.
|
|
30
|
+
|
|
31
|
+
## Mandatory sequence
|
|
32
|
+
1. **Language detection** (above) — redirect to locale file if available.
|
|
33
|
+
2. **Entry check** (above) — return summary if project.context.md exists; full flow if not.
|
|
34
|
+
3. Detect framework in the current directory.
|
|
35
|
+
4. Confirm detection with the user before proceeding.
|
|
36
|
+
5. Run profile onboarding (description-first — see below).
|
|
37
|
+
6. Write context file and verify values are explicit (never implicit).
|
|
38
|
+
|
|
39
|
+
## Recommended routing after setup
|
|
40
|
+
|
|
41
|
+
`@setup` must not make `@discovery-design-doc` mandatory.
|
|
42
|
+
|
|
43
|
+
After setup, recommend the next step contextually:
|
|
44
|
+
|
|
45
|
+
- **Go straight to `@dev`** when the request is small, clear, and already has enough context
|
|
46
|
+
- **Recommend `@discovery-design-doc`** when the scope is ambiguous, the feature is large, rework risk is high, or there is still no good `design-doc.md`
|
|
47
|
+
- **Recommend `@analyst`** when the main problem is domain modeling, entities, and business rules
|
|
48
|
+
- **Recommend `@architect`** when discovery is already mature and the main need is technical direction
|
|
49
|
+
|
|
50
|
+
If the user asks for operational visualization or the local AIOSON dashboard:
|
|
51
|
+
|
|
52
|
+
- explain that the dashboard app is now installed separately from the CLI
|
|
53
|
+
- instruct them to open the installed dashboard app on their computer
|
|
54
|
+
- tell them to create or add a project there
|
|
55
|
+
- tell them to select the project folder that already contains `.aioson/`
|
|
56
|
+
|
|
57
|
+
Do not instruct the user to clone, install, run, or open the dashboard through `aioson dashboard:*` commands.
|
|
58
|
+
|
|
59
|
+
Briefly explain why that next step is recommended.
|
|
60
|
+
Treat this as navigation help, not as a mandatory gate.
|
|
61
|
+
|
|
62
|
+
## Detection rules
|
|
63
|
+
Check current workspace before asking installation questions:
|
|
64
|
+
- Laravel: `artisan` or `composer.json` with `laravel/framework`
|
|
65
|
+
- Rails: `config/application.rb` or `Gemfile` rails
|
|
66
|
+
- Django: `manage.py` or Python dependency
|
|
67
|
+
- Next.js/Nuxt: framework config or dependency
|
|
68
|
+
- Node.js: `package.json`
|
|
69
|
+
- Web3: Hardhat, Foundry, Truffle, Anchor, Solana Web3, Cardano signals
|
|
70
|
+
|
|
71
|
+
If framework is detected:
|
|
72
|
+
- Confirm with user.
|
|
73
|
+
- Skip installation bootstrap questions.
|
|
74
|
+
- Continue with stack configuration details.
|
|
75
|
+
|
|
76
|
+
If framework is not detected:
|
|
77
|
+
- Ask onboarding questions and wait for explicit answers.
|
|
78
|
+
- Do not finalize with guessed values.
|
|
79
|
+
- If the user describes a stack not in the list above (e.g., FastAPI, Go, Rust, SvelteKit, Phoenix, Spring Boot), record their description as the `framework` value. Do not force them into a predefined option.
|
|
80
|
+
|
|
81
|
+
## Profile onboarding
|
|
82
|
+
|
|
83
|
+
### Step 1 — Understand the project
|
|
84
|
+
Ask ONE open question. Do not show a form:
|
|
85
|
+
> "Describe the project in one or two sentences — what does it do and who is it for?"
|
|
86
|
+
|
|
87
|
+
Use the answer to infer `project_type`, `profile`, and a starter stack. Then go to Step 2.
|
|
88
|
+
|
|
89
|
+
**Infer project_type from description:**
|
|
90
|
+
| Signals | project_type |
|
|
91
|
+
|---|---|
|
|
92
|
+
| landing page, portfolio, blog, institutional site | `site` |
|
|
93
|
+
| REST API, GraphQL, microservice, backend-only service | `api` |
|
|
94
|
+
| app with user accounts, dashboard, SaaS, e-commerce | `web_app` |
|
|
95
|
+
| CLI tool, automation script, data pipeline, batch job | `script` |
|
|
96
|
+
| blockchain, smart contracts, DeFi, NFT, DAO | `dapp` |
|
|
97
|
+
|
|
98
|
+
**Infer profile from context:**
|
|
99
|
+
- Individual developer describing their own project → `developer`
|
|
100
|
+
- "we", "our team", "our company" → `team`
|
|
101
|
+
- Uncertain, non-technical description, or asking what to use → `beginner`
|
|
102
|
+
|
|
103
|
+
### Step 2 — Propose complete stack and confirm
|
|
104
|
+
After inferring project_type, propose a full stack in one message. Show everything at once and ask for a single confirmation:
|
|
105
|
+
|
|
106
|
+
> "Based on your description, here's my suggestion:
|
|
107
|
+
> - **Type:** web_app · **Profile:** developer · **Classification:** SMALL
|
|
108
|
+
> - **Backend:** Laravel 11 — [laravel.com/docs](https://laravel.com/docs)
|
|
109
|
+
> - **Frontend:** Vue 3 + Inertia
|
|
110
|
+
> - **Database:** MySQL
|
|
111
|
+
> - **Auth:** Breeze (login, register, password reset)
|
|
112
|
+
> - **UI/UX:** Tailwind CSS — [tailwindcss.com](https://tailwindcss.com)
|
|
113
|
+
> - **Services:** none for now
|
|
114
|
+
>
|
|
115
|
+
> Confirm (yes/ok) or tell me what to change."
|
|
116
|
+
|
|
117
|
+
Accept "yes", "ok", "correct", "confirm" as full confirmation — do not ask follow-up questions after confirmation.
|
|
118
|
+
If the user changes specific fields, update only those and re-confirm once.
|
|
119
|
+
|
|
120
|
+
**Defaults by project_type (skip irrelevant fields):**
|
|
121
|
+
- `site`: no backend, no database, no auth. Ask: hosting preference, CMS if any.
|
|
122
|
+
- `script`: runtime only (Node/Python/Go/etc), skip frontend/auth. Ask: database only if needed.
|
|
123
|
+
- `api`: backend + database + auth. Skip frontend and UI/UX.
|
|
124
|
+
- `web_app`: full stack — all fields.
|
|
125
|
+
- `dapp`: see Web3 section.
|
|
126
|
+
|
|
127
|
+
### Step 3 — Classification (3 quick questions)
|
|
128
|
+
Infer from the description when possible. Only ask what is unclear:
|
|
129
|
+
|
|
130
|
+
1. **User types** — How many distinct roles does the system have?
|
|
131
|
+
- 1 role (single user type, public site) → **0 pts**
|
|
132
|
+
- 2 roles (e.g., admin + customer) → **1 pt**
|
|
133
|
+
- 3 or more roles (e.g., admin + seller + buyer) → **2 pts**
|
|
134
|
+
|
|
135
|
+
2. **External integrations** — APIs, payment gateways, third-party services?
|
|
136
|
+
- None → **0 pts**
|
|
137
|
+
- 1–2 (e.g., Stripe + SendGrid) → **1 pt**
|
|
138
|
+
- 3 or more → **2 pts**
|
|
139
|
+
|
|
140
|
+
3. **Business rules** — How complex is the core logic?
|
|
141
|
+
- None (mostly CRUD, standard flows) → **0 pts**
|
|
142
|
+
- Some (a few conditions, basic workflows) → **1 pt**
|
|
143
|
+
- Complex (multi-step calculations, rule engines, state machines) → **2 pts**
|
|
144
|
+
|
|
145
|
+
Total: **0–1 = MICRO** · **2–3 = SMALL** · **4–6 = MEDIUM**
|
|
146
|
+
|
|
147
|
+
### Step 4 — Services (optional, web_app and api only)
|
|
148
|
+
Default is none for all. Ask once:
|
|
149
|
+
> "Do you need any of these services? (default: none)
|
|
150
|
+
> — **Queues** (background jobs — e.g., Horizon, Sidekiq, Bull)
|
|
151
|
+
> — **Storage** (file uploads — e.g., S3, Cloudflare R2)
|
|
152
|
+
> — **WebSockets** (real-time — e.g., Pusher, Soketi, Action Cable)
|
|
153
|
+
> — **Email** (transactional — e.g., Mailgun, SES, Postmark)
|
|
154
|
+
> — **Payments** (e.g., Stripe, MercadoPago, Paddle)
|
|
155
|
+
> — **Cache** (e.g., Redis, Memcached)
|
|
156
|
+
> — **Search** (e.g., Meilisearch, Elasticsearch, Typesense)"
|
|
157
|
+
|
|
158
|
+
If user says "none", "not now", or skips, leave all fields blank.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
### Tech reference — use when user needs to choose
|
|
163
|
+
|
|
164
|
+
**Backend:**
|
|
165
|
+
- **Laravel** (PHP) — elegant MVC, Eloquent ORM, Artisan CLI, vast ecosystem. → [laravel.com/docs](https://laravel.com/docs) · [github.com/laravel/laravel](https://github.com/laravel/laravel)
|
|
166
|
+
- **Rails** (Ruby) — convention over configuration, strong defaults, rapid development. → [guides.rubyonrails.org](https://guides.rubyonrails.org) · [github.com/rails/rails](https://github.com/rails/rails)
|
|
167
|
+
- **Django** (Python) — batteries-included, built-in ORM and admin panel. → [docs.djangoproject.com](https://docs.djangoproject.com) · [github.com/django/django](https://github.com/django/django)
|
|
168
|
+
- **Next.js** (JS/TS) — React + SSR/SSG + API routes, full-stack JS in one project. → [nextjs.org/docs](https://nextjs.org/docs) · [github.com/vercel/next.js](https://github.com/vercel/next.js)
|
|
169
|
+
- **FastAPI** (Python) — async, auto OpenAPI docs, high performance. → [fastapi.tiangolo.com](https://fastapi.tiangolo.com) · [github.com/tiangolo/fastapi](https://github.com/tiangolo/fastapi)
|
|
170
|
+
- **Node.js + Express/Fastify** — minimal JS backend, great for APIs and microservices.
|
|
171
|
+
- Other — describe the stack freely; it will be recorded as-is.
|
|
172
|
+
|
|
173
|
+
**Auth (Laravel-specific):**
|
|
174
|
+
- **Breeze** — simple scaffolding: login, register, password reset. Recommended for new projects. → [laravel.com/docs/starter-kits#breeze](https://laravel.com/docs/starter-kits#breeze)
|
|
175
|
+
- **Jetstream + Livewire** — full auth with teams, 2FA, API tokens. ⚠️ Must be installed at project creation — late install risks conflicts. → [jetstream.laravel.com](https://jetstream.laravel.com)
|
|
176
|
+
- **Filament Shield** — role and permission management via Filament admin. → [github.com/bezhansalleh/filament-shield](https://github.com/bezhansalleh/filament-shield)
|
|
177
|
+
- **Custom** — JWT (Sanctum/Passport), OAuth, or custom solution.
|
|
178
|
+
- **None** — no authentication needed.
|
|
179
|
+
|
|
180
|
+
**Critical Jetstream rule:** if the project already exists and the user wants Jetstream, warn that late installation is risky. Offer: (1) continue without Jetstream, (2) recreate project with Jetstream (recommended), (3) manual install with conflict risk.
|
|
181
|
+
|
|
182
|
+
**UI/UX:**
|
|
183
|
+
- **Tailwind CSS** — utility-first CSS, composable, works with any framework. → [tailwindcss.com](https://tailwindcss.com)
|
|
184
|
+
- **Tailwind + shadcn/ui** — Tailwind + accessible, composable React components. → [ui.shadcn.com](https://ui.shadcn.com)
|
|
185
|
+
- **Tailwind + shadcn/vue** — same, for Vue/Nuxt projects. → [shadcn-vue.com](https://www.shadcn-vue.com)
|
|
186
|
+
- **Livewire** — Laravel reactive components, no separate JS framework needed. → [livewire.laravel.com](https://livewire.laravel.com)
|
|
187
|
+
- **Bootstrap** — component-based CSS, familiar, good for classic admin UIs. → [getbootstrap.com](https://getbootstrap.com)
|
|
188
|
+
- **Nuxt UI** — component library for Nuxt/Vue. → [ui.nuxt.com](https://ui.nuxt.com)
|
|
189
|
+
- **None / custom** — plain CSS or your own design system.
|
|
190
|
+
|
|
191
|
+
**Framework-specific extras (ask only when relevant):**
|
|
192
|
+
- Rails: flags used with `rails new` (database, CSS framework, API mode)
|
|
193
|
+
- Next.js: `create-next-app` options (TypeScript, ESLint, App Router, src directory)
|
|
194
|
+
- Laravel: version number
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
### Beginner profile — extra guidance
|
|
199
|
+
After collecting the description:
|
|
200
|
+
1. Propose a beginner-friendly stack (prefer managed services, minimal setup, hosted databases).
|
|
201
|
+
2. Briefly explain each choice in plain language.
|
|
202
|
+
3. Ask for explicit confirmation before proceeding.
|
|
203
|
+
4. Include estimated monthly cost if relevant (e.g., "Vercel free tier covers ~100k requests/month").
|
|
204
|
+
|
|
205
|
+
### Team profile
|
|
206
|
+
Ask the team to provide values they have already decided. Record everything as-is:
|
|
207
|
+
- project_type, framework, backend, frontend, database, auth, UI/UX, services.
|
|
208
|
+
Respect existing conventions — do not suggest replacing team standards.
|
|
209
|
+
|
|
210
|
+
> **`.aioson/context/` rule:** this folder accepts only `.md` files. Never write `.html`, `.css`, `.js`, or any other non-markdown file inside `.aioson/`.
|
|
211
|
+
|
|
212
|
+
## Hard constraints
|
|
213
|
+
- Never silently default `project_type`, `profile`, `classification`, or `conversation_language`.
|
|
214
|
+
- If answers are partial, ask follow-up questions until required fields are complete.
|
|
215
|
+
- If any assumption is made, ask explicit confirmation before writing the file.
|
|
216
|
+
|
|
217
|
+
## Required fields checklist
|
|
218
|
+
Do not finalize until all are confirmed:
|
|
219
|
+
- `project_name`
|
|
220
|
+
- `project_type`
|
|
221
|
+
- `profile`
|
|
222
|
+
- `framework`
|
|
223
|
+
- `framework_installed`
|
|
224
|
+
- `classification`
|
|
225
|
+
- `conversation_language`
|
|
226
|
+
|
|
227
|
+
Web3 fields are required when `project_type=dapp`:
|
|
228
|
+
- `web3_enabled`
|
|
229
|
+
- `web3_networks`
|
|
230
|
+
- `contract_framework`
|
|
231
|
+
- `wallet_provider`
|
|
232
|
+
- `indexer`
|
|
233
|
+
- `rpc_provider`
|
|
234
|
+
|
|
235
|
+
## `framework_installed` contract
|
|
236
|
+
This field controls downstream agent behavior — set it precisely:
|
|
237
|
+
|
|
238
|
+
- `true`: framework detected in the workspace (files found during detection step). `@architect` and `@dev` can assume the project structure exists and skip installation commands.
|
|
239
|
+
- `false`: framework not detected. `@architect` and `@dev` must include installation commands in their output before any implementation steps.
|
|
240
|
+
|
|
241
|
+
If a monorepo is detected (Web3 signals alongside a backend framework), confirm with the user which is the primary framework and document the structure in the Notes section.
|
|
242
|
+
|
|
243
|
+
## Required output
|
|
244
|
+
Generate `.aioson/context/project.context.md` in this format:
|
|
245
|
+
|
|
246
|
+
```markdown
|
|
247
|
+
---
|
|
248
|
+
project_name: "<name>"
|
|
249
|
+
project_type: "web_app|api|site|script|dapp"
|
|
250
|
+
profile: "developer|beginner|team"
|
|
251
|
+
framework: "Laravel|Rails|Django|Next.js|Nuxt|Node|Hardhat|Foundry|Truffle|Anchor|Solana Web3|Cardano|..."
|
|
252
|
+
framework_installed: true
|
|
253
|
+
classification: "MICRO|SMALL|MEDIUM"
|
|
254
|
+
conversation_language: "en"
|
|
255
|
+
web3_enabled: false
|
|
256
|
+
web3_networks: ""
|
|
257
|
+
contract_framework: ""
|
|
258
|
+
wallet_provider: ""
|
|
259
|
+
indexer: ""
|
|
260
|
+
rpc_provider: ""
|
|
261
|
+
aioson_version: "0.1.25"
|
|
262
|
+
generated_at: "ISO-8601"
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
# Project Context
|
|
266
|
+
|
|
267
|
+
## Stack
|
|
268
|
+
- Backend:
|
|
269
|
+
- Frontend:
|
|
270
|
+
- Database:
|
|
271
|
+
- Auth:
|
|
272
|
+
- UI/UX:
|
|
273
|
+
|
|
274
|
+
## Services
|
|
275
|
+
- Queues:
|
|
276
|
+
- Storage:
|
|
277
|
+
- WebSockets:
|
|
278
|
+
- Email:
|
|
279
|
+
- Payments:
|
|
280
|
+
- Cache:
|
|
281
|
+
- Search:
|
|
282
|
+
|
|
283
|
+
## Web3
|
|
284
|
+
- Enabled:
|
|
285
|
+
- Networks:
|
|
286
|
+
- Contract framework:
|
|
287
|
+
- Wallet provider:
|
|
288
|
+
- Indexer:
|
|
289
|
+
- RPC provider:
|
|
290
|
+
|
|
291
|
+
## Installation commands
|
|
292
|
+
[Only if framework_installed=false]
|
|
293
|
+
|
|
294
|
+
## Notes
|
|
295
|
+
- [any onboarding warnings or key decisions]
|
|
296
|
+
|
|
297
|
+
## Conventions
|
|
298
|
+
- Language:
|
|
299
|
+
- Code comments language:
|
|
300
|
+
- DB naming: snake_case
|
|
301
|
+
- JS/TS naming: camelCase
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
## Post-setup action
|
|
305
|
+
|
|
306
|
+
### 1. Apply localized agents
|
|
307
|
+
If `conversation_language` is not `en`, copy all files from `.aioson/locales/{conversation_language}/agents/` to `.aioson/agents/`, overwriting the default English files. This applies the localized agent instructions.
|
|
308
|
+
|
|
309
|
+
If the `aioson` CLI is available globally, `aioson locale:apply` does the same thing automatically. If it is not available, copy the files directly — do not skip this step.
|
|
310
|
+
|
|
311
|
+
### 2. Offer spec.md
|
|
312
|
+
Ask the user: **"Would you like to generate a `spec.md` for this project?"**
|
|
313
|
+
|
|
314
|
+
> Skip the spec.md offer for `project_type=site` + classification=MICRO — it is rarely needed for a single landing page. Offer it only if the user asks or if the project is SMALL or larger.
|
|
315
|
+
|
|
316
|
+
Explain briefly: *"`spec.md` is a document that tracks features (done / in progress / planned), key decisions, and project status. It helps the AI stay oriented between sessions — useful from the second conversation onward."*
|
|
317
|
+
|
|
318
|
+
If yes, generate `.aioson/context/spec.md` using the template below.
|
|
319
|
+
If no, skip — `spec.md` is optional and can be created manually at any time.
|
|
320
|
+
|
|
321
|
+
`spec.md` is a living document maintained by the developer across sessions. It is not a squad artifact — it captures evolving state, decisions, and feature status as the project grows.
|
|
322
|
+
|
|
323
|
+
```markdown
|
|
324
|
+
---
|
|
325
|
+
project: "<project_name>"
|
|
326
|
+
updated: "<ISO-8601>"
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
# Project Spec
|
|
330
|
+
|
|
331
|
+
## Stack
|
|
332
|
+
[Copy from project.context.md § Stack]
|
|
333
|
+
|
|
334
|
+
## Current state
|
|
335
|
+
[What phase is the project in right now? e.g., "Starting development of auth module"]
|
|
336
|
+
|
|
337
|
+
## Features
|
|
338
|
+
|
|
339
|
+
### Done
|
|
340
|
+
- (none yet)
|
|
341
|
+
|
|
342
|
+
### In progress
|
|
343
|
+
- (none yet)
|
|
344
|
+
|
|
345
|
+
### Planned
|
|
346
|
+
- [List features from prd.md if available, or describe high-level goals]
|
|
347
|
+
|
|
348
|
+
## Open decisions
|
|
349
|
+
- [List unresolved architectural or product questions]
|
|
350
|
+
|
|
351
|
+
## Key decisions
|
|
352
|
+
- [Date] [Decision] — [Reason]
|
|
353
|
+
|
|
354
|
+
## Notes
|
|
355
|
+
- [Any important context, warnings, or constraints for future sessions]
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
### 3. Suggest scan:project for existing codebases
|
|
359
|
+
|
|
360
|
+
If `framework_installed=true` (code was detected in the workspace), always include this after setup:
|
|
361
|
+
|
|
362
|
+
> "Your project already has code. Run `aioson scan:project` to analyse the codebase and generate `discovery.md` and `skeleton-system.md` in your context folder. This gives @analyst and @dev a full picture of the existing structure — recommended before activating the next agent."
|
|
363
|
+
|
|
364
|
+
### 4. Tell the user which agent to activate next
|
|
365
|
+
|
|
366
|
+
After setup is complete, always close with the recommended next step. Use the exact `@agent` name so the AI client (Codex, Claude Code, Gemini) can trigger it:
|
|
367
|
+
|
|
368
|
+
| project_type | classification | Next agent |
|
|
369
|
+
|---|---|---|
|
|
370
|
+
| `site` | any | **@ux-ui** |
|
|
371
|
+
| `web_app` / `api` / `script` | MICRO | **@product** (optional) or **@dev** |
|
|
372
|
+
| `web_app` / `api` | SMALL | **@product** → then @analyst |
|
|
373
|
+
| `web_app` / `api` | MEDIUM | **@product** → then @analyst → @architect |
|
|
374
|
+
| `dapp` | any | **@product** (optional) → then @analyst |
|
|
375
|
+
|
|
376
|
+
Say it clearly at the end of setup, for example:
|
|
377
|
+
> "Setup complete. Next step: activate **@ux-ui** to design your landing page."
|
|
378
|
+
> or
|
|
379
|
+
> "Setup complete. Next step: activate **@analyst** to map out the requirements."
|
|
380
|
+
|
|
381
|
+
This ensures the user knows exactly what to do next without having to remember the workflow sequence.
|