Repository navigation
Replacement: validate forced skills at card creation - #107868
gustavohsouza wants to merge 1 commit into
Conversation
|
Ran into this while writing a card that carries An unassigned card plus a skill name fails outright. # this PR's logic, verbatim, against a throwaway HERMES_HOME
A unassigned + valid name : ValueError -> profile name cannot be empty
B disabled name for assignee: NO RAISE -> None
C unknown name (control) : ValueError -> refused: ['nope-skill']
D unassigned + no skills : NO RAISE -> None
# a loader-delegating variant, same fixtures
E unassigned + valid name : no raise
F disabled name for assignee: refused -> "Skill 'demo-skill' is disabled. ..."So A disabled skill still passes the check. The control (C) matters here: an unknown name is refused either way, so the check itself works. The two cases above are just gaps in what it asks. Asking the loader rather than walking the directory covers both, and it would inherit whatever else the loader resolves today. Worth checking whether plugin or bundled skill directories are inside that walk: if they aren't, a name that only resolves through a plugin would be refused even though the worker loads it fine. I have the loader-delegating version on a local branch, with tests for the disabled case and the unassigned case. Happy to fold it in here if you would rather keep one PR on this concern than two. |
What changed
How it was verified
uv run --extra dev pytest tests/tools/test_kanban_tools.py tests/hermes_cli/test_kanban_review_lifecycle.py tests/hermes_cli/test_kanban_swarm.py -q-> 58 passed in 6.03suv run --extra dev ruff check hermes_cli/kanban_db.py tests/tools/test_kanban_tools.py tests/hermes_cli/test_kanban_review_lifecycle.py tests/hermes_cli/test_kanban_swarm.py-> All checks passed.git diff --check-> clean.What was not tested