devrev-Python-SDK 1.0.0__tar.gz → 2.0.0__tar.gz

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 (259) hide show
  1. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.augment/agents/bug-fixer.md +1 -1
  2. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.augment/agents/foreman.md +1 -1
  3. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.augment/agents/pr-review-boss.md +4 -4
  4. devrev_python_sdk-2.0.0/.augment/agents/release-manager.md +186 -0
  5. devrev_python_sdk-2.0.0/.augment/agents/simplifier.md +222 -0
  6. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.augment/agents/tester.md +1 -1
  7. devrev_python_sdk-2.0.0/.augment/commands/foreman-work.md +80 -0
  8. devrev_python_sdk-2.0.0/.augment/commands/release-prepare.md +252 -0
  9. devrev_python_sdk-2.0.0/.augment/commands/review-start.md +119 -0
  10. devrev_python_sdk-2.0.0/.augment/commands/simplify-code.md +135 -0
  11. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.augment/rules/code-quality.md +2 -2
  12. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.augment/rules/python-development.md +2 -1
  13. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.augment/rules/security.md +6 -5
  14. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.github/workflows/ci.yml +14 -4
  15. devrev_python_sdk-2.0.0/.github/workflows/claude-code-review.yml +44 -0
  16. devrev_python_sdk-2.0.0/.github/workflows/claude.yml +50 -0
  17. devrev_python_sdk-2.0.0/.github/workflows/integration-tests.yml +189 -0
  18. devrev_python_sdk-2.0.0/KNOWN_ISSUES.md +158 -0
  19. devrev_python_sdk-2.0.0/OPENAPI_SPEC_DISCREPANCIES.md +1 -0
  20. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/PKG-INFO +132 -7
  21. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/README.md +127 -3
  22. devrev_python_sdk-2.0.0/docs/api/beta/brands.md +175 -0
  23. devrev_python_sdk-2.0.0/docs/api/beta/engagements.md +179 -0
  24. devrev_python_sdk-2.0.0/docs/api/beta/incidents.md +181 -0
  25. devrev_python_sdk-2.0.0/docs/api/beta/index.md +123 -0
  26. devrev_python_sdk-2.0.0/docs/api/beta/question-answers.md +185 -0
  27. devrev_python_sdk-2.0.0/docs/api/beta/recommendations.md +218 -0
  28. devrev_python_sdk-2.0.0/docs/api/beta/search.md +243 -0
  29. devrev_python_sdk-2.0.0/docs/api/beta/uoms.md +195 -0
  30. devrev_python_sdk-2.0.0/docs/api/beta-api-differences.md +596 -0
  31. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/client.md +28 -2
  32. devrev_python_sdk-2.0.0/docs/api/config.md +135 -0
  33. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/index.md +19 -0
  34. devrev_python_sdk-2.0.0/docs/changelog.md +367 -0
  35. devrev_python_sdk-2.0.0/docs/examples/beta-features.md +361 -0
  36. devrev_python_sdk-2.0.0/docs/guides/beta-api.md +221 -0
  37. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/guides/configuration.md +69 -6
  38. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/guides/error-handling.md +35 -0
  39. devrev_python_sdk-2.0.0/docs/guides/github-actions-setup.md +200 -0
  40. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/guides/logging.md +65 -17
  41. devrev_python_sdk-2.0.0/docs/guides/write-integration-testing-strategy.md +403 -0
  42. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/integrations/flask/app.py +8 -4
  43. devrev_python_sdk-2.0.0/openapi-beta.yaml +56228 -0
  44. devrev_python_sdk-2.0.0/openapi-spec-corrections.yaml +222 -0
  45. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/pyproject.toml +3 -3
  46. devrev_python_sdk-2.0.0/scripts/setup-github-secrets.sh +137 -0
  47. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/__init__.py +22 -2
  48. devrev_python_sdk-2.0.0/src/devrev/client.py +694 -0
  49. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/config.py +106 -5
  50. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/exceptions.py +67 -1
  51. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/__init__.py +395 -4
  52. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/articles.py +20 -2
  53. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/base.py +12 -2
  54. devrev_python_sdk-2.0.0/src/devrev/models/brands.py +103 -0
  55. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/conversations.py +11 -3
  56. devrev_python_sdk-2.0.0/src/devrev/models/engagements.py +149 -0
  57. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/groups.py +20 -3
  58. devrev_python_sdk-2.0.0/src/devrev/models/incidents.py +188 -0
  59. devrev_python_sdk-2.0.0/src/devrev/models/notifications.py +33 -0
  60. devrev_python_sdk-2.0.0/src/devrev/models/preferences.py +71 -0
  61. devrev_python_sdk-2.0.0/src/devrev/models/question_answers.py +90 -0
  62. devrev_python_sdk-2.0.0/src/devrev/models/recommendations.py +82 -0
  63. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/rev_users.py +92 -0
  64. devrev_python_sdk-2.0.0/src/devrev/models/search.py +187 -0
  65. devrev_python_sdk-2.0.0/src/devrev/models/sync.py +151 -0
  66. devrev_python_sdk-2.0.0/src/devrev/models/tasks.py +145 -0
  67. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/timeline_entries.py +10 -2
  68. devrev_python_sdk-2.0.0/src/devrev/models/timeline_events.py +117 -0
  69. devrev_python_sdk-2.0.0/src/devrev/models/track_events.py +45 -0
  70. devrev_python_sdk-2.0.0/src/devrev/models/uoms.py +172 -0
  71. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/webhooks.py +13 -0
  72. devrev_python_sdk-2.0.0/src/devrev/models/widgets.py +148 -0
  73. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/services/__init__.py +55 -0
  74. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/services/articles.py +50 -0
  75. devrev_python_sdk-2.0.0/src/devrev/services/brands.py +218 -0
  76. devrev_python_sdk-2.0.0/src/devrev/services/conversations.py +196 -0
  77. devrev_python_sdk-2.0.0/src/devrev/services/engagements.py +299 -0
  78. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/services/groups.py +46 -6
  79. devrev_python_sdk-2.0.0/src/devrev/services/incidents.py +285 -0
  80. devrev_python_sdk-2.0.0/src/devrev/services/notifications.py +77 -0
  81. devrev_python_sdk-2.0.0/src/devrev/services/preferences.py +108 -0
  82. devrev_python_sdk-2.0.0/src/devrev/services/question_answers.py +126 -0
  83. devrev_python_sdk-2.0.0/src/devrev/services/recommendations.py +60 -0
  84. devrev_python_sdk-2.0.0/src/devrev/services/rev_users.py +495 -0
  85. devrev_python_sdk-2.0.0/src/devrev/services/search.py +338 -0
  86. devrev_python_sdk-2.0.0/src/devrev/services/track_events.py +48 -0
  87. devrev_python_sdk-2.0.0/src/devrev/services/uoms.py +294 -0
  88. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/services/webhooks.py +40 -0
  89. devrev_python_sdk-2.0.0/src/devrev/utils/http.py +962 -0
  90. devrev_python_sdk-2.0.0/src/devrev/utils/logging.py +269 -0
  91. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/conftest.py +7 -0
  92. devrev_python_sdk-2.0.0/tests/integration/conftest.py +156 -0
  93. devrev_python_sdk-2.0.0/tests/integration/test_all_readonly_endpoints.py +435 -0
  94. devrev_python_sdk-2.0.0/tests/integration/test_backwards_compatibility.py +347 -0
  95. devrev_python_sdk-2.0.0/tests/integration/test_core_services_phase1.py +174 -0
  96. devrev_python_sdk-2.0.0/tests/integration/test_extended_services_phase2.py +237 -0
  97. devrev_python_sdk-2.0.0/tests/integration/test_get_endpoints.py +197 -0
  98. devrev_python_sdk-2.0.0/tests/integration/test_ping.py +34 -0
  99. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/integration/test_readonly_endpoints.py +6 -3
  100. devrev_python_sdk-2.0.0/tests/integration/test_specialized_services_phase3.py +178 -0
  101. devrev_python_sdk-2.0.0/tests/integration/test_write_operations.py +281 -0
  102. devrev_python_sdk-2.0.0/tests/integration/utils/__init__.py +19 -0
  103. devrev_python_sdk-2.0.0/tests/integration/utils/cleanup.py +199 -0
  104. devrev_python_sdk-2.0.0/tests/integration/utils/constants.py +53 -0
  105. devrev_python_sdk-2.0.0/tests/integration/utils/data_manager.py +265 -0
  106. devrev_python_sdk-2.0.0/tests/unit/services/conftest.py +365 -0
  107. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/services/test_async_services.py +108 -0
  108. devrev_python_sdk-2.0.0/tests/unit/services/test_brands.py +132 -0
  109. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/services/test_conversations.py +2 -1
  110. devrev_python_sdk-2.0.0/tests/unit/services/test_engagements.py +160 -0
  111. devrev_python_sdk-2.0.0/tests/unit/services/test_incidents.py +185 -0
  112. devrev_python_sdk-2.0.0/tests/unit/services/test_notifications.py +243 -0
  113. devrev_python_sdk-2.0.0/tests/unit/services/test_preferences.py +241 -0
  114. devrev_python_sdk-2.0.0/tests/unit/services/test_question_answers.py +154 -0
  115. devrev_python_sdk-2.0.0/tests/unit/services/test_recommendations.py +384 -0
  116. devrev_python_sdk-2.0.0/tests/unit/services/test_search.py +131 -0
  117. devrev_python_sdk-2.0.0/tests/unit/services/test_track_events.py +283 -0
  118. devrev_python_sdk-2.0.0/tests/unit/services/test_uoms.py +244 -0
  119. devrev_python_sdk-2.0.0/tests/unit/test_client.py +153 -0
  120. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/test_config.py +79 -3
  121. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/test_exceptions.py +58 -0
  122. devrev_python_sdk-2.0.0/tests/unit/test_http.py +729 -0
  123. devrev_python_sdk-2.0.0/tests/unit/test_logging.py +280 -0
  124. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/uv.lock +8 -9
  125. devrev_python_sdk-1.0.0/docs/api/config.md +0 -94
  126. devrev_python_sdk-1.0.0/docs/changelog.md +0 -165
  127. devrev_python_sdk-1.0.0/src/devrev/client.py +0 -343
  128. devrev_python_sdk-1.0.0/src/devrev/services/conversations.py +0 -98
  129. devrev_python_sdk-1.0.0/src/devrev/services/rev_users.py +0 -235
  130. devrev_python_sdk-1.0.0/src/devrev/utils/http.py +0 -521
  131. devrev_python_sdk-1.0.0/src/devrev/utils/logging.py +0 -139
  132. devrev_python_sdk-1.0.0/tests/integration/test_ping.py +0 -17
  133. devrev_python_sdk-1.0.0/tests/unit/services/conftest.py +0 -160
  134. devrev_python_sdk-1.0.0/tests/unit/test_client.py +0 -68
  135. devrev_python_sdk-1.0.0/tests/unit/test_http.py +0 -212
  136. devrev_python_sdk-1.0.0/tests/unit/test_logging.py +0 -111
  137. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.augment/agents/builder.md +0 -0
  138. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.augment/agents/documentation.md +0 -0
  139. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.augment/rules/data-modeling.md +0 -0
  140. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.augment/rules/git-workflow.md +0 -0
  141. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.augment/rules/pull-requests.md +0 -0
  142. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.augment/rules/testing.md +0 -0
  143. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.env.sample +0 -0
  144. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  145. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  146. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  147. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.github/ISSUE_TEMPLATE/question.yml +0 -0
  148. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.github/dependabot.yml +0 -0
  149. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.github/pull_request_template.md +0 -0
  150. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.github/workflows/api-check.yml +0 -0
  151. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.github/workflows/docs.yml +0 -0
  152. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.github/workflows/release.yml +0 -0
  153. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.github/workflows/sync-openapi.yml +0 -0
  154. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.gitignore +0 -0
  155. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/.pre-commit-config.yaml +0 -0
  156. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/CODE_OF_CONDUCT.md +0 -0
  157. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/CONTRIBUTING.md +0 -0
  158. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/DEPRECATIONS.md +0 -0
  159. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/SECURITY.md +0 -0
  160. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/benchmarks/README.md +0 -0
  161. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/benchmarks/bench_http_client.py +0 -0
  162. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/benchmarks/bench_models.py +0 -0
  163. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/benchmarks/bench_pagination.py +0 -0
  164. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/benchmarks/conftest.py +0 -0
  165. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/cloudbuild.yaml +0 -0
  166. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/exceptions.md +0 -0
  167. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/models/accounts.md +0 -0
  168. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/models/base.md +0 -0
  169. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/models/index.md +0 -0
  170. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/models/users.md +0 -0
  171. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/models/works.md +0 -0
  172. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/services/accounts.md +0 -0
  173. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/services/articles.md +0 -0
  174. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/services/code-changes.md +0 -0
  175. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/services/conversations.md +0 -0
  176. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/services/dev-users.md +0 -0
  177. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/services/groups.md +0 -0
  178. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/services/index.md +0 -0
  179. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/services/links.md +0 -0
  180. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/services/parts.md +0 -0
  181. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/services/rev-users.md +0 -0
  182. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/services/slas.md +0 -0
  183. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/services/tags.md +0 -0
  184. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/services/timeline-entries.md +0 -0
  185. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/services/webhooks.md +0 -0
  186. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/api/services/works.md +0 -0
  187. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/examples/advanced.md +0 -0
  188. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/examples/basic.md +0 -0
  189. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/examples/index.md +0 -0
  190. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/examples/integrations.md +0 -0
  191. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/getting-started/authentication.md +0 -0
  192. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/getting-started/index.md +0 -0
  193. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/getting-started/installation.md +0 -0
  194. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/getting-started/quickstart.md +0 -0
  195. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/guides/compatibility.md +0 -0
  196. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/guides/index.md +0 -0
  197. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/guides/pagination.md +0 -0
  198. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/guides/sync-vs-async.md +0 -0
  199. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/guides/testing.md +0 -0
  200. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/guides/version-support.md +0 -0
  201. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/docs/index.md +0 -0
  202. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/README.md +0 -0
  203. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/basic/README.md +0 -0
  204. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/basic/async_example.py +0 -0
  205. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/basic/create_work.py +0 -0
  206. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/basic/error_handling.py +0 -0
  207. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/basic/list_accounts.py +0 -0
  208. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/basic/pagination.py +0 -0
  209. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/basic/search_users.py +0 -0
  210. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/integrations/cloud_functions/README.md +0 -0
  211. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/integrations/cloud_functions/main.py +0 -0
  212. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/integrations/cloud_functions/requirements.txt +0 -0
  213. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/integrations/fastapi/README.md +0 -0
  214. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/integrations/fastapi/main.py +0 -0
  215. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/integrations/fastapi/requirements.txt +0 -0
  216. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/integrations/flask/README.md +0 -0
  217. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/examples/integrations/flask/requirements.txt +0 -0
  218. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/mkdocs.yml +0 -0
  219. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/openapi-public.yaml +0 -0
  220. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/accounts.py +0 -0
  221. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/code_changes.py +0 -0
  222. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/dev_users.py +0 -0
  223. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/links.py +0 -0
  224. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/parts.py +0 -0
  225. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/slas.py +0 -0
  226. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/tags.py +0 -0
  227. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/models/works.py +0 -0
  228. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/py.typed +0 -0
  229. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/services/accounts.py +0 -0
  230. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/services/base.py +0 -0
  231. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/services/code_changes.py +0 -0
  232. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/services/dev_users.py +0 -0
  233. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/services/links.py +0 -0
  234. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/services/parts.py +0 -0
  235. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/services/slas.py +0 -0
  236. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/services/tags.py +0 -0
  237. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/services/timeline_entries.py +0 -0
  238. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/services/works.py +0 -0
  239. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/utils/__init__.py +0 -0
  240. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/utils/deprecation.py +0 -0
  241. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/src/devrev/utils/pagination.py +0 -0
  242. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/__init__.py +0 -0
  243. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/integration/__init__.py +0 -0
  244. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/__init__.py +0 -0
  245. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/models/__init__.py +0 -0
  246. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/services/__init__.py +0 -0
  247. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/services/test_articles.py +0 -0
  248. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/services/test_code_changes.py +0 -0
  249. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/services/test_groups.py +0 -0
  250. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/services/test_links.py +0 -0
  251. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/services/test_parts.py +0 -0
  252. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/services/test_slas.py +0 -0
  253. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/services/test_tags.py +0 -0
  254. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/services/test_timeline_entries.py +0 -0
  255. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/services/test_webhooks.py +0 -0
  256. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/services/test_works.py +0 -0
  257. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/test_base_service.py +0 -0
  258. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/test_deprecation.py +0 -0
  259. {devrev_python_sdk-1.0.0 → devrev_python_sdk-2.0.0}/tests/unit/test_pagination.py +0 -0
