/phase-9-deployment
Deploy to production — CI/CD pipelines, environment config, deployment strategies. Triggers: deployment, CI/CD, production, Vercel
$ npx -y skills add popup-studio-ai/bkit-claude-code --skill phase-9-deployment --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/phase-9-deployment
Context preview
The summary Claude sees to decide when to auto-load this skill.
Deploy to production — CI/CD pipelines, environment config, deployment strategies. Triggers: deployment, CI/CD, production, Vercel
SKILL.md
phase-9-deployment.SKILL.mdname: phase-9-deployment
classification: capability
classification-reason: Pattern guidance may overlap with model's built-in knowledge as it improves
deprecation-risk: medium
effort: medium
user-invocable: false
description: |
Deploy to production — CI/CD pipelines, environment config, deployment strategies.
Triggers: deployment, CI/CD, production, Vercel
agent: bkit:infra-architect
allowed-tools:
- Read
- Write
- Edit
- Glob
- Grep
- Bash
user-invocable: false
next-skill: null
pdca-phase: act
task-template: "[Phase-9] {feature}"Phase 9: Deployment
> Production deployment
Purpose
Deliver the completed application to users.
What to Do in This Phase
1. **Prepare Deployment Environment**: Infrastructure setup 2. **Build**: Create production build 3. **Execute Deployment**: Actual deployment 4. **Verification**: Post-deployment operation check
Deliverables
docs/02-design/
└── deployment-spec.md # Deployment specification
docs/04-report/
└── deployment-report.md # Deployment report
(Infrastructure config files)
├── vercel.json # Vercel configuration
├── Dockerfile # Docker configuration
└── k8s/ # Kubernetes configuration
PDCA Application
- **Plan**: Establish deployment plan
- **Design**: Design deployment configuration
- **Do**: Execute deployment
- **Check**: Verify deployment
- **Act**: Problem resolution and completion report
Level-wise Application
| Level | Deployment Method | |-------|-------------------| | Starter | Static hosting (Netlify, GitHub Pages) | | Dynamic | Vercel, Railway, etc. | | Enterprise | Kubernetes, AWS ECS, etc. |
Starter Deployment (Static Hosting)
# GitHub Pages
npm run build
# Deploy dist/ folder to gh-pages branch
# Netlify
# Configure netlify.toml then connect Git
Dynamic Deployment (Vercel)
# Vercel CLI
npm i -g vercel
vercel
# Or auto-deploy via Git connection
Enterprise Deployment (Kubernetes)
# k8s/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
template:
spec:
containers:
- name: app
image: my-app:latest---
Environment Management
Environment Configuration Overview
┌─────────────────────────────────────────────────────────────┐
│ Environment Variable Flow │
├─────────────────────────────────────────────────────────────┤
│ │
│ Development │
│ └── .env.local → Developer local machine │
│ │
│ Staging │
│ └── CI/CD Secrets → Preview/Staging environment │
│ │
│ Production │
│ └── CI/CD Secrets → Production environment │
│ └── Vault/Secrets Manager (Enterprise) │
│ │
└─────────────────────────────────────────────────────────────┘
Environment Classification
| Environment | Purpose | Data | Variable Source | |-------------|---------|------|-----------------| | **Development** | Local development | Test data | `.env.local` | | **Staging** | Pre-deployment verification | Test data | CI/CD Secrets | | **Production** | Live service | Real data | CI/CD Secrets + Vault |
---
CI/CD Environment Variable Configuration
GitHub Actions
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main, staging]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set environment
run: |
if [ "${{ github.ref }}" == "refs/heads/main" ]; then
echo "DEPLOY_ENV=production" >> $GITHUB_ENV
else
echo "DEPLOY_ENV=staging" >> $GITHUB_ENV
fi
- name: Build
env:
# General environment variables (can be exposed)
NEXT_PUBLIC_APP_URL: ${{ vars.APP_URL }}
NEXT_PUBLIC_API_URL: ${{ vars.API_URL }}
# Secrets (sensitive info)
DATABASE_URL: ${{ secrets.DATABASE_URL }}
AUTH_SECRET: ${{ secrets.AUTH_SECRET }}
API_STRIPE_SECRET: ${{ secrets.API_STRIPE_SECRET }}
run: npm run build
- name: Deploy to Vercel
env:
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
run: |
npx vercel --prod --token=$VERCEL_TOKENGitHub Secrets Configuration Guide
Repository Settings → Secrets and variables → Actions
1. Repository secrets (sensitive info)
├── DATABASE_URL
├── AUTH_SECRET
├── API_STRIPE_SECRET
└── VERCEL_TOKEN
2. Repository variables (general settings)
├── APP_URL
├── API_URL
└── NODE_ENV
3. Environment-specific secrets
├── production/
│ ├── DATABASE_URL (production DB)
│ └── API_STRIPE_SECRET (live key)
└── staging/
├── DATABASE_URL (staging DB)
└── API_STRIPE_SECRET (test key)Vercel Environment Variable Configuration
Project Settings → Environment Variables
┌─────────────────┬─────────────┬─────────────┬─────────────┐
│ Variable Name │ Development │ Preview │ Production │
├─────────────────┼─────────────┼─────────────┼─────────────┤
│ DATABASE_URL │ dev-db │ staging-db │ prod-db │
│ AUTH_SECRET │ dev-secret │ stg-secret │ prod-secret │
│ API_STRIPE_* │ test key │ test key │ live key │
└─────────────────┴─────────────┴─────────────┴─────────────┘
Configuration steps:
1. Project Settings → Environment Variables
2. Add New Variable
3. Select environment (Development / Preview / Production)
4. Check Sensitive (if sensitive info)
---
Secrets
Read more
name: phase-9-deployment
classification: capability
classification-reason: Pattern guidance may overlap with model's built-in knowledge as it improves
deprecation-risk: medium
effort: medium
user-invocable: false
description: |
Deploy to production — CI/CD pipelines, environment config, deployment strategies.
Triggers: deployment, CI/CD, production, Vercel
agent: bkit:infra-architect
allowed-tools:
- Read
- Write
- Edit
- Glob
- Grep
- Bash
user-invocable: false
next-skill: null
pdca-phase: act
task-template: "[Phase-9] {feature}"Phase 9: Deployment
> Production deployment
Purpose
Deliver the completed application to users.
What to Do in This Phase
1. **Prepare Deployment Environment**: Infrastructure setup 2. **Build**: Create production build 3. **Execute Deployment**: Actual deployment 4. **Verification**: Post-deployment operation check
Deliverables
docs/02-design/ └── deployment-spec.md # Deployment specification docs/04-report/ └── deployment-report.md # Deployment report (Infrastructure config files) ├── vercel.json # Vercel configuration ├── Dockerfile # Docker configuration └── k8s/ # Kubernetes configuration
PDCA Application
- **Plan**: Establish deployment plan
- **Design**: Design deployment configuration
- **Do**: Execute deployment
- **Check**: Verify deployment
- **Act**: Problem resolution and completion report
Level-wise Application
| Level | Deployment Method | |-------|-------------------| | Starter | Static hosting (Netlify, GitHub Pages) | | Dynamic | Vercel, Railway, etc. | | Enterprise | Kubernetes, AWS ECS, etc. |
Starter Deployment (Static Hosting)
# GitHub Pages npm run build # Deploy dist/ folder to gh-pages branch # Netlify # Configure netlify.toml then connect Git
Dynamic Deployment (Vercel)
# Vercel CLI npm i -g vercel vercel # Or auto-deploy via Git connection
Enterprise Deployment (Kubernetes)
# k8s/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
template:
spec:
containers:
- name: app
image: my-app:latest---
Environment Management
Environment Configuration Overview
┌─────────────────────────────────────────────────────────────┐ │ Environment Variable Flow │ ├─────────────────────────────────────────────────────────────┤ │ │ │ Development │ │ └── .env.local → Developer local machine │ │ │ │ Staging │ │ └── CI/CD Secrets → Preview/Staging environment │ │ │ │ Production │ │ └── CI/CD Secrets → Production environment │ │ └── Vault/Secrets Manager (Enterprise) │ │ │ └─────────────────────────────────────────────────────────────┘
Environment Classification
| Environment | Purpose | Data | Variable Source | |-------------|---------|------|-----------------| | **Development** | Local development | Test data | `.env.local` | | **Staging** | Pre-deployment verification | Test data | CI/CD Secrets | | **Production** | Live service | Real data | CI/CD Secrets + Vault |
---
CI/CD Environment Variable Configuration
GitHub Actions
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main, staging]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set environment
run: |
if [ "${{ github.ref }}" == "refs/heads/main" ]; then
echo "DEPLOY_ENV=production" >> $GITHUB_ENV
else
echo "DEPLOY_ENV=staging" >> $GITHUB_ENV
fi
- name: Build
env:
# General environment variables (can be exposed)
NEXT_PUBLIC_APP_URL: ${{ vars.APP_URL }}
NEXT_PUBLIC_API_URL: ${{ vars.API_URL }}
# Secrets (sensitive info)
DATABASE_URL: ${{ secrets.DATABASE_URL }}
AUTH_SECRET: ${{ secrets.AUTH_SECRET }}
API_STRIPE_SECRET: ${{ secrets.API_STRIPE_SECRET }}
run: npm run build
- name: Deploy to Vercel
env:
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
run: |
npx vercel --prod --token=$VERCEL_TOKENGitHub Secrets Configuration Guide
Repository Settings → Secrets and variables → Actions
1. Repository secrets (sensitive info)
├── DATABASE_URL
├── AUTH_SECRET
├── API_STRIPE_SECRET
└── VERCEL_TOKEN
2. Repository variables (general settings)
├── APP_URL
├── API_URL
└── NODE_ENV
3. Environment-specific secrets
├── production/
│ ├── DATABASE_URL (production DB)
│ └── API_STRIPE_SECRET (live key)
└── staging/
├── DATABASE_URL (staging DB)
└── API_STRIPE_SECRET (test key)Vercel Environment Variable Configuration
Project Settings → Environment Variables ┌─────────────────┬─────────────┬─────────────┬─────────────┐ │ Variable Name │ Development │ Preview │ Production │ ├─────────────────┼─────────────┼─────────────┼─────────────┤ │ DATABASE_URL │ dev-db │ staging-db │ prod-db │ │ AUTH_SECRET │ dev-secret │ stg-secret │ prod-secret │ │ API_STRIPE_* │ test key │ test key │ live key │ └─────────────────┴─────────────┴─────────────┴─────────────┘ Configuration steps: 1. Project Settings → Environment Variables 2. Add New Variable 3. Select environment (Development / Preview / Production) 4. Check Sensitive (if sensitive info)
---
Secrets
A Claude Code plugin that verifies AI-generated code against its own design specs. Three commands. Anyone — even someone vibe-coding for the first time — can ship robust, production-quality software.
Repo: popup-studio-ai/bkit-claude-code
Other skills on bkit.
- /audit
View audit logs, decision traces, and session history for AI transparency. ACTION_TYPES (19 entries) include PDCA events (phase_transition, gate_passed/failed, agent_spawned/completed/failed, rollback_executed, destructive_blocked) and Sprint events (sprint_paused,
Open skill - /bkend-auth
bkend.ai authentication — email/social login, JWT tokens, RBAC, session management. Triggers: bkend auth, bkend login, bkend signup, bkend JWT, bkend RBAC
Open skill - /bkend-cookbook
bkend.ai project tutorials (todo to SaaS) and common error troubleshooting. Triggers: bkend tutorial, bkend cookbook, bkend troubleshooting
Open skill - /bkend-data
bkend.ai database — CRUD, column types, filtering, sorting, relations, indexing. Triggers: bkend table, bkend CRUD, bkend column, bkend relation, bkend data
Open skill - /bkend-quickstart
bkend.ai onboarding — MCP setup, resource hierarchy, tenant/user model, first project. Triggers: bkend quickstart, bkend onboarding, bkend setup, bkend MCP
Open skill - /bkend-storage
bkend.ai file storage — upload (presigned URL), download (CDN), visibility levels, buckets. Triggers: bkend file, bkend upload, bkend download, bkend storage, bkend presigned URL
Open skill

