Skip to content

fix(cli): soft-fail missing force-loaded --skills skill (no exit-1 worker crash) - #76

Merged
exiao merged 1 commit into
live-configfrom
fix/soft-fail-missing-skills-v2
Jul 1, 2026
Merged

fix(cli): soft-fail missing force-loaded --skills skill (no exit-1 worker crash)#76
exiao merged 1 commit into
live-configfrom
fix/soft-fail-missing-skills-v2

Conversation

@exiao

@exiao exiao commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Problem

A kanban worker spawned with hermes -p <lane> chat -q ... --skills <name> exit-1s before the agent starts when <name> isn't in that lane's own skills/ dir (per-profile dirs don't fall back to global ~/.hermes/skills/). The dispatcher reads exit-1 as a crash, retries, hits the identical wall, and burns the whole failure budget without the agent ever running.

Observed: t_b04f835d (ads-optimizer, nano-banana-pro). Same class as NousResearch#29415 (avoid-ai-writing).

Fix

cli.main() no longer raises on missing_skills. It warns to stderr (⚠ Skipping unknown force-loaded skill(s): ...) and continues starting the agent with the skills that resolved. A missing optional skill degrades the run; an agent that starts can still do the work or kanban_block intelligently. Exit-1 is preserved for genuinely unusable invocations (no prompt, bad profile).

Verification

  • pytest tests/cli/test_cli_preloaded_skills.py → 3 passed (unit test retargeted to warn-not-raise).
  • Live missing-skill: --skills does-not-existexit 0, stderr warning, agent produced PONG. No Unknown skill(s) string.
  • Live valid-skill regression: --skills render-cli → exit 0, no warning, agent ran (PONG2).

Companion audit (kanban t_d85833c1 Part 2)

All currently force-loaded lane skills already resolve as symlinks into the global tree (ads-optimizer: meta-ads-cli + nano-banana-pro; dev: bloom-cli, all enabled). This PR makes any future gap a warning, not a crash.

Patch note: ~/.hermes/plans/hermes-patches/soft-fail-missing-force-loaded-skill.md

…exit-1

A missing force-loaded skill no longer raises ValueError("Unknown skill(s)")
and exit-1s before the agent starts. cli.main() now warns to stderr and
continues with the skills that resolved, so a dispatched kanban worker degrades
the run (can still work or block intelligently) rather than thrashing the
dispatcher into burning its whole retry budget on the identical wall.

Exit-1 is preserved for genuinely unusable invocations (no prompt, bad
profile); only the missing-skill case is softened. Unit test retargeted to
assert warn-not-raise.

Patch note: ~/.hermes/plans/hermes-patches/soft-fail-missing-force-loaded-skill.md
Ref: kanban t_d85833c1 (observed t_b04f835d ads-optimizer nano-banana-pro)

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request modifies the CLI behavior to soft-fail when a force-loaded skill cannot be resolved. Instead of raising a ValueError and exiting, it now prints a warning to stderr and continues execution. The corresponding test has been updated to verify this warning behavior. I have no feedback to provide as there are no review comments.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

🔎 Lint report: fix/soft-fail-missing-skills-v2 vs origin/live-config

ruff

Total: 0 on HEAD, 0 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 0 pre-existing issues carried over.

ty (type checker)

Total: 11586 on HEAD, 11586 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 6091 pre-existing issues carried over.

Diagnostics are surfaced as warnings — this check never fails the build.

@exiao
exiao merged commit 9cbacca into live-config Jul 1, 2026
33 checks passed
@exiao
exiao deleted the fix/soft-fail-missing-skills-v2 branch July 1, 2026 05:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant