Install
$ agentstack add skill-lifecycle-innovations-limited-claude-ops-ops-projects ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Runtime Context
Before rendering, load:
- Preferences:
cat ${OPS_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json— readowner,timezone - Daemon health:
cat ${OPS_DATA_DIR}/daemon-health.json— show service status in dashboard footer - GSD registry:
cat ${OPS_DATA_DIR}/registry.json— primary project index (updated by daemon twice daily + on-demand with --sync)
OPS ► PROJECTS — GSD Portfolio Dashboard
Quick commands
# Refresh registry data on demand
bash ${CLAUDE_PLUGIN_ROOT}/scripts/ops-gsd-registry-sync.sh
# Show registry contents
cat ${OPS_DATA_DIR}/registry.json
# Show health summary
cat ${OPS_DATA_DIR}/cache/projects_health.json
Data flow
~/Projects/ ~/gsd-workspaces/
│ │
▼ ▼
[project]/.planning/ [project]/.planning/
│ │
├── HANDOFF.json ├── HANDOFF.json ← active-phase projects
├── STATE.md ├── MILESTONES.md
├── ROADMAP.md └── STATE.md
└── MILESTONES.md
│
▼ ops-gsd-registry-sync.sh (daemon: 6am + 6pm)
│
▼
${OPS_DATA_DIR}/
├── registry.json ← all projects, sorted by priority
└── cache/
└── projects_health.json ← health summary
│
▼ ops-projects skill reads this
Dashboard output
Build the dashboard from ${OPS_DATA_DIR}/cache/projects_health.json (fall back to ${OPS_DATA_DIR}/registry.json if missing). Show:
╔══════════════════════════════════════════════════════════════╗
║ OPS ► PROJECTS [owner] [date] [daemon status] ║
╠══════════════════════════════════════════════════════════════╣
║ GSD Portfolio — 23 projects ║
║ ║
║ 🟢 EXECUTING (3) ║
║ my-webapp Phase 12 [executing] branch: main 0 dirty ║
║ my-plugin Phase 16 [executing] branch: main 2 dirty ║
║ my-saas-app Phase 39 [executing] branch: dev 0 dirty ║
║ ║
║ 🟡 PAUSED (4) ║
║ my-project-a Phase 08 [paused] branch: feat 1 dirty ║
║ my-project-b Phase 3 [verifying] branch: main 0 dirty ║
║ ... ║
║ ║
║ 🔴 BLOCKED (1) ║
║ my-ecommerce Phase 7 [await-UAT] branch: prod 0 dirty ║
║ ║
║ ⚪ IDLE / UNTRACKED (15) ║
║ my-side-project Phase 1 [complete] branch: main 0 dirty ║
║ my-other-app — — branch: dev 3 dirty ║
║ ... ║
╠══════════════════════════════════════════════════════════════╣
║ ⚡ Services: message-listener ● | inbox-digest ⏱ 2h | gsd-registry ⏱ 12h ║
╚══════════════════════════════════════════════════════════════╝
Status indicators (from status field, case-insensitive)
- executing → 🟢
- paused / verifying / phase_complete → 🟡
- human / uat / blocked / pending → 🔴
- empty status + has phase → ⚪ (idle)
- no phase, no status → ⚪ (untracked/no GSD)
Columns per project: ALIAS | PHASE | STATUS | BRANCH | DIRTY | NEXT ACTION
Project deep-dive
If $ARGUMENTS contains a project alias, find it in the registry and show:
╔══════════════════════════════════════════════════════════════╗
║ PROJECT — [alias] ║
╠══════════════════════════════════════════════════════════════╣
║ Path: ~/Projects/[alias]/ ║
║ Phase: [phase] Status: [status] ║
║ Milestone: [milestone name] ║
║ Branch: [branch] Dirty: [N] Unpushed: [N] ║
║ Blockers: [N] ║
║ Next: [next_action text] ║
║ ║
║ GSD files: ✓ ROADMAP ✓ MILESTONES [HAS_HANDOFF] STATE ║
╚══════════════════════════════════════════════════════════════╝
Actions:
[1] Open project directory
[2] Continue GSD (/gsd-next [alias])
[3] Git: branch / status / log
[4] Run /ops projects (back to portfolio)
Present numbered actions and let the user pick by typing the number or action name.
--sync flag
If --sync or --refresh is passed, run the registry sync script first, then display the updated dashboard:
bash ${CLAUDE_PLUGIN_ROOT}/scripts/ops-gsd-registry-sync.sh 2>&1
Show "Refreshing..." while running, then present the full updated dashboard.
Error states
- If
registry.jsonis missing/empty: show a one-shot sync prompt
`` No project registry found. Run /ops projects --sync to build it. ``
- If daemon health shows
action_needed: surface that in a warning banner
CLI reference (for manual use)
| Command | What it does | | ----------------------- | --------------------------------------- | | /ops projects | Show full portfolio | | /ops projects [alias] | Deep-dive on one project | | /ops projects --sync | Force-refresh registry + show dashboard | | /ops:setup registry | Open registry setup (future) |
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Lifecycle-Innovations-Limited
- Source: Lifecycle-Innovations-Limited/claude-ops
- License: MIT
- Homepage: https://github.com/Lifecycle-Innovations-Limited/claude-ops/wiki
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.