本文へ移動
cccskills
無料GitHub で公開

deploy

Deploy application to target platform. Use when user explicitly says 'deploy', 'push to production', 'ship it'. Handles Vercel, Netlify, AWS, GCP, DigitalOcean, and VPS with pre-deploy verification and health checks. Enforces cost allocation tags + Managed-vs-Self-Host crossover decisions so deploy choices map to actual unit economics, not hand-waved 'we'll optimize later'.

インストール方法を見る

含まれるファイル(3)

  • SKILL.md18.4 KB
  • references/observability.md6.9 KB
  • references/post-deploy-integration.md10.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

deploy

Purpose

Deploy applications to target platforms. Handles the full deployment flow — environment configuration, build, push, verification, and rollback if needed. Supports Vercel, Netlify, AWS, GCP, DigitalOcean, and custom VPS via SSH.

<HARD-GATE> - Tests MUST pass (via `rune:verification`) before deploy runs - Sentinel MUST pass (no CRITICAL issues) before deploy runs - Both are non-negotiable. Failure = stop + report, never skip </HARD-GATE>

Called By (inbound)

  • launch (L1): deployment phase of launch pipeline
  • User: /rune deploy direct invocation

Calls (outbound)

  • test (L2): pre-deploy full test suite
  • db (L2): pre-deploy migration safety check
  • perf (L2): pre-deploy performance regression check
  • verification (L2): pre-deploy build + lint + type check
  • sentinel (L2): pre-deploy security scan
  • browser-pilot (L3): verify live deployment visually
  • watchdog (L3): setup post-deploy monitoring
  • journal (L3): record deploy decision, rollback plan, and post-deploy status
  • incident (L2): if post-deploy health check fails → triage and contain
  • L4 extension packs: domain-specific deploy patterns when context matches (e.g., @rune/devops for infrastructure)

Cross-Hub Connections

  • deploy → verification — pre-deploy tests + build must pass
  • deploy → sentinel — security must pass before push

Execution Steps

Step 1 — Pre-deploy checks (HARD-GATE)

Call rune:verification to run the full test suite and build.

If verification fails → STOP. Do NOT proceed. Report failure with test output.

Wiring evidence check (advisory): when deploying a FEATURE (not a hotfix — hotfix chain exempt) whose changes touch both UI and api/service/data files, look for cross-layer evidence: integration.verified (verification Level 3.5 passed) or convergence.clean (converge found zero gaps). Neither present → WARN the user explicitly — "Deploying UI+data changes with no cross-layer wiring evidence. Unit tests alone don't prove the buttons work. Proceed?" — and require confirmation. Advisory, not a block: the user can proceed, but never unknowingly.

Call rune:sentinel to run security scan.

If sentinel returns CRITICAL issues → STOP. Do NOT proceed. Report issues.

Both gates MUST pass. No exceptions.

Step 1.5 — Release Checklist (Production Deploys Only)

Skip for: staging, preview, development deploys.

Before production deploy, verify ALL items:

#CheckHowGate
1Version bumpedpackage.json/pyproject.toml version matches releaseBLOCK if unchanged
2Changelog updatedCHANGELOG.md has entry for this versionWARN if missing
3Breaking changes documentedRFC artifact exists for each breaking changeBLOCK if RFC missing
4Migration scripts readyDB migrations tested on staging firstBLOCK if untested migration
5Rollback plan documented.rune/deploy/rollback-<version>.md existsWARN if missing
6Release notes draftedCustomer-facing notes for release-commsWARN if missing
7Dependencies lockedLock file committed, no floating versionsBLOCK if unlocked

Rollback Plan Template (.rune/deploy/rollback-<version>.md):

# Rollback Plan: v<version>

## Trigger Conditions
- [When to rollback — e.g., error rate >5%, P0 incident, data corruption]

## Steps
1. [Revert command — e.g., `vercel rollback`, `fly releases rollback`]
2. [DB rollback — e.g., `npm run migrate:rollback` or "N/A — no migration"]
3. [Cache invalidation if needed]
4. [Notify stakeholders]

