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.
Files changed (444) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +170 -0
  3. package/bin/proagents.js +90 -0
  4. package/lib/commands/feature.js +125 -0
  5. package/lib/commands/fix.js +60 -0
  6. package/lib/commands/help.js +76 -0
  7. package/lib/commands/init.js +64 -0
  8. package/lib/commands/status.js +91 -0
  9. package/lib/index.js +28 -0
  10. package/package.json +52 -0
  11. package/proagents/.learning/global/common-patterns.json +77 -0
  12. package/proagents/.learning/global/user-preferences.json +76 -0
  13. package/proagents/.learning/projects/example-project/corrections.json +99 -0
  14. package/proagents/.learning/projects/example-project/feedback.json +109 -0
  15. package/proagents/.learning/projects/example-project/metrics.json +101 -0
  16. package/proagents/.learning/projects/example-project/patterns.json +102 -0
  17. package/proagents/.learning/schemas/README.md +48 -0
  18. package/proagents/.learning/schemas/corrections-schema.json +100 -0
  19. package/proagents/.learning/schemas/feedback-schema.json +144 -0
  20. package/proagents/.learning/schemas/metrics-schema.json +96 -0
  21. package/proagents/.learning/schemas/patterns-schema.json +82 -0
  22. package/proagents/.learning/schemas/project-patterns-schema.json +125 -0
  23. package/proagents/.learning/schemas/user-preferences-schema.json +136 -0
  24. package/proagents/GETTING-STARTED-STORY.md +708 -0
  25. package/proagents/README.md +99 -0
  26. package/proagents/WORKFLOW.md +1234 -0
  27. package/proagents/active-features/.gitkeep +0 -0
  28. package/proagents/active-features/README.md +176 -0
  29. package/proagents/active-features/_index.json +74 -0
  30. package/proagents/active-features/feature-user-auth/dependencies.json +81 -0
  31. package/proagents/active-features/feature-user-auth/files-modified.json +126 -0
  32. package/proagents/active-features/feature-user-auth/status.json +122 -0
  33. package/proagents/active-features/schemas/dependencies-schema.json +119 -0
  34. package/proagents/active-features/schemas/feature-schema.json +132 -0
  35. package/proagents/active-features/schemas/files-schema.json +100 -0
  36. package/proagents/active-features/schemas/index-schema.json +95 -0
  37. package/proagents/adr/README.md +302 -0
  38. package/proagents/adr/examples/api-versioning.md +297 -0
  39. package/proagents/adr/examples/database-choice.md +264 -0
  40. package/proagents/adr/template.md +273 -0
  41. package/proagents/ai-models/README.md +141 -0
  42. package/proagents/ai-models/cost-management.md +362 -0
  43. package/proagents/ai-models/fallbacks.md +342 -0
  44. package/proagents/ai-models/model-config.md +318 -0
  45. package/proagents/ai-models/task-routing.md +503 -0
  46. package/proagents/ai-training/README.md +155 -0
  47. package/proagents/ai-training/continuous-learning.md +413 -0
  48. package/proagents/ai-training/domain-knowledge.md +378 -0
  49. package/proagents/ai-training/pattern-learning.md +455 -0
  50. package/proagents/ai-training/training-data.md +337 -0
  51. package/proagents/ai-training/user-preferences.md +346 -0
  52. package/proagents/api-versioning/README.md +257 -0
  53. package/proagents/api-versioning/changelog-template.md +225 -0
  54. package/proagents/api-versioning/deprecation-workflow.md +470 -0
  55. package/proagents/api-versioning/versioning-strategy.md +291 -0
  56. package/proagents/approval-workflows/README.md +146 -0
  57. package/proagents/approval-workflows/approval-config.md +332 -0
  58. package/proagents/approval-workflows/approval-stages.md +503 -0
  59. package/proagents/approval-workflows/emergency-bypass.md +351 -0
  60. package/proagents/approval-workflows/examples.md +859 -0
  61. package/proagents/approval-workflows/notifications.md +320 -0
  62. package/proagents/automation/README.md +38 -0
  63. package/proagents/automation/ai-behavior-rules.md +339 -0
  64. package/proagents/automation/ai-prompt-injection.md +331 -0
  65. package/proagents/automation/auto-decisions.md +535 -0
  66. package/proagents/automation/decision-defaults.yaml +317 -0
  67. package/proagents/cache/README.md +110 -0
  68. package/proagents/cache/analysis-metadata.json +76 -0
  69. package/proagents/cache/conventions.json +125 -0
  70. package/proagents/cache/dependencies.json +85 -0
  71. package/proagents/cache/features.json +115 -0
  72. package/proagents/cache/patterns.json +105 -0
  73. package/proagents/cache/schemas/conventions-schema.json +138 -0
  74. package/proagents/cache/schemas/dependencies-schema.json +95 -0
  75. package/proagents/cache/schemas/features-schema.json +104 -0
  76. package/proagents/cache/schemas/metadata-schema.json +83 -0
  77. package/proagents/cache/schemas/patterns-schema.json +136 -0
  78. package/proagents/cache/schemas/structure-schema.json +72 -0
  79. package/proagents/cache/structure.json +109 -0
  80. package/proagents/changelog/2024/01/2024-01-10-api-url-config.md +41 -0
  81. package/proagents/changelog/2024/01/2024-01-12-login-bug-fix.md +69 -0
  82. package/proagents/changelog/2024/01/2024-01-15-user-auth-feature.md +99 -0
  83. package/proagents/changelog/CHANGELOG.md +82 -0
  84. package/proagents/changelog/README.md +327 -0
  85. package/proagents/changelog/entry-template.md +283 -0
  86. package/proagents/checklists/README.md +261 -0
  87. package/proagents/checklists/code-quality.md +137 -0
  88. package/proagents/checklists/code-review.md +148 -0
  89. package/proagents/checklists/pr-checklist.md +78 -0
  90. package/proagents/checklists/pre-deployment.md +132 -0
  91. package/proagents/checklists/pre-implementation.md +80 -0
  92. package/proagents/checklists/testing.md +120 -0
  93. package/proagents/cicd/README.md +338 -0
  94. package/proagents/cicd/azure-devops.md +267 -0
  95. package/proagents/cicd/github-actions.md +375 -0
  96. package/proagents/cicd/gitlab-ci.md +278 -0
  97. package/proagents/cicd/jenkins.md +317 -0
  98. package/proagents/cli/README.md +392 -0
  99. package/proagents/cli/commands-reference.md +893 -0
  100. package/proagents/cli/ide-integration.md +584 -0
  101. package/proagents/cli/shortcuts.md +394 -0
  102. package/proagents/cli/slash-commands.md +507 -0
  103. package/proagents/collaboration/README.md +143 -0
  104. package/proagents/collaboration/roles.md +248 -0
  105. package/proagents/collaboration/sessions.md +390 -0
  106. package/proagents/collaboration/sync.md +358 -0
  107. package/proagents/compliance/README.md +206 -0
  108. package/proagents/compliance/access-control.md +310 -0
  109. package/proagents/compliance/audit-logging.md +444 -0
  110. package/proagents/compliance/compliance-frameworks.md +429 -0
  111. package/proagents/compliance/reports.md +491 -0
  112. package/proagents/compliance/retention-policies.md +454 -0
  113. package/proagents/config/README.md +181 -0
  114. package/proagents/config/integrations/README.md +68 -0
  115. package/proagents/config/integrations/github.yaml +211 -0
  116. package/proagents/config/integrations/jira.yaml +144 -0
  117. package/proagents/config/integrations/linear.yaml +157 -0
  118. package/proagents/config/integrations/notion.yaml +203 -0
  119. package/proagents/config/integrations/slack.yaml +230 -0
  120. package/proagents/config/rules/README.md +73 -0
  121. package/proagents/config/rules/custom-rules.template.yaml +188 -0
  122. package/proagents/config/rules/validation-rules.template.yaml +177 -0
  123. package/proagents/config/standards/README.md +58 -0
  124. package/proagents/config/standards/architecture-rules.template.md +124 -0
  125. package/proagents/config/standards/coding-standards.template.md +107 -0
  126. package/proagents/config/standards/naming-conventions.template.md +114 -0
  127. package/proagents/config/standards/testing-standards.template.md +213 -0
  128. package/proagents/config/templates/README.md +74 -0
  129. package/proagents/config/templates/api-route.template.ts +142 -0
  130. package/proagents/config/templates/component.template.tsx +55 -0
  131. package/proagents/config/templates/hook.template.ts +93 -0
  132. package/proagents/config/templates/test.template.ts +171 -0
  133. package/proagents/config-versioning/README.md +120 -0
  134. package/proagents/config-versioning/changelog.md +300 -0
  135. package/proagents/config-versioning/rollback.md +283 -0
  136. package/proagents/config-versioning/versioning.md +330 -0
  137. package/proagents/contract-testing/README.md +223 -0
  138. package/proagents/contract-testing/contract-testing.md +614 -0
  139. package/proagents/contract-testing/pact-integration.md +507 -0
  140. package/proagents/contract-testing/schema-validation.md +565 -0
  141. package/proagents/cost/README.md +48 -0
  142. package/proagents/cost/cost-template.md +283 -0
  143. package/proagents/cost/estimation-framework.md +287 -0
  144. package/proagents/database/README.md +72 -0
  145. package/proagents/database/examples/001-create-users.sql +129 -0
  146. package/proagents/database/examples/002-add-preferences.sql +94 -0
  147. package/proagents/database/examples/003-add-index.sql +105 -0
  148. package/proagents/database/examples/004-rename-column.sql +122 -0
  149. package/proagents/database/examples/005-add-foreign-key.sql +142 -0
  150. package/proagents/database/examples/006-data-migration.sql +196 -0
  151. package/proagents/database/examples/007-drop-column.sql +163 -0
  152. package/proagents/database/examples/README.md +89 -0
  153. package/proagents/database/migration-workflow.md +478 -0
  154. package/proagents/database/rollback-scripts.md +487 -0
  155. package/proagents/database/safety-checks.md +447 -0
  156. package/proagents/dependency-management/README.md +140 -0
  157. package/proagents/dependency-management/automation.md +363 -0
  158. package/proagents/dependency-management/compatibility.md +319 -0
  159. package/proagents/dependency-management/security-scanning.md +413 -0
  160. package/proagents/dependency-management/update-policies.md +374 -0
  161. package/proagents/disaster-recovery/README.md +247 -0
  162. package/proagents/disaster-recovery/automation.md +366 -0
  163. package/proagents/disaster-recovery/backup-recovery.md +571 -0
  164. package/proagents/disaster-recovery/incident-response.md +565 -0
  165. package/proagents/disaster-recovery/rollback-procedures.md +499 -0
  166. package/proagents/disaster-recovery/runbooks.md +603 -0
  167. package/proagents/disaster-recovery/scenarios.md +892 -0
  168. package/proagents/disaster-recovery/testing.md +438 -0
  169. package/proagents/environments/README.md +244 -0
  170. package/proagents/environments/configuration.md +437 -0
  171. package/proagents/environments/promotion.md +434 -0
  172. package/proagents/environments/setup.md +420 -0
  173. package/proagents/examples/README.md +55 -0
  174. package/proagents/examples/backend-nodejs/README.md +188 -0
  175. package/proagents/examples/backend-nodejs/complete-conversation.md +601 -0
  176. package/proagents/examples/backend-nodejs/proagents.config.yaml +415 -0
  177. package/proagents/examples/backend-nodejs/workflow-example.md +909 -0
  178. package/proagents/examples/fullstack-nextjs/README.md +155 -0
  179. package/proagents/examples/fullstack-nextjs/complete-conversation.md +604 -0
  180. package/proagents/examples/fullstack-nextjs/proagents.config.yaml +287 -0
  181. package/proagents/examples/fullstack-nextjs/workflow-example.md +553 -0
  182. package/proagents/examples/mobile-react-native/README.md +171 -0
  183. package/proagents/examples/mobile-react-native/complete-conversation.md +825 -0
  184. package/proagents/examples/mobile-react-native/proagents.config.yaml +330 -0
  185. package/proagents/examples/mobile-react-native/workflow-example.md +723 -0
  186. package/proagents/examples/web-frontend-react/README.md +125 -0
  187. package/proagents/examples/web-frontend-react/complete-conversation.md +556 -0
  188. package/proagents/examples/web-frontend-react/proagents.config.yaml +183 -0
  189. package/proagents/examples/web-frontend-react/workflow-example.md +603 -0
  190. package/proagents/existing-projects/README.md +65 -0
  191. package/proagents/existing-projects/challenges.md +861 -0
  192. package/proagents/existing-projects/coexistence-mode.md +483 -0
  193. package/proagents/existing-projects/compatibility-assessment.md +541 -0
  194. package/proagents/existing-projects/gradual-adoption.md +515 -0
  195. package/proagents/existing-projects/migration-strategies.md +788 -0
  196. package/proagents/existing-projects/pattern-reconciliation.md +489 -0
  197. package/proagents/existing-projects/team-onboarding.md +617 -0
  198. package/proagents/existing-projects/technical-debt-handling.md +644 -0
  199. package/proagents/feature-flags/README.md +263 -0
  200. package/proagents/feature-flags/ab-testing.md +413 -0
  201. package/proagents/feature-flags/configuration.md +420 -0
  202. package/proagents/feature-flags/kill-switches.md +444 -0
  203. package/proagents/feature-flags/rollout-strategies.md +392 -0
  204. package/proagents/getting-started/README.md +60 -0
  205. package/proagents/getting-started/ai-training-setup.md +380 -0
  206. package/proagents/getting-started/ide-setup.md +195 -0
  207. package/proagents/getting-started/mcp-setup.md +239 -0
  208. package/proagents/getting-started/pm-integration.md +336 -0
  209. package/proagents/getting-started/prompt-engineering.md +478 -0
  210. package/proagents/getting-started/team-onboarding.md +236 -0
  211. package/proagents/git/README.md +68 -0
  212. package/proagents/git/branch-strategy.md +164 -0
  213. package/proagents/git/commit-conventions.md +241 -0
  214. package/proagents/git/pr-workflow.md +286 -0
  215. package/proagents/git/rollback-procedures.md +416 -0
  216. package/proagents/i18n/README.md +133 -0
  217. package/proagents/i18n/extraction.md +433 -0
  218. package/proagents/i18n/tms-integration.md +332 -0
  219. package/proagents/i18n/translation-workflow.md +413 -0
  220. package/proagents/i18n/validation.md +355 -0
  221. package/proagents/ide-integration/README.md +124 -0
  222. package/proagents/ide-integration/cline-config.md +429 -0
  223. package/proagents/ide-integration/continue-config.md +380 -0
  224. package/proagents/ide-integration/cursor-rules.md +280 -0
  225. package/proagents/ide-integration/github-copilot.md +384 -0
  226. package/proagents/ide-integration/windsurf-rules.md +314 -0
  227. package/proagents/integrations/README.md +97 -0
  228. package/proagents/integrations/pm/README.md +344 -0
  229. package/proagents/learning/README.md +136 -0
  230. package/proagents/learning/adaptation.md +305 -0
  231. package/proagents/learning/data-collection.md +283 -0
  232. package/proagents/learning/implementation-guide.md +865 -0
  233. package/proagents/learning/reports.md +306 -0
  234. package/proagents/logging/README.md +276 -0
  235. package/proagents/logging/aggregation.md +475 -0
  236. package/proagents/logging/log-levels.md +376 -0
  237. package/proagents/logging/sensitive-data.md +423 -0
  238. package/proagents/logging/structured-logging.md +406 -0
  239. package/proagents/mcp/README.md +133 -0
  240. package/proagents/mcp/context-providers.md +442 -0
  241. package/proagents/mcp/server-config.md +306 -0
  242. package/proagents/mcp/tools-definition.md +513 -0
  243. package/proagents/metrics/README.md +174 -0
  244. package/proagents/metrics/code-quality-kpis.md +461 -0
  245. package/proagents/metrics/deployment-metrics.md +517 -0
  246. package/proagents/metrics/developer-productivity.md +368 -0
  247. package/proagents/metrics/learning-effectiveness.md +478 -0
  248. package/proagents/migrations/README.md +77 -0
  249. package/proagents/migrations/from-claude-projects.md +312 -0
  250. package/proagents/migrations/from-cursor-rules.md +345 -0
  251. package/proagents/migrations/from-custom-workflows.md +410 -0
  252. package/proagents/monitoring/README.md +308 -0
  253. package/proagents/monitoring/alerting.md +449 -0
  254. package/proagents/monitoring/dashboards.md +454 -0
  255. package/proagents/monitoring/health-checks.md +436 -0
  256. package/proagents/monitoring/metrics.md +434 -0
  257. package/proagents/multi-project/README.md +170 -0
  258. package/proagents/multi-project/coordinated-deploy.md +510 -0
  259. package/proagents/multi-project/cross-project-deps.md +395 -0
  260. package/proagents/multi-project/unified-changelog.md +477 -0
  261. package/proagents/multi-project/walkthroughs/monorepo-setup.md +787 -0
  262. package/proagents/multi-project/workspace-config.md +408 -0
  263. package/proagents/notifications/README.md +151 -0
  264. package/proagents/notifications/channels.md +457 -0
  265. package/proagents/notifications/preferences.md +415 -0
  266. package/proagents/notifications/routing.md +449 -0
  267. package/proagents/notifications/scheduling.md +425 -0
  268. package/proagents/notifications/templates.md +446 -0
  269. package/proagents/offline-mode/README.md +145 -0
  270. package/proagents/offline-mode/caching.md +344 -0
  271. package/proagents/offline-mode/offline-operations.md +312 -0
  272. package/proagents/offline-mode/queue-specifications.md +679 -0
  273. package/proagents/offline-mode/sync.md +475 -0
  274. package/proagents/parallel-features/README.md +85 -0
  275. package/proagents/parallel-features/conflict-detection.md +226 -0
  276. package/proagents/parallel-features/dependency-management.md +392 -0
  277. package/proagents/parallel-features/merge-coordination.md +506 -0
  278. package/proagents/parallel-features/tracking-system.md +416 -0
  279. package/proagents/patterns/README.md +305 -0
  280. package/proagents/patterns/api-errors.md +453 -0
  281. package/proagents/patterns/async-errors.md +521 -0
  282. package/proagents/patterns/error-types.md +437 -0
  283. package/proagents/patterns/ui-errors.md +595 -0
  284. package/proagents/performance/README.md +59 -0
  285. package/proagents/performance/bundle-analysis.md +375 -0
  286. package/proagents/performance/load-testing.md +563 -0
  287. package/proagents/performance/runtime-metrics.md +489 -0
  288. package/proagents/performance/web-vitals.md +425 -0
  289. package/proagents/plugins/README.md +139 -0
  290. package/proagents/plugins/creating-plugins.md +504 -0
  291. package/proagents/plugins/plugin-api.md +467 -0
  292. package/proagents/plugins/plugin-registry.md +276 -0
  293. package/proagents/pm-integration/README.md +151 -0
  294. package/proagents/pm-integration/asana.md +346 -0
  295. package/proagents/pm-integration/github-issues.md +308 -0
  296. package/proagents/pm-integration/gitlab-issues.md +482 -0
  297. package/proagents/pm-integration/jira.md +364 -0
  298. package/proagents/pm-integration/linear.md +409 -0
  299. package/proagents/pm-integration/notion.md +275 -0
  300. package/proagents/pm-integration/sync-config.md +533 -0
  301. package/proagents/pm-integration/trello.md +159 -0
  302. package/proagents/proagents.config.yaml +213 -0
  303. package/proagents/prompts/00-init-wizard.md +426 -0
  304. package/proagents/prompts/00-init.md +219 -0
  305. package/proagents/prompts/01-analysis.md +244 -0
  306. package/proagents/prompts/02-requirements.md +399 -0
  307. package/proagents/prompts/03-ui-design.md +493 -0
  308. package/proagents/prompts/04-planning.md +505 -0
  309. package/proagents/prompts/05-implementation.md +518 -0
  310. package/proagents/prompts/06-testing.md +620 -0
  311. package/proagents/prompts/06.5-code-review.md +512 -0
  312. package/proagents/prompts/07-documentation.md +673 -0
  313. package/proagents/prompts/08-deployment.md +539 -0
  314. package/proagents/prompts/09-rollback.md +554 -0
  315. package/proagents/prompts/README.md +51 -0
  316. package/proagents/prompts/accessibility/README.md +146 -0
  317. package/proagents/prompts/accessibility/aria.md +276 -0
  318. package/proagents/prompts/accessibility/audit.md +233 -0
  319. package/proagents/prompts/accessibility/keyboard.md +392 -0
  320. package/proagents/prompts/accessibility/wcag.md +189 -0
  321. package/proagents/prompts/debugging/README.md +51 -0
  322. package/proagents/prompts/debugging/error-analysis.md +385 -0
  323. package/proagents/prompts/debugging/performance-debug.md +381 -0
  324. package/proagents/prompts/debugging/systematic.md +270 -0
  325. package/proagents/prompts/performance/README.md +47 -0
  326. package/proagents/prompts/performance/analyze.md +265 -0
  327. package/proagents/prompts/performance/optimize.md +347 -0
  328. package/proagents/prompts/refactoring/README.md +51 -0
  329. package/proagents/prompts/refactoring/architecture.md +531 -0
  330. package/proagents/prompts/refactoring/code-smells.md +174 -0
  331. package/proagents/prompts/refactoring/patterns.md +516 -0
  332. package/proagents/prompts/security-audit/README.md +197 -0
  333. package/proagents/prompts/security-audit/code-review.md +260 -0
  334. package/proagents/prompts/security-audit/vulnerability-scan.md +288 -0
  335. package/proagents/reporting/README.md +158 -0
  336. package/proagents/reporting/dashboards.md +366 -0
  337. package/proagents/reporting/exports.md +524 -0
  338. package/proagents/reporting/quality-metrics.md +385 -0
  339. package/proagents/reporting/templates/README.md +56 -0
  340. package/proagents/reporting/templates/dashboard-config.json +187 -0
  341. package/proagents/reporting/templates/metrics-queries.md +427 -0
  342. package/proagents/reporting/templates/react-dashboard.tsx +544 -0
  343. package/proagents/reporting/templates/widgets.md +451 -0
  344. package/proagents/reporting/velocity-metrics.md +340 -0
  345. package/proagents/reverse-engineering/README.md +151 -0
  346. package/proagents/reverse-engineering/architecture-extraction.md +325 -0
  347. package/proagents/reverse-engineering/code-analysis.md +377 -0
  348. package/proagents/reverse-engineering/dependency-mapping.md +567 -0
  349. package/proagents/reverse-engineering/diagram-generation.md +586 -0
  350. package/proagents/reverse-engineering/documentation-generation.md +468 -0
  351. package/proagents/reverse-engineering/pattern-detection.md +569 -0
  352. package/proagents/reverse-engineering/quality-assessment.md +733 -0
  353. package/proagents/rules/README.md +179 -0
  354. package/proagents/rules/custom-rules-template.yaml +286 -0
  355. package/proagents/rules/custom-rules.md +754 -0
  356. package/proagents/rules/validation-rules-template.yaml +517 -0
  357. package/proagents/runbooks/README.md +219 -0
  358. package/proagents/runbooks/dependency-vulnerability.md +505 -0
  359. package/proagents/runbooks/incident-response.md +451 -0
  360. package/proagents/runbooks/performance-degradation.md +584 -0
  361. package/proagents/runbooks/production-debugging.md +489 -0
  362. package/proagents/scaffolding/README.md +64 -0
  363. package/proagents/scaffolding/nextjs/README.md +578 -0
  364. package/proagents/scaffolding/nextjs/templates/api-route.ts.template +185 -0
  365. package/proagents/scaffolding/nextjs/templates/page.tsx.template +109 -0
  366. package/proagents/scaffolding/nextjs/templates/server-action.ts.template +204 -0
  367. package/proagents/scaffolding/nodejs/README.md +558 -0
  368. package/proagents/scaffolding/nodejs/templates/controller.ts.template +167 -0
  369. package/proagents/scaffolding/nodejs/templates/repository.ts.template +155 -0
  370. package/proagents/scaffolding/nodejs/templates/service.ts.template +207 -0
  371. package/proagents/scaffolding/project-types.md +401 -0
  372. package/proagents/scaffolding/react/README.md +399 -0
  373. package/proagents/scaffolding/react/templates/component.tsx.template +88 -0
  374. package/proagents/scaffolding/react/templates/hook.ts.template +127 -0
  375. package/proagents/scaffolding/react/templates/service.ts.template +155 -0
  376. package/proagents/scaffolding/react/templates/test.tsx.template +149 -0
  377. package/proagents/scaffolding/react-native/README.md +476 -0
  378. package/proagents/scaffolding/react-native/templates/hook.ts.template +226 -0
  379. package/proagents/scaffolding/react-native/templates/screen.tsx.template +247 -0
  380. package/proagents/secrets/README.md +278 -0
  381. package/proagents/secrets/access-control.md +443 -0
  382. package/proagents/secrets/rotation.md +403 -0
  383. package/proagents/secrets/scanning.md +487 -0
  384. package/proagents/secrets/storage.md +394 -0
  385. package/proagents/security/README.md +71 -0
  386. package/proagents/security/owasp-checklist.md +390 -0
  387. package/proagents/security/sast-guide.md +473 -0
  388. package/proagents/security/security-report-template.md +343 -0
  389. package/proagents/security/vulnerability-scanning.md +329 -0
  390. package/proagents/slash-commands.json +161 -0
  391. package/proagents/standards/README.md +120 -0
  392. package/proagents/standards/architecture-patterns.md +728 -0
  393. package/proagents/standards/architecture-rules-template.md +489 -0
  394. package/proagents/standards/coding-standards-template.md +489 -0
  395. package/proagents/standards/examples/README.md +61 -0
  396. package/proagents/standards/examples/nodejs-api.md +560 -0
  397. package/proagents/standards/examples/react-nextjs.md +428 -0
  398. package/proagents/standards/naming-conventions-template.md +526 -0
  399. package/proagents/standards/override-system.md +717 -0
  400. package/proagents/standards/testing-standards-template.md +220 -0
  401. package/proagents/team/README.md +256 -0
  402. package/proagents/team/code-ownership.md +306 -0
  403. package/proagents/team/communication-templates.md +441 -0
  404. package/proagents/team/handoff-protocol.md +380 -0
  405. package/proagents/team/ide-setup/README.md +103 -0
  406. package/proagents/team/ide-setup/cursor.md +276 -0
  407. package/proagents/team/ide-setup/jetbrains.md +330 -0
  408. package/proagents/team/ide-setup/neovim.md +640 -0
  409. package/proagents/team/ide-setup/vscode.md +348 -0
  410. package/proagents/team/onboarding.md +278 -0
  411. package/proagents/templates/README.md +57 -0
  412. package/proagents/templates/code-review-report.md +255 -0
  413. package/proagents/templates/codebase-analysis-report.md +315 -0
  414. package/proagents/templates/deployment-checklist.md +277 -0
  415. package/proagents/templates/feature-requirements.md +142 -0
  416. package/proagents/templates/feature-status.md +231 -0
  417. package/proagents/templates/implementation-plan.md +373 -0
  418. package/proagents/templates/rollback-plan.md +331 -0
  419. package/proagents/templates/test-plan.md +336 -0
  420. package/proagents/templates/ui-specification.md +431 -0
  421. package/proagents/testing-standards/README.md +229 -0
  422. package/proagents/testing-standards/coverage-requirements.md +198 -0
  423. package/proagents/testing-standards/mocking-guidelines.md +478 -0
  424. package/proagents/testing-standards/test-naming.md +485 -0
  425. package/proagents/testing-standards/test-patterns.md +488 -0
  426. package/proagents/troubleshooting/README.md +730 -0
  427. package/proagents/troubleshooting/ai-issues.md +601 -0
  428. package/proagents/troubleshooting/workflow-issues.md +571 -0
  429. package/proagents/ui-integration/README.md +77 -0
  430. package/proagents/ui-integration/figma-guide.md +217 -0
  431. package/proagents/ui-integration/manual-export-guide.md +358 -0
  432. package/proagents/ui-integration/sketch-interpretation.md +471 -0
  433. package/proagents/webhooks/README.md +126 -0
  434. package/proagents/webhooks/endpoints.md +298 -0
  435. package/proagents/webhooks/events.md +316 -0
  436. package/proagents/webhooks/payloads.md +325 -0
  437. package/proagents/webhooks/reliability.md +363 -0
  438. package/proagents/webhooks/security.md +380 -0
  439. package/proagents/workflow-modes/README.md +136 -0
  440. package/proagents/workflow-modes/deferred-tracking.md +405 -0
  441. package/proagents/workflow-modes/entry-modes.md +397 -0
  442. package/proagents/workflow-modes/guardrails.md +405 -0
  443. package/proagents/workflow-modes/mode-detection.md +358 -0
  444. package/proagents/workflow-modes/mode-switching.md +372 -0
