hermes - 💡(How to fix) Fix feat(swarm): support custom verifier/synthesizer body + skills

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…

Fix Action

Fix / Workaround

Current workaround

Code Example

# Python API
create_swarm(
    ...
    verifier_body: Optional[str] = None,
    verifier_skills: Optional[list[str]] = None,
    synthesizer_body: Optional[str] = None,
    synthesizer_skills: Optional[list[str]] = None,
) -> SwarmCreated

---

# CLI
hermes kanban swarm "goal" \
  --worker scraper:task1:skill \
  --verifier scraper \
  --synthesizer scraper \
  --verifier-body "$(cat verifier_body.md)" \
  --synthesizer-body "$(cat synthesizer_body.md)" \
  --verifier-skills kanban-worker \
  --synthesizer-skills kanban-worker
RAW_BUFFERClick to expand / collapse

Problem

hermes kanban swarm currently hardcodes the verifier and synthesizer task bodies and skills:

  • Verifier: "Review every worker handoff and blackboard update. Gate the swarm: complete only with metadata {\"gate\": \"pass\"}..." with requesting-code-review skill
  • Synthesizer: "Synthesize the verified worker outputs into the final deliverable..." with avoid-ai-writing skill

This makes swarm unusable for any pipeline that maps verifier/synthesizer roles differently than "code review → write final output".

Use case: music-daily-recs (real production pipeline)

Our pipeline uses 21 parallel Camoufox scraper workers, then:

  1. Verifier → runs merge_scraped.py to combine scraper outputs + validates data integrity, then gates pass/block
  2. Synthesizer → runs process_reviews.py (MiniMax concurrent scoring) → generate_report.py → git push → Telegram → archive

This is a legitimate verifier+synthesizer split, just with different semantics than code review. Currently we work around the hardcoded bodies by invoking kb.create_task() directly from our wrapper script — which works but bypasses the swarm abstraction.

Desired API

# Python API
create_swarm(
    ...
    verifier_body: Optional[str] = None,
    verifier_skills: Optional[list[str]] = None,
    synthesizer_body: Optional[str] = None,
    synthesizer_skills: Optional[list[str]] = None,
) -> SwarmCreated
# CLI
hermes kanban swarm "goal" \
  --worker scraper:task1:skill \
  --verifier scraper \
  --synthesizer scraper \
  --verifier-body "$(cat verifier_body.md)" \
  --synthesizer-body "$(cat synthesizer_body.md)" \
  --verifier-skills kanban-worker \
  --synthesizer-skills kanban-worker

Design notes

  • None = current hardcoded defaults (backward compatible)
  • Skills default to the current hardcoded lists when body/skills is not provided
  • The swarm context suffix (goal, root_id, protocol notes) should still be appended to custom bodies so workers understand the swarm protocol
  • CLI could accept via --verifier-body (inline string) or --verifier-body-file <path> for multi-line content

Current workaround

See https://github.com/pty819/music-record/blob/main/bin/kanban-swarm.py — we replicate create_swarm() logic using kb.create_task() directly, which gives us full control over body + skills but loses the abstraction layer. It works, but any swarm protocol changes (blackboard format, topology comments, idempotency improvements) would need manual sync.

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