@@ -17,7 +17,7 @@ You receive a single code review comment with:
17
17
  - Priority level (CRITICAL, HIGH, MEDIUM, LOW)
18
18
 
19
19
  Your job is to understand the issue, implement a fix, verify it works, and commit. Once you are done you will report
20
- back the work you have done, updatig any github issues that are relevant.
20
+ back the work you have done, updating any github issues that are relevant.
21
21
 
22
22
  ## Input Format
23
23
 
@@ -33,7 +33,7 @@ the human to create an issue. You can not work on a feature without a github iss
33
33
  - Find similar implementations to use as templates
34
34
  - Try to reuse code as much as possible
35
35
  - Map dependencies between components
36
- - Note which componments can be built in parallel and which need to be sequenced.
36
+ - Note which components can be built in parallel and which need to be sequenced.
37
37
  - Use all of this information to build a plan and sequencing to utilize as many parallel builder sub agents as possible.
38
38
 
39
39
  3. **Create Implementation Plan**:
@@ -18,9 +18,9 @@ You orchestrate the PR review process by:
18
18
  ## Sub-Agent Invocation
19
19
 
20
20
  Sub-agents are invoked using the `sub-agent-{name}` tool, where `{name}` matches the agent's YAML `name:` field:
21
- - `sub-agent-bug-resolver` → invokes `bug-resolver` agent
21
+ - `sub-agent-bug-fixer` → invokes `bug-fixer` agent
22
22
  - `sub-agent-documentation` → invokes `documentation` agent
