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,488 @@
1
+ # Test Patterns
2
+
3
+ Common testing patterns and best practices.
4
+
5
+ ---
6
+
7
+ ## Test Structure
8
+
9
+ ### AAA Pattern (Arrange-Act-Assert)
10
+
11
+ ```typescript
12
+ describe('OrderService', () => {
13
+ describe('calculateTotal', () => {
14
+ it('should calculate total with tax', () => {
15
+ // Arrange
16
+ const items = [
17
+ { name: 'Widget', price: 10, quantity: 2 },
18
+ { name: 'Gadget', price: 25, quantity: 1 },
19
+ ];
20
+ const taxRate = 0.1;
21
+
22
+ // Act
23
+ const total = orderService.calculateTotal(items, taxRate);
24
+
25
+ // Assert
26
+ expect(total).toBe(49.5); // (20 + 25) * 1.1
27
+ });
28
+ });
29
+ });
30
+ ```
31
+
32
+ ### Given-When-Then (BDD)
33
+
34
+ ```typescript
35
+ describe('User Registration', () => {
36
+ describe('given valid registration data', () => {
37
+ const validData = {
38
+ email: 'test@example.com',
39
+ password: 'SecurePass123!',
40
+ name: 'Test User',
41
+ };
42
+
43
+ describe('when registering a new user', () => {
44
+ let result: User;
45
+
46
+ beforeEach(async () => {
47
+ result = await userService.register(validData);
48
+ });
49
+
50
+ it('then should create the user', () => {
51
+ expect(result.id).toBeDefined();
52
+ });
53
+
54
+ it('then should hash the password', () => {
55
+ expect(result.password).not.toBe(validData.password);
56
+ });
57
+
58
+ it('then should send welcome email', () => {
59
+ expect(emailService.send).toHaveBeenCalledWith(
60
+ expect.objectContaining({ to: validData.email })
61
+ );
62
+ });
63
+ });
64
+ });
65
+ });
66
+ ```
67
+
68
+ ---
69
+
70
+ ## Test Categories
71
+
72
+ ### Unit Tests
73
+
74
+ ```typescript
75
+ // Unit test: Tests a single function/method in isolation
76
+ describe('validateEmail', () => {
77
+ it('should return true for valid email', () => {
78
+ expect(validateEmail('user@example.com')).toBe(true);
79
+ });
80
+
81
+ it('should return false for invalid email', () => {
82
+ expect(validateEmail('invalid-email')).toBe(false);
83
+ });
84
+
85
+ it('should return false for empty string', () => {
86
+ expect(validateEmail('')).toBe(false);
87
+ });
88
+ });
89
+ ```
90
+
91
+ ### Integration Tests
92
+
93
+ ```typescript
94
+ // Integration test: Tests multiple components working together
95
+ describe('UserRepository', () => {
96
+ let repository: UserRepository;
97
+ let db: Database;
98
+
99
+ beforeAll(async () => {
100
+ db = await createTestDatabase();
101
+ repository = new UserRepository(db);
102
+ });
103
+
104
+ afterAll(async () => {
105
+ await db.close();
106
+ });
107
+
108
+ beforeEach(async () => {
109
+ await db.clear('users');
110
+ });
111
+
112
+ it('should create and retrieve user', async () => {
113
+ const user = await repository.create({
114
+ email: 'test@example.com',
115
+ name: 'Test User',
116
+ });
117
+
118
+ const retrieved = await repository.findById(user.id);
119
+
120
+ expect(retrieved).toEqual(user);
121
+ });
122
+ });
123
+ ```
124
+
125
+ ### E2E Tests
126
+
127
+ ```typescript
128
+ // E2E test: Tests complete user flows
129
+ describe('Checkout Flow', () => {
130
+ let page: Page;
131
+
132
+ beforeEach(async () => {
133
+ page = await browser.newPage();
134
+ await page.goto('/');
135
+ });
136
+
137
+ afterEach(async () => {
138
+ await page.close();
139
+ });
140
+
141
+ it('should complete purchase', async () => {
142
+ // Add item to cart
143
+ await page.click('[data-testid="add-to-cart"]');
144
+ await page.click('[data-testid="cart-icon"]');
145
+
146
+ // Checkout
147
+ await page.click('[data-testid="checkout-button"]');
148
+ await page.fill('[name="email"]', 'test@example.com');
149
+ await page.fill('[name="card"]', '4242424242424242');
150
+ await page.click('[data-testid="pay-button"]');
151
+
152
+ // Verify success
153
+ await expect(page.locator('[data-testid="success-message"]')).toBeVisible();
154
+ });
155
+ });
156
+ ```
157
+
158
+ ---
159
+
160
+ ## Common Patterns
161
+
162
+ ### Test Factories
163
+
164
+ ```typescript
165
+ // factories/user.factory.ts
166
+ interface UserFactoryOptions {
167
+ email?: string;
168
+ name?: string;
169
+ role?: 'user' | 'admin';
170
+ }
171
+
172
+ export function createUser(options: UserFactoryOptions = {}): User {
173
+ return {
174
+ id: faker.string.uuid(),
175
+ email: options.email ?? faker.internet.email(),
176
+ name: options.name ?? faker.person.fullName(),
177
+ role: options.role ?? 'user',
178
+ createdAt: new Date(),
179
+ };
180
+ }
181
+
182
+ // Usage
183
+ const user = createUser({ role: 'admin' });
184
+ const users = Array.from({ length: 10 }, () => createUser());
185
+ ```
186
+
187
+ ### Test Builders
188
+
189
+ ```typescript
190
+ // builders/order.builder.ts
191
+ export class OrderBuilder {
192
+ private order: Partial<Order> = {};
193
+
194
+ withCustomer(customer: Customer): this {
195
+ this.order.customer = customer;
196
+ return this;
197
+ }
198
+
199
+ withItems(items: OrderItem[]): this {
200
+ this.order.items = items;
201
+ return this;
202
+ }
203
+
204
+ withStatus(status: OrderStatus): this {
205
+ this.order.status = status;
206
+ return this;
207
+ }
208
+
209
+ withShipping(address: Address): this {
210
+ this.order.shippingAddress = address;
211
+ return this;
212
+ }
213
+
214
+ build(): Order {
215
+ return {
216
+ id: faker.string.uuid(),
217
+ customer: this.order.customer ?? createCustomer(),
218
+ items: this.order.items ?? [createOrderItem()],
219
+ status: this.order.status ?? 'pending',
220
+ shippingAddress: this.order.shippingAddress ?? createAddress(),
221
+ createdAt: new Date(),
222
+ };
223
+ }
224
+ }
225
+
226
+ // Usage
227
+ const order = new OrderBuilder()
228
+ .withCustomer(vipCustomer)
229
+ .withStatus('completed')
230
+ .build();
231
+ ```
232
+
233
+ ### Test Fixtures
234
+
235
+ ```typescript
236
+ // fixtures/index.ts
237
+ export const fixtures = {
238
+ users: {
239
+ admin: createUser({ role: 'admin', email: 'admin@test.com' }),
240
+ regular: createUser({ role: 'user', email: 'user@test.com' }),
241
+ },
242
+ products: {
243
+ widget: { id: '1', name: 'Widget', price: 10 },
244
+ gadget: { id: '2', name: 'Gadget', price: 25 },
245
+ },
246
+ orders: {
247
+ pending: new OrderBuilder().withStatus('pending').build(),
248
+ completed: new OrderBuilder().withStatus('completed').build(),
249
+ },
250
+ };
251
+
252
+ // Usage
253
+ it('should allow admin to delete user', async () => {
254
+ await loginAs(fixtures.users.admin);
255
+ await userService.delete(fixtures.users.regular.id);
256
+ });
257
+ ```
258
+
259
+ ---
260
+
261
+ ## Test Isolation
262
+
263
+ ### Database Isolation
264
+
265
+ ```typescript
266
+ // hooks/database.ts
267
+ export function useTestDatabase() {
268
+ let db: Database;
269
+
270
+ beforeAll(async () => {
271
+ db = await createTestDatabase();
272
+ await db.migrate();
273
+ });
274
+
275
+ afterAll(async () => {
276
+ await db.close();
277
+ });
278
+
279
+ beforeEach(async () => {
280
+ await db.truncateAll();
281
+ });
282
+
283
+ return () => db;
284
+ }
285
+
286
+ // Usage
287
+ describe('UserService', () => {
288
+ const getDb = useTestDatabase();
289
+
290
+ it('should create user', async () => {
291
+ const db = getDb();
292
+ const service = new UserService(db);
293
+ // ...
294
+ });
295
+ });
296
+ ```
297
+
298
+ ### Transaction Rollback
299
+
300
+ ```typescript
301
+ // hooks/transaction.ts
302
+ export function useTransaction() {
303
+ let transaction: Transaction;
304
+
305
+ beforeEach(async () => {
306
+ transaction = await db.beginTransaction();
307
+ });
308
+
309
+ afterEach(async () => {
310
+ await transaction.rollback();
311
+ });
312
+
313
+ return () => transaction;
314
+ }
315
+ ```
316
+
317
+ ---
318
+
319
+ ## Async Testing
320
+
321
+ ### Promises
322
+
323
+ ```typescript
324
+ // Testing async functions
325
+ it('should fetch user', async () => {
326
+ const user = await userService.getById('123');
327
+ expect(user.name).toBe('Test User');
328
+ });
329
+
330
+ // Testing rejected promises
331
+ it('should throw on invalid id', async () => {
332
+ await expect(userService.getById('invalid')).rejects.toThrow('User not found');
333
+ });
334
+ ```
335
+
336
+ ### Timers
337
+
338
+ ```typescript
339
+ // Testing setTimeout/setInterval
340
+ describe('Scheduler', () => {
341
+ beforeEach(() => {
342
+ jest.useFakeTimers();
343
+ });
344
+
345
+ afterEach(() => {
346
+ jest.useRealTimers();
347
+ });
348
+
349
+ it('should schedule task', () => {
350
+ const callback = jest.fn();
351
+ scheduler.scheduleIn(1000, callback);
352
+
353
+ expect(callback).not.toHaveBeenCalled();
354
+
355
+ jest.advanceTimersByTime(1000);
356
+
357
+ expect(callback).toHaveBeenCalledTimes(1);
358
+ });
359
+ });
360
+ ```
361
+
362
+ ### Event Emitters
363
+
364
+ ```typescript
365
+ // Testing events
366
+ it('should emit event on save', async () => {
367
+ const eventHandler = jest.fn();
368
+ eventEmitter.on('user.saved', eventHandler);
369
+
370
+ await userService.save(user);
371
+
372
+ expect(eventHandler).toHaveBeenCalledWith(
373
+ expect.objectContaining({ userId: user.id })
374
+ );
375
+ });
376
+ ```
377
+
378
+ ---
379
+
380
+ ## Error Testing
381
+
382
+ ### Expected Errors
383
+
384
+ ```typescript
385
+ // Testing thrown errors
386
+ it('should throw ValidationError for invalid input', () => {
387
+ expect(() => validateUser({ email: 'invalid' })).toThrow(ValidationError);
388
+ });
389
+
390
+ // Testing error properties
391
+ it('should include field in validation error', () => {
392
+ try {
393
+ validateUser({ email: 'invalid' });
394
+ fail('Should have thrown');
395
+ } catch (error) {
396
+ expect(error).toBeInstanceOf(ValidationError);
397
+ expect(error.field).toBe('email');
398
+ }
399
+ });
400
+
401
+ // Testing async errors
402
+ it('should reject with NotFoundError', async () => {
403
+ await expect(userService.getById('nonexistent'))
404
+ .rejects.toBeInstanceOf(NotFoundError);
405
+ });
406
+ ```
407
+
408
+ ---
409
+
410
+ ## Parameterized Tests
411
+
412
+ ### Table-Driven Tests
413
+
414
+ ```typescript
415
+ describe('calculateDiscount', () => {
416
+ it.each([
417
+ { orderTotal: 100, expectedDiscount: 0 },
418
+ { orderTotal: 500, expectedDiscount: 25 },
419
+ { orderTotal: 1000, expectedDiscount: 100 },
420
+ { orderTotal: 2000, expectedDiscount: 300 },
421
+ ])(
422
+ 'should return $expectedDiscount discount for $orderTotal order',
423
+ ({ orderTotal, expectedDiscount }) => {
424
+ expect(calculateDiscount(orderTotal)).toBe(expectedDiscount);
425
+ }
426
+ );
427
+ });
428
+
429
+ // With descriptive names
430
+ describe('email validation', () => {
431
+ const validEmails = [
432
+ 'user@example.com',
433
+ 'user.name@example.co.uk',
434
+ 'user+tag@example.com',
435
+ ];
436
+
437
+ const invalidEmails = [
438
+ 'invalid',
439
+ 'user@',
440
+ '@example.com',
441
+ 'user@.com',
442
+ ];
443
+
444
+ it.each(validEmails)('should accept valid email: %s', (email) => {
445
+ expect(validateEmail(email)).toBe(true);
446
+ });
447
+
448
+ it.each(invalidEmails)('should reject invalid email: %s', (email) => {
449
+ expect(validateEmail(email)).toBe(false);
450
+ });
451
+ });
452
+ ```
453
+
454
+ ---
455
+
456
+ ## Configuration
457
+
458
+ ```yaml
459
+ # proagents.config.yaml
460
+ testing:
461
+ patterns:
462
+ # Required patterns
463
+ structure: "aaa" # or "bdd"
464
+
465
+ # Test organization
466
+ organization:
467
+ unit: "__tests__/unit/"
468
+ integration: "__tests__/integration/"
469
+ e2e: "__tests__/e2e/"
470
+
471
+ # Naming convention
472
+ naming:
473
+ file: "{name}.test.ts"
474
+ describe: "PascalCase"
475
+ it: "should {action}"
476
+ ```
477
+
478
+ ---
479
+
480
+ ## Best Practices
481
+
482
+ 1. **One Assert Per Test**: Each test verifies one behavior
483
+ 2. **Descriptive Names**: Test names describe expected behavior
484
+ 3. **Independent Tests**: Tests don't depend on each other
485
+ 4. **Fast Tests**: Unit tests should be milliseconds
486
+ 5. **Deterministic**: Same input = same result
487
+ 6. **Readable**: Tests serve as documentation
488
+ 7. **Maintainable**: Use factories and builders for test data