ops-deploy

GitHub

查询并展示各项目的部署状态,包括ECS服务版本、Vercel部署、近期及待部署项和CI/CD流水线状态。支持多平台并行检查与日志追踪。

claude-ops/skills/ops-deploy/SKILL.md Lifecycle-Innovations-Limited/claude-ops

Trigger Scenarios

查询部署状态 检查CI/CD流水线状态 查看ECS服务健康度

Install

npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-deploy -g -y
More Options

Non-standard path

npx skills add https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-deploy -g -y

Use without installing

npx skills use Lifecycle-Innovations-Limited/claude-ops@ops-deploy

指定 Agent (Claude Code)

npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-deploy -a claude-code -g -y

安装 repo 全部 skill

npx skills add Lifecycle-Innovations-Limited/claude-ops --all -g -y

预览 repo 内 skill

npx skills add Lifecycle-Innovations-Limited/claude-ops --list

SKILL.md

Frontmatter
{
    "name": "ops-deploy",
    "effort": "low",
    "maxTurns": 20,
    "description": "Deploy status across all projects. Shows ECS service versions, Vercel deployments, recent deploys, pending deploys, and CI\/CD pipeline state.",
    "allowed-tools": [
        "Bash",
        "Read",
        "Grep",
        "Glob",
        "Skill",
        "Agent",
        "TeamCreate",
        "SendMessage",
        "AskUserQuestion",
        "TaskCreate",
        "TaskUpdate",
        "Monitor",
        "WebFetch",
        "mcp__claude_ai_Vercel__list_deployments",
        "mcp__claude_ai_Vercel__list_projects",
        "mcp__claude_ai_Vercel__get_deployment",
        "mcp__claude_ai_Vercel__get_runtime_logs",
        "mcp__claude_ai_Vercel__get_deployment_build_logs"
    ],
    "argument-hint": "[project-alias|ecs|vercel|all]",
    "disallowedTools": [
        "Edit",
        "Write",
        "NotebookEdit"
    ]
}

OPS ► DEPLOY STATUS

Runtime Context

