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.
- {overkill-0.5.2 → overkill-0.5.4}/AGENTS.md +26 -0
- {overkill-0.5.2 → overkill-0.5.4}/PKG-INFO +1 -1
- {overkill-0.5.2 → overkill-0.5.4}/pyproject.toml +1 -1
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/cli.py +1 -1
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/models.py +1 -1
- {overkill-0.5.2 → overkill-0.5.4}/.github/workflows/publish.yml +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/.github/workflows/test.yml +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/.gitignore +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/.overkillrc.example +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/.python-version +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/.refactorsuggestrc.example +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/CLAUDE.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/GEMINI.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/LICENSE +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/README.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/install.sh +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-fix-execute.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-fix.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-refactor-fix-execute.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-refactor-fix.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-refactor-full.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-refactor-layer.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-refactor-micro.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-refactor-module.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-review.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/claude-self-review.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/codex-refactor-full.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/codex-refactor-layer.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/codex-refactor-micro.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/codex-refactor-module.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/codex-review.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/gemini-refactor-full.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/gemini-refactor-layer.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/gemini-refactor-micro.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/gemini-refactor-module.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/active/gemini-review.prompt.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/reference/claude-code-review-plugin.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/reference/claude-security-review.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/prompts/reference/codex-review-original.md +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/__init__.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/__main__.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/agents.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/budget/__init__.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/budget/claude.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/budget/codex.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/budget/gemini.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/budget_report.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/classify.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/data/__init__.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/git_ops.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/init.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/json_extract.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/loop_engine.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/refactor_suggest.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/reporting.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/resume.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/retry.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/review_loop.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/self_review.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/time_utils.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/src/mr_overkill/two_step_fix.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/__init__.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/conftest.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_agents.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_budget_claude.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_budget_codex.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_budget_gemini.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_budget_policy.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_budget_report.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_classify.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_cli.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_git_ops.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_init.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_integration.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_json_extract.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_loop_engine.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_refactor_suggest.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_reporting.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_resume.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_retry.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_review_loop.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_self_review.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_time_utils.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/tests/test_two_step_fix.py +0 -0
- {overkill-0.5.2 → overkill-0.5.4}/uninstall.sh +0 -0
- {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.
|
|
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
|
|
@@ -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", "
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|