Conversation
The default system prompt and the run_shell tool description both listed `mv` as a run_shell example while never mentioning the dedicated `move` tool, so the model was steered toward shell mv for ordinary renames — losing the surgical, undoable move. Add `move` to the prompt's tool list (PREFER over mv) and drop `mv` from both run_shell examples (cp stays: there is no dedicated copy tool). Guidance-only; no behavior change. Bump to 0.4.2.
There was a problem hiding this comment.
🟢 Approval recommended
The changes are guidance-only, consistent across prompt/tool descriptions, and the version bump is applied coherently.
Pull request overview
Adjusts opendot’s tool guidance so routine file moves/renames are steered to the dedicated structured move tool (surgical + undoable) instead of shell mv, aligning the prompt with the actual tool surface and fixing #160.
Changes:
- Adds
moveto the default system prompt tool list and explicitly marks it as preferred overmv. - Removes
mvfromrun_shellusage examples and adds guidance to prefermovewhen applicable. - Bumps package version from
0.4.1to0.4.2.
File summaries
| File | Description |
|---|---|
| src/opendot/tools/local.py | Updates run_shell tool description to stop advertising mv and to prefer the structured move tool. |
| src/opendot/agent/prompt.py | Updates the default system prompt tool list to include move and removes mv from run_shell examples. |
| src/opendot/init.py | Bumps __version__ to 0.4.2. |
| pyproject.toml | Bumps package version to 0.4.2. |
Review details
- Files reviewed: 4/4 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #160.
Problem
There's a dedicated
movetool (local.py— "Move or rename a file or directory (surgical, undoable)"), but two pieces of tool guidance steered the model toward shellmvinstead:prompt.py) listedmvas arun_shellexample and never mentionedmove;run_shelltool description itself said "npm, git, build, mv, cp, etc."So for an ordinary rename the model would reach for shell
mv— which routes through the classifier/confirm path and isn't the surgical, undoable operation themovetool provides.Fix
moveto the prompt's tool list, marked PREFER overmv.mvfrom bothrun_shellexample lists.cpstays — there is no dedicated copy tool, so shellcpremains correct.Guidance-only; no code behavior changes. 369 passed, ruff clean. Bumped to 0.4.2.
Thanks @22373448 for the well-grounded report (and the manual verification note).