## Verification
- [ ] Previous version serving traffic
- [ ] Health check passing
- [ ] No data loss confirmed

## Post-Rollback
- [ ] Incident created for root cause analysis
- [ ] Fix branch created from rolled-back commit

If any BLOCK item fails → STOP deploy. Fix before retrying. If WARN items missing → proceed but flag in deploy report.

Step 2 — Detect platform

Use Bash to inspect the project root for platform config files:

ls vercel.json netlify.toml Dockerfile fly.toml 2>/dev/null
cat package.json | grep -A5 '"scripts"'

Map findings to platform:

File foundPlatform
vercel.jsonVercel
netlify.tomlNetlify
fly.tomlFly.io
DockerfileDocker / VPS
package.json deploy scriptnpm deploy

If no config found, ask the user which platform to target before continuing.

Step 3 — Deploy

Use Bash to run the platform-specific deploy command:

PlatformCommand
Vercelvercel --prod
Netlifynetlify deploy --prod
Fly.iofly deploy
Dockerdocker build -t app . && docker push <registry>/app
npm scriptnpm run deploy

Capture full command output. Extract deployed URL from output.

Step 4 — Verify deployment

Use Bash to check the deployed URL returns HTTP 200:

curl -o /dev/null -s -w "%{http_code}" <deployed-url>

If status is not 200 → flag as WARNING, do not treat as hard failure unless 5xx.

If rune:browser-pilot is available, call it to take a screenshot of the deployed URL for visual confirmation.

Step 4.5 — Post-Deploy Health Thresholds

After deploy is live, compare metrics against pre-deploy baseline for a 15-minute observation window:

MetricADVANCE (healthy)HOLD & INVESTIGATEROLLBACK IMMEDIATELY
Error rate≤ 10% above baseline10–100% above baseline> 2× baseline
Latency (p95)≤ 20% above baseline20–100% above baseline> 2× baseline
Availability≥ 99.5%98–99.5%< 98%

Decision rules:

  • ANY metric hits ROLLBACK → execute rollback plan immediately, invoke rune:incident
  • ANY metric hits HOLD → extend monitoring to 30 minutes, alert user with specific metric
  • ADVANCE only when ALL metrics are healthy for the full observation window
  • If no baseline exists (first deploy), use absolute thresholds: error rate < 1%, p95 < 2s, availability > 99%

For progressive rollouts (feature-flag mode), apply the tighter thresholds defined in the Progressive Rollout Chain section instead.

Step 5 — Monitor

Call rune:watchdog to set up post-deploy monitoring alerts on the deployed URL.

Step 6 — Report

Output the deploy report:

## Deploy Report
- **Platform**: [target]
- **Status**: success | failed | rollback
- **URL**: [deployed URL]
- **Build Time**: [duration]

### Checks
- Tests: passed | failed
- Security: passed | failed ([count] issues)
- HTTP Status: [code]
- Visual: [screenshot path if browser-pilot ran]
- Monitoring: active | skipped

If any step failed, include the error output and recommended next action.

Progressive Rollout / Feature Flag Mode

When deploying high-risk changes (new features, migrations, architectural changes), use staged rollout instead of all-at-once deploy. Triggered by: user says "canary", "rollout", "feature flag", "staged", or "progressive" — or when release checklist item 3 (breaking changes) fires.

Progressive Rollout Chain

Stage 1: CANARY (5% traffic)
  → deploy to production with feature flag OFF
  → enable flag for 5% of users (staff, beta users, or random sample)
  → watchdog: monitor error rate, latency, conversions for 15-30 minutes
  → GATE: error rate < 0.5% AND latency ≤ baseline × 1.2

Stage 2: EXPAND (25% → 50% → 100%)
  → for each step: enable flag for N%, wait 15 min, check watchdog metrics
  → GATE: same thresholds at each step
  → At 100%: cleanup flag (remove feature flag code, ship cleanup PR)

