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,788 @@
|
|
|
1
|
+
# Migration Strategies
|
|
2
|
+
|
|
3
|
+
Strategies for migrating different aspects of existing projects to ProAgents standards.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Migration involves:
|
|
10
|
+
- Code pattern migrations (legacy → modern)
|
|
11
|
+
- Dependency updates
|
|
12
|
+
- Test coverage improvement
|
|
13
|
+
- Documentation generation
|
|
14
|
+
- Process adoption
|
|
15
|
+
|
|
16
|
+
This guide covers each migration type with strategies, risks, and step-by-step procedures.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Migration Types
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
24
|
+
│ Migration Categories │
|
|
25
|
+
├─────────────────────────────────────────────────────────────┤
|
|
26
|
+
│ │
|
|
27
|
+
│ Code Migrations Process Migrations │
|
|
28
|
+
│ ─────────────── ────────────────── │
|
|
29
|
+
│ • Class → Functional • Manual → Automated │
|
|
30
|
+
│ • Redux → Zustand • Ad-hoc → Structured │
|
|
31
|
+
│ • JavaScript → TypeScript • No docs → Documented │
|
|
32
|
+
│ • Legacy patterns • No tests → Tested │
|
|
33
|
+
│ │
|
|
34
|
+
│ Dependency Migrations Infrastructure Migrations │
|
|
35
|
+
│ ──────────────────── ───────────────────── │
|
|
36
|
+
│ • Outdated → Current • No CI → CI/CD │
|
|
37
|
+
│ • Vulnerable → Secure • Manual deploy → Automated │
|
|
38
|
+
│ • Major version upgrades • No monitoring → Monitored │
|
|
39
|
+
│ │
|
|
40
|
+
└─────────────────────────────────────────────────────────────┘
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Strategy Selection
|
|
46
|
+
|
|
47
|
+
### When to Use Each Strategy
|
|
48
|
+
|
|
49
|
+
| Strategy | Best For | Risk | Effort | Timeline |
|
|
50
|
+
|----------|----------|------|--------|----------|
|
|
51
|
+
| Gradual | Large codebases, active development | Low | Medium | Ongoing |
|
|
52
|
+
| Opportunistic | Moderate codebases, regular changes | Low | Low | As-needed |
|
|
53
|
+
| Dedicated | Critical migrations, clear deadline | Medium | High | Fixed |
|
|
54
|
+
| Big Bang | Small codebases, major refactoring | High | High | Short |
|
|
55
|
+
|
|
56
|
+
### Decision Matrix
|
|
57
|
+
|
|
58
|
+
```yaml
|
|
59
|
+
migration_decision:
|
|
60
|
+
questions:
|
|
61
|
+
- question: "How large is the affected codebase?"
|
|
62
|
+
options:
|
|
63
|
+
small: "< 50 files"
|
|
64
|
+
medium: "50-200 files"
|
|
65
|
+
large: "> 200 files"
|
|
66
|
+
|
|
67
|
+
- question: "How critical is the code?"
|
|
68
|
+
options:
|
|
69
|
+
low: "Non-critical features"
|
|
70
|
+
medium: "Important but not critical"
|
|
71
|
+
high: "Core business logic"
|
|
72
|
+
|
|
73
|
+
- question: "What's your timeline?"
|
|
74
|
+
options:
|
|
75
|
+
flexible: "No deadline"
|
|
76
|
+
moderate: "Within quarter"
|
|
77
|
+
urgent: "Within weeks"
|
|
78
|
+
|
|
79
|
+
recommendations:
|
|
80
|
+
small_low_flexible: "Big Bang"
|
|
81
|
+
small_high_urgent: "Dedicated"
|
|
82
|
+
medium_any_any: "Gradual or Opportunistic"
|
|
83
|
+
large_any_any: "Gradual"
|
|
84
|
+
any_high_any: "Extra testing, staged rollout"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Strategy 1: Gradual Migration
|
|
90
|
+
|
|
91
|
+
Best for large codebases with ongoing development.
|
|
92
|
+
|
|
93
|
+
### Approach
|
|
94
|
+
|
|
95
|
+
```yaml
|
|
96
|
+
gradual_migration:
|
|
97
|
+
principle: "Migrate code as it's touched"
|
|
98
|
+
|
|
99
|
+
process:
|
|
100
|
+
1: "Identify file to modify"
|
|
101
|
+
2: "Check migration status"
|
|
102
|
+
3: "If not migrated, migrate now"
|
|
103
|
+
4: "Add tests for migrated code"
|
|
104
|
+
5: "Verify functionality"
|
|
105
|
+
6: "Commit migration with feature"
|
|
106
|
+
|
|
107
|
+
timeline: "Ongoing (6-12 months for full migration)"
|
|
108
|
+
|
|
109
|
+
example:
|
|
110
|
+
scenario: "Developer modifies UserProfile.tsx"
|
|
111
|
+
current_state: "Class component"
|
|
112
|
+
action: "Convert to functional while making changes"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Implementation
|
|
116
|
+
|
|
117
|
+
```yaml
|
|
118
|
+
gradual_implementation:
|
|
119
|
+
setup:
|
|
120
|
+
- "Create migration tracking"
|
|
121
|
+
- "Define migration criteria"
|
|
122
|
+
- "Train team on process"
|
|
123
|
+
|
|
124
|
+
tracking:
|
|
125
|
+
file: "proagents/migrations/status.yaml"
|
|
126
|
+
content: |
|
|
127
|
+
migrations:
|
|
128
|
+
class_to_functional:
|
|
129
|
+
total_files: 45
|
|
130
|
+
migrated: 0
|
|
131
|
+
in_progress: 0
|
|
132
|
+
remaining: 45
|
|
133
|
+
|
|
134
|
+
redux_to_zustand:
|
|
135
|
+
total_files: 30
|
|
136
|
+
migrated: 0
|
|
137
|
+
remaining: 30
|
|
138
|
+
|
|
139
|
+
automation:
|
|
140
|
+
on_file_open:
|
|
141
|
+
- "Check if file needs migration"
|
|
142
|
+
- "Suggest migration if applicable"
|
|
143
|
+
|
|
144
|
+
on_pr:
|
|
145
|
+
- "Check for migration opportunities"
|
|
146
|
+
- "Track migration progress"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Progress Tracking
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
153
|
+
│ Gradual Migration Progress │
|
|
154
|
+
├─────────────────────────────────────────────────────────────┤
|
|
155
|
+
│ │
|
|
156
|
+
│ Class → Functional Components │
|
|
157
|
+
│ ████████████░░░░░░░░ 60% (27/45 files) │
|
|
158
|
+
│ Estimated completion: 3 months at current pace │
|
|
159
|
+
│ │
|
|
160
|
+
│ Redux → Zustand │
|
|
161
|
+
│ ██████░░░░░░░░░░░░░░ 30% (9/30 files) │
|
|
162
|
+
│ Estimated completion: 5 months at current pace │
|
|
163
|
+
│ │
|
|
164
|
+
│ JavaScript → TypeScript │
|
|
165
|
+
│ ████████████████░░░░ 80% (120/150 files) │
|
|
166
|
+
│ Estimated completion: 1 month at current pace │
|
|
167
|
+
│ │
|
|
168
|
+
└─────────────────────────────────────────────────────────────┘
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Strategy 2: Opportunistic Migration
|
|
174
|
+
|
|
175
|
+
Best for codebases with regular changes but no dedicated migration time.
|
|
176
|
+
|
|
177
|
+
### Approach
|
|
178
|
+
|
|
179
|
+
```yaml
|
|
180
|
+
opportunistic_migration:
|
|
181
|
+
principle: "Migrate when opportunity presents"
|
|
182
|
+
|
|
183
|
+
triggers:
|
|
184
|
+
- "Bug fix in legacy code"
|
|
185
|
+
- "Feature addition touching legacy code"
|
|
186
|
+
- "Refactoring for other reasons"
|
|
187
|
+
- "Code review identifies candidate"
|
|
188
|
+
|
|
189
|
+
rules:
|
|
190
|
+
must_migrate:
|
|
191
|
+
- "Touching file for 3rd time without migrating"
|
|
192
|
+
- "Security vulnerability in legacy code"
|
|
193
|
+
|
|
194
|
+
should_migrate:
|
|
195
|
+
- "Bug fix in legacy code"
|
|
196
|
+
- "Adding significant functionality"
|
|
197
|
+
|
|
198
|
+
can_skip:
|
|
199
|
+
- "Urgent hotfix"
|
|
200
|
+
- "Minor text change"
|
|
201
|
+
- "Would significantly delay delivery"
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Implementation
|
|
205
|
+
|
|
206
|
+
```yaml
|
|
207
|
+
opportunistic_implementation:
|
|
208
|
+
detection:
|
|
209
|
+
on_file_change:
|
|
210
|
+
check: "Is this file a migration candidate?"
|
|
211
|
+
if_yes: "Show migration suggestion"
|
|
212
|
+
track: "How many times file touched without migration"
|
|
213
|
+
|
|
214
|
+
suggestion_template: |
|
|
215
|
+
📋 Migration Opportunity Detected
|
|
216
|
+
|
|
217
|
+
File: {filename}
|
|
218
|
+
Current Pattern: {current_pattern}
|
|
219
|
+
Target Pattern: {target_pattern}
|
|
220
|
+
Estimated Time: {estimated_time}
|
|
221
|
+
|
|
222
|
+
This file has been touched {touch_count} times.
|
|
223
|
+
Consider migrating while making this change.
|
|
224
|
+
|
|
225
|
+
[Migrate Now] [Migrate Later] [Skip]
|
|
226
|
+
|
|
227
|
+
escalation:
|
|
228
|
+
after_3_touches: "Strongly recommend migration"
|
|
229
|
+
after_5_touches: "Require justification to skip"
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Strategy 3: Dedicated Migration
|
|
235
|
+
|
|
236
|
+
Best when you can allocate specific time for migration.
|
|
237
|
+
|
|
238
|
+
### Approach
|
|
239
|
+
|
|
240
|
+
```yaml
|
|
241
|
+
dedicated_migration:
|
|
242
|
+
principle: "Focused migration effort with dedicated resources"
|
|
243
|
+
|
|
244
|
+
structure:
|
|
245
|
+
sprint_0:
|
|
246
|
+
name: "Planning"
|
|
247
|
+
activities:
|
|
248
|
+
- "Inventory all migration targets"
|
|
249
|
+
- "Prioritize by risk/impact"
|
|
250
|
+
- "Create detailed migration plan"
|
|
251
|
+
- "Set up testing infrastructure"
|
|
252
|
+
|
|
253
|
+
sprints_1_n:
|
|
254
|
+
name: "Execution"
|
|
255
|
+
activities:
|
|
256
|
+
- "Migrate in priority order"
|
|
257
|
+
- "Test thoroughly"
|
|
258
|
+
- "Code review"
|
|
259
|
+
- "Document changes"
|
|
260
|
+
|
|
261
|
+
sprint_final:
|
|
262
|
+
name: "Verification"
|
|
263
|
+
activities:
|
|
264
|
+
- "Full regression testing"
|
|
265
|
+
- "Performance comparison"
|
|
266
|
+
- "Documentation update"
|
|
267
|
+
- "Team training if needed"
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### Sprint Planning
|
|
271
|
+
|
|
272
|
+
```yaml
|
|
273
|
+
migration_sprint_plan:
|
|
274
|
+
sprint_1:
|
|
275
|
+
goal: "Migrate authentication module"
|
|
276
|
+
files:
|
|
277
|
+
- "src/auth/AuthContext.tsx"
|
|
278
|
+
- "src/auth/LoginForm.tsx"
|
|
279
|
+
- "src/auth/RegisterForm.tsx"
|
|
280
|
+
- "src/auth/authService.ts"
|
|
281
|
+
estimated_effort: "3 days"
|
|
282
|
+
assigned_to: "dev-1, dev-2"
|
|
283
|
+
success_criteria:
|
|
284
|
+
- "All files converted to functional"
|
|
285
|
+
- "Test coverage > 80%"
|
|
286
|
+
- "All existing tests pass"
|
|
287
|
+
|
|
288
|
+
sprint_2:
|
|
289
|
+
goal: "Migrate user module"
|
|
290
|
+
files:
|
|
291
|
+
- "src/user/UserProfile.tsx"
|
|
292
|
+
- "src/user/UserSettings.tsx"
|
|
293
|
+
- "src/user/userService.ts"
|
|
294
|
+
estimated_effort: "2 days"
|
|
295
|
+
assigned_to: "dev-1"
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Risk Mitigation
|
|
299
|
+
|
|
300
|
+
```yaml
|
|
301
|
+
dedicated_migration_risks:
|
|
302
|
+
risk_1:
|
|
303
|
+
name: "Regression bugs"
|
|
304
|
+
mitigation:
|
|
305
|
+
- "Comprehensive test suite before migration"
|
|
306
|
+
- "Side-by-side testing"
|
|
307
|
+
- "Feature flags for rollback"
|
|
308
|
+
|
|
309
|
+
risk_2:
|
|
310
|
+
name: "Timeline overrun"
|
|
311
|
+
mitigation:
|
|
312
|
+
- "Buffer time in schedule"
|
|
313
|
+
- "Priority-based scope cutting"
|
|
314
|
+
- "Clear definition of done"
|
|
315
|
+
|
|
316
|
+
risk_3:
|
|
317
|
+
name: "Team unavailability"
|
|
318
|
+
mitigation:
|
|
319
|
+
- "Cross-training before sprint"
|
|
320
|
+
- "Document decisions and progress"
|
|
321
|
+
- "Backup resources identified"
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## Strategy 4: Big Bang Migration
|
|
327
|
+
|
|
328
|
+
Best for small codebases or when complete rewrite is justified.
|
|
329
|
+
|
|
330
|
+
### Approach
|
|
331
|
+
|
|
332
|
+
```yaml
|
|
333
|
+
big_bang_migration:
|
|
334
|
+
principle: "Migrate everything at once"
|
|
335
|
+
|
|
336
|
+
suitable_when:
|
|
337
|
+
- "Small codebase (< 50 files)"
|
|
338
|
+
- "Low complexity"
|
|
339
|
+
- "Good test coverage exists"
|
|
340
|
+
- "Team can pause feature work"
|
|
341
|
+
- "Clear deadline requiring full migration"
|
|
342
|
+
|
|
343
|
+
NOT_suitable_when:
|
|
344
|
+
- "Large codebase"
|
|
345
|
+
- "Critical production system"
|
|
346
|
+
- "No test coverage"
|
|
347
|
+
- "Ongoing feature work"
|
|
348
|
+
|
|
349
|
+
process:
|
|
350
|
+
1: "Complete code freeze"
|
|
351
|
+
2: "Full codebase migration"
|
|
352
|
+
3: "Comprehensive testing"
|
|
353
|
+
4: "Staged rollout"
|
|
354
|
+
5: "Resume feature work"
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
### Big Bang Checklist
|
|
358
|
+
|
|
359
|
+
```markdown
|
|
360
|
+
## Big Bang Migration Checklist
|
|
361
|
+
|
|
362
|
+
### Pre-Migration
|
|
363
|
+
- [ ] Full codebase backup
|
|
364
|
+
- [ ] Test suite runs green
|
|
365
|
+
- [ ] Migration plan documented
|
|
366
|
+
- [ ] Rollback plan ready
|
|
367
|
+
- [ ] Team availability confirmed
|
|
368
|
+
- [ ] Stakeholder approval
|
|
369
|
+
|
|
370
|
+
### During Migration
|
|
371
|
+
- [ ] Code freeze in effect
|
|
372
|
+
- [ ] Progress tracked hourly
|
|
373
|
+
- [ ] Issues logged immediately
|
|
374
|
+
- [ ] Daily standup
|
|
375
|
+
|
|
376
|
+
### Post-Migration
|
|
377
|
+
- [ ] All tests passing
|
|
378
|
+
- [ ] Performance benchmarks met
|
|
379
|
+
- [ ] Security scan clean
|
|
380
|
+
- [ ] Documentation updated
|
|
381
|
+
- [ ] Team trained on changes
|
|
382
|
+
- [ ] Monitoring in place
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
## Specific Migration Guides
|
|
388
|
+
|
|
389
|
+
### Class Components → Functional Components
|
|
390
|
+
|
|
391
|
+
```yaml
|
|
392
|
+
class_to_functional:
|
|
393
|
+
complexity: "Low-Medium"
|
|
394
|
+
|
|
395
|
+
automated_conversion:
|
|
396
|
+
tool: "react-codemod"
|
|
397
|
+
command: "npx react-codemod React-Component-to-Functional"
|
|
398
|
+
success_rate: "70%"
|
|
399
|
+
manual_review: "Required"
|
|
400
|
+
|
|
401
|
+
manual_steps:
|
|
402
|
+
1:
|
|
403
|
+
name: "Convert class to function"
|
|
404
|
+
before: |
|
|
405
|
+
class UserProfile extends React.Component {
|
|
406
|
+
state = { user: null };
|
|
407
|
+
|
|
408
|
+
componentDidMount() {
|
|
409
|
+
this.fetchUser();
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
render() {
|
|
413
|
+
return <div>{this.state.user?.name}</div>;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
after: |
|
|
418
|
+
const UserProfile: FC = () => {
|
|
419
|
+
const [user, setUser] = useState<User | null>(null);
|
|
420
|
+
|
|
421
|
+
useEffect(() => {
|
|
422
|
+
fetchUser();
|
|
423
|
+
}, []);
|
|
424
|
+
|
|
425
|
+
return <div>{user?.name}</div>;
|
|
426
|
+
};
|
|
427
|
+
|
|
428
|
+
2:
|
|
429
|
+
name: "Convert lifecycle methods"
|
|
430
|
+
mapping:
|
|
431
|
+
componentDidMount: "useEffect with []"
|
|
432
|
+
componentDidUpdate: "useEffect with deps"
|
|
433
|
+
componentWillUnmount: "useEffect cleanup"
|
|
434
|
+
|
|
435
|
+
3:
|
|
436
|
+
name: "Convert this.setState"
|
|
437
|
+
mapping:
|
|
438
|
+
"this.setState({ x })": "setX(value)"
|
|
439
|
+
"this.state.x": "x"
|
|
440
|
+
|
|
441
|
+
testing:
|
|
442
|
+
before_migration: "Ensure tests exist"
|
|
443
|
+
after_migration: "Run same tests, should pass"
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
### Redux → Zustand
|
|
447
|
+
|
|
448
|
+
```yaml
|
|
449
|
+
redux_to_zustand:
|
|
450
|
+
complexity: "Medium"
|
|
451
|
+
|
|
452
|
+
migration_steps:
|
|
453
|
+
1:
|
|
454
|
+
name: "Create Zustand store"
|
|
455
|
+
from: |
|
|
456
|
+
// Redux slice
|
|
457
|
+
const userSlice = createSlice({
|
|
458
|
+
name: 'user',
|
|
459
|
+
initialState: { user: null, loading: false },
|
|
460
|
+
reducers: {
|
|
461
|
+
setUser: (state, action) => {
|
|
462
|
+
state.user = action.payload;
|
|
463
|
+
},
|
|
464
|
+
setLoading: (state, action) => {
|
|
465
|
+
state.loading = action.payload;
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
});
|
|
469
|
+
|
|
470
|
+
to: |
|
|
471
|
+
// Zustand store
|
|
472
|
+
interface UserStore {
|
|
473
|
+
user: User | null;
|
|
474
|
+
loading: boolean;
|
|
475
|
+
setUser: (user: User) => void;
|
|
476
|
+
setLoading: (loading: boolean) => void;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
const useUserStore = create<UserStore>((set) => ({
|
|
480
|
+
user: null,
|
|
481
|
+
loading: false,
|
|
482
|
+
setUser: (user) => set({ user }),
|
|
483
|
+
setLoading: (loading) => set({ loading }),
|
|
484
|
+
}));
|
|
485
|
+
|
|
486
|
+
2:
|
|
487
|
+
name: "Update component usage"
|
|
488
|
+
from: |
|
|
489
|
+
const user = useSelector(state => state.user.user);
|
|
490
|
+
const dispatch = useDispatch();
|
|
491
|
+
dispatch(setUser(newUser));
|
|
492
|
+
|
|
493
|
+
to: |
|
|
494
|
+
const user = useUserStore(state => state.user);
|
|
495
|
+
const setUser = useUserStore(state => state.setUser);
|
|
496
|
+
setUser(newUser);
|
|
497
|
+
|
|
498
|
+
3:
|
|
499
|
+
name: "Migrate async actions"
|
|
500
|
+
from: "createAsyncThunk"
|
|
501
|
+
to: "Regular async functions in store"
|
|
502
|
+
|
|
503
|
+
coexistence:
|
|
504
|
+
during_migration: |
|
|
505
|
+
// Bridge pattern for gradual migration
|
|
506
|
+
const useUserBridge = () => {
|
|
507
|
+
// Check which store has data
|
|
508
|
+
const zustandUser = useUserStore(s => s.user);
|
|
509
|
+
const reduxUser = useSelector(s => s.user.user);
|
|
510
|
+
return zustandUser || reduxUser;
|
|
511
|
+
};
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
### JavaScript → TypeScript
|
|
515
|
+
|
|
516
|
+
```yaml
|
|
517
|
+
javascript_to_typescript:
|
|
518
|
+
complexity: "Medium-High"
|
|
519
|
+
|
|
520
|
+
approach:
|
|
521
|
+
1:
|
|
522
|
+
name: "Configure TypeScript"
|
|
523
|
+
actions:
|
|
524
|
+
- "Add tsconfig.json"
|
|
525
|
+
- "Enable allowJs: true"
|
|
526
|
+
- "Set strict: false initially"
|
|
527
|
+
|
|
528
|
+
2:
|
|
529
|
+
name: "Rename files gradually"
|
|
530
|
+
pattern: ".js → .ts, .jsx → .tsx"
|
|
531
|
+
order: "Leaf files first, then dependencies"
|
|
532
|
+
|
|
533
|
+
3:
|
|
534
|
+
name: "Add types progressively"
|
|
535
|
+
stages:
|
|
536
|
+
- "Add explicit any where needed"
|
|
537
|
+
- "Replace any with proper types"
|
|
538
|
+
- "Enable stricter options"
|
|
539
|
+
|
|
540
|
+
automated_tools:
|
|
541
|
+
- name: "TypeScript's own inference"
|
|
542
|
+
usage: "Let TS infer where possible"
|
|
543
|
+
|
|
544
|
+
- name: "ts-migrate"
|
|
545
|
+
usage: "npx ts-migrate-full ."
|
|
546
|
+
|
|
547
|
+
type_extraction:
|
|
548
|
+
from_jsdoc: |
|
|
549
|
+
/**
|
|
550
|
+
* @param {string} name
|
|
551
|
+
* @param {number} age
|
|
552
|
+
* @returns {User}
|
|
553
|
+
*/
|
|
554
|
+
function createUser(name, age) { }
|
|
555
|
+
|
|
556
|
+
to_typescript: |
|
|
557
|
+
function createUser(name: string, age: number): User { }
|
|
558
|
+
|
|
559
|
+
common_issues:
|
|
560
|
+
implicit_any:
|
|
561
|
+
solution: "Add types or use type inference"
|
|
562
|
+
|
|
563
|
+
missing_types:
|
|
564
|
+
solution: "Check @types packages or create custom types"
|
|
565
|
+
|
|
566
|
+
third_party_libs:
|
|
567
|
+
solution: "Install @types/[package] or declare module"
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
### Dependency Major Version Upgrades
|
|
571
|
+
|
|
572
|
+
```yaml
|
|
573
|
+
major_version_upgrade:
|
|
574
|
+
complexity: "Variable"
|
|
575
|
+
|
|
576
|
+
example_react_17_to_18:
|
|
577
|
+
breaking_changes:
|
|
578
|
+
- "Automatic batching"
|
|
579
|
+
- "Strict mode behavior"
|
|
580
|
+
- "Suspense changes"
|
|
581
|
+
- "New root API"
|
|
582
|
+
|
|
583
|
+
migration_steps:
|
|
584
|
+
1:
|
|
585
|
+
name: "Update dependencies"
|
|
586
|
+
commands:
|
|
587
|
+
- "npm install react@18 react-dom@18"
|
|
588
|
+
- "npm install @types/react@18 @types/react-dom@18"
|
|
589
|
+
|
|
590
|
+
2:
|
|
591
|
+
name: "Update root render"
|
|
592
|
+
before: |
|
|
593
|
+
import ReactDOM from 'react-dom';
|
|
594
|
+
ReactDOM.render(<App />, document.getElementById('root'));
|
|
595
|
+
|
|
596
|
+
after: |
|
|
597
|
+
import { createRoot } from 'react-dom/client';
|
|
598
|
+
const root = createRoot(document.getElementById('root')!);
|
|
599
|
+
root.render(<App />);
|
|
600
|
+
|
|
601
|
+
3:
|
|
602
|
+
name: "Address breaking changes"
|
|
603
|
+
actions:
|
|
604
|
+
- "Test automatic batching impact"
|
|
605
|
+
- "Update Suspense usage"
|
|
606
|
+
- "Fix strict mode warnings"
|
|
607
|
+
|
|
608
|
+
4:
|
|
609
|
+
name: "Test thoroughly"
|
|
610
|
+
focus:
|
|
611
|
+
- "State update behavior"
|
|
612
|
+
- "useEffect timing"
|
|
613
|
+
- "Suspense boundaries"
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
---
|
|
617
|
+
|
|
618
|
+
## Migration Testing
|
|
619
|
+
|
|
620
|
+
### Before Migration
|
|
621
|
+
|
|
622
|
+
```yaml
|
|
623
|
+
pre_migration_testing:
|
|
624
|
+
requirements:
|
|
625
|
+
- "All existing tests passing"
|
|
626
|
+
- "Baseline performance metrics captured"
|
|
627
|
+
- "Behavior snapshot if possible"
|
|
628
|
+
|
|
629
|
+
baseline_capture:
|
|
630
|
+
tests: "npm test -- --coverage > baseline-coverage.txt"
|
|
631
|
+
performance: "lighthouse report saved"
|
|
632
|
+
behavior: "E2E tests recording"
|
|
633
|
+
```
|
|
634
|
+
|
|
635
|
+
### During Migration
|
|
636
|
+
|
|
637
|
+
```yaml
|
|
638
|
+
during_migration_testing:
|
|
639
|
+
continuous:
|
|
640
|
+
- "Run tests after each file migration"
|
|
641
|
+
- "Check for regressions immediately"
|
|
642
|
+
|
|
643
|
+
comparison:
|
|
644
|
+
- "Old vs new behavior"
|
|
645
|
+
- "Performance comparison"
|
|
646
|
+
|
|
647
|
+
isolation:
|
|
648
|
+
- "Test migrated code independently"
|
|
649
|
+
- "Integration test with non-migrated code"
|
|
650
|
+
```
|
|
651
|
+
|
|
652
|
+
### After Migration
|
|
653
|
+
|
|
654
|
+
```yaml
|
|
655
|
+
post_migration_testing:
|
|
656
|
+
comprehensive:
|
|
657
|
+
- "Full test suite run"
|
|
658
|
+
- "E2E tests"
|
|
659
|
+
- "Performance benchmarks"
|
|
660
|
+
|
|
661
|
+
comparison:
|
|
662
|
+
- "Coverage same or better"
|
|
663
|
+
- "Performance same or better"
|
|
664
|
+
- "No new bugs"
|
|
665
|
+
|
|
666
|
+
monitoring:
|
|
667
|
+
- "Error tracking after deploy"
|
|
668
|
+
- "Performance monitoring"
|
|
669
|
+
- "User feedback"
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
---
|
|
673
|
+
|
|
674
|
+
## Rollback Procedures
|
|
675
|
+
|
|
676
|
+
### Quick Rollback
|
|
677
|
+
|
|
678
|
+
```yaml
|
|
679
|
+
quick_rollback:
|
|
680
|
+
use_when: "Migration causes immediate issues"
|
|
681
|
+
|
|
682
|
+
steps:
|
|
683
|
+
1: "Identify the problem"
|
|
684
|
+
2: "Revert commits (git revert)"
|
|
685
|
+
3: "Deploy previous version"
|
|
686
|
+
4: "Verify rollback successful"
|
|
687
|
+
|
|
688
|
+
commands: |
|
|
689
|
+
# Revert migration commits
|
|
690
|
+
git revert <migration-commit-hash>
|
|
691
|
+
|
|
692
|
+
# Or reset to pre-migration state
|
|
693
|
+
git reset --hard <pre-migration-tag>
|
|
694
|
+
|
|
695
|
+
# Deploy
|
|
696
|
+
npm run deploy
|
|
697
|
+
```
|
|
698
|
+
|
|
699
|
+
### Partial Rollback
|
|
700
|
+
|
|
701
|
+
```yaml
|
|
702
|
+
partial_rollback:
|
|
703
|
+
use_when: "Only specific migrations have issues"
|
|
704
|
+
|
|
705
|
+
approach:
|
|
706
|
+
1: "Identify problematic files"
|
|
707
|
+
2: "Revert only those files"
|
|
708
|
+
3: "Keep successful migrations"
|
|
709
|
+
|
|
710
|
+
commands: |
|
|
711
|
+
# Revert specific files
|
|
712
|
+
git checkout <pre-migration-commit> -- path/to/problem/file.tsx
|
|
713
|
+
|
|
714
|
+
# Commit the revert
|
|
715
|
+
git commit -m "Revert: problematic migration for file.tsx"
|
|
716
|
+
```
|
|
717
|
+
|
|
718
|
+
### Feature Flag Rollback
|
|
719
|
+
|
|
720
|
+
```yaml
|
|
721
|
+
feature_flag_rollback:
|
|
722
|
+
use_when: "Using feature flags for migration"
|
|
723
|
+
|
|
724
|
+
setup:
|
|
725
|
+
flag_name: "USE_NEW_AUTH_IMPLEMENTATION"
|
|
726
|
+
default: false
|
|
727
|
+
|
|
728
|
+
code: |
|
|
729
|
+
const AuthComponent = () => {
|
|
730
|
+
if (featureFlags.USE_NEW_AUTH_IMPLEMENTATION) {
|
|
731
|
+
return <NewAuth />;
|
|
732
|
+
}
|
|
733
|
+
return <LegacyAuth />;
|
|
734
|
+
};
|
|
735
|
+
|
|
736
|
+
rollback:
|
|
737
|
+
action: "Set flag to false"
|
|
738
|
+
effect: "Immediate switch to old implementation"
|
|
739
|
+
no_deploy_needed: true
|
|
740
|
+
```
|
|
741
|
+
|
|
742
|
+
---
|
|
743
|
+
|
|
744
|
+
## Configuration
|
|
745
|
+
|
|
746
|
+
```yaml
|
|
747
|
+
# proagents.config.yaml
|
|
748
|
+
|
|
749
|
+
migrations:
|
|
750
|
+
tracking:
|
|
751
|
+
enabled: true
|
|
752
|
+
file: "proagents/migrations/status.yaml"
|
|
753
|
+
|
|
754
|
+
strategy:
|
|
755
|
+
default: "gradual"
|
|
756
|
+
suggest_on_file_touch: true
|
|
757
|
+
|
|
758
|
+
automated:
|
|
759
|
+
class_to_functional:
|
|
760
|
+
enabled: true
|
|
761
|
+
auto_suggest: true
|
|
762
|
+
|
|
763
|
+
typescript:
|
|
764
|
+
enabled: true
|
|
765
|
+
auto_add_types: true
|
|
766
|
+
|
|
767
|
+
testing:
|
|
768
|
+
require_before_migration: true
|
|
769
|
+
require_after_migration: true
|
|
770
|
+
coverage_threshold: 80
|
|
771
|
+
|
|
772
|
+
rollback:
|
|
773
|
+
create_restore_point: true
|
|
774
|
+
feature_flags: true
|
|
775
|
+
```
|
|
776
|
+
|
|
777
|
+
---
|
|
778
|
+
|
|
779
|
+
## Slash Commands
|
|
780
|
+
|
|
781
|
+
| Command | Description |
|
|
782
|
+
|---------|-------------|
|
|
783
|
+
| `/migrate-status` | View migration progress |
|
|
784
|
+
| `/migrate-plan [type]` | Create migration plan |
|
|
785
|
+
| `/migrate-file [path]` | Migrate specific file |
|
|
786
|
+
| `/migrate-module [name]` | Migrate entire module |
|
|
787
|
+
| `/migrate-rollback [id]` | Rollback migration |
|
|
788
|
+
| `/migrate-report` | Generate migration report |
|