Before executing, load available context:

  1. Preferences: Read ${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json

    • timezone — display all deploy timestamps in the correct timezone
  2. Daemon health: Read ${CLAUDE_PLUGIN_DATA_DIR}/daemon-health.json

    • Check infra-monitor status — if not running, note that ECS data may be stale
  3. Secrets: AWS and Vercel credentials required.

    Secret Resolution

    • AWS: check $AWS_PROFILE / $AWS_ACCESS_KEY_IDdoppler secrets get AWS_ACCESS_KEY_ID --plain → vault query cmd from prefs
    • Vercel token: check $VERCEL_TOKENdoppler secrets get VERCEL_TOKEN --plain → vault

CLI/API Reference

aws CLI

Command Usage Output
aws ecs list-clusters --output json All ECS clusters {clusterArns: [...]}
aws ecs list-services --cluster <name> --output json Services in cluster {serviceArns: [...]}
aws ecs describe-services --cluster <name> --services <arn> --output json Service health {services: [{serviceName, status, runningCount, desiredCount, pendingCount}]}
aws logs tail /ecs/<service> --since 1h --format short ECS logs Log lines

gh CLI (GitHub)

Command Usage Output
gh run list --repo <owner/repo> --limit 5 --json status,conclusion,name,headBranch,createdAt,databaseId CI runs JSON array
gh run view <id> --repo <repo> --log-failed Failed CI logs Log output
gh run watch <run-id> --repo <repo> Stream CI run Live output (use with Monitor)

Agent Teams support

If CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 is set, use Agent Teams when checking deploy platforms 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("deploy-team")
Agent(team_name="deploy-team", name="ecs-checker", prompt="List all ECS clusters and describe service health, running/desired counts")
Agent(team_name="deploy-team", name="vercel-checker", prompt="List Vercel projects and recent deployments with status")
Agent(team_name="deploy-team", name="ci-checker", prompt="Check GitHub Actions runs across all registered repos for failures")

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

Phase 1 — Gather deploy data in parallel

ECS services (all clusters)

${CLAUDE_PLUGIN_ROOT}/bin/ops-infra 2>/dev/null || \
aws ecs list-clusters --output json 2>/dev/null

ECS service details

for cluster in $(aws ecs list-clusters --output json 2>/dev/null | jq -r '.clusterArns[]'); do
  cluster_name=$(basename "$cluster")
  aws ecs list-services --cluster "$cluster_name" --output json 2>/dev/null | \
    jq -r '.serviceArns[]' | while read svc; do
    aws ecs describe-services --cluster "$cluster_name" --services "$svc" \
      --output json 2>/dev/null | jq '.services[] | {name: .serviceName, desired: .desiredCount, running: .runningCount, pending: .pendingCount, image: (.taskDefinition // "unknown"), status: .status}'
  done
done

Recent GitHub Actions runs (registry-driven)

REGISTRY="${CLAUDE_PLUGIN_ROOT}/scripts/registry.json"
[ -f "$REGISTRY" ] || REGISTRY="${CLAUDE_PLUGIN_ROOT}/scripts/registry.example.json"
for repo in $(jq -r '.projects[] | select(.gsd == true) | .repos[]' "$REGISTRY" 2>/dev/null); do
  echo "=== $repo ==="
  gh run list --repo "$repo" --limit 5 --json status,conclusion,name,headBranch,createdAt,databaseId 2>/dev/null
done

Vercel deployments

Use mcp__claude_ai_Vercel__list_projects then mcp__claude_ai_Vercel__list_deployments for each project (limit 5 per project).


Phase 2 — Render dashboard

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 OPS ► DEPLOY STATUS — [timestamp]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ECS SERVICES
 CLUSTER    SERVICE         D/R/P   STATUS   LAST DEPLOY
 ─────────────────────────────────────────────────────
 [cluster]  [service]       [x/x/x] ACTIVE   [time ago]
 ...

VERCEL DEPLOYMENTS
 PROJECT     ENV        STATUS    COMMIT    DEPLOYED
 ─────────────────────────────────────────────────────
 [project]   production  READY    [sha]     [time ago]
 ...

CI/CD PIPELINE
 REPO              BRANCH   WORKFLOW        STATUS    AGE
 ─────────────────────────────────────────────────────
 example-api       main     Deploy API      ✓ success  2h
 example-web       dev      Build            ✗ failure  1h
 ...

PENDING DEPLOYS (branch ready, not yet deployed)
 [repo] [branch] [PR#] [CI status] → needs merge to trigger

──────────────────────────────────────────────────────

After rendering, use batched AskUserQuestion calls (max 4 options each). Only show actions relevant to the current state (e.g., skip "View logs for failing service" if nothing is failing). If <=4 relevant actions, use a single call. If >4, batch:

AskUserQuestion call 1:

  [View logs for [failing service]]
  [Trigger manual deploy for [project]]
  [View build logs for [failing CI run]]
  [More actions...]

AskUserQuestion call 2 (only if "More actions..."):

  [Check Vercel [project] runtime logs]
  [Open GitHub Actions for [repo]]
  [Back to dashboard]

Deep-dive by project

If $ARGUMENTS has a project alias, show only that project's deploy info + last 10 CI runs + option to view logs.

For failing deploys: offer to view logs via mcp__claude_ai_Vercel__get_deployment_build_logs or ECS CloudWatch logs.

If user selects manual deploy (option b), confirm with AskUserQuestion before triggering:

Trigger deploy for [project]:
  Environment: [production/staging]
  Branch: [branch]
  Last commit: [sha] — [message]

  [Deploy now]  [View diff since last deploy first]  [Cancel]

If user selects to view logs, show the logs and use AskUserQuestion:

  [Dispatch fix agent for this failure]  [Redeploy]  [Back to dashboard]

Native tool usage

Monitor — live deploy streaming

When watching a deploy in progress, use Monitor to stream logs:

Monitor(command: "gh run watch <run-id> --repo <repo>")

For ECS deploys: Monitor(command: "aws ecs wait services-stable --cluster <cluster> --services <service>")

Tasks — deploy tracking

Use TaskCreate per project being deployed. Update with TaskUpdate as deploys succeed/fail.

WebFetch — Vercel fallback

When Vercel MCP tools are unavailable, use WebFetch with the Vercel API directly:

WebFetch(url: "https://api.vercel.com/v6/deployments?projectId=<id>&limit=5", headers: {"Authorization": "Bearer $VERCEL_TOKEN"})

Ledger Integration

CLAIM_KEY: deploy:<project>:<env> (e.g. deploy:my-api:production)

Keyed on project + environment so concurrent deploys of the same target are blocked for the full claim TTL (30 minutes).

Pre-flight skip-check

CLAIM_KEY="deploy:<project>:<env>"
ledger query --claim-key "$CLAIM_KEY" --since=-PT24H

If in_progress exists, a concurrent deploy is already running — abort and surface to the user. If done exists within the last hour, confirm before re-deploying.

Claim + resolve

# Claim when deploy pipeline starts
ledger write \
  --claim-key "$CLAIM_KEY" \
  --kind "file" \
  --status "in_progress" \
  --title "Deploy: <project> → <env>" \
  --ttl-sec 1800

# Resolve after deploy completes or fails
ledger write \
  --claim-key "$CLAIM_KEY" \
  --kind "file" \
  --status "done" \
  --title "Deploy: <project> → <env>" \
  --context "succeeded|failed: <reason>"

Version History

  • 64bad13 Current 2026-08-12 09:00

Same Skill Collection

claude-ops/skills/boss/SKILL.md
claude-ops/skills/flow/SKILL.md
claude-ops/skills/ledger/SKILL.md
claude-ops/skills/ops-accounts/SKILL.md
claude-ops/skills/ops-ar/SKILL.md
claude-ops/skills/ops-aws-audit/SKILL.md
claude-ops/skills/ops-comms/SKILL.md
claude-ops/skills/ops-competitors/SKILL.md
claude-ops/skills/ops-credentials/SKILL.md
claude-ops/skills/ops-daemon/SKILL.md
claude-ops/skills/ops-dash/SKILL.md
claude-ops/skills/ops-deploy-fix/SKILL.md
claude-ops/skills/ops-desktop/SKILL.md
claude-ops/skills/ops-doctor/SKILL.md
claude-ops/skills/ops-ecom/SKILL.md
claude-ops/skills/ops-feature-dev/SKILL.md
claude-ops/skills/ops-fires/SKILL.md
claude-ops/skills/ops-fleet/SKILL.md
claude-ops/skills/ops-go/SKILL.md
claude-ops/skills/ops-gtm/SKILL.md
claude-ops/skills/ops-home/SKILL.md
claude-ops/skills/ops-inbox/SKILL.md
claude-ops/skills/ops-integrate/SKILL.md
claude-ops/skills/ops-leadgen/SKILL.md
claude-ops/skills/ops-linear/SKILL.md
claude-ops/skills/ops-mac/SKILL.md
claude-ops/skills/ops-marketing/SKILL.md
claude-ops/skills/ops-mcp/SKILL.md
claude-ops/skills/ops-merge/SKILL.md
claude-ops/skills/ops-monitor/SKILL.md
claude-ops/skills/ops-next/SKILL.md
claude-ops/skills/ops-orchestrate/SKILL.md
claude-ops/skills/ops-package/SKILL.md
claude-ops/skills/ops-pocket/SKILL.md
claude-ops/skills/ops-projects/SKILL.md
claude-ops/skills/ops-recap/SKILL.md
claude-ops/skills/ops-release/SKILL.md
claude-ops/skills/ops-resume/SKILL.md
claude-ops/skills/ops-revenue/SKILL.md
claude-ops/skills/ops-rotate-setup/SKILL.md
claude-ops/skills/ops-rotate/SKILL.md
claude-ops/skills/ops-secret-sync/SKILL.md
claude-ops/skills/ops-settings/SKILL.md
claude-ops/skills/ops-ship/SKILL.md
claude-ops/skills/ops-speedup/SKILL.md
claude-ops/skills/ops-status/SKILL.md
claude-ops/skills/ops-triage/SKILL.md
claude-ops/skills/ops-unifi/SKILL.md
claude-ops/skills/ops-update/SKILL.md

Metadata

Files
0
Version
64bad13
Hash
09908deb
Indexed
2026-08-12 09:00

ホーム - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-12 20:50
浙ICP备14020137号-1 $お客様$