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,485 @@
|
|
|
1
|
+
# Test Naming Conventions
|
|
2
|
+
|
|
3
|
+
Consistent naming patterns for tests, files, and test suites.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## File Naming
|
|
8
|
+
|
|
9
|
+
### Test File Patterns
|
|
10
|
+
|
|
11
|
+
| Pattern | Usage | Example |
|
|
12
|
+
|---------|-------|---------|
|
|
13
|
+
| `*.test.ts` | Unit tests | `userService.test.ts` |
|
|
14
|
+
| `*.spec.ts` | Unit/integration tests | `userService.spec.ts` |
|
|
15
|
+
| `*.integration.test.ts` | Integration tests | `database.integration.test.ts` |
|
|
16
|
+
| `*.e2e.test.ts` | End-to-end tests | `checkout.e2e.test.ts` |
|
|
17
|
+
|
|
18
|
+
### Configuration
|
|
19
|
+
|
|
20
|
+
```yaml
|
|
21
|
+
# proagents.config.yaml
|
|
22
|
+
testing:
|
|
23
|
+
naming:
|
|
24
|
+
# File patterns
|
|
25
|
+
files:
|
|
26
|
+
unit: "{name}.test.ts"
|
|
27
|
+
integration: "{name}.integration.test.ts"
|
|
28
|
+
e2e: "{name}.e2e.test.ts"
|
|
29
|
+
|
|
30
|
+
# Test directory structure
|
|
31
|
+
structure:
|
|
32
|
+
colocated: false # Tests next to source files
|
|
33
|
+
separate: true # Tests in __tests__ directory
|
|
34
|
+
|
|
35
|
+
# Describe blocks
|
|
36
|
+
describe:
|
|
37
|
+
style: "PascalCase" # Match class/component names
|
|
38
|
+
|
|
39
|
+
# It blocks
|
|
40
|
+
it:
|
|
41
|
+
prefix: "should"
|
|
42
|
+
style: "sentence"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Test Suite Naming
|
|
48
|
+
|
|
49
|
+
### Describe Block Patterns
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
// For classes: Use class name
|
|
53
|
+
describe('UserService', () => {
|
|
54
|
+
// Tests here
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
// For functions: Use function name
|
|
58
|
+
describe('validateEmail', () => {
|
|
59
|
+
// Tests here
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
// For components: Use component name
|
|
63
|
+
describe('UserProfileCard', () => {
|
|
64
|
+
// Tests here
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
// For modules: Use module path
|
|
68
|
+
describe('services/auth', () => {
|
|
69
|
+
// Tests here
|
|
70
|
+
});
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Nested Describe Patterns
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
// Method grouping
|
|
77
|
+
describe('UserService', () => {
|
|
78
|
+
describe('createUser', () => {
|
|
79
|
+
// Tests for createUser
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
describe('deleteUser', () => {
|
|
83
|
+
// Tests for deleteUser
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
// Context grouping (Given-When-Then style)
|
|
88
|
+
describe('OrderService', () => {
|
|
89
|
+
describe('calculateTotal', () => {
|
|
90
|
+
describe('given valid items', () => {
|
|
91
|
+
describe('when calculating with tax', () => {
|
|
92
|
+
it('should include tax in total', () => {
|
|
93
|
+
// Test
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
describe('given empty cart', () => {
|
|
99
|
+
it('should return zero', () => {
|
|
100
|
+
// Test
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
// State grouping
|
|
107
|
+
describe('ShoppingCart', () => {
|
|
108
|
+
describe('when empty', () => {
|
|
109
|
+
it('should have zero items', () => {});
|
|
110
|
+
it('should have zero total', () => {});
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
describe('when has items', () => {
|
|
114
|
+
it('should calculate correct total', () => {});
|
|
115
|
+
it('should allow item removal', () => {});
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Test Case Naming
|
|
123
|
+
|
|
124
|
+
### The "should" Pattern
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
// ✅ Good: Describes expected behavior
|
|
128
|
+
it('should return user when valid ID provided', () => {});
|
|
129
|
+
it('should throw NotFoundError when user does not exist', () => {});
|
|
130
|
+
it('should hash password before saving', () => {});
|
|
131
|
+
|
|
132
|
+
// ❌ Bad: Vague or implementation-focused
|
|
133
|
+
it('test user', () => {});
|
|
134
|
+
it('works correctly', () => {});
|
|
135
|
+
it('calls the database', () => {});
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Naming Formula
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
it('should [expected behavior] when [condition/context]')
|
|
142
|
+
|
|
143
|
+
Examples:
|
|
144
|
+
- 'should return null when user not found'
|
|
145
|
+
- 'should throw ValidationError when email is invalid'
|
|
146
|
+
- 'should emit event when order is placed'
|
|
147
|
+
- 'should redirect to login when session expires'
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Action-Based Naming
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
// For actions/mutations
|
|
154
|
+
it('should create user with hashed password', () => {});
|
|
155
|
+
it('should update order status to shipped', () => {});
|
|
156
|
+
it('should delete all related records', () => {});
|
|
157
|
+
|
|
158
|
+
// For queries/reads
|
|
159
|
+
it('should return all active users', () => {});
|
|
160
|
+
it('should find order by tracking number', () => {});
|
|
161
|
+
it('should calculate correct discount amount', () => {});
|
|
162
|
+
|
|
163
|
+
// For side effects
|
|
164
|
+
it('should send welcome email after registration', () => {});
|
|
165
|
+
it('should log error when payment fails', () => {});
|
|
166
|
+
it('should invalidate cache after update', () => {});
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Edge Case Naming
|
|
172
|
+
|
|
173
|
+
### Error Cases
|
|
174
|
+
|
|
175
|
+
```typescript
|
|
176
|
+
describe('UserService', () => {
|
|
177
|
+
describe('getUser', () => {
|
|
178
|
+
// Happy path
|
|
179
|
+
it('should return user when valid ID provided', () => {});
|
|
180
|
+
|
|
181
|
+
// Error cases - explicit about the error
|
|
182
|
+
it('should throw NotFoundError when user does not exist', () => {});
|
|
183
|
+
it('should throw ValidationError when ID is invalid format', () => {});
|
|
184
|
+
it('should throw AuthorizationError when user lacks permission', () => {});
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Boundary Cases
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
describe('validateAge', () => {
|
|
193
|
+
// Boundaries named explicitly
|
|
194
|
+
it('should reject age below minimum (0)', () => {});
|
|
195
|
+
it('should accept minimum valid age (1)', () => {});
|
|
196
|
+
it('should accept maximum valid age (120)', () => {});
|
|
197
|
+
it('should reject age above maximum (121)', () => {});
|
|
198
|
+
|
|
199
|
+
// Edge values
|
|
200
|
+
it('should handle null input', () => {});
|
|
201
|
+
it('should handle undefined input', () => {});
|
|
202
|
+
it('should handle negative numbers', () => {});
|
|
203
|
+
});
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Special Cases
|
|
207
|
+
|
|
208
|
+
```typescript
|
|
209
|
+
describe('formatCurrency', () => {
|
|
210
|
+
it('should format positive amounts with currency symbol', () => {});
|
|
211
|
+
it('should format negative amounts with minus sign', () => {});
|
|
212
|
+
it('should format zero as $0.00', () => {});
|
|
213
|
+
it('should round to two decimal places', () => {});
|
|
214
|
+
it('should handle very large numbers', () => {});
|
|
215
|
+
it('should handle very small decimals', () => {});
|
|
216
|
+
});
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Integration Test Naming
|
|
222
|
+
|
|
223
|
+
### API Tests
|
|
224
|
+
|
|
225
|
+
```typescript
|
|
226
|
+
describe('POST /api/users', () => {
|
|
227
|
+
it('should create user and return 201', () => {});
|
|
228
|
+
it('should return 400 when email is missing', () => {});
|
|
229
|
+
it('should return 409 when email already exists', () => {});
|
|
230
|
+
it('should return 401 when not authenticated', () => {});
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
describe('GET /api/users/:id', () => {
|
|
234
|
+
it('should return user when exists', () => {});
|
|
235
|
+
it('should return 404 when user not found', () => {});
|
|
236
|
+
});
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### Database Tests
|
|
240
|
+
|
|
241
|
+
```typescript
|
|
242
|
+
describe('UserRepository', () => {
|
|
243
|
+
describe('with PostgreSQL', () => {
|
|
244
|
+
it('should persist user to database', () => {});
|
|
245
|
+
it('should retrieve user by email', () => {});
|
|
246
|
+
it('should update user fields', () => {});
|
|
247
|
+
it('should handle concurrent updates', () => {});
|
|
248
|
+
});
|
|
249
|
+
});
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## E2E Test Naming
|
|
255
|
+
|
|
256
|
+
### User Journey Pattern
|
|
257
|
+
|
|
258
|
+
```typescript
|
|
259
|
+
describe('User Registration Flow', () => {
|
|
260
|
+
it('should complete registration with valid data', () => {});
|
|
261
|
+
it('should show validation errors for invalid email', () => {});
|
|
262
|
+
it('should redirect to dashboard after successful registration', () => {});
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
describe('Checkout Flow', () => {
|
|
266
|
+
it('should complete purchase with credit card', () => {});
|
|
267
|
+
it('should apply discount code correctly', () => {});
|
|
268
|
+
it('should show order confirmation after payment', () => {});
|
|
269
|
+
});
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### Feature-Based Pattern
|
|
273
|
+
|
|
274
|
+
```typescript
|
|
275
|
+
describe('Feature: User Authentication', () => {
|
|
276
|
+
describe('Scenario: Successful login', () => {
|
|
277
|
+
it('should allow login with valid credentials', () => {});
|
|
278
|
+
it('should display user dashboard after login', () => {});
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
describe('Scenario: Failed login', () => {
|
|
282
|
+
it('should show error for invalid password', () => {});
|
|
283
|
+
it('should lock account after 5 failed attempts', () => {});
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## Component Test Naming
|
|
291
|
+
|
|
292
|
+
### React Component Tests
|
|
293
|
+
|
|
294
|
+
```typescript
|
|
295
|
+
describe('LoginForm', () => {
|
|
296
|
+
// Rendering
|
|
297
|
+
it('should render email and password inputs', () => {});
|
|
298
|
+
it('should render submit button', () => {});
|
|
299
|
+
|
|
300
|
+
// User interactions
|
|
301
|
+
it('should update email field on input', () => {});
|
|
302
|
+
it('should call onSubmit with credentials when form submitted', () => {});
|
|
303
|
+
|
|
304
|
+
// States
|
|
305
|
+
it('should disable submit button when loading', () => {});
|
|
306
|
+
it('should display error message when login fails', () => {});
|
|
307
|
+
|
|
308
|
+
// Accessibility
|
|
309
|
+
it('should have accessible form labels', () => {});
|
|
310
|
+
it('should focus first input on mount', () => {});
|
|
311
|
+
});
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### Snapshot Tests
|
|
315
|
+
|
|
316
|
+
```typescript
|
|
317
|
+
describe('Button', () => {
|
|
318
|
+
it('should match snapshot for primary variant', () => {});
|
|
319
|
+
it('should match snapshot for secondary variant', () => {});
|
|
320
|
+
it('should match snapshot for disabled state', () => {});
|
|
321
|
+
});
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## Anti-Patterns
|
|
327
|
+
|
|
328
|
+
### Names to Avoid
|
|
329
|
+
|
|
330
|
+
```typescript
|
|
331
|
+
// ❌ Too vague
|
|
332
|
+
it('works', () => {});
|
|
333
|
+
it('test 1', () => {});
|
|
334
|
+
it('should work correctly', () => {});
|
|
335
|
+
|
|
336
|
+
// ❌ Implementation-focused (not behavior)
|
|
337
|
+
it('calls fetchUser function', () => {});
|
|
338
|
+
it('sets state to loading', () => {});
|
|
339
|
+
it('uses the cache', () => {});
|
|
340
|
+
|
|
341
|
+
// ❌ Negative phrasing (confusing)
|
|
342
|
+
it('should not not fail', () => {});
|
|
343
|
+
it('should not throw when valid', () => {}); // Better: 'should succeed when valid'
|
|
344
|
+
|
|
345
|
+
// ❌ Multiple behaviors in one name
|
|
346
|
+
it('should validate, save, and send email', () => {});
|
|
347
|
+
|
|
348
|
+
// ❌ Copy-paste artifacts
|
|
349
|
+
it('should create user (copy)', () => {});
|
|
350
|
+
it('should create user 2', () => {});
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
### Better Alternatives
|
|
354
|
+
|
|
355
|
+
```typescript
|
|
356
|
+
// ✅ Clear and specific
|
|
357
|
+
it('should return user data when valid ID provided', () => {});
|
|
358
|
+
|
|
359
|
+
// ✅ Behavior-focused
|
|
360
|
+
it('should hash password before saving to database', () => {});
|
|
361
|
+
|
|
362
|
+
// ✅ Positive phrasing
|
|
363
|
+
it('should succeed when input is valid', () => {});
|
|
364
|
+
|
|
365
|
+
// ✅ Single behavior per test
|
|
366
|
+
it('should validate email format', () => {});
|
|
367
|
+
it('should save user to database', () => {});
|
|
368
|
+
it('should send welcome email', () => {});
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
## Parameterized Test Naming
|
|
374
|
+
|
|
375
|
+
### Table-Driven Tests
|
|
376
|
+
|
|
377
|
+
```typescript
|
|
378
|
+
describe('validateEmail', () => {
|
|
379
|
+
// Use descriptive table headers
|
|
380
|
+
it.each([
|
|
381
|
+
['user@example.com', true, 'standard email'],
|
|
382
|
+
['user.name@example.co.uk', true, 'email with subdomain'],
|
|
383
|
+
['invalid', false, 'missing @ symbol'],
|
|
384
|
+
['user@', false, 'missing domain'],
|
|
385
|
+
])(
|
|
386
|
+
'should return %s for %s (%s)',
|
|
387
|
+
(email, expected, description) => {
|
|
388
|
+
expect(validateEmail(email)).toBe(expected);
|
|
389
|
+
}
|
|
390
|
+
);
|
|
391
|
+
});
|
|
392
|
+
|
|
393
|
+
// Alternative: descriptive name in test
|
|
394
|
+
describe('calculateDiscount', () => {
|
|
395
|
+
it.each([
|
|
396
|
+
{ orderTotal: 100, expected: 0, description: 'no discount for small orders' },
|
|
397
|
+
{ orderTotal: 500, expected: 25, description: '5% discount for medium orders' },
|
|
398
|
+
{ orderTotal: 1000, expected: 100, description: '10% discount for large orders' },
|
|
399
|
+
])(
|
|
400
|
+
'should apply $description ($orderTotal -> $expected)',
|
|
401
|
+
({ orderTotal, expected }) => {
|
|
402
|
+
expect(calculateDiscount(orderTotal)).toBe(expected);
|
|
403
|
+
}
|
|
404
|
+
);
|
|
405
|
+
});
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
---
|
|
409
|
+
|
|
410
|
+
## Commands
|
|
411
|
+
|
|
412
|
+
```bash
|
|
413
|
+
# Check test naming conventions
|
|
414
|
+
proagents test lint --check-naming
|
|
415
|
+
|
|
416
|
+
# Auto-fix naming issues
|
|
417
|
+
proagents test lint --fix-naming
|
|
418
|
+
|
|
419
|
+
# Generate test file with correct naming
|
|
420
|
+
proagents test scaffold UserService
|
|
421
|
+
|
|
422
|
+
# Validate all test names
|
|
423
|
+
proagents test validate --naming-only
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
## Configuration Examples
|
|
429
|
+
|
|
430
|
+
### Jest Configuration
|
|
431
|
+
|
|
432
|
+
```javascript
|
|
433
|
+
// jest.config.js
|
|
434
|
+
module.exports = {
|
|
435
|
+
testMatch: [
|
|
436
|
+
'**/__tests__/**/*.test.ts',
|
|
437
|
+
'**/*.spec.ts',
|
|
438
|
+
],
|
|
439
|
+
testPathIgnorePatterns: [
|
|
440
|
+
'/node_modules/',
|
|
441
|
+
],
|
|
442
|
+
};
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
### ESLint Rules
|
|
446
|
+
|
|
447
|
+
```javascript
|
|
448
|
+
// .eslintrc.js
|
|
449
|
+
module.exports = {
|
|
450
|
+
plugins: ['jest'],
|
|
451
|
+
rules: {
|
|
452
|
+
'jest/valid-title': [
|
|
453
|
+
'error',
|
|
454
|
+
{
|
|
455
|
+
mustMatch: {
|
|
456
|
+
it: '^should ',
|
|
457
|
+
test: '^should ',
|
|
458
|
+
},
|
|
459
|
+
mustNotMatch: {
|
|
460
|
+
it: ['\\.$', 'Ends with period'],
|
|
461
|
+
},
|
|
462
|
+
},
|
|
463
|
+
],
|
|
464
|
+
'jest/lowercase-name': [
|
|
465
|
+
'error',
|
|
466
|
+
{
|
|
467
|
+
ignore: ['describe'],
|
|
468
|
+
},
|
|
469
|
+
],
|
|
470
|
+
},
|
|
471
|
+
};
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
---
|
|
475
|
+
|
|
476
|
+
## Best Practices
|
|
477
|
+
|
|
478
|
+
1. **Be Descriptive**: Names should explain what is being tested without reading the code
|
|
479
|
+
2. **Use "should"**: Start test names with "should" for consistent, readable tests
|
|
480
|
+
3. **Include Context**: Mention the condition or scenario being tested
|
|
481
|
+
4. **One Behavior Per Test**: Each test should verify a single behavior
|
|
482
|
+
5. **Avoid Implementation Details**: Focus on behavior, not internal implementation
|
|
483
|
+
6. **Match File to Source**: Test file names should match source file names
|
|
484
|
+
7. **Group Related Tests**: Use nested describe blocks for logical grouping
|
|
485
|
+
8. **Be Consistent**: Follow the same naming patterns across the entire project
|