23
- - `sub-agent-testing` → invokes `testing` agent
23
+ - `sub-agent-tester` → invokes `tester` agent
24
24
 
25
25
  ## Trigger Conditions
26
26
 
@@ -45,8 +45,8 @@ Activate when:
45
45
  - **MEDIUM**: Code quality, missing tests, documentation gaps
46
46
  - **LOW**: Style, minor refactoring, trivial improvements
47
47
 
48
- 3. **Dispatch Bug Resolver Agents**: For each CRITICAL, HIGH, and MEDIUM issue:
49
- - Invoke `sub-agent-bug-resolver` with the specific issue details
48
+ 3. **Dispatch Bug Fixer Agents**: For each CRITICAL, HIGH, and MEDIUM issue:
49
+ - Invoke `sub-agent-bug-fixer` with the specific issue details
50
50
  - Run multiple Bug Resolvers in parallel for independent issues
51
51
  - Wait for all to complete before proceeding
52
52
  - Use this format:
@@ -0,0 +1,186 @@
1
+ ---
2
+ name: release-manager
3
+ description: Automates semantic versioning releases with changelog generation and deployment triggers
4
+ model: claude-opus-4-5
5
+ color: green
6
+ ---
7
+
8
+ You are a Release Manager agent that automates the complete release process for this repository following semantic versioning standards.
9
+
10
+ ## Your Role
11
+
12
+ You manage releases by:
13
+ 1. Analyzing commit history and merged PRs since the last release
14
+ 2. Determining appropriate semantic version increments
15
+ 3. Updating all version files consistently
16
+ 4. Generating comprehensive release notes
17
+ 5. Creating GitHub releases that trigger automated deployment
18
+
19
+ ## Semantic Versioning Rules
20
+
21
+ Follow strict semantic versioning (MAJOR.MINOR.PATCH):
22
+
23
+ ### MAJOR (X.0.0) - Breaking Changes
24
+ Indicators:
25
+ - Commits/PRs with `BREAKING CHANGE:` in body
26
+ - PRs with `breaking-change` or `major` label
27
+ - Removing or renaming public API endpoints
28
+ - Incompatible function signature changes
29
+ - Removing deprecated features
30
+
31
+ ### MINOR (0.X.0) - New Features
32
+ Indicators:
33
+ - Commits prefixed with `feat:` or `feat(scope):`
34
+ - PRs with `enhancement`, `feature`, or `minor` label
35
+ - New backwards-compatible functionality
36
+ - Deprecating features (without removing)
37
+
38
+ ### PATCH (0.0.X) - Bug Fixes
39
+ Indicators:
40
+ - Commits prefixed with `fix:`, `perf:`, `docs:`, `chore:`, `refactor:`
41
+ - PRs with `bug`, `bugfix`, `patch`, `documentation` label
42
+ - Security patches and performance improvements
43
+ - Dependency updates (non-breaking)
44
+
45
+ ## Version File Locations
46
+
47
+ **CRITICAL**: Both files must ALWAYS be updated simultaneously:
48
+
49
+ 1. **`pyproject.toml`** - Package metadata:
50
+ ```toml
51
+ [project]
52
+ version = "X.Y.Z"
53
+ ```
54
+
55
+ 2. **`src/jb_plugin_analyzer/__init__.py`** - Runtime version:
56
+ ```python
57
+ __version__ = "X.Y.Z"
58
+ ```
59
+
60
+ ## Pre-Flight Checks
61
+
62
+ Before any release, verify ALL conditions:
63
+
64
+ 1. **Branch Check**: Must be on `main` branch
65
+ ```bash
66
+ git branch --show-current # Must return "main"
67
+ ```
68
+
69
+ 2. **Clean Working Directory**:
70
+ ```bash
71
+ git status --porcelain # Must be empty
72
+ ```
73
+
74
+ 3. **Synced with Remote**:
75
+ ```bash
76
+ git fetch origin main
77
+ git rev-parse HEAD # Must equal origin/main
78
+ git rev-parse origin/main
79
+ ```
80
+
81
+ 4. **CI Checks Passing**:
82
+ ```bash
83
+ gh run list --branch main --limit 1 --json conclusion
84
+ ```
85
+
86
+ ## Release Workflow
87
+
88
+ ### Step 1: Get Last Release
89
+ ```bash
90
+ gh release list --limit 1 --json tagName,publishedAt
91
+ ```
92
+
93
+ ### Step 2: Analyze Changes Since Last Release
94
+ ```bash
95
+ # Get commits since last tag
96
+ git log v{last_version}..HEAD --pretty=format:"%s" --no-merges
97
+
98
+ # Get merged PRs since last release
99
+ gh pr list --state merged --search "merged:>{last_release_date}" --json number,title,labels,body
100
+ ```
101
+
102
+ ### Step 3: Categorize Changes
103
+ Parse commits and PRs to determine version increment:
104
+ - Any breaking change → MAJOR
105
+ - Any feat: commit or feature PR → MINOR (if no MAJOR)
106
+ - Only fixes/docs/chores → PATCH
107
+
108
+ ### Step 4: Update Version Files
109
+ ```bash
110
+ # Update pyproject.toml
111
+ sed -i 's/version = "[0-9]*\.[0-9]*\.[0-9]*"/version = "X.Y.Z"/' pyproject.toml
112
+
113
+ # Update __init__.py
114
+ sed -i 's/__version__ = "[0-9]*\.[0-9]*\.[0-9]*"/__version__ = "X.Y.Z"/' src/jb_plugin_analyzer/__init__.py
115
+
116
+ # Regenerate lock file
117
+ uv lock
118
+
119
+ # Verify lock file is in sync
120
+ uv lock --check
121
+ ```
122
+
123
+ ### Step 5: Commit and Tag
124
+ ```bash
125
+ git add pyproject.toml src/jb_plugin_analyzer/__init__.py uv.lock
126
+ git commit -m "chore: bump version to X.Y.Z for release"
127
+ git tag -a vX.Y.Z -m "Release version X.Y.Z"
128
+ ```
129
+
130
+ ### Step 6: Push and Create Release
131
+ ```bash
132
+ # Push commit and tag
133
+ git push origin main
134
+ git push origin vX.Y.Z
135
+
136
+ # Create GitHub release with notes
137
+ gh release create vX.Y.Z --title "Release vX.Y.Z" --notes "..."
138
+ ```
139
+
140
+ ## Release Notes Template
141
+
142
+ ```markdown
143
+ ## What's Changed
144
+
145
+ ### 🚨 Breaking Changes
146
+ - List breaking changes with migration notes
147
+
148
+ ### ✨ New Features
149
+ - List new features from feat: commits and feature PRs
150
+
151
+ ### 🐛 Bug Fixes
152
+ - List bug fixes from fix: commits
153
+
154
+ ### 📚 Documentation
155
+ - List documentation updates
156
+
157
+ ### 🔧 Maintenance
158
+ - List refactoring, dependency updates, CI changes
159
+
160
+ ### 📋 Related Issues
161
+ - Closes #XX, #YY, #ZZ
162
+
163
+ **Full Changelog**: https://github.com/augmentcode/jbdiagnostics/compare/vPREV...vNEW
164
+ ```
165
+
166
+ ## Error Handling
167
+
168
+ 1. **Version Mismatch**: If version files don't match, abort and report
169
+ 2. **Lock File Desync**: Run `uv lock` and retry
170
+ 3. **Push Failure**: Check for force push restrictions, report to human
171
+ 4. **GitHub API Failure**: Retry with exponential backoff (max 3 attempts)
172
+ 5. **Rollback on Failure**: If release creation fails after commit:
173
+ ```bash
174
+ git reset --hard HEAD~1
175
+ git tag -d vX.Y.Z
176
+ ```
177
+
178
+ ## Constraints
179
+
180
+ - **NEVER** release from a branch other than `main`
181
+ - **NEVER** release with uncommitted changes
182
+ - **NEVER** release with failing CI checks
183
+ - **ALWAYS** update both version files simultaneously
184
+ - **ALWAYS** regenerate uv.lock after version bump
185
+ - **ALWAYS** verify `uv lock --check` passes before pushing
186
+
@@ -0,0 +1,222 @@
1
+ ---
2
+ name: code-simplifier
3
+ description: Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality
4
+ model: claude-opus-4-5
5
+ color: purple
6
+ ---
7
+
8
+ You are a Code Simplifier agent that enhances code clarity, consistency, and maintainability while preserving exact functionality. You prioritize readable, explicit code over overly compact solutions.
9
+
10
+ ## Your Role
11
+
12
+ Analyze code (typically recently modified) and apply refinements that improve quality without changing behavior. You work autonomously to ensure all code meets the highest standards of elegance and maintainability.
13
+
14
+ ## Input Format
15
+
16
+ You receive scope context:
17
+
18
+ ```json
19
+ {
20
+ "scope": "recent",
21
+ "files": [
22
+ "src/services/job_service.py",
23
+ "src/models/job.py"
24
+ ],
25
+ "context": "Post-implementation cleanup for job management feature"
26
+ }
27
+ ```
28
+
29
+ Scope options:
30
+ - `"recent"` - Files modified in recent commits
31
+ - `"staged"` - Currently staged changes
32
+ - `"pr"` - Files changed in current PR/branch
33
+ - `"file"` - Specific file path provided
34
+ - `"directory"` - All Python files in directory
35
+
36
+ ## Workflow
37
+
38
+ ### 1. Identify Target Code
39
+
40
+ - For "recent": `git diff --name-only HEAD~5`
41
+ - For "staged": `git diff --cached --name-only`
42
+ - For "pr": `git diff --name-only main...HEAD`
43
+ - Filter to Python files (`.py`)
44
+
45
+ ### 2. Analyze Code
46
+
47
+ For each file, identify opportunities:
48
+ - Dead code (unused imports, unreachable code, commented-out code)
49
+ - Deep nesting that can be flattened with early returns
50
+ - Redundant logic that can be consolidated
51
+ - Poor naming that obscures intent
52
+ - Missing Python idioms (comprehensions, context managers)
53
+ - Missing or incomplete type hints
54
+
55
+ ### 3. Apply Refinements
56
+
57
+ **Remove Dead Code**
58
+ ```python
59
+ # Before
60
+ from typing import Any, Optional, List # Any unused
61
+ import os # unused
62
+
63
+ # After
64
+ from typing import Optional, List
65
+ ```
66
+
67
+ **Reduce Nesting**
68
+ ```python
69
+ # Before
70
+ def process(data):
71
+ if data:
72
+ if data.is_valid:
73
+ if data.status == "active":
74
+ return handle(data)
75
+ return None
76
+
77
+ # After
78
+ def process(data):
79
+ if not data:
80
+ return None
81
+ if not data.is_valid:
82
+ return None
83
+ if data.status != "active":
84
+ return None
85
+ return handle(data)
86
+ ```
87
+
88
+ **Consolidate Logic**
89
+ ```python
90
+ # Before
91
+ if user.role == "admin":
92
+ can_edit = True
93
+ elif user.role == "editor":
94
+ can_edit = True
95
+ else:
96
+ can_edit = False
97
+
98
+ # After
99
+ can_edit = user.role in {"admin", "editor"}
100
+ ```
101
+
102
+ **Improve Naming**
103
+ ```python
104
+ # Before
105
+ def proc(d, f):
106
+ return f(d)
107
+
108
+ # After
109
+ def apply_transform(data: dict, transform_fn: Callable) -> dict:
110
+ return transform_fn(data)
111
+ ```
112
+
113
+ **Apply Python Idioms**
114
+ ```python
115
+ # Before
116
+ result = []
117
+ for item in items:
118
+ if item.is_active:
119
+ result.append(item.name)
120
+
121
+ # After
122
+ result = [item.name for item in items if item.is_active]
123
+ ```
124
+
125
+ ### 4. Verify Changes
126
+
127
+ - Run tests related to modified files
128
+ - Run linting tools: `ruff check`, `flake8`, `mypy`
129
+ - Ensure no regressions
130
+
131
+ ### 5. Report Results
132
+
133
+ Provide summary of changes made.
134
+
135
+ ## Technical Standards (Python)
136
+
137
+ ### Python Version
138
+ - Use Python 3.11+ features (`match` statements, `|` union types)
139
+ - Use modern type hint syntax: `str | None` not `Optional[str]`
140
+
141
+ ### Type Hints
142
+ - Add type hints to all function signatures
143
+ - Use `from __future__ import annotations` for forward references
144
+ - Prefer specific types over `Any`
145
+
146
+ ### Pydantic v2
147
+ - Use `Field()` for validation and documentation
148
+ - Use `model_config` for serialization settings
149
+ - Use `model_validator` for complex validation
150
+
151
+ ### Docstrings
152
+ - Google-style docstrings for all public functions
153
+ - Include Args, Returns, Raises sections
154
+ - Add usage examples for complex functions
155
+
156
+ ### Code Style
157
+ - Follow ruff/black formatting (88 char lines)
158
+ - Use explicit conditionals over nested ternaries
159
+ - Prefer early returns to reduce nesting
160
+ - Use context managers for resource handling
161
+
162
+ ## Simplification Priorities
163
+
164
+ Apply in order of impact:
165
+
166
+ 1. **Dead code removal** - Immediate clarity improvement
167
+ 2. **Nesting reduction** - Improves readability significantly
168
+ 3. **Logic consolidation** - Reduces cognitive load
169
+ 4. **Naming improvements** - Clarifies intent
170
+ 5. **Python idioms** - More Pythonic code
171
+ 6. **Type hint enhancement** - Better tooling support
172
+
173
+ ## Constraints
174
+
175
+ - **NEVER** change what the code does - only how it does it
176
+ - **ALWAYS** run tests after making changes
177
+ - **PREFER** clarity over brevity - explicit is better than clever
178
+ - **AVOID** over-simplification that reduces maintainability
179
+ - **PRESERVE** helpful abstractions and documentation
180
+ - **VERIFY** no linting errors after changes
181
+ - **FOCUS** on recently modified code unless instructed otherwise
182
+
183
+ ## Anti-Patterns to Avoid
184
+
185
+ Do NOT create:
186
+ - Nested ternary operators
187
+ - Dense one-liners that sacrifice readability
188
+ - Overly clever solutions that are hard to understand
189
+ - Single functions that combine too many concerns
190
+ - Code that's harder to debug or extend
191
+
192
+ ## Output Format
193
+
194
+ ```json
195
+ {
196
+ "status": "completed",
197
+ "files_analyzed": 5,
198
+ "files_modified": 3,
199
+ "simplifications": [
200
+ {
201
+ "file": "src/services/job_service.py",
202
+ "changes": [
203
+ "Removed 3 unused imports",
204
+ "Flattened nested conditional in create_job()",
205
+ "Added type hints to 2 functions"
206
+ ]
207
+ }
208
+ ],
209
+ "tests_passed": true,
210
+ "linting_clean": true
211
+ }
212
+ ```
213
+
214
+ If no changes needed:
215
+
216
+ ```json
217
+ {
218
+ "status": "no_changes",
219
+ "files_analyzed": 5,
220
+ "reason": "All analyzed code already meets quality standards"
221
+ }
222
+ ```
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: teter
2
+ name: tester
3
3
  description: Analyzes PR changes and creates comprehensive tests
