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,260 @@
|
|
|
1
|
+
# Security Code Review
|
|
2
|
+
|
|
3
|
+
Comprehensive security review for code.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Prompt Template
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Review this code for security vulnerabilities:
|
|
11
|
+
|
|
12
|
+
{code}
|
|
13
|
+
|
|
14
|
+
Check for:
|
|
15
|
+
1. Injection vulnerabilities (SQL, NoSQL, Command, LDAP)
|
|
16
|
+
2. Authentication/Authorization issues
|
|
17
|
+
3. Sensitive data exposure
|
|
18
|
+
4. XSS vulnerabilities
|
|
19
|
+
5. CSRF vulnerabilities
|
|
20
|
+
6. Insecure deserialization
|
|
21
|
+
7. Security misconfiguration
|
|
22
|
+
8. Hardcoded secrets/credentials
|
|
23
|
+
9. Insufficient logging
|
|
24
|
+
10. Using components with known vulnerabilities
|
|
25
|
+
|
|
26
|
+
For each issue found:
|
|
27
|
+
- Describe the vulnerability
|
|
28
|
+
- Explain the risk (with CWE reference)
|
|
29
|
+
- Provide severity rating
|
|
30
|
+
- Show secure code fix
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## OWASP Top 10 Checks
|
|
36
|
+
|
|
37
|
+
### A01: Broken Access Control
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
// ❌ Vulnerable: No authorization check
|
|
41
|
+
app.get('/api/users/:id', async (req, res) => {
|
|
42
|
+
const user = await User.findById(req.params.id);
|
|
43
|
+
res.json(user);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
// ✅ Secure: Authorization check
|
|
47
|
+
app.get('/api/users/:id', authenticate, async (req, res) => {
|
|
48
|
+
// Check if user can access this resource
|
|
49
|
+
if (req.user.id !== req.params.id && !req.user.isAdmin) {
|
|
50
|
+
return res.status(403).json({ error: 'Forbidden' });
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const user = await User.findById(req.params.id);
|
|
54
|
+
res.json(user);
|
|
55
|
+
});
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### A02: Cryptographic Failures
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
// ❌ Vulnerable: Weak hashing
|
|
62
|
+
const hashedPassword = md5(password);
|
|
63
|
+
|
|
64
|
+
// ❌ Vulnerable: Hardcoded secret
|
|
65
|
+
const token = jwt.sign(payload, 'my-secret-key');
|
|
66
|
+
|
|
67
|
+
// ✅ Secure: Strong hashing with bcrypt
|
|
68
|
+
const hashedPassword = await bcrypt.hash(password, 12);
|
|
69
|
+
|
|
70
|
+
// ✅ Secure: Environment variable secret
|
|
71
|
+
const token = jwt.sign(payload, process.env.JWT_SECRET);
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### A03: Injection
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
// ❌ Vulnerable: SQL injection
|
|
78
|
+
const query = `SELECT * FROM users WHERE email = '${email}'`;
|
|
79
|
+
db.query(query);
|
|
80
|
+
|
|
81
|
+
// ❌ Vulnerable: NoSQL injection
|
|
82
|
+
User.find({ email: req.body.email });
|
|
83
|
+
|
|
84
|
+
// ✅ Secure: Parameterized query
|
|
85
|
+
const query = 'SELECT * FROM users WHERE email = $1';
|
|
86
|
+
db.query(query, [email]);
|
|
87
|
+
|
|
88
|
+
// ✅ Secure: Input validation
|
|
89
|
+
const email = z.string().email().parse(req.body.email);
|
|
90
|
+
User.find({ email });
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### A04: Insecure Design
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
// ❌ Vulnerable: No rate limiting
|
|
97
|
+
app.post('/api/login', async (req, res) => {
|
|
98
|
+
const user = await authenticate(req.body);
|
|
99
|
+
res.json(user);
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
// ✅ Secure: Rate limiting
|
|
103
|
+
import rateLimit from 'express-rate-limit';
|
|
104
|
+
|
|
105
|
+
const loginLimiter = rateLimit({
|
|
106
|
+
windowMs: 15 * 60 * 1000, // 15 minutes
|
|
107
|
+
max: 5, // 5 attempts
|
|
108
|
+
message: 'Too many login attempts',
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
app.post('/api/login', loginLimiter, async (req, res) => {
|
|
112
|
+
const user = await authenticate(req.body);
|
|
113
|
+
res.json(user);
|
|
114
|
+
});
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### A05: Security Misconfiguration
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
// ❌ Vulnerable: Verbose errors in production
|
|
121
|
+
app.use((err, req, res, next) => {
|
|
122
|
+
res.status(500).json({
|
|
123
|
+
error: err.message,
|
|
124
|
+
stack: err.stack, // Exposes internal details
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
// ✅ Secure: Generic errors in production
|
|
129
|
+
app.use((err, req, res, next) => {
|
|
130
|
+
logger.error(err);
|
|
131
|
+
|
|
132
|
+
if (process.env.NODE_ENV === 'production') {
|
|
133
|
+
res.status(500).json({ error: 'Internal server error' });
|
|
134
|
+
} else {
|
|
135
|
+
res.status(500).json({ error: err.message, stack: err.stack });
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### A07: XSS
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
// ❌ Vulnerable: Direct HTML insertion
|
|
144
|
+
function Comment({ content }) {
|
|
145
|
+
return <div dangerouslySetInnerHTML={{ __html: content }} />;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// ✅ Secure: Text content only
|
|
149
|
+
function Comment({ content }) {
|
|
150
|
+
return <div>{content}</div>;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// ✅ Secure: Sanitize if HTML needed
|
|
154
|
+
import DOMPurify from 'dompurify';
|
|
155
|
+
|
|
156
|
+
function Comment({ content }) {
|
|
157
|
+
const sanitized = DOMPurify.sanitize(content);
|
|
158
|
+
return <div dangerouslySetInnerHTML={{ __html: sanitized }} />;
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Secret Detection
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
// ❌ Vulnerable: Hardcoded secrets
|
|
168
|
+
const API_KEY = 'sk_live_abc123xyz';
|
|
169
|
+
const DB_PASSWORD = 'admin123';
|
|
170
|
+
const JWT_SECRET = 'super-secret-key';
|
|
171
|
+
|
|
172
|
+
// ❌ Vulnerable: Committed to repo
|
|
173
|
+
// .env (should be in .gitignore)
|
|
174
|
+
API_KEY=sk_live_abc123xyz
|
|
175
|
+
|
|
176
|
+
// ✅ Secure: Environment variables
|
|
177
|
+
const API_KEY = process.env.API_KEY;
|
|
178
|
+
const DB_PASSWORD = process.env.DB_PASSWORD;
|
|
179
|
+
|
|
180
|
+
// Validate secrets exist
|
|
181
|
+
if (!process.env.API_KEY) {
|
|
182
|
+
throw new Error('API_KEY environment variable required');
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Security Headers
|
|
189
|
+
|
|
190
|
+
```typescript
|
|
191
|
+
import helmet from 'helmet';
|
|
192
|
+
|
|
193
|
+
app.use(helmet());
|
|
194
|
+
|
|
195
|
+
// Or configure individually
|
|
196
|
+
app.use(helmet.contentSecurityPolicy({
|
|
197
|
+
directives: {
|
|
198
|
+
defaultSrc: ["'self'"],
|
|
199
|
+
scriptSrc: ["'self'", "'unsafe-inline'"],
|
|
200
|
+
styleSrc: ["'self'", "'unsafe-inline'"],
|
|
201
|
+
imgSrc: ["'self'", 'data:', 'https:'],
|
|
202
|
+
},
|
|
203
|
+
}));
|
|
204
|
+
|
|
205
|
+
app.use(helmet.hsts({
|
|
206
|
+
maxAge: 31536000,
|
|
207
|
+
includeSubDomains: true,
|
|
208
|
+
}));
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Input Validation
|
|
214
|
+
|
|
215
|
+
```typescript
|
|
216
|
+
import { z } from 'zod';
|
|
217
|
+
|
|
218
|
+
// Define strict schemas
|
|
219
|
+
const userSchema = z.object({
|
|
220
|
+
email: z.string().email().max(255),
|
|
221
|
+
password: z.string().min(8).max(100),
|
|
222
|
+
name: z.string().min(1).max(100).regex(/^[a-zA-Z\s]+$/),
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
// Validate all inputs
|
|
226
|
+
app.post('/api/users', async (req, res) => {
|
|
227
|
+
const result = userSchema.safeParse(req.body);
|
|
228
|
+
|
|
229
|
+
if (!result.success) {
|
|
230
|
+
return res.status(400).json({
|
|
231
|
+
error: 'Validation failed',
|
|
232
|
+
details: result.error.issues,
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
const user = await createUser(result.data);
|
|
237
|
+
res.json(user);
|
|
238
|
+
});
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Security Commands
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
# Full security audit
|
|
247
|
+
/security audit ./src
|
|
248
|
+
|
|
249
|
+
# Check for OWASP Top 10
|
|
250
|
+
/security owasp ./src/api
|
|
251
|
+
|
|
252
|
+
# Find secrets
|
|
253
|
+
/security secrets ./
|
|
254
|
+
|
|
255
|
+
# Check dependencies
|
|
256
|
+
/security deps
|
|
257
|
+
|
|
258
|
+
# Generate security report
|
|
259
|
+
/security report
|
|
260
|
+
```
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
# Vulnerability Scanning Prompt
|
|
2
|
+
|
|
3
|
+
Identify security vulnerabilities in code.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Prompt Template
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
## Security Vulnerability Scan
|
|
11
|
+
|
|
12
|
+
Analyze the following code for security vulnerabilities:
|
|
13
|
+
|
|
14
|
+
```{{language}}
|
|
15
|
+
{{code}}
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Check For (OWASP Top 10):
|
|
19
|
+
|
|
20
|
+
1. **Broken Access Control (A01)**
|
|
21
|
+
- [ ] Missing authorization checks
|
|
22
|
+
- [ ] IDOR vulnerabilities
|
|
23
|
+
- [ ] Privilege escalation
|
|
24
|
+
|
|
25
|
+
2. **Cryptographic Failures (A02)**
|
|
26
|
+
- [ ] Weak encryption
|
|
27
|
+
- [ ] Hardcoded secrets
|
|
28
|
+
- [ ] Insecure random numbers
|
|
29
|
+
|
|
30
|
+
3. **Injection (A03)**
|
|
31
|
+
- [ ] SQL injection
|
|
32
|
+
- [ ] Command injection
|
|
33
|
+
- [ ] XSS vulnerabilities
|
|
34
|
+
|
|
35
|
+
4. **Insecure Design (A04)**
|
|
36
|
+
- [ ] Missing rate limiting
|
|
37
|
+
- [ ] Insufficient validation
|
|
38
|
+
|
|
39
|
+
5. **Security Misconfiguration (A05)**
|
|
40
|
+
- [ ] Verbose error messages
|
|
41
|
+
- [ ] Default credentials
|
|
42
|
+
- [ ] Missing security headers
|
|
43
|
+
|
|
44
|
+
6. **Vulnerable Components (A06)**
|
|
45
|
+
- [ ] Outdated dependencies
|
|
46
|
+
- [ ] Known vulnerabilities
|
|
47
|
+
|
|
48
|
+
7. **Authentication Failures (A07)**
|
|
49
|
+
- [ ] Weak password policies
|
|
50
|
+
- [ ] Session management issues
|
|
51
|
+
|
|
52
|
+
8. **Data Integrity Failures (A08)**
|
|
53
|
+
- [ ] Missing input validation
|
|
54
|
+
- [ ] Insecure deserialization
|
|
55
|
+
|
|
56
|
+
9. **Logging Failures (A09)**
|
|
57
|
+
- [ ] Insufficient logging
|
|
58
|
+
- [ ] Sensitive data in logs
|
|
59
|
+
|
|
60
|
+
10. **SSRF (A10)**
|
|
61
|
+
- [ ] User-controlled URLs
|
|
62
|
+
- [ ] Internal network access
|
|
63
|
+
|
|
64
|
+
### Output Format:
|
|
65
|
+
For each vulnerability:
|
|
66
|
+
1. OWASP category
|
|
67
|
+
2. Severity (Critical/High/Medium/Low)
|
|
68
|
+
3. Location in code
|
|
69
|
+
4. Exploitation scenario
|
|
70
|
+
5. Remediation steps
|
|
71
|
+
6. Fixed code
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Common Vulnerabilities
|
|
77
|
+
|
|
78
|
+
### SQL Injection
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
// ❌ Vulnerable
|
|
82
|
+
const query = `SELECT * FROM users WHERE id = ${userId}`;
|
|
83
|
+
await db.query(query);
|
|
84
|
+
|
|
85
|
+
// ✅ Secure
|
|
86
|
+
const query = 'SELECT * FROM users WHERE id = $1';
|
|
87
|
+
await db.query(query, [userId]);
|
|
88
|
+
|
|
89
|
+
// ✅ Using ORM (Prisma)
|
|
90
|
+
await prisma.user.findUnique({ where: { id: userId } });
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### XSS (Cross-Site Scripting)
|
|
94
|
+
|
|
95
|
+
```tsx
|
|
96
|
+
// ❌ Vulnerable - React
|
|
97
|
+
<div dangerouslySetInnerHTML={{ __html: userInput }} />
|
|
98
|
+
|
|
99
|
+
// ✅ Secure - sanitize if HTML needed
|
|
100
|
+
import DOMPurify from 'dompurify';
|
|
101
|
+
<div dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(userInput) }} />
|
|
102
|
+
|
|
103
|
+
// ✅ Secure - text content (React auto-escapes)
|
|
104
|
+
<div>{userInput}</div>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Command Injection
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
// ❌ Vulnerable
|
|
111
|
+
exec(`ls ${userInput}`, (err, stdout) => { ... });
|
|
112
|
+
|
|
113
|
+
// ✅ Secure - use parameterized
|
|
114
|
+
execFile('ls', [userInput], (err, stdout) => { ... });
|
|
115
|
+
|
|
116
|
+
// ✅ Secure - validate/sanitize input
|
|
117
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(userInput)) {
|
|
118
|
+
throw new Error('Invalid input');
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Path Traversal
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
// ❌ Vulnerable
|
|
126
|
+
const filePath = `/uploads/${req.params.filename}`;
|
|
127
|
+
fs.readFile(filePath);
|
|
128
|
+
|
|
129
|
+
// ✅ Secure
|
|
130
|
+
import path from 'path';
|
|
131
|
+
|
|
132
|
+
const safePath = path.join('/uploads', path.basename(req.params.filename));
|
|
133
|
+
if (!safePath.startsWith('/uploads/')) {
|
|
134
|
+
throw new Error('Invalid path');
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Insecure Direct Object Reference (IDOR)
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
// ❌ Vulnerable - no authorization check
|
|
142
|
+
app.get('/api/users/:id/data', async (req, res) => {
|
|
143
|
+
const data = await getUserData(req.params.id);
|
|
144
|
+
res.json(data);
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
// ✅ Secure - verify ownership
|
|
148
|
+
app.get('/api/users/:id/data', async (req, res) => {
|
|
149
|
+
if (req.user.id !== req.params.id && !req.user.isAdmin) {
|
|
150
|
+
return res.status(403).json({ error: 'Forbidden' });
|
|
151
|
+
}
|
|
152
|
+
const data = await getUserData(req.params.id);
|
|
153
|
+
res.json(data);
|
|
154
|
+
});
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Hardcoded Secrets
|
|
158
|
+
|
|
159
|
+
```typescript
|
|
160
|
+
// ❌ Vulnerable
|
|
161
|
+
const apiKey = 'sk-12345abcdef';
|
|
162
|
+
const dbPassword = 'mysecretpassword';
|
|
163
|
+
|
|
164
|
+
// ✅ Secure - use environment variables
|
|
165
|
+
const apiKey = process.env.API_KEY;
|
|
166
|
+
const dbPassword = process.env.DB_PASSWORD;
|
|
167
|
+
|
|
168
|
+
// ✅ Secure - use secrets manager
|
|
169
|
+
const apiKey = await secretsManager.getSecret('api-key');
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Security Headers
|
|
175
|
+
|
|
176
|
+
```typescript
|
|
177
|
+
// Next.js next.config.js
|
|
178
|
+
const securityHeaders = [
|
|
179
|
+
{
|
|
180
|
+
key: 'X-DNS-Prefetch-Control',
|
|
181
|
+
value: 'on'
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
key: 'Strict-Transport-Security',
|
|
185
|
+
value: 'max-age=63072000; includeSubDomains; preload'
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
key: 'X-XSS-Protection',
|
|
189
|
+
value: '1; mode=block'
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
key: 'X-Frame-Options',
|
|
193
|
+
value: 'SAMEORIGIN'
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
key: 'X-Content-Type-Options',
|
|
197
|
+
value: 'nosniff'
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
key: 'Referrer-Policy',
|
|
201
|
+
value: 'origin-when-cross-origin'
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
key: 'Content-Security-Policy',
|
|
205
|
+
value: "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline';"
|
|
206
|
+
}
|
|
207
|
+
];
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Input Validation
|
|
213
|
+
|
|
214
|
+
```typescript
|
|
215
|
+
import { z } from 'zod';
|
|
216
|
+
|
|
217
|
+
// Define schema
|
|
218
|
+
const userSchema = z.object({
|
|
219
|
+
email: z.string().email(),
|
|
220
|
+
password: z.string().min(8).regex(/[A-Z]/).regex(/[0-9]/),
|
|
221
|
+
age: z.number().int().min(18).max(120),
|
|
222
|
+
role: z.enum(['user', 'admin']),
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
// Validate input
|
|
226
|
+
export async function createUser(input: unknown) {
|
|
227
|
+
const validated = userSchema.parse(input);
|
|
228
|
+
// Safe to use validated data
|
|
229
|
+
return await db.user.create({ data: validated });
|
|
230
|
+
}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Rate Limiting
|
|
236
|
+
|
|
237
|
+
```typescript
|
|
238
|
+
import rateLimit from 'express-rate-limit';
|
|
239
|
+
|
|
240
|
+
// General rate limit
|
|
241
|
+
const limiter = rateLimit({
|
|
242
|
+
windowMs: 15 * 60 * 1000, // 15 minutes
|
|
243
|
+
max: 100, // 100 requests per window
|
|
244
|
+
message: 'Too many requests',
|
|
245
|
+
});
|
|
246
|
+
|
|
247
|
+
// Strict limit for auth endpoints
|
|
248
|
+
const authLimiter = rateLimit({
|
|
249
|
+
windowMs: 60 * 60 * 1000, // 1 hour
|
|
250
|
+
max: 5, // 5 attempts per hour
|
|
251
|
+
message: 'Too many login attempts',
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
app.use('/api/', limiter);
|
|
255
|
+
app.use('/api/auth/', authLimiter);
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## Security Testing
|
|
261
|
+
|
|
262
|
+
```typescript
|
|
263
|
+
// Automated security tests
|
|
264
|
+
describe('Security', () => {
|
|
265
|
+
it('should prevent SQL injection', async () => {
|
|
266
|
+
const maliciousInput = "'; DROP TABLE users; --";
|
|
267
|
+
const response = await request(app)
|
|
268
|
+
.get(`/api/users/${maliciousInput}`)
|
|
269
|
+
.expect(400); // Should reject, not execute
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
it('should prevent XSS', async () => {
|
|
273
|
+
const maliciousInput = '<script>alert("xss")</script>';
|
|
274
|
+
const response = await request(app)
|
|
275
|
+
.post('/api/comments')
|
|
276
|
+
.send({ content: maliciousInput });
|
|
277
|
+
|
|
278
|
+
expect(response.body.content).not.toContain('<script>');
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
it('should enforce authorization', async () => {
|
|
282
|
+
await request(app)
|
|
283
|
+
.get('/api/users/other-user-id/data')
|
|
284
|
+
.set('Authorization', `Bearer ${userToken}`)
|
|
285
|
+
.expect(403);
|
|
286
|
+
});
|
|
287
|
+
});
|
|
288
|
+
```
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Reporting & Analytics Dashboard
|
|
2
|
+
|
|
3
|
+
Track development metrics, team productivity, and project health.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
ProAgents provides comprehensive reporting and analytics to track development progress and identify areas for improvement.
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
13
|
+
│ Analytics Dashboard │
|
|
14
|
+
├─────────────────────────────────────────────────────────────┤
|
|
15
|
+
│ │
|
|
16
|
+
│ ┌─────────────────┐ ┌─────────────────┐ │
|
|
17
|
+
│ │ Velocity │ │ Quality │ │
|
|
18
|
+
│ │ ████████░░ 80% │ │ ████████░░ 85% │ │
|
|
19
|
+
│ │ Features/Week │ │ Test Coverage │ │
|
|
20
|
+
│ └─────────────────┘ └─────────────────┘ │
|
|
21
|
+
│ │
|
|
22
|
+
│ ┌─────────────────┐ ┌─────────────────┐ │
|
|
23
|
+
│ │ Efficiency │ │ Team │ │
|
|
24
|
+
│ │ ████████░░ 75% │ │ ████████░░ 90% │ │
|
|
25
|
+
│ │ Phase Time │ │ Collaboration │ │
|
|
26
|
+
│ └─────────────────┘ └─────────────────┘ │
|
|
27
|
+
│ │
|
|
28
|
+
└─────────────────────────────────────────────────────────────┘
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Quick Start
|
|
34
|
+
|
|
35
|
+
### Generate Reports
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Generate velocity report
|
|
39
|
+
proagents report velocity
|
|
40
|
+
|
|
41
|
+
# Generate quality report
|
|
42
|
+
proagents report quality
|
|
43
|
+
|
|
44
|
+
# Generate all reports
|
|
45
|
+
proagents report all
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### View Dashboard
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Open dashboard in browser
|
|
52
|
+
proagents dashboard
|
|
53
|
+
|
|
54
|
+
# Generate static dashboard
|
|
55
|
+
proagents dashboard export --format html
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Report Types
|
|
61
|
+
|
|
62
|
+
| Report | Description | Frequency |
|
|
63
|
+
|--------|-------------|-----------|
|
|
64
|
+
| **Velocity** | Development speed and throughput | Weekly |
|
|
65
|
+
| **Quality** | Code quality and test coverage | Weekly |
|
|
66
|
+
| **Team** | Team activity and collaboration | Weekly |
|
|
67
|
+
| **Features** | Feature completion and status | Daily |
|
|
68
|
+
| **Security** | Security vulnerabilities and fixes | Weekly |
|
|
69
|
+
| **Dependencies** | Dependency health and updates | Weekly |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Documentation Files
|
|
74
|
+
|
|
75
|
+
| File | Description |
|
|
76
|
+
|------|-------------|
|
|
77
|
+
| [velocity-metrics.md](./velocity-metrics.md) | Velocity tracking and metrics |
|
|
78
|
+
| [quality-metrics.md](./quality-metrics.md) | Code quality metrics |
|
|
79
|
+
| [dashboards.md](./dashboards.md) | Dashboard configuration |
|
|
80
|
+
| [exports.md](./exports.md) | Report export options |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Key Metrics
|
|
85
|
+
|
|
86
|
+
### Development Velocity
|
|
87
|
+
|
|
88
|
+
- Features completed per week
|
|
89
|
+
- Average time per phase
|
|
90
|
+
- Cycle time (start to deploy)
|
|
91
|
+
- Lead time (idea to deploy)
|
|
92
|
+
|
|
93
|
+
### Code Quality
|
|
94
|
+
|
|
95
|
+
- Test coverage percentage
|
|
96
|
+
- Code review completion rate
|
|
97
|
+
- Bug escape rate
|
|
98
|
+
- Technical debt score
|
|
99
|
+
|
|
100
|
+
### Team Performance
|
|
101
|
+
|
|
102
|
+
- Features per developer
|
|
103
|
+
- Review turnaround time
|
|
104
|
+
- Collaboration score
|
|
105
|
+
- Knowledge sharing
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Configuration
|
|
110
|
+
|
|
111
|
+
```yaml
|
|
112
|
+
# proagents.config.yaml
|
|
113
|
+
|
|
114
|
+
reporting:
|
|
115
|
+
enabled: true
|
|
116
|
+
|
|
117
|
+
# Automatic reports
|
|
118
|
+
schedules:
|
|
119
|
+
- report: velocity
|
|
120
|
+
frequency: weekly
|
|
121
|
+
day: monday
|
|
122
|
+
recipients: [team@company.com]
|
|
123
|
+
|
|
124
|
+
- report: quality
|
|
125
|
+
frequency: weekly
|
|
126
|
+
day: friday
|
|
127
|
+
recipients: [tech-lead@company.com]
|
|
128
|
+
|
|
129
|
+
# Dashboard settings
|
|
130
|
+
dashboard:
|
|
131
|
+
refresh_interval: "5m"
|
|
132
|
+
default_period: "30d"
|
|
133
|
+
|
|
134
|
+
# Metrics collection
|
|
135
|
+
metrics:
|
|
136
|
+
velocity: true
|
|
137
|
+
quality: true
|
|
138
|
+
team: true
|
|
139
|
+
security: true
|
|
140
|
+
|
|
141
|
+
# Export settings
|
|
142
|
+
export:
|
|
143
|
+
formats: [pdf, html, json]
|
|
144
|
+
include_charts: true
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Commands
|
|
150
|
+
|
|
151
|
+
| Command | Description |
|
|
152
|
+
|---------|-------------|
|
|
153
|
+
| `proagents report velocity` | Generate velocity report |
|
|
154
|
+
| `proagents report quality` | Generate quality report |
|
|
155
|
+
| `proagents report team` | Generate team report |
|
|
156
|
+
| `proagents report all` | Generate all reports |
|
|
157
|
+
| `proagents dashboard` | Open live dashboard |
|
|
158
|
+
| `proagents metrics` | Show current metrics |
|