ROLLBACK TRIGGER: any stage fails watchdog gate → immediately set flag to 0%, incident auto-created

Feature Flag Integration

PlatformFlag MechanismCleanup Step
VercelEdge Config or @vercel/flagsRemove flag key after 100% rollout
LaunchDarklySDK variation checkArchive flag, clean up variation() calls
GrowthbookFeature flag SDKDeactivate + remove SDK calls
DIY .env flagFEATURE_X_ENABLED=true env varRemove env var + conditional after 100%

Minimum feature flag implementation (no platform dependency):

// Simple env-based flag — works anywhere
const FEATURE_X = process.env.FEATURE_X_ENABLED === 'true';
if (FEATURE_X) { /* new path */ } else { /* old path */ }
// Cleanup: when flag reaches 100% → inline the new path, delete the conditional

Skip if

  • Hotfix deploy (urgency outweighs staged rollout)
  • Static site deploy with no user-state impact
  • Non-production deploy (staging, preview)

Managed vs Self-Host Crossover

Production deploys frequently default to "managed" (Vercel, Cloudflare Workers, Supabase, etc.) for speed-of-setup, then quietly bleed budget as scale grows. The opposite mistake — self-hosting at 10K MAU "to save money" — wastes more engineering time than the bill it saves. The crossover point is workload-dependent. Defaults below are heuristic; verify against operator's actual bill before recommending a switch.

WorkloadStay managed until ~Self-host aboveReason
Auth (Clerk, Auth0, Supabase auth)200K MAU200K+ MAU AND auth-customization needsPer-MAU pricing kicks 5-10× at scale; OSS alternatives (better-auth, Keycloak) have mature implementations
Search (Algolia, Typesense Cloud)500K records OR 100K queries/moBeyond eitherPer-record + per-query stacks; OpenSearch/Meilisearch self-host crosses over at this volume
Database (managed Postgres — Supabase, Neon, RDS)$500/mo bill$500+ bill AND ops capacity existsBelow $500 the on-call burden of self-host dominates; above $500 the savings cover an engineer's bandwidth
Object storage (S3, R2, Backblaze)Almost never self-hostPetabyte-scale + bandwidth-heavy useS3-class storage is hard to beat below 10PB; cross-region egress is usually the real cost lever
Email (SendGrid, Resend, Postmark)Almost never self-hostCompliance-driven requirement onlySMTP reputation + deliverability take years to build; running mail server for cost is false economy
CDN (Cloudflare, Fastly)Almost never self-hostEdge-compute customization + > 100TB/mo egressCloudflare free tier alone covers most projects; CDN self-host is rarely the right answer
Compute (Vercel/Netlify/Workers)$300-500/mo bill$500+/mo AND traffic stableBelow $500 the operational overhead of K8s/Fly/VPS dominates; above, dedicated container hosting wins
Vector DB (Pinecone, Weaviate Cloud)$200/mo OR < 10M vectors$200+ AND vectors > 10MSelf-hosted Qdrant/Milvus crosses over at moderate scale
Queue (SQS, Cloud Tasks)Almost never self-hostLatency-critical sub-5ms onlyPer-message pricing is low; self-host (RabbitMQ, NATS) only when latency SLO < 5ms

Operator decision rule: do NOT migrate to self-host purely on bill size. Verify all three:

  1. Bill threshold crossed (per table above)
  2. Ops bandwidth exists (someone on-call who can run the service)
  3. Customization need exists (the managed service blocks something specific)

If only (1) is true, recommend WARN MANAGED_OK_AT_SCALE — bill above crossover but ops bandwidth not validated — keep managed; revisit when (2)+(3) also true.

Reverse scenario: prematurely self-hosting at < 10K MAU costs more engineering time than the managed bill it avoids. Flag with PREMATURE_SELFHOST — [resource] self-hosted at [N] usage — managed equivalent < $X/mo + zero ops burden — strong recommendation: migrate to managed unless customization (3) is blocking.

