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,516 @@
|
|
|
1
|
+
# Refactoring Patterns Prompt
|
|
2
|
+
|
|
3
|
+
Common refactoring techniques and patterns.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Prompt Template
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
## Refactoring Request
|
|
11
|
+
|
|
12
|
+
Refactor the following code using {{pattern}} pattern:
|
|
13
|
+
|
|
14
|
+
```{{language}}
|
|
15
|
+
{{code}}
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Goals:
|
|
19
|
+
- [ ] Improve readability
|
|
20
|
+
- [ ] Reduce complexity
|
|
21
|
+
- [ ] Improve testability
|
|
22
|
+
- [ ] Remove duplication
|
|
23
|
+
- [ ] Better separation of concerns
|
|
24
|
+
|
|
25
|
+
### Constraints:
|
|
26
|
+
- Must maintain backward compatibility
|
|
27
|
+
- Must not change public API (unless requested)
|
|
28
|
+
- Must include tests for refactored code
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Extract Method
|
|
34
|
+
|
|
35
|
+
Transform long methods into smaller, focused functions.
|
|
36
|
+
|
|
37
|
+
### Before
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
function processUserOrder(user, items) {
|
|
41
|
+
// Validate user
|
|
42
|
+
if (!user.email || !user.email.includes('@')) {
|
|
43
|
+
throw new Error('Invalid email');
|
|
44
|
+
}
|
|
45
|
+
if (!user.address || !user.address.street) {
|
|
46
|
+
throw new Error('Invalid address');
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Calculate totals
|
|
50
|
+
let subtotal = 0;
|
|
51
|
+
for (const item of items) {
|
|
52
|
+
subtotal += item.price * item.quantity;
|
|
53
|
+
}
|
|
54
|
+
const tax = subtotal * 0.1;
|
|
55
|
+
const shipping = subtotal > 100 ? 0 : 10;
|
|
56
|
+
const total = subtotal + tax + shipping;
|
|
57
|
+
|
|
58
|
+
// Create order
|
|
59
|
+
const order = {
|
|
60
|
+
userId: user.id,
|
|
61
|
+
items: items,
|
|
62
|
+
subtotal,
|
|
63
|
+
tax,
|
|
64
|
+
shipping,
|
|
65
|
+
total,
|
|
66
|
+
createdAt: new Date()
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
// Save and notify
|
|
70
|
+
database.save('orders', order);
|
|
71
|
+
emailService.send(user.email, 'Order Confirmation', `Total: $${total}`);
|
|
72
|
+
|
|
73
|
+
return order;
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### After
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
function processUserOrder(user, items) {
|
|
81
|
+
validateUser(user);
|
|
82
|
+
const totals = calculateTotals(items);
|
|
83
|
+
const order = createOrder(user, items, totals);
|
|
84
|
+
saveAndNotify(order, user);
|
|
85
|
+
return order;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function validateUser(user) {
|
|
89
|
+
if (!user.email || !user.email.includes('@')) {
|
|
90
|
+
throw new Error('Invalid email');
|
|
91
|
+
}
|
|
92
|
+
if (!user.address || !user.address.street) {
|
|
93
|
+
throw new Error('Invalid address');
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function calculateTotals(items) {
|
|
98
|
+
const subtotal = items.reduce((sum, item) =>
|
|
99
|
+
sum + item.price * item.quantity, 0
|
|
100
|
+
);
|
|
101
|
+
const tax = subtotal * 0.1;
|
|
102
|
+
const shipping = subtotal > 100 ? 0 : 10;
|
|
103
|
+
const total = subtotal + tax + shipping;
|
|
104
|
+
|
|
105
|
+
return { subtotal, tax, shipping, total };
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function createOrder(user, items, totals) {
|
|
109
|
+
return {
|
|
110
|
+
userId: user.id,
|
|
111
|
+
items,
|
|
112
|
+
...totals,
|
|
113
|
+
createdAt: new Date()
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function saveAndNotify(order, user) {
|
|
118
|
+
database.save('orders', order);
|
|
119
|
+
emailService.send(user.email, 'Order Confirmation', `Total: $${order.total}`);
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Replace Conditional with Polymorphism
|
|
126
|
+
|
|
127
|
+
Replace type-based conditionals with polymorphic behavior.
|
|
128
|
+
|
|
129
|
+
### Before
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
function calculateShipping(order) {
|
|
133
|
+
switch (order.shippingType) {
|
|
134
|
+
case 'standard':
|
|
135
|
+
return order.weight * 0.5;
|
|
136
|
+
case 'express':
|
|
137
|
+
return order.weight * 0.5 + 10;
|
|
138
|
+
case 'overnight':
|
|
139
|
+
return order.weight * 0.5 + 25;
|
|
140
|
+
case 'international':
|
|
141
|
+
return order.weight * 2 + 50;
|
|
142
|
+
default:
|
|
143
|
+
throw new Error(`Unknown shipping type: ${order.shippingType}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### After
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
interface ShippingStrategy {
|
|
152
|
+
calculate(weight: number): number;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
class StandardShipping implements ShippingStrategy {
|
|
156
|
+
calculate(weight: number): number {
|
|
157
|
+
return weight * 0.5;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
class ExpressShipping implements ShippingStrategy {
|
|
162
|
+
calculate(weight: number): number {
|
|
163
|
+
return weight * 0.5 + 10;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
class OvernightShipping implements ShippingStrategy {
|
|
168
|
+
calculate(weight: number): number {
|
|
169
|
+
return weight * 0.5 + 25;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
class InternationalShipping implements ShippingStrategy {
|
|
174
|
+
calculate(weight: number): number {
|
|
175
|
+
return weight * 2 + 50;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
const shippingStrategies: Record<string, ShippingStrategy> = {
|
|
180
|
+
standard: new StandardShipping(),
|
|
181
|
+
express: new ExpressShipping(),
|
|
182
|
+
overnight: new OvernightShipping(),
|
|
183
|
+
international: new InternationalShipping()
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
function calculateShipping(order): number {
|
|
187
|
+
const strategy = shippingStrategies[order.shippingType];
|
|
188
|
+
if (!strategy) {
|
|
189
|
+
throw new Error(`Unknown shipping type: ${order.shippingType}`);
|
|
190
|
+
}
|
|
191
|
+
return strategy.calculate(order.weight);
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Extract Class
|
|
198
|
+
|
|
199
|
+
Split a large class into multiple focused classes.
|
|
200
|
+
|
|
201
|
+
### Before
|
|
202
|
+
|
|
203
|
+
```typescript
|
|
204
|
+
class User {
|
|
205
|
+
id: string;
|
|
206
|
+
email: string;
|
|
207
|
+
password: string;
|
|
208
|
+
|
|
209
|
+
// Authentication methods
|
|
210
|
+
login(password: string): boolean { /* ... */ }
|
|
211
|
+
logout(): void { /* ... */ }
|
|
212
|
+
resetPassword(newPassword: string): void { /* ... */ }
|
|
213
|
+
|
|
214
|
+
// Profile methods
|
|
215
|
+
updateProfile(data: ProfileData): void { /* ... */ }
|
|
216
|
+
getFullName(): string { /* ... */ }
|
|
217
|
+
getAvatar(): string { /* ... */ }
|
|
218
|
+
|
|
219
|
+
// Notification methods
|
|
220
|
+
sendEmail(subject: string, body: string): void { /* ... */ }
|
|
221
|
+
sendSMS(message: string): void { /* ... */ }
|
|
222
|
+
getNotificationPreferences(): Preferences { /* ... */ }
|
|
223
|
+
|
|
224
|
+
// Subscription methods
|
|
225
|
+
subscribe(plan: string): void { /* ... */ }
|
|
226
|
+
cancelSubscription(): void { /* ... */ }
|
|
227
|
+
getBillingHistory(): Bill[] { /* ... */ }
|
|
228
|
+
}
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### After
|
|
232
|
+
|
|
233
|
+
```typescript
|
|
234
|
+
class User {
|
|
235
|
+
id: string;
|
|
236
|
+
email: string;
|
|
237
|
+
|
|
238
|
+
profile: UserProfile;
|
|
239
|
+
auth: UserAuth;
|
|
240
|
+
notifications: UserNotifications;
|
|
241
|
+
subscription: UserSubscription;
|
|
242
|
+
|
|
243
|
+
constructor(data: UserData) {
|
|
244
|
+
this.id = data.id;
|
|
245
|
+
this.email = data.email;
|
|
246
|
+
this.profile = new UserProfile(data);
|
|
247
|
+
this.auth = new UserAuth(data);
|
|
248
|
+
this.notifications = new UserNotifications(this);
|
|
249
|
+
this.subscription = new UserSubscription(this);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
class UserProfile {
|
|
254
|
+
private firstName: string;
|
|
255
|
+
private lastName: string;
|
|
256
|
+
private avatar: string;
|
|
257
|
+
|
|
258
|
+
updateProfile(data: ProfileData): void { /* ... */ }
|
|
259
|
+
getFullName(): string { return `${this.firstName} ${this.lastName}`; }
|
|
260
|
+
getAvatar(): string { return this.avatar; }
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
class UserAuth {
|
|
264
|
+
private passwordHash: string;
|
|
265
|
+
|
|
266
|
+
login(password: string): boolean { /* ... */ }
|
|
267
|
+
logout(): void { /* ... */ }
|
|
268
|
+
resetPassword(newPassword: string): void { /* ... */ }
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
class UserNotifications {
|
|
272
|
+
private user: User;
|
|
273
|
+
|
|
274
|
+
sendEmail(subject: string, body: string): void { /* ... */ }
|
|
275
|
+
sendSMS(message: string): void { /* ... */ }
|
|
276
|
+
getPreferences(): Preferences { /* ... */ }
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
class UserSubscription {
|
|
280
|
+
private user: User;
|
|
281
|
+
|
|
282
|
+
subscribe(plan: string): void { /* ... */ }
|
|
283
|
+
cancel(): void { /* ... */ }
|
|
284
|
+
getBillingHistory(): Bill[] { /* ... */ }
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## Replace Magic Numbers with Constants
|
|
291
|
+
|
|
292
|
+
Replace literal values with named constants.
|
|
293
|
+
|
|
294
|
+
### Before
|
|
295
|
+
|
|
296
|
+
```typescript
|
|
297
|
+
function calculateDiscount(price, userType) {
|
|
298
|
+
if (userType === 1) {
|
|
299
|
+
return price * 0.9; // 10% off
|
|
300
|
+
} else if (userType === 2) {
|
|
301
|
+
return price * 0.85; // 15% off
|
|
302
|
+
} else if (userType === 3) {
|
|
303
|
+
return price * 0.8; // 20% off
|
|
304
|
+
}
|
|
305
|
+
return price;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
function isEligibleForFreeShipping(total) {
|
|
309
|
+
return total >= 100;
|
|
310
|
+
}
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### After
|
|
314
|
+
|
|
315
|
+
```typescript
|
|
316
|
+
const UserType = {
|
|
317
|
+
REGULAR: 1,
|
|
318
|
+
PREMIUM: 2,
|
|
319
|
+
VIP: 3
|
|
320
|
+
} as const;
|
|
321
|
+
|
|
322
|
+
const Discount = {
|
|
323
|
+
[UserType.REGULAR]: 0.10,
|
|
324
|
+
[UserType.PREMIUM]: 0.15,
|
|
325
|
+
[UserType.VIP]: 0.20
|
|
326
|
+
} as const;
|
|
327
|
+
|
|
328
|
+
const FREE_SHIPPING_THRESHOLD = 100;
|
|
329
|
+
|
|
330
|
+
function calculateDiscount(price: number, userType: number): number {
|
|
331
|
+
const discountRate = Discount[userType] ?? 0;
|
|
332
|
+
return price * (1 - discountRate);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
function isEligibleForFreeShipping(total: number): boolean {
|
|
336
|
+
return total >= FREE_SHIPPING_THRESHOLD;
|
|
337
|
+
}
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## Introduce Parameter Object
|
|
343
|
+
|
|
344
|
+
Replace multiple parameters with a single object.
|
|
345
|
+
|
|
346
|
+
### Before
|
|
347
|
+
|
|
348
|
+
```typescript
|
|
349
|
+
function createUser(
|
|
350
|
+
firstName: string,
|
|
351
|
+
lastName: string,
|
|
352
|
+
email: string,
|
|
353
|
+
phone: string,
|
|
354
|
+
street: string,
|
|
355
|
+
city: string,
|
|
356
|
+
state: string,
|
|
357
|
+
zipCode: string,
|
|
358
|
+
country: string
|
|
359
|
+
) {
|
|
360
|
+
// ...
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
createUser('John', 'Doe', 'john@example.com', '555-1234',
|
|
364
|
+
'123 Main St', 'Anytown', 'CA', '12345', 'USA');
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
### After
|
|
368
|
+
|
|
369
|
+
```typescript
|
|
370
|
+
interface CreateUserParams {
|
|
371
|
+
name: {
|
|
372
|
+
first: string;
|
|
373
|
+
last: string;
|
|
374
|
+
};
|
|
375
|
+
email: string;
|
|
376
|
+
phone: string;
|
|
377
|
+
address: {
|
|
378
|
+
street: string;
|
|
379
|
+
city: string;
|
|
380
|
+
state: string;
|
|
381
|
+
zipCode: string;
|
|
382
|
+
country: string;
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
function createUser(params: CreateUserParams) {
|
|
387
|
+
// ...
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
createUser({
|
|
391
|
+
name: { first: 'John', last: 'Doe' },
|
|
392
|
+
email: 'john@example.com',
|
|
393
|
+
phone: '555-1234',
|
|
394
|
+
address: {
|
|
395
|
+
street: '123 Main St',
|
|
396
|
+
city: 'Anytown',
|
|
397
|
+
state: 'CA',
|
|
398
|
+
zipCode: '12345',
|
|
399
|
+
country: 'USA'
|
|
400
|
+
}
|
|
401
|
+
});
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
---
|
|
405
|
+
|
|
406
|
+
## Replace Nested Conditionals with Guard Clauses
|
|
407
|
+
|
|
408
|
+
Flatten deeply nested conditionals.
|
|
409
|
+
|
|
410
|
+
### Before
|
|
411
|
+
|
|
412
|
+
```typescript
|
|
413
|
+
function processPayment(order, payment) {
|
|
414
|
+
if (order) {
|
|
415
|
+
if (order.status === 'pending') {
|
|
416
|
+
if (payment) {
|
|
417
|
+
if (payment.amount >= order.total) {
|
|
418
|
+
if (validatePaymentMethod(payment.method)) {
|
|
419
|
+
// Actually process payment
|
|
420
|
+
return processTransaction(order, payment);
|
|
421
|
+
} else {
|
|
422
|
+
throw new Error('Invalid payment method');
|
|
423
|
+
}
|
|
424
|
+
} else {
|
|
425
|
+
throw new Error('Insufficient payment amount');
|
|
426
|
+
}
|
|
427
|
+
} else {
|
|
428
|
+
throw new Error('No payment provided');
|
|
429
|
+
}
|
|
430
|
+
} else {
|
|
431
|
+
throw new Error('Order is not pending');
|
|
432
|
+
}
|
|
433
|
+
} else {
|
|
434
|
+
throw new Error('No order provided');
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
### After
|
|
440
|
+
|
|
441
|
+
```typescript
|
|
442
|
+
function processPayment(order, payment) {
|
|
443
|
+
// Guard clauses - early returns for invalid cases
|
|
444
|
+
if (!order) {
|
|
445
|
+
throw new Error('No order provided');
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
if (order.status !== 'pending') {
|
|
449
|
+
throw new Error('Order is not pending');
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
if (!payment) {
|
|
453
|
+
throw new Error('No payment provided');
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
if (payment.amount < order.total) {
|
|
457
|
+
throw new Error('Insufficient payment amount');
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
if (!validatePaymentMethod(payment.method)) {
|
|
461
|
+
throw new Error('Invalid payment method');
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
// Happy path - main logic
|
|
465
|
+
return processTransaction(order, payment);
|
|
466
|
+
}
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
## Refactoring Commands
|
|
472
|
+
|
|
473
|
+
```bash
|
|
474
|
+
# Apply specific refactoring pattern
|
|
475
|
+
/refactor apply extract-method --function processOrder
|
|
476
|
+
|
|
477
|
+
# Apply polymorphism
|
|
478
|
+
/refactor apply polymorphism --switch-statement line:45
|
|
479
|
+
|
|
480
|
+
# Extract class
|
|
481
|
+
/refactor apply extract-class --class User --extract Profile,Auth
|
|
482
|
+
|
|
483
|
+
# Replace magic numbers
|
|
484
|
+
/refactor apply constants --file config.ts
|
|
485
|
+
|
|
486
|
+
# Introduce parameter object
|
|
487
|
+
/refactor apply param-object --function createUser
|
|
488
|
+
|
|
489
|
+
# Flatten conditionals
|
|
490
|
+
/refactor apply guard-clauses --function processPayment
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
---
|
|
494
|
+
|
|
495
|
+
## Refactoring Checklist
|
|
496
|
+
|
|
497
|
+
```markdown
|
|
498
|
+
### Before Refactoring
|
|
499
|
+
- [ ] Tests pass
|
|
500
|
+
- [ ] Code coverage adequate
|
|
501
|
+
- [ ] Behavior documented
|
|
502
|
+
- [ ] Performance baseline captured
|
|
503
|
+
|
|
504
|
+
### During Refactoring
|
|
505
|
+
- [ ] Small, incremental changes
|
|
506
|
+
- [ ] Tests still pass after each change
|
|
507
|
+
- [ ] No behavior changes (unless intended)
|
|
508
|
+
- [ ] Git commits for each refactoring step
|
|
509
|
+
|
|
510
|
+
### After Refactoring
|
|
511
|
+
- [ ] All tests pass
|
|
512
|
+
- [ ] Coverage maintained or improved
|
|
513
|
+
- [ ] No performance regression
|
|
514
|
+
- [ ] Code reviewed
|
|
515
|
+
- [ ] Documentation updated
|
|
516
|
+
```
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# Security Audit Prompts
|
|
2
|
+
|
|
3
|
+
AI-assisted security review and vulnerability detection.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
These prompts help identify and fix security vulnerabilities in your code. ProAgents integrates security checks throughout the development workflow, with special focus on OWASP Top 10 vulnerabilities.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Available Prompts
|
|
14
|
+
|
|
15
|
+
| Prompt | Use Case | When to Use |
|
|
16
|
+
|--------|----------|-------------|
|
|
17
|
+
| [vulnerability-scan.md](./vulnerability-scan.md) | Comprehensive vulnerability scan | During reviews, before deployment |
|
|
18
|
+
| [code-review.md](./code-review.md) | Security-focused code review | During Phase 6.5 |
|
|
19
|
+
| [owasp-check.md](./owasp-check.md) | OWASP Top 10 compliance | Regular audits |
|
|
20
|
+
| [auth-review.md](./auth-review.md) | Authentication flow review | Auth features |
|
|
21
|
+
| [data-handling.md](./data-handling.md) | Data security review | Data processing code |
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Quick Commands
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# Full security audit
|
|
29
|
+
/security audit <file_or_directory>
|
|
30
|
+
|
|
31
|
+
# OWASP Top 10 check
|
|
32
|
+
/security owasp <code>
|
|
33
|
+
|
|
34
|
+
# Find hardcoded secrets
|
|
35
|
+
/security secrets <path>
|
|
36
|
+
|
|
37
|
+
# Check dependency vulnerabilities
|
|
38
|
+
/security deps
|
|
39
|
+
|
|
40
|
+
# Review authentication code
|
|
41
|
+
/security auth <file>
|
|
42
|
+
|
|
43
|
+
# Check for injection vulnerabilities
|
|
44
|
+
/security injection <code>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## OWASP Top 10 (2021)
|
|
50
|
+
|
|
51
|
+
| # | Category | Risk Level | Common Examples |
|
|
52
|
+
|---|----------|------------|-----------------|
|
|
53
|
+
| A01 | Broken Access Control | Critical | IDOR, privilege escalation |
|
|
54
|
+
| A02 | Cryptographic Failures | Critical | Weak encryption, exposed data |
|
|
55
|
+
| A03 | Injection | Critical | SQL, XSS, command injection |
|
|
56
|
+
| A04 | Insecure Design | High | Missing threat modeling |
|
|
57
|
+
| A05 | Security Misconfiguration | High | Default credentials, verbose errors |
|
|
58
|
+
| A06 | Vulnerable Components | High | Outdated dependencies |
|
|
59
|
+
| A07 | Authentication Failures | High | Weak passwords, broken sessions |
|
|
60
|
+
| A08 | Data Integrity Failures | Medium | Insecure deserialization |
|
|
61
|
+
| A09 | Logging Failures | Medium | Missing audit logs |
|
|
62
|
+
| A10 | SSRF | Medium | User-controlled URLs |
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Integration with Workflow
|
|
67
|
+
|
|
68
|
+
### During Analysis (Phase 1)
|
|
69
|
+
- Identify existing security patterns
|
|
70
|
+
- Note potential vulnerability areas
|
|
71
|
+
- Assess authentication/authorization
|
|
72
|
+
|
|
73
|
+
### During Implementation (Phase 5)
|
|
74
|
+
- Real-time security suggestions
|
|
75
|
+
- Injection prevention
|
|
76
|
+
- Secure coding practices
|
|
77
|
+
|
|
78
|
+
### During Testing (Phase 6)
|
|
79
|
+
- Security test generation
|
|
80
|
+
- Penetration testing guidance
|
|
81
|
+
- Vulnerability scanning
|
|
82
|
+
|
|
83
|
+
### Before Deployment (Phase 8)
|
|
84
|
+
- Final security audit
|
|
85
|
+
- Dependency vulnerability check
|
|
86
|
+
- Configuration review
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Security Severity Levels
|
|
91
|
+
|
|
92
|
+
| Severity | Response Time | Examples |
|
|
93
|
+
|----------|--------------|----------|
|
|
94
|
+
| **Critical** | Immediate | RCE, authentication bypass, data breach |
|
|
95
|
+
| **High** | Within 24h | SQL injection, XSS, CSRF |
|
|
96
|
+
| **Medium** | Within 1 week | Information disclosure, missing headers |
|
|
97
|
+
| **Low** | Next sprint | Minor misconfigurations |
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Common Vulnerabilities
|
|
102
|
+
|
|
103
|
+
### Injection Attacks
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
// ❌ Vulnerable
|
|
107
|
+
const query = `SELECT * FROM users WHERE id = ${userId}`;
|
|
108
|
+
|
|
109
|
+
// ✅ Secure
|
|
110
|
+
const query = 'SELECT * FROM users WHERE id = $1';
|
|
111
|
+
await db.query(query, [userId]);
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### XSS Prevention
|
|
115
|
+
|
|
116
|
+
```tsx
|
|
117
|
+
// ❌ Vulnerable
|
|
118
|
+
<div dangerouslySetInnerHTML={{ __html: userInput }} />
|
|
119
|
+
|
|
120
|
+
// ✅ Secure
|
|
121
|
+
import DOMPurify from 'dompurify';
|
|
122
|
+
<div dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(userInput) }} />
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Authentication
|
|
126
|
+
|
|
127
|
+
```typescript
|
|
128
|
+
// ❌ Vulnerable
|
|
129
|
+
const token = jwt.sign(payload, 'hardcoded-secret');
|
|
130
|
+
|
|
131
|
+
// ✅ Secure
|
|
132
|
+
const token = jwt.sign(payload, process.env.JWT_SECRET, {
|
|
133
|
+
expiresIn: '1h',
|
|
134
|
+
algorithm: 'RS256'
|
|
135
|
+
});
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Security Headers
|
|
141
|
+
|
|
142
|
+
Essential headers for web applications:
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
const securityHeaders = {
|
|
146
|
+
'Strict-Transport-Security': 'max-age=31536000; includeSubDomains',
|
|
147
|
+
'X-Content-Type-Options': 'nosniff',
|
|
148
|
+
'X-Frame-Options': 'DENY',
|
|
149
|
+
'X-XSS-Protection': '1; mode=block',
|
|
150
|
+
'Content-Security-Policy': "default-src 'self'",
|
|
151
|
+
'Referrer-Policy': 'strict-origin-when-cross-origin'
|
|
152
|
+
};
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Automated Security Tools
|
|
158
|
+
|
|
159
|
+
### Static Analysis (SAST)
|
|
160
|
+
- **SonarQube**: Code quality and security
|
|
161
|
+
- **Semgrep**: Pattern-based scanning
|
|
162
|
+
- **ESLint security plugins**: JavaScript/TypeScript
|
|
163
|
+
|
|
164
|
+
### Dependency Scanning
|
|
165
|
+
- **npm audit**: Built-in npm scanner
|
|
166
|
+
- **Snyk**: Dependency vulnerabilities
|
|
167
|
+
- **Dependabot**: Automated updates
|
|
168
|
+
|
|
169
|
+
### Dynamic Analysis (DAST)
|
|
170
|
+
- **OWASP ZAP**: Web app scanner
|
|
171
|
+
- **Burp Suite**: Penetration testing
|
|
172
|
+
- **Nikto**: Web server scanner
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Security Checklist
|
|
177
|
+
|
|
178
|
+
### Before Deployment
|
|
179
|
+
- [ ] No hardcoded secrets in code
|
|
180
|
+
- [ ] Dependencies up to date
|
|
181
|
+
- [ ] Input validation on all user inputs
|
|
182
|
+
- [ ] Output encoding/escaping
|
|
183
|
+
- [ ] Authentication properly implemented
|
|
184
|
+
- [ ] Authorization checks in place
|
|
185
|
+
- [ ] Security headers configured
|
|
186
|
+
- [ ] HTTPS enforced
|
|
187
|
+
- [ ] Sensitive data encrypted
|
|
188
|
+
- [ ] Logging configured (no sensitive data)
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Resources
|
|
193
|
+
|
|
194
|
+
- [OWASP Top 10](https://owasp.org/Top10/)
|
|
195
|
+
- [OWASP Cheat Sheet Series](https://cheatsheetseries.owasp.org/)
|
|
196
|
+
- [CWE Top 25](https://cwe.mitre.org/top25/)
|
|
197
|
+
- [Node.js Security Best Practices](https://nodejs.org/en/docs/guides/security/)
|