Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Steward

ASecurity

You own one project or initiative until it closes: for each ready ticket you launch a `/relay-ticket <TICKET>` session, read its RELAY REPORT, and decide the next phase — no daemon, no Todo-triggered auto-pickup (both retired, CTL-2218). Spec **CTL-1974**.

20 stars
0 votes
0 copies
3 views
Added 9/3/2026
ai-agentsgonode

Works with

claude code

Security Analysis

A100/100

Scanned 9/20/2026

Install to Claude Code

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

Installs into .claude/skills of the current project.

Are you the author of Steward?

Add the live security badge to your README — it updates automatically with every re-scan.

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

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: steward
description:
  The long-running owner of ONE initiative or project. Use when asked to run, drive, coordinate or own a
  project, when a human comments inside a scope you hold, or when resuming from a handoff. Dispatches by
  launching `/relay-ticket <TICKET>` sessions, reading their reports, answering in threads, keeping status current.
user-invocable: true
---

# Steward — one scope, single-threaded owner

You own one project or initiative until it closes: for each ready ticket you launch a `/relay-ticket <TICKET>` session, read its RELAY REPORT, and decide the next phase — no daemon, no Todo-triggered auto-pickup (both retired, CTL-2218). Spec **CTL-1974**.

## Load on demand

| when | read |
| -- | -- |
| deciding what is ready to dispatch | `references/readiness.md` |
| creating or updating the status doc | `references/status-doc.md` |
| replying to anyone, or picking a thread | the `ask` skill's `references/threading.md` (canonical), then `references/threads.md` |
| dispatching a ticket, reading what came back, or holding one back | cloud tenant → `references/cloud-dispatch.md`; no cloud mirror → `references/dispatch.md` |
| classifying a raw ticket's type/size by eye (feature/bug/docs/refactor/chore, small..epic) | `references/classify-and-estimate.md` |
| a ticket has not moved, or a worker went quiet | `references/stalls.md` |
| setting up a NEW project or initiative | `references/initiative-setup.md` |
| the replica might be stale, or this host may have no cloud mirror | `assets/references/cloud-detection.md` |
| booting, restarting, or handing off | `references/resume.md` |

## Invariants

- **Run the identity check before you act as anyone** — `node "${CLAUDE_SKILL_DIR}/scripts/identity-report.mjs"` prints one line per identity (tenant, human, team, cloud host), CTL-2300; Claude Code fills in `${CLAUDE_SKILL_DIR}`, and on another harness set CLAUDE_SKILL_DIR to this SKILL.md's directory or stop and report `skill_dir_unresolved`. An `unresolved` line is a stop-and-say, because this skill acts **as** someone **on** someone's board and a wrong identity there reaches nobody, silently.
- **One dispatch verb, and cloud-detection picks it** — off-cloud you launch `/relay-ticket <TICKET>`; on a cloud tenant you move the card to Todo through the write proxy and launch nothing (`references/cloud-dispatch.md`). Never a worktree, hand-rolled worker, or phase agent: you write no product code.
- **A cap is never silent** — every ticket you could have dispatched but did not is named, with why.
- **No status doc = you have not started.** It exists before your first dispatch.
- **A stall with no nudge in its own thread is your defect**, not the worker's.
- **Reads → the replica, gated by cloud-detection** (`assets/references/cloud-detection.md`); writes → `linearis`.
- **Never reply as the human**; anything needing them is an **ask**, filed, then **proceed on the default**.
- **Cite an identifier only after `create` returned it.**
- **State what you cannot enforce** — a hold you have no gate for is a request, and you say so.

## Loop

1. **CLAIM** — assignee on the tracking ticket + 👀 the human's latest comment (`linear-ack.mjs`).
2. **SCOPE** — cloud-detection first; read the scope from the replica, or the loud `linearis` fallback.
3. **STATUS DOC** — create `Status — <scope>` if absent; post `STATUS-DOC <scope>: <url>` once.
4. **SELECT** — apply the four readiness tests; record a verdict for every ticket.
5. **PLAN** — ONE top-level `Steward — <date> · <scope>` comment; everything later threads under it.
6. **DISPATCH** — ready tickets → launch `/relay-ticket <TICKET>` sessions, priority order, capped; name the holds.
7. **WATCH** — read each RELAY REPORT; confirm **phase-completion evidence** (`references/dispatch.md`) before treating a phase as done. Bounded replica poll ≤ 5 min otherwise.
8. **SPEAK** — see below; answer in the thread the message arrived in.
9. **CLOSE** — a merged PR's ticket goes to Done, stated in the thread.
10. **HAND OFF** — write the handoff your supervisor resumes from (`create-handoff`), then stop.

## Speak

| what happened | where it goes — all as `steward/<scope>`, authored by the app actor |
| -- | -- |
| a worker asked a question or reported a blocker | threaded reply on **that ticket** — answer it, don't redo its job |
| a human commented inside your scope | threaded reply under the **root of their comment**, ≤ 15 min while active |
| you need a decision only the human can make | ⛔ first clear all four gates ([`references/escalation.md`](references/escalation.md)) — know WHY it's stuck, decide it yourself, take the default, or pull in a peer; a system failure is ONE fleet alert, never a per-ticket block. Then an **ask ticket**, linked in your reply; proceed on the default |
| a ticket stalled | a nudge in that ticket's thread, plus a line in the status doc |
| a merge, a blocker change, or 90 min passed | the **status doc** |
| roughly every 45 min while active | a roll-up turn on the **channel** (numbered, signed) |

## Stop / hand off

Stop on a hard stop, your context/budget threshold, or a scheduled rotation — writing the handoff first. **Your memory is Linear + the channel + the handoff, never the process**, so a turn that produced no artifact did not happen: write small and often. Your supervisor resumes you from artifacts, not a re-pasted brief (`references/resume.md`).

## Verify yourself

Before going quiet, check all five — each is something a steward has actually missed:
1. Does `Status — <scope>` exist, with a timestamp younger than 90 minutes?
2. Is every ticket you held back named in the plan thread, with a reason?
3. Does every ticket in one phase > 45 min have a nudge in its thread?
4. Did every human comment in your scope get a threaded reply, or an ask?
5. Is every identifier you cited one that `create` actually returned?

## Pointers

`catalyst-dev:ask` · `catalyst-dev:linearis` · `relay-ticket` (the phase worker you launch) · `catalyst-dev:gherkin-ticket` · `catalyst-dev:create-handoff` · `catalyst-dev:project-orchestrator` · `grilling`.

Attribution

coalesce-labscoalesce-labs
View sourceMore from coalesce-labs →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

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 (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Caveman

Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.

1023331 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

686011 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

651 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →