Skip to content
Back to skills

Ask

BSecurity

> Rules v3 (Ryan, 2026-08-15 → 08-17). Applies to every Catalyst-managed Linear project and every agent, > Claude or Codex. Full plugin verb: **CTL-1922**. **Paths.** Commands below name files inside this skill's own directory as `${CLAUDE_SKILL_DIR}/…`. Claude Code fills that in. On any other harness, set CLAUDE_SKILL_DIR to the absolute directory that contains this SKILL.md before running them. If you cannot, stop and report `skill_dir_unresolved`.

  • 20 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 3, 2026
ai-agentsbashnode

Works with

  • claude code
  • cli

Security analysis

B88/100
  • criticalSends environment variables or credentials to an external URL

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

Scanned September 20, 2026

npx -y skills add coalesce-labs/catalyst --skill ask --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ask?

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

Security grade badge for Ask
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/coalesce-labs-ask/badge)](https://www.skillsdirectory.com/skills/coalesce-labs-ask)

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: ask
description:
  Ask/decision tickets ("what needs me") — the Catalyst-wide SOP for raising a human decision as a Linear
  ticket, replying in-thread as the app actor, and closing it when the answer lands. Use whenever an agent
  needs a human to decide or click something, or for any ticket labelled `catalyst-ask` / `ask/decision`.
---

# Ask / decision tickets — SOP (Catalyst-wide)

> Rules v3 (Ryan, 2026-08-15 → 08-17). Applies to every Catalyst-managed Linear project and every agent,
> Claude or Codex. Full plugin verb: **CTL-1922**.

**Paths.** Commands below name files inside this skill's own directory as `${CLAUDE_SKILL_DIR}/…`. Claude Code fills that in. On any other harness, set CLAUDE_SKILL_DIR to the absolute directory that contains this SKILL.md before running them. If you cannot, stop and report `skill_dir_unresolved`.

## 0. Setup check (first, every session)

`node "${CLAUDE_SKILL_DIR}/scripts/identity-report.mjs"` — one line per identity (tenant, human, team, cloud host), CTL-2300. An `unresolved` line is a stop-and-say: this skill files a decision **for** a human **on** a team, and an unresolved identity there is an ask that reaches nobody while looking filed.

## 1. What an ask ticket is

A ticket that exists ONLY to obtain one human decision or action. It is **not** the work — that lives on its own tickets, which the ask `blocks →`. Anything reaching the human as "needs you" **must be an ask**, never a status paragraph.

## 2. Creating one (the raising agent)

**Then use the verb** — it builds the body, files the ticket, reads it BACK out of Linear, and proves the decision trigger can parse the options AND that every `--blocks` relation landed. It exits **2** rather than leaving you an ask that can never be answered, or that answers into the void:

```bash
TEAM="$(jq -r '.catalyst.linear.teamKey' .catalyst/config.json)"   # or omit --team entirely; the verb resolves it
node "${CLAUDE_SKILL_DIR}/scripts/ask.mjs" create \
  --team "$TEAM" --priority 2 \
  --title "ASK: <one line>" \
  --why "<what it unblocks>" \
  --option "<option A>" --option "<option B>" \
  --default "<what happens if silent>" --blocks CTL-NNNN
#   --dry-run   print the body and the parsed options without writing
```

⛔ **`--option` (≥2), `--default` and `--blocks` are REQUIRED** (CTL-2157) — the verb refuses without them. `--blocks` is the load-bearing one: an ask that blocks nothing answers into the void (§3).

Why a verb rather than a documented snippet, field-by-field detail, the raw `linearis` form, and the exact body grammar: **[`references/creating.md`](references/creating.md)**.

## 3. Answering (the human)

A comment on the ticket — top-level or a threaded reply — reaches the monitor. One word is enough ("A", "yes", "flip now"). Deciding by moving state without a comment is only seen on the next sweep.

**The comment also WAKES the work** (CTL-2157): the daemon fans it out along the ask's `blocks` relations and unparks each agent waiting on them. Only a human's comment does this.

## 4. Replying (any agent) — the form

⛔ **The threading, identity and 👀 rules are not repeated here.** They are shared by every role and live in one place: **[`references/threading.md`](references/threading.md)** — one-level threads, the app actor
+ `createAsUser` tag grammar, why `linearis issues discuss` corrupts state, the newest-first sort, and
what a reply must contain. Read it before your first reply.

```bash
direnv exec . node "${CLAUDE_SKILL_DIR}/scripts/linear-reply.mjs" CTL-NNNN --as <ROLE> --body-file <path>
```

## 5. Closing (the raising agent)

When the answer satisfies the ask, **verify that it does** (e.g. the token really carries the permission), then:

```bash
node "${CLAUDE_SKILL_DIR}/scripts/ask.mjs" accept CTL-NNNN --as <ROLE> --body "accepted — …"
#   --body-file <path>  for anything longer than a one-line body; --body REFUSES a path (CTL-2204)
```

It replies in-thread as the app actor and moves the ticket to Done. The two deliberate refusals, the manual equivalent, and the defect case: **[`references/closing.md`](references/closing.md)**.

## 6. Where things live

- **Reporting to the human:** rank by blast radius (work held × priority), not age — [`references/triage.md`](references/triage.md), `scripts/ask-triage.sh`.
- Ask view **My decisions — what needs me** (a decided item leaves it); the board is a summary, not the record.
- Related skills: `catalyst-dev:linearis`, `catalyst-dev:create-handoff`, `catalyst-dev:steward`.
- Measured Linear facts this SOP rests on (one-level threads CTL-1891; the app actor cannot create
  states/labels/views CTC-626): `references/threading.md` and `references/creating.md`.

Files in this skill

  • SKILL.md3.9 KB
  • references/closing.md1.3 KB
  • references/creating.md4.9 KB
  • references/threading.md6.1 KB
  • references/triage.md5.8 KB

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.