open-codev-workflow 0.1.4__tar.gz → 0.4.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 (187) hide show
  1. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/LICENSE +1 -1
  2. open_codev_workflow-0.4.0/PKG-INFO +137 -0
  3. open_codev_workflow-0.4.0/README.md +107 -0
  4. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/pyproject.toml +20 -9
  5. open_codev_workflow-0.4.0/src/codev_workflow/__init__.py +33 -0
  6. open_codev_workflow-0.4.0/src/codev_workflow/__main__.py +32 -0
  7. open_codev_workflow-0.4.0/src/codev_workflow/adapter.py +229 -0
  8. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/agents/assistant.md +59 -0
  9. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/audit-google-python-style/SKILL.md +185 -0
  10. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/audit-google-python-style/agents/openai.yaml +7 -0
  11. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/audit-google-python-style/references/check-matrix.md +28 -0
  12. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/audit-google-python-style/scripts/check_google_rules.py +1191 -0
  13. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/audit-google-python-style/skill-card.md +23 -0
  14. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/audit-google-typescript-style/SKILL.md +137 -0
  15. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/audit-google-typescript-style/agents/openai.yaml +7 -0
  16. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/audit-google-typescript-style/references/check-matrix.md +33 -0
  17. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/audit-google-typescript-style/scripts/check_google_rules.mjs +136 -0
  18. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/audit-google-typescript-style/skill-card.md +23 -0
  19. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/build-change/SKILL.md +25 -4
  20. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/build-change/skill-card.md +23 -0
  21. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/critique-review/SKILL.md +12 -3
  22. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/critique-review/skill-card.md +23 -0
  23. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/define-product/SKILL.md +7 -4
  24. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/define-product/skill-card.md +23 -0
  25. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/design-skill-eval/SKILL.md +222 -0
  26. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/design-skill-eval/agents/openai.yaml +4 -0
  27. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/design-skill-eval/references/eval-design-checklist.md +110 -0
  28. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/design-skill-eval/skill-card.md +23 -0
  29. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/design-solution/SKILL.md +194 -0
  30. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/design-solution/assets/adr.template.md +37 -0
  31. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/design-solution/assets/design.template.md +1 -0
  32. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/design-solution/skill-card.md +23 -0
  33. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/github-actions-ci-results/SKILL.md +98 -0
  34. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/github-actions-ci-results/agents/openai.yaml +4 -0
  35. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/github-actions-ci-results/references/gh-command-cookbook.md +65 -0
  36. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/github-actions-ci-results/skill-card.md +23 -0
  37. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/launch-product/SKILL.md +4 -1
  38. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/launch-product/skill-card.md +23 -0
  39. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/plan-delivery/SKILL.md +39 -14
  40. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/plan-delivery/assets/delivery-plan.template.md +1 -1
  41. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/plan-delivery/skill-card.md +23 -0
  42. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/pr-review/SKILL.md +47 -13
  43. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/pr-review/scripts/publish_review.py +102 -23
  44. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/pr-review/skill-card.md +23 -0
  45. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/review-change/SKILL.md +25 -15
  46. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/review-change/skill-card.md +23 -0
  47. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/specify-project/SKILL.md +8 -2
  48. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/specify-project/scripts/validate_specification.py +28 -1
  49. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/specify-project/skill-card.md +23 -0
  50. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/technical-writing-style/SKILL.md +92 -0
  51. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/technical-writing-style/agents/openai.yaml +4 -0
  52. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/technical-writing-style/references/writing-style.md +230 -0
  53. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/technical-writing-style/scripts/check_structure.py +410 -0
  54. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/technical-writing-style/skill-card.md +23 -0
  55. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/testing-craft/SKILL.md +80 -0
  56. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/testing-craft/agents/openai.yaml +4 -0
  57. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/testing-craft/references/test-strategy.md +115 -0
  58. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/testing-craft/references/test-suite-health.md +105 -0
  59. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/testing-craft/references/writing-tests.md +103 -0
  60. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.agents/skills/testing-craft/skill-card.md +23 -0
  61. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude/CLAUDE.md +38 -0
  62. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude/agents/architecture-maintainability-specialist.md +79 -0
  63. {open_codev_workflow-0.1.4/src/codev_workflow/bundle/.agents → open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude}/agents/builder.md +15 -13
  64. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude/agents/code-audit-gate.md.template +62 -0
  65. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude/agents/code-audit.md.template +74 -0
  66. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude/agents/concurrency-specialist.md +42 -0
  67. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude/agents/correctness-tests-specialist.md +54 -0
  68. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude/agents/lightweight-reviewer.md +61 -0
  69. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude/agents/orchestrator.md +163 -0
  70. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude/agents/outer-loop-runner.md +215 -0
  71. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude/agents/planner.md +54 -0
  72. {open_codev_workflow-0.1.4/src/codev_workflow/bundle/.agents → open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude}/agents/reviewer.md +16 -11
  73. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude/agents/rollout-specialist.md +45 -0
  74. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude/agents/security-data-specialist.md +42 -0
  75. {open_codev_workflow-0.1.4/src/codev_workflow/bundle/.junie → open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude}/commands/pr-review.md +5 -3
  76. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude/hooks/require_plan.py +203 -0
  77. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.claude/settings.json +18 -0
  78. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.codev/for-ai/ai-agent-guidelines.md +449 -0
  79. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.github/ISSUE_TEMPLATE/task.md +48 -0
  80. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.github/pull_request_template.md +40 -0
  81. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.junie/agents/assistant.md +56 -0
  82. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.opencode/agents/architecture-maintainability-specialist.md +88 -0
  83. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.opencode/agents/builder.md +11 -4
  84. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.opencode/agents/code-audit-gate.md.template +77 -0
  85. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.opencode/agents/code-audit.md.template +89 -0
  86. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.opencode/agents/concurrency-specialist.md +51 -0
  87. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.opencode/agents/correctness-tests-specialist.md +63 -0
  88. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.opencode/agents/lightweight-reviewer.md +71 -0
  89. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.opencode/agents/orchestrator.md +176 -0
  90. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.opencode/agents/outer-loop-runner.md +239 -0
  91. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.opencode/agents/planner.md +64 -0
  92. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.opencode/agents/reviewer.md +12 -2
  93. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.opencode/agents/rollout-specialist.md +54 -0
  94. open_codev_workflow-0.4.0/src/codev_workflow/bundle/.opencode/agents/security-data-specialist.md +51 -0
  95. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/AGENTS.md +12 -8
  96. open_codev_workflow-0.4.0/src/codev_workflow/bundle/docs/codev/onboarding/examples.md +108 -0
  97. open_codev_workflow-0.4.0/src/codev_workflow/bundle/docs/codev/onboarding/normal-development-workflow.md +73 -0
  98. open_codev_workflow-0.4.0/src/codev_workflow/bundle/docs/codev/onboarding/onboarding-guide.md +166 -0
  99. open_codev_workflow-0.4.0/src/codev_workflow/bundle/docs/codev/onboarding/skill-card.template.md +64 -0
  100. open_codev_workflow-0.4.0/src/codev_workflow/bundle/docs/codev/onboarding/starting-prompts.md +73 -0
  101. open_codev_workflow-0.4.0/src/codev_workflow/bundle/docs/codev/tutorials/01-your-first-fix.md +296 -0
  102. open_codev_workflow-0.4.0/src/codev_workflow/bundle/docs/codev/tutorials/02-a-design-worthy-change.md +100 -0
  103. open_codev_workflow-0.4.0/src/codev_workflow/bundle/docs/codev/tutorials/03-outer-loop-review.md +106 -0
  104. open_codev_workflow-0.4.0/src/codev_workflow/bundle/docs/codev/tutorials/04-multi-developer-coordination.md +108 -0
  105. open_codev_workflow-0.4.0/src/codev_workflow/cli.py +1526 -0
  106. open_codev_workflow-0.4.0/src/codev_workflow/config.py +158 -0
  107. open_codev_workflow-0.4.0/src/codev_workflow/conflict_wizard.py +140 -0
  108. open_codev_workflow-0.4.0/src/codev_workflow/eval.py +2686 -0
  109. open_codev_workflow-0.4.0/src/codev_workflow/eval_checks.py +220 -0
  110. open_codev_workflow-0.4.0/src/codev_workflow/eval_environment.py +163 -0
  111. open_codev_workflow-0.4.0/src/codev_workflow/eval_nvidia.py +379 -0
  112. open_codev_workflow-0.4.0/src/codev_workflow/git_ops.py +685 -0
  113. open_codev_workflow-0.4.0/src/codev_workflow/installer.py +1664 -0
  114. open_codev_workflow-0.4.0/src/codev_workflow/task.py +1323 -0
  115. open_codev_workflow-0.4.0/src/open_codev_workflow.egg-info/PKG-INFO +137 -0
  116. open_codev_workflow-0.4.0/src/open_codev_workflow.egg-info/SOURCES.txt +155 -0
  117. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/open_codev_workflow.egg-info/requires.txt +1 -0
  118. open_codev_workflow-0.4.0/tests/test_adapter.py +252 -0
  119. open_codev_workflow-0.4.0/tests/test_claude_hook.py +261 -0
  120. open_codev_workflow-0.4.0/tests/test_cli.py +2473 -0
  121. open_codev_workflow-0.4.0/tests/test_config.py +203 -0
  122. open_codev_workflow-0.4.0/tests/test_conflict_wizard.py +198 -0
  123. open_codev_workflow-0.4.0/tests/test_documentation_links.py +109 -0
  124. open_codev_workflow-0.4.0/tests/test_eval.py +2573 -0
  125. open_codev_workflow-0.4.0/tests/test_eval_artifact_set.py +325 -0
  126. open_codev_workflow-0.4.0/tests/test_eval_checks.py +279 -0
  127. open_codev_workflow-0.4.0/tests/test_eval_docker_benchmark.py +388 -0
  128. open_codev_workflow-0.4.0/tests/test_eval_environment.py +171 -0
  129. open_codev_workflow-0.4.0/tests/test_eval_nvidia.py +348 -0
  130. open_codev_workflow-0.4.0/tests/test_git_ops.py +1122 -0
  131. open_codev_workflow-0.4.0/tests/test_google_style_audit_rules.py +534 -0
  132. open_codev_workflow-0.4.0/tests/test_installer.py +1346 -0
  133. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/tests/test_pr_review.py +31 -0
  134. open_codev_workflow-0.4.0/tests/test_seeded_defect_tasks.py +236 -0
  135. open_codev_workflow-0.4.0/tests/test_task.py +2377 -0
  136. open_codev_workflow-0.4.0/tests/test_verify_release.py +192 -0
  137. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/tests/test_version.py +29 -1
  138. open_codev_workflow-0.1.4/PKG-INFO +0 -256
  139. open_codev_workflow-0.1.4/README.md +0 -227
  140. open_codev_workflow-0.1.4/src/codev_workflow/__init__.py +0 -5
  141. open_codev_workflow-0.1.4/src/codev_workflow/__main__.py +0 -4
  142. open_codev_workflow-0.1.4/src/codev_workflow/bundle/.agents/agents/orchestrator.md +0 -62
  143. open_codev_workflow-0.1.4/src/codev_workflow/bundle/.agents/skills/clean-code-review/SKILL.md +0 -252
  144. open_codev_workflow-0.1.4/src/codev_workflow/bundle/.agents/skills/clean-code-review/agents/openai.yaml +0 -4
  145. open_codev_workflow-0.1.4/src/codev_workflow/bundle/.agents/skills/design-solution/SKILL.md +0 -75
  146. open_codev_workflow-0.1.4/src/codev_workflow/bundle/.agents/skills/design-solution/assets/decision.template.md +0 -26
  147. open_codev_workflow-0.1.4/src/codev_workflow/bundle/.junie/agents/builder.md +0 -41
  148. open_codev_workflow-0.1.4/src/codev_workflow/bundle/.junie/agents/orchestrator.md +0 -56
  149. open_codev_workflow-0.1.4/src/codev_workflow/bundle/.junie/agents/reviewer.md +0 -26
  150. open_codev_workflow-0.1.4/src/codev_workflow/bundle/.opencode/agents/orchestrator.md +0 -72
  151. open_codev_workflow-0.1.4/src/codev_workflow/bundle/docs/AI-WORKFLOW-PROMPTS.md +0 -322
  152. open_codev_workflow-0.1.4/src/codev_workflow/bundle/docs/WORKFLOW-COOKBOOK.md +0 -427
  153. open_codev_workflow-0.1.4/src/codev_workflow/bundle/docs/WORKFLOW-HUMAN.md +0 -221
  154. open_codev_workflow-0.1.4/src/codev_workflow/bundle/docs/for-ai/WORKFLOW-AGENTS.md +0 -188
  155. open_codev_workflow-0.1.4/src/codev_workflow/bundle/docs/handbooks/IDEA-TO-PRODUCTION-HANDBOOK.md +0 -1198
  156. open_codev_workflow-0.1.4/src/codev_workflow/bundle/docs/handbooks/LANGUAGE-AGNOSTIC-PROJECT-HANDBOOK.md +0 -753
  157. open_codev_workflow-0.1.4/src/codev_workflow/bundle/docs/handbooks/PYTHON-PROJECT-HANDBOOK.md +0 -955
  158. open_codev_workflow-0.1.4/src/codev_workflow/bundle/evals/development-workflow/scenarios.json +0 -169
  159. open_codev_workflow-0.1.4/src/codev_workflow/bundle/scripts/evaluate-development-workflow.py +0 -352
  160. open_codev_workflow-0.1.4/src/codev_workflow/bundle/scripts/validate-development-workflow.py +0 -216
  161. open_codev_workflow-0.1.4/src/codev_workflow/cli.py +0 -154
  162. open_codev_workflow-0.1.4/src/codev_workflow/installer.py +0 -905
  163. open_codev_workflow-0.1.4/src/open_codev_workflow.egg-info/PKG-INFO +0 -256
  164. open_codev_workflow-0.1.4/src/open_codev_workflow.egg-info/SOURCES.txt +0 -71
  165. open_codev_workflow-0.1.4/tests/test_cli.py +0 -99
  166. open_codev_workflow-0.1.4/tests/test_installer.py +0 -316
  167. open_codev_workflow-0.1.4/tests/test_verify_release.py +0 -39
  168. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/setup.cfg +0 -0
  169. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/build-change/agents/openai.yaml +0 -0
  170. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/build-change/assets/implementation-plan.template.md +0 -0
  171. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/critique-review/agents/openai.yaml +0 -0
  172. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/critique-review/assets/suggested-edit.template.md +0 -0
  173. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/define-product/agents/openai.yaml +0 -0
  174. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/define-product/assets/brief.template.md +0 -0
  175. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/design-solution/agents/openai.yaml +0 -0
  176. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/launch-product/agents/openai.yaml +0 -0
  177. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/launch-product/assets/launch-plan.template.md +0 -0
  178. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/plan-delivery/agents/openai.yaml +0 -0
  179. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/pr-review/agents/openai.yaml +0 -0
  180. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/pr-review/scripts/set-github-token.ps1 +0 -0
  181. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/review-change/agents/openai.yaml +0 -0
  182. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/specify-project/agents/openai.yaml +0 -0
  183. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/specify-project/assets/specification.template.md +0 -0
  184. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/codev_workflow/bundle/.agents/skills/specify-project/references/interview-coverage.md +0 -0
  185. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/open_codev_workflow.egg-info/dependency_links.txt +0 -0
  186. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/open_codev_workflow.egg-info/entry_points.txt +0 -0
  187. {open_codev_workflow-0.1.4 → open_codev_workflow-0.4.0}/src/open_codev_workflow.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  BSD 3-Clause License
2
2
 
3
- Copyright (c) 2026, Martin Urban
3
+ Copyright (c) 2026, Martin Urban, Hannah Kullik
4
4
 
5
5
  Redistribution and use in source and binary forms, with or without
6
6
  modification, are permitted provided that the following conditions are met:
@@ -0,0 +1,137 @@
1
+ Metadata-Version: 2.4
2
+ Name: open-codev-workflow
3
+ Version: 0.4.0
4
+ Summary: Human-guided AI software delivery for real repositories.
5
+ Author: Martin Urban
6
+ License-Expression: BSD-3-Clause
7
+ Project-URL: Homepage, https://github.com/urban233/CoDev
8
+ Project-URL: Repository, https://github.com/urban233/CoDev
9
+ Project-URL: Issues, https://github.com/urban233/CoDev/issues
10
+ Keywords: ai,developer-tools,software-delivery,antigravity,claude-code,junie,opencode
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Software Development :: Quality Assurance
20
+ Requires-Python: >=3.11
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE
23
+ Requires-Dist: pre-commit>=4.6.1
24
+ Provides-Extra: dev
25
+ Requires-Dist: build>=1.2.2; extra == "dev"
26
+ Requires-Dist: mypy>=1.15; extra == "dev"
27
+ Requires-Dist: ruff>=0.11; extra == "dev"
28
+ Requires-Dist: twine>=6.1; extra == "dev"
29
+ Dynamic: license-file
30
+
31
+ <p align="center">
32
+ <img src="assets/codev-mark.svg" width="96" height="96" alt="CoDev mark">
33
+ </p>
34
+
35
+ <h1 align="center">CoDev</h1>
36
+
37
+ <p align="center"><strong>Human-guided AI software delivery.</strong></p>
38
+
39
+ ![Active Feature Development](https://img.shields.io/badge/Project_State-Active_Feature_Development-brightgreen?style=flat-square)
40
+ ![AI-driven](https://img.shields.io/badge/AI_Use-AI--driven-orange?style=flat-square)
41
+ ![CI](https://img.shields.io/github/actions/workflow/status/urban233/CoDev/ci.yml?branch=main&label=CI&style=flat-square)
42
+ ![PyPI version](https://img.shields.io/pypi/v/open-codev-workflow?style=flat-square)
43
+ ![Python versions](https://img.shields.io/pypi/pyversions/open-codev-workflow?style=flat-square)
44
+ ![License](https://img.shields.io/github/license/urban233/CoDev?style=flat-square)
45
+ ![Latest release](https://img.shields.io/github/v/release/urban233/CoDev?style=flat-square)
46
+ ![GitHub stars](https://img.shields.io/github/stars/urban233/CoDev?style=flat-square)
47
+ ![GitHub issues](https://img.shields.io/github/issues/urban233/CoDev?style=flat-square)
48
+
49
+ CoDev installs a small, production-minded collaboration system into any Git repository. A
50
+ developer and AI move through four steps — **Understand, Build, Review, Ship** — plus two
51
+ that only show up when the work actually needs them: **Specify** for a genuinely new
52
+ product, **Launch** for a real rollout decision. Review is layered, not a single pass: a
53
+ fast correctness check after each build, an automatic style and maintainability gate
54
+ immediately before a pull request opens, and five parallel specialist reviewers once it's
55
+ open. It supports bounded three-agent execution without turning product development into
56
+ an unattended coding loop.
57
+
58
+ ## Why CoDev
59
+
60
+ - One workflow for solo developers and multi-developer teams.
61
+ - Repository-grounded plans instead of invented APIs or architecture.
62
+ - A bounded builder, an automatic pre-PR audit gate, and five parallel specialist
63
+ reviewers — not just one read-only pass.
64
+ - Human authority over material decisions, merge, deployment, and rollout.
65
+ - A general-purpose skill-evaluation harness — measure whether a skill (CoDev's own, or
66
+ one you wrote) actually helps, empirically, rather than just trusting that it does.
67
+ - Versioned, conflict-aware installation across existing repositories.
68
+ - No runtime dependency in the software being built.
69
+
70
+ ## Try it in 60 seconds
71
+
72
+ ```shell
73
+ pipx install open-codev-workflow
74
+ # or: uv tool install open-codev-workflow
75
+
76
+ codev init --target . --agent-platform all
77
+ codev status --target .
78
+ ```
79
+
80
+ ```text
81
+ CoDev 0.4.0 - /path/to/your/repo
82
+ Bundle: healthy (83 managed files, no drift)
83
+ Adapters: opencode
84
+ Tasks in progress: 0
85
+ ```
86
+
87
+ Commit the installed files as one infrastructure change, then start an AI session in the
88
+ repository and describe a small bug or task in plain language — you don't need to name a
89
+ skill. **[Tutorial 1](src/codev_workflow/bundle/docs/codev/tutorials/01-your-first-fix.md)
90
+ walks one small fix from here to a merged pull request, with every command and real
91
+ output shown.**
92
+
93
+ ## Where to go next
94
+
95
+ | I want to... | Go to |
96
+ |---|---|
97
+ | Understand the mental model before doing anything | [Onboarding guide](src/codev_workflow/bundle/docs/codev/onboarding/onboarding-guide.md) |
98
+ | Just try it, right now | [Tutorial 1: your first fix](src/codev_workflow/bundle/docs/codev/tutorials/01-your-first-fix.md) |
99
+ | See every command | [CLI reference](docs/cli-reference.md) |
100
+ | See exactly what gets installed and why | [Architecture](docs/architecture.md) |
101
+ | Adopt CoDev for a team, not just myself | [Adoption guide](docs/adoption.md) |
102
+ | Understand why a specific mechanism exists | [Architecture Decision Records](docs/adr/) |
103
+ | Set up GitHub CLI for PR review on Windows | [PR review setup](docs/pr-review-github-cli-setup.md) |
104
+ | Contribute to CoDev itself | [Contributing](CONTRIBUTING.md) |
105
+ | See everything `docs/` contains, organized by audience | [docs/README.md](docs/README.md) |
106
+
107
+ ## Design principles
108
+
109
+ 1. **Local at use time.** Agents read ordinary files in the target repository.
110
+ 2. **Central at maintenance time.** This repository is the canonical source.
111
+ 3. **Human at authority boundaries.** Automation supplies evidence, not approval.
112
+ 4. **Small by default.** Deeper design and delivery planning appear only when risk or
113
+ coordination requires them.
114
+ 5. **Safe to adopt.** Existing instructions and OpenCode settings are preserved.
115
+
116
+ ## Development
117
+
118
+ ```shell
119
+ python -m unittest discover -s tests -v
120
+ python -m compileall -q src tests
121
+ python -m codev_workflow --version
122
+ ```
123
+
124
+ Optional development checks:
125
+
126
+ ```shell
127
+ python -m ruff check .
128
+ python -m ruff format --check .
129
+ python -m mypy
130
+ python -m build
131
+ python scripts/check_bundled_doc_links.py
132
+ ```
133
+
134
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for what's expected of a change, and
135
+ [docs/releasing.md](docs/releasing.md) for the release process.
136
+
137
+ CoDev is licensed under BSD-3-Clause.
@@ -0,0 +1,107 @@
1
+ <p align="center">
2
+ <img src="assets/codev-mark.svg" width="96" height="96" alt="CoDev mark">
3
+ </p>
4
+
5
+ <h1 align="center">CoDev</h1>
6
+
7
+ <p align="center"><strong>Human-guided AI software delivery.</strong></p>
8
+
9
+ ![Active Feature Development](https://img.shields.io/badge/Project_State-Active_Feature_Development-brightgreen?style=flat-square)
10
+ ![AI-driven](https://img.shields.io/badge/AI_Use-AI--driven-orange?style=flat-square)
11
+ ![CI](https://img.shields.io/github/actions/workflow/status/urban233/CoDev/ci.yml?branch=main&label=CI&style=flat-square)
12
+ ![PyPI version](https://img.shields.io/pypi/v/open-codev-workflow?style=flat-square)
13
+ ![Python versions](https://img.shields.io/pypi/pyversions/open-codev-workflow?style=flat-square)
14
+ ![License](https://img.shields.io/github/license/urban233/CoDev?style=flat-square)
15
+ ![Latest release](https://img.shields.io/github/v/release/urban233/CoDev?style=flat-square)
16
+ ![GitHub stars](https://img.shields.io/github/stars/urban233/CoDev?style=flat-square)
17
+ ![GitHub issues](https://img.shields.io/github/issues/urban233/CoDev?style=flat-square)
18
+
19
+ CoDev installs a small, production-minded collaboration system into any Git repository. A
20
+ developer and AI move through four steps — **Understand, Build, Review, Ship** — plus two
21
+ that only show up when the work actually needs them: **Specify** for a genuinely new
22
+ product, **Launch** for a real rollout decision. Review is layered, not a single pass: a
23
+ fast correctness check after each build, an automatic style and maintainability gate
24
+ immediately before a pull request opens, and five parallel specialist reviewers once it's
25
+ open. It supports bounded three-agent execution without turning product development into
26
+ an unattended coding loop.
27
+
28
+ ## Why CoDev
29
+
30
+ - One workflow for solo developers and multi-developer teams.
31
+ - Repository-grounded plans instead of invented APIs or architecture.
32
+ - A bounded builder, an automatic pre-PR audit gate, and five parallel specialist
33
+ reviewers — not just one read-only pass.
34
+ - Human authority over material decisions, merge, deployment, and rollout.
35
+ - A general-purpose skill-evaluation harness — measure whether a skill (CoDev's own, or
36
+ one you wrote) actually helps, empirically, rather than just trusting that it does.
37
+ - Versioned, conflict-aware installation across existing repositories.
38
+ - No runtime dependency in the software being built.
39
+
40
+ ## Try it in 60 seconds
41
+
42
+ ```shell
43
+ pipx install open-codev-workflow
44
+ # or: uv tool install open-codev-workflow
45
+
46
+ codev init --target . --agent-platform all
47
+ codev status --target .
48
+ ```
49
+
50
+ ```text
51
+ CoDev 0.4.0 - /path/to/your/repo
52
+ Bundle: healthy (83 managed files, no drift)
53
+ Adapters: opencode
54
+ Tasks in progress: 0
55
+ ```
56
+
57
+ Commit the installed files as one infrastructure change, then start an AI session in the
58
+ repository and describe a small bug or task in plain language — you don't need to name a
59
+ skill. **[Tutorial 1](src/codev_workflow/bundle/docs/codev/tutorials/01-your-first-fix.md)
60
+ walks one small fix from here to a merged pull request, with every command and real
61
+ output shown.**
62
+
63
+ ## Where to go next
64
+
65
+ | I want to... | Go to |
66
+ |---|---|
67
+ | Understand the mental model before doing anything | [Onboarding guide](src/codev_workflow/bundle/docs/codev/onboarding/onboarding-guide.md) |
68
+ | Just try it, right now | [Tutorial 1: your first fix](src/codev_workflow/bundle/docs/codev/tutorials/01-your-first-fix.md) |
69
+ | See every command | [CLI reference](docs/cli-reference.md) |
70
+ | See exactly what gets installed and why | [Architecture](docs/architecture.md) |
71
+ | Adopt CoDev for a team, not just myself | [Adoption guide](docs/adoption.md) |
72
+ | Understand why a specific mechanism exists | [Architecture Decision Records](docs/adr/) |
73
+ | Set up GitHub CLI for PR review on Windows | [PR review setup](docs/pr-review-github-cli-setup.md) |
74
+ | Contribute to CoDev itself | [Contributing](CONTRIBUTING.md) |
75
+ | See everything `docs/` contains, organized by audience | [docs/README.md](docs/README.md) |
76
+
77
+ ## Design principles
78
+
79
+ 1. **Local at use time.** Agents read ordinary files in the target repository.
80
+ 2. **Central at maintenance time.** This repository is the canonical source.
81
+ 3. **Human at authority boundaries.** Automation supplies evidence, not approval.
82
+ 4. **Small by default.** Deeper design and delivery planning appear only when risk or
83
+ coordination requires them.
84
+ 5. **Safe to adopt.** Existing instructions and OpenCode settings are preserved.
85
+
86
+ ## Development
87
+
88
+ ```shell
89
+ python -m unittest discover -s tests -v
90
+ python -m compileall -q src tests
91
+ python -m codev_workflow --version
92
+ ```
93
+
94
+ Optional development checks:
95
+
96
+ ```shell
97
+ python -m ruff check .
98
+ python -m ruff format --check .
99
+ python -m mypy
100
+ python -m build
101
+ python scripts/check_bundled_doc_links.py
102
+ ```
103
+
104
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for what's expected of a change, and
105
+ [docs/releasing.md](docs/releasing.md) for the release process.
106
+
107
+ CoDev is licensed under BSD-3-Clause.
@@ -4,13 +4,13 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "open-codev-workflow"
7
- version = "0.1.4"
7
+ version = "0.4.0"
8
8
  description = "Human-guided AI software delivery for real repositories."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
11
11
  license = "BSD-3-Clause"
12
12
  authors = [{ name = "Martin Urban" }]
13
- keywords = ["ai", "developer-tools", "software-delivery", "antigravity", "codex", "junie", "opencode"]
13
+ keywords = ["ai", "developer-tools", "software-delivery", "antigravity", "claude-code", "junie", "opencode"]
14
14
  classifiers = [
15
15
  "Development Status :: 3 - Alpha",
16
16
  "Environment :: Console",
@@ -22,7 +22,9 @@ classifiers = [
22
22
  "Programming Language :: Python :: 3.13",
23
23
  "Topic :: Software Development :: Quality Assurance",
24
24
  ]
25
- dependencies = []
25
+ dependencies = [
26
+ "pre-commit>=4.6.1",
27
+ ]
26
28
 
27
29
  [project.urls]
28
30
  Homepage = "https://github.com/urban233/CoDev"
@@ -50,26 +52,35 @@ where = ["src"]
50
52
  [tool.setuptools.package-data]
51
53
  codev_workflow = [
52
54
  "bundle/AGENTS.md",
55
+ "bundle/.codev/for-ai/*.md",
53
56
  "bundle/.agents/skills/*/SKILL.md",
57
+ "bundle/.agents/skills/*/skill-card.md",
54
58
  "bundle/.agents/skills/*/agents/*.yaml",
55
59
  "bundle/.agents/skills/*/assets/*",
56
60
  "bundle/.agents/skills/*/references/*",
57
61
  "bundle/.agents/skills/*/scripts/*",
58
62
  "bundle/.agents/agents/*.md",
63
+ "bundle/.agents/agents/*.md.template",
64
+ "bundle/.claude/agents/*.md",
65
+ "bundle/.claude/agents/*.md.template",
66
+ "bundle/.claude/commands/*.md",
67
+ "bundle/.claude/hooks/*.py",
68
+ "bundle/.claude/settings.json",
69
+ "bundle/.claude/CLAUDE.md",
59
70
  "bundle/.opencode/agents/*.md",
71
+ "bundle/.opencode/agents/*.md.template",
60
72
  "bundle/.junie/agents/*.md",
61
- "bundle/.junie/commands/*.md",
73
+ "bundle/.github/*.md",
74
+ "bundle/.github/ISSUE_TEMPLATE/*.md",
62
75
  "bundle/docs/*.md",
63
- "bundle/docs/for-ai/*.md",
64
- "bundle/docs/handbooks/*.md",
65
- "bundle/evals/development-workflow/*.json",
66
- "bundle/scripts/*.py",
76
+ "bundle/docs/codev/onboarding/*.md",
77
+ "bundle/docs/codev/tutorials/*.md",
67
78
  ]
68
79
 
69
80
  [tool.ruff]
70
81
  line-length = 88
71
82
  target-version = "py311"
72
- exclude = ["src/codev_workflow/bundle"]
83
+ exclude = ["src/codev_workflow/bundle", ".codev/eval/tasks/*/repository"]
73
84
 
74
85
  [tool.ruff.lint]
75
86
  select = ["E", "F", "I", "UP", "B", "SIM"]
@@ -0,0 +1,33 @@
1
+ # BSD 3-Clause License
2
+ #
3
+ # Copyright (c) 2026, Martin Urban, Hannah Kullik
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # 1. Redistributions of source code must retain the above copyright notice, this
9
+ # list of conditions and the following disclaimer.
10
+ #
11
+ # 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # 3. Neither the name of the copyright holder nor the names of its
16
+ # contributors may be used to endorse or promote products derived from
17
+ # this software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
+ """CoDev: human-guided AI software delivery."""
30
+
31
+ __all__ = ["__version__"]
32
+
33
+ __version__ = "0.4.0"
@@ -0,0 +1,32 @@
1
+ # BSD 3-Clause License
2
+ #
3
+ # Copyright (c) 2026, Martin Urban, Hannah Kullik
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # 1. Redistributions of source code must retain the above copyright notice, this
9
+ # list of conditions and the following disclaimer.
10
+ #
11
+ # 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # 3. Neither the name of the copyright holder nor the names of its
16
+ # contributors may be used to endorse or promote products derived from
17
+ # this software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
+ from codev_workflow.cli import main
30
+
31
+ if __name__ == "__main__":
32
+ raise SystemExit(main())
@@ -0,0 +1,229 @@
1
+ # BSD 3-Clause License
2
+ #
3
+ # Copyright (c) 2026, Martin Urban, Hannah Kullik
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # 1. Redistributions of source code must retain the above copyright notice, this
9
+ # list of conditions and the following disclaimer.
10
+ #
11
+ # 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # 3. Neither the name of the copyright holder nor the names of its
16
+ # contributors may be used to endorse or promote products derived from
17
+ # this software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
+ """Conformance checks for installed platform adapters.
30
+
31
+ Verifies structural parity across the full-workflow platform adapters
32
+ (OpenCode, Claude Code) without requiring them to be rendered from one source
33
+ yet: every role file must reference the `codev task` lifecycle wiring, must
34
+ not resurrect the retired P0-P3 finding scale, and must not grant
35
+ unrestricted shell execution. This is a second line of defense against
36
+ cross-adapter drift, not a substitute for eventually rendering adapters from
37
+ one config source.
38
+
39
+ Junie and Antigravity are a narrower tier (ADR-0031): a single bounded-edit
40
+ `assistant` role with no task-lifecycle integration. They still go through
41
+ the same forbidden-pattern checks below (no unrestricted shell, no raw git
42
+ mutation), just with no required markers to enforce.
43
+ """
44
+
45
+ from __future__ import annotations
46
+
47
+ import tomllib
48
+ from dataclasses import dataclass
49
+ from pathlib import Path
50
+
51
+ _OUTER_LOOP_ROLES = (
52
+ "outer-loop-runner",
53
+ "correctness-tests-specialist",
54
+ "security-data-specialist",
55
+ "concurrency-specialist",
56
+ "architecture-maintainability-specialist",
57
+ "rollout-specialist",
58
+ )
59
+
60
+
61
+ def _role_paths(directory: str, extension: str) -> dict[str, str]:
62
+ # code-audit (and its code-audit-gate counterpart, ADR-0015) are
63
+ # deliberately absent here: both are templated ({{LANGUAGE_INSTRUCTIONS}}
64
+ # etc.), so the raw bundle only ever has a .template source, never the
65
+ # rendered filename this function's paths assume -- verify_adapter's
66
+ # bundle-parity test runs directly against the raw bundle. Their rendered
67
+ # output is instead checked where it's actually produced, by the
68
+ # installer's own per-platform agent-rendering tests.
69
+ paths = {
70
+ "orchestrator": f"{directory}/orchestrator.{extension}",
71
+ "planner": f"{directory}/planner.{extension}",
72
+ "builder": f"{directory}/builder.{extension}",
73
+ "reviewer": f"{directory}/reviewer.{extension}",
74
+ "lightweight-reviewer": f"{directory}/lightweight-reviewer.{extension}",
75
+ }
76
+ for role in _OUTER_LOOP_ROLES:
77
+ paths[role] = f"{directory}/{role}.{extension}"
78
+ return paths
79
+
80
+
81
+ ADAPTER_ROLE_PATHS: dict[str, dict[str, str]] = {
82
+ "opencode": _role_paths(".opencode/agents", "md"),
83
+ "claude": _role_paths(".claude/agents", "md"),
84
+ # Junie and Antigravity are the narrow tier: a single bounded-edit
85
+ # `assistant` role, not the full orchestrator-driven workflow (see
86
+ # ADR-0031) -- no outer-loop roles, no code-audit, no task-lifecycle
87
+ # markers to require.
88
+ "junie": {"assistant": ".junie/agents/assistant.md"},
89
+ "antigravity": {"assistant": ".agents/agents/assistant.md"},
90
+ }
91
+
92
+ _REQUIRED_MARKERS: dict[str, tuple[str, ...]] = {
93
+ "orchestrator": (
94
+ "codev task start",
95
+ "codev task check",
96
+ "codev git open-pr",
97
+ "--github-issue",
98
+ "codev git issue-create",
99
+ "--no-github-issue",
100
+ ),
101
+ "planner": ("codev git issue-create",),
102
+ "builder": ("codev task record",),
103
+ "reviewer": ("codev task record",),
104
+ "lightweight-reviewer": ("codev task record",),
105
+ "outer-loop-runner": (
106
+ "codev task record",
107
+ "codev task triage",
108
+ "codev task waive",
109
+ "codev task reopen",
110
+ "--selection",
111
+ "codev git mark-ready",
112
+ ),
113
+ "correctness-tests-specialist": ("expansion_reason",),
114
+ "security-data-specialist": ("expansion_reason",),
115
+ "concurrency-specialist": ("expansion_reason",),
116
+ "architecture-maintainability-specialist": ("expansion_reason",),
117
+ "rollout-specialist": ("expansion_reason",),
118
+ # The narrow Junie/Antigravity `assistant` role is deliberately decoupled
119
+ # from the task lifecycle -- it never calls `codev task`/`codev git`, so
120
+ # there is no required marker to check for.
121
+ "assistant": (),
122
+ }
123
+
124
+ _FORBIDDEN_MARKERS: tuple[str, ...] = ("P0 through P3",)
125
+
126
+ _UNRESTRICTED_BASH_MARKERS: tuple[str, ...] = ('"*": allow', "'*': allow")
127
+
128
+ # ADR-0002: raw git/GitHub mutation must stay denied everywhere; `codev git`
129
+ # is the only guarded path to committing, pushing, or opening a pull request.
130
+ _RAW_MUTATION_MARKERS: tuple[str, ...] = (
131
+ '"git push*": allow',
132
+ "'git push*': allow",
133
+ '"git commit*": allow',
134
+ "'git commit*': allow",
135
+ )
136
+
137
+ # `codev git open-pr` renders recorded task evidence into the repository PR
138
+ # template when no `--body`/`--body-file` is given. An agent hardcoding a body
139
+ # placeholder would bypass that guarded rendering path.
140
+ _HANDWRITTEN_PR_BODY_MARKERS: tuple[str, ...] = ("--body <body>",)
141
+
142
+ # ADR-0021: OpenCode's per-subagent `task` permission block is the only
143
+ # mechanical backstop against outer-loop-runner silently skipping the human
144
+ # specialist-selection menu (ADR-0016/0018) -- these five must stay "ask",
145
+ # never regress to "allow", or the one available guardrail disappears again
146
+ # without anything noticing.
147
+ _SPECIALIST_ALLOW_MARKERS: tuple[str, ...] = (
148
+ "correctness-tests-specialist: allow",
149
+ "security-data-specialist: allow",
150
+ "concurrency-specialist: allow",
151
+ "architecture-maintainability-specialist: allow",
152
+ "rollout-specialist: allow",
153
+ )
154
+
155
+
156
+ class AdapterVerificationError(Exception):
157
+ """Raised when a platform cannot be verified at all."""
158
+
159
+
160
+ @dataclass(frozen=True)
161
+ class RoleFinding:
162
+ role: str
163
+ path: str
164
+ ok: bool
165
+ problems: tuple[str, ...]
166
+
167
+
168
+ @dataclass(frozen=True)
169
+ class VerificationResult:
170
+ platform: str
171
+ findings: tuple[RoleFinding, ...]
172
+
173
+ @property
174
+ def ok(self) -> bool:
175
+ return all(finding.ok for finding in self.findings)
176
+
177
+
178
+ def verify_adapter(platform: str, *, target: Path) -> VerificationResult:
179
+ role_paths = ADAPTER_ROLE_PATHS.get(platform)
180
+ if role_paths is None:
181
+ raise AdapterVerificationError(f"unknown platform: {platform!r}")
182
+
183
+ findings: list[RoleFinding] = []
184
+ for role, relative in sorted(role_paths.items()):
185
+ path = target / relative
186
+ problems: list[str] = []
187
+ if not path.is_file():
188
+ findings.append(RoleFinding(role, relative, False, ("missing file",)))
189
+ continue
190
+
191
+ text = path.read_text(encoding="utf-8")
192
+
193
+ if relative.endswith(".toml"):
194
+ try:
195
+ tomllib.loads(text)
196
+ except tomllib.TOMLDecodeError as error:
197
+ problems.append(f"invalid TOML: {error}")
198
+
199
+ for marker in _REQUIRED_MARKERS[role]:
200
+ if marker not in text:
201
+ problems.append(f"missing required reference: {marker!r}")
202
+ for marker in _FORBIDDEN_MARKERS:
203
+ if marker in text:
204
+ problems.append(f"contains a retired pattern: {marker!r}")
205
+ for marker in _UNRESTRICTED_BASH_MARKERS:
206
+ if marker in text:
207
+ problems.append(f"grants unrestricted shell execution: {marker!r}")
208
+ for marker in _RAW_MUTATION_MARKERS:
209
+ if marker in text:
210
+ problems.append(
211
+ f"grants raw git mutation instead of the guarded `codev git` "
212
+ f"surface: {marker!r}"
213
+ )
214
+ for marker in _HANDWRITTEN_PR_BODY_MARKERS:
215
+ if marker in text:
216
+ problems.append(
217
+ f"hardcodes a PR body placeholder instead of relying on "
218
+ f"`codev git open-pr`'s template-aware rendering: {marker!r}"
219
+ )
220
+ for marker in _SPECIALIST_ALLOW_MARKERS:
221
+ if marker in text:
222
+ problems.append(
223
+ f"grants unconfirmed specialist dispatch instead of the "
224
+ f"ADR-0021 permission gate: {marker!r}"
225
+ )
226
+
227
+ findings.append(RoleFinding(role, relative, not problems, tuple(problems)))
228
+
229
+ return VerificationResult(platform, tuple(findings))