Runbook
Collect deployment info via Q&A to generate runbook document. Triggers: runbook, deploy, opsFrom its SKILL.md
npx -y skills add samdae/archflow --skill runbookAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
12.4 KB, as published. Nobody here has run it
Global Rules: Adheres to
rules/archflow-rules.md.
Runbook Workflow
Collect deployment information through Q&A to generate a Launchpad document. Model: Sonnet (documentation task).
WARNING: Secrets
Never include actual secret values (passwords, API keys, etc.) in the document. Only record where/how to retrieve them.
Tool Fallback
| Tool | Alternative when unavailable |
|---|---|
| AskQuestion | "Please select from the following options" format |
| Read | Request user to copy-paste file contents |
Document Structure
Output: docs/{serviceName}/runbook.md
Phase 0: Skill Entry
0-1. Service Information
{"title":"Generate Deployment Launchpad","questions":[
{"id":"service_name","prompt":"Please enter the service name (e.g., report, alert, issue)","options":[{"id":"input","label":"I will provide the name"}]},
{"id":"service_port","prompt":"What is the service port?","options":[{"id":"input","label":"I will provide the port (e.g., 8080)"}]}
]}
0-2. Check for Existing Document
{"title":"Existing Launchpad","questions":[{"id":"existing_doc","prompt":"Does runbook.md already exist?","options":[{"id":"yes","label":"Yes - Update it"},{"id":"no","label":"No - Create new"}]}]}
Phase 1: Infrastructure Information Collection
1-1. Infrastructure Type
{"title":"Infrastructure Type","questions":[{"id":"infra_type","prompt":"What is your deployment infrastructure?","options":[
{"id":"k8s","label":"Kubernetes (AKS, EKS, GKE, self-hosted)"},
{"id":"docker","label":"Docker / Docker Compose"},
{"id":"vm","label":"VM / Bare metal"},
{"id":"serverless","label":"Serverless (Lambda, Cloud Functions)"},
{"id":"other","label":"Other"}
]}]}
1-2. If Kubernetes Selected
Ask: K8s provider (AKS/EKS/GKE/self/other), namespace, manifest file path.
{"title":"Kubernetes Configuration","questions":[
{"id":"k8s_provider","prompt":"What is your K8s provider?","options":[{"id":"aks","label":"Azure AKS"},{"id":"eks","label":"AWS EKS"},{"id":"gke","label":"Google GKE"},{"id":"self","label":"Self-hosted"},{"id":"other","label":"Other"}]},
{"id":"k8s_namespace","prompt":"What is the namespace?","options":[{"id":"input","label":"I will provide it"}]},
{"id":"k8s_manifest","prompt":"Where are the manifest files? (e.g., k8s/, deploy/)","options":[{"id":"input","label":"I will provide the path"}]}
]}
1-3. If Docker Selected
{"title":"Docker Configuration","questions":[{"id":"dockerfile_path","prompt":"Where is the Dockerfile located?","options":[{"id":"input","label":"I will provide the path (e.g., ./Dockerfile)"}]},{"id":"compose_path","prompt":"Where is docker-compose.yml located? (If none, select 'None')","options":[{"id":"input","label":"I will provide the path"},{"id":"none","label":"None"}]},{"id":"registry","prompt":"What container registry do you use?","options":[{"id":"acr","label":"Azure Container Registry"},{"id":"ecr","label":"AWS ECR"},{"id":"gcr","label":"Google GCR"},{"id":"dockerhub","label":"Docker Hub"},{"id":"other","label":"Other"}]}]}
1-4. If VM Selected
{"title":"VM Configuration","questions":[{"id":"access_method","prompt":"How do you access the server?","options":[{"id":"ssh","label":"SSH"},{"id":"bastion","label":"Via Bastion Host"},{"id":"vpn","label":"VPN required"},{"id":"other","label":"Other"}]},{"id":"deploy_method","prompt":"What is your deployment method?","options":[{"id":"rsync","label":"rsync / scp"},{"id":"git_pull","label":"git pull"},{"id":"ansible","label":"Ansible"},{"id":"other","label":"Other"}]}]}
Phase 2: CI/CD Information Collection
2-1. CI/CD Availability
{"title":"CI/CD","questions":[{"id":"has_cicd","prompt":"Do you have a CI/CD pipeline?","options":[{"id":"yes","label":"Yes - I will provide configuration details"},{"id":"no","label":"No - Manual deployment"}]}]}
2-2. If CI/CD Exists
{"title":"CI/CD Configuration","questions":[{"id":"cicd_tool","prompt":"What CI/CD tool do you use?","options":[{"id":"github_actions","label":"GitHub Actions"},{"id":"gitlab_ci","label":"GitLab CI"},{"id":"jenkins","label":"Jenkins"},{"id":"argocd","label":"ArgoCD"},{"id":"azure_devops","label":"Azure DevOps"},{"id":"other","label":"Other"}]},{"id":"cicd_file","prompt":"Where is the pipeline configuration file located?","options":[{"id":"input","label":"I will provide the path (e.g., .github/workflows/)"}]},{"id":"trigger","prompt":"What triggers deployment?","options":[{"id":"push_main","label":"Push to main/master branch"},{"id":"tag","label":"Tag creation"},{"id":"manual","label":"Manual trigger"},{"id":"other","label":"Other"}]}]}
Phase 3: Environment-Specific Configuration
3-1. Environment Identification
{"title":"Environment Identification","questions":[{"id":"environments","prompt":"What environments do you have?","options":[{"id":"dev_prod","label":"dev, prod"},{"id":"dev_stg_prod","label":"dev, staging, prod"},{"id":"single","label":"Single environment"},{"id":"other","label":"Other (please specify)"}],"allow_multiple":true}]}
3-2. Per-Environment Details (Repeat for Each)
{"title":"{Environment Name} Configuration","questions":[{"id":"env_url","prompt":"What is the service URL for {environment name}?","options":[{"id":"input","label":"I will provide the URL"}]},{"id":"env_config","prompt":"Where is the configuration file for {environment name}? (.env, config, etc.)","options":[{"id":"input","label":"I will provide the path"}]},{"id":"env_specific","prompt":"Are there any special settings unique to {environment name}?","options":[{"id":"yes","label":"Yes - I will explain"},{"id":"no","label":"No"}]}]}
Phase 4: Build/Deploy Command Collection
4-1. Build
{"title":"Build","questions":[{"id":"build_command","prompt":"What is the build command? (If none, select 'None')","options":[{"id":"input","label":"I will provide the command (e.g., docker build -t ...)"},{"id":"none","label":"No build step"}]},{"id":"build_prereq","prompt":"Are there any prerequisites before building?","options":[{"id":"yes","label":"Yes - I will explain"},{"id":"no","label":"No"}]}]}
4-2. Deployment
{"title":"Deployment","questions":[{"id":"deploy_command","prompt":"What is the deployment command?","options":[{"id":"input","label":"I will provide the command (e.g., kubectl apply -f ...)"}]},{"id":"deploy_prereq","prompt":"Are there any prerequisites before deployment? (DB migration, etc.)","options":[{"id":"yes","label":"Yes - I will explain"},{"id":"no","label":"No"}]}]}
4-3. Rollback
{"title":"Rollback","questions":[{"id":"rollback_command","prompt":"How do you rollback?","options":[{"id":"input","label":"I will provide the command (e.g., kubectl rollout undo ...)"},{"id":"unknown","label":"Not sure"}]}]}
Phase 5: Validation/Monitoring
5-1. Validation
{"title":"Validation","questions":[{"id":"health_check","prompt":"What is the health check URL?","options":[{"id":"input","label":"I will provide the URL (e.g., /health, /api/health)"},{"id":"none","label":"None"}]},{"id":"smoke_test","prompt":"Are there any post-deployment tests to run?","options":[{"id":"yes","label":"Yes - I will explain"},{"id":"no","label":"No"}]}]}
5-2. Monitoring
{"title":"Monitoring","questions":[{"id":"monitoring_url","prompt":"Do you have a monitoring dashboard URL?","options":[{"id":"input","label":"I will provide the URL"},{"id":"none","label":"None"}]},{"id":"log_access","prompt":"How do you access logs?","options":[{"id":"input","label":"I will explain (e.g., kubectl logs, CloudWatch)"},{"id":"unknown","label":"Not sure"}]}]}
Phase 6: Secrets/Configuration Management
{"title":"Secrets Management","questions":[{"id":"secret_method","prompt":"How do you manage secrets?","options":[{"id":"k8s_secret","label":"K8s Secret"},{"id":"vault","label":"HashiCorp Vault"},{"id":"aws_sm","label":"AWS Secrets Manager"},{"id":"azure_kv","label":"Azure Key Vault"},{"id":"env_file","label":".env file"},{"id":"other","label":"Other"}]},{"id":"secret_location","prompt":"Where/how are secrets configured? (Do not include actual values)","options":[{"id":"input","label":"I will provide the location/method"}]}]}
WARNING: Do not include actual values. Only record location/method.
Phase 7: Notes/Checklist
7-1. Pre-Deployment Checklist
{"title":"Pre-Deployment Checklist","questions":[{"id":"pre_deploy_checklist","prompt":"Are there any items to verify before deployment?","options":[{"id":"yes","label":"Yes - I will provide them"},{"id":"no","label":"Nothing specific"}]}]}
7-2. Cautions
{"title":"Cautions","questions":[{"id":"cautions","prompt":"Are there any deployment cautions?","options":[{"id":"yes","label":"Yes - I will provide them"},{"id":"no","label":"Nothing specific"}]}]}
Phase 8: Document Generation
8-1. Template
# {serviceName} Deployment Launchpad
> This document is used by LLMs to guide deployment.
> Actual secret values are not included.
## 1. Service Information
| Item | Value |
|------|-------|
| Service Name | {serviceName} |
| Port | {port} |
| Repository | {repo_url} |
---
## 2. Infrastructure
### 2.1 Type
{infra_type} ({provider})
### 2.2 Configuration
| Item | Value |
|------|-------|
| {Infrastructure-specific settings...} | |
---
## 3. CI/CD
### 3.1 Tool
{cicd_tool or "Manual deployment"}
### 3.2 Pipeline
- Configuration file: {cicd_file}
- Trigger: {trigger}
---
## 4. Environment-Specific Configuration
### 4.1 {Environment Name}
| Item | Value |
|------|-------|
| URL | {url} |
| Configuration file | {config_path} |
| Special notes | {specific} |
(Repeat for each environment)
---
## 5. Build
### 5.1 Prerequisites
{prereq or "None"}
### 5.2 Build Command
```bash
{build_command}
6. Deployment
6.1 Prerequisites
{prereq or "None"}
6.2 Deployment Command
{deploy_command}
6.3 Rollback Command
{rollback_command}
7. Validation
7.1 Health Check
- URL: {health_check_url}
- Expected response: 200 OK
7.2 Smoke Test
{smoke_test or "None"}
8. Monitoring
| Item | Link/Method |
|---|---|
| Dashboard | {dashboard_url} |
| Log Access | {log_access} |
9. Secrets/Configuration Management
| Item | Method |
|---|---|
| Management method | {secret_method} |
| Location/Access | {secret_location} |
WARNING: Actual secret values are not included in this document.
10. Pre-Deployment Checklist
- {checklist_item_1}
- {checklist_item_2}
11. Cautions
{cautions or "No special cautions"}
Meta Information
| Item | Content |
|---|---|
| Created | {date} |
| Last Modified | {date} |
| Skill Version | runbook 2.0.0 |
### 8-2. Save
`docs/{serviceName}/runbook.md`
---
## Phase 9: Completion Report
```markdown
## Deploy Launchpad Creation Complete
### Summary
| Item | Content |
|------|---------|
| Service | {serviceName} |
| Infrastructure | {infra_type} |
| CI/CD | {cicd_tool or "Manual"} |
| Environments | {environments} |
### File
- Created: `docs/{serviceName}/runbook.md`
### Usage
When deploying:
> "{serviceName} please deploy" + @runbook.md
> -> LLM reads the document and guides deployment commands
### Next Steps
- Review document content
- If missing information, manually add or re-run this skill
Integration Flow
[runbook] -> runbook.md created
|
v
(When deployment needed)
|
User: "Deploy please" + @runbook.md
|
v
LLM reads document and guides deployment commands
Cautions
- No Secret Values - Never include actual passwords, API keys. Only record where/how to retrieve.
- Reinforcement Possible - May not have all info initially. Re-run or manually edit later.
- Watch for Environment Differences - dev/staging/prod settings may differ. Clearly distinguish.
- Keep Updated - Update document when infrastructure/settings change.