skills/notify/SKILL.md
Unified notification skill. Configures orchestrator reporters (Slack, Discord, MCP, custom) by generating bash scripts and updating .claude/.prove.json, and sends test notifications through configured reporters. Triggers: "notify setup", "set up notifications", "configure alerts", "slack reporter", "discord reporter", "test notifications".
npx skillsauth add mjmorales/claude-prove notifyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Dispatches by subcommand. Follows references/interaction-patterns.md for all AskUserQuestion usage.
| Subcommand | Purpose |
|------------|---------|
| setup [platform] | Configure a reporter — generate script, register in .claude/.prove.json |
| test [--reporter <name>] [event] | Send a test notification through configured reporter(s) |
Parse first token of $ARGUMENTS as subcommand. If absent, AskUserQuestion header "Action": "Setup reporter" / "Test reporters".
setupRemaining $ARGUMENTS tokens: optional platform (slack, discord, mcp, custom). If supplied, skip platform selection.
Scan existing integrations before prompting:
.claude/settings.json and ~/.claude/settings.json for MCP servers with messaging capabilitiesSLACK_WEBHOOK_URL, DISCORD_WEBHOOK_URL.claude/.prove.json for existing reportersSkip if $ARGUMENTS already named a platform. Otherwise AskUserQuestion header "Platform", annotating options with discovery results (e.g., "Slack (Webhook) — SLACK_WEBHOOK_URL detected"):
SLACK_WEBHOOK_URL and curlDISCORD_WEBHOOK_URL and curlAskUserQuestion header "Scope":
./.prove/, config in .claude/.prove.json~/.claude/scripts/AskUserQuestion header "Events" (multiSelect: true). Offer all reporter event types: step-complete, step-halted, wave-complete, execution-complete, review-approved, review-rejected, validation-pass, validation-fail.
Platform-specific details (free-form):
| Platform | Fields |
|----------|--------|
| Slack | Webhook URL env var (default SLACK_WEBHOOK_URL), channel override, mention prefs |
| Discord | Webhook URL env var (default DISCORD_WEBHOOK_URL), mention role |
| MCP | Which MCP server and tool, channel/recipient |
| Custom | Command to run, any env vars it needs |
Generate a bash script tailored to platform + preferences.
Requirements:
#!/usr/bin/env bash, POSIX-compatiblePROVE_EVENT, PROVE_TASK, PROVE_STEP, PROVE_STATUS, PROVE_BRANCH, PROVE_DETAIL)--test flag with dummy data|| true and trap so the orchestrator is never blockedSee references/platforms.md for platform-specific payload formats, curl patterns, and MCP invocation. See references/notification-examples.md for complete copy-paste-ready scripts (Slack, Discord, custom).
Write to ./.prove/notify-<platform>.sh (project) or ~/.claude/scripts/notify-<platform>.sh (global), then chmod +x.
.claude/.prove.json (create if missing)reporters entry, preserving all other config:
{
"name": "<platform>-notify",
"command": "./.prove/notify-<platform>.sh",
"events": ["step-complete", "step-halted", "execution-complete"]
}
step-complete)--testtestSend a test notification through configured reporters.
Remaining $ARGUMENTS tokens after test:
--reporter <name> — test only the named reporter (defaults to all)step-complete).claude/.prove.json. If no reporters entries: inform the user and suggest /prove:notify setup. Do not run any script.--reporter <name> specified, filter to that entry. If not found, list available reporter names and stop.Delegate to the CLI which handles script resolution, env var injection, and exit-code capture:
claude-prove notify test $ARGUMENTS
Reporter scripts live in ./.prove/ (project scope) or ~/.claude/scripts/ (global scope).
The CLI exports these before invoking each reporter command:
| Var | Value |
|-----|-------|
| PROVE_EVENT | Event name (e.g., step-complete) |
| PROVE_TASK | Task slug (e.g., example-task) |
| PROVE_STEP | Step number (if applicable) |
| PROVE_STATUS | Current status (e.g., complete) |
| PROVE_BRANCH | Branch name |
| PROVE_DETAIL | One-line summary (may be empty for lifecycle events) |
Per reporter: name, exit code, stdout/stderr tail on failure. If every configured reporter for the chosen event succeeds, report overall PASS; otherwise FAIL.
| Event | Fires When |
|-------|-----------|
| step-complete | Step passes all validators and is committed |
| step-halted | Step fails validation after retry, execution stops |
| wave-complete | All tasks in a parallel wave merged (full mode) |
| execution-complete | Orchestrator run finishes (success or halted) |
| review-approved | Principal architect approves a task |
| review-rejected | Principal architect requests changes |
| validation-pass | LLM validation agent returns PASS |
| validation-fail | LLM validation agent returns FAIL |
Delegate to the commit skill. Example messages:
feat(notify): add Slack webhook reporterchore(notify): subscribe discord reporter to wave-completetesting
Anchor session context into prove primitives before compaction and rehydrate from them after. Built-in compaction summarizes by recency and drops the claude-prove state an agent needs to reorient; this skill externalizes volatile context into durable anchors (scrum tasks, decisions, run-state, a compact-anchors pointer file) pre-compact, then runs a deterministic reorientation sequence post-compact. Use before a manual /compact, when context is about to auto-compact, or immediately after a compaction. Triggers on "smart compact", "prepare for compaction", "anchor before compact", "context is getting long", "rehydrate", "reorient after compact".
tools
Apply model-driven CONTENT reshaping to stored run artifacts that sit behind the current schema, on explicit operator invocation only. Triggers on "migrate runs", "migrate run artifacts", "run content migration", "reshape run artifacts", "bring runs to current schema". You are the driver: the `run-state migrate-runs` CLI mechanically detects which artifacts are behind and emits a plan naming each one plus its migration-instruction file; you read the instructions and reshape the prose/findings, gated by the operator. The deterministic `schema migrate` handles structural column moves; this skill covers only the content reshaping beyond them. Never run as a background or resident loop — only when the operator asks.
tools
Synthesize the 7-section risk-forward Review Brief from a run's reasoning log. Triggers on "reasoning brief", "review brief", "synthesize the brief", "generate the brief", "brief the run", "brief for review", "story brief". You are the driver: the `acb brief` CLI renders a mechanical preservation-safe backbone and proves preservation; you synthesize the narrative prose (summary + changes), single-pass or multipass over episode chunks, then gate it through Stage-1 (mechanical, blocking) and Stage-2 (prose judge, advisory).
tools
Prune stale cached versions of the prove plugin from Claude Code's plugin cache. Use when superseded versions pile up under plugins/cache and agents read stale skills/references from them, or when reclaiming plugin-cache disk space. Triggers on "clean up cached plugin versions", "prune the plugin cache", "remove old prove versions", "stale plugin cache".