Skip to content
Back to skills

Coordinator Dashboard Human Loop

ASecurity

You own boards the HUMAN reads — the reference shape is the Brainstorm Steward console: ① NEED queue (unified, oldest-first, each an action-pick) ② roster health ③ owner decisions (pending + recently-resolved) ④ pipeline status. Surface basics live in `using-the-dashboard` — invoke it for the CLI shapes and the live-vs-coming honesty table. THIS skill carries the loop mandate.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agents

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add thrum-team/thrum-pro --skill coordinator-dashboard-human-loop --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Coordinator Dashboard Human Loop?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Coordinator Dashboard Human Loop
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thrum-team-coordinator-dashboard-human-loop-thrum-pro/badge)](https://www.skillsdirectory.com/skills/thrum-team-coordinator-dashboard-human-loop-thrum-pro)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: coordinator-dashboard-human-loop
description:
  "Use when the coordinator publishes or maintains a dashboard board FOR the
  human owner (roster, NEED queue, owner decisions, pipeline) or routes owner
  answers from a dashboard back to agents. Loads the human-loop mandate - a
  posted question is a PROMISE — it stays answerable and visible until answered,
  and nothing on the board disappears silently on your side."
# source: claude-plugin/skills/coordinator-dashboard-human-loop/SKILL.md
---

## Coordinator dashboard: the human loop

You own boards the HUMAN reads — the reference shape is the Brainstorm Steward
console: ① NEED queue (unified, oldest-first, each an action-pick) ② roster
health ③ owner decisions (pending + recently-resolved) ④ pipeline status.
Surface basics live in `using-the-dashboard` — invoke it for the CLI shapes and
the live-vs-coming honesty table. THIS skill carries the loop mandate.

### 🔴 The mandate: posted questions don't disappear until answered

When a board carries a question for the human (an action-pick), that question is
a PROMISE with four parts:

1. **Visible** — it stays on the board (status PENDING) until answered or
   explicitly withdrawn by YOU (update its text to withdrawn, don't just delete
   it).
2. **Answerable** — an action-pick is answered in the UI, and the answer arrives
   as a message. Pair every board question with its answering channel (the NEED
   also routes via message/steward) so the human never hits a dead control.
3. **Tracked** — check `thrum dashboard results` after every relevant nudge; an
   answer arrives as a message carrying `question_id` + pick + optional text.
   Unread answers + a PENDING widget = you broke the loop.
4. **Closed** — on consuming an answer, log the resolution in your decisions
   list and mark the pick done with `thrum dashboard update <widget-id>`,
   resubmitting the whole widget with `"status": "resolved"`. `dashboard show`
   prints an answered pick as `ANSWERED (<pick>)` whatever its status, and a
   resolved pick with no answer as `RESOLVED`; `dashboard results --unanswered`
   leaves out answers whose pick is `resolved`. If something else wrote the
   board first, your `update` can be rejected as an `expected_rev` mismatch —
   re-read with `dashboard show` and resubmit against the fresh `rev` (see
   `using-the-dashboard`).

### Authoring discipline

- **One question, one action-pick.** Don't bundle three rulings into one widget
  — the human answers picks discretely (that's why pick+optional-text won over
  free-text).
- **Options carry the tradeoff.** Each option's label states the choice AND its
  one-line consequence ("Live-only — no new migration"); the human should not
  need `get` to understand a vote. Set `allow_text: true` — "B, but weigh X" is
  how owners actually answer.
- **Board hygiene is part of the loop.** Stale roster stats and resolved
  pipelines rot the board's credibility; refresh stat-rows when state moves and
  prune sections that no longer serve. The user can delete any widget SILENTLY
  (you are not nudged) — a widget that vanished was seen and dismissed; check
  `show` before reposting.
- **`clear` is a reset, not an archive.** Need history? It lives in the answer
  messages and your memories, not on the board.

### Routing answers

An answer message is routed to the OWNING agent of the question (for steward
consoles: relay to the originating brainstormer, in the owner's words — the pick
plus their typed nuance). Relay the TEXT the human wrote; paraphrasing away
their nuance defeats the optional-text feature.

### Availability

The board renders in the web UI Dashboard tab and the `thrum dashboard` CLI is
available; the mandate sections of this skill apply. The surface and CLI
contract are in `using-the-dashboard`.

### Refs to other skills

- `using-the-dashboard` — surface + CLI contract + honesty table (invoke first)
- `coordinator-running-brainstorm-cycles` — where board NEEDs come from
- `coordinator-managing-state-and-lifecycle` — state ownership the boards
  reflect

Files in this skill

  • SKILL.md4 KB
  • agents/openai.yaml833 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.