Cost-allocation precondition: even within managed services, ALL cloud resources must carry allocation tags (Environment, Team, Service, CostCenter). Without tags, anomaly detection is impossible and any "managed is expensive" claim is unfalsifiable. Step 1 pre-deploy check should add:

# Verify cost allocation tags exist on managed resources
# AWS: aws resourcegroupstaggingapi get-resources --tag-filters Key=Environment
# GCP: gcloud asset search-all-resources --query='labels:environment'
# Vercel: project settings → check team/project tagging
# If untagged → BLOCK with COST_UNATTRIBUTED finding

Observability Cost in Deploys

Production observability (Datadog, Sentry, New Relic, Honeycomb, Logtail) bills can rival compute bills if shipped with default config. Verify before first prod deploy:

LayerDefault that bleeds moneyCorrect config
Log retention30+ days at INFO7 days INFO, 30 days WARN+, archive cold for compliance
Trace samplingHead-based 100%Tail-based 5-10% normal + 100% on error/slow
MetricsHigh-cardinality custom dims (user_id, trace_id)Pre-aggregate at agent; per-event = log not metric
RUM (Real User Monitoring)100% session capture10-20% sample + 100% on rage-click/error

This overlaps with perf Step 8.6 (Observability Cost Control). perf finds the code patterns that emit overheavy telemetry; deploy ensures the platform-side ingestion + retention defaults are configured before the first prod release where the bill compounds.

Instrumentation Readiness (pre-prod advisory gate)

Two observability concerns, kept separate: the section above ("Observability Cost in Deploys") gates the telemetry bill (retention/sampling/cardinality config). This section gates whether the telemetry exists and works at all. Both run; neither replaces the other.

Cost config (above) answers "is the telemetry affordable". This answers "does the telemetry exist and work". A feature with retries, queues, external calls, or new endpoints that ships zero new telemetry is shipping blind — the first incident becomes archaeology.

<MUST-READ path="references/observability.md" trigger="first prod deploy of a feature that adds I/O, endpoints, jobs, or external integrations"/>

Before the first production deploy of such a feature, verify the Instrumentation Readiness Checklist in references/observability.md. This is advisory (WARN, not BLOCK) — do not stop a deploy over missing telemetry, but surface the gap:

INSTRUMENTATION_GAP — feature adds [endpoint/job/integration] with no new
structured logs / RED metrics / correlation ID. First incident will be blind.
→ See deploy/references/observability.md before shipping.

Skip for: static sites, config-only changes, hotfixes (flag for follow-up), non-prod deploys.

Output Format

Deploy Report with platform, status (success/failed/rollback), deployed URL, build time, and checks (tests, security, HTTP, visual, monitoring). See Step 6 Report above for full template.

Constraints

  1. MUST verify tests + sentinel pass before deploying — non-negotiable
  2. MUST have rollback strategy documented before production deploy
  3. MUST verify deploy is live and responding before declaring success
  4. MUST NOT deploy with known CRITICAL security findings
  5. MUST log deploy metadata (version, timestamp, commit hash)
  6. MUST complete release checklist for production deploys — version bump, changelog, rollback plan
  7. MUST create rollback plan artifact before first production deploy of a version

Returns

ArtifactFormatLocation
Deploy reportMarkdowninline (chat output)
Deploy status (success/failed/rollback)Textinline
Health check results (HTTP status, visual)Markdowninline
Rollback plan documentMarkdown.rune/deploy/rollback-<version>.md
Monitoring confirmationTextinline

Sharp Edges

Known failure modes for this skill. Check these before declaring done.