@@ -0,0 +1,521 @@
1
+ # Async Error Handling
2
+
3
+ Managing errors in asynchronous operations, background jobs, and event-driven systems.
4
+
5
+ ---
6
+
7
+ ## Promise Error Handling
8
+
9
+ ### Basic Patterns
10
+
11
+ ```typescript
12
+ // Pattern 1: try-catch with async/await
13
+ async function processOrder(orderId: string) {
14
+ try {
15
+ const order = await getOrder(orderId);
16
+ await validateOrder(order);
17
+ await processPayment(order);
18
+ await fulfillOrder(order);
19
+ } catch (error) {
20
+ if (error instanceof ValidationError) {
21
+ // Handle validation errors
22
+ logger.warn('Order validation failed', { orderId, error });
23
+ throw error;
24
+ }
25
+ if (error instanceof PaymentError) {
26
+ // Handle payment errors
27
+ await handlePaymentFailure(orderId, error);
28
+ throw error;
29
+ }
30
+ // Unexpected error
31
+ logger.error('Order processing failed', { orderId, error });
32
+ throw new ProcessingError('Order processing failed', { cause: error });
33
+ }
34
+ }
35
+
36
+ // Pattern 2: Promise chain with .catch()
37
+ fetchData()
38
+ .then(processData)
39
+ .then(saveData)
40
+ .catch(handleError);
41
+
42
+ // Pattern 3: Promise.allSettled for parallel operations
43
+ const results = await Promise.allSettled([
44
+ fetchUser(userId),
45
+ fetchOrders(userId),
46
+ fetchPreferences(userId),
47
+ ]);
48
+
49
+ const errors = results.filter(r => r.status === 'rejected');
50
+ if (errors.length > 0) {
51
+ logger.warn('Some operations failed', { errors });
52
+ }
53
+ ```
54
+
55
+ ### Error Aggregation
56
+
57
+ ```typescript
58
+ // errors/async.ts
59
+ export class AggregateAsyncError extends BaseError {
60
+ readonly code = 'AGGREGATE_ERROR';
61
+ readonly statusCode = 500;
62
+ readonly isOperational = true;
63
+
64
+ readonly errors: Error[];
65
+ readonly successCount: number;
66
+ readonly failureCount: number;
67
+
68
+ constructor(errors: Error[], successCount: number) {
69
+ super(`${errors.length} operations failed`);
70
+ this.errors = errors;
71
+ this.successCount = successCount;
72
+ this.failureCount = errors.length;
73
+ }
74
+ }
75
+
76
+ // Usage
77
+ async function batchProcess(items: Item[]) {
78
+ const results = await Promise.allSettled(
79
+ items.map(item => processItem(item))
80
+ );
81
+
82
+ const failures = results
83
+ .filter((r): r is PromiseRejectedResult => r.status === 'rejected')
84
+ .map(r => r.reason);
85
+
86
+ const successes = results.filter(r => r.status === 'fulfilled');
87
+
88
+ if (failures.length > 0) {
89
+ throw new AggregateAsyncError(failures, successes.length);
90
+ }
91
+
92
+ return successes.map(s => s.value);
93
+ }
94
+ ```
95
+
96
+ ---
97
+
98
+ ## Background Job Errors
99
+
100
+ ### Job Error Configuration
101
+
102
+ ```yaml
103
+ # proagents.config.yaml
104
+ patterns:
105
+ async_errors:
106
+ jobs:
107
+ # Retry configuration
108
+ retry:
109
+ enabled: true
110
+ max_attempts: 3
111
+ backoff:
112
+ type: "exponential"
113
+ initial_delay: "1s"
114
+ max_delay: "5m"
115
+ multiplier: 2
116
+
117
+ # Dead letter queue
118
+ dlq:
119
+ enabled: true
120
+ queue_name: "failed-jobs"
121
+ retention: "7d"
122
+
123
+ # Error handling
124
+ on_error:
125
+ log: true
126
+ notify:
127
+ after_attempts: 3
128
+ channels: ["slack"]
129
+ ```
130
+
131
+ ### Job Error Handler
132
+
133
+ ```typescript
134
+ // jobs/errorHandler.ts
135
+ import { Job } from 'bull';
136
+ import { BaseError } from '../errors';
137
+
138
+ interface JobErrorContext {
139
+ jobId: string;
140
+ jobName: string;
141
+ attempt: number;
142
+ data: unknown;
143
+ }
144
+
145
+ export async function handleJobError(
146
+ error: Error,
147
+ job: Job,
148
+ done: (err?: Error) => void
149
+ ) {
150
+ const context: JobErrorContext = {
151
+ jobId: job.id,
152
+ jobName: job.name,
153
+ attempt: job.attemptsMade,
154
+ data: job.data,
155
+ };
156
+
157
+ // Log the error
158
+ logger.error('Job failed', { error, ...context });
159
+
160
+ // Determine if retryable
161
+ const isRetryable = isRetryableError(error);
162
+ const maxAttempts = job.opts.attempts || 3;
163
+
164
+ if (isRetryable && job.attemptsMade < maxAttempts) {
165
+ // Let it retry
166
+ logger.info('Job will retry', {
167
+ ...context,
168
+ remainingAttempts: maxAttempts - job.attemptsMade,
169
+ });
170
+ done(error);
171
+ } else {
172
+ // Move to dead letter queue
173
+ await moveToDeadLetterQueue(job, error);
174
+ logger.error('Job moved to DLQ', context);
175
+
176
+ // Notify if max attempts reached
177
+ if (job.attemptsMade >= maxAttempts) {
178
+ await notifyJobFailure(job, error);
179
+ }
180
+
181
+ done(); // Mark as processed (to DLQ)
182
+ }
183
+ }
184
+
185
+ function isRetryableError(error: Error): boolean {
186
+ // Network errors, timeouts are retryable
187
+ if (error instanceof NetworkError) return true;
188
+ if (error instanceof TimeoutError) return true;
189
+
190
+ // Validation errors are not retryable
191
+ if (error instanceof ValidationError) return false;
192
+ if (error instanceof BusinessLogicError) return false;
193
+
194
+ // Default: retry unknown errors
195
+ return true;
196
+ }
197
+ ```
198
+
199
+ ### Bull Queue Error Handling
200
+
201
+ ```typescript
202
+ // jobs/queue.ts
203
+ import Queue from 'bull';
204
+
205
+ const orderQueue = new Queue('orders', {
206
+ redis: process.env.REDIS_URL,
207
+ defaultJobOptions: {
208
+ attempts: 3,
209
+ backoff: {
210
+ type: 'exponential',
211
+ delay: 1000,
212
+ },
213
+ removeOnComplete: 100,
214
+ removeOnFail: false, // Keep for debugging
215
+ },
216
+ });
217
+
218
+ // Global error handler
219
+ orderQueue.on('failed', async (job, error) => {
220
+ logger.error('Job failed', {
221
+ jobId: job.id,
222
+ attempts: job.attemptsMade,
223
+ error: error.message,
224
+ });
225
+
226
+ // Check if final failure
227
+ if (job.attemptsMade >= job.opts.attempts) {
228
+ await handleFinalFailure(job, error);
229
+ }
230
+ });
231
+
232
+ orderQueue.on('error', (error) => {
233
+ logger.error('Queue error', { error });
234
+ });
235
+
236
+ // Stalled job handler
237
+ orderQueue.on('stalled', (job) => {
238
+ logger.warn('Job stalled', { jobId: job.id });
239
+ });
240
+ ```
241
+
242
+ ---
243
+
244
+ ## Event-Driven Error Handling
245
+
246
+ ### Event Emitter Errors
247
+
248
+ ```typescript
249
+ // events/errorHandler.ts
250
+ import { EventEmitter } from 'events';
251
+
252
+ class SafeEventEmitter extends EventEmitter {
253
+ emit(event: string, ...args: unknown[]): boolean {
254
+ try {
255
+ return super.emit(event, ...args);
256
+ } catch (error) {
257
+ this.handleEmitError(event, error, args);
258
+ return false;
259
+ }
260
+ }
261
+
262
+ private handleEmitError(event: string, error: Error, args: unknown[]) {
263
+ logger.error('Event handler error', {
264
+ event,
265
+ error: error.message,
266
+ args,
267
+ });
268
+
269
+ // Emit to error handlers
270
+ if (event !== 'error') {
271
+ this.emit('error', error, { event, args });
272
+ }
273
+ }
274
+ }
275
+
276
+ // Usage
277
+ const events = new SafeEventEmitter();
278
+
279
+ events.on('error', (error, context) => {
280
+ logger.error('Unhandled event error', { error, context });
281
+ // Optionally notify monitoring
282
+ });
283
+
284
+ events.on('order.created', async (order) => {
285
+ await processOrder(order); // If this throws, it's caught
286
+ });
287
+ ```
288
+
289
+ ### Message Queue Errors
290
+
291
+ ```typescript
292
+ // messaging/consumer.ts
293
+ import { Message, Consumer } from 'kafka-js';
294
+
295
+ async function processMessage(message: Message): Promise<void> {
296
+ const context = {
297
+ topic: message.topic,
298
+ partition: message.partition,
299
+ offset: message.offset,
300
+ };
301
+
302
+ try {
303
+ const payload = JSON.parse(message.value.toString());
304
+ await handlePayload(payload);
305
+
306
+ } catch (error) {
307
+ if (isParseError(error)) {
308
+ // Invalid message format - send to DLQ
309
+ await sendToDeadLetterQueue(message, error);
310
+ logger.error('Invalid message format', { ...context, error });
311
+ return; // Don't retry
312
+ }
313
+
314
+ if (isRetryableError(error)) {
315
+ // Throw to trigger retry
316
+ logger.warn('Message processing failed, will retry', { ...context, error });
317
+ throw error;
318
+ }
319
+
320
+ // Non-retryable error
321
+ await sendToDeadLetterQueue(message, error);
322
+ logger.error('Message processing failed permanently', { ...context, error });
323
+ }
324
+ }
325
+
326
+ // Consumer configuration
327
+ const consumer: Consumer = kafka.consumer({
328
+ retry: {
329
+ initialRetryTime: 100,
330
+ retries: 5,
331
+ maxRetryTime: 30000,
332
+ factor: 2,
333
+ },
334
+ });
335
+ ```
336
+
337
+ ---
338
+
339
+ ## Circuit Breaker Pattern
340
+
341
+ ### Configuration
342
+
343
+ ```yaml
344
+ patterns:
345
+ async_errors:
346
+ circuit_breaker:
347
+ enabled: true
348
+
349
+ # Thresholds
350
+ failure_threshold: 5
351
+ success_threshold: 3
352
+ timeout: "30s"
353
+
354
+ # States
355
+ states:
356
+ closed: "Normal operation"
357
+ open: "Failing fast"
358
+ half_open: "Testing recovery"
359
+
360
+ # Monitoring
361
+ metrics:
362
+ enabled: true
363
+ export: "prometheus"
364
+ ```
365
+
366
+ ### Implementation
367
+
368
+ ```typescript
369
+ // patterns/circuitBreaker.ts
370
+ enum CircuitState {
371
+ CLOSED = 'closed',
372
+ OPEN = 'open',
373
+ HALF_OPEN = 'half_open',
374
+ }
375
+
376
+ class CircuitBreaker {
377
+ private state: CircuitState = CircuitState.CLOSED;
378
+ private failures = 0;
379
+ private successes = 0;
380
+ private lastFailureTime?: Date;
381
+
382
+ constructor(
383
+ private readonly failureThreshold: number,
384
+ private readonly successThreshold: number,
385
+ private readonly timeout: number
386
+ ) {}
387
+
388
+ async execute<T>(fn: () => Promise<T>): Promise<T> {
389
+ if (this.state === CircuitState.OPEN) {
390
+ if (this.shouldAttemptReset()) {
391
+ this.state = CircuitState.HALF_OPEN;
392
+ } else {
393
+ throw new CircuitOpenError('Circuit is open');
394
+ }
395
+ }
396
+
397
+ try {
398
+ const result = await fn();
399
+ this.onSuccess();
400
+ return result;
401
+ } catch (error) {
402
+ this.onFailure();
403
+ throw error;
404
+ }
405
+ }
406
+
407
+ private onSuccess() {
408
+ this.failures = 0;
409
+ if (this.state === CircuitState.HALF_OPEN) {
410
+ this.successes++;
411
+ if (this.successes >= this.successThreshold) {
412
+ this.state = CircuitState.CLOSED;
413
+ this.successes = 0;
414
+ }
415
+ }
416
+ }
417
+
418
+ private onFailure() {
419
+ this.failures++;
420
+ this.lastFailureTime = new Date();
421
+ if (this.failures >= this.failureThreshold) {
422
+ this.state = CircuitState.OPEN;
423
+ }
424
+ }
425
+
426
+ private shouldAttemptReset(): boolean {
427
+ if (!this.lastFailureTime) return true;
428
+ const elapsed = Date.now() - this.lastFailureTime.getTime();
429
+ return elapsed >= this.timeout;
430
+ }
431
+ }
432
+
433
+ // Usage
434
+ const paymentCircuit = new CircuitBreaker(5, 3, 30000);
435
+
436
+ async function processPayment(payment: Payment) {
437
+ return paymentCircuit.execute(() => paymentGateway.charge(payment));
438
+ }
439
+ ```
440
+
441
+ ---
442
+
443
+ ## Timeout Handling
444
+
445
+ ### Timeout Wrapper
446
+
447
+ ```typescript
448
+ // utils/timeout.ts
449
+ export class TimeoutError extends BaseError {
450
+ readonly code = 'TIMEOUT_ERROR';
451
+ readonly statusCode = 504;
452
+ readonly isOperational = true;
453
+
454
+ constructor(operation: string, timeout: number) {
455
+ super(`Operation "${operation}" timed out after ${timeout}ms`);
456
+ }
457
+ }
458
+
459
+ export async function withTimeout<T>(
460
+ promise: Promise<T>,
461
+ timeout: number,
462
+ operation: string
463
+ ): Promise<T> {
464
+ let timeoutId: NodeJS.Timeout;
465
+
466
+ const timeoutPromise = new Promise<never>((_, reject) => {
467
+ timeoutId = setTimeout(() => {
468
+ reject(new TimeoutError(operation, timeout));
469
+ }, timeout);
470
+ });
471
+
472
+ try {
473
+ const result = await Promise.race([promise, timeoutPromise]);
474
+ clearTimeout(timeoutId!);
475
+ return result;
476
+ } catch (error) {
477
+ clearTimeout(timeoutId!);
478
+ throw error;
479
+ }
480
+ }
481
+
482
+ // Usage
483
+ const user = await withTimeout(
484
+ fetchUser(userId),
485
+ 5000,
486
+ 'fetchUser'
487
+ );
488
+ ```
489
+
490
+ ---
491
+
492
+ ## Commands
493
+
494
+ ```bash
495
+ # View failed jobs
496
+ proagents jobs failed --queue orders
497
+
498
+ # Retry failed job
499
+ proagents jobs retry --id job-123
500
+
501
+ # View dead letter queue
502
+ proagents jobs dlq --queue orders
503
+
504
+ # Process DLQ
505
+ proagents jobs process-dlq --queue orders --limit 10
506
+
507
+ # Circuit breaker status
508
+ proagents circuit-breaker status
509
+ ```
510
+
511
+ ---
512
+
513
+ ## Best Practices
514
+
515
+ 1. **Always Handle Rejections**: Never leave promises unhandled
516
+ 2. **Use Circuit Breakers**: Prevent cascade failures
517
+ 3. **Implement Retries**: With exponential backoff
518
+ 4. **Dead Letter Queues**: Capture permanently failed messages
519
+ 5. **Timeout Everything**: Don't wait forever
520
+ 6. **Log Context**: Include job/message IDs for debugging
521
+ 7. **Monitor Failures**: Track failure rates and patterns