aios-core 2.1.6 → 2.2.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/.aios-core/core/README.md +229 -229
- package/.aios-core/core/data/agent-config-requirements.yaml +368 -368
- package/.aios-core/core/data/aios-kb.md +923 -923
- package/.aios-core/core/data/workflow-patterns.yaml +267 -267
- package/.aios-core/core/docs/SHARD-TRANSLATION-GUIDE.md +335 -335
- package/.aios-core/core/docs/component-creation-guide.md +457 -457
- package/.aios-core/core/docs/session-update-pattern.md +307 -307
- package/.aios-core/core/docs/template-syntax.md +266 -266
- package/.aios-core/core/docs/troubleshooting-guide.md +624 -624
- package/.aios-core/core/elicitation/elicitation-engine.js +1 -1
- package/.aios-core/core/index.esm.js +42 -42
- package/.aios-core/core/index.js +1 -1
- package/.aios-core/core/migration/migration-config.yaml +83 -83
- package/.aios-core/core/migration/module-mapping.yaml +89 -89
- package/.aios-core/core/quality-gates/layer2-pr-automation.js +1 -1
- package/.aios-core/core/quality-gates/quality-gate-config.yaml +86 -86
- package/.aios-core/core/registry/README.md +179 -179
- package/.aios-core/core/utils/security-utils.js +1 -1
- package/.aios-core/core-config.yaml +391 -382
- package/.aios-core/data/agent-config-requirements.yaml +368 -368
- package/.aios-core/data/aios-kb.md +923 -923
- package/.aios-core/data/technical-preferences.md +3 -3
- package/.aios-core/data/workflow-patterns.yaml +267 -267
- package/.aios-core/development/README.md +142 -142
- package/.aios-core/development/agent-teams/team-all.yaml +15 -15
- package/.aios-core/development/agent-teams/team-fullstack.yaml +18 -18
- package/.aios-core/development/agent-teams/team-ide-minimal.yaml +10 -10
- package/.aios-core/development/agent-teams/team-no-ui.yaml +13 -13
- package/.aios-core/development/agent-teams/team-qa-focused.yaml +155 -155
- package/.aios-core/development/agents/aios-master.md +339 -339
- package/.aios-core/development/agents/analyst.md +195 -195
- package/.aios-core/development/agents/architect.md +359 -359
- package/.aios-core/development/agents/data-engineer.md +468 -468
- package/.aios-core/development/agents/dev.md +390 -390
- package/.aios-core/development/agents/devops.md +398 -398
- package/.aios-core/development/agents/pm.md +198 -198
- package/.aios-core/development/agents/po.md +256 -256
- package/.aios-core/development/agents/qa.md +312 -312
- package/.aios-core/development/agents/sm.md +220 -220
- package/.aios-core/development/agents/ux-design-expert.md +451 -451
- package/.aios-core/development/scripts/greeting-config-cli.js +85 -85
- package/.aios-core/development/tasks/add-mcp.md +319 -319
- package/.aios-core/development/tasks/advanced-elicitation.md +318 -318
- package/.aios-core/development/tasks/analyst-facilitate-brainstorming.md +341 -341
- package/.aios-core/development/tasks/analyze-framework.md +696 -696
- package/.aios-core/development/tasks/analyze-performance.md +637 -637
- package/.aios-core/development/tasks/apply-qa-fixes.md +340 -340
- package/.aios-core/development/tasks/architect-analyze-impact.md +826 -826
- package/.aios-core/development/tasks/audit-codebase.md +429 -429
- package/.aios-core/development/tasks/audit-tailwind-config.md +270 -270
- package/.aios-core/development/tasks/audit-utilities.md +358 -358
- package/.aios-core/development/tasks/bootstrap-shadcn-library.md +286 -286
- package/.aios-core/development/tasks/brownfield-create-epic.md +485 -485
- package/.aios-core/development/tasks/brownfield-create-story.md +356 -356
- package/.aios-core/development/tasks/build-component.md +478 -478
- package/.aios-core/development/tasks/calculate-roi.md +455 -455
- package/.aios-core/development/tasks/ci-cd-configuration.md +764 -764
- package/.aios-core/development/tasks/cleanup-utilities.md +670 -670
- package/.aios-core/development/tasks/collaborative-edit.md +1108 -1108
- package/.aios-core/development/tasks/compose-molecule.md +284 -284
- package/.aios-core/development/tasks/consolidate-patterns.md +414 -414
- package/.aios-core/development/tasks/correct-course.md +279 -279
- package/.aios-core/development/tasks/create-agent.md +321 -321
- package/.aios-core/development/tasks/create-brownfield-story.md +726 -726
- package/.aios-core/development/tasks/create-deep-research-prompt.md +498 -498
- package/.aios-core/development/tasks/create-doc.md +316 -316
- package/.aios-core/development/tasks/create-next-story.md +774 -774
- package/.aios-core/development/tasks/create-suite.md +283 -283
- package/.aios-core/development/tasks/create-task.md +371 -371
- package/.aios-core/development/tasks/create-workflow.md +370 -370
- package/.aios-core/development/tasks/db-analyze-hotpaths.md +572 -572
- package/.aios-core/development/tasks/db-apply-migration.md +381 -381
- package/.aios-core/development/tasks/db-bootstrap.md +642 -642
- package/.aios-core/development/tasks/db-domain-modeling.md +693 -693
- package/.aios-core/development/tasks/db-dry-run.md +293 -293
- package/.aios-core/development/tasks/db-env-check.md +260 -260
- package/.aios-core/development/tasks/db-expansion-pack-integration.md +663 -663
- package/.aios-core/development/tasks/db-explain.md +631 -631
- package/.aios-core/development/tasks/db-impersonate.md +495 -495
- package/.aios-core/development/tasks/db-load-csv.md +593 -593
- package/.aios-core/development/tasks/db-policy-apply.md +653 -653
- package/.aios-core/development/tasks/db-rls-audit.md +411 -411
- package/.aios-core/development/tasks/db-rollback.md +739 -739
- package/.aios-core/development/tasks/db-run-sql.md +613 -613
- package/.aios-core/development/tasks/db-schema-audit.md +1011 -1011
- package/.aios-core/development/tasks/db-seed.md +390 -390
- package/.aios-core/development/tasks/db-smoke-test.md +351 -351
- package/.aios-core/development/tasks/db-snapshot.md +569 -569
- package/.aios-core/development/tasks/db-supabase-setup.md +712 -712
- package/.aios-core/development/tasks/db-verify-order.md +515 -515
- package/.aios-core/development/tasks/deprecate-component.md +956 -956
- package/.aios-core/development/tasks/dev-apply-qa-fixes.md +318 -318
- package/.aios-core/development/tasks/dev-backlog-debt.md +469 -469
- package/.aios-core/development/tasks/dev-develop-story.md +846 -846
- package/.aios-core/development/tasks/dev-improve-code-quality.md +872 -872
- package/.aios-core/development/tasks/dev-optimize-performance.md +1033 -1033
- package/.aios-core/development/tasks/dev-suggest-refactoring.md +870 -870
- package/.aios-core/development/tasks/dev-validate-next-story.md +348 -348
- package/.aios-core/development/tasks/document-project.md +552 -552
- package/.aios-core/development/tasks/environment-bootstrap.md +1311 -1311
- package/.aios-core/development/tasks/execute-checklist.md +301 -301
- package/.aios-core/development/tasks/export-design-tokens-dtcg.md +274 -274
- package/.aios-core/development/tasks/extend-pattern.md +269 -269
- package/.aios-core/development/tasks/extract-tokens.md +467 -467
- package/.aios-core/development/tasks/facilitate-brainstorming-session.md +518 -518
- package/.aios-core/development/tasks/generate-ai-frontend-prompt.md +260 -260
- package/.aios-core/development/tasks/generate-documentation.md +284 -284
- package/.aios-core/development/tasks/generate-migration-strategy.md +522 -522
- package/.aios-core/development/tasks/generate-shock-report.md +501 -501
- package/.aios-core/development/tasks/github-devops-github-pr-automation.md +427 -427
- package/.aios-core/development/tasks/github-devops-pre-push-quality-gate.md +733 -733
- package/.aios-core/development/tasks/github-devops-repository-cleanup.md +374 -374
- package/.aios-core/development/tasks/github-devops-version-management.md +483 -483
- package/.aios-core/development/tasks/improve-self.md +822 -822
- package/.aios-core/development/tasks/index-docs.md +387 -387
- package/.aios-core/development/tasks/init-project-status.md +506 -506
- package/.aios-core/development/tasks/integrate-expansion-pack.md +314 -314
- package/.aios-core/development/tasks/kb-mode-interaction.md +283 -283
- package/.aios-core/development/tasks/learn-patterns.md +900 -900
- package/.aios-core/development/tasks/mcp-workflow.md +437 -437
- package/.aios-core/development/tasks/modify-agent.md +381 -381
- package/.aios-core/development/tasks/modify-task.md +424 -424
- package/.aios-core/development/tasks/modify-workflow.md +465 -465
- package/.aios-core/development/tasks/po-backlog-add.md +370 -370
- package/.aios-core/development/tasks/po-manage-story-backlog.md +523 -523
- package/.aios-core/development/tasks/po-pull-story-from-clickup.md +540 -540
- package/.aios-core/development/tasks/po-pull-story.md +316 -316
- package/.aios-core/development/tasks/po-stories-index.md +351 -351
- package/.aios-core/development/tasks/po-sync-story-to-clickup.md +457 -457
- package/.aios-core/development/tasks/po-sync-story.md +303 -303
- package/.aios-core/development/tasks/pr-automation.md +701 -701
- package/.aios-core/development/tasks/propose-modification.md +842 -842
- package/.aios-core/development/tasks/qa-backlog-add-followup.md +425 -425
- package/.aios-core/development/tasks/qa-gate.md +373 -373
- package/.aios-core/development/tasks/qa-generate-tests.md +1174 -1174
- package/.aios-core/development/tasks/qa-nfr-assess.md +557 -557
- package/.aios-core/development/tasks/qa-review-proposal.md +1157 -1157
- package/.aios-core/development/tasks/qa-review-story.md +682 -682
- package/.aios-core/development/tasks/qa-risk-profile.md +566 -566
- package/.aios-core/development/tasks/qa-run-tests.md +277 -277
- package/.aios-core/development/tasks/qa-test-design.md +387 -387
- package/.aios-core/development/tasks/qa-trace-requirements.md +476 -476
- package/.aios-core/development/tasks/release-management.md +723 -723
- package/.aios-core/development/tasks/security-audit.md +554 -554
- package/.aios-core/development/tasks/security-scan.md +790 -790
- package/.aios-core/development/tasks/setup-database.md +741 -741
- package/.aios-core/development/tasks/setup-design-system.md +462 -462
- package/.aios-core/development/tasks/setup-github.md +874 -874
- package/.aios-core/development/tasks/setup-llm-routing.md +1 -1
- package/.aios-core/development/tasks/setup-mcp-docker.md +584 -584
- package/.aios-core/development/tasks/setup-project-docs.md +1 -1
- package/.aios-core/development/tasks/shard-doc.md +537 -537
- package/.aios-core/development/tasks/sm-create-next-story.md +480 -480
- package/.aios-core/development/tasks/sync-documentation.md +864 -864
- package/.aios-core/development/tasks/tailwind-upgrade.md +294 -294
- package/.aios-core/development/tasks/test-as-user.md +621 -621
- package/.aios-core/development/tasks/test-validation-task.md +171 -171
- package/.aios-core/development/tasks/undo-last.md +346 -346
- package/.aios-core/development/tasks/update-manifest.md +409 -409
- package/.aios-core/development/tasks/ux-create-wireframe.md +617 -617
- package/.aios-core/development/tasks/ux-ds-scan-artifact.md +672 -672
- package/.aios-core/development/tasks/ux-user-research.md +559 -559
- package/.aios-core/development/tasks/validate-next-story.md +422 -422
- package/.aios-core/development/workflows/README.md +83 -83
- package/.aios-core/development/workflows/brownfield-fullstack.yaml +297 -297
- package/.aios-core/development/workflows/brownfield-service.yaml +187 -187
- package/.aios-core/development/workflows/brownfield-ui.yaml +197 -197
- package/.aios-core/development/workflows/greenfield-fullstack.yaml +333 -333
- package/.aios-core/development/workflows/greenfield-service.yaml +206 -206
- package/.aios-core/development/workflows/greenfield-ui.yaml +235 -235
- package/.aios-core/docs/SHARD-TRANSLATION-GUIDE.md +335 -335
- package/.aios-core/docs/component-creation-guide.md +457 -457
- package/.aios-core/docs/session-update-pattern.md +307 -307
- package/.aios-core/docs/standards/AGENT-PERSONALIZATION-STANDARD-V1.md +572 -572
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-QUICK-REFERENCE.md +185 -185
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-V2.1.md +354 -354
- package/.aios-core/docs/standards/AIOS-FRAMEWORK-MASTER.md +1963 -1963
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md +821 -821
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-SUMMARY.md +1190 -1190
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1.md +439 -439
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.2-SUMMARY.md +1339 -1339
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO.md +5398 -5398
- package/.aios-core/docs/standards/EXECUTOR-DECISION-TREE.md +697 -697
- package/.aios-core/docs/standards/OPEN-SOURCE-VS-SERVICE-DIFFERENCES.md +511 -511
- package/.aios-core/docs/standards/QUALITY-GATES-SPECIFICATION.md +556 -556
- package/.aios-core/docs/standards/STANDARDS-INDEX.md +210 -210
- package/.aios-core/docs/standards/STORY-TEMPLATE-V2-SPECIFICATION.md +550 -550
- package/.aios-core/docs/standards/TASK-FORMAT-SPECIFICATION-V1.md +1414 -1414
- package/.aios-core/docs/standards/V3-ARCHITECTURAL-DECISIONS.md +523 -523
- package/.aios-core/docs/template-syntax.md +266 -266
- package/.aios-core/docs/troubleshooting-guide.md +624 -624
- package/.aios-core/index.esm.js +15 -15
- package/.aios-core/index.js +1 -1
- package/.aios-core/infrastructure/README.md +126 -126
- package/.aios-core/infrastructure/integrations/pm-adapters/README.md +59 -59
- package/.aios-core/infrastructure/scripts/approval-workflow.js +1 -1
- package/.aios-core/infrastructure/scripts/batch-creator.js +1 -1
- package/.aios-core/infrastructure/scripts/component-generator.js +3 -3
- package/.aios-core/infrastructure/scripts/component-metadata.js +1 -1
- package/.aios-core/infrastructure/scripts/component-search.js +1 -1
- package/.aios-core/infrastructure/scripts/coverage-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/dependency-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/dependency-impact-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/framework-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/improvement-engine.js +1 -1
- package/.aios-core/infrastructure/scripts/llm-routing/install-llm-routing.js +26 -13
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free-tracked.cmd +127 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free-tracked.sh +108 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-proxy.cmd +71 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-proxy.sh +65 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-usage.cmd +51 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-usage.sh +16 -0
- package/.aios-core/infrastructure/scripts/llm-routing/usage-tracker/index.js +549 -0
- package/.aios-core/infrastructure/scripts/modification-risk-assessment.js +1 -1
- package/.aios-core/infrastructure/scripts/performance-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/pm-adapter.js +134 -134
- package/.aios-core/infrastructure/scripts/repository-detector.js +3 -3
- package/.aios-core/infrastructure/scripts/template-engine.js +1 -1
- package/.aios-core/infrastructure/scripts/template-validator.js +1 -1
- package/.aios-core/infrastructure/scripts/test-generator.js +1 -1
- package/.aios-core/infrastructure/scripts/test-quality-assessment.js +1 -1
- package/.aios-core/infrastructure/scripts/transaction-manager.js +1 -1
- package/.aios-core/infrastructure/scripts/usage-analytics.js +1 -1
- package/.aios-core/infrastructure/scripts/visual-impact-generator.js +2 -2
- package/.aios-core/infrastructure/templates/github-workflows/README.md +109 -109
- package/.aios-core/infrastructure/tests/regression-suite-v2.md +621 -621
- package/.aios-core/infrastructure/tools/README.md +222 -222
- package/.aios-core/infrastructure/tools/cli/github-cli.yaml +200 -200
- package/.aios-core/infrastructure/tools/cli/railway-cli.yaml +260 -260
- package/.aios-core/infrastructure/tools/cli/supabase-cli.yaml +224 -224
- package/.aios-core/infrastructure/tools/local/ffmpeg.yaml +261 -261
- package/.aios-core/infrastructure/tools/mcp/21st-dev-magic.yaml +127 -127
- package/.aios-core/infrastructure/tools/mcp/browser.yaml +103 -103
- package/.aios-core/infrastructure/tools/mcp/clickup.yaml +534 -534
- package/.aios-core/infrastructure/tools/mcp/context7.yaml +78 -78
- package/.aios-core/infrastructure/tools/mcp/desktop-commander.yaml +180 -180
- package/.aios-core/infrastructure/tools/mcp/exa.yaml +103 -103
- package/.aios-core/infrastructure/tools/mcp/google-workspace.yaml +930 -930
- package/.aios-core/infrastructure/tools/mcp/n8n.yaml +551 -551
- package/.aios-core/infrastructure/tools/mcp/supabase.yaml +808 -808
- package/.aios-core/install-manifest.yaml +347 -347
- package/.aios-core/product/README.md +56 -56
- package/.aios-core/product/checklists/accessibility-wcag-checklist.md +80 -0
- package/.aios-core/product/checklists/architect-checklist.md +443 -443
- package/.aios-core/product/checklists/change-checklist.md +182 -182
- package/.aios-core/product/checklists/component-quality-checklist.md +74 -0
- package/.aios-core/product/checklists/database-design-checklist.md +119 -119
- package/.aios-core/product/checklists/dba-predeploy-checklist.md +97 -97
- package/.aios-core/product/checklists/dba-rollback-checklist.md +99 -99
- package/.aios-core/product/checklists/migration-readiness-checklist.md +75 -0
- package/.aios-core/product/checklists/pattern-audit-checklist.md +88 -0
- package/.aios-core/product/checklists/pm-checklist.md +375 -375
- package/.aios-core/product/checklists/po-master-checklist.md +441 -441
- package/.aios-core/product/checklists/pre-push-checklist.md +108 -108
- package/.aios-core/product/checklists/release-checklist.md +122 -122
- package/.aios-core/product/checklists/story-dod-checklist.md +101 -101
- package/.aios-core/product/checklists/story-draft-checklist.md +215 -215
- package/.aios-core/product/data/atomic-design-principles.md +108 -0
- package/.aios-core/product/data/brainstorming-techniques.md +36 -36
- package/.aios-core/product/data/consolidation-algorithms.md +142 -0
- package/.aios-core/product/data/database-best-practices.md +182 -0
- package/.aios-core/product/data/design-token-best-practices.md +107 -0
- package/.aios-core/product/data/elicitation-methods.md +134 -134
- package/.aios-core/product/data/integration-patterns.md +207 -0
- package/.aios-core/product/data/migration-safety-guide.md +329 -0
- package/.aios-core/product/data/mode-selection-best-practices.md +471 -471
- package/.aios-core/product/data/postgres-tuning-guide.md +300 -0
- package/.aios-core/product/data/rls-security-patterns.md +333 -0
- package/.aios-core/product/data/roi-calculation-guide.md +142 -0
- package/.aios-core/product/data/supabase-patterns.md +330 -0
- package/.aios-core/product/data/test-levels-framework.md +148 -148
- package/.aios-core/product/data/test-priorities-matrix.md +174 -174
- package/.aios-core/product/data/wcag-compliance-guide.md +267 -0
- package/.aios-core/product/templates/1mcp-config.yaml +225 -225
- package/.aios-core/product/templates/activation-instructions-inline-greeting.yaml +63 -63
- package/.aios-core/product/templates/activation-instructions-template.md +258 -258
- package/.aios-core/product/templates/agent-template.yaml +120 -120
- package/.aios-core/product/templates/architecture-tmpl.yaml +650 -650
- package/.aios-core/product/templates/brainstorming-output-tmpl.yaml +155 -155
- package/.aios-core/product/templates/brownfield-architecture-tmpl.yaml +475 -475
- package/.aios-core/product/templates/brownfield-prd-tmpl.yaml +279 -279
- package/.aios-core/product/templates/changelog-template.md +134 -134
- package/.aios-core/product/templates/command-rationalization-matrix.md +152 -152
- package/.aios-core/product/templates/competitor-analysis-tmpl.yaml +292 -292
- package/.aios-core/product/templates/design-story-tmpl.yaml +587 -587
- package/.aios-core/product/templates/ds-artifact-analysis.md +70 -70
- package/.aios-core/product/templates/front-end-architecture-tmpl.yaml +205 -205
- package/.aios-core/product/templates/front-end-spec-tmpl.yaml +348 -348
- package/.aios-core/product/templates/fullstack-architecture-tmpl.yaml +804 -804
- package/.aios-core/product/templates/github-pr-template.md +67 -67
- package/.aios-core/product/templates/gordon-mcp.yaml +140 -140
- package/.aios-core/product/templates/ide-rules/antigravity-rules.md +115 -115
- package/.aios-core/product/templates/ide-rules/claude-rules.md +221 -221
- package/.aios-core/product/templates/ide-rules/cline-rules.md +84 -84
- package/.aios-core/product/templates/ide-rules/copilot-rules.md +92 -92
- package/.aios-core/product/templates/ide-rules/cursor-rules.md +115 -115
- package/.aios-core/product/templates/ide-rules/gemini-rules.md +85 -85
- package/.aios-core/product/templates/ide-rules/roo-rules.md +86 -86
- package/.aios-core/product/templates/ide-rules/trae-rules.md +104 -104
- package/.aios-core/product/templates/ide-rules/windsurf-rules.md +80 -80
- package/.aios-core/product/templates/index-strategy-tmpl.yaml +53 -53
- package/.aios-core/product/templates/market-research-tmpl.yaml +251 -251
- package/.aios-core/product/templates/mcp-workflow.js +271 -271
- package/.aios-core/product/templates/migration-plan-tmpl.yaml +1022 -1022
- package/.aios-core/product/templates/migration-strategy-tmpl.md +524 -524
- package/.aios-core/product/templates/personalized-agent-template.md +258 -258
- package/.aios-core/product/templates/personalized-checklist-template.md +340 -340
- package/.aios-core/product/templates/personalized-task-template-v2.md +905 -905
- package/.aios-core/product/templates/personalized-task-template.md +344 -344
- package/.aios-core/product/templates/personalized-template-file.yaml +322 -322
- package/.aios-core/product/templates/personalized-workflow-template.yaml +460 -460
- package/.aios-core/product/templates/prd-tmpl.yaml +201 -201
- package/.aios-core/product/templates/project-brief-tmpl.yaml +220 -220
- package/.aios-core/product/templates/qa-gate-tmpl.yaml +240 -240
- package/.aios-core/product/templates/rls-policies-tmpl.yaml +1203 -1203
- package/.aios-core/product/templates/schema-design-tmpl.yaml +428 -428
- package/.aios-core/product/templates/state-persistence-tmpl.yaml +219 -219
- package/.aios-core/product/templates/story-tmpl.yaml +331 -331
- package/.aios-core/product/templates/task-execution-report.md +495 -495
- package/.aios-core/product/templates/task-template.md +122 -122
- package/.aios-core/product/templates/token-exports-tailwind-tmpl.js +395 -395
- package/.aios-core/product/templates/tokens-schema-tmpl.yaml +305 -305
- package/.aios-core/product/templates/workflow-template.yaml +133 -133
- package/.aios-core/scripts/README.md +354 -354
- package/.aios-core/scripts/aios-doc-template.md +325 -325
- package/.aios-core/scripts/elicitation-engine.js +1 -1
- package/.aios-core/scripts/test-template-system.js +1 -1
- package/.aios-core/scripts/workflow-management.md +69 -69
- package/.aios-core/user-guide.md +1413 -1413
- package/.aios-core/working-in-the-brownfield.md +361 -361
- package/LICENSE +1 -1
- package/README.md +702 -703
- package/bin/aios-init-old.js +3 -3
- package/bin/aios-init-v4.js +1 -1
- package/bin/aios-init.backup-v1.1.4.js +1 -1
- package/bin/aios-init.js +3 -3
- package/bin/aios.js +279 -279
- package/bin/utils/install-errors.js +339 -339
- package/bin/utils/install-transaction.js +445 -445
- package/index.d.ts +18 -18
- package/index.esm.js +20 -20
- package/index.js +6 -6
- package/package.json +8 -10
- package/packages/installer/src/config/templates/env-template.js +27 -4
- package/packages/installer/src/detection/detect-project-type.js +81 -81
- package/packages/installer/tests/integration/wizard-detection.test.js +8 -6
- package/packages/installer/tests/unit/env-template.test.js +8 -8
- package/src/config/ide-configs.js +1 -1
- package/src/wizard/feedback.js +2 -2
- package/src/wizard/index.js +1 -1
- package/src/wizard/validation/report-generator.js +1 -1
- package/src/wizard/validation/troubleshooting-system.js +13 -13
- package/.aios-core/infrastructure/scripts/_archived/final-todo-count.js +0 -122
- package/.aios-core/infrastructure/scripts/_archived/fix-yaml-formatting.js +0 -89
- package/.aios-core/infrastructure/scripts/_archived/migration-generator.js +0 -780
- package/.aios-core/infrastructure/scripts/_archived/migration-path-generator.js +0 -950
- package/.aios-core/infrastructure/scripts/_archived/phase2-entrada-saida-errors.js +0 -425
- package/.aios-core/infrastructure/scripts/_archived/phase2-spot-check.js +0 -132
- package/.aios-core/infrastructure/scripts/_archived/phase3-tools-scripts-validation.js +0 -381
- package/.aios-core/infrastructure/scripts/_archived/phase4-metadata-performance.js +0 -203
- package/.aios-core/infrastructure/scripts/_archived/test-yaml-parsing.js +0 -24
- package/.aios-core/infrastructure/scripts/_archived/verify-yaml-fix.js +0 -51
- package/.aios-core/tasks/find-component.md.legacy +0 -391
- package/.aios-core/tasks/generate-commit-message.md.legacy +0 -426
- package/.aios-core/tasks/generate-migration.md.legacy +0 -382
- package/.aios-core/tasks/rollback-modification.md.legacy +0 -307
- package/.aios-core/tasks/update-tests.md.legacy +0 -283
|
@@ -1,642 +1,642 @@
|
|
|
1
|
-
# Task: Bootstrap Supabase Project
|
|
2
|
-
|
|
3
|
-
**Purpose**: Create standard Supabase project structure
|
|
4
|
-
|
|
5
|
-
**Elicit**: true
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Execution Modes
|
|
10
|
-
|
|
11
|
-
**Choose your execution mode:**
|
|
12
|
-
|
|
13
|
-
### 1. YOLO Mode - Fast, Autonomous (0-1 prompts)
|
|
14
|
-
- Autonomous decision making with logging
|
|
15
|
-
- Minimal user interaction
|
|
16
|
-
- **Best for:** Simple, deterministic tasks
|
|
17
|
-
|
|
18
|
-
### 2. Interactive Mode - Balanced, Educational (5-10 prompts) **[DEFAULT]**
|
|
19
|
-
- Explicit decision checkpoints
|
|
20
|
-
- Educational explanations
|
|
21
|
-
- **Best for:** Learning, complex decisions
|
|
22
|
-
|
|
23
|
-
### 3. Pre-Flight Planning - Comprehensive Upfront Planning
|
|
24
|
-
- Task analysis phase (identify all ambiguities)
|
|
25
|
-
- Zero ambiguity execution
|
|
26
|
-
- **Best for:** Ambiguous requirements, critical work
|
|
27
|
-
|
|
28
|
-
**Parameter:** `mode` (optional, default: `interactive`)
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## Task Definition (AIOS Task Format V1.0)
|
|
33
|
-
|
|
34
|
-
```yaml
|
|
35
|
-
task: dbBootstrap()
|
|
36
|
-
responsible: Dara (Sage)
|
|
37
|
-
responsible_type: Agent
|
|
38
|
-
atomic_layer: Organism
|
|
39
|
-
|
|
40
|
-
inputs:
|
|
41
|
-
- field: query
|
|
42
|
-
type: string
|
|
43
|
-
source: User Input
|
|
44
|
-
required: true
|
|
45
|
-
validation: Valid SQL query
|
|
46
|
-
|
|
47
|
-
- field: params
|
|
48
|
-
type: object
|
|
49
|
-
source: User Input
|
|
50
|
-
required: false
|
|
51
|
-
validation: Query parameters
|
|
52
|
-
|
|
53
|
-
- field: connection
|
|
54
|
-
type: object
|
|
55
|
-
source: config
|
|
56
|
-
required: true
|
|
57
|
-
validation: Valid PostgreSQL connection via Supabase
|
|
58
|
-
|
|
59
|
-
outputs:
|
|
60
|
-
- field: query_result
|
|
61
|
-
type: array
|
|
62
|
-
destination: Memory
|
|
63
|
-
persisted: false
|
|
64
|
-
|
|
65
|
-
- field: records_affected
|
|
66
|
-
type: number
|
|
67
|
-
destination: Return value
|
|
68
|
-
persisted: false
|
|
69
|
-
|
|
70
|
-
- field: execution_time
|
|
71
|
-
type: number
|
|
72
|
-
destination: Memory
|
|
73
|
-
persisted: false
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Pre-Conditions
|
|
79
|
-
|
|
80
|
-
**Purpose:** Validate prerequisites BEFORE task execution (blocking)
|
|
81
|
-
|
|
82
|
-
**Checklist:**
|
|
83
|
-
|
|
84
|
-
```yaml
|
|
85
|
-
pre-conditions:
|
|
86
|
-
- [ ] Database connection established; query syntax valid
|
|
87
|
-
tipo: pre-condition
|
|
88
|
-
blocker: true
|
|
89
|
-
validação: |
|
|
90
|
-
Check database connection established; query syntax valid
|
|
91
|
-
error_message: "Pre-condition failed: Database connection established; query syntax valid"
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
## Post-Conditions
|
|
97
|
-
|
|
98
|
-
**Purpose:** Validate execution success AFTER task completes
|
|
99
|
-
|
|
100
|
-
**Checklist:**
|
|
101
|
-
|
|
102
|
-
```yaml
|
|
103
|
-
post-conditions:
|
|
104
|
-
- [ ] Query executed; results returned; transaction committed
|
|
105
|
-
tipo: post-condition
|
|
106
|
-
blocker: true
|
|
107
|
-
validação: |
|
|
108
|
-
Verify query executed; results returned; transaction committed
|
|
109
|
-
error_message: "Post-condition failed: Query executed; results returned; transaction committed"
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## Acceptance Criteria
|
|
115
|
-
|
|
116
|
-
**Purpose:** Definitive pass/fail criteria for task completion
|
|
117
|
-
|
|
118
|
-
**Checklist:**
|
|
119
|
-
|
|
120
|
-
```yaml
|
|
121
|
-
acceptance-criteria:
|
|
122
|
-
- [ ] Data persisted correctly; constraints respected; no orphaned data
|
|
123
|
-
tipo: acceptance-criterion
|
|
124
|
-
blocker: true
|
|
125
|
-
validação: |
|
|
126
|
-
Assert data persisted correctly; constraints respected; no orphaned data
|
|
127
|
-
error_message: "Acceptance criterion not met: Data persisted correctly; constraints respected; no orphaned data"
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
## Tools
|
|
133
|
-
|
|
134
|
-
**External/shared resources used by this task:**
|
|
135
|
-
|
|
136
|
-
- **Tool:** supabase
|
|
137
|
-
- **Purpose:** PostgreSQL database connection via Supabase client
|
|
138
|
-
- **Source:** @supabase/supabase-js
|
|
139
|
-
|
|
140
|
-
- **Tool:** query-validator
|
|
141
|
-
- **Purpose:** SQL query syntax validation
|
|
142
|
-
- **Source:** .aios-core/utils/db-query-validator.js
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
## Scripts
|
|
147
|
-
|
|
148
|
-
**Agent-specific code for this task:**
|
|
149
|
-
|
|
150
|
-
- **Script:** db-query.js
|
|
151
|
-
- **Purpose:** Execute PostgreSQL queries with error handling via Supabase
|
|
152
|
-
- **Language:** JavaScript
|
|
153
|
-
- **Location:** .aios-core/scripts/db-query.js
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## Error Handling
|
|
158
|
-
|
|
159
|
-
**Strategy:** retry
|
|
160
|
-
|
|
161
|
-
**Common Errors:**
|
|
162
|
-
|
|
163
|
-
1. **Error:** Connection Failed
|
|
164
|
-
- **Cause:** Unable to connect to Neo4j database
|
|
165
|
-
- **Resolution:** Check connection string, credentials, network
|
|
166
|
-
- **Recovery:** Retry with exponential backoff (max 3 attempts)
|
|
167
|
-
|
|
168
|
-
2. **Error:** Query Syntax Error
|
|
169
|
-
- **Cause:** Invalid Cypher query syntax
|
|
170
|
-
- **Resolution:** Validate query syntax before execution
|
|
171
|
-
- **Recovery:** Return detailed syntax error, suggest fix
|
|
172
|
-
|
|
173
|
-
3. **Error:** Transaction Rollback
|
|
174
|
-
- **Cause:** Query violates constraints or timeout
|
|
175
|
-
- **Resolution:** Review query logic and constraints
|
|
176
|
-
- **Recovery:** Automatic rollback, preserve data integrity
|
|
177
|
-
|
|
178
|
-
---
|
|
179
|
-
|
|
180
|
-
## Performance
|
|
181
|
-
|
|
182
|
-
**Expected Metrics:**
|
|
183
|
-
|
|
184
|
-
```yaml
|
|
185
|
-
duration_expected: 5-15 min (estimated)
|
|
186
|
-
cost_estimated: $0.003-0.010
|
|
187
|
-
token_usage: ~3,000-10,000 tokens
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
**Optimization Notes:**
|
|
191
|
-
- Break into smaller workflows; implement checkpointing; use async processing where possible
|
|
192
|
-
|
|
193
|
-
---
|
|
194
|
-
|
|
195
|
-
## Metadata
|
|
196
|
-
|
|
197
|
-
```yaml
|
|
198
|
-
story: N/A
|
|
199
|
-
version: 1.0.0
|
|
200
|
-
dependencies:
|
|
201
|
-
- N/A
|
|
202
|
-
tags:
|
|
203
|
-
- database
|
|
204
|
-
- infrastructure
|
|
205
|
-
updated_at: 2025-11-17
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
---
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
## Process
|
|
212
|
-
|
|
213
|
-
### 1. Confirm Project Setup
|
|
214
|
-
|
|
215
|
-
Ask user:
|
|
216
|
-
|
|
217
|
-
**Project name**: (e.g., "mmos-platform")
|
|
218
|
-
|
|
219
|
-
**Include starter templates?**
|
|
220
|
-
1. Minimal - Directories only
|
|
221
|
-
2. Standard - Directories + READMEs + config
|
|
222
|
-
3. Full - Everything + baseline schema example
|
|
223
|
-
|
|
224
|
-
### 2. Create Directory Structure
|
|
225
|
-
|
|
226
|
-
```bash
|
|
227
|
-
mkdir -p supabase/{migrations,seeds,tests,rollback,snapshots,docs}
|
|
228
|
-
|
|
229
|
-
echo "✓ Created directories:
|
|
230
|
-
supabase/migrations/ - Schema migrations
|
|
231
|
-
supabase/seeds/ - Seed data
|
|
232
|
-
supabase/tests/ - Smoke tests
|
|
233
|
-
supabase/rollback/ - Rollback scripts
|
|
234
|
-
supabase/snapshots/ - Schema snapshots
|
|
235
|
-
supabase/docs/ - Documentation"
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
### 3. Create Core Files
|
|
239
|
-
|
|
240
|
-
#### supabase/migrations/README.md
|
|
241
|
-
|
|
242
|
-
```markdown
|
|
243
|
-
# Migrations
|
|
244
|
-
|
|
245
|
-
## Naming: YYYYMMDDHHMMSS_description.sql
|
|
246
|
-
|
|
247
|
-
Example: 20251026120000_baseline_schema.sql
|
|
248
|
-
|
|
249
|
-
## Order (within each file):
|
|
250
|
-
1. Extensions
|
|
251
|
-
2. Tables + Constraints
|
|
252
|
-
3. Functions
|
|
253
|
-
4. Triggers
|
|
254
|
-
5. RLS (enable + policies)
|
|
255
|
-
6. Views
|
|
256
|
-
|
|
257
|
-
## Workflow:
|
|
258
|
-
*verify-order migration.sql # Check order
|
|
259
|
-
*dry-run migration.sql # Test
|
|
260
|
-
*snapshot pre_migration # Create rollback point
|
|
261
|
-
*apply-migration migration.sql # Apply
|
|
262
|
-
*smoke-test # Validate
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
#### supabase/seeds/README.md
|
|
266
|
-
|
|
267
|
-
```markdown
|
|
268
|
-
# Seeds
|
|
269
|
-
|
|
270
|
-
## Naming: YYYYMMDDHHMMSS_description_seed.sql
|
|
271
|
-
|
|
272
|
-
## Types:
|
|
273
|
-
- Required: Data app needs to function
|
|
274
|
-
- Test: Sample data for development
|
|
275
|
-
- Reference: Lookup tables (countries, categories)
|
|
276
|
-
|
|
277
|
-
## Idempotent pattern:
|
|
278
|
-
INSERT INTO table (id, name) VALUES (1, 'value')
|
|
279
|
-
ON CONFLICT (id) DO NOTHING;
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
#### supabase/tests/README.md
|
|
283
|
-
|
|
284
|
-
```markdown
|
|
285
|
-
# Tests
|
|
286
|
-
|
|
287
|
-
## Smoke tests (post-migration validation):
|
|
288
|
-
- Tables exist
|
|
289
|
-
- RLS enabled
|
|
290
|
-
- Policies installed
|
|
291
|
-
- Functions callable
|
|
292
|
-
- Basic queries work
|
|
293
|
-
|
|
294
|
-
## Run: *smoke-test
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
#### supabase/rollback/README.md
|
|
298
|
-
|
|
299
|
-
```markdown
|
|
300
|
-
# Rollback
|
|
301
|
-
|
|
302
|
-
## Snapshots (automatic):
|
|
303
|
-
Created by *apply-migration and *snapshot commands
|
|
304
|
-
Located in: ../snapshots/
|
|
305
|
-
|
|
306
|
-
## Manual rollback scripts:
|
|
307
|
-
Write explicit undo operations for complex migrations
|
|
308
|
-
|
|
309
|
-
Example: YYYYMMDDHHMMSS_rollback_description.sql
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
#### supabase/.gitignore
|
|
313
|
-
|
|
314
|
-
```gitignore
|
|
315
|
-
# Local dev
|
|
316
|
-
.env
|
|
317
|
-
.env.local
|
|
318
|
-
.branches
|
|
319
|
-
.temp
|
|
320
|
-
|
|
321
|
-
# OS
|
|
322
|
-
.DS_Store
|
|
323
|
-
Thumbs.db
|
|
324
|
-
|
|
325
|
-
# Optional: Snapshots (if too large for git)
|
|
326
|
-
# snapshots/*.sql
|
|
327
|
-
```
|
|
328
|
-
|
|
329
|
-
### 4. Generate config.toml (if Standard or Full)
|
|
330
|
-
|
|
331
|
-
```toml
|
|
332
|
-
# Supabase Local Development Config
|
|
333
|
-
|
|
334
|
-
[api]
|
|
335
|
-
enabled = true
|
|
336
|
-
port = 54321
|
|
337
|
-
|
|
338
|
-
[db]
|
|
339
|
-
port = 54322
|
|
340
|
-
shadow_port = 54320
|
|
341
|
-
major_version = 15
|
|
342
|
-
|
|
343
|
-
[db.pooler]
|
|
344
|
-
enabled = true
|
|
345
|
-
port = 54329
|
|
346
|
-
pool_mode = "transaction"
|
|
347
|
-
|
|
348
|
-
[studio]
|
|
349
|
-
enabled = true
|
|
350
|
-
port = 54323
|
|
351
|
-
|
|
352
|
-
[auth]
|
|
353
|
-
enabled = true
|
|
354
|
-
site_url = "http://localhost:3000"
|
|
355
|
-
|
|
356
|
-
# See: https://supabase.com/docs/guides/cli/config
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
### 5. Create Baseline Schema (if Full option)
|
|
360
|
-
|
|
361
|
-
#### supabase/migrations/00000000000000_baseline.sql
|
|
362
|
-
|
|
363
|
-
```sql
|
|
364
|
-
-- Baseline Schema
|
|
365
|
-
-- Run after: supabase init
|
|
366
|
-
|
|
367
|
-
BEGIN;
|
|
368
|
-
|
|
369
|
-
-- Extensions
|
|
370
|
-
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
|
371
|
-
CREATE EXTENSION IF NOT EXISTS "pgcrypto";
|
|
372
|
-
|
|
373
|
-
-- Example table (customize for your project)
|
|
374
|
-
CREATE TABLE IF NOT EXISTS public.profiles (
|
|
375
|
-
id UUID PRIMARY KEY REFERENCES auth.users(id) ON DELETE CASCADE,
|
|
376
|
-
username TEXT UNIQUE,
|
|
377
|
-
full_name TEXT,
|
|
378
|
-
avatar_url TEXT,
|
|
379
|
-
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
380
|
-
updated_at TIMESTAMPTZ DEFAULT NOW()
|
|
381
|
-
);
|
|
382
|
-
|
|
383
|
-
-- Updated_at trigger
|
|
384
|
-
CREATE OR REPLACE FUNCTION public.handle_updated_at()
|
|
385
|
-
RETURNS TRIGGER AS $$
|
|
386
|
-
BEGIN
|
|
387
|
-
NEW.updated_at = NOW();
|
|
388
|
-
RETURN NEW;
|
|
389
|
-
END;
|
|
390
|
-
$$ LANGUAGE plpgsql;
|
|
391
|
-
|
|
392
|
-
CREATE TRIGGER set_updated_at
|
|
393
|
-
BEFORE UPDATE ON public.profiles
|
|
394
|
-
FOR EACH ROW
|
|
395
|
-
EXECUTE FUNCTION public.handle_updated_at();
|
|
396
|
-
|
|
397
|
-
-- RLS
|
|
398
|
-
ALTER TABLE public.profiles ENABLE ROW LEVEL SECURITY;
|
|
399
|
-
|
|
400
|
-
CREATE POLICY "Users can view own profile"
|
|
401
|
-
ON public.profiles FOR SELECT
|
|
402
|
-
TO authenticated
|
|
403
|
-
USING (auth.uid() = id);
|
|
404
|
-
|
|
405
|
-
CREATE POLICY "Users can update own profile"
|
|
406
|
-
ON public.profiles FOR UPDATE
|
|
407
|
-
TO authenticated
|
|
408
|
-
USING (auth.uid() = id)
|
|
409
|
-
WITH CHECK (auth.uid() = id);
|
|
410
|
-
|
|
411
|
-
-- Grants
|
|
412
|
-
GRANT USAGE ON SCHEMA public TO authenticated, anon;
|
|
413
|
-
GRANT SELECT, INSERT, UPDATE ON public.profiles TO authenticated;
|
|
414
|
-
|
|
415
|
-
COMMIT;
|
|
416
|
-
```
|
|
417
|
-
|
|
418
|
-
### 6. Create Initial Smoke Test
|
|
419
|
-
|
|
420
|
-
#### supabase/tests/smoke_test.sql
|
|
421
|
-
|
|
422
|
-
```sql
|
|
423
|
-
-- Basic smoke test
|
|
424
|
-
SET client_min_messages = warning;
|
|
425
|
-
|
|
426
|
-
\echo 'Checking tables...'
|
|
427
|
-
SELECT COUNT(*) AS tables FROM information_schema.tables
|
|
428
|
-
WHERE table_schema='public';
|
|
429
|
-
|
|
430
|
-
\echo 'Checking RLS...'
|
|
431
|
-
SELECT COUNT(*) AS rls_enabled FROM pg_tables
|
|
432
|
-
WHERE schemaname='public' AND rowsecurity=true;
|
|
433
|
-
|
|
434
|
-
\echo 'Checking policies...'
|
|
435
|
-
SELECT COUNT(*) AS policies FROM pg_policies
|
|
436
|
-
WHERE schemaname='public';
|
|
437
|
-
|
|
438
|
-
\echo '✓ Smoke test complete'
|
|
439
|
-
```
|
|
440
|
-
|
|
441
|
-
### 7. Create Migration Log
|
|
442
|
-
|
|
443
|
-
#### supabase/docs/migration-log.md
|
|
444
|
-
|
|
445
|
-
```markdown
|
|
446
|
-
# Migration Log
|
|
447
|
-
|
|
448
|
-
## Format:
|
|
449
|
-
### Version X.Y.Z - Description (Date)
|
|
450
|
-
- Migration: filename.sql
|
|
451
|
-
- Status: ✅ Success / ❌ Failed / ⏪ Rolled Back
|
|
452
|
-
- Changes: What changed
|
|
453
|
-
- Rollback: How to undo
|
|
454
|
-
|
|
455
|
-
---
|
|
456
|
-
|
|
457
|
-
## Baseline (Initial)
|
|
458
|
-
- Migration: 00000000000000_baseline.sql
|
|
459
|
-
- Status: ⏳ Pending
|
|
460
|
-
- Changes: Initial project structure
|
|
461
|
-
- Rollback: N/A (baseline)
|
|
462
|
-
```
|
|
463
|
-
|
|
464
|
-
---
|
|
465
|
-
|
|
466
|
-
## Success Output
|
|
467
|
-
|
|
468
|
-
```
|
|
469
|
-
✅ Supabase Project Bootstrapped
|
|
470
|
-
|
|
471
|
-
Structure created:
|
|
472
|
-
supabase/
|
|
473
|
-
├── migrations/ (migration files)
|
|
474
|
-
├── seeds/ (seed data)
|
|
475
|
-
├── tests/ (smoke tests)
|
|
476
|
-
├── rollback/ (rollback scripts)
|
|
477
|
-
├── snapshots/ (schema snapshots)
|
|
478
|
-
├── docs/ (documentation)
|
|
479
|
-
├── config.toml (local config)
|
|
480
|
-
└── .gitignore
|
|
481
|
-
|
|
482
|
-
Next steps:
|
|
483
|
-
1. Set SUPABASE_DB_URL in .env
|
|
484
|
-
2. *env-check - Validate setup
|
|
485
|
-
3. *apply-migration supabase/migrations/00000000000000_baseline.sql
|
|
486
|
-
4. *smoke-test - Validate baseline
|
|
487
|
-
5. *snapshot baseline - Create initial snapshot
|
|
488
|
-
|
|
489
|
-
Documentation:
|
|
490
|
-
- supabase/migrations/README.md
|
|
491
|
-
- supabase/docs/migration-log.md
|
|
492
|
-
```
|
|
493
|
-
|
|
494
|
-
---
|
|
495
|
-
|
|
496
|
-
## Environment Setup
|
|
497
|
-
|
|
498
|
-
Create `.env` file in project root:
|
|
499
|
-
|
|
500
|
-
```bash
|
|
501
|
-
# Supabase Database Connection
|
|
502
|
-
# Get from: https://app.supabase.com/project/_/settings/database
|
|
503
|
-
|
|
504
|
-
# Pooler (recommended for migrations)
|
|
505
|
-
SUPABASE_DB_URL="postgresql://postgres.[PASSWORD]@[PROJECT-REF].supabase.co:6543/postgres?sslmode=require"
|
|
506
|
-
|
|
507
|
-
# Direct (for backups/analysis)
|
|
508
|
-
# SUPABASE_DB_URL="postgresql://postgres.[PASSWORD]@[PROJECT-REF].supabase.co:5432/postgres?sslmode=require"
|
|
509
|
-
```
|
|
510
|
-
|
|
511
|
-
**Security**:
|
|
512
|
-
- ✅ Added to .gitignore
|
|
513
|
-
- ✅ Use pooler (port 6543)
|
|
514
|
-
- ✅ Require SSL
|
|
515
|
-
|
|
516
|
-
---
|
|
517
|
-
|
|
518
|
-
## Project Options
|
|
519
|
-
|
|
520
|
-
### Minimal (Directories Only)
|
|
521
|
-
```
|
|
522
|
-
supabase/
|
|
523
|
-
├── migrations/
|
|
524
|
-
├── seeds/
|
|
525
|
-
├── tests/
|
|
526
|
-
├── rollback/
|
|
527
|
-
├── snapshots/
|
|
528
|
-
└── docs/
|
|
529
|
-
```
|
|
530
|
-
**Use for**: Existing projects, simple setups
|
|
531
|
-
|
|
532
|
-
### Standard (+ READMEs + Config)
|
|
533
|
-
```
|
|
534
|
-
+ README.md files
|
|
535
|
-
+ config.toml
|
|
536
|
-
+ .gitignore
|
|
537
|
-
+ migration-log.md
|
|
538
|
-
```
|
|
539
|
-
**Use for**: New projects, team environments
|
|
540
|
-
|
|
541
|
-
### Full (+ Baseline Schema)
|
|
542
|
-
```
|
|
543
|
-
+ baseline.sql migration
|
|
544
|
-
+ smoke_test.sql
|
|
545
|
-
+ Example profiles table
|
|
546
|
-
+ RLS policies
|
|
547
|
-
```
|
|
548
|
-
**Use for**: Greenfield projects, learning
|
|
549
|
-
|
|
550
|
-
---
|
|
551
|
-
|
|
552
|
-
## Integration with Existing Projects
|
|
553
|
-
|
|
554
|
-
If `supabase/` already exists:
|
|
555
|
-
|
|
556
|
-
```bash
|
|
557
|
-
# Backup existing
|
|
558
|
-
mv supabase supabase.backup
|
|
559
|
-
|
|
560
|
-
# Bootstrap new
|
|
561
|
-
*bootstrap
|
|
562
|
-
|
|
563
|
-
# Merge as needed
|
|
564
|
-
cp supabase.backup/migrations/* supabase/migrations/
|
|
565
|
-
```
|
|
566
|
-
|
|
567
|
-
---
|
|
568
|
-
|
|
569
|
-
## Customization
|
|
570
|
-
|
|
571
|
-
### For Your Project
|
|
572
|
-
|
|
573
|
-
Replace baseline.sql with your tables:
|
|
574
|
-
- Copy schema from existing DB
|
|
575
|
-
- Or design with: `*create-schema`
|
|
576
|
-
- Then create migration file
|
|
577
|
-
|
|
578
|
-
### Team Standards
|
|
579
|
-
|
|
580
|
-
Edit READMEs to add:
|
|
581
|
-
- Team-specific naming conventions
|
|
582
|
-
- Required reviewers for migrations
|
|
583
|
-
- Deployment procedures
|
|
584
|
-
- Contact information
|
|
585
|
-
|
|
586
|
-
### CI/CD Integration
|
|
587
|
-
|
|
588
|
-
Add to pipeline:
|
|
589
|
-
|
|
590
|
-
```yaml
|
|
591
|
-
# .github/workflows/db-test.yml
|
|
592
|
-
- name: Run smoke tests
|
|
593
|
-
run: |
|
|
594
|
-
/db-sage
|
|
595
|
-
*smoke-test
|
|
596
|
-
```
|
|
597
|
-
|
|
598
|
-
---
|
|
599
|
-
|
|
600
|
-
## Next Steps After Bootstrap
|
|
601
|
-
|
|
602
|
-
1. **Environment**: Set SUPABASE_DB_URL
|
|
603
|
-
2. **Validate**: `*env-check`
|
|
604
|
-
3. **Design**: `*create-schema` (or use existing)
|
|
605
|
-
4. **Migrate**: `*apply-migration baseline.sql`
|
|
606
|
-
5. **Test**: `*smoke-test`
|
|
607
|
-
6. **Snapshot**: `*snapshot baseline`
|
|
608
|
-
7. **Document**: Update migration-log.md
|
|
609
|
-
|
|
610
|
-
---
|
|
611
|
-
|
|
612
|
-
## Common Issues
|
|
613
|
-
|
|
614
|
-
### "Directory already exists"
|
|
615
|
-
|
|
616
|
-
**Problem**: supabase/ folder exists
|
|
617
|
-
**Options**:
|
|
618
|
-
1. Backup and replace (recommended)
|
|
619
|
-
2. Merge manually
|
|
620
|
-
3. Choose different directory
|
|
621
|
-
|
|
622
|
-
### "No permission to create directories"
|
|
623
|
-
|
|
624
|
-
**Problem**: Insufficient file permissions
|
|
625
|
-
**Fix**: Check you're in project root with write access
|
|
626
|
-
|
|
627
|
-
### "Config conflicts with existing Supabase project"
|
|
628
|
-
|
|
629
|
-
**Problem**: Already using Supabase CLI
|
|
630
|
-
**Solution**: Bootstrap is compatible with Supabase CLI
|
|
631
|
-
- Keep existing config
|
|
632
|
-
- Use bootstrap for organization only
|
|
633
|
-
|
|
634
|
-
---
|
|
635
|
-
|
|
636
|
-
## Related Commands
|
|
637
|
-
|
|
638
|
-
- `*create-schema` - Design schema interactively
|
|
639
|
-
- `*apply-migration {path}` - Run first migration
|
|
640
|
-
- `*smoke-test` - Validate setup
|
|
641
|
-
- `*snapshot baseline` - Create initial snapshot
|
|
642
|
-
- `*env-check` - Validate environment
|
|
1
|
+
# Task: Bootstrap Supabase Project
|
|
2
|
+
|
|
3
|
+
**Purpose**: Create standard Supabase project structure
|
|
4
|
+
|
|
5
|
+
**Elicit**: true
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Execution Modes
|
|
10
|
+
|
|
11
|
+
**Choose your execution mode:**
|
|
12
|
+
|
|
13
|
+
### 1. YOLO Mode - Fast, Autonomous (0-1 prompts)
|
|
14
|
+
- Autonomous decision making with logging
|
|
15
|
+
- Minimal user interaction
|
|
16
|
+
- **Best for:** Simple, deterministic tasks
|
|
17
|
+
|
|
18
|
+
### 2. Interactive Mode - Balanced, Educational (5-10 prompts) **[DEFAULT]**
|
|
19
|
+
- Explicit decision checkpoints
|
|
20
|
+
- Educational explanations
|
|
21
|
+
- **Best for:** Learning, complex decisions
|
|
22
|
+
|
|
23
|
+
### 3. Pre-Flight Planning - Comprehensive Upfront Planning
|
|
24
|
+
- Task analysis phase (identify all ambiguities)
|
|
25
|
+
- Zero ambiguity execution
|
|
26
|
+
- **Best for:** Ambiguous requirements, critical work
|
|
27
|
+
|
|
28
|
+
**Parameter:** `mode` (optional, default: `interactive`)
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Task Definition (AIOS Task Format V1.0)
|
|
33
|
+
|
|
34
|
+
```yaml
|
|
35
|
+
task: dbBootstrap()
|
|
36
|
+
responsible: Dara (Sage)
|
|
37
|
+
responsible_type: Agent
|
|
38
|
+
atomic_layer: Organism
|
|
39
|
+
|
|
40
|
+
inputs:
|
|
41
|
+
- field: query
|
|
42
|
+
type: string
|
|
43
|
+
source: User Input
|
|
44
|
+
required: true
|
|
45
|
+
validation: Valid SQL query
|
|
46
|
+
|
|
47
|
+
- field: params
|
|
48
|
+
type: object
|
|
49
|
+
source: User Input
|
|
50
|
+
required: false
|
|
51
|
+
validation: Query parameters
|
|
52
|
+
|
|
53
|
+
- field: connection
|
|
54
|
+
type: object
|
|
55
|
+
source: config
|
|
56
|
+
required: true
|
|
57
|
+
validation: Valid PostgreSQL connection via Supabase
|
|
58
|
+
|
|
59
|
+
outputs:
|
|
60
|
+
- field: query_result
|
|
61
|
+
type: array
|
|
62
|
+
destination: Memory
|
|
63
|
+
persisted: false
|
|
64
|
+
|
|
65
|
+
- field: records_affected
|
|
66
|
+
type: number
|
|
67
|
+
destination: Return value
|
|
68
|
+
persisted: false
|
|
69
|
+
|
|
70
|
+
- field: execution_time
|
|
71
|
+
type: number
|
|
72
|
+
destination: Memory
|
|
73
|
+
persisted: false
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Pre-Conditions
|
|
79
|
+
|
|
80
|
+
**Purpose:** Validate prerequisites BEFORE task execution (blocking)
|
|
81
|
+
|
|
82
|
+
**Checklist:**
|
|
83
|
+
|
|
84
|
+
```yaml
|
|
85
|
+
pre-conditions:
|
|
86
|
+
- [ ] Database connection established; query syntax valid
|
|
87
|
+
tipo: pre-condition
|
|
88
|
+
blocker: true
|
|
89
|
+
validação: |
|
|
90
|
+
Check database connection established; query syntax valid
|
|
91
|
+
error_message: "Pre-condition failed: Database connection established; query syntax valid"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Post-Conditions
|
|
97
|
+
|
|
98
|
+
**Purpose:** Validate execution success AFTER task completes
|
|
99
|
+
|
|
100
|
+
**Checklist:**
|
|
101
|
+
|
|
102
|
+
```yaml
|
|
103
|
+
post-conditions:
|
|
104
|
+
- [ ] Query executed; results returned; transaction committed
|
|
105
|
+
tipo: post-condition
|
|
106
|
+
blocker: true
|
|
107
|
+
validação: |
|
|
108
|
+
Verify query executed; results returned; transaction committed
|
|
109
|
+
error_message: "Post-condition failed: Query executed; results returned; transaction committed"
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Acceptance Criteria
|
|
115
|
+
|
|
116
|
+
**Purpose:** Definitive pass/fail criteria for task completion
|
|
117
|
+
|
|
118
|
+
**Checklist:**
|
|
119
|
+
|
|
120
|
+
```yaml
|
|
121
|
+
acceptance-criteria:
|
|
122
|
+
- [ ] Data persisted correctly; constraints respected; no orphaned data
|
|
123
|
+
tipo: acceptance-criterion
|
|
124
|
+
blocker: true
|
|
125
|
+
validação: |
|
|
126
|
+
Assert data persisted correctly; constraints respected; no orphaned data
|
|
127
|
+
error_message: "Acceptance criterion not met: Data persisted correctly; constraints respected; no orphaned data"
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Tools
|
|
133
|
+
|
|
134
|
+
**External/shared resources used by this task:**
|
|
135
|
+
|
|
136
|
+
- **Tool:** supabase
|
|
137
|
+
- **Purpose:** PostgreSQL database connection via Supabase client
|
|
138
|
+
- **Source:** @supabase/supabase-js
|
|
139
|
+
|
|
140
|
+
- **Tool:** query-validator
|
|
141
|
+
- **Purpose:** SQL query syntax validation
|
|
142
|
+
- **Source:** .aios-core/utils/db-query-validator.js
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Scripts
|
|
147
|
+
|
|
148
|
+
**Agent-specific code for this task:**
|
|
149
|
+
|
|
150
|
+
- **Script:** db-query.js
|
|
151
|
+
- **Purpose:** Execute PostgreSQL queries with error handling via Supabase
|
|
152
|
+
- **Language:** JavaScript
|
|
153
|
+
- **Location:** .aios-core/scripts/db-query.js
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Error Handling
|
|
158
|
+
|
|
159
|
+
**Strategy:** retry
|
|
160
|
+
|
|
161
|
+
**Common Errors:**
|
|
162
|
+
|
|
163
|
+
1. **Error:** Connection Failed
|
|
164
|
+
- **Cause:** Unable to connect to Neo4j database
|
|
165
|
+
- **Resolution:** Check connection string, credentials, network
|
|
166
|
+
- **Recovery:** Retry with exponential backoff (max 3 attempts)
|
|
167
|
+
|
|
168
|
+
2. **Error:** Query Syntax Error
|
|
169
|
+
- **Cause:** Invalid Cypher query syntax
|
|
170
|
+
- **Resolution:** Validate query syntax before execution
|
|
171
|
+
- **Recovery:** Return detailed syntax error, suggest fix
|
|
172
|
+
|
|
173
|
+
3. **Error:** Transaction Rollback
|
|
174
|
+
- **Cause:** Query violates constraints or timeout
|
|
175
|
+
- **Resolution:** Review query logic and constraints
|
|
176
|
+
- **Recovery:** Automatic rollback, preserve data integrity
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Performance
|
|
181
|
+
|
|
182
|
+
**Expected Metrics:**
|
|
183
|
+
|
|
184
|
+
```yaml
|
|
185
|
+
duration_expected: 5-15 min (estimated)
|
|
186
|
+
cost_estimated: $0.003-0.010
|
|
187
|
+
token_usage: ~3,000-10,000 tokens
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**Optimization Notes:**
|
|
191
|
+
- Break into smaller workflows; implement checkpointing; use async processing where possible
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Metadata
|
|
196
|
+
|
|
197
|
+
```yaml
|
|
198
|
+
story: N/A
|
|
199
|
+
version: 1.0.0
|
|
200
|
+
dependencies:
|
|
201
|
+
- N/A
|
|
202
|
+
tags:
|
|
203
|
+
- database
|
|
204
|
+
- infrastructure
|
|
205
|
+
updated_at: 2025-11-17
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
## Process
|
|
212
|
+
|
|
213
|
+
### 1. Confirm Project Setup
|
|
214
|
+
|
|
215
|
+
Ask user:
|
|
216
|
+
|
|
217
|
+
**Project name**: (e.g., "mmos-platform")
|
|
218
|
+
|
|
219
|
+
**Include starter templates?**
|
|
220
|
+
1. Minimal - Directories only
|
|
221
|
+
2. Standard - Directories + READMEs + config
|
|
222
|
+
3. Full - Everything + baseline schema example
|
|
223
|
+
|
|
224
|
+
### 2. Create Directory Structure
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
mkdir -p supabase/{migrations,seeds,tests,rollback,snapshots,docs}
|
|
228
|
+
|
|
229
|
+
echo "✓ Created directories:
|
|
230
|
+
supabase/migrations/ - Schema migrations
|
|
231
|
+
supabase/seeds/ - Seed data
|
|
232
|
+
supabase/tests/ - Smoke tests
|
|
233
|
+
supabase/rollback/ - Rollback scripts
|
|
234
|
+
supabase/snapshots/ - Schema snapshots
|
|
235
|
+
supabase/docs/ - Documentation"
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### 3. Create Core Files
|
|
239
|
+
|
|
240
|
+
#### supabase/migrations/README.md
|
|
241
|
+
|
|
242
|
+
```markdown
|
|
243
|
+
# Migrations
|
|
244
|
+
|
|
245
|
+
## Naming: YYYYMMDDHHMMSS_description.sql
|
|
246
|
+
|
|
247
|
+
Example: 20251026120000_baseline_schema.sql
|
|
248
|
+
|
|
249
|
+
## Order (within each file):
|
|
250
|
+
1. Extensions
|
|
251
|
+
2. Tables + Constraints
|
|
252
|
+
3. Functions
|
|
253
|
+
4. Triggers
|
|
254
|
+
5. RLS (enable + policies)
|
|
255
|
+
6. Views
|
|
256
|
+
|
|
257
|
+
## Workflow:
|
|
258
|
+
*verify-order migration.sql # Check order
|
|
259
|
+
*dry-run migration.sql # Test
|
|
260
|
+
*snapshot pre_migration # Create rollback point
|
|
261
|
+
*apply-migration migration.sql # Apply
|
|
262
|
+
*smoke-test # Validate
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
#### supabase/seeds/README.md
|
|
266
|
+
|
|
267
|
+
```markdown
|
|
268
|
+
# Seeds
|
|
269
|
+
|
|
270
|
+
## Naming: YYYYMMDDHHMMSS_description_seed.sql
|
|
271
|
+
|
|
272
|
+
## Types:
|
|
273
|
+
- Required: Data app needs to function
|
|
274
|
+
- Test: Sample data for development
|
|
275
|
+
- Reference: Lookup tables (countries, categories)
|
|
276
|
+
|
|
277
|
+
## Idempotent pattern:
|
|
278
|
+
INSERT INTO table (id, name) VALUES (1, 'value')
|
|
279
|
+
ON CONFLICT (id) DO NOTHING;
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
#### supabase/tests/README.md
|
|
283
|
+
|
|
284
|
+
```markdown
|
|
285
|
+
# Tests
|
|
286
|
+
|
|
287
|
+
## Smoke tests (post-migration validation):
|
|
288
|
+
- Tables exist
|
|
289
|
+
- RLS enabled
|
|
290
|
+
- Policies installed
|
|
291
|
+
- Functions callable
|
|
292
|
+
- Basic queries work
|
|
293
|
+
|
|
294
|
+
## Run: *smoke-test
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
#### supabase/rollback/README.md
|
|
298
|
+
|
|
299
|
+
```markdown
|
|
300
|
+
# Rollback
|
|
301
|
+
|
|
302
|
+
## Snapshots (automatic):
|
|
303
|
+
Created by *apply-migration and *snapshot commands
|
|
304
|
+
Located in: ../snapshots/
|
|
305
|
+
|
|
306
|
+
## Manual rollback scripts:
|
|
307
|
+
Write explicit undo operations for complex migrations
|
|
308
|
+
|
|
309
|
+
Example: YYYYMMDDHHMMSS_rollback_description.sql
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
#### supabase/.gitignore
|
|
313
|
+
|
|
314
|
+
```gitignore
|
|
315
|
+
# Local dev
|
|
316
|
+
.env
|
|
317
|
+
.env.local
|
|
318
|
+
.branches
|
|
319
|
+
.temp
|
|
320
|
+
|
|
321
|
+
# OS
|
|
322
|
+
.DS_Store
|
|
323
|
+
Thumbs.db
|
|
324
|
+
|
|
325
|
+
# Optional: Snapshots (if too large for git)
|
|
326
|
+
# snapshots/*.sql
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### 4. Generate config.toml (if Standard or Full)
|
|
330
|
+
|
|
331
|
+
```toml
|
|
332
|
+
# Supabase Local Development Config
|
|
333
|
+
|
|
334
|
+
[api]
|
|
335
|
+
enabled = true
|
|
336
|
+
port = 54321
|
|
337
|
+
|
|
338
|
+
[db]
|
|
339
|
+
port = 54322
|
|
340
|
+
shadow_port = 54320
|
|
341
|
+
major_version = 15
|
|
342
|
+
|
|
343
|
+
[db.pooler]
|
|
344
|
+
enabled = true
|
|
345
|
+
port = 54329
|
|
346
|
+
pool_mode = "transaction"
|
|
347
|
+
|
|
348
|
+
[studio]
|
|
349
|
+
enabled = true
|
|
350
|
+
port = 54323
|
|
351
|
+
|
|
352
|
+
[auth]
|
|
353
|
+
enabled = true
|
|
354
|
+
site_url = "http://localhost:3000"
|
|
355
|
+
|
|
356
|
+
# See: https://supabase.com/docs/guides/cli/config
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### 5. Create Baseline Schema (if Full option)
|
|
360
|
+
|
|
361
|
+
#### supabase/migrations/00000000000000_baseline.sql
|
|
362
|
+
|
|
363
|
+
```sql
|
|
364
|
+
-- Baseline Schema
|
|
365
|
+
-- Run after: supabase init
|
|
366
|
+
|
|
367
|
+
BEGIN;
|
|
368
|
+
|
|
369
|
+
-- Extensions
|
|
370
|
+
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
|
371
|
+
CREATE EXTENSION IF NOT EXISTS "pgcrypto";
|
|
372
|
+
|
|
373
|
+
-- Example table (customize for your project)
|
|
374
|
+
CREATE TABLE IF NOT EXISTS public.profiles (
|
|
375
|
+
id UUID PRIMARY KEY REFERENCES auth.users(id) ON DELETE CASCADE,
|
|
376
|
+
username TEXT UNIQUE,
|
|
377
|
+
full_name TEXT,
|
|
378
|
+
avatar_url TEXT,
|
|
379
|
+
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
380
|
+
updated_at TIMESTAMPTZ DEFAULT NOW()
|
|
381
|
+
);
|
|
382
|
+
|
|
383
|
+
-- Updated_at trigger
|
|
384
|
+
CREATE OR REPLACE FUNCTION public.handle_updated_at()
|
|
385
|
+
RETURNS TRIGGER AS $$
|
|
386
|
+
BEGIN
|
|
387
|
+
NEW.updated_at = NOW();
|
|
388
|
+
RETURN NEW;
|
|
389
|
+
END;
|
|
390
|
+
$$ LANGUAGE plpgsql;
|
|
391
|
+
|
|
392
|
+
CREATE TRIGGER set_updated_at
|
|
393
|
+
BEFORE UPDATE ON public.profiles
|
|
394
|
+
FOR EACH ROW
|
|
395
|
+
EXECUTE FUNCTION public.handle_updated_at();
|
|
396
|
+
|
|
397
|
+
-- RLS
|
|
398
|
+
ALTER TABLE public.profiles ENABLE ROW LEVEL SECURITY;
|
|
399
|
+
|
|
400
|
+
CREATE POLICY "Users can view own profile"
|
|
401
|
+
ON public.profiles FOR SELECT
|
|
402
|
+
TO authenticated
|
|
403
|
+
USING (auth.uid() = id);
|
|
404
|
+
|
|
405
|
+
CREATE POLICY "Users can update own profile"
|
|
406
|
+
ON public.profiles FOR UPDATE
|
|
407
|
+
TO authenticated
|
|
408
|
+
USING (auth.uid() = id)
|
|
409
|
+
WITH CHECK (auth.uid() = id);
|
|
410
|
+
|
|
411
|
+
-- Grants
|
|
412
|
+
GRANT USAGE ON SCHEMA public TO authenticated, anon;
|
|
413
|
+
GRANT SELECT, INSERT, UPDATE ON public.profiles TO authenticated;
|
|
414
|
+
|
|
415
|
+
COMMIT;
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### 6. Create Initial Smoke Test
|
|
419
|
+
|
|
420
|
+
#### supabase/tests/smoke_test.sql
|
|
421
|
+
|
|
422
|
+
```sql
|
|
423
|
+
-- Basic smoke test
|
|
424
|
+
SET client_min_messages = warning;
|
|
425
|
+
|
|
426
|
+
\echo 'Checking tables...'
|
|
427
|
+
SELECT COUNT(*) AS tables FROM information_schema.tables
|
|
428
|
+
WHERE table_schema='public';
|
|
429
|
+
|
|
430
|
+
\echo 'Checking RLS...'
|
|
431
|
+
SELECT COUNT(*) AS rls_enabled FROM pg_tables
|
|
432
|
+
WHERE schemaname='public' AND rowsecurity=true;
|
|
433
|
+
|
|
434
|
+
\echo 'Checking policies...'
|
|
435
|
+
SELECT COUNT(*) AS policies FROM pg_policies
|
|
436
|
+
WHERE schemaname='public';
|
|
437
|
+
|
|
438
|
+
\echo '✓ Smoke test complete'
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
### 7. Create Migration Log
|
|
442
|
+
|
|
443
|
+
#### supabase/docs/migration-log.md
|
|
444
|
+
|
|
445
|
+
```markdown
|
|
446
|
+
# Migration Log
|
|
447
|
+
|
|
448
|
+
## Format:
|
|
449
|
+
### Version X.Y.Z - Description (Date)
|
|
450
|
+
- Migration: filename.sql
|
|
451
|
+
- Status: ✅ Success / ❌ Failed / ⏪ Rolled Back
|
|
452
|
+
- Changes: What changed
|
|
453
|
+
- Rollback: How to undo
|
|
454
|
+
|
|
455
|
+
---
|
|
456
|
+
|
|
457
|
+
## Baseline (Initial)
|
|
458
|
+
- Migration: 00000000000000_baseline.sql
|
|
459
|
+
- Status: ⏳ Pending
|
|
460
|
+
- Changes: Initial project structure
|
|
461
|
+
- Rollback: N/A (baseline)
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
|
|
466
|
+
## Success Output
|
|
467
|
+
|
|
468
|
+
```
|
|
469
|
+
✅ Supabase Project Bootstrapped
|
|
470
|
+
|
|
471
|
+
Structure created:
|
|
472
|
+
supabase/
|
|
473
|
+
├── migrations/ (migration files)
|
|
474
|
+
├── seeds/ (seed data)
|
|
475
|
+
├── tests/ (smoke tests)
|
|
476
|
+
├── rollback/ (rollback scripts)
|
|
477
|
+
├── snapshots/ (schema snapshots)
|
|
478
|
+
├── docs/ (documentation)
|
|
479
|
+
├── config.toml (local config)
|
|
480
|
+
└── .gitignore
|
|
481
|
+
|
|
482
|
+
Next steps:
|
|
483
|
+
1. Set SUPABASE_DB_URL in .env
|
|
484
|
+
2. *env-check - Validate setup
|
|
485
|
+
3. *apply-migration supabase/migrations/00000000000000_baseline.sql
|
|
486
|
+
4. *smoke-test - Validate baseline
|
|
487
|
+
5. *snapshot baseline - Create initial snapshot
|
|
488
|
+
|
|
489
|
+
Documentation:
|
|
490
|
+
- supabase/migrations/README.md
|
|
491
|
+
- supabase/docs/migration-log.md
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
---
|
|
495
|
+
|
|
496
|
+
## Environment Setup
|
|
497
|
+
|
|
498
|
+
Create `.env` file in project root:
|
|
499
|
+
|
|
500
|
+
```bash
|
|
501
|
+
# Supabase Database Connection
|
|
502
|
+
# Get from: https://app.supabase.com/project/_/settings/database
|
|
503
|
+
|
|
504
|
+
# Pooler (recommended for migrations)
|
|
505
|
+
SUPABASE_DB_URL="postgresql://postgres.[PASSWORD]@[PROJECT-REF].supabase.co:6543/postgres?sslmode=require"
|
|
506
|
+
|
|
507
|
+
# Direct (for backups/analysis)
|
|
508
|
+
# SUPABASE_DB_URL="postgresql://postgres.[PASSWORD]@[PROJECT-REF].supabase.co:5432/postgres?sslmode=require"
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
**Security**:
|
|
512
|
+
- ✅ Added to .gitignore
|
|
513
|
+
- ✅ Use pooler (port 6543)
|
|
514
|
+
- ✅ Require SSL
|
|
515
|
+
|
|
516
|
+
---
|
|
517
|
+
|
|
518
|
+
## Project Options
|
|
519
|
+
|
|
520
|
+
### Minimal (Directories Only)
|
|
521
|
+
```
|
|
522
|
+
supabase/
|
|
523
|
+
├── migrations/
|
|
524
|
+
├── seeds/
|
|
525
|
+
├── tests/
|
|
526
|
+
├── rollback/
|
|
527
|
+
├── snapshots/
|
|
528
|
+
└── docs/
|
|
529
|
+
```
|
|
530
|
+
**Use for**: Existing projects, simple setups
|
|
531
|
+
|
|
532
|
+
### Standard (+ READMEs + Config)
|
|
533
|
+
```
|
|
534
|
+
+ README.md files
|
|
535
|
+
+ config.toml
|
|
536
|
+
+ .gitignore
|
|
537
|
+
+ migration-log.md
|
|
538
|
+
```
|
|
539
|
+
**Use for**: New projects, team environments
|
|
540
|
+
|
|
541
|
+
### Full (+ Baseline Schema)
|
|
542
|
+
```
|
|
543
|
+
+ baseline.sql migration
|
|
544
|
+
+ smoke_test.sql
|
|
545
|
+
+ Example profiles table
|
|
546
|
+
+ RLS policies
|
|
547
|
+
```
|
|
548
|
+
**Use for**: Greenfield projects, learning
|
|
549
|
+
|
|
550
|
+
---
|
|
551
|
+
|
|
552
|
+
## Integration with Existing Projects
|
|
553
|
+
|
|
554
|
+
If `supabase/` already exists:
|
|
555
|
+
|
|
556
|
+
```bash
|
|
557
|
+
# Backup existing
|
|
558
|
+
mv supabase supabase.backup
|
|
559
|
+
|
|
560
|
+
# Bootstrap new
|
|
561
|
+
*bootstrap
|
|
562
|
+
|
|
563
|
+
# Merge as needed
|
|
564
|
+
cp supabase.backup/migrations/* supabase/migrations/
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
---
|
|
568
|
+
|
|
569
|
+
## Customization
|
|
570
|
+
|
|
571
|
+
### For Your Project
|
|
572
|
+
|
|
573
|
+
Replace baseline.sql with your tables:
|
|
574
|
+
- Copy schema from existing DB
|
|
575
|
+
- Or design with: `*create-schema`
|
|
576
|
+
- Then create migration file
|
|
577
|
+
|
|
578
|
+
### Team Standards
|
|
579
|
+
|
|
580
|
+
Edit READMEs to add:
|
|
581
|
+
- Team-specific naming conventions
|
|
582
|
+
- Required reviewers for migrations
|
|
583
|
+
- Deployment procedures
|
|
584
|
+
- Contact information
|
|
585
|
+
|
|
586
|
+
### CI/CD Integration
|
|
587
|
+
|
|
588
|
+
Add to pipeline:
|
|
589
|
+
|
|
590
|
+
```yaml
|
|
591
|
+
# .github/workflows/db-test.yml
|
|
592
|
+
- name: Run smoke tests
|
|
593
|
+
run: |
|
|
594
|
+
/db-sage
|
|
595
|
+
*smoke-test
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
---
|
|
599
|
+
|
|
600
|
+
## Next Steps After Bootstrap
|
|
601
|
+
|
|
602
|
+
1. **Environment**: Set SUPABASE_DB_URL
|
|
603
|
+
2. **Validate**: `*env-check`
|
|
604
|
+
3. **Design**: `*create-schema` (or use existing)
|
|
605
|
+
4. **Migrate**: `*apply-migration baseline.sql`
|
|
606
|
+
5. **Test**: `*smoke-test`
|
|
607
|
+
6. **Snapshot**: `*snapshot baseline`
|
|
608
|
+
7. **Document**: Update migration-log.md
|
|
609
|
+
|
|
610
|
+
---
|
|
611
|
+
|
|
612
|
+
## Common Issues
|
|
613
|
+
|
|
614
|
+
### "Directory already exists"
|
|
615
|
+
|
|
616
|
+
**Problem**: supabase/ folder exists
|
|
617
|
+
**Options**:
|
|
618
|
+
1. Backup and replace (recommended)
|
|
619
|
+
2. Merge manually
|
|
620
|
+
3. Choose different directory
|
|
621
|
+
|
|
622
|
+
### "No permission to create directories"
|
|
623
|
+
|
|
624
|
+
**Problem**: Insufficient file permissions
|
|
625
|
+
**Fix**: Check you're in project root with write access
|
|
626
|
+
|
|
627
|
+
### "Config conflicts with existing Supabase project"
|
|
628
|
+
|
|
629
|
+
**Problem**: Already using Supabase CLI
|
|
630
|
+
**Solution**: Bootstrap is compatible with Supabase CLI
|
|
631
|
+
- Keep existing config
|
|
632
|
+
- Use bootstrap for organization only
|
|
633
|
+
|
|
634
|
+
---
|
|
635
|
+
|
|
636
|
+
## Related Commands
|
|
637
|
+
|
|
638
|
+
- `*create-schema` - Design schema interactively
|
|
639
|
+
- `*apply-migration {path}` - Run first migration
|
|
640
|
+
- `*smoke-test` - Validate setup
|
|
641
|
+
- `*snapshot baseline` - Create initial snapshot
|
|
642
|
+
- `*env-check` - Validate environment
|