You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
On an unrecognised distro the prompt tells the model to use GetSystemState, which propose_plan does not offer there #672
build_system_prompt sends every host that is neither Fedora- nor Debian-family to render_generic_prompt, which fills the state-action placeholder with the Fedora one:
GetSystemState is in FEDORA_ONLY_ACTIONS, so it is not in the propose_plan enum on those hosts, while the prompt's examples, its "what OS am I running?" guidance and PREFERENCE_TOOLS all name it. PREFERENCE_TOOLS tells the model to finish a remember-only intent with a single state-action step, so "remember that I prefer vim" has no allowed way to finish.
Why it matters
The model proposes GetSystemState. Either the schema rejects it and the turn is spent, or the CLI's routing guard refuses it after the provider call (apps/sysknife-cli/src/distro_routing.rs). The user gets a refusal for "what OS am I running?" on exactly the hosts where it is the first question.
Scope
Give the generic renderer a state action that is offered on other hosts, or a renderer variant with no state action and wording to match.
Keep None (no hint at all) working as it does today: available_on allows everything there.
Tests first
For each hint in Fedora, Ubuntu, Debian, other and none, render the prompt, collect every action name it mentions that is in KNOWN_ACTIONS, and assert each is in that hint's propose_plan enum. It fails today for other. This test also catches the next prompt-versus-schema leak like #657.
Difficulty
medium: the fix is small, but the shared prompt blocks assume a state action exists, so the wording needs a careful pass.
Getting started
CONTRIBUTING.md has the build and test commands. No CLA and no copyright waiver. The project is MIT.
@QinXi-ai, if you want this one, it's yours. It's prompt-versus-schema agreement, the area of your #256 and #626: on an unrecognised distro the prompt names a state action the propose_plan enum leaves out.
Say so here and I'll assign it to you. No pressure either way.
Activity
vladimirrott commentedon Oct 26, 2026
@QinXi-ai, if you want this one, it's yours. It's prompt-versus-schema agreement, the area of your #256 and #626: on an unrecognised distro the prompt names a state action the
propose_planenum leaves out.Say so here and I'll assign it to you. No pressure either way.