@rune-kit/rune 2.8.0 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +68 -34
- package/agents/adversary.md +27 -0
- package/agents/architect.md +19 -29
- package/agents/asset-creator.md +18 -4
- package/agents/audit.md +25 -4
- package/agents/autopsy.md +19 -4
- package/agents/ba.md +35 -0
- package/agents/brainstorm.md +31 -4
- package/agents/browser-pilot.md +21 -4
- package/agents/coder.md +21 -29
- package/agents/completion-gate.md +20 -4
- package/agents/constraint-check.md +18 -4
- package/agents/context-engine.md +22 -4
- package/agents/context-pack.md +32 -0
- package/agents/cook.md +41 -4
- package/agents/db.md +19 -4
- package/agents/debug.md +33 -4
- package/agents/dependency-doctor.md +20 -4
- package/agents/deploy.md +27 -4
- package/agents/design.md +22 -4
- package/agents/doc-processor.md +27 -0
- package/agents/docs-seeker.md +19 -4
- package/agents/docs.md +31 -0
- package/agents/fix.md +37 -4
- package/agents/git.md +29 -0
- package/agents/hallucination-guard.md +20 -4
- package/agents/incident.md +21 -4
- package/agents/integrity-check.md +18 -4
- package/agents/journal.md +19 -4
- package/agents/launch.md +32 -4
- package/agents/logic-guardian.md +26 -11
- package/agents/marketing.md +23 -4
- package/agents/mcp-builder.md +26 -0
- package/agents/neural-memory.md +30 -0
- package/agents/onboard.md +22 -4
- package/agents/perf.md +21 -4
- package/agents/plan.md +29 -4
- package/agents/preflight.md +22 -4
- package/agents/problem-solver.md +20 -4
- package/agents/rescue.md +23 -4
- package/agents/research.md +19 -4
- package/agents/researcher.md +19 -29
- package/agents/retro.md +32 -0
- package/agents/review-intake.md +20 -4
- package/agents/review.md +32 -4
- package/agents/reviewer.md +20 -28
- package/agents/safeguard.md +19 -4
- package/agents/sast.md +18 -4
- package/agents/scaffold.md +41 -0
- package/agents/scanner.md +19 -28
- package/agents/scope-guard.md +18 -4
- package/agents/scout.md +23 -4
- package/agents/sentinel-env.md +26 -0
- package/agents/sentinel.md +33 -4
- package/agents/sequential-thinking.md +20 -4
- package/agents/session-bridge.md +24 -4
- package/agents/skill-forge.md +22 -4
- package/agents/skill-router.md +26 -4
- package/agents/slides.md +24 -0
- package/agents/surgeon.md +19 -4
- package/agents/team.md +30 -4
- package/agents/test.md +36 -4
- package/agents/trend-scout.md +17 -4
- package/agents/verification.md +20 -4
- package/agents/video-creator.md +20 -4
- package/agents/watchdog.md +19 -4
- package/agents/worktree.md +17 -4
- package/commands/rune.md +168 -168
- package/compiler/__tests__/analytics.test.js +370 -0
- package/compiler/adapters/openclaw.js +2 -2
- package/compiler/analytics.js +385 -0
- package/compiler/bin/rune.js +68 -2
- package/compiler/dashboard.js +883 -0
- package/compiler/transforms/branding.js +1 -1
- package/contexts/dev.md +34 -34
- package/contexts/research.md +43 -43
- package/contexts/review.md +55 -55
- package/extensions/ai-ml/PACK.md +88 -88
- package/extensions/ai-ml/skills/ai-agents.md +172 -172
- package/extensions/ai-ml/skills/code-sandbox.md +187 -187
- package/extensions/ai-ml/skills/deep-research.md +146 -146
- package/extensions/ai-ml/skills/embedding-search.md +66 -66
- package/extensions/ai-ml/skills/fine-tuning-guide.md +74 -74
- package/extensions/ai-ml/skills/llm-architect.md +125 -125
- package/extensions/ai-ml/skills/llm-integration.md +64 -64
- package/extensions/ai-ml/skills/prompt-patterns.md +72 -72
- package/extensions/ai-ml/skills/rag-patterns.md +66 -66
- package/extensions/ai-ml/skills/web-extraction.md +114 -114
- package/extensions/analytics/PACK.md +92 -92
- package/extensions/analytics/skills/ab-testing.md +72 -72
- package/extensions/analytics/skills/dashboard-patterns.md +83 -83
- package/extensions/analytics/skills/data-validation.md +68 -68
- package/extensions/analytics/skills/funnel-analysis.md +81 -81
- package/extensions/analytics/skills/sql-patterns.md +57 -57
- package/extensions/analytics/skills/statistical-analysis.md +79 -79
- package/extensions/analytics/skills/tracking-setup.md +71 -71
- package/extensions/backend/PACK.md +104 -104
- package/extensions/backend/skills/api-patterns.md +84 -84
- package/extensions/backend/skills/async-pipeline.md +193 -193
- package/extensions/backend/skills/auth-patterns.md +97 -97
- package/extensions/backend/skills/background-jobs.md +133 -133
- package/extensions/backend/skills/caching-patterns.md +108 -108
- package/extensions/backend/skills/cli-generation.md +133 -133
- package/extensions/backend/skills/database-patterns.md +87 -87
- package/extensions/backend/skills/middleware-patterns.md +104 -104
- package/extensions/chrome-ext/PACK.md +93 -93
- package/extensions/chrome-ext/skills/cws-preflight.md +143 -143
- package/extensions/chrome-ext/skills/cws-publish.md +104 -104
- package/extensions/chrome-ext/skills/ext-ai-integration.md +251 -251
- package/extensions/chrome-ext/skills/ext-messaging.md +139 -139
- package/extensions/chrome-ext/skills/ext-storage.md +133 -133
- package/extensions/chrome-ext/skills/mv3-scaffold.md +164 -164
- package/extensions/content/PACK.md +96 -96
- package/extensions/content/skills/blog-patterns.md +88 -88
- package/extensions/content/skills/cms-integration.md +131 -131
- package/extensions/content/skills/content-scoring.md +107 -107
- package/extensions/content/skills/i18n.md +83 -83
- package/extensions/content/skills/mdx-authoring.md +137 -137
- package/extensions/content/skills/reference.md +1014 -1014
- package/extensions/content/skills/seo-patterns.md +67 -67
- package/extensions/content/skills/video-repurpose.md +153 -153
- package/extensions/devops/PACK.md +101 -101
- package/extensions/devops/skills/chaos-testing.md +67 -67
- package/extensions/devops/skills/ci-cd.md +75 -75
- package/extensions/devops/skills/docker.md +58 -58
- package/extensions/devops/skills/edge-serverless.md +163 -163
- package/extensions/devops/skills/infra-as-code.md +158 -158
- package/extensions/devops/skills/kubernetes.md +110 -110
- package/extensions/devops/skills/monitoring.md +57 -57
- package/extensions/devops/skills/server-setup.md +64 -64
- package/extensions/devops/skills/ssl-domain.md +42 -42
- package/extensions/ecommerce/PACK.md +116 -116
- package/extensions/ecommerce/skills/cart-system.md +79 -79
- package/extensions/ecommerce/skills/inventory-mgmt.md +102 -102
- package/extensions/ecommerce/skills/order-management.md +126 -126
- package/extensions/ecommerce/skills/payment-integration.md +472 -472
- package/extensions/ecommerce/skills/shopify-dev.md +69 -69
- package/extensions/ecommerce/skills/subscription-billing.md +93 -93
- package/extensions/ecommerce/skills/tax-compliance.md +117 -117
- package/extensions/gamedev/PACK.md +142 -142
- package/extensions/gamedev/skills/asset-pipeline.md +74 -74
- package/extensions/gamedev/skills/audio-system.md +129 -129
- package/extensions/gamedev/skills/camera-system.md +87 -87
- package/extensions/gamedev/skills/ecs.md +98 -98
- package/extensions/gamedev/skills/game-loops.md +72 -72
- package/extensions/gamedev/skills/input-system.md +199 -199
- package/extensions/gamedev/skills/multiplayer.md +180 -180
- package/extensions/gamedev/skills/particles.md +105 -105
- package/extensions/gamedev/skills/physics-engine.md +89 -89
- package/extensions/gamedev/skills/scene-management.md +146 -146
- package/extensions/gamedev/skills/threejs-patterns.md +90 -90
- package/extensions/gamedev/skills/webgl.md +71 -71
- package/extensions/mobile/PACK.md +106 -106
- package/extensions/mobile/skills/app-store-connect.md +152 -152
- package/extensions/mobile/skills/app-store-prep.md +66 -66
- package/extensions/mobile/skills/deep-linking.md +109 -109
- package/extensions/mobile/skills/flutter.md +60 -60
- package/extensions/mobile/skills/ios-build-pipeline.md +142 -142
- package/extensions/mobile/skills/native-bridge.md +66 -66
- package/extensions/mobile/skills/ota-updates.md +97 -97
- package/extensions/mobile/skills/push-notifications.md +111 -111
- package/extensions/mobile/skills/react-native.md +82 -82
- package/extensions/saas/PACK.md +116 -116
- package/extensions/saas/skills/billing-integration.md +200 -200
- package/extensions/saas/skills/feature-flags.md +130 -130
- package/extensions/saas/skills/multi-tenant.md +103 -103
- package/extensions/saas/skills/onboarding-flow.md +139 -139
- package/extensions/saas/skills/subscription-flow.md +95 -95
- package/extensions/saas/skills/team-management.md +144 -144
- package/extensions/security/PACK.md +99 -99
- package/extensions/security/skills/api-security.md +140 -140
- package/extensions/security/skills/compliance.md +68 -68
- package/extensions/security/skills/owasp-audit.md +64 -64
- package/extensions/security/skills/pentest-patterns.md +77 -77
- package/extensions/security/skills/secret-mgmt.md +65 -65
- package/extensions/security/skills/supply-chain.md +65 -65
- package/extensions/trading/PACK.md +80 -80
- package/extensions/trading/skills/chart-components.md +55 -55
- package/extensions/trading/skills/experiment-loop.md +125 -125
- package/extensions/trading/skills/fintech-patterns.md +47 -47
- package/extensions/trading/skills/indicator-library.md +58 -58
- package/extensions/trading/skills/quant-analysis.md +111 -111
- package/extensions/trading/skills/realtime-data.md +58 -58
- package/extensions/trading/skills/trade-logic.md +104 -104
- package/extensions/ui/PACK.md +130 -130
- package/extensions/ui/skills/a11y-audit.md +91 -91
- package/extensions/ui/skills/animation-patterns.md +127 -106
- package/extensions/ui/skills/component-patterns.md +100 -75
- package/extensions/ui/skills/design-decision.md +108 -108
- package/extensions/ui/skills/design-system.md +68 -68
- package/extensions/ui/skills/landing-patterns.md +155 -155
- package/extensions/ui/skills/palette-picker.md +173 -173
- package/extensions/ui/skills/react-health.md +90 -90
- package/extensions/ui/skills/type-system.md +125 -125
- package/extensions/ui/skills/web-vitals.md +153 -153
- package/extensions/zalo/PACK.md +145 -145
- package/extensions/zalo/skills/zalo-oa-mcp.md +317 -317
- package/extensions/zalo/skills/zalo-oa-messaging.md +429 -429
- package/extensions/zalo/skills/zalo-oa-setup.md +236 -236
- package/extensions/zalo/skills/zalo-oa-webhook.md +189 -189
- package/extensions/zalo/skills/zalo-personal-messaging.md +194 -194
- package/extensions/zalo/skills/zalo-personal-setup.md +153 -153
- package/extensions/zalo/skills/zalo-rate-guard.md +219 -219
- package/hooks/auto-format/index.cjs +48 -48
- package/hooks/context-watch/index.cjs +95 -68
- package/hooks/hooks.json +111 -111
- package/hooks/metrics-collector/index.cjs +86 -42
- package/hooks/post-session-reflect/index.cjs +189 -153
- package/hooks/pre-compact/index.cjs +95 -95
- package/hooks/run-hook.cmd +1 -1
- package/hooks/secrets-scan/index.cjs +100 -100
- package/hooks/session-start/index.cjs +71 -65
- package/hooks/typecheck/index.cjs +65 -65
- package/package.json +63 -63
- package/references/ui-pro-max-data/LICENSE-UI-PRO-MAX +21 -21
- package/references/ui-pro-max-data/charts.csv +26 -26
- package/references/ui-pro-max-data/colors.csv +161 -161
- package/references/ui-pro-max-data/styles.csv +68 -68
- package/references/ui-pro-max-data/typography.csv +74 -74
- package/references/ui-pro-max-data/ui-reasoning.csv +162 -162
- package/references/ui-pro-max-data/ux-guidelines.csv +99 -99
- package/skills/adversary/SKILL.md +283 -283
- package/skills/asset-creator/SKILL.md +157 -157
- package/skills/audit/SKILL.md +148 -2
- package/skills/autopsy/SKILL.md +335 -259
- package/skills/autopsy/references/repo-analysis-patterns.md +113 -0
- package/skills/ba/SKILL.md +72 -2
- package/skills/brainstorm/SKILL.md +342 -341
- package/skills/browser-pilot/SKILL.md +168 -168
- package/skills/constraint-check/SKILL.md +165 -165
- package/skills/context-engine/SKILL.md +404 -404
- package/skills/cook/SKILL.md +917 -834
- package/skills/cook/references/output-format.md +33 -0
- package/skills/db/SKILL.md +273 -272
- package/skills/debug/SKILL.md +465 -443
- package/skills/dependency-doctor/SKILL.md +265 -235
- package/skills/deploy/SKILL.md +274 -231
- package/skills/design/DESIGN-REFERENCE.md +365 -365
- package/skills/design/SKILL.md +589 -482
- package/skills/doc-processor/SKILL.md +254 -254
- package/skills/docs/SKILL.md +374 -373
- package/skills/docs-seeker/SKILL.md +177 -177
- package/skills/fix/SKILL.md +330 -308
- package/skills/git/SKILL.md +339 -339
- package/skills/graft/SKILL.md +352 -0
- package/skills/graft/references/challenge-framework.md +98 -0
- package/skills/graft/references/mode-decision.md +44 -0
- package/skills/hallucination-guard/SKILL.md +219 -219
- package/skills/incident/SKILL.md +254 -251
- package/skills/integrity-check/SKILL.md +169 -169
- package/skills/journal/SKILL.md +240 -238
- package/skills/launch/SKILL.md +344 -342
- package/skills/logic-guardian/SKILL.md +251 -251
- package/skills/marketing/SKILL.md +290 -245
- package/skills/mcp-builder/SKILL.md +425 -423
- package/skills/mcp-builder/references/auto-discovery-pattern.md +169 -0
- package/skills/neural-memory/SKILL.md +362 -362
- package/skills/onboard/SKILL.md +404 -403
- package/skills/perf/SKILL.md +346 -346
- package/skills/plan/SKILL.md +433 -370
- package/skills/plan/references/feature-map.md +84 -0
- package/skills/preflight/SKILL.md +415 -396
- package/skills/problem-solver/SKILL.md +380 -284
- package/skills/rescue/SKILL.md +474 -450
- package/skills/retro/SKILL.md +5 -1
- package/skills/review/SKILL.md +612 -535
- package/skills/review-intake/SKILL.md +249 -249
- package/skills/safeguard/SKILL.md +200 -200
- package/skills/sast/SKILL.md +190 -190
- package/skills/scaffold/SKILL.md +328 -286
- package/skills/scope-guard/SKILL.md +180 -162
- package/skills/scout/SKILL.md +263 -263
- package/skills/sentinel/SKILL.md +382 -353
- package/skills/sentinel-env/SKILL.md +254 -254
- package/skills/sequential-thinking/SKILL.md +234 -234
- package/skills/session-bridge/SKILL.md +543 -397
- package/skills/skill-forge/SKILL.md +581 -539
- package/skills/skill-router/{skill.md → SKILL.md} +30 -2
- package/skills/surgeon/SKILL.md +215 -215
- package/skills/team/SKILL.md +556 -514
- package/skills/test/SKILL.md +614 -587
- package/skills/trend-scout/SKILL.md +145 -145
- package/skills/verification/SKILL.md +326 -325
- package/skills/video-creator/SKILL.md +201 -201
- package/skills/watchdog/SKILL.md +168 -168
- package/skills/worktree/SKILL.md +140 -140
package/skills/deploy/SKILL.md
CHANGED
|
@@ -1,231 +1,274 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: deploy
|
|
3
|
-
description: "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."
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
metadata:
|
|
6
|
-
author: runedev
|
|
7
|
-
version: "0.4.0"
|
|
8
|
-
layer: L2
|
|
9
|
-
model: sonnet
|
|
10
|
-
group: delivery
|
|
11
|
-
tools: "Read, Write, Edit, Bash, Glob, Grep"
|
|
12
|
-
emit: deploy.complete
|
|
13
|
-
listen: security.passed, tests.passed
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# deploy
|
|
17
|
-
|
|
18
|
-
## Purpose
|
|
19
|
-
|
|
20
|
-
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.
|
|
21
|
-
|
|
22
|
-
<HARD-GATE>
|
|
23
|
-
- Tests MUST pass (via `rune:verification`) before deploy runs
|
|
24
|
-
- Sentinel MUST pass (no CRITICAL issues) before deploy runs
|
|
25
|
-
- Both are non-negotiable. Failure = stop + report, never skip
|
|
26
|
-
</HARD-GATE>
|
|
27
|
-
|
|
28
|
-
## Called By (inbound)
|
|
29
|
-
|
|
30
|
-
- `launch` (L1): deployment phase of launch pipeline
|
|
31
|
-
- User: `/rune deploy` direct invocation
|
|
32
|
-
|
|
33
|
-
## Calls (outbound)
|
|
34
|
-
|
|
35
|
-
- `test` (L2): pre-deploy full test suite
|
|
36
|
-
- `db` (L2): pre-deploy migration safety check
|
|
37
|
-
- `perf` (L2): pre-deploy performance regression check
|
|
38
|
-
- `verification` (L2): pre-deploy build + lint + type check
|
|
39
|
-
- `sentinel` (L2): pre-deploy security scan
|
|
40
|
-
- `browser-pilot` (L3): verify live deployment visually
|
|
41
|
-
- `watchdog` (L3): setup post-deploy monitoring
|
|
42
|
-
- `journal` (L3): record deploy decision, rollback plan, and post-deploy status
|
|
43
|
-
- `incident` (L2): if post-deploy health check fails → triage and contain
|
|
44
|
-
- L4 extension packs: domain-specific deploy patterns when context matches (e.g., @rune/devops for infrastructure)
|
|
45
|
-
|
|
46
|
-
## Cross-Hub Connections
|
|
47
|
-
|
|
48
|
-
- `deploy` → `verification` — pre-deploy tests + build must pass
|
|
49
|
-
- `deploy` → `sentinel` — security must pass before push
|
|
50
|
-
|
|
51
|
-
## Execution Steps
|
|
52
|
-
|
|
53
|
-
### Step 1 — Pre-deploy checks (HARD-GATE)
|
|
54
|
-
|
|
55
|
-
Call `rune:verification` to run the full test suite and build.
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
If verification fails → STOP. Do NOT proceed. Report failure with test output.
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
Call `rune:sentinel` to run security scan.
|
|
62
|
-
|
|
63
|
-
```
|
|
64
|
-
If sentinel returns CRITICAL issues → STOP. Do NOT proceed. Report issues.
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
Both gates MUST pass. No exceptions.
|
|
68
|
-
|
|
69
|
-
### Step 1.5 — Release Checklist (Production Deploys Only)
|
|
70
|
-
|
|
71
|
-
**Skip for**: staging, preview, development deploys.
|
|
72
|
-
|
|
73
|
-
Before production deploy, verify ALL items:
|
|
74
|
-
|
|
75
|
-
| # | Check | How | Gate |
|
|
76
|
-
|---|-------|-----|------|
|
|
77
|
-
| 1 | Version bumped | `package.json`/`pyproject.toml` version matches release | BLOCK if unchanged |
|
|
78
|
-
| 2 | Changelog updated | `CHANGELOG.md` has entry for this version | WARN if missing |
|
|
79
|
-
| 3 | Breaking changes documented | RFC artifact exists for each breaking change | BLOCK if RFC missing |
|
|
80
|
-
| 4 | Migration scripts ready | DB migrations tested on staging first | BLOCK if untested migration |
|
|
81
|
-
| 5 | Rollback plan documented | `.rune/deploy/rollback-<version>.md` exists | WARN if missing |
|
|
82
|
-
| 6 | Release notes drafted | Customer-facing notes for release-comms | WARN if missing |
|
|
83
|
-
| 7 | Dependencies locked | Lock file committed, no floating versions | BLOCK if unlocked |
|
|
84
|
-
|
|
85
|
-
**Rollback Plan Template** (`.rune/deploy/rollback-<version>.md`):
|
|
86
|
-
|
|
87
|
-
```markdown
|
|
88
|
-
# Rollback Plan: v<version>
|
|
89
|
-
|
|
90
|
-
## Trigger Conditions
|
|
91
|
-
- [When to rollback — e.g., error rate >5%, P0 incident, data corruption]
|
|
92
|
-
|
|
93
|
-
## Steps
|
|
94
|
-
1. [Revert command — e.g., `vercel rollback`, `fly releases rollback`]
|
|
95
|
-
2. [DB rollback — e.g., `npm run migrate:rollback` or "N/A — no migration"]
|
|
96
|
-
3. [Cache invalidation if needed]
|
|
97
|
-
4. [Notify stakeholders]
|
|
98
|
-
|
|
99
|
-
## Verification
|
|
100
|
-
- [ ] Previous version serving traffic
|
|
101
|
-
- [ ] Health check passing
|
|
102
|
-
- [ ] No data loss confirmed
|
|
103
|
-
|
|
104
|
-
## Post-Rollback
|
|
105
|
-
- [ ] Incident created for root cause analysis
|
|
106
|
-
- [ ] Fix branch created from rolled-back commit
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
If any BLOCK item fails → STOP deploy. Fix before retrying.
|
|
110
|
-
If WARN items missing → proceed but flag in deploy report.
|
|
111
|
-
|
|
112
|
-
### Step 2 — Detect platform
|
|
113
|
-
|
|
114
|
-
Use `Bash` to inspect the project root for platform config files:
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
ls vercel.json netlify.toml Dockerfile fly.toml 2>/dev/null
|
|
118
|
-
cat package.json | grep -A5 '"scripts"'
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
Map findings to platform:
|
|
122
|
-
|
|
123
|
-
| File found | Platform |
|
|
124
|
-
|---|---|
|
|
125
|
-
| `vercel.json` | Vercel |
|
|
126
|
-
| `netlify.toml` | Netlify |
|
|
127
|
-
| `fly.toml` | Fly.io |
|
|
128
|
-
| `Dockerfile` | Docker / VPS |
|
|
129
|
-
| `package.json` deploy script | npm deploy |
|
|
130
|
-
|
|
131
|
-
If no config found, ask the user which platform to target before continuing.
|
|
132
|
-
|
|
133
|
-
### Step 3 — Deploy
|
|
134
|
-
|
|
135
|
-
Use `Bash` to run the platform-specific deploy command:
|
|
136
|
-
|
|
137
|
-
| Platform | Command |
|
|
138
|
-
|---|---|
|
|
139
|
-
| Vercel | `vercel --prod` |
|
|
140
|
-
| Netlify | `netlify deploy --prod` |
|
|
141
|
-
| Fly.io | `fly deploy` |
|
|
142
|
-
| Docker | `docker build -t app . && docker push <registry>/app` |
|
|
143
|
-
| npm script | `npm run deploy` |
|
|
144
|
-
|
|
145
|
-
Capture full command output. Extract deployed URL from output.
|
|
146
|
-
|
|
147
|
-
### Step 4 — Verify deployment
|
|
148
|
-
|
|
149
|
-
Use `Bash` to check the deployed URL returns HTTP 200:
|
|
150
|
-
|
|
151
|
-
```bash
|
|
152
|
-
curl -o /dev/null -s -w "%{http_code}" <deployed-url>
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
If status is not 200 → flag as WARNING, do not treat as hard failure unless 5xx.
|
|
156
|
-
|
|
157
|
-
If `rune:browser-pilot` is available, call it to take a screenshot of the deployed URL for visual confirmation.
|
|
158
|
-
|
|
159
|
-
### Step 5 — Monitor
|
|
160
|
-
|
|
161
|
-
Call `rune:watchdog` to set up post-deploy monitoring alerts on the deployed URL.
|
|
162
|
-
|
|
163
|
-
### Step 6 — Report
|
|
164
|
-
|
|
165
|
-
Output the deploy report:
|
|
166
|
-
|
|
167
|
-
```
|
|
168
|
-
## Deploy Report
|
|
169
|
-
- **Platform**: [target]
|
|
170
|
-
- **Status**: success | failed | rollback
|
|
171
|
-
- **URL**: [deployed URL]
|
|
172
|
-
- **Build Time**: [duration]
|
|
173
|
-
|
|
174
|
-
### Checks
|
|
175
|
-
- Tests: passed | failed
|
|
176
|
-
- Security: passed | failed ([count] issues)
|
|
177
|
-
- HTTP Status: [code]
|
|
178
|
-
- Visual: [screenshot path if browser-pilot ran]
|
|
179
|
-
- Monitoring: active | skipped
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
If any step failed, include the error output and recommended next action.
|
|
183
|
-
|
|
184
|
-
##
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
-
|
|
224
|
-
-
|
|
225
|
-
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
1
|
+
---
|
|
2
|
+
name: deploy
|
|
3
|
+
description: "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."
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
metadata:
|
|
6
|
+
author: runedev
|
|
7
|
+
version: "0.4.0"
|
|
8
|
+
layer: L2
|
|
9
|
+
model: sonnet
|
|
10
|
+
group: delivery
|
|
11
|
+
tools: "Read, Write, Edit, Bash, Glob, Grep"
|
|
12
|
+
emit: deploy.complete
|
|
13
|
+
listen: security.passed, tests.passed, docs.updated, audit.complete, db.migrated
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# deploy
|
|
17
|
+
|
|
18
|
+
## Purpose
|
|
19
|
+
|
|
20
|
+
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.
|
|
21
|
+
|
|
22
|
+
<HARD-GATE>
|
|
23
|
+
- Tests MUST pass (via `rune:verification`) before deploy runs
|
|
24
|
+
- Sentinel MUST pass (no CRITICAL issues) before deploy runs
|
|
25
|
+
- Both are non-negotiable. Failure = stop + report, never skip
|
|
26
|
+
</HARD-GATE>
|
|
27
|
+
|
|
28
|
+
## Called By (inbound)
|
|
29
|
+
|
|
30
|
+
- `launch` (L1): deployment phase of launch pipeline
|
|
31
|
+
- User: `/rune deploy` direct invocation
|
|
32
|
+
|
|
33
|
+
## Calls (outbound)
|
|
34
|
+
|
|
35
|
+
- `test` (L2): pre-deploy full test suite
|
|
36
|
+
- `db` (L2): pre-deploy migration safety check
|
|
37
|
+
- `perf` (L2): pre-deploy performance regression check
|
|
38
|
+
- `verification` (L2): pre-deploy build + lint + type check
|
|
39
|
+
- `sentinel` (L2): pre-deploy security scan
|
|
40
|
+
- `browser-pilot` (L3): verify live deployment visually
|
|
41
|
+
- `watchdog` (L3): setup post-deploy monitoring
|
|
42
|
+
- `journal` (L3): record deploy decision, rollback plan, and post-deploy status
|
|
43
|
+
- `incident` (L2): if post-deploy health check fails → triage and contain
|
|
44
|
+
- L4 extension packs: domain-specific deploy patterns when context matches (e.g., @rune/devops for infrastructure)
|
|
45
|
+
|
|
46
|
+
## Cross-Hub Connections
|
|
47
|
+
|
|
48
|
+
- `deploy` → `verification` — pre-deploy tests + build must pass
|
|
49
|
+
- `deploy` → `sentinel` — security must pass before push
|
|
50
|
+
|
|
51
|
+
## Execution Steps
|
|
52
|
+
|
|
53
|
+
### Step 1 — Pre-deploy checks (HARD-GATE)
|
|
54
|
+
|
|
55
|
+
Call `rune:verification` to run the full test suite and build.
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
If verification fails → STOP. Do NOT proceed. Report failure with test output.
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Call `rune:sentinel` to run security scan.
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
If sentinel returns CRITICAL issues → STOP. Do NOT proceed. Report issues.
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Both gates MUST pass. No exceptions.
|
|
68
|
+
|
|
69
|
+
### Step 1.5 — Release Checklist (Production Deploys Only)
|
|
70
|
+
|
|
71
|
+
**Skip for**: staging, preview, development deploys.
|
|
72
|
+
|
|
73
|
+
Before production deploy, verify ALL items:
|
|
74
|
+
|
|
75
|
+
| # | Check | How | Gate |
|
|
76
|
+
|---|-------|-----|------|
|
|
77
|
+
| 1 | Version bumped | `package.json`/`pyproject.toml` version matches release | BLOCK if unchanged |
|
|
78
|
+
| 2 | Changelog updated | `CHANGELOG.md` has entry for this version | WARN if missing |
|
|
79
|
+
| 3 | Breaking changes documented | RFC artifact exists for each breaking change | BLOCK if RFC missing |
|
|
80
|
+
| 4 | Migration scripts ready | DB migrations tested on staging first | BLOCK if untested migration |
|
|
81
|
+
| 5 | Rollback plan documented | `.rune/deploy/rollback-<version>.md` exists | WARN if missing |
|
|
82
|
+
| 6 | Release notes drafted | Customer-facing notes for release-comms | WARN if missing |
|
|
83
|
+
| 7 | Dependencies locked | Lock file committed, no floating versions | BLOCK if unlocked |
|
|
84
|
+
|
|
85
|
+
**Rollback Plan Template** (`.rune/deploy/rollback-<version>.md`):
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
# Rollback Plan: v<version>
|
|
89
|
+
|
|
90
|
+
## Trigger Conditions
|
|
91
|
+
- [When to rollback — e.g., error rate >5%, P0 incident, data corruption]
|
|
92
|
+
|
|
93
|
+
## Steps
|
|
94
|
+
1. [Revert command — e.g., `vercel rollback`, `fly releases rollback`]
|
|
95
|
+
2. [DB rollback — e.g., `npm run migrate:rollback` or "N/A — no migration"]
|
|
96
|
+
3. [Cache invalidation if needed]
|
|
97
|
+
4. [Notify stakeholders]
|
|
98
|
+
|
|
99
|
+
## Verification
|
|
100
|
+
- [ ] Previous version serving traffic
|
|
101
|
+
- [ ] Health check passing
|
|
102
|
+
- [ ] No data loss confirmed
|
|
103
|
+
|
|
104
|
+
## Post-Rollback
|
|
105
|
+
- [ ] Incident created for root cause analysis
|
|
106
|
+
- [ ] Fix branch created from rolled-back commit
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
If any BLOCK item fails → STOP deploy. Fix before retrying.
|
|
110
|
+
If WARN items missing → proceed but flag in deploy report.
|
|
111
|
+
|
|
112
|
+
### Step 2 — Detect platform
|
|
113
|
+
|
|
114
|
+
Use `Bash` to inspect the project root for platform config files:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
ls vercel.json netlify.toml Dockerfile fly.toml 2>/dev/null
|
|
118
|
+
cat package.json | grep -A5 '"scripts"'
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Map findings to platform:
|
|
122
|
+
|
|
123
|
+
| File found | Platform |
|
|
124
|
+
|---|---|
|
|
125
|
+
| `vercel.json` | Vercel |
|
|
126
|
+
| `netlify.toml` | Netlify |
|
|
127
|
+
| `fly.toml` | Fly.io |
|
|
128
|
+
| `Dockerfile` | Docker / VPS |
|
|
129
|
+
| `package.json` deploy script | npm deploy |
|
|
130
|
+
|
|
131
|
+
If no config found, ask the user which platform to target before continuing.
|
|
132
|
+
|
|
133
|
+
### Step 3 — Deploy
|
|
134
|
+
|
|
135
|
+
Use `Bash` to run the platform-specific deploy command:
|
|
136
|
+
|
|
137
|
+
| Platform | Command |
|
|
138
|
+
|---|---|
|
|
139
|
+
| Vercel | `vercel --prod` |
|
|
140
|
+
| Netlify | `netlify deploy --prod` |
|
|
141
|
+
| Fly.io | `fly deploy` |
|
|
142
|
+
| Docker | `docker build -t app . && docker push <registry>/app` |
|
|
143
|
+
| npm script | `npm run deploy` |
|
|
144
|
+
|
|
145
|
+
Capture full command output. Extract deployed URL from output.
|
|
146
|
+
|
|
147
|
+
### Step 4 — Verify deployment
|
|
148
|
+
|
|
149
|
+
Use `Bash` to check the deployed URL returns HTTP 200:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
curl -o /dev/null -s -w "%{http_code}" <deployed-url>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
If status is not 200 → flag as WARNING, do not treat as hard failure unless 5xx.
|
|
156
|
+
|
|
157
|
+
If `rune:browser-pilot` is available, call it to take a screenshot of the deployed URL for visual confirmation.
|
|
158
|
+
|
|
159
|
+
### Step 5 — Monitor
|
|
160
|
+
|
|
161
|
+
Call `rune:watchdog` to set up post-deploy monitoring alerts on the deployed URL.
|
|
162
|
+
|
|
163
|
+
### Step 6 — Report
|
|
164
|
+
|
|
165
|
+
Output the deploy report:
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
## Deploy Report
|
|
169
|
+
- **Platform**: [target]
|
|
170
|
+
- **Status**: success | failed | rollback
|
|
171
|
+
- **URL**: [deployed URL]
|
|
172
|
+
- **Build Time**: [duration]
|
|
173
|
+
|
|
174
|
+
### Checks
|
|
175
|
+
- Tests: passed | failed
|
|
176
|
+
- Security: passed | failed ([count] issues)
|
|
177
|
+
- HTTP Status: [code]
|
|
178
|
+
- Visual: [screenshot path if browser-pilot ran]
|
|
179
|
+
- Monitoring: active | skipped
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
If any step failed, include the error output and recommended next action.
|
|
183
|
+
|
|
184
|
+
## Progressive Rollout / Feature Flag Mode
|
|
185
|
+
|
|
186
|
+
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.
|
|
187
|
+
|
|
188
|
+
### Progressive Rollout Chain
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
Stage 1: CANARY (5% traffic)
|
|
192
|
+
→ deploy to production with feature flag OFF
|
|
193
|
+
→ enable flag for 5% of users (staff, beta users, or random sample)
|
|
194
|
+
→ watchdog: monitor error rate, latency, conversions for 15-30 minutes
|
|
195
|
+
→ GATE: error rate < 0.5% AND latency ≤ baseline × 1.2
|
|
196
|
+
|
|
197
|
+
Stage 2: EXPAND (25% → 50% → 100%)
|
|
198
|
+
→ for each step: enable flag for N%, wait 15 min, check watchdog metrics
|
|
199
|
+
→ GATE: same thresholds at each step
|
|
200
|
+
→ At 100%: cleanup flag (remove feature flag code, ship cleanup PR)
|
|
201
|
+
|
|
202
|
+
ROLLBACK TRIGGER: any stage fails watchdog gate → immediately set flag to 0%, incident auto-created
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Feature Flag Integration
|
|
206
|
+
|
|
207
|
+
| Platform | Flag Mechanism | Cleanup Step |
|
|
208
|
+
|----------|---------------|-------------|
|
|
209
|
+
| Vercel | Edge Config or `@vercel/flags` | Remove flag key after 100% rollout |
|
|
210
|
+
| LaunchDarkly | SDK variation check | Archive flag, clean up `variation()` calls |
|
|
211
|
+
| Growthbook | Feature flag SDK | Deactivate + remove SDK calls |
|
|
212
|
+
| DIY `.env` flag | `FEATURE_X_ENABLED=true` env var | Remove env var + conditional after 100% |
|
|
213
|
+
|
|
214
|
+
**Minimum feature flag implementation** (no platform dependency):
|
|
215
|
+
```typescript
|
|
216
|
+
// Simple env-based flag — works anywhere
|
|
217
|
+
const FEATURE_X = process.env.FEATURE_X_ENABLED === 'true';
|
|
218
|
+
if (FEATURE_X) { /* new path */ } else { /* old path */ }
|
|
219
|
+
// Cleanup: when flag reaches 100% → inline the new path, delete the conditional
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Skip if
|
|
223
|
+
- Hotfix deploy (urgency outweighs staged rollout)
|
|
224
|
+
- Static site deploy with no user-state impact
|
|
225
|
+
- Non-production deploy (staging, preview)
|
|
226
|
+
|
|
227
|
+
## Output Format
|
|
228
|
+
|
|
229
|
+
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.
|
|
230
|
+
|
|
231
|
+
## Constraints
|
|
232
|
+
|
|
233
|
+
1. MUST verify tests + sentinel pass before deploying — non-negotiable
|
|
234
|
+
2. MUST have rollback strategy documented before production deploy
|
|
235
|
+
3. MUST verify deploy is live and responding before declaring success
|
|
236
|
+
4. MUST NOT deploy with known CRITICAL security findings
|
|
237
|
+
5. MUST log deploy metadata (version, timestamp, commit hash)
|
|
238
|
+
6. MUST complete release checklist for production deploys — version bump, changelog, rollback plan
|
|
239
|
+
7. MUST create rollback plan artifact before first production deploy of a version
|
|
240
|
+
|
|
241
|
+
## Returns
|
|
242
|
+
|
|
243
|
+
| Artifact | Format | Location |
|
|
244
|
+
|----------|--------|----------|
|
|
245
|
+
| Deploy report | Markdown | inline (chat output) |
|
|
246
|
+
| Deploy status (success/failed/rollback) | Text | inline |
|
|
247
|
+
| Health check results (HTTP status, visual) | Markdown | inline |
|
|
248
|
+
| Rollback plan document | Markdown | `.rune/deploy/rollback-<version>.md` |
|
|
249
|
+
| Monitoring confirmation | Text | inline |
|
|
250
|
+
|
|
251
|
+
## Sharp Edges
|
|
252
|
+
|
|
253
|
+
Known failure modes for this skill. Check these before declaring done.
|
|
254
|
+
|
|
255
|
+
| Failure Mode | Severity | Mitigation |
|
|
256
|
+
|---|---|---|
|
|
257
|
+
| Deploying without verification passing | CRITICAL | HARD-GATE blocks this — both verification AND sentinel must pass first |
|
|
258
|
+
| Platform auto-detected wrongly and wrong command runs | HIGH | Verify config files explicitly; ask user if multiple platforms detected |
|
|
259
|
+
| HTTP 5xx on live URL treated as non-critical | HIGH | 5xx = deployment likely failed — report FAILED, do not proceed to monitoring/marketing |
|
|
260
|
+
| Not setting up watchdog monitoring after deploy | MEDIUM | Step 5 is mandatory — post-deploy monitoring is part of deploy, not optional |
|
|
261
|
+
| Deploy metadata not logged (version, commit hash) | LOW | Constraint 5: log version + timestamp + commit hash in report |
|
|
262
|
+
|
|
263
|
+
## Done When
|
|
264
|
+
|
|
265
|
+
- verification PASS (tests, types, lint, build all green)
|
|
266
|
+
- sentinel PASS (no CRITICAL security findings)
|
|
267
|
+
- Deploy command succeeded with live URL captured
|
|
268
|
+
- Live URL returns HTTP 200
|
|
269
|
+
- watchdog monitoring active on deployed URL
|
|
270
|
+
- Deploy Report emitted with platform, URL, checks, and monitoring status
|
|
271
|
+
|
|
272
|
+
## Cost Profile
|
|
273
|
+
|
|
274
|
+
~1000-3000 tokens input, ~500-1000 tokens output. Sonnet. Most time in build/deploy commands.
|