Skip to content
Back to skills

Mission Brief

ASecurity

Read-only steering brief for attended mission sessions — dashboard + directive channel + live loop health + inbox, then hand the wheel to Mark. Use when the user says "mission brief", "catch me up on the mission", "steering session", or opens a fresh thread for in-person steering or meta-loop updates. NOT for running iterations — that is mission-control.

  • 34 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
ai-agentsgobashapi

Works with

  • api

Security analysis

A100/100

Scanned September 2, 2026

npx -y skills add sunholo-data/ailang --skill mission-brief --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Mission Brief?

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

Security grade badge for Mission Brief
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sunholo-data-mission-brief/badge)](https://www.skillsdirectory.com/skills/sunholo-data-mission-brief)

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: mission-brief
description: Read-only steering brief for attended mission sessions — dashboard + directive channel + live loop health + inbox, then hand the wheel to Mark. Use when the user says "mission brief", "catch me up on the mission", "steering session", or opens a fresh thread for in-person steering or meta-loop updates. NOT for running iterations — that is mission-control.
---

# Mission Brief — the attended steering entry point

READ-ONLY: this skill gathers and reports. No acks, no edits, no commits — steering actions
come after the brief, at Mark's direction. mission-control is the machine's entry point into
the loop; this is the human's. Never fold brief logic into mission-control (it is live by
symlink for every mission the instant it is saved — small blast radius matters).

## Gather (all four; they are independent, so run in parallel)

1. **Dashboard**: Read `design_docs/mission-dashboard.md` (≤40 lines, the full snapshot).
   Staleness check: if its `Updated` stamp is older than ~2× the v1 cadence on its Loops
   line (90min default) while the loop claims armed, FLAG IT — Gate-4 isn't refreshing,
   which is itself a finding (wedged loop, quota dry-out, or launchd off).
   Normalize to UTC before ANY timestamp comparison: issue comments are UTC (`Z` suffix),
   the dashboard stamp is local time. A stamp in the future is itself suspect — the
   2026-08-04 bootstrap wrote 14:30Z as "~16:30" via exactly this mixup.

2. **Directives** — the channel the dashboard only *points* at:
   ```bash
   gh api --paginate "repos/sunholo-data/ailang/issues/$(cat ~/.ailang/state/mission-gh-issue)/comments" \
     | jq -rs 'flatten | reverse | .[0:5][] | "\(.created_at) \(.user.login): \(.body | split("\n")[0])"'
   ```
   (Last 5 comments, newest first, first line each. `--paginate` + the standalone
   `jq -s`/`flatten` is load-bearing: the API serves comments oldest-first, 30 per page,
   so a bare call reads page 1 only — the moment a rotation week crosses 30 comments,
   "newest 5" goes silently stale. That is exactly how the 2026-08-05 afternoon failure
   notices went unseen by a brief run at 12:50. gh refuses `--slurp` with `--jq`, hence
   the pipe.) Any comment newer than the dashboard's
   `Updated` stamp is an UNPROCESSED DIRECTIVE — surface it verbatim. The pointer file
   rotates Mondays; if the issue is closed or missing, report that rather than skipping.

3. **Live loop health** — the dashboard's "armed" is a snapshot, not now:
   ```bash
   launchctl list | grep -E 'dev\.ailang\.mission-(control|world)'
   ```
   Column 1 = PID if running right now, column 2 = last exit status. Then the last logged
   iteration: `grep "^## " design_docs/v1-mission-log.md | tail -1` — compare its date
   against the cadence, but read the dashboard's quota-posture section before calling a gap
   "wedged" (a dry-out can be expected posture, not breakage).

4. **Inbox**: usually already injected by the SessionStart hook — summarize what it showed,
   don't re-fetch. Mid-session: `ailang messages list --compact`. Do NOT ack — Mark's call.

## Report

One compact brief, in this order: Now (from dashboard) · unprocessed directives · loop
health (live) · inbox highlights · Parked-on-Mark items. Then ask: **what do you want to
steer?**

## Steering levers — route Mark's decision through an existing channel, never improvise one

- **Durable directive** → comment on the bookkeeping issue (Gate-1 reads it next iteration)
- **Charter change** → edit `design_docs/v1-mission.md` per its attended-stamp conventions
- **Message a loop/agent** → `ailang messages send` (see `ailang messages --help`)
- **Do it now** → this attended session does the work directly
- **Meta/skill fix** → edit the skill IN THE MAIN CHECKOUT — a worktree commit reaches
  origin but never the running loop (mission-control's Gate-5 symlink note has the details)

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.