Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
davepoon avatar

Ops Next

  • 55 installs
  • 3.2k repo stars
  • Updated August 2, 2026
  • davepoon/buildwithclaude

Answer 'what should I do next' by ranking fires, unread comms, ready-to-merge PRs, Linear sprint, and revenue work, then routing to the right skill.

About

Answers the business-level 'what next' by ranking a priority stack (fires, unread comms, ready PRs, Linear sprint, revenue work) from pre-gathered data. A developer uses it to decide and jump to the highest-priority ops task.

  • Priority stack: fires > comms > PRs > Linear sprint > revenue work
  • Routes directly to the relevant ops skill from pre-gathered data

Ops Next by the numbers

  • 55 all-time installs (skills.sh)
  • Ranked #1,591 of 3,280 Productivity & Planning skills by installs in the Skillselion catalog
  • Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/davepoon/buildwithclaude --skill ops-next

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs55
repo stars3.2k
Last updatedAugust 2, 2026
Repositorydavepoon/buildwithclaude

What it does

Answer 'what should I do next' by ranking fires, unread comms, ready-to-merge PRs, Linear sprint, and revenue work, then routing to the right skill.

Files

SKILL.mdMarkdownGitHub ↗

Runtime Context

Before advising, load: 1. Preferences: cat ${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json — read owner, primary_project, default_channels 2. Daemon health: cat ${CLAUDE_PLUGIN_DATA_DIR}/daemon-health.json — flag any action_needed as priority 3. Ops memories: Check ${CLAUDE_PLUGIN_DATA_DIR}/memories/topics_active.md for ongoing work context

OPS ► NEXT ACTION

CLI/API Reference

gh CLI (GitHub)

CommandUsageOutput
gh pr list --state open --json number,title,statusCheckRollup,reviewDecisionOpen PRs with CI/review statusJSON array

---

Agent Teams support

If CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 is set, use Agent Teams when gathering priority data in parallel. This enables:

  • Agents share context and can coordinate mid-flight
  • You can steer priorities in real-time
  • Agents report progress as they complete

Team setup (only when flag is enabled):

TeamCreate("next-team")
Agent(team_name="next-team", name="fires-checker", prompt="Check infra health and CI for production fires")
Agent(team_name="next-team", name="comms-checker", prompt="Check unread messages across all channels")
Agent(team_name="next-team", name="prs-checker", prompt="Find PRs ready to merge — CI green, reviews approved")
Agent(team_name="next-team", name="sprint-checker", prompt="Check Linear sprint for highest-priority in-progress issues")

If the flag is NOT set, use standard fire-and-forget subagents.

Pre-gathered data

Infrastructure & fires

```! ${CLAUDE_PLUGIN_ROOT}/bin/ops-infra 2>/dev/null || echo '{"clusters":[]}'


### Git & PRs

${CLAUDE_PLUGIN_ROOT}/bin/ops-prs 2>/dev/null || echo '[]'


### CI status

${CLAUDE_PLUGIN_ROOT}/bin/ops-ci 2>/dev/null || echo '[]'


### Unread messages

${CLAUDE_PLUGIN_ROOT}/bin/ops-unread 2>/dev/null || echo '{}'


### GSD active phases

for d in $(jq -r '.projects[] | select(.gsd == true) | .paths[]' "${CLAUDE_PLUGIN_ROOT}/scripts/registry.json" 2>/dev/null); do expanded="${d/#\~/$HOME}" if [ -f "$expanded/.planning/STATE.md" ]; then alias=$(basename "$expanded") cat "$expanded/.planning/STATE.md" 2>/dev/null | head -30 echo "---NEXT---" fi done


---

## Your task

Apply the priority stack to all pre-gathered data:

### Priority 1 — FIRES

Check infra data for: unhealthy ECS tasks, stopped services, failed deployments.
Check CI for: broken `main` or `dev` branches.
If any fires exist → **recommend `/ops-fires` immediately**.

### Priority 2 — URGENT COMMS

Check unread counts. If WhatsApp or email has unread messages from humans (not automated):

- Estimate urgency from sender/preview if available
- If urgent comms → **recommend `/ops-inbox [channel]`**

### Priority 3 — READY-TO-MERGE PRs

Check PRs for: CI green + no unresolved review comments + not draft.
If any ready → **recommend reviewing that PR now**.
Check: `gh pr list --state open --json number,title,statusCheckRollup,reviewDecision 2>/dev/null`

### Priority 4 — LINEAR SPRINT

Fetch current sprint issues: use `mcp__linear__list_issues` filtered to current cycle (use Linear GraphQL fallback for cycle queries if needed).
Find highest-priority issue that is in progress or unstarted.

### Priority 5 — GSD WORK

From GSD state, find the highest revenue-impact active phase across all projects.
Revenue weighting: read `revenue.stage` and `priority` from `scripts/registry.json` — projects with lower priority numbers (higher priority) and revenue stage of `growth` or `active` outrank `pre-launch` or `development`. Within the same tier, prioritize closest-to-done phases.

---

## Output format

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ OPS ► NEXT ACTION ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

TOP PRIORITY: [fires|comms|PR|sprint|gsd] ▶ [specific action in one sentence]

WHY: [1-2 sentence rationale]

────────────────────────────────────────────────────── Full priority stack: 1. [action] — [why] → [/skill or command] 2. [action] — [why] → [/skill or command] 3. [action] — [why] → [/skill or command] 4. [action] — [why] → [/skill or command] 5. [action] — [why] → [/skill or command]

────────────────────────────────────────────────────── a) Do #1 now b) Do #2 now c) Show me everything (/ops-go) d) I'll decide — just show the briefing

→ Pick or describe what you want ──────────────────────────────────────────────────────


Use AskUserQuestion. When user selects an option, invoke the corresponding skill directly — don't describe it, do it.

If `$ARGUMENTS` contains context (e.g., "focus on <project-alias>"), constrain the analysis to that context.

---

## Native tool usage

### Tasks — action tracking

After the user selects an action, use `TaskCreate` to track it. When routing to the corresponding skill, the task persists as a reminder of what the user chose to focus on.

### WebFetch — enrichment fallback

When pre-gathered data is stale or incomplete, use `WebFetch` to pull fresh data from APIs (Linear GraphQL, Sentry, GitHub) directly.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.