proagents 1.0.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/LICENSE +21 -0
- package/README.md +170 -0
- package/bin/proagents.js +90 -0
- package/lib/commands/feature.js +125 -0
- package/lib/commands/fix.js +60 -0
- package/lib/commands/help.js +76 -0
- package/lib/commands/init.js +64 -0
- package/lib/commands/status.js +91 -0
- package/lib/index.js +28 -0
- package/package.json +52 -0
- package/proagents/.learning/global/common-patterns.json +77 -0
- package/proagents/.learning/global/user-preferences.json +76 -0
- package/proagents/.learning/projects/example-project/corrections.json +99 -0
- package/proagents/.learning/projects/example-project/feedback.json +109 -0
- package/proagents/.learning/projects/example-project/metrics.json +101 -0
- package/proagents/.learning/projects/example-project/patterns.json +102 -0
- package/proagents/.learning/schemas/README.md +48 -0
- package/proagents/.learning/schemas/corrections-schema.json +100 -0
- package/proagents/.learning/schemas/feedback-schema.json +144 -0
- package/proagents/.learning/schemas/metrics-schema.json +96 -0
- package/proagents/.learning/schemas/patterns-schema.json +82 -0
- package/proagents/.learning/schemas/project-patterns-schema.json +125 -0
- package/proagents/.learning/schemas/user-preferences-schema.json +136 -0
- package/proagents/GETTING-STARTED-STORY.md +708 -0
- package/proagents/README.md +99 -0
- package/proagents/WORKFLOW.md +1234 -0
- package/proagents/active-features/.gitkeep +0 -0
- package/proagents/active-features/README.md +176 -0
- package/proagents/active-features/_index.json +74 -0
- package/proagents/active-features/feature-user-auth/dependencies.json +81 -0
- package/proagents/active-features/feature-user-auth/files-modified.json +126 -0
- package/proagents/active-features/feature-user-auth/status.json +122 -0
- package/proagents/active-features/schemas/dependencies-schema.json +119 -0
- package/proagents/active-features/schemas/feature-schema.json +132 -0
- package/proagents/active-features/schemas/files-schema.json +100 -0
- package/proagents/active-features/schemas/index-schema.json +95 -0
- package/proagents/adr/README.md +302 -0
- package/proagents/adr/examples/api-versioning.md +297 -0
- package/proagents/adr/examples/database-choice.md +264 -0
- package/proagents/adr/template.md +273 -0
- package/proagents/ai-models/README.md +141 -0
- package/proagents/ai-models/cost-management.md +362 -0
- package/proagents/ai-models/fallbacks.md +342 -0
- package/proagents/ai-models/model-config.md +318 -0
- package/proagents/ai-models/task-routing.md +503 -0
- package/proagents/ai-training/README.md +155 -0
- package/proagents/ai-training/continuous-learning.md +413 -0
- package/proagents/ai-training/domain-knowledge.md +378 -0
- package/proagents/ai-training/pattern-learning.md +455 -0
- package/proagents/ai-training/training-data.md +337 -0
- package/proagents/ai-training/user-preferences.md +346 -0
- package/proagents/api-versioning/README.md +257 -0
- package/proagents/api-versioning/changelog-template.md +225 -0
- package/proagents/api-versioning/deprecation-workflow.md +470 -0
- package/proagents/api-versioning/versioning-strategy.md +291 -0
- package/proagents/approval-workflows/README.md +146 -0
- package/proagents/approval-workflows/approval-config.md +332 -0
- package/proagents/approval-workflows/approval-stages.md +503 -0
- package/proagents/approval-workflows/emergency-bypass.md +351 -0
- package/proagents/approval-workflows/examples.md +859 -0
- package/proagents/approval-workflows/notifications.md +320 -0
- package/proagents/automation/README.md +38 -0
- package/proagents/automation/ai-behavior-rules.md +339 -0
- package/proagents/automation/ai-prompt-injection.md +331 -0
- package/proagents/automation/auto-decisions.md +535 -0
- package/proagents/automation/decision-defaults.yaml +317 -0
- package/proagents/cache/README.md +110 -0
- package/proagents/cache/analysis-metadata.json +76 -0
- package/proagents/cache/conventions.json +125 -0
- package/proagents/cache/dependencies.json +85 -0
- package/proagents/cache/features.json +115 -0
- package/proagents/cache/patterns.json +105 -0
- package/proagents/cache/schemas/conventions-schema.json +138 -0
- package/proagents/cache/schemas/dependencies-schema.json +95 -0
- package/proagents/cache/schemas/features-schema.json +104 -0
- package/proagents/cache/schemas/metadata-schema.json +83 -0
- package/proagents/cache/schemas/patterns-schema.json +136 -0
- package/proagents/cache/schemas/structure-schema.json +72 -0
- package/proagents/cache/structure.json +109 -0
- package/proagents/changelog/2024/01/2024-01-10-api-url-config.md +41 -0
- package/proagents/changelog/2024/01/2024-01-12-login-bug-fix.md +69 -0
- package/proagents/changelog/2024/01/2024-01-15-user-auth-feature.md +99 -0
- package/proagents/changelog/CHANGELOG.md +82 -0
- package/proagents/changelog/README.md +327 -0
- package/proagents/changelog/entry-template.md +283 -0
- package/proagents/checklists/README.md +261 -0
- package/proagents/checklists/code-quality.md +137 -0
- package/proagents/checklists/code-review.md +148 -0
- package/proagents/checklists/pr-checklist.md +78 -0
- package/proagents/checklists/pre-deployment.md +132 -0
- package/proagents/checklists/pre-implementation.md +80 -0
- package/proagents/checklists/testing.md +120 -0
- package/proagents/cicd/README.md +338 -0
- package/proagents/cicd/azure-devops.md +267 -0
- package/proagents/cicd/github-actions.md +375 -0
- package/proagents/cicd/gitlab-ci.md +278 -0
- package/proagents/cicd/jenkins.md +317 -0
- package/proagents/cli/README.md +392 -0
- package/proagents/cli/commands-reference.md +893 -0
- package/proagents/cli/ide-integration.md +584 -0
- package/proagents/cli/shortcuts.md +394 -0
- package/proagents/cli/slash-commands.md +507 -0
- package/proagents/collaboration/README.md +143 -0
- package/proagents/collaboration/roles.md +248 -0
- package/proagents/collaboration/sessions.md +390 -0
- package/proagents/collaboration/sync.md +358 -0
- package/proagents/compliance/README.md +206 -0
- package/proagents/compliance/access-control.md +310 -0
- package/proagents/compliance/audit-logging.md +444 -0
- package/proagents/compliance/compliance-frameworks.md +429 -0
- package/proagents/compliance/reports.md +491 -0
- package/proagents/compliance/retention-policies.md +454 -0
- package/proagents/config/README.md +181 -0
- package/proagents/config/integrations/README.md +68 -0
- package/proagents/config/integrations/github.yaml +211 -0
- package/proagents/config/integrations/jira.yaml +144 -0
- package/proagents/config/integrations/linear.yaml +157 -0
- package/proagents/config/integrations/notion.yaml +203 -0
- package/proagents/config/integrations/slack.yaml +230 -0
- package/proagents/config/rules/README.md +73 -0
- package/proagents/config/rules/custom-rules.template.yaml +188 -0
- package/proagents/config/rules/validation-rules.template.yaml +177 -0
- package/proagents/config/standards/README.md +58 -0
- package/proagents/config/standards/architecture-rules.template.md +124 -0
- package/proagents/config/standards/coding-standards.template.md +107 -0
- package/proagents/config/standards/naming-conventions.template.md +114 -0
- package/proagents/config/standards/testing-standards.template.md +213 -0
- package/proagents/config/templates/README.md +74 -0
- package/proagents/config/templates/api-route.template.ts +142 -0
- package/proagents/config/templates/component.template.tsx +55 -0
- package/proagents/config/templates/hook.template.ts +93 -0
- package/proagents/config/templates/test.template.ts +171 -0
- package/proagents/config-versioning/README.md +120 -0
- package/proagents/config-versioning/changelog.md +300 -0
- package/proagents/config-versioning/rollback.md +283 -0
- package/proagents/config-versioning/versioning.md +330 -0
- package/proagents/contract-testing/README.md +223 -0
- package/proagents/contract-testing/contract-testing.md +614 -0
- package/proagents/contract-testing/pact-integration.md +507 -0
- package/proagents/contract-testing/schema-validation.md +565 -0
- package/proagents/cost/README.md +48 -0
- package/proagents/cost/cost-template.md +283 -0
- package/proagents/cost/estimation-framework.md +287 -0
- package/proagents/database/README.md +72 -0
- package/proagents/database/examples/001-create-users.sql +129 -0
- package/proagents/database/examples/002-add-preferences.sql +94 -0
- package/proagents/database/examples/003-add-index.sql +105 -0
- package/proagents/database/examples/004-rename-column.sql +122 -0
- package/proagents/database/examples/005-add-foreign-key.sql +142 -0
- package/proagents/database/examples/006-data-migration.sql +196 -0
- package/proagents/database/examples/007-drop-column.sql +163 -0
- package/proagents/database/examples/README.md +89 -0
- package/proagents/database/migration-workflow.md +478 -0
- package/proagents/database/rollback-scripts.md +487 -0
- package/proagents/database/safety-checks.md +447 -0
- package/proagents/dependency-management/README.md +140 -0
- package/proagents/dependency-management/automation.md +363 -0
- package/proagents/dependency-management/compatibility.md +319 -0
- package/proagents/dependency-management/security-scanning.md +413 -0
- package/proagents/dependency-management/update-policies.md +374 -0
- package/proagents/disaster-recovery/README.md +247 -0
- package/proagents/disaster-recovery/automation.md +366 -0
- package/proagents/disaster-recovery/backup-recovery.md +571 -0
- package/proagents/disaster-recovery/incident-response.md +565 -0
- package/proagents/disaster-recovery/rollback-procedures.md +499 -0
- package/proagents/disaster-recovery/runbooks.md +603 -0
- package/proagents/disaster-recovery/scenarios.md +892 -0
- package/proagents/disaster-recovery/testing.md +438 -0
- package/proagents/environments/README.md +244 -0
- package/proagents/environments/configuration.md +437 -0
- package/proagents/environments/promotion.md +434 -0
- package/proagents/environments/setup.md +420 -0
- package/proagents/examples/README.md +55 -0
- package/proagents/examples/backend-nodejs/README.md +188 -0
- package/proagents/examples/backend-nodejs/complete-conversation.md +601 -0
- package/proagents/examples/backend-nodejs/proagents.config.yaml +415 -0
- package/proagents/examples/backend-nodejs/workflow-example.md +909 -0
- package/proagents/examples/fullstack-nextjs/README.md +155 -0
- package/proagents/examples/fullstack-nextjs/complete-conversation.md +604 -0
- package/proagents/examples/fullstack-nextjs/proagents.config.yaml +287 -0
- package/proagents/examples/fullstack-nextjs/workflow-example.md +553 -0
- package/proagents/examples/mobile-react-native/README.md +171 -0
- package/proagents/examples/mobile-react-native/complete-conversation.md +825 -0
- package/proagents/examples/mobile-react-native/proagents.config.yaml +330 -0
- package/proagents/examples/mobile-react-native/workflow-example.md +723 -0
- package/proagents/examples/web-frontend-react/README.md +125 -0
- package/proagents/examples/web-frontend-react/complete-conversation.md +556 -0
- package/proagents/examples/web-frontend-react/proagents.config.yaml +183 -0
- package/proagents/examples/web-frontend-react/workflow-example.md +603 -0
- package/proagents/existing-projects/README.md +65 -0
- package/proagents/existing-projects/challenges.md +861 -0
- package/proagents/existing-projects/coexistence-mode.md +483 -0
- package/proagents/existing-projects/compatibility-assessment.md +541 -0
- package/proagents/existing-projects/gradual-adoption.md +515 -0
- package/proagents/existing-projects/migration-strategies.md +788 -0
- package/proagents/existing-projects/pattern-reconciliation.md +489 -0
- package/proagents/existing-projects/team-onboarding.md +617 -0
- package/proagents/existing-projects/technical-debt-handling.md +644 -0
- package/proagents/feature-flags/README.md +263 -0
- package/proagents/feature-flags/ab-testing.md +413 -0
- package/proagents/feature-flags/configuration.md +420 -0
- package/proagents/feature-flags/kill-switches.md +444 -0
- package/proagents/feature-flags/rollout-strategies.md +392 -0
- package/proagents/getting-started/README.md +60 -0
- package/proagents/getting-started/ai-training-setup.md +380 -0
- package/proagents/getting-started/ide-setup.md +195 -0
- package/proagents/getting-started/mcp-setup.md +239 -0
- package/proagents/getting-started/pm-integration.md +336 -0
- package/proagents/getting-started/prompt-engineering.md +478 -0
- package/proagents/getting-started/team-onboarding.md +236 -0
- package/proagents/git/README.md +68 -0
- package/proagents/git/branch-strategy.md +164 -0
- package/proagents/git/commit-conventions.md +241 -0
- package/proagents/git/pr-workflow.md +286 -0
- package/proagents/git/rollback-procedures.md +416 -0
- package/proagents/i18n/README.md +133 -0
- package/proagents/i18n/extraction.md +433 -0
- package/proagents/i18n/tms-integration.md +332 -0
- package/proagents/i18n/translation-workflow.md +413 -0
- package/proagents/i18n/validation.md +355 -0
- package/proagents/ide-integration/README.md +124 -0
- package/proagents/ide-integration/cline-config.md +429 -0
- package/proagents/ide-integration/continue-config.md +380 -0
- package/proagents/ide-integration/cursor-rules.md +280 -0
- package/proagents/ide-integration/github-copilot.md +384 -0
- package/proagents/ide-integration/windsurf-rules.md +314 -0
- package/proagents/integrations/README.md +97 -0
- package/proagents/integrations/pm/README.md +344 -0
- package/proagents/learning/README.md +136 -0
- package/proagents/learning/adaptation.md +305 -0
- package/proagents/learning/data-collection.md +283 -0
- package/proagents/learning/implementation-guide.md +865 -0
- package/proagents/learning/reports.md +306 -0
- package/proagents/logging/README.md +276 -0
- package/proagents/logging/aggregation.md +475 -0
- package/proagents/logging/log-levels.md +376 -0
- package/proagents/logging/sensitive-data.md +423 -0
- package/proagents/logging/structured-logging.md +406 -0
- package/proagents/mcp/README.md +133 -0
- package/proagents/mcp/context-providers.md +442 -0
- package/proagents/mcp/server-config.md +306 -0
- package/proagents/mcp/tools-definition.md +513 -0
- package/proagents/metrics/README.md +174 -0
- package/proagents/metrics/code-quality-kpis.md +461 -0
- package/proagents/metrics/deployment-metrics.md +517 -0
- package/proagents/metrics/developer-productivity.md +368 -0
- package/proagents/metrics/learning-effectiveness.md +478 -0
- package/proagents/migrations/README.md +77 -0
- package/proagents/migrations/from-claude-projects.md +312 -0
- package/proagents/migrations/from-cursor-rules.md +345 -0
- package/proagents/migrations/from-custom-workflows.md +410 -0
- package/proagents/monitoring/README.md +308 -0
- package/proagents/monitoring/alerting.md +449 -0
- package/proagents/monitoring/dashboards.md +454 -0
- package/proagents/monitoring/health-checks.md +436 -0
- package/proagents/monitoring/metrics.md +434 -0
- package/proagents/multi-project/README.md +170 -0
- package/proagents/multi-project/coordinated-deploy.md +510 -0
- package/proagents/multi-project/cross-project-deps.md +395 -0
- package/proagents/multi-project/unified-changelog.md +477 -0
- package/proagents/multi-project/walkthroughs/monorepo-setup.md +787 -0
- package/proagents/multi-project/workspace-config.md +408 -0
- package/proagents/notifications/README.md +151 -0
- package/proagents/notifications/channels.md +457 -0
- package/proagents/notifications/preferences.md +415 -0
- package/proagents/notifications/routing.md +449 -0
- package/proagents/notifications/scheduling.md +425 -0
- package/proagents/notifications/templates.md +446 -0
- package/proagents/offline-mode/README.md +145 -0
- package/proagents/offline-mode/caching.md +344 -0
- package/proagents/offline-mode/offline-operations.md +312 -0
- package/proagents/offline-mode/queue-specifications.md +679 -0
- package/proagents/offline-mode/sync.md +475 -0
- package/proagents/parallel-features/README.md +85 -0
- package/proagents/parallel-features/conflict-detection.md +226 -0
- package/proagents/parallel-features/dependency-management.md +392 -0
- package/proagents/parallel-features/merge-coordination.md +506 -0
- package/proagents/parallel-features/tracking-system.md +416 -0
- package/proagents/patterns/README.md +305 -0
- package/proagents/patterns/api-errors.md +453 -0
- package/proagents/patterns/async-errors.md +521 -0
- package/proagents/patterns/error-types.md +437 -0
- package/proagents/patterns/ui-errors.md +595 -0
- package/proagents/performance/README.md +59 -0
- package/proagents/performance/bundle-analysis.md +375 -0
- package/proagents/performance/load-testing.md +563 -0
- package/proagents/performance/runtime-metrics.md +489 -0
- package/proagents/performance/web-vitals.md +425 -0
- package/proagents/plugins/README.md +139 -0
- package/proagents/plugins/creating-plugins.md +504 -0
- package/proagents/plugins/plugin-api.md +467 -0
- package/proagents/plugins/plugin-registry.md +276 -0
- package/proagents/pm-integration/README.md +151 -0
- package/proagents/pm-integration/asana.md +346 -0
- package/proagents/pm-integration/github-issues.md +308 -0
- package/proagents/pm-integration/gitlab-issues.md +482 -0
- package/proagents/pm-integration/jira.md +364 -0
- package/proagents/pm-integration/linear.md +409 -0
- package/proagents/pm-integration/notion.md +275 -0
- package/proagents/pm-integration/sync-config.md +533 -0
- package/proagents/pm-integration/trello.md +159 -0
- package/proagents/proagents.config.yaml +213 -0
- package/proagents/prompts/00-init-wizard.md +426 -0
- package/proagents/prompts/00-init.md +219 -0
- package/proagents/prompts/01-analysis.md +244 -0
- package/proagents/prompts/02-requirements.md +399 -0
- package/proagents/prompts/03-ui-design.md +493 -0
- package/proagents/prompts/04-planning.md +505 -0
- package/proagents/prompts/05-implementation.md +518 -0
- package/proagents/prompts/06-testing.md +620 -0
- package/proagents/prompts/06.5-code-review.md +512 -0
- package/proagents/prompts/07-documentation.md +673 -0
- package/proagents/prompts/08-deployment.md +539 -0
- package/proagents/prompts/09-rollback.md +554 -0
- package/proagents/prompts/README.md +51 -0
- package/proagents/prompts/accessibility/README.md +146 -0
- package/proagents/prompts/accessibility/aria.md +276 -0
- package/proagents/prompts/accessibility/audit.md +233 -0
- package/proagents/prompts/accessibility/keyboard.md +392 -0
- package/proagents/prompts/accessibility/wcag.md +189 -0
- package/proagents/prompts/debugging/README.md +51 -0
- package/proagents/prompts/debugging/error-analysis.md +385 -0
- package/proagents/prompts/debugging/performance-debug.md +381 -0
- package/proagents/prompts/debugging/systematic.md +270 -0
- package/proagents/prompts/performance/README.md +47 -0
- package/proagents/prompts/performance/analyze.md +265 -0
- package/proagents/prompts/performance/optimize.md +347 -0
- package/proagents/prompts/refactoring/README.md +51 -0
- package/proagents/prompts/refactoring/architecture.md +531 -0
- package/proagents/prompts/refactoring/code-smells.md +174 -0
- package/proagents/prompts/refactoring/patterns.md +516 -0
- package/proagents/prompts/security-audit/README.md +197 -0
- package/proagents/prompts/security-audit/code-review.md +260 -0
- package/proagents/prompts/security-audit/vulnerability-scan.md +288 -0
- package/proagents/reporting/README.md +158 -0
- package/proagents/reporting/dashboards.md +366 -0
- package/proagents/reporting/exports.md +524 -0
- package/proagents/reporting/quality-metrics.md +385 -0
- package/proagents/reporting/templates/README.md +56 -0
- package/proagents/reporting/templates/dashboard-config.json +187 -0
- package/proagents/reporting/templates/metrics-queries.md +427 -0
- package/proagents/reporting/templates/react-dashboard.tsx +544 -0
- package/proagents/reporting/templates/widgets.md +451 -0
- package/proagents/reporting/velocity-metrics.md +340 -0
- package/proagents/reverse-engineering/README.md +151 -0
- package/proagents/reverse-engineering/architecture-extraction.md +325 -0
- package/proagents/reverse-engineering/code-analysis.md +377 -0
- package/proagents/reverse-engineering/dependency-mapping.md +567 -0
- package/proagents/reverse-engineering/diagram-generation.md +586 -0
- package/proagents/reverse-engineering/documentation-generation.md +468 -0
- package/proagents/reverse-engineering/pattern-detection.md +569 -0
- package/proagents/reverse-engineering/quality-assessment.md +733 -0
- package/proagents/rules/README.md +179 -0
- package/proagents/rules/custom-rules-template.yaml +286 -0
- package/proagents/rules/custom-rules.md +754 -0
- package/proagents/rules/validation-rules-template.yaml +517 -0
- package/proagents/runbooks/README.md +219 -0
- package/proagents/runbooks/dependency-vulnerability.md +505 -0
- package/proagents/runbooks/incident-response.md +451 -0
- package/proagents/runbooks/performance-degradation.md +584 -0
- package/proagents/runbooks/production-debugging.md +489 -0
- package/proagents/scaffolding/README.md +64 -0
- package/proagents/scaffolding/nextjs/README.md +578 -0
- package/proagents/scaffolding/nextjs/templates/api-route.ts.template +185 -0
- package/proagents/scaffolding/nextjs/templates/page.tsx.template +109 -0
- package/proagents/scaffolding/nextjs/templates/server-action.ts.template +204 -0
- package/proagents/scaffolding/nodejs/README.md +558 -0
- package/proagents/scaffolding/nodejs/templates/controller.ts.template +167 -0
- package/proagents/scaffolding/nodejs/templates/repository.ts.template +155 -0
- package/proagents/scaffolding/nodejs/templates/service.ts.template +207 -0
- package/proagents/scaffolding/project-types.md +401 -0
- package/proagents/scaffolding/react/README.md +399 -0
- package/proagents/scaffolding/react/templates/component.tsx.template +88 -0
- package/proagents/scaffolding/react/templates/hook.ts.template +127 -0
- package/proagents/scaffolding/react/templates/service.ts.template +155 -0
- package/proagents/scaffolding/react/templates/test.tsx.template +149 -0
- package/proagents/scaffolding/react-native/README.md +476 -0
- package/proagents/scaffolding/react-native/templates/hook.ts.template +226 -0
- package/proagents/scaffolding/react-native/templates/screen.tsx.template +247 -0
- package/proagents/secrets/README.md +278 -0
- package/proagents/secrets/access-control.md +443 -0
- package/proagents/secrets/rotation.md +403 -0
- package/proagents/secrets/scanning.md +487 -0
- package/proagents/secrets/storage.md +394 -0
- package/proagents/security/README.md +71 -0
- package/proagents/security/owasp-checklist.md +390 -0
- package/proagents/security/sast-guide.md +473 -0
- package/proagents/security/security-report-template.md +343 -0
- package/proagents/security/vulnerability-scanning.md +329 -0
- package/proagents/slash-commands.json +161 -0
- package/proagents/standards/README.md +120 -0
- package/proagents/standards/architecture-patterns.md +728 -0
- package/proagents/standards/architecture-rules-template.md +489 -0
- package/proagents/standards/coding-standards-template.md +489 -0
- package/proagents/standards/examples/README.md +61 -0
- package/proagents/standards/examples/nodejs-api.md +560 -0
- package/proagents/standards/examples/react-nextjs.md +428 -0
- package/proagents/standards/naming-conventions-template.md +526 -0
- package/proagents/standards/override-system.md +717 -0
- package/proagents/standards/testing-standards-template.md +220 -0
- package/proagents/team/README.md +256 -0
- package/proagents/team/code-ownership.md +306 -0
- package/proagents/team/communication-templates.md +441 -0
- package/proagents/team/handoff-protocol.md +380 -0
- package/proagents/team/ide-setup/README.md +103 -0
- package/proagents/team/ide-setup/cursor.md +276 -0
- package/proagents/team/ide-setup/jetbrains.md +330 -0
- package/proagents/team/ide-setup/neovim.md +640 -0
- package/proagents/team/ide-setup/vscode.md +348 -0
- package/proagents/team/onboarding.md +278 -0
- package/proagents/templates/README.md +57 -0
- package/proagents/templates/code-review-report.md +255 -0
- package/proagents/templates/codebase-analysis-report.md +315 -0
- package/proagents/templates/deployment-checklist.md +277 -0
- package/proagents/templates/feature-requirements.md +142 -0
- package/proagents/templates/feature-status.md +231 -0
- package/proagents/templates/implementation-plan.md +373 -0
- package/proagents/templates/rollback-plan.md +331 -0
- package/proagents/templates/test-plan.md +336 -0
- package/proagents/templates/ui-specification.md +431 -0
- package/proagents/testing-standards/README.md +229 -0
- package/proagents/testing-standards/coverage-requirements.md +198 -0
- package/proagents/testing-standards/mocking-guidelines.md +478 -0
- package/proagents/testing-standards/test-naming.md +485 -0
- package/proagents/testing-standards/test-patterns.md +488 -0
- package/proagents/troubleshooting/README.md +730 -0
- package/proagents/troubleshooting/ai-issues.md +601 -0
- package/proagents/troubleshooting/workflow-issues.md +571 -0
- package/proagents/ui-integration/README.md +77 -0
- package/proagents/ui-integration/figma-guide.md +217 -0
- package/proagents/ui-integration/manual-export-guide.md +358 -0
- package/proagents/ui-integration/sketch-interpretation.md +471 -0
- package/proagents/webhooks/README.md +126 -0
- package/proagents/webhooks/endpoints.md +298 -0
- package/proagents/webhooks/events.md +316 -0
- package/proagents/webhooks/payloads.md +325 -0
- package/proagents/webhooks/reliability.md +363 -0
- package/proagents/webhooks/security.md +380 -0
- package/proagents/workflow-modes/README.md +136 -0
- package/proagents/workflow-modes/deferred-tracking.md +405 -0
- package/proagents/workflow-modes/entry-modes.md +397 -0
- package/proagents/workflow-modes/guardrails.md +405 -0
- package/proagents/workflow-modes/mode-detection.md +358 -0
- package/proagents/workflow-modes/mode-switching.md +372 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
-- Migration: Migrate user roles from string to normalized table
|
|
2
|
+
-- Author: ProAgents
|
|
3
|
+
-- Date: 2024-01-20
|
|
4
|
+
-- Risk Level: High
|
|
5
|
+
-- Requires Approval: Manager + DBA
|
|
6
|
+
-- Estimated Duration: 5-30 minutes depending on data volume
|
|
7
|
+
|
|
8
|
+
-- Description:
|
|
9
|
+
-- Transforms the denormalized 'role' enum column into a normalized
|
|
10
|
+
-- many-to-many relationship with a roles table. This allows users
|
|
11
|
+
-- to have multiple roles.
|
|
12
|
+
--
|
|
13
|
+
-- CRITICAL: This is a data migration. Test thoroughly on staging first.
|
|
14
|
+
-- Create backup before running in production.
|
|
15
|
+
|
|
16
|
+
-- ============================================
|
|
17
|
+
-- PRE-FLIGHT CHECKS
|
|
18
|
+
-- ============================================
|
|
19
|
+
|
|
20
|
+
-- Create backup table
|
|
21
|
+
CREATE TABLE users_backup_20240120 AS SELECT * FROM users;
|
|
22
|
+
|
|
23
|
+
-- Verify backup
|
|
24
|
+
SELECT COUNT(*) FROM users_backup_20240120;
|
|
25
|
+
|
|
26
|
+
-- Check current role distribution
|
|
27
|
+
SELECT role, COUNT(*) as count
|
|
28
|
+
FROM users
|
|
29
|
+
GROUP BY role
|
|
30
|
+
ORDER BY count DESC;
|
|
31
|
+
|
|
32
|
+
-- ============================================
|
|
33
|
+
-- UP MIGRATION
|
|
34
|
+
-- ============================================
|
|
35
|
+
|
|
36
|
+
-- Step 1: Create roles table
|
|
37
|
+
CREATE TABLE roles (
|
|
38
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
39
|
+
name VARCHAR(50) NOT NULL UNIQUE,
|
|
40
|
+
description TEXT,
|
|
41
|
+
permissions JSONB NOT NULL DEFAULT '[]'::jsonb,
|
|
42
|
+
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
-- Step 2: Create junction table for many-to-many
|
|
46
|
+
CREATE TABLE user_roles (
|
|
47
|
+
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
48
|
+
role_id UUID NOT NULL REFERENCES roles(id) ON DELETE CASCADE,
|
|
49
|
+
granted_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
|
50
|
+
granted_by UUID REFERENCES users(id),
|
|
51
|
+
PRIMARY KEY (user_id, role_id)
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
-- Create indexes
|
|
55
|
+
CREATE INDEX idx_user_roles_user_id ON user_roles(user_id);
|
|
56
|
+
CREATE INDEX idx_user_roles_role_id ON user_roles(role_id);
|
|
57
|
+
|
|
58
|
+
-- Step 3: Populate roles table from existing enum values
|
|
59
|
+
INSERT INTO roles (name, description, permissions) VALUES
|
|
60
|
+
('admin', 'Full system access', '["read", "write", "delete", "admin"]'::jsonb),
|
|
61
|
+
('developer', 'Development access', '["read", "write", "deploy"]'::jsonb),
|
|
62
|
+
('viewer', 'Read-only access', '["read"]'::jsonb),
|
|
63
|
+
('guest', 'Limited guest access', '["read_public"]'::jsonb);
|
|
64
|
+
|
|
65
|
+
-- Step 4: Migrate existing user roles to junction table
|
|
66
|
+
INSERT INTO user_roles (user_id, role_id, granted_at)
|
|
67
|
+
SELECT
|
|
68
|
+
u.id as user_id,
|
|
69
|
+
r.id as role_id,
|
|
70
|
+
u.created_at as granted_at
|
|
71
|
+
FROM users u
|
|
72
|
+
JOIN roles r ON r.name = u.role::text
|
|
73
|
+
WHERE u.deleted_at IS NULL;
|
|
74
|
+
|
|
75
|
+
-- Step 5: Verify migration counts match
|
|
76
|
+
DO $$
|
|
77
|
+
DECLARE
|
|
78
|
+
original_count INTEGER;
|
|
79
|
+
migrated_count INTEGER;
|
|
80
|
+
BEGIN
|
|
81
|
+
SELECT COUNT(*) INTO original_count
|
|
82
|
+
FROM users WHERE deleted_at IS NULL;
|
|
83
|
+
|
|
84
|
+
SELECT COUNT(DISTINCT user_id) INTO migrated_count
|
|
85
|
+
FROM user_roles;
|
|
86
|
+
|
|
87
|
+
IF original_count != migrated_count THEN
|
|
88
|
+
RAISE EXCEPTION 'Migration count mismatch: % vs %',
|
|
89
|
+
original_count, migrated_count;
|
|
90
|
+
END IF;
|
|
91
|
+
|
|
92
|
+
RAISE NOTICE 'Migration verified: % users migrated', migrated_count;
|
|
93
|
+
END $$;
|
|
94
|
+
|
|
95
|
+
-- Step 6: Create view for backward compatibility
|
|
96
|
+
CREATE VIEW user_primary_role AS
|
|
97
|
+
SELECT
|
|
98
|
+
u.id as user_id,
|
|
99
|
+
r.name as role,
|
|
100
|
+
r.id as role_id
|
|
101
|
+
FROM users u
|
|
102
|
+
JOIN user_roles ur ON ur.user_id = u.id
|
|
103
|
+
JOIN roles r ON r.id = ur.role_id
|
|
104
|
+
WHERE ur.granted_at = (
|
|
105
|
+
SELECT MIN(granted_at)
|
|
106
|
+
FROM user_roles
|
|
107
|
+
WHERE user_id = u.id
|
|
108
|
+
);
|
|
109
|
+
|
|
110
|
+
-- Step 7: Drop old role column (after application updated)
|
|
111
|
+
-- IMPORTANT: Only run this after verifying application works with new schema
|
|
112
|
+
-- ALTER TABLE users DROP COLUMN role;
|
|
113
|
+
-- DROP TYPE IF EXISTS user_role;
|
|
114
|
+
|
|
115
|
+
-- ============================================
|
|
116
|
+
-- DOWN MIGRATION (Rollback)
|
|
117
|
+
-- ============================================
|
|
118
|
+
|
|
119
|
+
-- Step 1: Restore role column if dropped
|
|
120
|
+
-- ALTER TABLE users ADD COLUMN role user_role;
|
|
121
|
+
|
|
122
|
+
-- Step 2: Restore data from junction table
|
|
123
|
+
UPDATE users u
|
|
124
|
+
SET role = (
|
|
125
|
+
SELECT r.name::user_role
|
|
126
|
+
FROM user_roles ur
|
|
127
|
+
JOIN roles r ON r.id = ur.role_id
|
|
128
|
+
WHERE ur.user_id = u.id
|
|
129
|
+
ORDER BY ur.granted_at
|
|
130
|
+
LIMIT 1
|
|
131
|
+
);
|
|
132
|
+
|
|
133
|
+
-- Step 3: Drop new tables
|
|
134
|
+
DROP VIEW IF EXISTS user_primary_role;
|
|
135
|
+
DROP TABLE IF EXISTS user_roles;
|
|
136
|
+
DROP TABLE IF EXISTS roles;
|
|
137
|
+
|
|
138
|
+
-- Step 4: Restore from backup if needed
|
|
139
|
+
-- DROP TABLE users;
|
|
140
|
+
-- ALTER TABLE users_backup_20240120 RENAME TO users;
|
|
141
|
+
|
|
142
|
+
-- ============================================
|
|
143
|
+
-- VERIFICATION
|
|
144
|
+
-- ============================================
|
|
145
|
+
|
|
146
|
+
-- Compare counts
|
|
147
|
+
SELECT
|
|
148
|
+
(SELECT COUNT(*) FROM users WHERE deleted_at IS NULL) as total_users,
|
|
149
|
+
(SELECT COUNT(DISTINCT user_id) FROM user_roles) as users_with_roles,
|
|
150
|
+
(SELECT COUNT(*) FROM user_roles) as total_assignments;
|
|
151
|
+
|
|
152
|
+
-- Check role distribution matches original
|
|
153
|
+
SELECT r.name, COUNT(ur.user_id) as user_count
|
|
154
|
+
FROM roles r
|
|
155
|
+
LEFT JOIN user_roles ur ON ur.role_id = r.id
|
|
156
|
+
GROUP BY r.name
|
|
157
|
+
ORDER BY user_count DESC;
|
|
158
|
+
|
|
159
|
+
-- Verify no orphaned records
|
|
160
|
+
SELECT COUNT(*) as orphaned
|
|
161
|
+
FROM user_roles ur
|
|
162
|
+
WHERE NOT EXISTS (SELECT 1 FROM users u WHERE u.id = ur.user_id);
|
|
163
|
+
|
|
164
|
+
-- Test backward compatibility view
|
|
165
|
+
SELECT * FROM user_primary_role LIMIT 5;
|
|
166
|
+
|
|
167
|
+
-- ============================================
|
|
168
|
+
-- CLEANUP (Run after verification period)
|
|
169
|
+
-- ============================================
|
|
170
|
+
|
|
171
|
+
-- Drop backup table
|
|
172
|
+
-- DROP TABLE IF EXISTS users_backup_20240120;
|
|
173
|
+
|
|
174
|
+
-- Drop old column and enum
|
|
175
|
+
-- ALTER TABLE users DROP COLUMN IF EXISTS role;
|
|
176
|
+
-- DROP TYPE IF EXISTS user_role;
|
|
177
|
+
|
|
178
|
+
-- ============================================
|
|
179
|
+
-- APPLICATION CODE UPDATES
|
|
180
|
+
-- ============================================
|
|
181
|
+
|
|
182
|
+
-- Old query:
|
|
183
|
+
-- SELECT * FROM users WHERE role = 'admin';
|
|
184
|
+
|
|
185
|
+
-- New query:
|
|
186
|
+
-- SELECT u.*
|
|
187
|
+
-- FROM users u
|
|
188
|
+
-- JOIN user_roles ur ON ur.user_id = u.id
|
|
189
|
+
-- JOIN roles r ON r.id = ur.role_id
|
|
190
|
+
-- WHERE r.name = 'admin';
|
|
191
|
+
|
|
192
|
+
-- Or using the view for backward compatibility:
|
|
193
|
+
-- SELECT u.*
|
|
194
|
+
-- FROM users u
|
|
195
|
+
-- JOIN user_primary_role upr ON upr.user_id = u.id
|
|
196
|
+
-- WHERE upr.role = 'admin';
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
-- Migration: Drop deprecated 'legacy_id' column
|
|
2
|
+
-- Author: ProAgents
|
|
3
|
+
-- Date: 2024-01-21
|
|
4
|
+
-- Risk Level: High
|
|
5
|
+
-- Requires Approval: Manager + DBA
|
|
6
|
+
-- Estimated Duration: < 1 second (metadata only, but irreversible)
|
|
7
|
+
|
|
8
|
+
-- Description:
|
|
9
|
+
-- Removes the deprecated 'legacy_id' column that was used during
|
|
10
|
+
-- migration from the old system. All references have been updated
|
|
11
|
+
-- to use the new UUID primary key.
|
|
12
|
+
--
|
|
13
|
+
-- CRITICAL: This is a DESTRUCTIVE operation. Data cannot be recovered
|
|
14
|
+
-- without a backup. Ensure all dependent code and queries have been updated.
|
|
15
|
+
|
|
16
|
+
-- ============================================
|
|
17
|
+
-- PRE-FLIGHT CHECKS (MANDATORY)
|
|
18
|
+
-- ============================================
|
|
19
|
+
|
|
20
|
+
-- 1. Check if column is still referenced in application code
|
|
21
|
+
-- Run: grep -r "legacy_id" ./src/
|
|
22
|
+
-- Expected: No results
|
|
23
|
+
|
|
24
|
+
-- 2. Check if column is used in any views
|
|
25
|
+
SELECT viewname, definition
|
|
26
|
+
FROM pg_views
|
|
27
|
+
WHERE definition LIKE '%legacy_id%';
|
|
28
|
+
|
|
29
|
+
-- 3. Check if column is used in any functions/procedures
|
|
30
|
+
SELECT proname, prosrc
|
|
31
|
+
FROM pg_proc
|
|
32
|
+
WHERE prosrc LIKE '%legacy_id%';
|
|
33
|
+
|
|
34
|
+
-- 4. Check if column is used in any triggers
|
|
35
|
+
SELECT tgname
|
|
36
|
+
FROM pg_trigger t
|
|
37
|
+
JOIN pg_proc p ON p.oid = t.tgfoid
|
|
38
|
+
WHERE p.prosrc LIKE '%legacy_id%';
|
|
39
|
+
|
|
40
|
+
-- 5. Check if any foreign keys reference this column
|
|
41
|
+
SELECT
|
|
42
|
+
tc.constraint_name,
|
|
43
|
+
tc.table_name,
|
|
44
|
+
kcu.column_name,
|
|
45
|
+
ccu.table_name AS foreign_table_name,
|
|
46
|
+
ccu.column_name AS foreign_column_name
|
|
47
|
+
FROM information_schema.table_constraints AS tc
|
|
48
|
+
JOIN information_schema.key_column_usage AS kcu
|
|
49
|
+
ON tc.constraint_name = kcu.constraint_name
|
|
50
|
+
JOIN information_schema.constraint_column_usage AS ccu
|
|
51
|
+
ON ccu.constraint_name = tc.constraint_name
|
|
52
|
+
WHERE ccu.column_name = 'legacy_id'
|
|
53
|
+
OR kcu.column_name = 'legacy_id';
|
|
54
|
+
|
|
55
|
+
-- 6. Verify backup exists or create one
|
|
56
|
+
SELECT COUNT(*) FROM users; -- Note the count
|
|
57
|
+
-- CREATE TABLE users_backup_legacy_id AS SELECT id, legacy_id FROM users;
|
|
58
|
+
|
|
59
|
+
-- ============================================
|
|
60
|
+
-- UP MIGRATION
|
|
61
|
+
-- ============================================
|
|
62
|
+
|
|
63
|
+
-- OPTION 1: Immediate drop (brief exclusive lock)
|
|
64
|
+
ALTER TABLE users
|
|
65
|
+
DROP COLUMN legacy_id;
|
|
66
|
+
|
|
67
|
+
-- OPTION 2: Two-phase drop (for zero-downtime on very large tables)
|
|
68
|
+
-- Phase 1: Mark column as dropped (immediate, no lock)
|
|
69
|
+
-- UPDATE pg_attribute
|
|
70
|
+
-- SET attisdropped = true
|
|
71
|
+
-- WHERE attrelid = 'users'::regclass
|
|
72
|
+
-- AND attname = 'legacy_id';
|
|
73
|
+
--
|
|
74
|
+
-- Phase 2: Actually reclaim space (during maintenance window)
|
|
75
|
+
-- VACUUM FULL users;
|
|
76
|
+
|
|
77
|
+
-- Drop related indexes if any
|
|
78
|
+
DROP INDEX IF EXISTS idx_users_legacy_id;
|
|
79
|
+
|
|
80
|
+
-- Drop related constraints if any
|
|
81
|
+
ALTER TABLE users
|
|
82
|
+
DROP CONSTRAINT IF EXISTS chk_users_legacy_id;
|
|
83
|
+
|
|
84
|
+
-- ============================================
|
|
85
|
+
-- DOWN MIGRATION (Rollback)
|
|
86
|
+
-- ============================================
|
|
87
|
+
|
|
88
|
+
-- WARNING: This only recreates the column structure.
|
|
89
|
+
-- DATA CANNOT BE RECOVERED without a backup!
|
|
90
|
+
|
|
91
|
+
-- Recreate column
|
|
92
|
+
ALTER TABLE users
|
|
93
|
+
ADD COLUMN legacy_id INTEGER;
|
|
94
|
+
|
|
95
|
+
-- Recreate index if it existed
|
|
96
|
+
CREATE INDEX idx_users_legacy_id ON users(legacy_id);
|
|
97
|
+
|
|
98
|
+
-- Restore data from backup (if backup exists)
|
|
99
|
+
UPDATE users u
|
|
100
|
+
SET legacy_id = b.legacy_id
|
|
101
|
+
FROM users_backup_legacy_id b
|
|
102
|
+
WHERE u.id = b.id;
|
|
103
|
+
|
|
104
|
+
-- If no backup exists, column will be NULL for all rows
|
|
105
|
+
-- Consider whether this is acceptable before dropping
|
|
106
|
+
|
|
107
|
+
-- ============================================
|
|
108
|
+
-- VERIFICATION
|
|
109
|
+
-- ============================================
|
|
110
|
+
|
|
111
|
+
-- Confirm column no longer exists
|
|
112
|
+
SELECT column_name
|
|
113
|
+
FROM information_schema.columns
|
|
114
|
+
WHERE table_name = 'users'
|
|
115
|
+
AND column_name = 'legacy_id';
|
|
116
|
+
-- Expected: 0 rows
|
|
117
|
+
|
|
118
|
+
-- Check table structure
|
|
119
|
+
\d users
|
|
120
|
+
|
|
121
|
+
-- Verify no errors in dependent objects
|
|
122
|
+
SELECT *
|
|
123
|
+
FROM pg_stat_user_functions
|
|
124
|
+
WHERE funcname LIKE '%legacy%';
|
|
125
|
+
|
|
126
|
+
-- Test that application queries still work
|
|
127
|
+
EXPLAIN ANALYZE
|
|
128
|
+
SELECT id, email, created_at
|
|
129
|
+
FROM users
|
|
130
|
+
WHERE email = 'test@example.com';
|
|
131
|
+
|
|
132
|
+
-- ============================================
|
|
133
|
+
-- CLEANUP
|
|
134
|
+
-- ============================================
|
|
135
|
+
|
|
136
|
+
-- After verification period, drop backup table
|
|
137
|
+
-- DROP TABLE IF EXISTS users_backup_legacy_id;
|
|
138
|
+
|
|
139
|
+
-- Update documentation
|
|
140
|
+
-- - Remove legacy_id from API docs
|
|
141
|
+
-- - Remove legacy_id from database schema docs
|
|
142
|
+
-- - Update migration guides
|
|
143
|
+
|
|
144
|
+
-- ============================================
|
|
145
|
+
-- COMMON ISSUES AND SOLUTIONS
|
|
146
|
+
-- ============================================
|
|
147
|
+
|
|
148
|
+
-- Issue: "column does not exist" errors after drop
|
|
149
|
+
-- Solution: Application code still references the column
|
|
150
|
+
-- Search and update all references
|
|
151
|
+
|
|
152
|
+
-- Issue: View/function errors after drop
|
|
153
|
+
-- Solution: Recreate views/functions without the column
|
|
154
|
+
-- DROP VIEW affected_view;
|
|
155
|
+
-- CREATE VIEW affected_view AS ...;
|
|
156
|
+
|
|
157
|
+
-- Issue: Need to restore data
|
|
158
|
+
-- Solution: Restore from backup table or full database backup
|
|
159
|
+
-- If no backup, data is permanently lost
|
|
160
|
+
|
|
161
|
+
-- Issue: Replication lag causes errors
|
|
162
|
+
-- Solution: Ensure all replicas have applied the change
|
|
163
|
+
-- before updating application code
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Database Migration Examples
|
|
2
|
+
|
|
3
|
+
Concrete migration examples for common database operations.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Example Migrations
|
|
8
|
+
|
|
9
|
+
| Migration | Description | Risk Level |
|
|
10
|
+
|-----------|-------------|------------|
|
|
11
|
+
| [001-create-users](./001-create-users.sql) | Create users table | Low |
|
|
12
|
+
| [002-add-preferences](./002-add-preferences.sql) | Add column with default | Low |
|
|
13
|
+
| [003-add-index](./003-add-index.sql) | Add performance index | Medium |
|
|
14
|
+
| [004-rename-column](./004-rename-column.sql) | Rename existing column | Medium |
|
|
15
|
+
| [005-add-foreign-key](./005-add-foreign-key.sql) | Add relationship constraint | Medium |
|
|
16
|
+
| [006-data-migration](./006-data-migration.sql) | Transform existing data | High |
|
|
17
|
+
| [007-drop-column](./007-drop-column.sql) | Remove column safely | High |
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Using These Examples
|
|
22
|
+
|
|
23
|
+
### 1. Copy and Customize
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Copy template to your migrations folder
|
|
27
|
+
cp proagents/database/examples/001-create-users.sql \
|
|
28
|
+
migrations/20240115_001_create_users.sql
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 2. Naming Convention
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
YYYYMMDD_NNN_description.sql
|
|
35
|
+
|
|
36
|
+
Example:
|
|
37
|
+
20240115_001_create_users.sql
|
|
38
|
+
20240115_002_add_user_email_index.sql
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 3. Required Structure
|
|
42
|
+
|
|
43
|
+
Every migration file must include:
|
|
44
|
+
- Header comment with metadata
|
|
45
|
+
- UP migration (forward)
|
|
46
|
+
- DOWN migration (rollback)
|
|
47
|
+
- Verification query
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Migration Template
|
|
52
|
+
|
|
53
|
+
```sql
|
|
54
|
+
-- Migration: [description]
|
|
55
|
+
-- Author: [name]
|
|
56
|
+
-- Date: [YYYY-MM-DD]
|
|
57
|
+
-- Risk Level: [Low|Medium|High|Critical]
|
|
58
|
+
-- Requires Approval: [Yes|No]
|
|
59
|
+
-- Estimated Duration: [time]
|
|
60
|
+
|
|
61
|
+
-- ============================================
|
|
62
|
+
-- UP MIGRATION
|
|
63
|
+
-- ============================================
|
|
64
|
+
|
|
65
|
+
-- [Your forward migration SQL here]
|
|
66
|
+
|
|
67
|
+
-- ============================================
|
|
68
|
+
-- DOWN MIGRATION (Rollback)
|
|
69
|
+
-- ============================================
|
|
70
|
+
|
|
71
|
+
-- [Your rollback SQL here]
|
|
72
|
+
|
|
73
|
+
-- ============================================
|
|
74
|
+
-- VERIFICATION
|
|
75
|
+
-- ============================================
|
|
76
|
+
|
|
77
|
+
-- [Query to verify migration succeeded]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Risk Levels
|
|
83
|
+
|
|
84
|
+
| Level | Examples | Approval Required |
|
|
85
|
+
|-------|----------|------------------|
|
|
86
|
+
| **Low** | Add nullable column, create table | No |
|
|
87
|
+
| **Medium** | Add index, add constraint | Team lead |
|
|
88
|
+
| **High** | Data migration, drop column | Manager + DBA |
|
|
89
|
+
| **Critical** | Drop table, schema restructure | CTO + DBA |
|