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,754 @@
|
|
|
1
|
+
# Custom Rules Engine
|
|
2
|
+
|
|
3
|
+
Define comprehensive custom rules to enforce project-specific standards.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
The custom rules engine allows you to:
|
|
10
|
+
- Define any validation rules for your project
|
|
11
|
+
- Override ProAgents defaults completely
|
|
12
|
+
- Create framework-specific rules
|
|
13
|
+
- Enforce team conventions automatically
|
|
14
|
+
- Block non-compliant code from merging
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Rule Definition Structure
|
|
19
|
+
|
|
20
|
+
### Complete Rule Schema
|
|
21
|
+
|
|
22
|
+
```yaml
|
|
23
|
+
# proagents/rules/custom-rules.yaml
|
|
24
|
+
|
|
25
|
+
rules:
|
|
26
|
+
- id: "unique-rule-id"
|
|
27
|
+
name: "Human Readable Name"
|
|
28
|
+
description: "What this rule enforces"
|
|
29
|
+
type: "naming | structure | pattern | security | testing | custom"
|
|
30
|
+
|
|
31
|
+
# What to check
|
|
32
|
+
pattern: "regex pattern" # For pattern-based rules
|
|
33
|
+
condition: "condition expression" # For conditional rules
|
|
34
|
+
|
|
35
|
+
# Where to apply
|
|
36
|
+
applies_to:
|
|
37
|
+
files: ["**/*.tsx", "**/*.ts"] # Glob patterns
|
|
38
|
+
directories: ["src/components"] # Specific directories
|
|
39
|
+
exclude: ["**/*.test.ts"] # Exclusions
|
|
40
|
+
|
|
41
|
+
# Behavior
|
|
42
|
+
severity: "error | warning | info | off"
|
|
43
|
+
auto_fix: true # Can be auto-fixed?
|
|
44
|
+
fix_template: "replacement template" # How to fix
|
|
45
|
+
|
|
46
|
+
# Messaging
|
|
47
|
+
message: "Error message to display"
|
|
48
|
+
documentation: "link or detailed explanation"
|
|
49
|
+
|
|
50
|
+
# Dependencies
|
|
51
|
+
requires: ["other-rule-id"] # Must pass first
|
|
52
|
+
conflicts_with: ["conflicting-rule"] # Cannot be used together
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Rule Categories
|
|
58
|
+
|
|
59
|
+
### 1. Naming Rules
|
|
60
|
+
|
|
61
|
+
Enforce naming conventions across your codebase.
|
|
62
|
+
|
|
63
|
+
```yaml
|
|
64
|
+
naming_rules:
|
|
65
|
+
# Component naming
|
|
66
|
+
- id: "component-pascal-case"
|
|
67
|
+
name: "Component PascalCase"
|
|
68
|
+
type: "naming"
|
|
69
|
+
pattern: "^[A-Z][a-zA-Z0-9]*$"
|
|
70
|
+
applies_to:
|
|
71
|
+
files: ["**/components/**/*.tsx"]
|
|
72
|
+
target: "filename" # filename | export | variable | function
|
|
73
|
+
message: "Component files must be PascalCase (e.g., UserProfile.tsx)"
|
|
74
|
+
severity: "error"
|
|
75
|
+
|
|
76
|
+
# Hook naming
|
|
77
|
+
- id: "hook-use-prefix"
|
|
78
|
+
name: "Hook use Prefix"
|
|
79
|
+
type: "naming"
|
|
80
|
+
pattern: "^use[A-Z][a-zA-Z0-9]*$"
|
|
81
|
+
applies_to:
|
|
82
|
+
files: ["**/hooks/**/*.ts"]
|
|
83
|
+
target: "export"
|
|
84
|
+
message: "Hooks must start with 'use' (e.g., useAuth, useUserData)"
|
|
85
|
+
severity: "error"
|
|
86
|
+
|
|
87
|
+
# Service naming
|
|
88
|
+
- id: "service-suffix"
|
|
89
|
+
name: "Service Suffix"
|
|
90
|
+
type: "naming"
|
|
91
|
+
pattern: ".*Service$"
|
|
92
|
+
applies_to:
|
|
93
|
+
files: ["**/services/**/*.ts"]
|
|
94
|
+
target: "export"
|
|
95
|
+
message: "Services must end with 'Service' (e.g., AuthService)"
|
|
96
|
+
severity: "warning"
|
|
97
|
+
|
|
98
|
+
# Constant naming
|
|
99
|
+
- id: "constants-upper-snake"
|
|
100
|
+
name: "Constants UPPER_SNAKE_CASE"
|
|
101
|
+
type: "naming"
|
|
102
|
+
pattern: "^[A-Z][A-Z0-9_]*$"
|
|
103
|
+
context: "const declaration at module level"
|
|
104
|
+
message: "Module-level constants must be UPPER_SNAKE_CASE"
|
|
105
|
+
severity: "warning"
|
|
106
|
+
|
|
107
|
+
# Type/Interface naming
|
|
108
|
+
- id: "type-prefix"
|
|
109
|
+
name: "Type Naming Convention"
|
|
110
|
+
type: "naming"
|
|
111
|
+
pattern: "^(I[A-Z]|T[A-Z]|[A-Z])"
|
|
112
|
+
applies_to:
|
|
113
|
+
files: ["**/*.ts", "**/*.tsx"]
|
|
114
|
+
target: "type_declaration"
|
|
115
|
+
message: "Types should be PascalCase, optionally prefixed with I or T"
|
|
116
|
+
severity: "info"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### 2. Structure Rules
|
|
120
|
+
|
|
121
|
+
Enforce file organization and import patterns.
|
|
122
|
+
|
|
123
|
+
```yaml
|
|
124
|
+
structure_rules:
|
|
125
|
+
# Prevent deep nesting
|
|
126
|
+
- id: "max-directory-depth"
|
|
127
|
+
name: "Maximum Directory Depth"
|
|
128
|
+
type: "structure"
|
|
129
|
+
rule: "directory_depth"
|
|
130
|
+
max_depth: 5
|
|
131
|
+
applies_to:
|
|
132
|
+
directories: ["src"]
|
|
133
|
+
message: "Directory nesting should not exceed 5 levels"
|
|
134
|
+
severity: "warning"
|
|
135
|
+
|
|
136
|
+
# Enforce import boundaries
|
|
137
|
+
- id: "no-cross-feature-imports"
|
|
138
|
+
name: "No Cross-Feature Imports"
|
|
139
|
+
type: "structure"
|
|
140
|
+
rule: "import_boundary"
|
|
141
|
+
boundaries:
|
|
142
|
+
- from: "src/features/auth"
|
|
143
|
+
cannot_import_from: ["src/features/payments", "src/features/admin"]
|
|
144
|
+
- from: "src/features/*"
|
|
145
|
+
can_only_import_from: ["src/shared", "src/lib", "same_feature"]
|
|
146
|
+
message: "Features should not import from other features directly"
|
|
147
|
+
severity: "error"
|
|
148
|
+
|
|
149
|
+
# Enforce barrel exports
|
|
150
|
+
- id: "barrel-exports"
|
|
151
|
+
name: "Use Barrel Exports"
|
|
152
|
+
type: "structure"
|
|
153
|
+
rule: "barrel_exports"
|
|
154
|
+
applies_to:
|
|
155
|
+
directories: ["src/components", "src/hooks"]
|
|
156
|
+
require_index: true
|
|
157
|
+
message: "Directories must have index.ts barrel export"
|
|
158
|
+
severity: "warning"
|
|
159
|
+
|
|
160
|
+
# Prevent circular dependencies
|
|
161
|
+
- id: "no-circular-deps"
|
|
162
|
+
name: "No Circular Dependencies"
|
|
163
|
+
type: "structure"
|
|
164
|
+
rule: "circular_dependency"
|
|
165
|
+
applies_to:
|
|
166
|
+
files: ["src/**/*.ts"]
|
|
167
|
+
message: "Circular dependencies are not allowed"
|
|
168
|
+
severity: "error"
|
|
169
|
+
|
|
170
|
+
# Component file structure
|
|
171
|
+
- id: "component-structure"
|
|
172
|
+
name: "Component File Structure"
|
|
173
|
+
type: "structure"
|
|
174
|
+
rule: "file_structure"
|
|
175
|
+
applies_to:
|
|
176
|
+
directories: ["src/components/*"]
|
|
177
|
+
required_files:
|
|
178
|
+
- "{ComponentName}.tsx"
|
|
179
|
+
- "{ComponentName}.test.tsx"
|
|
180
|
+
- "index.ts"
|
|
181
|
+
optional_files:
|
|
182
|
+
- "{ComponentName}.module.css"
|
|
183
|
+
- "{ComponentName}.types.ts"
|
|
184
|
+
message: "Components must have required files"
|
|
185
|
+
severity: "warning"
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### 3. Code Pattern Rules
|
|
189
|
+
|
|
190
|
+
Detect, require, or forbid specific code patterns.
|
|
191
|
+
|
|
192
|
+
```yaml
|
|
193
|
+
pattern_rules:
|
|
194
|
+
# Forbidden patterns
|
|
195
|
+
- id: "no-console-log"
|
|
196
|
+
name: "No Console.log"
|
|
197
|
+
type: "pattern"
|
|
198
|
+
pattern: "console\\.log\\("
|
|
199
|
+
action: "forbid"
|
|
200
|
+
applies_to:
|
|
201
|
+
files: ["src/**/*.ts", "src/**/*.tsx"]
|
|
202
|
+
exclude: ["**/*.test.ts", "**/*.spec.ts"]
|
|
203
|
+
message: "Remove console.log statements before committing"
|
|
204
|
+
severity: "warning"
|
|
205
|
+
auto_fix: true
|
|
206
|
+
fix_template: "" # Remove the line
|
|
207
|
+
|
|
208
|
+
- id: "no-any-type"
|
|
209
|
+
name: "No Any Type"
|
|
210
|
+
type: "pattern"
|
|
211
|
+
pattern: ":\\s*any\\b"
|
|
212
|
+
action: "forbid"
|
|
213
|
+
applies_to:
|
|
214
|
+
files: ["src/**/*.ts"]
|
|
215
|
+
exclude: ["src/types/vendor.d.ts"]
|
|
216
|
+
message: "Avoid using 'any' type. Use proper typing or 'unknown'"
|
|
217
|
+
severity: "warning"
|
|
218
|
+
|
|
219
|
+
- id: "no-hardcoded-strings"
|
|
220
|
+
name: "No Hardcoded UI Strings"
|
|
221
|
+
type: "pattern"
|
|
222
|
+
pattern: ">['\"][^{][^'\"]+['\"]<"
|
|
223
|
+
action: "forbid"
|
|
224
|
+
applies_to:
|
|
225
|
+
files: ["src/components/**/*.tsx"]
|
|
226
|
+
message: "Use i18n for UI strings instead of hardcoding"
|
|
227
|
+
severity: "warning"
|
|
228
|
+
|
|
229
|
+
# Required patterns
|
|
230
|
+
- id: "require-error-boundary"
|
|
231
|
+
name: "Require Error Boundary"
|
|
232
|
+
type: "pattern"
|
|
233
|
+
pattern: "<ErrorBoundary>"
|
|
234
|
+
action: "require"
|
|
235
|
+
applies_to:
|
|
236
|
+
files: ["src/pages/**/*.tsx"]
|
|
237
|
+
message: "Page components must be wrapped in ErrorBoundary"
|
|
238
|
+
severity: "error"
|
|
239
|
+
|
|
240
|
+
- id: "require-memo-large-components"
|
|
241
|
+
name: "Memo Large Components"
|
|
242
|
+
type: "pattern"
|
|
243
|
+
condition: "component_lines > 100"
|
|
244
|
+
pattern: "memo\\("
|
|
245
|
+
action: "require"
|
|
246
|
+
message: "Large components (>100 lines) should use memo()"
|
|
247
|
+
severity: "info"
|
|
248
|
+
|
|
249
|
+
# Pattern with context
|
|
250
|
+
- id: "async-error-handling"
|
|
251
|
+
name: "Async Error Handling"
|
|
252
|
+
type: "pattern"
|
|
253
|
+
pattern: "await\\s+[^;]+;"
|
|
254
|
+
requires_nearby: "try|catch|.catch"
|
|
255
|
+
applies_to:
|
|
256
|
+
files: ["src/**/*.ts"]
|
|
257
|
+
message: "Async operations should have error handling"
|
|
258
|
+
severity: "warning"
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### 4. Security Rules
|
|
262
|
+
|
|
263
|
+
Enforce security best practices.
|
|
264
|
+
|
|
265
|
+
```yaml
|
|
266
|
+
security_rules:
|
|
267
|
+
# Dangerous functions
|
|
268
|
+
- id: "no-eval"
|
|
269
|
+
name: "No Eval"
|
|
270
|
+
type: "security"
|
|
271
|
+
pattern: "\\beval\\s*\\("
|
|
272
|
+
severity: "error"
|
|
273
|
+
message: "eval() is a security risk. Use safer alternatives."
|
|
274
|
+
owasp: "A03:2021-Injection"
|
|
275
|
+
|
|
276
|
+
- id: "no-innerhtml"
|
|
277
|
+
name: "No innerHTML"
|
|
278
|
+
type: "security"
|
|
279
|
+
pattern: "\\.innerHTML\\s*="
|
|
280
|
+
severity: "error"
|
|
281
|
+
message: "innerHTML can lead to XSS. Use textContent or sanitize input."
|
|
282
|
+
owasp: "A03:2021-Injection"
|
|
283
|
+
|
|
284
|
+
- id: "no-dangerously-set-html"
|
|
285
|
+
name: "No dangerouslySetInnerHTML"
|
|
286
|
+
type: "security"
|
|
287
|
+
pattern: "dangerouslySetInnerHTML"
|
|
288
|
+
severity: "warning"
|
|
289
|
+
message: "dangerouslySetInnerHTML can lead to XSS. Ensure content is sanitized."
|
|
290
|
+
documentation: "https://react.dev/reference/react-dom/components/common#dangerously-setting-the-inner-html"
|
|
291
|
+
|
|
292
|
+
# Secrets detection
|
|
293
|
+
- id: "no-hardcoded-secrets"
|
|
294
|
+
name: "No Hardcoded Secrets"
|
|
295
|
+
type: "security"
|
|
296
|
+
patterns:
|
|
297
|
+
- "api[_-]?key\\s*[:=]\\s*['\"][^'\"]+['\"]"
|
|
298
|
+
- "password\\s*[:=]\\s*['\"][^'\"]+['\"]"
|
|
299
|
+
- "secret\\s*[:=]\\s*['\"][^'\"]+['\"]"
|
|
300
|
+
- "token\\s*[:=]\\s*['\"][^'\"]+['\"]"
|
|
301
|
+
case_insensitive: true
|
|
302
|
+
severity: "error"
|
|
303
|
+
message: "Never hardcode secrets. Use environment variables."
|
|
304
|
+
|
|
305
|
+
# SQL injection
|
|
306
|
+
- id: "no-string-sql"
|
|
307
|
+
name: "No String Concatenation in SQL"
|
|
308
|
+
type: "security"
|
|
309
|
+
pattern: "(query|execute)\\s*\\([^)]*\\+[^)]*\\)"
|
|
310
|
+
severity: "error"
|
|
311
|
+
message: "Use parameterized queries to prevent SQL injection"
|
|
312
|
+
owasp: "A03:2021-Injection"
|
|
313
|
+
|
|
314
|
+
# URL validation
|
|
315
|
+
- id: "validate-urls"
|
|
316
|
+
name: "Validate External URLs"
|
|
317
|
+
type: "security"
|
|
318
|
+
pattern: "window\\.location\\s*=|location\\.href\\s*="
|
|
319
|
+
severity: "warning"
|
|
320
|
+
message: "Validate URLs before redirecting to prevent open redirect vulnerabilities"
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### 5. Testing Rules
|
|
324
|
+
|
|
325
|
+
Ensure adequate testing practices.
|
|
326
|
+
|
|
327
|
+
```yaml
|
|
328
|
+
testing_rules:
|
|
329
|
+
# Coverage requirements
|
|
330
|
+
- id: "min-coverage"
|
|
331
|
+
name: "Minimum Test Coverage"
|
|
332
|
+
type: "testing"
|
|
333
|
+
rule: "coverage"
|
|
334
|
+
thresholds:
|
|
335
|
+
statements: 80
|
|
336
|
+
branches: 75
|
|
337
|
+
functions: 80
|
|
338
|
+
lines: 80
|
|
339
|
+
applies_to:
|
|
340
|
+
files: ["src/**/*.ts"]
|
|
341
|
+
exclude: ["src/**/*.d.ts", "src/**/*.test.ts"]
|
|
342
|
+
severity: "error"
|
|
343
|
+
message: "Test coverage must meet minimum thresholds"
|
|
344
|
+
|
|
345
|
+
# Test file existence
|
|
346
|
+
- id: "require-tests"
|
|
347
|
+
name: "Require Test Files"
|
|
348
|
+
type: "testing"
|
|
349
|
+
rule: "test_existence"
|
|
350
|
+
applies_to:
|
|
351
|
+
files: ["src/components/**/*.tsx", "src/services/**/*.ts"]
|
|
352
|
+
test_pattern: "{filename}.test.{ext}"
|
|
353
|
+
message: "Each component/service must have a corresponding test file"
|
|
354
|
+
severity: "warning"
|
|
355
|
+
|
|
356
|
+
# Test structure
|
|
357
|
+
- id: "test-describe-blocks"
|
|
358
|
+
name: "Test Describe Blocks"
|
|
359
|
+
type: "testing"
|
|
360
|
+
pattern: "describe\\s*\\(['\"]"
|
|
361
|
+
action: "require"
|
|
362
|
+
applies_to:
|
|
363
|
+
files: ["**/*.test.ts", "**/*.spec.ts"]
|
|
364
|
+
message: "Tests should be organized in describe blocks"
|
|
365
|
+
severity: "info"
|
|
366
|
+
|
|
367
|
+
# Assertion requirements
|
|
368
|
+
- id: "meaningful-assertions"
|
|
369
|
+
name: "Meaningful Assertions"
|
|
370
|
+
type: "testing"
|
|
371
|
+
rule: "assertion_count"
|
|
372
|
+
minimum_assertions_per_test: 1
|
|
373
|
+
message: "Each test must have at least one assertion"
|
|
374
|
+
severity: "error"
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
### 6. Custom Domain Rules
|
|
378
|
+
|
|
379
|
+
Create rules specific to your domain.
|
|
380
|
+
|
|
381
|
+
```yaml
|
|
382
|
+
custom_rules:
|
|
383
|
+
# E-commerce example
|
|
384
|
+
- id: "price-formatting"
|
|
385
|
+
name: "Price Formatting"
|
|
386
|
+
type: "custom"
|
|
387
|
+
condition: "variable_name contains 'price' or 'cost' or 'amount'"
|
|
388
|
+
requires_function: "formatCurrency"
|
|
389
|
+
message: "Monetary values must use formatCurrency() for display"
|
|
390
|
+
severity: "warning"
|
|
391
|
+
|
|
392
|
+
# API response handling
|
|
393
|
+
- id: "api-error-handling"
|
|
394
|
+
name: "API Error Handling"
|
|
395
|
+
type: "custom"
|
|
396
|
+
pattern: "fetch\\(|axios\\."
|
|
397
|
+
requires_pattern: "\\.catch\\(|try\\s*\\{|handleError"
|
|
398
|
+
message: "API calls must have error handling"
|
|
399
|
+
severity: "error"
|
|
400
|
+
|
|
401
|
+
# Analytics tracking
|
|
402
|
+
- id: "button-analytics"
|
|
403
|
+
name: "Button Analytics Tracking"
|
|
404
|
+
type: "custom"
|
|
405
|
+
condition: "<Button onClick"
|
|
406
|
+
requires_pattern: "track(Click|Event)|analytics\\."
|
|
407
|
+
applies_to:
|
|
408
|
+
files: ["src/components/**/*.tsx"]
|
|
409
|
+
message: "Button clicks should be tracked for analytics"
|
|
410
|
+
severity: "info"
|
|
411
|
+
|
|
412
|
+
# Accessibility
|
|
413
|
+
- id: "img-alt-text"
|
|
414
|
+
name: "Image Alt Text"
|
|
415
|
+
type: "custom"
|
|
416
|
+
pattern: "<img\\s+(?![^>]*alt=)"
|
|
417
|
+
severity: "error"
|
|
418
|
+
message: "Images must have alt text for accessibility"
|
|
419
|
+
|
|
420
|
+
- id: "form-labels"
|
|
421
|
+
name: "Form Input Labels"
|
|
422
|
+
type: "custom"
|
|
423
|
+
pattern: "<input(?![^>]*(aria-label|aria-labelledby|id=['\"][^'\"]+['\"][^>]*<label[^>]*for))"
|
|
424
|
+
severity: "error"
|
|
425
|
+
message: "Form inputs must have associated labels"
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
---
|
|
429
|
+
|
|
430
|
+
## Override System
|
|
431
|
+
|
|
432
|
+
### Override Hierarchy
|
|
433
|
+
|
|
434
|
+
```
|
|
435
|
+
Priority (highest to lowest):
|
|
436
|
+
1. Inline comments (// @proagents-ignore rule-id)
|
|
437
|
+
2. File-level overrides
|
|
438
|
+
3. Directory-level overrides
|
|
439
|
+
4. Project configuration
|
|
440
|
+
5. ProAgents defaults
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
### Inline Overrides
|
|
444
|
+
|
|
445
|
+
```typescript
|
|
446
|
+
// Ignore next line
|
|
447
|
+
// @proagents-ignore no-console-log
|
|
448
|
+
console.log("Debugging");
|
|
449
|
+
|
|
450
|
+
// Ignore specific rule for block
|
|
451
|
+
/* @proagents-disable no-any-type */
|
|
452
|
+
const data: any = externalLibrary.getData();
|
|
453
|
+
/* @proagents-enable no-any-type */
|
|
454
|
+
|
|
455
|
+
// Ignore with reason (recommended)
|
|
456
|
+
// @proagents-ignore no-hardcoded-strings -- Legacy code, will be fixed in TICKET-123
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
### File-Level Overrides
|
|
460
|
+
|
|
461
|
+
```yaml
|
|
462
|
+
# At top of file: proagents.yaml
|
|
463
|
+
rules:
|
|
464
|
+
no-console-log: "off"
|
|
465
|
+
min-coverage:
|
|
466
|
+
threshold: 50 # Lower for this file
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
Or in the file itself:
|
|
470
|
+
```typescript
|
|
471
|
+
/* @proagents-file-config
|
|
472
|
+
rules:
|
|
473
|
+
no-any-type: warning
|
|
474
|
+
*/
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
### Directory-Level Overrides
|
|
478
|
+
|
|
479
|
+
```yaml
|
|
480
|
+
# proagents/rules/overrides.yaml
|
|
481
|
+
|
|
482
|
+
directory_overrides:
|
|
483
|
+
- path: "src/legacy/**"
|
|
484
|
+
rules:
|
|
485
|
+
no-any-type: "off"
|
|
486
|
+
min-coverage: "off"
|
|
487
|
+
component-pascal-case: "warning"
|
|
488
|
+
reason: "Legacy code, gradual migration"
|
|
489
|
+
|
|
490
|
+
- path: "src/generated/**"
|
|
491
|
+
rules:
|
|
492
|
+
all: "off"
|
|
493
|
+
reason: "Auto-generated code"
|
|
494
|
+
|
|
495
|
+
- path: "src/vendor/**"
|
|
496
|
+
rules:
|
|
497
|
+
all: "off"
|
|
498
|
+
reason: "Third-party code"
|
|
499
|
+
|
|
500
|
+
- path: "**/*.test.ts"
|
|
501
|
+
rules:
|
|
502
|
+
no-console-log: "off"
|
|
503
|
+
no-any-type: "warning"
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
### Project-Level Configuration
|
|
507
|
+
|
|
508
|
+
```yaml
|
|
509
|
+
# proagents.config.yaml
|
|
510
|
+
|
|
511
|
+
rules:
|
|
512
|
+
enabled: true
|
|
513
|
+
config_file: "proagents/rules/custom-rules.yaml"
|
|
514
|
+
|
|
515
|
+
# Override default severity
|
|
516
|
+
severity_overrides:
|
|
517
|
+
no-any-type: "error" # Make stricter
|
|
518
|
+
no-console-log: "warning" # Make lenient
|
|
519
|
+
|
|
520
|
+
# Completely disable rules
|
|
521
|
+
disabled_rules:
|
|
522
|
+
- "some-rule-id"
|
|
523
|
+
|
|
524
|
+
# Add additional rules
|
|
525
|
+
additional_rules:
|
|
526
|
+
- "./team-rules.yaml"
|
|
527
|
+
- "@company/shared-rules"
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
---
|
|
531
|
+
|
|
532
|
+
## Conditional Rules
|
|
533
|
+
|
|
534
|
+
### Based on File Context
|
|
535
|
+
|
|
536
|
+
```yaml
|
|
537
|
+
conditional_rules:
|
|
538
|
+
- id: "strict-in-core"
|
|
539
|
+
name: "Strict Rules in Core"
|
|
540
|
+
base_rule: "no-any-type"
|
|
541
|
+
conditions:
|
|
542
|
+
- when:
|
|
543
|
+
path_matches: "src/core/**"
|
|
544
|
+
then:
|
|
545
|
+
severity: "error"
|
|
546
|
+
- when:
|
|
547
|
+
path_matches: "src/features/**"
|
|
548
|
+
then:
|
|
549
|
+
severity: "warning"
|
|
550
|
+
- when:
|
|
551
|
+
path_matches: "src/experimental/**"
|
|
552
|
+
then:
|
|
553
|
+
severity: "off"
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
### Based on Git Context
|
|
557
|
+
|
|
558
|
+
```yaml
|
|
559
|
+
conditional_rules:
|
|
560
|
+
- id: "stricter-on-main"
|
|
561
|
+
conditions:
|
|
562
|
+
- when:
|
|
563
|
+
branch: "main"
|
|
564
|
+
then:
|
|
565
|
+
fail_on_warning: true
|
|
566
|
+
- when:
|
|
567
|
+
branch: "feature/*"
|
|
568
|
+
then:
|
|
569
|
+
fail_on_warning: false
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
### Based on Environment
|
|
573
|
+
|
|
574
|
+
```yaml
|
|
575
|
+
conditional_rules:
|
|
576
|
+
- id: "ci-strictness"
|
|
577
|
+
conditions:
|
|
578
|
+
- when:
|
|
579
|
+
environment: "ci"
|
|
580
|
+
then:
|
|
581
|
+
all_warnings_as_errors: true
|
|
582
|
+
- when:
|
|
583
|
+
environment: "local"
|
|
584
|
+
then:
|
|
585
|
+
all_warnings_as_errors: false
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
---
|
|
589
|
+
|
|
590
|
+
## Rule Composition
|
|
591
|
+
|
|
592
|
+
### Combining Rules
|
|
593
|
+
|
|
594
|
+
```yaml
|
|
595
|
+
composed_rules:
|
|
596
|
+
- id: "strict-component-rules"
|
|
597
|
+
name: "Strict Component Rules"
|
|
598
|
+
compose:
|
|
599
|
+
- component-pascal-case
|
|
600
|
+
- require-error-boundary
|
|
601
|
+
- component-structure
|
|
602
|
+
- require-tests
|
|
603
|
+
applies_to:
|
|
604
|
+
directories: ["src/components"]
|
|
605
|
+
severity: "error"
|
|
606
|
+
|
|
607
|
+
- id: "lenient-utility-rules"
|
|
608
|
+
name: "Lenient Utility Rules"
|
|
609
|
+
compose:
|
|
610
|
+
- no-any-type
|
|
611
|
+
- no-console-log
|
|
612
|
+
severity: "warning"
|
|
613
|
+
applies_to:
|
|
614
|
+
directories: ["src/utils"]
|
|
615
|
+
```
|
|
616
|
+
|
|
617
|
+
### Rule Groups
|
|
618
|
+
|
|
619
|
+
```yaml
|
|
620
|
+
rule_groups:
|
|
621
|
+
security:
|
|
622
|
+
description: "All security-related rules"
|
|
623
|
+
rules:
|
|
624
|
+
- no-eval
|
|
625
|
+
- no-innerhtml
|
|
626
|
+
- no-hardcoded-secrets
|
|
627
|
+
- no-string-sql
|
|
628
|
+
enable_all: true
|
|
629
|
+
severity: "error"
|
|
630
|
+
|
|
631
|
+
performance:
|
|
632
|
+
description: "Performance optimization rules"
|
|
633
|
+
rules:
|
|
634
|
+
- require-memo-large-components
|
|
635
|
+
- no-inline-styles
|
|
636
|
+
- lazy-load-images
|
|
637
|
+
enable_all: true
|
|
638
|
+
severity: "warning"
|
|
639
|
+
|
|
640
|
+
accessibility:
|
|
641
|
+
description: "Accessibility rules"
|
|
642
|
+
rules:
|
|
643
|
+
- img-alt-text
|
|
644
|
+
- form-labels
|
|
645
|
+
- aria-attributes
|
|
646
|
+
enable_all: true
|
|
647
|
+
severity: "error"
|
|
648
|
+
```
|
|
649
|
+
|
|
650
|
+
---
|
|
651
|
+
|
|
652
|
+
## Custom Rule Functions
|
|
653
|
+
|
|
654
|
+
For complex validation, define custom functions:
|
|
655
|
+
|
|
656
|
+
```yaml
|
|
657
|
+
custom_functions:
|
|
658
|
+
- id: "validate-api-response"
|
|
659
|
+
name: "Validate API Response Typing"
|
|
660
|
+
type: "function"
|
|
661
|
+
language: "javascript"
|
|
662
|
+
code: |
|
|
663
|
+
function validate(fileContent, ast) {
|
|
664
|
+
const apiCalls = ast.findAll('CallExpression', {
|
|
665
|
+
callee: /fetch|axios/
|
|
666
|
+
});
|
|
667
|
+
|
|
668
|
+
const issues = [];
|
|
669
|
+
for (const call of apiCalls) {
|
|
670
|
+
if (!hasTypeAssertion(call)) {
|
|
671
|
+
issues.push({
|
|
672
|
+
line: call.loc.start.line,
|
|
673
|
+
message: 'API response should be typed'
|
|
674
|
+
});
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
return issues;
|
|
678
|
+
}
|
|
679
|
+
severity: "warning"
|
|
680
|
+
```
|
|
681
|
+
|
|
682
|
+
---
|
|
683
|
+
|
|
684
|
+
## Integration
|
|
685
|
+
|
|
686
|
+
### Pre-commit Hook
|
|
687
|
+
|
|
688
|
+
```yaml
|
|
689
|
+
# .husky/pre-commit
|
|
690
|
+
proagents rules-check --staged-only --fail-on-error
|
|
691
|
+
```
|
|
692
|
+
|
|
693
|
+
### CI/CD
|
|
694
|
+
|
|
695
|
+
```yaml
|
|
696
|
+
# .github/workflows/rules.yml
|
|
697
|
+
- name: Run ProAgents Rules
|
|
698
|
+
run: proagents rules-check --ci --report-format=github
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
### IDE Integration
|
|
702
|
+
|
|
703
|
+
```yaml
|
|
704
|
+
# .vscode/settings.json
|
|
705
|
+
{
|
|
706
|
+
"proagents.rules.enabled": true,
|
|
707
|
+
"proagents.rules.showInlineWarnings": true,
|
|
708
|
+
"proagents.rules.autoFix": true
|
|
709
|
+
}
|
|
710
|
+
```
|
|
711
|
+
|
|
712
|
+
---
|
|
713
|
+
|
|
714
|
+
## Reporting
|
|
715
|
+
|
|
716
|
+
### Rule Violations Report
|
|
717
|
+
|
|
718
|
+
```
|
|
719
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
720
|
+
│ Rule Violations Report │
|
|
721
|
+
├─────────────────────────────────────────────────────────────┤
|
|
722
|
+
│ │
|
|
723
|
+
│ Total Violations: 45 │
|
|
724
|
+
│ ├── Errors: 12 (must fix) │
|
|
725
|
+
│ ├── Warnings: 28 (should fix) │
|
|
726
|
+
│ └── Info: 5 (consider) │
|
|
727
|
+
│ │
|
|
728
|
+
│ By Rule: │
|
|
729
|
+
│ ├── no-any-type: 15 │
|
|
730
|
+
│ ├── component-pascal-case: 8 │
|
|
731
|
+
│ ├── require-tests: 7 │
|
|
732
|
+
│ └── other: 15 │
|
|
733
|
+
│ │
|
|
734
|
+
│ Files with most violations: │
|
|
735
|
+
│ ├── src/legacy/OldComponent.tsx: 12 │
|
|
736
|
+
│ ├── src/utils/helpers.ts: 8 │
|
|
737
|
+
│ └── src/services/api.ts: 5 │
|
|
738
|
+
│ │
|
|
739
|
+
└─────────────────────────────────────────────────────────────┘
|
|
740
|
+
```
|
|
741
|
+
|
|
742
|
+
---
|
|
743
|
+
|
|
744
|
+
## Slash Commands
|
|
745
|
+
|
|
746
|
+
| Command | Description |
|
|
747
|
+
|---------|-------------|
|
|
748
|
+
| `/rules-check` | Run all rule validations |
|
|
749
|
+
| `/rules-check --fix` | Auto-fix violations |
|
|
750
|
+
| `/rules-list` | List all active rules |
|
|
751
|
+
| `/rules-add` | Interactive rule creation |
|
|
752
|
+
| `/rules-disable [id]` | Disable a rule |
|
|
753
|
+
| `/rules-explain [id]` | Explain what a rule does |
|
|
754
|
+
| `/rules-report` | Generate violations report |
|