From ops
Portfolio dashboard — shows all projects with GSD phase, branch, uncommitted changes, CI status, and next action. Jump to any project by alias.
npx claudepluginhub auroracapital/claude-opsThis skill is limited to using the following tools:
```!
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
${CLAUDE_PLUGIN_ROOT}/bin/ops-git 2>/dev/null || echo '[]'
${CLAUDE_PLUGIN_ROOT}/bin/ops-prs 2>/dev/null || echo '[]'
${CLAUDE_PLUGIN_ROOT}/bin/ops-ci 2>/dev/null || echo '[]'
cat "${CLAUDE_PLUGIN_ROOT}/scripts/registry.json" 2>/dev/null || echo '{}'
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=$(jq -r --arg p "$d" '.projects[] | select(.paths[] == $p) | .alias' "${CLAUDE_PLUGIN_ROOT}/scripts/registry.json" 2>/dev/null | head -1)
phase=$(grep -m1 'current_phase' "$expanded/.planning/STATE.md" 2>/dev/null | sed 's/.*: //' || echo "?")
branch=$(git -C "$expanded" branch --show-current 2>/dev/null || echo "?")
dirty=$(git -C "$expanded" status --porcelain 2>/dev/null | wc -l | tr -d ' ')
echo "{\"alias\":\"$alias\",\"path\":\"$d\",\"phase\":\"$phase\",\"branch\":\"$branch\",\"dirty\":$dirty}"
fi
done | jq -s '.'
Parse all pre-gathered data and render the portfolio dashboard.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OPS ► PROJECTS — [date]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ALIAS PHASE BRANCH DIRTY CI NEXT ACTION
────────────────────────────────────────────────────────────────
healify 7.2 feature/auth 3 ✓ finish auth tests
healify-api 5.0 dev 0 ✗ fix CI (unit tests)
...
OPEN PRs
#123 healify-api fix: auth middleware ✓ CI ready to merge
#456 healify feat: onboarding ✗ CI needs fix
──────────────────────────────────────────────────────
Jump to project:
a) healify
b) healify-api
c) healify-langgraphs
d) ...
Or type a project alias directly
──────────────────────────────────────────────────────
CI column: green ✓ if last run passed, red ✗ if failing, — if no CI. DIRTY: number of uncommitted files. NEXT ACTION: inferred from GSD phase state and open issues.
If $ARGUMENTS contains a project alias, show a deep-dive for that project:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[PROJECT] — DEEP DIVE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Path: [path]
Branch: [branch] Dirty: [N files]
GSD: Phase [N] — [phase name]
CI: [last 5 runs with status]
PRs: [open PRs]
Sentry: [recent errors for this project]
Actions:
a) Continue GSD work (/gsd-next)
b) Fix CI failure
c) Review open PRs
d) Check fires (/ops-fires [alias])
Use AskUserQuestion after displaying either view.