Kanban tool visibility for orchestrator profiles and toolsets

NousResearch/hermes-agent · cluster 18968

Data as of

Nothing open on GitHub. Fix merged in #19427. Check it covers your case.

The short answer

0open issues
0open PRs
9items grouped
Known?
Yes. 9 related items grouped here, 2 issues already closed.
Fix event
A fix was merged to main in PR #19427. Check it covers your case. No release data is tracked.
Tracker
The maintainers' tracker marks this resolved, deciding PRs #19606, #35729. That is separate from the fix event.
Still open
Nothing open on GitHub.

These issues and fixes center on kanban tools not appearing correctly for orchestrator profiles depending on toolset configuration, including how wildcard aliases like 'all' and 'all/*' are handled. Related changes address which profiles can see kanban tools, worker identity claims in guidance, and documentation clarifying wildcard behavior.

Open issues0

No open issues.

Open PRs0

No open pull requests.

Fixes on record

Merged to main. A stamp counts the issues a fix is linked to.

  • #19427 fix(kanban): drop worker identity claim from KANBAN_GUIDANCE

    merged to main

    files: agent/prompt_builder.py

    Show the diff
    • agent/prompt_builder.py
      @@ -183,8 +183,8 @@ def _strip_yaml_frontmatter(content: str) -> str:
       )
       
       KANBAN_GUIDANCE = (
      -    "# You are a Kanban worker\n"
      -    "You were spawned by the Hermes Kanban dispatcher to execute ONE task from "
      +    "# Kanban task execution protocol\n"
      +    "You have been assigned ONE task from "
           "the shared board at `~/.hermes/kanban.db`. Your task id is in "
           "`$HERMES_KANBAN_TASK`; your workspace is `$HERMES_KANBAN_WORKSPACE`. "
           "The `kanban_*` tools in your schema are your primary coordination surface — "
  • #19606 fix(kanban): allow orchestrator profiles to see kanban tools via toolsets config

    merged to main

    files: tests/tools/test_kanban_tools.py, tools/kanban_tools.py

    Show the diff
    • tests/tools/test_kanban_tools.py
      @@ -467,8 +467,8 @@ def test_kanban_guidance_in_worker_prompt(monkeypatch, tmp_path):
               skip_memory=True,
           )
           prompt = a._build_system_prompt()
      -    # Header phrase
      -    assert "You are a Kanban worker" in prompt
      +    # Header phrase (identity-free — SOUL.md owns identity, layer 3 is protocol)
      +    assert "Kanban task execution protocol" in prompt
           # Lifecycle signals
           assert "kanban_show()" in prompt
           assert "kanban_complete" in prompt
    • tools/kanban_tools.py
      @@ -40,13 +40,31 @@
       # ---------------------------------------------------------------------------
       
       def _check_kanban_mode() -> bool:
      -    """Tools are available iff the current process has ``HERMES_KANBAN_TASK``
      -    set in its env, which the dispatcher sets when spawning a worker.
      +    """Tools are available when:
       
      -    Humans running ``hermes chat`` see zero kanban tools. Workers spawned
      -    by the kanban dispatcher (gateway-embedded by default) see all seven.
      +    1. ``HERMES_KANBAN_TASK`` is set (dispatcher-spawned worker), OR
      +    2. The current profile has ``kanban`` in its toolsets config
      +       (orchestrator profiles like techlead that route work via Kanban).
      +
      +    Humans running ``hermes chat`` without the kanban toolset see zero
      +    kanban tools. Workers spawned by the kanban dispatcher (gateway-
      +    embedded by default) and orchestrator profiles with the kanban
      +    toolset enabled see all seven.
           """
      -    return bool(os.environ.get("HERMES_KANBAN_TASK"))
      +    if os.environ.get("HERMES_KANBAN_TASK"):
      +        return True
      +
      +    # Check if the current profile has the kanban toolset enabled.
      +    # Uses load_config() which has mtime-based caching, so this adds
      +    # negligible overhead. The check_fn results are further TTL-cached
      +    # (~30s) by the tool registry.
      +    try:
      +        from hermes_cli.config import load_config
      +        cfg = load_config()
      +        toolsets = cfg.get("toolsets", [])
      +        return "kanban" in toolsets
      +    except Exception:
      +        return False
       
       
       # ---------------------------------------------------------------------------
  • #35729 docs(toolsets): clarify all/* wildcard does not enable kanban

    merged to main

    files: website/docs/reference/toolsets-reference.md

4 PRs closed without merging

From the close comments: duplicate 2 · merged via another change 1 · superseded by another PR 1

  • #18970 fix: allow kanban tools for orchestrator profiles with kanban toolset · merged via another change → #19606, #19427, #18971, #18991, #18968
  • #18971 fix(tools): allow orchestrator profiles to see kanban tools via toolsets config · duplicate → #18970, #19606
  • #18991 fix(kanban): enable kanban tools for profiles with kanban in toolsets config · duplicate → #18970, #18971, #19606
  • #35588 fix(kanban): honor all toolset aliases · superseded by another PR → #35729, #35581
Closed issues · 2
  • Closed#18968Kanban tools not visible to orchestrator profiles with kanban toolset enabled
  • Closed#35581[Bug]: kanban tools silently hidden when profile uses toolsets: ["all"] — check_fn ignores the all/* alias
How this cluster was grouped
  • Link evidence (partly structural links): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
  • Members outside that structural core may belong to a different underlying problem.
  • Pairwise link density 0.20: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. 1.00 means every pair is linked.

Pick up a Lab task

Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.

Open the Lab

At a glance

Merged PRs
#19427, #19606, #35729
Closed issues
2
Attempts
4 PRs closed without merging
Fix link checked
31 May 2026

For your agent

The same facts, typed.