bpsai-pair 2.9.2__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 (298) hide show
  1. bpsai_pair-2.9.2/LICENSE +20 -0
  2. bpsai_pair-2.9.2/MANIFEST.in +3 -0
  3. bpsai_pair-2.9.2/PKG-INFO +223 -0
  4. bpsai_pair-2.9.2/README.md +176 -0
  5. bpsai_pair-2.9.2/bpsai_pair/__init__.py +40 -0
  6. bpsai_pair-2.9.2/bpsai_pair/__main__.py +4 -0
  7. bpsai_pair-2.9.2/bpsai_pair/benchmarks/__init__.py +15 -0
  8. bpsai_pair-2.9.2/bpsai_pair/benchmarks/reports.py +260 -0
  9. bpsai_pair-2.9.2/bpsai_pair/benchmarks/runner.py +364 -0
  10. bpsai_pair-2.9.2/bpsai_pair/benchmarks/validation.py +162 -0
  11. bpsai_pair-2.9.2/bpsai_pair/cli.py +210 -0
  12. bpsai_pair-2.9.2/bpsai_pair/commands/__init__.py +60 -0
  13. bpsai_pair-2.9.2/bpsai_pair/commands/audit.py +98 -0
  14. bpsai_pair-2.9.2/bpsai_pair/commands/benchmark.py +193 -0
  15. bpsai_pair-2.9.2/bpsai_pair/commands/budget.py +320 -0
  16. bpsai_pair-2.9.2/bpsai_pair/commands/cache.py +103 -0
  17. bpsai_pair-2.9.2/bpsai_pair/commands/config.py +213 -0
  18. bpsai_pair-2.9.2/bpsai_pair/commands/core.py +968 -0
  19. bpsai_pair-2.9.2/bpsai_pair/commands/mcp.py +127 -0
  20. bpsai_pair-2.9.2/bpsai_pair/commands/metrics.py +547 -0
  21. bpsai_pair-2.9.2/bpsai_pair/commands/orchestrate.py +381 -0
  22. bpsai_pair-2.9.2/bpsai_pair/commands/preset.py +149 -0
  23. bpsai_pair-2.9.2/bpsai_pair/commands/security.py +270 -0
  24. bpsai_pair-2.9.2/bpsai_pair/commands/session.py +990 -0
  25. bpsai_pair-2.9.2/bpsai_pair/commands/state.py +226 -0
  26. bpsai_pair-2.9.2/bpsai_pair/commands/timer.py +199 -0
  27. bpsai_pair-2.9.2/bpsai_pair/commands/upgrade.py +535 -0
  28. bpsai_pair-2.9.2/bpsai_pair/compaction.py +380 -0
  29. bpsai_pair-2.9.2/bpsai_pair/context/__init__.py +6 -0
  30. bpsai_pair-2.9.2/bpsai_pair/context/cache.py +157 -0
  31. bpsai_pair-2.9.2/bpsai_pair/context/loader.py +97 -0
  32. bpsai_pair-2.9.2/bpsai_pair/core/__init__.py +103 -0
  33. bpsai_pair-2.9.2/bpsai_pair/core/bypass_log.py +171 -0
  34. bpsai_pair-2.9.2/bpsai_pair/core/config.py +786 -0
  35. bpsai_pair-2.9.2/bpsai_pair/core/constants.py +69 -0
  36. bpsai_pair-2.9.2/bpsai_pair/core/deprecation.py +188 -0
  37. bpsai_pair-2.9.2/bpsai_pair/core/hooks.py +732 -0
  38. bpsai_pair-2.9.2/bpsai_pair/core/ops.py +573 -0
  39. bpsai_pair-2.9.2/bpsai_pair/core/preconditions.py +319 -0
  40. bpsai_pair-2.9.2/bpsai_pair/core/presets.py +582 -0
  41. bpsai_pair-2.9.2/bpsai_pair/core/routing.py +224 -0
  42. bpsai_pair-2.9.2/bpsai_pair/core/task_state.py +321 -0
  43. bpsai_pair-2.9.2/bpsai_pair/core/utils.py +87 -0
  44. bpsai_pair-2.9.2/bpsai_pair/data/__init__.py +1 -0
  45. bpsai_pair-2.9.2/bpsai_pair/data/__pycache__/__init__.cpython-312.pyc +0 -0
  46. bpsai_pair-2.9.2/bpsai_pair/data/__pycache__/__init__.cpython-314.pyc +0 -0
  47. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/cookiecutter.json +12 -0
  48. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.agentpackignore +19 -0
  49. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agents/planner.md +122 -0
  50. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agents/reviewer.md +177 -0
  51. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agents/security-auditor.md +112 -0
  52. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agents/security.md +236 -0
  53. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/commands/pc-plan.md +33 -0
  54. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/commands/prep-release.md +42 -0
  55. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/commands/start-task.md +35 -0
  56. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/commands/update-skills.md +22 -0
  57. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/hooks/security-review.md +184 -0
  58. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/settings.json +46 -0
  59. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/creating-skills/SKILL.md +153 -0
  60. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/designing-and-implementing/SKILL.md +85 -0
  61. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/finishing-branches/SKILL.md +74 -0
  62. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/implementing-with-tdd/SKILL.md +69 -0
  63. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/managing-task-lifecycle/SKILL.md +365 -0
  64. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/managing-task-lifecycle/reference/all-cli-commands.md +841 -0
  65. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/managing-task-lifecycle/reference/bps-trello-conventions.md +84 -0
  66. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/managing-task-lifecycle/scripts/check_completion.py +113 -0
  67. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/managing-task-lifecycle/scripts/validate_task_status.py +101 -0
  68. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/planning-with-trello/SKILL.md +284 -0
  69. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/reviewing-code/SKILL.md +68 -0
  70. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.editorconfig +17 -0
  71. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/PULL_REQUEST_TEMPLATE.md +47 -0
  72. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/workflows/ci-node.yml +44 -0
  73. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/workflows/ci-python.yml +46 -0
  74. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/workflows/ci.yml +89 -0
  75. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.gitignore +5 -0
  76. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.gitleaks.toml +17 -0
  77. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/capabilities.yaml +327 -0
  78. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/config.yaml +349 -0
  79. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/context/project.md +107 -0
  80. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/context/state.md +67 -0
  81. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/context/workflow.md +168 -0
  82. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/docs/FEATURE_MATRIX.md +536 -0
  83. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/docs/MCP_SETUP.md +63 -0
  84. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/docs/USER_GUIDE.md +1428 -0
  85. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/plans/.gitkeep +2 -0
  86. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/security/allowlist.yaml +132 -0
  87. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/security/sandbox.yaml +49 -0
  88. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/security/secret-allowlist.yaml +105 -0
  89. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/tasks/.gitkeep +2 -0
  90. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.pre-commit-config.yaml +38 -0
  91. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/AGENTS.md +73 -0
  92. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CLAUDE.md +287 -0
  93. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CODEOWNERS +28 -0
  94. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CONTRIBUTING.md +35 -0
  95. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/SECURITY.md +14 -0
  96. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/docs/.gitkeep +10 -0
  97. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/src/.gitkeep +1 -0
  98. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/templates/adr.md +19 -0
  99. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/templates/directory_note.md +17 -0
  100. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/tests/example_contract/README.md +3 -0
  101. bpsai_pair-2.9.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/tests/example_integration/README.md +3 -0
  102. bpsai_pair-2.9.2/bpsai_pair/github/__init__.py +5 -0
  103. bpsai_pair-2.9.2/bpsai_pair/github/client.py +422 -0
  104. bpsai_pair-2.9.2/bpsai_pair/github/commands.py +385 -0
  105. bpsai_pair-2.9.2/bpsai_pair/github/pr.py +571 -0
  106. bpsai_pair-2.9.2/bpsai_pair/init_bundled_cli.py +47 -0
  107. bpsai_pair-2.9.2/bpsai_pair/integrations/__init__.py +21 -0
  108. bpsai_pair-2.9.2/bpsai_pair/integrations/time_tracking.py +336 -0
  109. bpsai_pair-2.9.2/bpsai_pair/integrations/toggl.py +225 -0
  110. bpsai_pair-2.9.2/bpsai_pair/mcp/__init__.py +10 -0
  111. bpsai_pair-2.9.2/bpsai_pair/mcp/server.py +307 -0
  112. bpsai_pair-2.9.2/bpsai_pair/mcp/tools/__init__.py +27 -0
  113. bpsai_pair-2.9.2/bpsai_pair/mcp/tools/context.py +81 -0
  114. bpsai_pair-2.9.2/bpsai_pair/mcp/tools/metrics.py +173 -0
  115. bpsai_pair-2.9.2/bpsai_pair/mcp/tools/orchestration.py +335 -0
  116. bpsai_pair-2.9.2/bpsai_pair/mcp/tools/planning.py +158 -0
  117. bpsai_pair-2.9.2/bpsai_pair/mcp/tools/tasks.py +252 -0
  118. bpsai_pair-2.9.2/bpsai_pair/mcp/tools/trello.py +372 -0
  119. bpsai_pair-2.9.2/bpsai_pair/metrics/__init__.py +55 -0
  120. bpsai_pair-2.9.2/bpsai_pair/metrics/accuracy.py +338 -0
  121. bpsai_pair-2.9.2/bpsai_pair/metrics/budget.py +117 -0
  122. bpsai_pair-2.9.2/bpsai_pair/metrics/burndown.py +240 -0
  123. bpsai_pair-2.9.2/bpsai_pair/metrics/collector.py +392 -0
  124. bpsai_pair-2.9.2/bpsai_pair/metrics/estimation.py +756 -0
  125. bpsai_pair-2.9.2/bpsai_pair/metrics/reports.py +230 -0
  126. bpsai_pair-2.9.2/bpsai_pair/metrics/velocity.py +319 -0
  127. bpsai_pair-2.9.2/bpsai_pair/migrate.py +389 -0
  128. bpsai_pair-2.9.2/bpsai_pair/orchestration/__init__.py +95 -0
  129. bpsai_pair-2.9.2/bpsai_pair/orchestration/agent_selector.py +446 -0
  130. bpsai_pair-2.9.2/bpsai_pair/orchestration/autonomous.py +620 -0
  131. bpsai_pair-2.9.2/bpsai_pair/orchestration/codex.py +383 -0
  132. bpsai_pair-2.9.2/bpsai_pair/orchestration/handoff.py +904 -0
  133. bpsai_pair-2.9.2/bpsai_pair/orchestration/headless.py +310 -0
  134. bpsai_pair-2.9.2/bpsai_pair/orchestration/invoker.py +420 -0
  135. bpsai_pair-2.9.2/bpsai_pair/orchestration/orchestrator.py +701 -0
  136. bpsai_pair-2.9.2/bpsai_pair/orchestration/planner.py +463 -0
  137. bpsai_pair-2.9.2/bpsai_pair/orchestration/reviewer.py +642 -0
  138. bpsai_pair-2.9.2/bpsai_pair/orchestration/security.py +753 -0
  139. bpsai_pair-2.9.2/bpsai_pair/orchestration/workflow_guide.py +372 -0
  140. bpsai_pair-2.9.2/bpsai_pair/planning/__init__.py +29 -0
  141. bpsai_pair-2.9.2/bpsai_pair/planning/auto_assign.py +222 -0
  142. bpsai_pair-2.9.2/bpsai_pair/planning/cli_update_cache.py +153 -0
  143. bpsai_pair-2.9.2/bpsai_pair/planning/commands.py +2138 -0
  144. bpsai_pair-2.9.2/bpsai_pair/planning/intent_detection.py +415 -0
  145. bpsai_pair-2.9.2/bpsai_pair/planning/models.py +409 -0
  146. bpsai_pair-2.9.2/bpsai_pair/planning/parser.py +407 -0
  147. bpsai_pair-2.9.2/bpsai_pair/planning/standup.py +351 -0
  148. bpsai_pair-2.9.2/bpsai_pair/planning/state.py +374 -0
  149. bpsai_pair-2.9.2/bpsai_pair/planning/token_estimator.py +385 -0
  150. bpsai_pair-2.9.2/bpsai_pair/release/__init__.py +19 -0
  151. bpsai_pair-2.9.2/bpsai_pair/release/commands.py +610 -0
  152. bpsai_pair-2.9.2/bpsai_pair/release/template.py +214 -0
  153. bpsai_pair-2.9.2/bpsai_pair/security/__init__.py +105 -0
  154. bpsai_pair-2.9.2/bpsai_pair/security/allowlist.py +409 -0
  155. bpsai_pair-2.9.2/bpsai_pair/security/checkpoint.py +523 -0
  156. bpsai_pair-2.9.2/bpsai_pair/security/containment.py +451 -0
  157. bpsai_pair-2.9.2/bpsai_pair/security/dependencies.py +601 -0
  158. bpsai_pair-2.9.2/bpsai_pair/security/network.py +138 -0
  159. bpsai_pair-2.9.2/bpsai_pair/security/review.py +612 -0
  160. bpsai_pair-2.9.2/bpsai_pair/security/sandbox.py +801 -0
  161. bpsai_pair-2.9.2/bpsai_pair/security/secrets.py +540 -0
  162. bpsai_pair-2.9.2/bpsai_pair/session.py +279 -0
  163. bpsai_pair-2.9.2/bpsai_pair/skills/__init__.py +142 -0
  164. bpsai_pair-2.9.2/bpsai_pair/skills/classifier.py +640 -0
  165. bpsai_pair-2.9.2/bpsai_pair/skills/cli_commands.py +1529 -0
  166. bpsai_pair-2.9.2/bpsai_pair/skills/exporter.py +550 -0
  167. bpsai_pair-2.9.2/bpsai_pair/skills/gap_detector.py +501 -0
  168. bpsai_pair-2.9.2/bpsai_pair/skills/gates.py +723 -0
  169. bpsai_pair-2.9.2/bpsai_pair/skills/generator.py +468 -0
  170. bpsai_pair-2.9.2/bpsai_pair/skills/installer.py +465 -0
  171. bpsai_pair-2.9.2/bpsai_pair/skills/scorer.py +559 -0
  172. bpsai_pair-2.9.2/bpsai_pair/skills/subagent_detector.py +714 -0
  173. bpsai_pair-2.9.2/bpsai_pair/skills/suggestion.py +669 -0
  174. bpsai_pair-2.9.2/bpsai_pair/skills/validator.py +360 -0
  175. bpsai_pair-2.9.2/bpsai_pair/sprint/__init__.py +12 -0
  176. bpsai_pair-2.9.2/bpsai_pair/sprint/commands.py +239 -0
  177. bpsai_pair-2.9.2/bpsai_pair/tasks/__init__.py +15 -0
  178. bpsai_pair-2.9.2/bpsai_pair/tasks/archiver.py +307 -0
  179. bpsai_pair-2.9.2/bpsai_pair/tasks/changelog.py +180 -0
  180. bpsai_pair-2.9.2/bpsai_pair/tasks/lifecycle.py +196 -0
  181. bpsai_pair-2.9.2/bpsai_pair/tokens.py +291 -0
  182. bpsai_pair-2.9.2/bpsai_pair/trello/__init__.py +33 -0
  183. bpsai_pair-2.9.2/bpsai_pair/trello/activity.py +287 -0
  184. bpsai_pair-2.9.2/bpsai_pair/trello/auth.py +63 -0
  185. bpsai_pair-2.9.2/bpsai_pair/trello/client.py +963 -0
  186. bpsai_pair-2.9.2/bpsai_pair/trello/commands.py +874 -0
  187. bpsai_pair-2.9.2/bpsai_pair/trello/fields.py +416 -0
  188. bpsai_pair-2.9.2/bpsai_pair/trello/list_resolver.py +258 -0
  189. bpsai_pair-2.9.2/bpsai_pair/trello/progress.py +225 -0
  190. bpsai_pair-2.9.2/bpsai_pair/trello/sync.py +1182 -0
  191. bpsai_pair-2.9.2/bpsai_pair/trello/task_commands.py +976 -0
  192. bpsai_pair-2.9.2/bpsai_pair/trello/templates.py +339 -0
  193. bpsai_pair-2.9.2/bpsai_pair/trello/webhook.py +475 -0
  194. bpsai_pair-2.9.2/bpsai_pair/trello/webhook_commands.py +260 -0
  195. bpsai_pair-2.9.2/bpsai_pair.egg-info/PKG-INFO +223 -0
  196. bpsai_pair-2.9.2/bpsai_pair.egg-info/SOURCES.txt +296 -0
  197. bpsai_pair-2.9.2/bpsai_pair.egg-info/dependency_links.txt +1 -0
  198. bpsai_pair-2.9.2/bpsai_pair.egg-info/entry_points.txt +3 -0
  199. bpsai_pair-2.9.2/bpsai_pair.egg-info/requires.txt +22 -0
  200. bpsai_pair-2.9.2/bpsai_pair.egg-info/top_level.txt +1 -0
  201. bpsai_pair-2.9.2/pyproject.toml +99 -0
  202. bpsai_pair-2.9.2/setup.cfg +4 -0
  203. bpsai_pair-2.9.2/tests/test_accuracy.py +319 -0
  204. bpsai_pair-2.9.2/tests/test_agent_selection.py +573 -0
  205. bpsai_pair-2.9.2/tests/test_auto_assign.py +183 -0
  206. bpsai_pair-2.9.2/tests/test_autonomous_workflow.py +242 -0
  207. bpsai_pair-2.9.2/tests/test_benchmarks.py +379 -0
  208. bpsai_pair-2.9.2/tests/test_budget_commands.py +265 -0
  209. bpsai_pair-2.9.2/tests/test_burndown.py +454 -0
  210. bpsai_pair-2.9.2/tests/test_bypass_log.py +174 -0
  211. bpsai_pair-2.9.2/tests/test_cache.py +252 -0
  212. bpsai_pair-2.9.2/tests/test_claude_native.py +173 -0
  213. bpsai_pair-2.9.2/tests/test_cli.py +626 -0
  214. bpsai_pair-2.9.2/tests/test_compaction.py +248 -0
  215. bpsai_pair-2.9.2/tests/test_config.py +238 -0
  216. bpsai_pair-2.9.2/tests/test_config_v2.py +38 -0
  217. bpsai_pair-2.9.2/tests/test_constants.py +149 -0
  218. bpsai_pair-2.9.2/tests/test_contained_auto.py +548 -0
  219. bpsai_pair-2.9.2/tests/test_containment_status.py +489 -0
  220. bpsai_pair-2.9.2/tests/test_context_sync.py +52 -0
  221. bpsai_pair-2.9.2/tests/test_core_module.py +55 -0
  222. bpsai_pair-2.9.2/tests/test_estimation.py +1168 -0
  223. bpsai_pair-2.9.2/tests/test_feature_branch_type.py +36 -0
  224. bpsai_pair-2.9.2/tests/test_flow_cli.py +207 -0
  225. bpsai_pair-2.9.2/tests/test_flow_deprecation.py +236 -0
  226. bpsai_pair-2.9.2/tests/test_flows.py +601 -0
  227. bpsai_pair-2.9.2/tests/test_flows_to_skills_migration.py +247 -0
  228. bpsai_pair-2.9.2/tests/test_gap_classifier.py +399 -0
  229. bpsai_pair-2.9.2/tests/test_github.py +390 -0
  230. bpsai_pair-2.9.2/tests/test_handoff_protocol.py +543 -0
  231. bpsai_pair-2.9.2/tests/test_hooks.py +664 -0
  232. bpsai_pair-2.9.2/tests/test_intent_detection.py +279 -0
  233. bpsai_pair-2.9.2/tests/test_invoker.py +510 -0
  234. bpsai_pair-2.9.2/tests/test_lifecycle.py +435 -0
  235. bpsai_pair-2.9.2/tests/test_list_resolver.py +419 -0
  236. bpsai_pair-2.9.2/tests/test_manual_edit_detection.py +340 -0
  237. bpsai_pair-2.9.2/tests/test_mcp_hooks.py +200 -0
  238. bpsai_pair-2.9.2/tests/test_mcp_server.py +99 -0
  239. bpsai_pair-2.9.2/tests/test_mcp_tools.py +233 -0
  240. bpsai_pair-2.9.2/tests/test_mcp_tools_planning.py +113 -0
  241. bpsai_pair-2.9.2/tests/test_mcp_tools_planning_full.py +841 -0
  242. bpsai_pair-2.9.2/tests/test_mcp_tools_tasks.py +88 -0
  243. bpsai_pair-2.9.2/tests/test_mcp_tools_trello.py +964 -0
  244. bpsai_pair-2.9.2/tests/test_metrics.py +373 -0
  245. bpsai_pair-2.9.2/tests/test_migrate.py +321 -0
  246. bpsai_pair-2.9.2/tests/test_ops.py +161 -0
  247. bpsai_pair-2.9.2/tests/test_orchestration.py +393 -0
  248. bpsai_pair-2.9.2/tests/test_pack_preview.py +51 -0
  249. bpsai_pair-2.9.2/tests/test_plan_estimate.py +461 -0
  250. bpsai_pair-2.9.2/tests/test_plan_sync_trello_e2e.py +605 -0
  251. bpsai_pair-2.9.2/tests/test_planner_agent.py +541 -0
  252. bpsai_pair-2.9.2/tests/test_preconditions.py +262 -0
  253. bpsai_pair-2.9.2/tests/test_presets.py +390 -0
  254. bpsai_pair-2.9.2/tests/test_progress.py +192 -0
  255. bpsai_pair-2.9.2/tests/test_pyutils.py +136 -0
  256. bpsai_pair-2.9.2/tests/test_release_prep.py +259 -0
  257. bpsai_pair-2.9.2/tests/test_reviewer_agent.py +587 -0
  258. bpsai_pair-2.9.2/tests/test_routing.py +226 -0
  259. bpsai_pair-2.9.2/tests/test_security_agent.py +627 -0
  260. bpsai_pair-2.9.2/tests/test_security_allowlist.py +387 -0
  261. bpsai_pair-2.9.2/tests/test_security_checkpoint.py +664 -0
  262. bpsai_pair-2.9.2/tests/test_security_dependencies.py +725 -0
  263. bpsai_pair-2.9.2/tests/test_security_review.py +594 -0
  264. bpsai_pair-2.9.2/tests/test_security_sandbox.py +928 -0
  265. bpsai_pair-2.9.2/tests/test_security_secrets.py +821 -0
  266. bpsai_pair-2.9.2/tests/test_session.py +594 -0
  267. bpsai_pair-2.9.2/tests/test_skill_exporter.py +874 -0
  268. bpsai_pair-2.9.2/tests/test_skill_gap_detection.py +494 -0
  269. bpsai_pair-2.9.2/tests/test_skill_gates.py +397 -0
  270. bpsai_pair-2.9.2/tests/test_skill_generator.py +511 -0
  271. bpsai_pair-2.9.2/tests/test_skill_installer.py +494 -0
  272. bpsai_pair-2.9.2/tests/test_skill_scorer.py +518 -0
  273. bpsai_pair-2.9.2/tests/test_skill_suggestion.py +458 -0
  274. bpsai_pair-2.9.2/tests/test_skill_validator.py +375 -0
  275. bpsai_pair-2.9.2/tests/test_standup.py +308 -0
  276. bpsai_pair-2.9.2/tests/test_state_check.py +193 -0
  277. bpsai_pair-2.9.2/tests/test_subagent_detector.py +336 -0
  278. bpsai_pair-2.9.2/tests/test_task_state.py +256 -0
  279. bpsai_pair-2.9.2/tests/test_task_update_enforcement.py +243 -0
  280. bpsai_pair-2.9.2/tests/test_template.py +278 -0
  281. bpsai_pair-2.9.2/tests/test_template_check.py +231 -0
  282. bpsai_pair-2.9.2/tests/test_time_tracking.py +390 -0
  283. bpsai_pair-2.9.2/tests/test_tokens.py +289 -0
  284. bpsai_pair-2.9.2/tests/test_trello_activity.py +271 -0
  285. bpsai_pair-2.9.2/tests/test_trello_auth.py +138 -0
  286. bpsai_pair-2.9.2/tests/test_trello_client.py +655 -0
  287. bpsai_pair-2.9.2/tests/test_trello_fields.py +374 -0
  288. bpsai_pair-2.9.2/tests/test_trello_sync.py +2211 -0
  289. bpsai_pair-2.9.2/tests/test_trello_templates.py +349 -0
  290. bpsai_pair-2.9.2/tests/test_ttask_done_ac_verification.py +401 -0
  291. bpsai_pair-2.9.2/tests/test_ttask_done_sync.py +297 -0
  292. bpsai_pair-2.9.2/tests/test_ttask_start_budget.py +310 -0
  293. bpsai_pair-2.9.2/tests/test_upgrade.py +326 -0
  294. bpsai_pair-2.9.2/tests/test_utils.py +70 -0
  295. bpsai_pair-2.9.2/tests/test_velocity.py +380 -0
  296. bpsai_pair-2.9.2/tests/test_version.py +94 -0
  297. bpsai_pair-2.9.2/tests/test_webhook.py +409 -0
  298. bpsai_pair-2.9.2/tests/test_workflow_guide.py +415 -0
