hermes - 💡(How to fix) Fix Bug: kanban_swarm.py references missing skill avoid-ai-writing, synthesizer crashes in retry loop (v0.14.0)

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

When running a Kanban swarm via hermes kanban swarm "<goal>" --worker ... --verifier ... --synthesizer ..., the synthesizer card is created with skills: ["avoid-ai-writing"] hard-coded in hermes_cli/kanban_swarm.py. However, the avoid-ai-writing skill is not present in the v0.14.0 bundle, and hermes skills search "ai-writing" returns zero results from any configured registry.

As a result, the synthesizer worker crashes with Error: Unknown skill(s): avoid-ai-writing every time it spawns. The dispatcher retries (default max_retries: 2), then gave_up, then re-promotes the task — leading to an infinite crash loop until a human manually blocks the task.

Error Message

Summary

When running a Kanban swarm via hermes kanban swarm "<goal>" --worker ... --verifier ... --synthesizer ..., the synthesizer card is created with skills: ["avoid-ai-writing"] hard-coded in hermes_cli/kanban_swarm.py. However, the avoid-ai-writing skill is not present in the v0.14.0 bundle, and hermes skills search "ai-writing" returns zero results from any configured registry.

As a result, the synthesizer worker crashes with Error: Unknown skill(s): avoid-ai-writing every time it spawns. The dispatcher retries (default max_retries: 2), then gave_up, then re-promotes the task — leading to an infinite crash loop until a human manually blocks the task.

Reproduction

  1. Run hermes gateway run & (or systemd service)
  2. Run any swarm:

Root Cause

Confirmed root cause

Fix Action

Fix / Workaround

As a result, the synthesizer worker crashes with Error: Unknown skill(s): avoid-ai-writing every time it spawns. The dispatcher retries (default max_retries: 2), then gave_up, then re-promotes the task — leading to an infinite crash loop until a human manually blocks the task.

Workaround validated

---
name: avoid-ai-writing
description: Local workaround for Hermes v0.14 missing built-in skill.
version: 1.0.0
license: MIT
metadata:
  hermes:
    tags: [workaround, placeholder, local, kanban-swarm]
    category: software-development
---
# Placeholder

Code Example

## Summary

When running a Kanban swarm via `hermes kanban swarm "<goal>" --worker ... --verifier ... --synthesizer ...`, the synthesizer card is created with `skills: ["avoid-ai-writing"]` hard-coded in `hermes_cli/kanban_swarm.py`. However, the `avoid-ai-writing` skill is **not present in the v0.14.0 bundle**, and `hermes skills search "ai-writing"` returns zero results from any configured registry.

As a result, the synthesizer worker crashes with `Error: Unknown skill(s): avoid-ai-writing` every time it spawns. The dispatcher retries (default max_retries: 2), then `gave_up`, then re-promotes the task — leading to an infinite crash loop until a human manually blocks the task.

## Reproduction

1. Run `hermes gateway run &` (or systemd service)
2. Run any swarm:

---

3. Wait ~3-5 minutes
4. Workers complete OK, verifier completes OK, then synthesizer enters infinite retry loop

## Error output

---

`hermes kanban log <synthesizer-task-id>` shows:

---

## Confirmed root cause

---

The skill is hard-coded in `kanban_swarm.py`. Skills search confirms it's missing from the bundle:

---

The skill `writing-plans` exists — possibly the intended target after a v0.13 → v0.14 rename that wasn't fully propagated to `kanban_swarm.py`?

## Workaround validated

Create a local placeholder skill at `~/.hermes/skills/software-development/avoid-ai-writing/SKILL.md`:

---

After this workaround, the synthesizer completes successfully in 1 run (~30s typical). Tested on a swarm of 3 modèles (Sonnet workers + Opus verifier + Sonnet synthesizer) — full lifecycle completed without retries.

## Suggested fix

Either:
- (a) **Add `avoid-ai-writing` to the bundled skills** (preferred if a real skill content was intended)
- (b) **Remove the `skills=["avoid-ai-writing"]` reference** from `kanban_swarm.py` if the skill was removed intentionally
- (c) **Rename to `writing-plans`** if the intent was a refactor that didn't complete

## Impact

- **Every Kanban swarm v1 fails** on its synthesizer phase in v0.14.0
- Multiple consecutive `gave_up` events fill the events table
- Users have to manually intervene (block task) or apply the workaround
- The retry loop consumes LLM tokens (each crash run launches `run_agent` which loads the env even if it crashes immediately) — minor cost but observable

