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,553 @@
|
|
|
1
|
+
# Full-Stack Next.js Workflow Example
|
|
2
|
+
|
|
3
|
+
Complete workflow for adding a User Dashboard feature to a Next.js application.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Feature Request
|
|
8
|
+
|
|
9
|
+
> "Add a user dashboard page that shows user statistics, recent activity, and quick actions."
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Phase 0: Initialization
|
|
14
|
+
|
|
15
|
+
### Mode Detection
|
|
16
|
+
```
|
|
17
|
+
Detected: Full Workflow Mode
|
|
18
|
+
Reason: New feature with UI, API, and database components
|
|
19
|
+
Project Type: Full-stack (Next.js)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Branch Creation
|
|
23
|
+
```bash
|
|
24
|
+
git checkout -b feature/user-dashboard
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Phase 1: Codebase Analysis
|
|
30
|
+
|
|
31
|
+
### Project Structure
|
|
32
|
+
```
|
|
33
|
+
Existing structure detected:
|
|
34
|
+
├── app/
|
|
35
|
+
│ ├── (auth)/
|
|
36
|
+
│ ├── (main)/
|
|
37
|
+
│ ├── api/
|
|
38
|
+
│ └── layout.tsx
|
|
39
|
+
├── components/
|
|
40
|
+
├── lib/
|
|
41
|
+
├── prisma/
|
|
42
|
+
└── [configs]
|
|
43
|
+
|
|
44
|
+
Framework: Next.js 14 (App Router)
|
|
45
|
+
Database: PostgreSQL + Prisma
|
|
46
|
+
Auth: NextAuth.js
|
|
47
|
+
Styling: Tailwind CSS
|
|
48
|
+
State: React Query
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Existing Patterns
|
|
52
|
+
```yaml
|
|
53
|
+
patterns_detected:
|
|
54
|
+
pages: "app/(group)/[route]/page.tsx"
|
|
55
|
+
api_routes: "app/api/[resource]/route.ts"
|
|
56
|
+
components: "components/[category]/[Name].tsx"
|
|
57
|
+
data_fetching: "React Query with server components"
|
|
58
|
+
auth: "NextAuth with session provider"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Phase 2: Requirements
|
|
64
|
+
|
|
65
|
+
### User Stories
|
|
66
|
+
```markdown
|
|
67
|
+
1. As a user, I want to see my dashboard when I log in
|
|
68
|
+
- Acceptance: Dashboard shows after successful login
|
|
69
|
+
- Acceptance: Redirects to login if not authenticated
|
|
70
|
+
|
|
71
|
+
2. As a user, I want to see my activity statistics
|
|
72
|
+
- Acceptance: Shows total posts, comments, likes
|
|
73
|
+
- Acceptance: Shows activity trend chart
|
|
74
|
+
|
|
75
|
+
3. As a user, I want to see my recent activity
|
|
76
|
+
- Acceptance: Lists last 10 activities
|
|
77
|
+
- Acceptance: Shows activity type and timestamp
|
|
78
|
+
|
|
79
|
+
4. As a user, I want quick actions available
|
|
80
|
+
- Acceptance: "New Post" button
|
|
81
|
+
- Acceptance: "Edit Profile" button
|
|
82
|
+
- Acceptance: "View Analytics" button
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Technical Requirements
|
|
86
|
+
```yaml
|
|
87
|
+
requirements:
|
|
88
|
+
authentication: "Required - redirect if not logged in"
|
|
89
|
+
database:
|
|
90
|
+
- "Query user statistics"
|
|
91
|
+
- "Query recent activities"
|
|
92
|
+
api:
|
|
93
|
+
- "GET /api/dashboard/stats"
|
|
94
|
+
- "GET /api/dashboard/activity"
|
|
95
|
+
performance:
|
|
96
|
+
- "Initial load < 2s"
|
|
97
|
+
- "Use server components where possible"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Phase 3: UI Design
|
|
103
|
+
|
|
104
|
+
### Component Breakdown
|
|
105
|
+
```
|
|
106
|
+
DashboardPage
|
|
107
|
+
├── DashboardHeader
|
|
108
|
+
│ └── WelcomeMessage
|
|
109
|
+
├── StatsGrid
|
|
110
|
+
│ ├── StatCard (Posts)
|
|
111
|
+
│ ├── StatCard (Comments)
|
|
112
|
+
│ ├── StatCard (Likes)
|
|
113
|
+
│ └── StatCard (Views)
|
|
114
|
+
├── ActivityChart
|
|
115
|
+
│ └── LineChart (weekly activity)
|
|
116
|
+
├── RecentActivity
|
|
117
|
+
│ └── ActivityItem[] (list)
|
|
118
|
+
└── QuickActions
|
|
119
|
+
├── ActionButton (New Post)
|
|
120
|
+
├── ActionButton (Edit Profile)
|
|
121
|
+
└── ActionButton (Analytics)
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Design Specifications
|
|
125
|
+
```yaml
|
|
126
|
+
layout:
|
|
127
|
+
type: "responsive grid"
|
|
128
|
+
desktop: "2 columns"
|
|
129
|
+
mobile: "single column"
|
|
130
|
+
|
|
131
|
+
components:
|
|
132
|
+
StatCard:
|
|
133
|
+
size: "200px × 120px"
|
|
134
|
+
content: "icon, value, label, trend"
|
|
135
|
+
style: "card with shadow, hover effect"
|
|
136
|
+
|
|
137
|
+
ActivityChart:
|
|
138
|
+
type: "line chart"
|
|
139
|
+
data: "7 days activity"
|
|
140
|
+
library: "recharts"
|
|
141
|
+
|
|
142
|
+
RecentActivity:
|
|
143
|
+
items: 10
|
|
144
|
+
content: "icon, description, timestamp"
|
|
145
|
+
style: "list with hover"
|
|
146
|
+
|
|
147
|
+
QuickActions:
|
|
148
|
+
layout: "horizontal buttons"
|
|
149
|
+
style: "primary, secondary variants"
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Phase 4: Implementation Plan
|
|
155
|
+
|
|
156
|
+
### File Structure
|
|
157
|
+
```
|
|
158
|
+
Create:
|
|
159
|
+
├── app/(main)/dashboard/
|
|
160
|
+
│ ├── page.tsx # Dashboard page (server component)
|
|
161
|
+
│ ├── loading.tsx # Loading skeleton
|
|
162
|
+
│ └── error.tsx # Error boundary
|
|
163
|
+
├── app/api/dashboard/
|
|
164
|
+
│ ├── stats/route.ts # Stats API
|
|
165
|
+
│ └── activity/route.ts # Activity API
|
|
166
|
+
├── components/dashboard/
|
|
167
|
+
│ ├── StatsGrid.tsx
|
|
168
|
+
│ ├── StatCard.tsx
|
|
169
|
+
│ ├── ActivityChart.tsx
|
|
170
|
+
│ ├── RecentActivity.tsx
|
|
171
|
+
│ ├── QuickActions.tsx
|
|
172
|
+
│ └── index.ts
|
|
173
|
+
├── lib/
|
|
174
|
+
│ └── dashboard.ts # Dashboard queries
|
|
175
|
+
└── types/
|
|
176
|
+
└── dashboard.types.ts # Type definitions
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Implementation Order
|
|
180
|
+
```
|
|
181
|
+
1. Types and interfaces
|
|
182
|
+
2. Database queries (lib/dashboard.ts)
|
|
183
|
+
3. API routes
|
|
184
|
+
4. UI components (bottom-up)
|
|
185
|
+
5. Page integration
|
|
186
|
+
6. Loading and error states
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Phase 5: Implementation
|
|
192
|
+
|
|
193
|
+
### Types (types/dashboard.types.ts)
|
|
194
|
+
```typescript
|
|
195
|
+
export interface DashboardStats {
|
|
196
|
+
posts: number;
|
|
197
|
+
comments: number;
|
|
198
|
+
likes: number;
|
|
199
|
+
views: number;
|
|
200
|
+
trends: {
|
|
201
|
+
posts: number; // percentage change
|
|
202
|
+
comments: number;
|
|
203
|
+
likes: number;
|
|
204
|
+
views: number;
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
export interface ActivityItem {
|
|
209
|
+
id: string;
|
|
210
|
+
type: 'post' | 'comment' | 'like' | 'follow';
|
|
211
|
+
description: string;
|
|
212
|
+
timestamp: Date;
|
|
213
|
+
metadata?: Record<string, unknown>;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
export interface DashboardData {
|
|
217
|
+
stats: DashboardStats;
|
|
218
|
+
recentActivity: ActivityItem[];
|
|
219
|
+
chartData: ChartDataPoint[];
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
export interface ChartDataPoint {
|
|
223
|
+
date: string;
|
|
224
|
+
value: number;
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Database Queries (lib/dashboard.ts)
|
|
229
|
+
```typescript
|
|
230
|
+
import { prisma } from '@/lib/db';
|
|
231
|
+
|
|
232
|
+
export async function getDashboardStats(userId: string): Promise<DashboardStats> {
|
|
233
|
+
const [posts, comments, likes, views] = await Promise.all([
|
|
234
|
+
prisma.post.count({ where: { authorId: userId } }),
|
|
235
|
+
prisma.comment.count({ where: { authorId: userId } }),
|
|
236
|
+
prisma.like.count({ where: { post: { authorId: userId } } }),
|
|
237
|
+
prisma.postView.count({ where: { post: { authorId: userId } } }),
|
|
238
|
+
]);
|
|
239
|
+
|
|
240
|
+
// Calculate trends (compare to last week)
|
|
241
|
+
const lastWeek = new Date();
|
|
242
|
+
lastWeek.setDate(lastWeek.getDate() - 7);
|
|
243
|
+
|
|
244
|
+
const [prevPosts, prevComments] = await Promise.all([
|
|
245
|
+
prisma.post.count({
|
|
246
|
+
where: {
|
|
247
|
+
authorId: userId,
|
|
248
|
+
createdAt: { lt: lastWeek },
|
|
249
|
+
},
|
|
250
|
+
}),
|
|
251
|
+
prisma.comment.count({
|
|
252
|
+
where: {
|
|
253
|
+
authorId: userId,
|
|
254
|
+
createdAt: { lt: lastWeek },
|
|
255
|
+
},
|
|
256
|
+
}),
|
|
257
|
+
]);
|
|
258
|
+
|
|
259
|
+
return {
|
|
260
|
+
posts,
|
|
261
|
+
comments,
|
|
262
|
+
likes,
|
|
263
|
+
views,
|
|
264
|
+
trends: {
|
|
265
|
+
posts: calculateTrend(prevPosts, posts),
|
|
266
|
+
comments: calculateTrend(prevComments, comments),
|
|
267
|
+
likes: 0,
|
|
268
|
+
views: 0,
|
|
269
|
+
},
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
export async function getRecentActivity(
|
|
274
|
+
userId: string,
|
|
275
|
+
limit = 10
|
|
276
|
+
): Promise<ActivityItem[]> {
|
|
277
|
+
const activities = await prisma.activity.findMany({
|
|
278
|
+
where: { userId },
|
|
279
|
+
orderBy: { createdAt: 'desc' },
|
|
280
|
+
take: limit,
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
return activities.map((a) => ({
|
|
284
|
+
id: a.id,
|
|
285
|
+
type: a.type as ActivityItem['type'],
|
|
286
|
+
description: a.description,
|
|
287
|
+
timestamp: a.createdAt,
|
|
288
|
+
metadata: a.metadata as Record<string, unknown>,
|
|
289
|
+
}));
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
function calculateTrend(prev: number, current: number): number {
|
|
293
|
+
if (prev === 0) return current > 0 ? 100 : 0;
|
|
294
|
+
return Math.round(((current - prev) / prev) * 100);
|
|
295
|
+
}
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### API Routes (app/api/dashboard/stats/route.ts)
|
|
299
|
+
```typescript
|
|
300
|
+
import { NextResponse } from 'next/server';
|
|
301
|
+
import { getServerSession } from 'next-auth';
|
|
302
|
+
import { authOptions } from '@/lib/auth';
|
|
303
|
+
import { getDashboardStats } from '@/lib/dashboard';
|
|
304
|
+
|
|
305
|
+
export async function GET() {
|
|
306
|
+
const session = await getServerSession(authOptions);
|
|
307
|
+
|
|
308
|
+
if (!session?.user?.id) {
|
|
309
|
+
return NextResponse.json({ error: 'Unauthorized' }, { status: 401 });
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
try {
|
|
313
|
+
const stats = await getDashboardStats(session.user.id);
|
|
314
|
+
return NextResponse.json({ data: stats });
|
|
315
|
+
} catch (error) {
|
|
316
|
+
console.error('Dashboard stats error:', error);
|
|
317
|
+
return NextResponse.json(
|
|
318
|
+
{ error: 'Failed to fetch stats' },
|
|
319
|
+
{ status: 500 }
|
|
320
|
+
);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### StatCard Component (components/dashboard/StatCard.tsx)
|
|
326
|
+
```typescript
|
|
327
|
+
import { memo } from 'react';
|
|
328
|
+
import { TrendingUp, TrendingDown } from 'lucide-react';
|
|
329
|
+
import { cn } from '@/lib/utils';
|
|
330
|
+
|
|
331
|
+
interface StatCardProps {
|
|
332
|
+
title: string;
|
|
333
|
+
value: number;
|
|
334
|
+
trend?: number;
|
|
335
|
+
icon: React.ReactNode;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
export const StatCard = memo(function StatCard({
|
|
339
|
+
title,
|
|
340
|
+
value,
|
|
341
|
+
trend,
|
|
342
|
+
icon,
|
|
343
|
+
}: StatCardProps) {
|
|
344
|
+
const isPositive = trend && trend > 0;
|
|
345
|
+
const isNegative = trend && trend < 0;
|
|
346
|
+
|
|
347
|
+
return (
|
|
348
|
+
<div className="rounded-lg border bg-card p-6 shadow-sm">
|
|
349
|
+
<div className="flex items-center justify-between">
|
|
350
|
+
<div className="text-muted-foreground">{icon}</div>
|
|
351
|
+
{trend !== undefined && (
|
|
352
|
+
<div
|
|
353
|
+
className={cn(
|
|
354
|
+
'flex items-center text-sm',
|
|
355
|
+
isPositive && 'text-green-600',
|
|
356
|
+
isNegative && 'text-red-600'
|
|
357
|
+
)}
|
|
358
|
+
>
|
|
359
|
+
{isPositive ? <TrendingUp className="h-4 w-4" /> : null}
|
|
360
|
+
{isNegative ? <TrendingDown className="h-4 w-4" /> : null}
|
|
361
|
+
<span className="ml-1">{Math.abs(trend)}%</span>
|
|
362
|
+
</div>
|
|
363
|
+
)}
|
|
364
|
+
</div>
|
|
365
|
+
<div className="mt-4">
|
|
366
|
+
<p className="text-3xl font-bold">{value.toLocaleString()}</p>
|
|
367
|
+
<p className="text-sm text-muted-foreground">{title}</p>
|
|
368
|
+
</div>
|
|
369
|
+
</div>
|
|
370
|
+
);
|
|
371
|
+
});
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
### Dashboard Page (app/(main)/dashboard/page.tsx)
|
|
375
|
+
```typescript
|
|
376
|
+
import { Suspense } from 'react';
|
|
377
|
+
import { redirect } from 'next/navigation';
|
|
378
|
+
import { getServerSession } from 'next-auth';
|
|
379
|
+
import { authOptions } from '@/lib/auth';
|
|
380
|
+
import { getDashboardStats, getRecentActivity } from '@/lib/dashboard';
|
|
381
|
+
import { StatsGrid } from '@/components/dashboard/StatsGrid';
|
|
382
|
+
import { RecentActivity } from '@/components/dashboard/RecentActivity';
|
|
383
|
+
import { QuickActions } from '@/components/dashboard/QuickActions';
|
|
384
|
+
import { ActivityChart } from '@/components/dashboard/ActivityChart';
|
|
385
|
+
|
|
386
|
+
export const metadata = {
|
|
387
|
+
title: 'Dashboard',
|
|
388
|
+
description: 'Your personal dashboard',
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
export default async function DashboardPage() {
|
|
392
|
+
const session = await getServerSession(authOptions);
|
|
393
|
+
|
|
394
|
+
if (!session?.user) {
|
|
395
|
+
redirect('/login');
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
const [stats, activity] = await Promise.all([
|
|
399
|
+
getDashboardStats(session.user.id),
|
|
400
|
+
getRecentActivity(session.user.id),
|
|
401
|
+
]);
|
|
402
|
+
|
|
403
|
+
return (
|
|
404
|
+
<div className="container py-8">
|
|
405
|
+
<h1 className="text-3xl font-bold mb-8">
|
|
406
|
+
Welcome back, {session.user.name}
|
|
407
|
+
</h1>
|
|
408
|
+
|
|
409
|
+
<div className="grid gap-8">
|
|
410
|
+
<StatsGrid stats={stats} />
|
|
411
|
+
|
|
412
|
+
<div className="grid gap-8 lg:grid-cols-2">
|
|
413
|
+
<Suspense fallback={<div>Loading chart...</div>}>
|
|
414
|
+
<ActivityChart userId={session.user.id} />
|
|
415
|
+
</Suspense>
|
|
416
|
+
|
|
417
|
+
<RecentActivity activities={activity} />
|
|
418
|
+
</div>
|
|
419
|
+
|
|
420
|
+
<QuickActions />
|
|
421
|
+
</div>
|
|
422
|
+
</div>
|
|
423
|
+
);
|
|
424
|
+
}
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## Phase 6: Testing
|
|
430
|
+
|
|
431
|
+
### Test Files Created
|
|
432
|
+
```
|
|
433
|
+
tests/
|
|
434
|
+
├── components/dashboard/
|
|
435
|
+
│ ├── StatCard.test.tsx
|
|
436
|
+
│ ├── StatsGrid.test.tsx
|
|
437
|
+
│ └── RecentActivity.test.tsx
|
|
438
|
+
├── lib/
|
|
439
|
+
│ └── dashboard.test.ts
|
|
440
|
+
└── api/dashboard/
|
|
441
|
+
└── stats.test.ts
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
### Sample Test (StatCard.test.tsx)
|
|
445
|
+
```typescript
|
|
446
|
+
import { render, screen } from '@testing-library/react';
|
|
447
|
+
import { FileText } from 'lucide-react';
|
|
448
|
+
import { StatCard } from '@/components/dashboard/StatCard';
|
|
449
|
+
|
|
450
|
+
describe('StatCard', () => {
|
|
451
|
+
it('renders value and title', () => {
|
|
452
|
+
render(
|
|
453
|
+
<StatCard
|
|
454
|
+
title="Total Posts"
|
|
455
|
+
value={42}
|
|
456
|
+
icon={<FileText />}
|
|
457
|
+
/>
|
|
458
|
+
);
|
|
459
|
+
|
|
460
|
+
expect(screen.getByText('42')).toBeInTheDocument();
|
|
461
|
+
expect(screen.getByText('Total Posts')).toBeInTheDocument();
|
|
462
|
+
});
|
|
463
|
+
|
|
464
|
+
it('shows positive trend with green color', () => {
|
|
465
|
+
render(
|
|
466
|
+
<StatCard
|
|
467
|
+
title="Posts"
|
|
468
|
+
value={42}
|
|
469
|
+
trend={15}
|
|
470
|
+
icon={<FileText />}
|
|
471
|
+
/>
|
|
472
|
+
);
|
|
473
|
+
|
|
474
|
+
const trend = screen.getByText('15%');
|
|
475
|
+
expect(trend).toHaveClass('text-green-600');
|
|
476
|
+
});
|
|
477
|
+
});
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
### Coverage Report
|
|
481
|
+
```
|
|
482
|
+
File | % Stmts | % Branch | % Funcs | % Lines |
|
|
483
|
+
------------------------|---------|----------|---------|---------|
|
|
484
|
+
components/dashboard/ | 92.5 | 88.2 | 100 | 92.0 |
|
|
485
|
+
lib/dashboard.ts | 95.0 | 90.0 | 100 | 94.5 |
|
|
486
|
+
api/dashboard/ | 88.0 | 85.0 | 100 | 87.5 |
|
|
487
|
+
------------------------|---------|----------|---------|---------|
|
|
488
|
+
All files | 91.8 | 87.7 | 100 | 91.3 |
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
493
|
+
## Phase 7: Documentation
|
|
494
|
+
|
|
495
|
+
### Component Documentation
|
|
496
|
+
- README added to components/dashboard/
|
|
497
|
+
- Props documented with TypeScript interfaces
|
|
498
|
+
- Usage examples provided
|
|
499
|
+
|
|
500
|
+
### API Documentation
|
|
501
|
+
```yaml
|
|
502
|
+
# Added to docs/api/dashboard.yaml
|
|
503
|
+
paths:
|
|
504
|
+
/api/dashboard/stats:
|
|
505
|
+
get:
|
|
506
|
+
summary: Get user dashboard statistics
|
|
507
|
+
security:
|
|
508
|
+
- bearerAuth: []
|
|
509
|
+
responses:
|
|
510
|
+
200:
|
|
511
|
+
description: Dashboard statistics
|
|
512
|
+
401:
|
|
513
|
+
description: Unauthorized
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
---
|
|
517
|
+
|
|
518
|
+
## Phase 8: Deployment
|
|
519
|
+
|
|
520
|
+
### Pre-Deployment Checklist
|
|
521
|
+
- [x] All tests passing
|
|
522
|
+
- [x] TypeScript build succeeds
|
|
523
|
+
- [x] ESLint passes
|
|
524
|
+
- [x] Database migrations ready
|
|
525
|
+
- [x] Environment variables documented
|
|
526
|
+
|
|
527
|
+
### Deployment
|
|
528
|
+
```bash
|
|
529
|
+
# Merge to develop
|
|
530
|
+
git checkout develop
|
|
531
|
+
git merge feature/user-dashboard
|
|
532
|
+
|
|
533
|
+
# Deploy to staging
|
|
534
|
+
vercel --prod
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
---
|
|
538
|
+
|
|
539
|
+
## Summary
|
|
540
|
+
|
|
541
|
+
```
|
|
542
|
+
Feature: User Dashboard
|
|
543
|
+
Duration: 4 hours
|
|
544
|
+
Files Created: 15
|
|
545
|
+
Tests Added: 12
|
|
546
|
+
Coverage: 91.8%
|
|
547
|
+
|
|
548
|
+
Decisions Made:
|
|
549
|
+
- Used server components for initial data fetch
|
|
550
|
+
- Used React Query for client-side refetching
|
|
551
|
+
- Used Recharts for activity visualization
|
|
552
|
+
- Followed existing component patterns
|
|
553
|
+
```
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Mobile React Native Example
|
|
2
|
+
|
|
3
|
+
Complete walkthrough of ProAgents workflow for a React Native mobile application.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
This example demonstrates how to use ProAgents to build features in a React Native application for iOS and Android. It covers mobile-specific patterns, navigation, and platform considerations.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Project Type
|
|
14
|
+
|
|
15
|
+
- **Framework:** React Native 0.72+ / Expo
|
|
16
|
+
- **Language:** TypeScript
|
|
17
|
+
- **Navigation:** React Navigation
|
|
18
|
+
- **State Management:** Zustand
|
|
19
|
+
- **Testing:** Jest + React Native Testing Library
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Files in This Example
|
|
24
|
+
|
|
25
|
+
| File | Description |
|
|
26
|
+
|------|-------------|
|
|
27
|
+
| [workflow-example.md](./workflow-example.md) | Step-by-step workflow phases |
|
|
28
|
+
| [proagents.config.yaml](./proagents.config.yaml) | Project-specific configuration |
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## What You'll Learn
|
|
33
|
+
|
|
34
|
+
### 1. Mobile Project Analysis
|
|
35
|
+
- Understanding React Native project structure
|
|
36
|
+
- Identifying platform-specific code (iOS/Android)
|
|
37
|
+
- Navigation flow mapping
|
|
38
|
+
- Native module detection
|
|
39
|
+
|
|
40
|
+
### 2. Mobile UI Design
|
|
41
|
+
- Converting mobile designs to components
|
|
42
|
+
- Platform-specific styling (iOS vs Android)
|
|
43
|
+
- Responsive layouts for different devices
|
|
44
|
+
- Gesture handling patterns
|
|
45
|
+
|
|
46
|
+
### 3. Implementation
|
|
47
|
+
- Screen components and navigation
|
|
48
|
+
- Platform-specific code when needed
|
|
49
|
+
- Async storage and data persistence
|
|
50
|
+
- API integration with offline support
|
|
51
|
+
|
|
52
|
+
### 4. Testing
|
|
53
|
+
- Component tests with Testing Library
|
|
54
|
+
- Navigation flow tests
|
|
55
|
+
- Snapshot testing for UI consistency
|
|
56
|
+
- Device-specific testing considerations
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Quick Start
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Copy configuration to your React Native project
|
|
64
|
+
cp proagents.config.yaml /path/to/your/react-native-project/
|
|
65
|
+
|
|
66
|
+
# Start a new feature
|
|
67
|
+
proagents feature start "Add push notification settings screen"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Example Feature: Notification Settings
|
|
73
|
+
|
|
74
|
+
The workflow-example.md demonstrates building:
|
|
75
|
+
- Settings screen with toggle switches
|
|
76
|
+
- Platform-specific notification permissions
|
|
77
|
+
- Local storage for preferences
|
|
78
|
+
- Deep linking to system settings
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Key Patterns Demonstrated
|
|
83
|
+
|
|
84
|
+
### Project Structure
|
|
85
|
+
```
|
|
86
|
+
src/
|
|
87
|
+
├── screens/ # Screen components
|
|
88
|
+
│ ├── HomeScreen.tsx
|
|
89
|
+
│ └── SettingsScreen.tsx
|
|
90
|
+
├── components/ # Reusable components
|
|
91
|
+
│ ├── ui/
|
|
92
|
+
│ └── forms/
|
|
93
|
+
├── navigation/ # Navigation configuration
|
|
94
|
+
│ └── RootNavigator.tsx
|
|
95
|
+
├── hooks/ # Custom hooks
|
|
96
|
+
├── services/ # API and native services
|
|
97
|
+
├── stores/ # State management
|
|
98
|
+
└── utils/ # Utilities
|
|
99
|
+
└── platform.ts # Platform helpers
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Platform-Specific Patterns
|
|
103
|
+
```typescript
|
|
104
|
+
// Platform-specific code
|
|
105
|
+
import { Platform } from 'react-native';
|
|
106
|
+
|
|
107
|
+
const styles = StyleSheet.create({
|
|
108
|
+
container: {
|
|
109
|
+
paddingTop: Platform.OS === 'ios' ? 44 : 0,
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
// Platform-specific files
|
|
114
|
+
// Button.ios.tsx
|
|
115
|
+
// Button.android.tsx
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Configuration Highlights
|
|
121
|
+
|
|
122
|
+
```yaml
|
|
123
|
+
# From proagents.config.yaml
|
|
124
|
+
project:
|
|
125
|
+
type: "mobile"
|
|
126
|
+
framework: "react-native"
|
|
127
|
+
|
|
128
|
+
platforms:
|
|
129
|
+
ios: true
|
|
130
|
+
android: true
|
|
131
|
+
|
|
132
|
+
testing:
|
|
133
|
+
framework: "jest"
|
|
134
|
+
coverage_threshold: 75
|
|
135
|
+
snapshot_testing: true
|
|
136
|
+
|
|
137
|
+
checkpoints:
|
|
138
|
+
after_design: true # Review UI for both platforms
|
|
139
|
+
before_deployment: true # Final review before app store
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Mobile-Specific Considerations
|
|
145
|
+
|
|
146
|
+
### Performance
|
|
147
|
+
- List virtualization (FlatList)
|
|
148
|
+
- Image optimization
|
|
149
|
+
- Bundle size monitoring
|
|
150
|
+
- Memory management
|
|
151
|
+
|
|
152
|
+
### Platform Differences
|
|
153
|
+
- Navigation patterns (tabs vs drawer)
|
|
154
|
+
- System UI (status bar, safe areas)
|
|
155
|
+
- Permissions handling
|
|
156
|
+
- Push notifications
|
|
157
|
+
|
|
158
|
+
### Testing on Devices
|
|
159
|
+
- iOS Simulator testing
|
|
160
|
+
- Android Emulator testing
|
|
161
|
+
- Physical device testing
|
|
162
|
+
- Different screen sizes
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Related Resources
|
|
167
|
+
|
|
168
|
+
- [React Native Scaffolding Template](../../scaffolding/react-native/)
|
|
169
|
+
- [UI Design Integration](../../ui-integration/)
|
|
170
|
+
- [Testing Standards](../../testing-standards/)
|
|
171
|
+
- [Performance Monitoring](../../performance/)
|