Chalk Labs
Need help deploying decision-desk?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/indigoai-us-decision-desk
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/decision-desk
Tools it pre-approves 16
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Bash(nodecore/scripts/super-conductor-decisions.mjs:*),Bash(hqmonitor:*),laneslinksend:*),Bash(bashcore/scripts/hq-session.sh:*),Bash(cat:*),Bash(ls:*),Read,
Show 4 more
AskUserQuestion,PushNotification,mcp__ccd_session_mgmt__set_session_title,mcp__ccd_session_mgmt__send_message
What's inside
- Skill name
decision-desk- Description
- The owner's decision desk for one /super-conductor link. It opens one picker per queued decision, writes the answer back to the link's decision queue, and does nothing else. Use when the user says "/decision-desk <link>", "open the decision desk", or "ask me the conductor's decisions here".
- License
- MIT
- Allowed tools
- Bash(node, core/scripts/super-conductor-decisions.mjs:*),, Bash(hq, monitor:*),, Bash(hq, lanes, link, send:*),, Bash(bash, core/scripts/hq-session.sh:*),, Bash(cat:*),, Bash(ls:*),, Read,, AskUserQuestion,, PushNotification,, mcp__ccd_session_mgmt__set_session_title,, mcp__ccd_session_mgmt__send_message
- Instructions
- 224 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# /decision-desk — the only session that asks the owner
**Input:** $ARGUMENTS
## What it is
The decision desk is the only session that opens owner pickers for a conduct
link. The conductor (`/super-conductor`, `/overnight`) never opens a picker:
it appends every owner item to the link's decision queue with
`super-conductor-decisions.mjs add` and this session asks it. An answer for a
child session is relayed by this session the moment the owner picks (Step
3b); an answer that goes back to a teammate on a channel or DM is relayed by
the conductor when its `SUPER-CONDUCTOR ANSWER` line arrives. The conductor's
turn is never held by a picker, so a decision reaches the owner as soon as it
is queued, and a child session has its answer seconds after the pick.
One picker per decision:
- The question text is the row's `question`, prefixed with who asked (the
row's `asked_by`, or its `source:ref` when `asked_by` is empty).
- Two to four options, taken from the row's `options`. The recommended
option goes first with the `(Recommended)` suffix on its label. Each
option's `description` is the row's option description.
- Up to four decisions per `AskUserQuestion` call, one question each (owner,
2026-10-21: "4 questions per picker"). Fewer when fewer are open. Critical
rows go in the first call on their own when any are open, so they are never
held behind routine ones.
## Step 1: Parse
`/decision-desk <link>` where `<link>` is the conduct link id (`cl-...`).
Without a link, read `workspace/reports/conduct/` and ask for the link with
one picker when more than one `*-decisions.jsonl` exists; with exactly one,
use it.
- Queue file: `workspace/reports/conduct/<link>-decisions.jsonl`.
- Desk file: `workspace/reports/conduct/<link>-desk.json`.
- Set the session title to `Decision desk · <link>` with
`mcp__ccd_session_mgmt__set_session_title`.
## Step 2: Arm the wake
Arm the watcher in the same turn, before the first drain. It is a persistent
monitor that delivers a `SUPER-CONDUCTOR DECISION` line into this session
once per new open row, and a `SUPER-CONDUCTOR STALE-DECISION` line once per
row still open after five minutes:
```bash
hq monitor start --persistent --json \
--target "session:claude:$CLAUDE_CODE_SESSION_ID" \
--description "decision desk <link>" \
-- node core/scripts/super-conductor-decisions.mjs watch \
--file workspace/reports/conduct/<link>-decisions.jsonl --for desk --interval 5 --stale-after 300
```
Always pass `--target`: in the desktop app `hq monitor` cannot find the
session on its own and fails with `monitor_target_unresolved`.
Record the returned monitor id in the desk file:
```json
{"link": "<link>", "monitor_id": "<id>", "session": "<this session's local_ id>", "started_at": "<ISO time>"}
```
Never run two watchers for one queue. Before starting, read the desk file
and `hq monitor list --json`; when the recorded monitor id is still listed,
reuse it. Re-arm only when the desk file has no monitor, when the heartbeat
reports `STOPPED`, or when `hq monitor list --json` no longer shows the
recorded id. Then overwrite the desk file with the new id.
The watcher keeps its own seen file next to the queue
(`<link>-decisions-desk-seen.json`), so a restart does not repeat lines.
## Step 3: Drain
Loop until the queue has no open row:
1. Claim up to four rows in one call:
`node core/scripts/super-conductor-decisions.mjs next --file <queue> --json --claim <desk name> --count 4`.
It prints a JSON array of up to four distinct open rows, oldest first,
and claims them all at once. When a critical row is open the array holds
only critical rows. A row another desk claimed in the last 15 minutes is
skipped; this desk's own claims are returned again, so a desk restarted
mid-picker re-asks them. Never call `next` more than once per picker: a
second call returns the same rows. Exit 3 means no open row is left;
stop the loop. With several desks, each
runs with `--lane merges|asks|general` on `next` and `watch`; the default
is one desk for every lane (owner, 2026-10-21: "one desk").
2. One `AskUserQuestion` with one question per claimed row, built as
described in "What it is".
3. Write each answer. `<text>` is the label the owner picked (without the
`(Recommended)` suffix), or their "Other" text verbatim.
- A row with a `relay` session or child (a child session's ask):
`node core/scripts/super-conductor-decisions.mjs answer --file <queue> --id <id> --answer "<text>" --desk <desk name> --relay-by desk`
then Step 3b in the same turn.
- Any other row (a teammate's request, the conductor's own item):
`node core/scripts/super-conductor-decisions.mjs answer --file <queue> --id <id> --answer "<text>" --desk <desk name>`.
The conductor relays it on its `SUPER-CONDUCTOR ANSWER` line.
- `--desk` is the name this desk claimed with. `answer` refuses a row
another desk claimed in the last 15 minutes: that desk's picker is open.
Exit 2 with "is claimed by" means skip the row; it is not this desk's.
4. Repeat from 1.
A `SUPER-CONDUCTOR DECISION` line arriving in this session is the wake:
send the owner one `PushNotification` with the open count only (never the
question text, which is often a teammate's message, and never options), then
run Step 3 on it. Every new
card pushes; the owner is not expected to be looking at this window. The line names one row and the open count; `next` is still the
source of truth for which row is asked first (oldest open, critical first).
When the owner says "drop", "not mine", "skip it", or words to that effect,
the row is dropped instead of answered, with their words as the reason:
`node core/scripts/super-conductor-decisions.mjs drop --file <queue> --id <id> --note "<their words>" --by desk`.
`drop` refuses an empty note.
## Step 3b: Relay a child session's answer
For a row answered with `--relay-by desk`, deliver the answer to the child in
the same turn, both ways (`hq-conduct-instruction-dual-delivery`), then markFrom indigoai-us/hq-pack-core-skills, MIT.
More from indigoai-us/hq-pack-core-skills
- 0.570score
daily-brief
indigoai-us
Build the user's Daily Brief across personal work and every permitted company.
SkillAFreshness: AClaude Code +9 - 0.565score
architect
indigoai-us
Find shallow modules and propose deepening refactors, ranked with file refs; never edits code.
SkillAFreshness: AClaude Code +9 - 0.565score
conduct-join
indigoai-us
Join this already-running session to a /conduct session as one of its children, so the conductor can send it instructions and receive its reports.
SkillAFreshness: AClaude Code +9 - 0.561score
capacity
indigoai-us
Show usage, limits and reset times for every signed-in AI account (Claude, Codex, Grok) as a card in chat, or a table in a terminal.
SkillAFreshness: AClaude Code +9 - 0.561score
codebase-design
indigoai-us
Vocabulary for designing deep modules and clean interfaces.
SkillAFreshness: AClaude Code +9 - 0.561score
conduct
indigoai-us
Orchestrator mode: coordinate only; small tasks go to subagents, worker areas to standing hq lanes.
SkillAFreshness: AClaude Code +9 - 0.558score
adr
indigoai-us
Capture qualifying architecture decisions as ADRs in the right HQ or repo location.
SkillAFreshness: AClaude Code +9 - 0.558score
accept
indigoai-us
Accept HQ membership invites from a magic link or raw token.
SkillAFreshness: AClaude Code +9 - 0.558score
commit-main
indigoai-us
Commit every dirty file in the current repo, only when on main.
SkillAFreshness: AClaude Code +9 - 0.558score
decision-queue
indigoai-us
Resolve pending user decisions one at a time, one picker per item.
SkillAFreshness: AClaude Code +9 - 0.558score
clean-worktree
indigoai-us
Merge an HQ worktree branch back into local main, then remove the worktree and branch.
SkillAFreshness: AClaude Code +9 - 0.558score
convert-codex
indigoai-us
Add Codex support to older Claude-first HQ roots without breaking Claude setup.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 23, 2026 (7 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from indigoai-us
- 0.570score
daily-brief
indigoai-us
Build the user's Daily Brief across personal work and every permitted company.
SkillAFreshness: AClaude Code +9 - 0.565score
conduct-join
indigoai-us
Join this already-running session to a /conduct session as one of its children, so the conductor can send it instructions and receive its reports.
SkillAFreshness: AClaude Code +9 - 0.565score
architect
indigoai-us
Find shallow modules and propose deepening refactors, ranked with file refs; never edits code.
SkillAFreshness: AClaude Code +9 - 0.561score
codebase-design
indigoai-us
Vocabulary for designing deep modules and clean interfaces.
SkillAFreshness: AClaude Code +9 - 0.561score
capacity
indigoai-us
Show usage, limits and reset times for every signed-in AI account (Claude, Codex, Grok) as a card in chat, or a table in a terminal.
SkillAFreshness: AClaude Code +9 - 0.561score
conduct
indigoai-us
Orchestrator mode: coordinate only; small tasks go to subagents, worker areas to standing hq lanes.
SkillAFreshness: AClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get decision-desk running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
decision-desk skill. Agent Mart. https://agentmart.dev/skills/indigoai-us-decision-desk (last updated 2026-10-24)