Repository navigation
microskills: don't report a tool as missing when python -m or uvx runs it - #139
Open
SakshamUboweja wants to merge 1 commit into
Open
SakshamUboweja wants to merge 1 commit into
SakshamUboweja wants to merge 1 commit into
Conversation
A bare `mypy` that fails with command not found was learned and injected as an absent tool even when `python -m mypy`, `uvx ruff` or `pipx run black` worked in the same session: `python -m X` was read as the interpreter, and uvx/pipx were not read at all, so the working run never named the tool. In the generic (plugin) reading, `<python> -m <checker>` is now a run_build form, and `uvx`, `uv tool run` and `pipx run` are launcher prefixes like `npx`. The bare form then becomes a FormRepair naming the working spelling, and a later working run retires an existing absent-tool fact. Launcher and interpreter words no longer count as a shared tool when one build form is checked against another. PYTHON_GIT and NODE_WEB read as before.
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.
What
microskills could wrongly tell the agent that a tool like
mypyis missing, even when the session had run it fine another way.Why
If
mypyfailed with "command not found" butpython -m mypy(oruvx,pipx run) worked later in the same session, microskills didn't notice the successful run. So it still learned and injected "mypyfails here with command not found".How
observe.py:python -m <tool>,uvx <tool>,uv tool run <tool>andpipx run <tool>are now recognized as running that tool.envfacts.py: these launchers aren't mistaken for the tool itself, sopython -m ruffworking doesn't count as a fix for a failingpython -m mypy.Now the agent is told "
mypyfails here;python -m mypyworks", and a working run removes an earlier "missing tool" fact. The experiment presets behave exactly as before.Tests
New cases in
tests/test_generic_microskills.pycover each way of running a tool, the suggested working command, and an old fact being removed. 13 of them fail onmainwithout this change.