@@ -0,0 +1,20 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 BPS AI Software
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
9
+ of the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
16
+ INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
17
+ PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
19
+ CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
20
+ OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,3 @@
1
+ include LICENSE
2
+ include README.md
3
+ recursive-include bpsai_pair/data *
@@ -0,0 +1,223 @@
1
+ Metadata-Version: 2.4
2
+ Name: bpsai-pair
3
+ Version: 2.9.2
4
+ Summary: AI-augmented pair programming framework with 127+ CLI commands for planning, orchestration, Trello/GitHub integration, and autonomous workflows
5
+ Author-email: BPS AI Software <dev@bpsai.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/BPSAI/paircoder
8
+ Project-URL: Documentation, https://github.com/BPSAI/paircoder#readme
9
+ Project-URL: Repository, https://github.com/BPSAI/paircoder
10
+ Project-URL: Issues, https://github.com/BPSAI/paircoder/issues
11
+ Project-URL: Changelog, https://github.com/BPSAI/paircoder/blob/main/CHANGELOG.md
12
+ Keywords: ai,pair-programming,cli,claude,gpt,codex,gemini,mcp,trello,github,autonomous,workflow,planning,tasks
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Environment :: Console
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Topic :: Software Development
22
+ Classifier: Topic :: Software Development :: Build Tools
23
+ Classifier: Topic :: Software Development :: Version Control :: Git
24
+ Classifier: Typing :: Typed
25
+ Requires-Python: >=3.11
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ Requires-Dist: typer>=0.12
29
+ Requires-Dist: rich>=13.7
30
+ Requires-Dist: pyyaml>=6.0
31
+ Requires-Dist: tiktoken>=0.5.0
32
+ Provides-Extra: trello
33
+ Requires-Dist: py-trello>=0.19.0; extra == "trello"
34
+ Provides-Extra: mcp
35
+ Requires-Dist: mcp>=1.0.0; extra == "mcp"
36
+ Provides-Extra: docs
37
+ Requires-Dist: sphinx>=7.0; extra == "docs"
38
+ Requires-Dist: sphinx-rtd-theme>=2.0; extra == "docs"
39
+ Requires-Dist: sphinx-autodoc-typehints>=2.0; extra == "docs"
40
+ Requires-Dist: sphinx-copybutton>=0.5; extra == "docs"
41
+ Requires-Dist: myst-parser>=2.0; extra == "docs"
42
+ Requires-Dist: sphinx-click>=5.0; extra == "docs"
43
+ Provides-Extra: sandbox
44
+ Requires-Dist: docker>=7.0.0; extra == "sandbox"
45
+ Requires-Dist: dockerpty>=0.4.1; extra == "sandbox"
46
+ Dynamic: license-file
47
+
48
+ # PairCoder — AI-Augmented Pair Programming Framework
49
+
50
+ [![PyPI version](https://badge.fury.io/py/bpsai-pair.svg)](https://badge.fury.io/py/bpsai-pair)
51
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
52
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
53
+
54
+ PairCoder is a **repo-native toolkit** for pairing with AI coding agents (Claude, GPT, Codex, Gemini). It standardizes project memory in `.paircoder/`, provides structured workflows via skills, and ships a CLI with **127+ commands** to orchestrate the entire development lifecycle.
55
+
56
+ ## Key Features
57
+
58
+ | Feature | Description |
59
+ |---------|-------------|
60
+ | **Planning System** | Plans, sprints, tasks with YAML+MD format |
61
+ | **Skills** | Claude Code native skills with cross-platform export |
62
+ | **Orchestration** | Multi-agent coordination, model routing by complexity |
63
+ | **Autonomous Workflow** | Auto-session for hands-off task execution |
64
+ | **Contained Autonomy** | Docker-enforced isolation with three-tier access control |
65
+ | **Presets** | 8 built-in presets (python-cli, bps, autonomous, etc.) |
66
+ | **GitHub Integration** | Auto-PR creation, task-linked PRs, archive on merge |
67
+ | **Trello Integration** | Board/card management, progress comments, webhooks |
68
+ | **Standup Generation** | Daily summaries in markdown/slack/trello formats |
69
+ | **Metrics** | Token tracking, cost estimation, budget enforcement |
70
+ | **Time Tracking** | Built-in timer with Toggl integration |
71
+ | **MCP Server** | 13 tools for autonomous agent operation |
72
+ | **Auto-Hooks** | Automatic Trello sync and state updates on task changes |
73
+
74
+ ## Quick Start
75
+
76
+ ### Install
77
+
78
+ ```bash
79
+ pip install bpsai-pair
80
+ bpsai-pair --version
81
+ ```
82
+
83
+ ### Initialize a Project
84
+
85
+ ```bash
86
+ # New project with preset
87
+ bpsai-pair init my-project --preset python-cli
88
+ cd my-project
89
+
90
+ # List available presets
91
+ bpsai-pair preset list
92
+
93
+ # Initialize with BPS Trello workflow
94
+ bpsai-pair init my-project --preset bps
95
+
96
+ # Existing project
97
+ cd your-project
98
+ bpsai-pair init .
99
+ ```
100
+
101
+ ### Optional Dependencies
102
+
103
+ ```bash
104
+ # For MCP/Claude Desktop integration
105
+ pip install 'bpsai-pair[mcp]'
106
+
107
+ # For Trello integration
108
+ pip install 'bpsai-pair[trello]'
109
+
110
+ # For Docker sandbox (contained autonomy)
111
+ pip install 'bpsai-pair[sandbox]'
112
+
113
+ # All extras
114
+ pip install 'bpsai-pair[mcp,trello,sandbox]'
115
+ ```
116
+
117
+ ## Project Structure
118
+
119
+ After initialization, your project will have:
120
+
121
+ ```
122
+ my-project/
123
+ ├── .paircoder/ # PairCoder data
124
+ │ ├── config.yaml # Project configuration
125
+ │ ├── capabilities.yaml # LLM capability manifest
126
+ │ ├── context/ # Project context files
127
+ │ │ ├── project.md # Project overview
128
+ │ │ ├── workflow.md # Workflow guidelines
129
+ │ │ └── state.md # Current state
130
+ │ ├── plans/ # Plan files (.plan.yaml)
131
+ │ ├── tasks/ # Task files (.task.md)
132
+ │ └── history/ # Archives, metrics
133
+ ├── .claude/ # Claude Code native
134
+ │ ├── skills/ # Model-invoked skills
135
+ │ ├── agents/ # Custom subagents
136
+ │ └── commands/ # Slash commands
137
+ ├── AGENTS.md # Universal AI entry point
138
+ └── CLAUDE.md # Claude Code instructions
139
+ ```
140
+
141
+ ## CLI Commands (127+)
142
+
143
+ ### Core Commands
144
+
145
+ | Command | Description |
146
+ |---------|-------------|
147
+ | `init [path] [--preset]` | Initialize repo with PairCoder structure |
148
+ | `feature <name>` | Create feature branch with context |
149
+ | `pack [--lite]` | Package context for AI agents |
150
+ | `context-sync` | Update the context loop |
151
+ | `status` | Show current context and recent changes |
152
+ | `validate` | Check repo structure and consistency |
153
+
154
+ ### Planning & Tasks
155
+
156
+ | Command | Description |
157
+ |---------|-------------|
158
+ | `plan new <slug>` | Create a new plan |
159
+ | `plan list` | List all plans |
160
+ | `plan show <id>` | Show plan details |
161
+ | `plan status [id]` | Show progress with task breakdown |
162
+ | `task list` | List all tasks |
163
+ | `task update <id> --status` | Update task status (fires hooks) |
164
+
165
+ ### Trello Integration
166
+
167
+ | Command | Description |
168
+ |---------|-------------|
169
+ | `trello connect` | Connect to Trello (store credentials) |
170
+ | `trello boards` | List available boards |
171
+ | `ttask list` | List tasks from board |
172
+ | `ttask start <id>` | Start working on a task |
173
+ | `ttask done <id>` | Complete task with summary |
174
+
175
+ ### MCP Server
176
+
177
+ | Command | Description |
178
+ |---------|-------------|
179
+ | `mcp serve` | Start MCP server (stdio transport) |
180
+ | `mcp tools` | List available tools |
181
+ | `mcp test <tool>` | Test a tool locally |
182
+
183
+ ### Contained Autonomy
184
+
185
+ | Command | Description |
186
+ |---------|-------------|
187
+ | `contained-auto [task]` | Start contained autonomous session |
188
+ | `containment status` | Show containment mode and protected paths |
189
+ | `containment rollback` | Rollback to checkpoint |
190
+
191
+ ## Skills System
192
+
193
+ PairCoder provides Claude Code native skills in `.claude/skills/`:
194
+
195
+ - **designing-and-implementing** — Feature development workflow
196
+ - **implementing-with-tdd** — Test-driven development
197
+ - **reviewing-code** — Code review workflow
198
+ - **finishing-branches** — Branch completion
199
+ - **managing-task-lifecycle** — Task workflow with Trello
200
+ - **planning-with-trello** — Planning with Trello integration
201
+ - **releasing-versions** — Release preparation workflow
202
+
203
+ Export skills to other platforms:
204
+ ```bash
205
+ bpsai-pair skill export --format cursor # Export to Cursor
206
+ bpsai-pair skill export --format continue # Export to Continue.dev
207
+ bpsai-pair skill export --format all # Export to all platforms
208
+ ```
209
+
210
+ ## Documentation
211
+
212
+ - [Full Documentation](https://github.com/BPSAI/paircoder#readme) — Complete guide with all 127+ commands
213
+ - [User Guide](https://github.com/BPSAI/paircoder/blob/main/.paircoder/docs/USER_GUIDE.md) — Getting started guide
214
+ - [Feature Matrix](https://github.com/BPSAI/paircoder/blob/main/.paircoder/docs/FEATURE_MATRIX.md) — Complete feature inventory
215
+ - [Contained Autonomy](https://github.com/BPSAI/paircoder/blob/main/docs/CONTAINED_AUTONOMY.md) — Docker isolation guide
216
+
217
+ ## License
218
+
219
+ MIT License — see [LICENSE](https://github.com/BPSAI/paircoder/blob/main/LICENSE) for details.
220
+
221
+ ## Contributing
222
+
223
+ Contributions welcome! See our [Contributing Guide](https://github.com/BPSAI/paircoder/blob/main/CONTRIBUTING.md).
@@ -0,0 +1,176 @@
1
+ # PairCoder — AI-Augmented Pair Programming Framework
2
+
3
+ [![PyPI version](https://badge.fury.io/py/bpsai-pair.svg)](https://badge.fury.io/py/bpsai-pair)
4
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+
7
+ PairCoder is a **repo-native toolkit** for pairing with AI coding agents (Claude, GPT, Codex, Gemini). It standardizes project memory in `.paircoder/`, provides structured workflows via skills, and ships a CLI with **127+ commands** to orchestrate the entire development lifecycle.
8
+
9
+ ## Key Features
10
+
11
+ | Feature | Description |
12
+ |---------|-------------|
13
+ | **Planning System** | Plans, sprints, tasks with YAML+MD format |
14
+ | **Skills** | Claude Code native skills with cross-platform export |
15
+ | **Orchestration** | Multi-agent coordination, model routing by complexity |
16
+ | **Autonomous Workflow** | Auto-session for hands-off task execution |
17
+ | **Contained Autonomy** | Docker-enforced isolation with three-tier access control |
18
+ | **Presets** | 8 built-in presets (python-cli, bps, autonomous, etc.) |
19
+ | **GitHub Integration** | Auto-PR creation, task-linked PRs, archive on merge |
20
+ | **Trello Integration** | Board/card management, progress comments, webhooks |
21
+ | **Standup Generation** | Daily summaries in markdown/slack/trello formats |
22
+ | **Metrics** | Token tracking, cost estimation, budget enforcement |
23
+ | **Time Tracking** | Built-in timer with Toggl integration |
24
+ | **MCP Server** | 13 tools for autonomous agent operation |
25
+ | **Auto-Hooks** | Automatic Trello sync and state updates on task changes |
26
+
27
+ ## Quick Start
28
+
29
+ ### Install
30
+
31
+ ```bash
32
+ pip install bpsai-pair
33
+ bpsai-pair --version
34
+ ```
35
+
36
+ ### Initialize a Project
37
+
38
+ ```bash
39
+ # New project with preset
40
+ bpsai-pair init my-project --preset python-cli
41
+ cd my-project
42
+
43
+ # List available presets
44
+ bpsai-pair preset list
45
+
46
+ # Initialize with BPS Trello workflow
47
+ bpsai-pair init my-project --preset bps
48
+
49
+ # Existing project
50
+ cd your-project
51
+ bpsai-pair init .
52
+ ```
53
+
54
+ ### Optional Dependencies
55
+
56
+ ```bash
57
+ # For MCP/Claude Desktop integration
58
+ pip install 'bpsai-pair[mcp]'
59
+
60
+ # For Trello integration
61
+ pip install 'bpsai-pair[trello]'
62
+
63
+ # For Docker sandbox (contained autonomy)
64
+ pip install 'bpsai-pair[sandbox]'
65
+
66
+ # All extras
67
+ pip install 'bpsai-pair[mcp,trello,sandbox]'
68
+ ```
69
+
70
+ ## Project Structure
71
+
72
+ After initialization, your project will have:
73
+
74
+ ```
75
+ my-project/
76
+ ├── .paircoder/ # PairCoder data
77
+ │ ├── config.yaml # Project configuration
78
+ │ ├── capabilities.yaml # LLM capability manifest
79
+ │ ├── context/ # Project context files
80
+ │ │ ├── project.md # Project overview
81
+ │ │ ├── workflow.md # Workflow guidelines
82
+ │ │ └── state.md # Current state
83
+ │ ├── plans/ # Plan files (.plan.yaml)
84
+ │ ├── tasks/ # Task files (.task.md)
85
+ │ └── history/ # Archives, metrics
86
+ ├── .claude/ # Claude Code native
87
+ │ ├── skills/ # Model-invoked skills
88
+ │ ├── agents/ # Custom subagents
89
+ │ └── commands/ # Slash commands
90
+ ├── AGENTS.md # Universal AI entry point
91
+ └── CLAUDE.md # Claude Code instructions
92
+ ```
93
+
94
+ ## CLI Commands (127+)
95
+
96
+ ### Core Commands
97
+
98
+ | Command | Description |
99
+ |---------|-------------|
100
+ | `init [path] [--preset]` | Initialize repo with PairCoder structure |
101
+ | `feature <name>` | Create feature branch with context |
102
+ | `pack [--lite]` | Package context for AI agents |
103
+ | `context-sync` | Update the context loop |
104
+ | `status` | Show current context and recent changes |
105
+ | `validate` | Check repo structure and consistency |
106
+
107
+ ### Planning & Tasks
108
+
109
+ | Command | Description |
110
+ |---------|-------------|
111
+ | `plan new <slug>` | Create a new plan |
112
+ | `plan list` | List all plans |
113
+ | `plan show <id>` | Show plan details |
114
+ | `plan status [id]` | Show progress with task breakdown |
115
+ | `task list` | List all tasks |
116
+ | `task update <id> --status` | Update task status (fires hooks) |
117
+
118
+ ### Trello Integration
119
+
120
+ | Command | Description |
121
+ |---------|-------------|
122
+ | `trello connect` | Connect to Trello (store credentials) |
123
+ | `trello boards` | List available boards |
124
+ | `ttask list` | List tasks from board |
125
+ | `ttask start <id>` | Start working on a task |
126
+ | `ttask done <id>` | Complete task with summary |
127
+
128
+ ### MCP Server
129
+
130
+ | Command | Description |
131
+ |---------|-------------|
132
+ | `mcp serve` | Start MCP server (stdio transport) |
133
+ | `mcp tools` | List available tools |
134
+ | `mcp test <tool>` | Test a tool locally |
135
+
136
+ ### Contained Autonomy
137
+
138
+ | Command | Description |
139
+ |---------|-------------|
140
+ | `contained-auto [task]` | Start contained autonomous session |
141
+ | `containment status` | Show containment mode and protected paths |
142
+ | `containment rollback` | Rollback to checkpoint |
143
+
144
+ ## Skills System
145
+
146
+ PairCoder provides Claude Code native skills in `.claude/skills/`:
147
+
148
+ - **designing-and-implementing** — Feature development workflow
149
+ - **implementing-with-tdd** — Test-driven development
150
+ - **reviewing-code** — Code review workflow
151
+ - **finishing-branches** — Branch completion
152
+ - **managing-task-lifecycle** — Task workflow with Trello
153
+ - **planning-with-trello** — Planning with Trello integration
154
+ - **releasing-versions** — Release preparation workflow
155
+
156
+ Export skills to other platforms:
157
+ ```bash
158
+ bpsai-pair skill export --format cursor # Export to Cursor
159
+ bpsai-pair skill export --format continue # Export to Continue.dev
160
+ bpsai-pair skill export --format all # Export to all platforms
161
+ ```
162
+
163
+ ## Documentation
164
+
165
+ - [Full Documentation](https://github.com/BPSAI/paircoder#readme) — Complete guide with all 127+ commands
166
+ - [User Guide](https://github.com/BPSAI/paircoder/blob/main/.paircoder/docs/USER_GUIDE.md) — Getting started guide
167
+ - [Feature Matrix](https://github.com/BPSAI/paircoder/blob/main/.paircoder/docs/FEATURE_MATRIX.md) — Complete feature inventory
168
+ - [Contained Autonomy](https://github.com/BPSAI/paircoder/blob/main/docs/CONTAINED_AUTONOMY.md) — Docker isolation guide
169
+
170
+ ## License
171
+
172
+ MIT License — see [LICENSE](https://github.com/BPSAI/paircoder/blob/main/LICENSE) for details.
173
+
174
+ ## Contributing
175
+
176
+ Contributions welcome! See our [Contributing Guide](https://github.com/BPSAI/paircoder/blob/main/CONTRIBUTING.md).
@@ -0,0 +1,40 @@
1
+ """bpsai_pair package"""
2
+ try:
3
+ from importlib.metadata import version, PackageNotFoundError
4
+ __version__ = version("bpsai-pair")
5
+ except PackageNotFoundError:
6
+ __version__ = "dev"
7
+
8
+ # Core modules
9
+ from . import cli
10
+ from .core import config # Moved to core/ in T24.2
11
+ from .core import utils # Merged utils/pyutils/jsonio to core/ in T24.7
12
+
13
+ # Feature modules (public API)
14
+ from . import planning
15
+ from . import tasks
16
+ from . import trello
17
+ from . import github
18
+ from . import metrics
19
+ from . import orchestration
20
+ from . import mcp
21
+ from . import context
22
+ from .core import presets # Moved to core/ in T24.6
23
+
24
+ __all__ = [
25
+ "__version__",
26
+ # Core
27
+ "cli",
28
+ "config",
29
+ "utils",
30
+ # Features
31
+ "planning",
32
+ "tasks",
33
+ "trello",
34
+ "github",
35
+ "metrics",
36
+ "orchestration",
37
+ "mcp",
38
+ "context",
39
+ "presets",
40
+ ]
@@ -0,0 +1,4 @@
1
+ from .cli import app
2
+
3
+ if __name__ == "__main__":
4
+ app()
@@ -0,0 +1,15 @@
1
+ """Benchmarking framework module."""
2
+
3
+ from .runner import BenchmarkRunner, BenchmarkResult, BenchmarkConfig
4
+ from .validation import BenchmarkValidator, ValidationResult
5
+ from .reports import BenchmarkReporter, BenchmarkComparison
6
+
7
+ __all__ = [
8
+ "BenchmarkRunner",
9
+ "BenchmarkResult",
10
+ "BenchmarkConfig",
11
+ "BenchmarkValidator",
12
+ "ValidationResult",
13
+ "BenchmarkReporter",
14
+ "BenchmarkComparison",
15
+ ]