melodic-software

claude-code-plugins

"Prints the operator's read-only morning view for the current GitHub repo in one pass — open counts per queue label (needs-triage / ready / needs-decision / needs-human), the gh-native merge-ready PR list, parked decisions with their RECOMMENDED lines, and loop-lane telemetry freshness (last-cycle age + flags). Use when: 'morning brief', 'morning view', 'ops dashboard', 'what needs attention', 'daily standup view', 'operator morning pass', 'queues and merge-ready'. Read-only and gh-based — never mutates issues, PRs, labels, or comments."

melodic-software 12 Updated 3w ago

Resources

2
GitHub

Install

npx skillscat add melodic-software/claude-code-plugins/plugins-claude-ops-skills-morning-brief

Install via the SkillsCat registry.

SKILL.md

Pre-computed context

Repo: !gh repo view --json nameWithOwner -q .nameWithOwner 2>/dev/null || echo "unknown (run inside a gh repo or pass --repo)"
gh: !command -v gh >/dev/null 2>&1 && echo "present" || echo "MISSING (required)"
jq: !command -v jq >/dev/null 2>&1 && echo "present" || echo "MISSING (required)"

Variables

Arguments: $ARGUMENTS

Purpose

The 30-60 minute operator morning pass begins with the same hand-run gh queries
every day. This skill collapses them into a single 5-second picture for the current
repo, so the pass starts from a complete view instead of ad-hoc lookups.

Read-only and gh-based. It runs only gh read queries and never mutates
labels, comments, issues, or PRs. Owner/repo is derived from gh repo view (never
hardcoded), so it is reusable across repos.

Run it

bash "${CLAUDE_PLUGIN_ROOT}/skills/morning-brief/scripts/morning-brief.sh" $ARGUMENTS

Print the script's output verbatim — it is already the deliverable. Do not
re-query the sections by hand.

What each section reports

Section Source Notes
Queues gh issue list --label <queue> counts Defaults to melodic-software queue labels; live runs filter to labels that exist in the repo (pass --queue-labels to pin a custom set)
Merge-ready PRs gh pr list filtered to non-draft + mergeStateStatus=CLEAN A light glance signal; reviewDecision shown but not required (repos without required review leave it empty)
Parked decisions open issues with the decision label (default status: needs-decision) Surfaces each one's RECOMMENDED line — the uppercase marker wins over an incidental lowercase mention; a case-insensitive fallback catches lowercase markers; pass --decision-label to pin
Lane telemetry the loop-lane telemetry issue's per-lane comments Each lane's last-cycle age (marked STALE past --stale-hours, default 6) and any flags:
Stranded findings merged PRs whose unresolved review threads were created after the merge One line per PR at its worst severity, with a finding count; window is --stranded-days, default 3

A review that lands after a merge has nowhere to go: the ruleset's
required_review_thread_resolution is a merge-time predicate that already passed, the babysit lane
works open PRs, and nothing on a merged PR surfaces its open threads. This section is the only
place they appear (#1777). The comment-vs-merge timestamp comparison is the discriminator — a thread
that predates the merge was visible to the gate and is an ordinary unresolved thread, not this
failure mode.

The telemetry issue is auto-discovered by title; pass --telemetry-issue N to pin it.
When no such issue exists (e.g. a consuming repo without loop-lane telemetry), that
section reports "no telemetry issue found" and the rest of the brief still renders.

Queue labels default to the melodic-software taxonomy and are filtered to labels
that actually exist in the target repo on live runs, so a consuming repo with a
different scheme does not show misleading 0/? rows. Pass --queue-labels to
pin a custom comma-separated set; pass --decision-label to pin the parked-decision
label. When none of the configured queue labels exist, the Queues section reports
"no queue labels found" and the rest of the brief still renders.

Cross-references

  • /source-control:babysit-prs — the authoritative PR merge gate and readiness
    classification. The merge-ready list here is a fast gh-native glance, not a
    substitute for that skill's per-PR gate.
  • /claude-ops:observability — reads locally captured telemetry (OTEL store, hook-event JSONL,
    ccusage). This skill instead reads GitHub-side queue and PR state.

What this skill does NOT do

  • Does not mutate anything — no label, comment, merge, or close writes.
  • Does not classify PR merge-readiness authoritatively — use /source-control:babysit-prs.
  • Does not read local telemetry stores — use /claude-ops:observability.

Categories