{"slug":"deployment-procedures","title":"deployment-procedures","summary":"Production deployment principles and decision-making. Safe deployment workflows, rollback strategies, and verification. Teaches thinking, not scripts.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-10-05T21:53:14.115905Z","repo":{"url":"https://github.com/VoDaiLocz/kilo-kit-mcp","stars":27,"forks":3,"license":"Apache-2.0","updatedAt":"2026-09-13T09:11:19Z"},"bodyHtml":"<hr>\n<h2>name: deployment-procedures\ndescription: Production deployment principles and decision-making. Safe deployment workflows, rollback strategies, and verification. Teaches thinking, not scripts.\nallowed-tools: Read, Glob, Grep, Bash</h2>\n<h1>Deployment Procedures</h1>\n<blockquote>\n<p>Deployment principles and decision-making for safe production releases.\n<strong>Learn to THINK, not memorize scripts.</strong></p>\n</blockquote>\n<hr>\n<h2>⚠️ How to Use This Skill</h2>\n<p>This skill teaches <strong>deployment principles</strong>, not bash scripts to copy.</p>\n<ul>\n<li>Every deployment is unique</li>\n<li>Understand the WHY behind each step</li>\n<li>Adapt procedures to your platform</li>\n</ul>\n<hr>\n<h2>1. Platform Selection</h2>\n<h3>Decision Tree</h3>\n<pre><code>What are you deploying?\n│\n├── Static site / JAMstack\n│   └── Vercel, Netlify, Cloudflare Pages\n│\n├── Simple web app\n│   ├── Managed → Railway, Render, Fly.io\n│   └── Control → VPS + PM2/Docker\n│\n├── Microservices\n│   └── Container orchestration\n│\n└── Serverless\n    └── Edge functions, Lambda\n</code></pre>\n<h3>Each Platform Has Different Procedures</h3>\n<table>\n<thead>\n<tr>\n<th>Platform</th>\n<th>Deployment Method</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Vercel/Netlify</strong></td>\n<td>Git push, auto-deploy</td>\n</tr>\n<tr>\n<td><strong>Railway/Render</strong></td>\n<td>Git push or CLI</td>\n</tr>\n<tr>\n<td><strong>VPS + PM2</strong></td>\n<td>SSH + manual steps</td>\n</tr>\n<tr>\n<td><strong>Docker</strong></td>\n<td>Image push + orchestration</td>\n</tr>\n<tr>\n<td><strong>Kubernetes</strong></td>\n<td>kubectl apply</td>\n</tr>\n</tbody>\n</table>\n<hr>\n<h2>2. Pre-Deployment Principles</h2>\n<h3>The 4 Verification Categories</h3>\n<table>\n<thead>\n<tr>\n<th>Category</th>\n<th>What to Check</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Code Quality</strong></td>\n<td>Tests passing, linting clean, reviewed</td>\n</tr>\n<tr>\n<td><strong>Build</strong></td>\n<td>Production build works, no warnings</td>\n</tr>\n<tr>\n<td><strong>Environment</strong></td>\n<td>Env vars set, secrets current</td>\n</tr>\n<tr>\n<td><strong>Safety</strong></td>\n<td>Backup done, rollback plan ready</td>\n</tr>\n</tbody>\n</table>\n<h3>Pre-Deployment Checklist</h3>\n<ul>\n<li><input disabled=\"disabled\" type=\"checkbox\"> All tests passing</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Code reviewed and approved</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Production build successful</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Environment variables verified</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Database migrations ready (if any)</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Rollback plan documented</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Team notified</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Monitoring ready</li>\n</ul>\n<hr>\n<h2>3. Deployment Workflow Principles</h2>\n<h3>The 5-Phase Process</h3>\n<pre><code>1. PREPARE\n   └── Verify code, build, env vars\n\n2. BACKUP\n   └── Save current state before changing\n\n3. DEPLOY\n   └── Execute with monitoring open\n\n4. VERIFY\n   └── Health check, logs, key flows\n\n5. CONFIRM or ROLLBACK\n   └── All good? Confirm. Issues? Rollback.\n</code></pre>\n<h3>Phase Principles</h3>\n<table>\n<thead>\n<tr>\n<th>Phase</th>\n<th>Principle</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Prepare</strong></td>\n<td>Never deploy untested code</td>\n</tr>\n<tr>\n<td><strong>Backup</strong></td>\n<td>Can't rollback without backup</td>\n</tr>\n<tr>\n<td><strong>Deploy</strong></td>\n<td>Watch it happen, don't walk away</td>\n</tr>\n<tr>\n<td><strong>Verify</strong></td>\n<td>Trust but verify</td>\n</tr>\n<tr>\n<td><strong>Confirm</strong></td>\n<td>Have rollback trigger ready</td>\n</tr>\n</tbody>\n</table>\n<hr>\n<h2>4. Post-Deployment Verification</h2>\n<h3>What to Verify</h3>\n<table>\n<thead>\n<tr>\n<th>Check</th>\n<th>Why</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Health endpoint</strong></td>\n<td>Service is running</td>\n</tr>\n<tr>\n<td><strong>Error logs</strong></td>\n<td>No new errors</td>\n</tr>\n<tr>\n<td><strong>Key user flows</strong></td>\n<td>Critical features work</td>\n</tr>\n<tr>\n<td><strong>Performance</strong></td>\n<td>Response times acceptable</td>\n</tr>\n</tbody>\n</table>\n<h3>Verification Window</h3>\n<ul>\n<li><strong>First 5 minutes</strong>: Active monitoring</li>\n<li><strong>15 minutes</strong>: Confirm stable</li>\n<li><strong>1 hour</strong>: Final verification</li>\n<li><strong>Next day</strong>: Review metrics</li>\n</ul>\n<hr>\n<h2>5. Rollback Principles</h2>\n<h3>When to Rollback</h3>\n<table>\n<thead>\n<tr>\n<th>Symptom</th>\n<th>Action</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Service down</td>\n<td>Rollback immediately</td>\n</tr>\n<tr>\n<td>Critical errors</td>\n<td>Rollback</td>\n</tr>\n<tr>\n<td>Performance &gt;50% degraded</td>\n<td>Consider rollback</td>\n</tr>\n<tr>\n<td>Minor issues</td>\n<td>Fix forward if quick</td>\n</tr>\n</tbody>\n</table>\n<h3>Rollback Strategy by Platform</h3>\n<table>\n<thead>\n<tr>\n<th>Platform</th>\n<th>Rollback Method</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Vercel/Netlify</strong></td>\n<td>Redeploy previous commit</td>\n</tr>\n<tr>\n<td><strong>Railway/Render</strong></td>\n<td>Rollback in dashboard</td>\n</tr>\n<tr>\n<td><strong>VPS + PM2</strong></td>\n<td>Restore backup, restart</td>\n</tr>\n<tr>\n<td><strong>Docker</strong></td>\n<td>Previous image tag</td>\n</tr>\n<tr>\n<td><strong>K8s</strong></td>\n<td>kubectl rollout undo</td>\n</tr>\n</tbody>\n</table>\n<h3>Rollback Principles</h3>\n<ol>\n<li><strong>Speed over perfection</strong>: Rollback first, debug later</li>\n<li><strong>Don't compound errors</strong>: One rollback, not multiple changes</li>\n<li><strong>Communicate</strong>: Tell team what happened</li>\n<li><strong>Post-mortem</strong>: Understand why after stable</li>\n</ol>\n<hr>\n<h2>6. Zero-Downtime Deployment</h2>\n<h3>Strategies</h3>\n<table>\n<thead>\n<tr>\n<th>Strategy</th>\n<th>How It Works</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Rolling</strong></td>\n<td>Replace instances one by one</td>\n</tr>\n<tr>\n<td><strong>Blue-Green</strong></td>\n<td>Switch traffic between environments</td>\n</tr>\n<tr>\n<td><strong>Canary</strong></td>\n<td>Gradual traffic shift</td>\n</tr>\n</tbody>\n</table>\n<h3>Selection Principles</h3>\n<table>\n<thead>\n<tr>\n<th>Scenario</th>\n<th>Strategy</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Standard release</td>\n<td>Rolling</td>\n</tr>\n<tr>\n<td>High-risk change</td>\n<td>Blue-green (easy rollback)</td>\n</tr>\n<tr>\n<td>Need validation</td>\n<td>Canary (test with real traffic)</td>\n</tr>\n</tbody>\n</table>\n<hr>\n<h2>7. Emergency Procedures</h2>\n<h3>Service Down Priority</h3>\n<ol>\n<li><strong>Assess</strong>: What's the symptom?</li>\n<li><strong>Quick fix</strong>: Restart if unclear</li>\n<li><strong>Rollback</strong>: If restart doesn't help</li>\n<li><strong>Investigate</strong>: After stable</li>\n</ol>\n<h3>Investigation Order</h3>\n<table>\n<thead>\n<tr>\n<th>Check</th>\n<th>Common Issues</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Logs</strong></td>\n<td>Errors, exceptions</td>\n</tr>\n<tr>\n<td><strong>Resources</strong></td>\n<td>Disk full, memory</td>\n</tr>\n<tr>\n<td><strong>Network</strong></td>\n<td>DNS, firewall</td>\n</tr>\n<tr>\n<td><strong>Dependencies</strong></td>\n<td>Database, APIs</td>\n</tr>\n</tbody>\n</table>\n<hr>\n<h2>8. Anti-Patterns</h2>\n<table>\n<thead>\n<tr>\n<th>❌ Don't</th>\n<th>✅ Do</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Deploy on Friday</td>\n<td>Deploy early in week</td>\n</tr>\n<tr>\n<td>Rush deployment</td>\n<td>Follow the process</td>\n</tr>\n<tr>\n<td>Skip staging</td>\n<td>Always test first</td>\n</tr>\n<tr>\n<td>Deploy without backup</td>\n<td>Backup before deploy</td>\n</tr>\n<tr>\n<td>Walk away after deploy</td>\n<td>Monitor for 15+ min</td>\n</tr>\n<tr>\n<td>Multiple changes at once</td>\n<td>One change at a time</td>\n</tr>\n</tbody>\n</table>\n<hr>\n<h2>9. Decision Checklist</h2>\n<p>Before deploying:</p>\n<ul>\n<li><input disabled=\"disabled\" type=\"checkbox\"> <strong>Platform-appropriate procedure?</strong></li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> <strong>Backup strategy ready?</strong></li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> <strong>Rollback plan documented?</strong></li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> <strong>Monitoring configured?</strong></li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> <strong>Team notified?</strong></li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> <strong>Time to monitor after?</strong></li>\n</ul>\n<hr>\n<h2>10. Best Practices</h2>\n<ol>\n<li><strong>Small, frequent deploys</strong> over big releases</li>\n<li><strong>Feature flags</strong> for risky changes</li>\n<li><strong>Automate</strong> repetitive steps</li>\n<li><strong>Document</strong> every deployment</li>\n<li><strong>Review</strong> what went wrong after issues</li>\n<li><strong>Test rollback</strong> before you need it</li>\n</ol>\n<hr>\n<blockquote>\n<p><strong>Remember:</strong> Every deployment is a risk. Minimize risk through preparation, not speed.</p>\n</blockquote>\n","files":[{"path":"SKILL.md","sizeBytes":5708,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-10-05T22:02:01.340488Z","sha256":"1CAD7EEA27E20FFBBFE739A27CC9CA87E38D82DD82BD740C7E73A5A71B32284A","sizeBytes":2619},"review":null,"source":{"repositoryUrl":"https://github.com/VoDaiLocz/kilo-kit-mcp","path":"skills/operations/deployment-procedures","license":"Apache-2.0","commit":"0448e6c050b84e0c0be0030593bd51cabbce3c81","subtreeSha":"1E3C5AF28CD288587EC5FA39389710F4F5755EC98217274DF15B0BB563D2B735","lastSyncedAt":"2026-10-05T21:52:59.855581Z"},"reviewedAt":"2026-10-05T22:20:57.796516Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/VoDaiLocz/kilo-kit-mcp/tree/main/skills/operations/deployment-procedures"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install vodailocz-kilo-kit-mcp@llmmart"},{"target":"git","command":"git clone https://github.com/VoDaiLocz/kilo-kit-mcp.git"}]}