Failure ModeSeverityMitigation
Deploying without verification passingCRITICALHARD-GATE blocks this — both verification AND sentinel must pass first
Platform auto-detected wrongly and wrong command runsHIGHVerify config files explicitly; ask user if multiple platforms detected
HTTP 5xx on live URL treated as non-criticalHIGH5xx = deployment likely failed — report FAILED, do not proceed to monitoring/marketing
Not setting up watchdog monitoring after deployMEDIUMStep 5 is mandatory — post-deploy monitoring is part of deploy, not optional
Deploy metadata not logged (version, commit hash)LOWConstraint 5: log version + timestamp + commit hash in report
Resources deployed without cost-allocation tagsHIGHStep 1 pre-deploy MUST verify Environment/Team/Service tags. Untagged = unfalsifiable cost claims downstream
Self-host migration recommended on bill threshold aloneHIGHCrossover rule requires ALL 3 conditions: bill + ops bandwidth + customization need. Single-criterion recommendations produce engineering-debt swap
Defaults shipped on observability stackMEDIUMVerify retention + sampling + cardinality config BEFORE first prod deploy; defaults often bleed > compute bill
Feature ships with zero telemetry (logs/metrics/traces)MEDIUMInstrumentation Readiness advisory gate — WARN INSTRUMENTATION_GAP (skip for static sites/config-only/hotfix per section); first incident is blind without it. See references/observability.md
Premature self-host (< 10K MAU)MEDIUMFlag PREMATURE_SELFHOST — managed equivalent at this scale is cheaper than engineering time spent operating

Done When

  • verification PASS (tests, types, lint, build all green)
  • sentinel PASS (no CRITICAL security findings)
  • Deploy command succeeded with live URL captured
  • Live URL returns HTTP 200
  • watchdog monitoring active on deployed URL
  • Deploy Report emitted with platform, URL, checks, and monitoring status

Cost Profile

~1000-3000 tokens input, ~500-1000 tokens output. Sonnet. Most time in build/deploy commands.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

adversary

無料

Pre-implementation red-team analysis. Use when a plan is high-risk, critical path, or expensive to reverse. Challenges plans before code is written — finds edge cases, security holes, scalability bottlenecks, error propagation risks, and integration conflicts. Catches flaws at plan time (10x cheaper than post-implementation).

日本語の概要は準備中です。原文の説明を表示しています。

Rune-kit/rune862026年8月16日 更新

Creates code-based visual assets — SVG icons, OG image HTML templates, social banners, and icon sets. Use when generating visuals as code (vector/HTML), NOT raster images — for raster generation see @rune-pro/media. Outputs files with usage instructions.

日本語の概要は準備中です。原文の説明を表示しています。

Rune-kit/rune862026年8月16日 更新

audit

無料

Comprehensive project audit — security, dependencies, code quality, architecture, performance, infra, docs, and mesh analytics. Use when needing a full 8-dimension health-score snapshot before a major release, M&A diligence, or quarterly review. Delegates to specialist skills (sentinel, dependency-doctor, perf, autopsy, etc.).

日本語の概要は準備中です。原文の説明を表示しています。

Rune-kit/rune862026年8月16日 更新

autopsy

無料

Full codebase health assessment. Use when diagnosing project health or starting a rescue workflow on legacy code — OR when evaluating an external GitHub repo for dependency / fork / contribution decisions (--external mode). Analyzes complexity, dependencies, dead code, tech debt, and git hotspots. Produces a health score and rescue plan.

日本語の概要は準備中です。原文の説明を表示しています。

Rune-kit/rune862026年8月16日 更新

ba

無料

Business Analyst agent. Use when starting a new feature requiring requirements elicitation BEFORE plan or cook. Asks probing questions, identifies hidden requirements, maps stakeholders, defines scope boundaries, and produces a structured Requirements Document that plan and cook consume.

日本語の概要は準備中です。原文の説明を表示しています。

Rune-kit/rune862026年8月16日 更新

Creative ideation and solution exploration. Generates multiple approaches with trade-offs, uses structured frameworks (SCAMPER, First Principles), and hands off to plan for structuring.

日本語の概要は準備中です。原文の説明を表示しています。

Rune-kit/rune862026年8月16日 更新

Rune-kit のスキルをすべて見る

このスキルの問題を報告する