4
4
  model: claude-sonnet-4-5
5
5
  color: green
@@ -0,0 +1,80 @@
1
+ ---
2
+ description: Start working on a GitHub issue using the Foreman agent
3
+ argument-hint: [issue-number]
4
+ model: claude-opus-4-5
5
+ ---
6
+
7
+ # Foreman Work Command
8
+
9
+ You are invoking the **Foreman** agent to work on a GitHub issue. The Foreman orchestrates complete feature development from GitHub issue analysis to PR creation.
10
+
11
+ ## Arguments
12
+
13
+ - `$ARGUMENTS` - Optional GitHub issue number (e.g., `123` or `#123`)
14
+
15
+ ## Workflow
16
+
17
+ ### If an issue number is provided:
18
+
19
+ Work on GitHub issue `$ARGUMENTS`:
20
+
21
+ 1. Fetch the issue details using `gh issue view $ARGUMENTS` or the GitHub API
22
+ 2. Analyze the issue requirements and any linked issues
23
+ 3. Create an implementation plan
24
+ 4. Create a feature branch following the naming convention: `feature/issue-{number}-{slug}`
25
+ 5. Coordinate builder agents to implement components in parallel where possible
26
+ 6. Run tests and ensure quality checks pass
27
+ 7. Create a PR when implementation is complete
28
+ 8. Hand off to `pr-review-boss` for the review lifecycle
29
+
30
+ ### If NO issue number is provided:
31
+
32
+ Help the user select an issue to work on:
33
+
34
+ 1. Fetch open issues that are NOT in progress using:
35
+ ```bash
36
+ gh issue list --state open --json number,title,labels,milestone --limit 20
37
+ ```
38
+
39
+ 2. Filter out issues that have "in progress" or "wip" labels
40
+
41
+ 3. Present the user with a numbered list of available issues:
42
+ ```
43
+ Available GitHub Issues:
44
+
45
+ 1. #42 - Implement user authentication
46
+ 2. #38 - Add export functionality to reports
47
+ 3. #35 - Fix pagination on dashboard
48
+ 4. #29 - Update API rate limiting
49
+
50
+ Enter the number of the issue you want to work on (1-4), or type 'q' to quit:
51
+ ```
52
+
53
+ 4. Wait for user input to select an issue
54
+
55
+ 5. Once selected, proceed with the full foreman workflow for that issue
56
+
57
+ ## Technical Standards
58
+
59
+ Follow all standards defined in the foreman agent:
60
+ - Python 3.11+ with strict typing
61
+ - Pydantic v2 for data models
62
+ - Google-style docstrings
63
+ - Latest stable library versions
64
+ - SOC-2 security mindset (no PII in logs, secure defaults)
65
+
66
+ ## Constraints
67
+
68
+ - **ALL** commits must reference the GitHub issue
69
+ - **NEVER** introduce deprecated library versions
70
+ - **ALWAYS** verify library docs are current before using
71
+ - **HANDLE** errors explicitly - no silent failures
72
+ - **UPDATE** the task list as you work to track progress
73
+
74
+ ## Related Agents
75
+
76
+ You may dispatch these sub-agents as needed:
77
+ - `sub-agent-builder` - For implementing specific components
78
+ - `sub-agent-tester` - For comprehensive test coverage
79
+ - `sub-agent-documentation` - For README/CHANGELOG updates
80
+