AgentStack
SKILL verified MIT Self-run

Ops Projects

skill-lifecycle-innovations-limited-claude-ops-ops-projects · by Lifecycle-Innovations-Limited

Portfolio dashboard for all GSD-tracked projects. Scans ~/Projects and ~/gsd-workspaces for .planning/ directories, shows phase status, git state, blockers, and next actions for every project. Run /ops projects to see the full portfolio.

No reviews yet
0 installs
14 views
0.0% view→install

Install

$ agentstack add skill-lifecycle-innovations-limited-claude-ops-ops-projects

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

Are you the author of Ops Projects? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Runtime Context

Before rendering, load:

  1. Preferences: cat ${OPS_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json — read owner, timezone
  2. Daemon health: cat ${OPS_DATA_DIR}/daemon-health.json — show service status in dashboard footer
  3. 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.json is 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.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.