## Environment

- Hermes Agent version: v0.14.0 (2026.5.16)
- OS: Ubuntu 22.04.5 LTS
- Tested with 3 swarms (`pmswarm-poc-test`, `pmswarm-multimodal`, `test-fix-skill`) — synthesizer crashes in all 3 without the workaround
RAW_BUFFERClick to expand / collapse
## Summary

When running a Kanban swarm via `hermes kanban swarm "<goal>" --worker ... --verifier ... --synthesizer ...`, the synthesizer card is created with `skills: ["avoid-ai-writing"]` hard-coded in `hermes_cli/kanban_swarm.py`. However, the `avoid-ai-writing` skill is **not present in the v0.14.0 bundle**, and `hermes skills search "ai-writing"` returns zero results from any configured registry.

As a result, the synthesizer worker crashes with `Error: Unknown skill(s): avoid-ai-writing` every time it spawns. The dispatcher retries (default max_retries: 2), then `gave_up`, then re-promotes the task — leading to an infinite crash loop until a human manually blocks the task.

## Reproduction

1. Run `hermes gateway run &` (or systemd service)
2. Run any swarm:
   ```bash
   hermes kanban swarm "Test goal" --worker "default:Worker-A" --verifier <profile> --synthesizer default
  1. Wait ~3-5 minutes
  2. Workers complete OK, verifier completes OK, then synthesizer enters infinite retry loop

Error output

[2026-05-20 16:31] t_xxxxx crashed (@default) {'pid': 9021, 'claimer': 'vm:8466', 'exit_kind': 'nonzero_exit', 'exit_code': 1}

hermes kanban log <synthesizer-task-id> shows:

Error: Unknown skill(s): avoid-ai-writing
Error: Unknown skill(s): avoid-ai-writing
Error: Unknown skill(s): avoid-ai-writing

Confirmed root cause

$ grep -rE "avoid-ai-writing" ~/.hermes/hermes-agent/
~/.hermes/hermes-agent/hermes_cli/kanban_swarm.py:        skills=["avoid-ai-writing"],

The skill is hard-coded in kanban_swarm.py. Skills search confirms it's missing from the bundle:

$ hermes skills search "avoid-ai-writing"
Searching for: avoid-ai-writing
No skills found matching your query.

$ hermes skills list | grep -iE "writ|avoid"
│ songwriting-and-ai-music      │ creative             │ builtinbuiltin │ enabled │
│ research-paper-writing        │ research             │ builtinbuiltin │ enabled │
│ writing-plans                 │ software-development │ builtinbuiltin │ enabled │

The skill writing-plans exists — possibly the intended target after a v0.13 → v0.14 rename that wasn't fully propagated to kanban_swarm.py?

Workaround validated

Create a local placeholder skill at ~/.hermes/skills/software-development/avoid-ai-writing/SKILL.md:

---
name: avoid-ai-writing
description: Local workaround for Hermes v0.14 missing built-in skill.
version: 1.0.0
license: MIT
metadata:
  hermes:
    tags: [workaround, placeholder, local, kanban-swarm]
    category: software-development
---
# Placeholder

After this workaround, the synthesizer completes successfully in 1 run (~30s typical). Tested on a swarm of 3 modèles (Sonnet workers + Opus verifier + Sonnet synthesizer) — full lifecycle completed without retries.

Suggested fix

Either:

  • (a) Add avoid-ai-writing to the bundled skills (preferred if a real skill content was intended)
  • (b) Remove the skills=["avoid-ai-writing"] reference from kanban_swarm.py if the skill was removed intentionally
  • (c) Rename to writing-plans if the intent was a refactor that didn't complete

Impact

  • Every Kanban swarm v1 fails on its synthesizer phase in v0.14.0
  • Multiple consecutive gave_up events fill the events table
  • Users have to manually intervene (block task) or apply the workaround
  • The retry loop consumes LLM tokens (each crash run launches run_agent which loads the env even if it crashes immediately) — minor cost but observable

Environment

  • Hermes Agent version: v0.14.0 (2026.5.16)
  • OS: Ubuntu 22.04.5 LTS
  • Tested with 3 swarms (pmswarm-poc-test, pmswarm-multimodal, test-fix-skill) — synthesizer crashes in all 3 without the workaround

---

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING