overkill 0.5.2__tar.gz → 0.5.4__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 (86) hide show
  1. {overkill-0.5.2 → overkill-0.5.4}/AGENTS.md +26 -0
  2. {overkill-0.5.2 → overkill-0.5.4}/PKG-INFO +1 -1
  3. {overkill-0.5.2 → overkill-0.5.4}/pyproject.toml +1 -1
  4. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/cli.py +1 -1
  5. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/models.py +1 -1
  6. {overkill-0.5.2 → overkill-0.5.4}/.github/workflows/publish.yml +0 -0
  7. {overkill-0.5.2 → overkill-0.5.4}/.github/workflows/test.yml +0 -0
  8. {overkill-0.5.2 → overkill-0.5.4}/.gitignore +0 -0
  9. {overkill-0.5.2 → overkill-0.5.4}/.overkillrc.example +0 -0
  10. {overkill-0.5.2 → overkill-0.5.4}/.python-version +0 -0
  11. {overkill-0.5.2 → overkill-0.5.4}/.refactorsuggestrc.example +0 -0
  12. {overkill-0.5.2 → overkill-0.5.4}/CLAUDE.md +0 -0
  13. {overkill-0.5.2 → overkill-0.5.4}/GEMINI.md +0 -0
  14. {overkill-0.5.2 → overkill-0.5.4}/LICENSE +0 -0
  15. {overkill-0.5.2 → overkill-0.5.4}/README.md +0 -0
  16. {overkill-0.5.2 → overkill-0.5.4}/install.sh +0 -0
  17. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-fix-execute.prompt.md +0 -0
  18. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-fix.prompt.md +0 -0
  19. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-refactor-fix-execute.prompt.md +0 -0
  20. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-refactor-fix.prompt.md +0 -0
  21. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-refactor-full.prompt.md +0 -0
  22. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-refactor-layer.prompt.md +0 -0
  23. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-refactor-micro.prompt.md +0 -0
  24. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-refactor-module.prompt.md +0 -0
  25. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-review.prompt.md +0 -0
  26. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-self-review.prompt.md +0 -0
  27. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/codex-refactor-full.prompt.md +0 -0
  28. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/codex-refactor-layer.prompt.md +0 -0
  29. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/codex-refactor-micro.prompt.md +0 -0
  30. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/codex-refactor-module.prompt.md +0 -0
  31. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/codex-review.prompt.md +0 -0
  32. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/gemini-refactor-full.prompt.md +0 -0
  33. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/gemini-refactor-layer.prompt.md +0 -0
  34. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/gemini-refactor-micro.prompt.md +0 -0
  35. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/gemini-refactor-module.prompt.md +0 -0
  36. {overkill-0.5.2 → overkill-0.5.4}/prompts/active/gemini-review.prompt.md +0 -0
  37. {overkill-0.5.2 → overkill-0.5.4}/prompts/reference/claude-code-review-plugin.md +0 -0
  38. {overkill-0.5.2 → overkill-0.5.4}/prompts/reference/claude-security-review.md +0 -0
  39. {overkill-0.5.2 → overkill-0.5.4}/prompts/reference/codex-review-original.md +0 -0
  40. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/__init__.py +0 -0
  41. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/__main__.py +0 -0
  42. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/agents.py +0 -0
  43. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/budget/__init__.py +0 -0
  44. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/budget/claude.py +0 -0
  45. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/budget/codex.py +0 -0
  46. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/budget/gemini.py +0 -0
  47. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/budget_report.py +0 -0
  48. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/classify.py +0 -0
  49. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/data/__init__.py +0 -0
  50. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/git_ops.py +0 -0
  51. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/init.py +0 -0
  52. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/json_extract.py +0 -0
  53. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/loop_engine.py +0 -0
  54. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/refactor_suggest.py +0 -0
  55. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/reporting.py +0 -0
  56. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/resume.py +0 -0
  57. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/retry.py +0 -0
  58. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/review_loop.py +0 -0
  59. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/self_review.py +0 -0
  60. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/time_utils.py +0 -0
  61. {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/two_step_fix.py +0 -0
  62. {overkill-0.5.2 → overkill-0.5.4}/tests/__init__.py +0 -0
  63. {overkill-0.5.2 → overkill-0.5.4}/tests/conftest.py +0 -0
  64. {overkill-0.5.2 → overkill-0.5.4}/tests/test_agents.py +0 -0
  65. {overkill-0.5.2 → overkill-0.5.4}/tests/test_budget_claude.py +0 -0
  66. {overkill-0.5.2 → overkill-0.5.4}/tests/test_budget_codex.py +0 -0
  67. {overkill-0.5.2 → overkill-0.5.4}/tests/test_budget_gemini.py +0 -0
  68. {overkill-0.5.2 → overkill-0.5.4}/tests/test_budget_policy.py +0 -0
  69. {overkill-0.5.2 → overkill-0.5.4}/tests/test_budget_report.py +0 -0
  70. {overkill-0.5.2 → overkill-0.5.4}/tests/test_classify.py +0 -0
  71. {overkill-0.5.2 → overkill-0.5.4}/tests/test_cli.py +0 -0
  72. {overkill-0.5.2 → overkill-0.5.4}/tests/test_git_ops.py +0 -0
  73. {overkill-0.5.2 → overkill-0.5.4}/tests/test_init.py +0 -0
  74. {overkill-0.5.2 → overkill-0.5.4}/tests/test_integration.py +0 -0
  75. {overkill-0.5.2 → overkill-0.5.4}/tests/test_json_extract.py +0 -0
  76. {overkill-0.5.2 → overkill-0.5.4}/tests/test_loop_engine.py +0 -0
  77. {overkill-0.5.2 → overkill-0.5.4}/tests/test_refactor_suggest.py +0 -0
  78. {overkill-0.5.2 → overkill-0.5.4}/tests/test_reporting.py +0 -0
  79. {overkill-0.5.2 → overkill-0.5.4}/tests/test_resume.py +0 -0
  80. {overkill-0.5.2 → overkill-0.5.4}/tests/test_retry.py +0 -0
  81. {overkill-0.5.2 → overkill-0.5.4}/tests/test_review_loop.py +0 -0
  82. {overkill-0.5.2 → overkill-0.5.4}/tests/test_self_review.py +0 -0
  83. {overkill-0.5.2 → overkill-0.5.4}/tests/test_time_utils.py +0 -0
  84. {overkill-0.5.2 → overkill-0.5.4}/tests/test_two_step_fix.py +0 -0
  85. {overkill-0.5.2 → overkill-0.5.4}/uninstall.sh +0 -0
  86. {overkill-0.5.2 → overkill-0.5.4}/uv.lock +0 -0
@@ -15,6 +15,7 @@ Every PR must pass the review loop (`overkill review-loop --dry-run`) before mer
15
15
 
16
16
  Always commit and push before ending work on any branch other than develop.
17
17
  Never commit directly to `main` or `develop`. All changes must go through branch → PR → review before merge.
18
+ Exception: syncing `main` into `develop` after a release does not require a PR (see Release Process step 4).
18
19
  Never rebase or force-push `main` or `develop` — this destroys shared history.
19
20
 
20
21
  ## PR Merge Process
@@ -38,6 +39,31 @@ git log HEAD..origin/<target-branch> --oneline
38
39
  - `develop` → `main`: `gh pr merge --merge` (**never** `--delete-branch` — `develop` is a long-lived branch)
39
40
  2. Switch to the target branch, pull, and delete the local feature branch (if applicable)
40
41
 
42
+ ## Release Process
43
+
44
+ 1. **Feature PR → develop**
45
+ - Create a feature branch, make changes, push
46
+ - Run `overkill review-loop --dry-run -n 3` — must pass
47
+ - Merge PR into `develop` (`gh pr merge --merge --delete-branch`)
48
+
49
+ 2. **Release branch → main**
50
+ - Create `release/x.y.z` from `develop`
51
+ - Bump version in `pyproject.toml` (`[project] version`)
52
+ - Commit: `chore: bump version to x.y.z`
53
+ - Push and open PR targeting `main`
54
+ - Run review loop — if the review produces fix commits, merge them into `develop` first (via PR) before merging the release PR into `main`
55
+ - Merge PR (`gh pr merge --merge --delete-branch`)
56
+
57
+ 3. **Publish to PyPI**
58
+ - Tag the merge commit explicitly: `gh release create vx.y.z --target <merge-commit-sha> --generate-notes`
59
+ - This triggers `publish.yml` → automatic PyPI publish
60
+
61
+ 4. **Sync develop**
62
+ - `git fetch origin`
63
+ - `git checkout develop && git pull origin develop`
64
+ - `git merge origin/main && git push origin develop`
65
+ - Release fixes are already in `develop` from step 2, so the only new commit from `main` is the release merge itself. If there are unexpected conflicts, investigate — `main` and `develop` have diverged.
66
+
41
67
  ## Commit Messages
42
68
 
43
69
  Principles:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: overkill
3
- Version: 0.5.2
3
+ Version: 0.5.4
4
4
  Summary: AI-powered code review loop — automates Codex review + Claude fix cycles
5
5
  Project-URL: Repository, https://github.com/modocai/mr-overkill
6
6
  Project-URL: Issues, https://github.com/modocai/mr-overkill/issues
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "overkill"
3
- version = "0.5.2"
3
+ version = "0.5.4"
4
4
  description = "AI-powered code review loop — automates Codex review + Claude fix cycles"
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }
@@ -350,7 +350,7 @@ def parse_review_loop_args(
350
350
  parser.error("RETRY_MAX_WAIT must be a positive integer")
351
351
  if retry_initial_wait < 1:
352
352
  parser.error("RETRY_INITIAL_WAIT must be a positive integer")
353
- budget_scope_str = rc.get("BUDGET_SCOPE", "module")
353
+ budget_scope_str = rc.get("BUDGET_SCOPE", "micro")
354
354
 
355
355
  prompts_dir = _resolve_prompts_dir(
356
356
  rc.get("PROMPTS_DIR", ".overkill/prompts/active")
@@ -165,7 +165,7 @@ class LoopConfig:
165
165
  # Retry / budget
166
166
  retry_max_wait: int = 7200
167
167
  retry_initial_wait: int = 30
168
- budget_scope: BudgetScope = BudgetScope.MODULE
168
+ budget_scope: BudgetScope = BudgetScope.MICRO
169
169
  diagnostic_log: bool = False
170
170
 
171
171
  # Paths
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes