Help us improve
Share bugs, ideas, or general feedback.
From npd
Orchestrates container image build, VM setup, and Kubernetes deployment for DevOps engineers. Guides through cloud CLI login, Docker/K8s tooling, manifest creation, and Nginx proxy configuration.
npx claudepluginhub unicorn-plugins/npd --plugin npdHow this skill is triggered — by the user, by Claude, or both
Slash command
/npd:deployThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
[NPD Deploy 활성화]
Dockerizes applications, configures CI/CD pipelines, manages environments (dev/staging/prod), sets up nginx reverse proxy with SSL, and implements monitoring, health checks, and rollback strategies.
Generates complete deployment configurations—Dockerfile, manifests, environment config, rollback procedures—for Node.js, Python, Go, Rust, Java services. Useful for deployment setup, strategy, or rollback queries.
Creates Dockerfiles, configures CI/CD pipelines, writes Kubernetes manifests, generates Terraform/Pulumi IaC templates. Handles GitOps, deployment automation, incident response runbooks, platform tooling for pipelines, containers, infra, releases.
Share bugs, ideas, or general feedback.
[NPD Deploy 활성화]
DevOps 엔지니어가 컨테이너 이미지 빌드 → 컨테이너 실행 → Kubernetes 배포 순서로 배포 환경을 구축함.
사용자가 /npd:deploy 호출 시 또는 "수동 배포 시작", "수동 배포해줘" 키워드 감지 시.
주의사항: 중간 단계부터 시작할 때도 진행 모드 결정 + 환경 정보 수집을 위해 Phase 0은 항상 수행해야 합니다.
/npd:create 완료 (프로젝트 디렉토리 및 AGENTS.md 존재)/npd:develop 완료 (소스코드 존재)AGENTS.md 파일에서 ## 환경변수 섹션의 환경변수 로딩.
로딩 실패 시 사용자에게 /npd:create을 먼저 수행하라고 안내하고 종료.
| 에이전트 | FQN |
|---|---|
| devops-engineer | npd:devops-engineer:devops-engineer |
{NPD_PLUGIN_DIR}/resources/guides/combine-prompt.md에 따라
AGENT.md + agentcard.yaml + tools.yaml 합치기Agent(subagent_type=FQN, model=tier_mapping 결과, prompt=조립된 프롬프트) 호출{NPD_PLUGIN_DIR}/gateway/runtime-mapping.yaml 참조워크플로우 단계에 Agent: {agent-name}이 명시된 경우,
메인 에이전트는 해당 단계를 직접 수행하지 않고, {NPD_PLUGIN_DIR}/resources/guides/call-subagent.md에 따라 서브 에이젼트 호출
{PROJECT_DIR}/AGENTS.md에 각 Phase의 Step 완료 시 저장. 최종 완료 시 Done으로 표기.
## 워크플로우 진행상황
### deploy
- 진행 모드: {선택값}
- CLOUD: {AWS|Azure|GCP}
- 레지스트리유형: {DockerHub|ECR|ACR|GCR}
- IMG_REG: {값}
- IMG_ORG: {값}
- ECR_ACCOUNT, ECR_REGION: {값} ← ECR인 경우
- ACR명: {값} ← ACR인 경우
- GCR_PROJECT, GCR_REGION, GCR_REPO: {값} ← GCR인 경우
- VM_HOST: {값} (Phase 1 / Step 5에서 기록)
- K8S_CLUSTER, K8S_NAMESPACE: {값} (Phase 2 / Step 3 완료 후 기록)
- 마지막 완료 Phase/Step: {Phase X / Step Y}
{PROJECT_DIR}/AGENTS.md의 ## 워크플로우 진행상황 > ### deploy에 진행상황 정보가 있는 경우 마지막 완료 Step 이후부터 자동 재개.
이 기록은 이후 /npd:cicd 스킬에서 중복 질문 없이 환경 정보를 재사용하기 위한 목적이기도 함.
Phase 0: 진행 모드 선택
↓
Phase 1: 배포 사전 준비 (CLOUD·로컬/VM 도구·VM 접속)
↓
Phase 2: 배포 환경 정보 수집 (이미지 레지스트리·K8S 클러스터·리소스·실행정보 조립)
↓
Phase 3: 컨테이너 이미지 빌드 & 푸시
↓
Phase 4: 컨테이너 실행 검증
↓
Phase 5: Kubernetes 배포 (백킹서비스·매니페스트·Nginx Proxy)
↓
Phase 6: 배포 완료 보고
{NPD_PLUGIN_DIR}/resources/guides/deploy/phase0-deploy-mode.md ← 필수 로드AGENTS.md > ### deploy > 진행 모드 기록 + (자동 진행 시) {VM.HOST} 사전 결정단계별 승인/자동 진행 선택. 자동 진행 시 Phase 1~6 실행 중 ASK_USER 호출 자제. (중요) 자동 진행 시 사용자에게 진행에 필요한 정보를 한꺼번에 요청. AskUserQuestion 사용하지 않고 대화창으로 질문
~/.ssh/config Host 후보 2개 이상이고 자동 진행 모드일 때만 사전 선택.
배포에 필요한 로컬 도구와 VM 원격 도구를 자동으로 설치하고, VM 접속 정보를 수집한다.
{NPD_PLUGIN_DIR}/resources/guides/deploy/deploy-pre-setup.md ← 필수 로드~/.ssh/config 파싱 → SSH 접속 테스트 → VM 원격 도구 설치(Cloud CLI, Docker, kubectl, kubens, helm, JDK)VM.HOST, VM.IP, VM.USERID, VM.KEY파일) 수집, AGENTS.md ### deploy > VM_HOST 기록{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트자동 진행 모드 동작: Phase 1 내 모든
<!--ASK_USER-->를 생략하고 아래 규칙으로 자동 처리한다.
- Step 1 CLOUD: AGENTS.md에서 읽기 → 없으면 에러 중단
- Step 3 CLI 로그인: 로그인 명령어(
aws sts get-caller-identity/az account show/gcloud auth list)로 자동 확인 → 미로그인이면 에러 중단- Step 4 VM 준비:
~/.ssh/config에 Host 엔트리가 1개 이상이면 "준비 완료"로 간주 → 0개이면 에러 중단- Step 5 VM 선택: Host 후보 1개 → 자동 선택 / 2개 이상 → Phase 0 / Step 2에서 미리 수집한 값 사용
- Step 6 SSH 실패: 1회 자동 재시도 → 재실패 시 에러 중단
AGENTS.md ### design > CLOUD 값을 읽음. 없으면 사용자에게 AWS/Azure/GCP 선택 요청.
OS 감지 후 kubectl, kubens/kubectx, helm, {CLOUD} CLI 미설치분만 자동 설치.
{CLOUD} CLI 로그인 상태 확인. 미로그인 시 가이드 링크 안내 + 완료 대기.
배포용 VM 준비 여부 확인. 미준비 시 {CLOUD}별 VM 생성 URL 안내 + ~/.ssh/config 등록 안내.
Host 엔트리 추출 → 사용자 선택 → VM.HOST/IP/USERID/KEY파일 추출 → AGENTS.md ### deploy > VM_HOST 기록.
SSH 접속 검증. 실패 시 재시도 또는 건너뛰기 분기.
SSH로 VM에 접속하여 Cloud CLI/Docker/kubectl/kubens/helm/JDK 미설치 도구 자동 설치.
로컬/VM 설치 도구 목록 + VM 접속 방법(ssh {VM_HOST_ALIAS}) 보고.
POST-ACTION: {PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트
{NPD_PLUGIN_DIR}/resources/guides/deploy/deploy-env-info.md ← 필수 로드[실행정보] 블록 조립[실행정보] 블록 (Cloud별 4개 템플릿 중 하나) + AGENTS.md ### deploy 진행상황 섹션 갱신{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트조건부 실행 규칙: 시작 Phase ≤ 5인 경우만 본 Phase 수행 (Phase 6은 정보 수집 불필요) VM 정보(Phase 1 결과)는 시작 Phase ∈ {1, 3, 4, 5}일 때만 사용
레지스트리 유형(Docker Hub / Cloud 레지스트리) 선택.
선택된 유형에 따라 Org/Token, ECR Region/Account, ACR명, GCR Project/Region/Repo 수집.
kubectx 기반 자동 감지·필터링·컨텍스트 전환·NAMESPACE 결정.
Step 4-1 일괄 기본값 + Step 4-2 서비스별 예외 → core/MB → millicore/Mi 변환.
Cloud별 [실행정보] 블록 조립 → AGENTS.md ### deploy 갱신 (K8S_CLUSTER, K8S_NAMESPACE 추가 기록).
POST-ACTION: {PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트
{NPD_PLUGIN_DIR}/resources/guides/deploy/vm-git-sync.md ← 필수 로드"deploy: Phase 3 시작 전 소스 동기화"~/workspace/{ROOT}에 최신 소스 적재{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트3개 서비스를 서브에이전트로 병렬 실행한다. 각 에이전트는 해당 가이드를 참조하여 Dockerfile 작성 → 이미지 빌드 → 레지스트리 푸시를 수행한다.
| 서비스 | GUIDE | 주요 산출물 |
|---|---|---|
| 백엔드 | {NPD_PLUGIN_DIR}/resources/guides/deploy/build-image-back.md | deployment/container/Dockerfile-backend |
| 프론트엔드 | {NPD_PLUGIN_DIR}/resources/guides/deploy/build-image-front.md | deployment/container/Dockerfile-frontend, nginx.conf |
| AI | {NPD_PLUGIN_DIR}/resources/guides/deploy/build-image-ai.md | deployment/container/Dockerfile-ai |
[실행정보] 블록을 각 에이전트 프롬프트에 포함{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트{NPD_PLUGIN_DIR}/resources/guides/deploy/vm-git-sync.md ← 필수 로드"deploy: Phase 3 산출물 (Dockerfile, build-image guide)"{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트{NPD_PLUGIN_DIR}/resources/guides/deploy/vm-git-sync.md ← 필수 로드.env scp)~/workspace/{ROOT}에 최신 소스 + .env 파일 적재 (AI 서비스 컨테이너 --env-file 참조용){PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트{NPD_PLUGIN_DIR}/resources/guides/deploy/backing-service/backing-service-container.md[실행정보] 블록을 프롬프트에 포함docs/deploy/backing-service-container-result.md 작성{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트백킹서비스가 정상 기동된 후에야 Step 3 애플리케이션 컨테이너 실행이 가능하다.
3개 서비스를 서브에이전트로 병렬 실행한다. 각 에이전트는 해당 가이드를 참조하여 컨테이너를 실행하고 정상 동작을 확인한다.
| 서비스 | GUIDE |
|---|---|
| 백엔드 | {NPD_PLUGIN_DIR}/resources/guides/deploy/run-container-back.md |
| 프론트엔드 | {NPD_PLUGIN_DIR}/resources/guides/deploy/run-container-front.md |
| AI | {NPD_PLUGIN_DIR}/resources/guides/deploy/run-container-ai.md |
[실행정보] 블록을 각 에이전트 프롬프트에 포함docs/deploy/run-container-{back,front,ai}-result.md 작성{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트{NPD_PLUGIN_DIR}/resources/guides/deploy/vm-git-sync.md ← 필수 로드"deploy: Phase 4 산출물 (backing-service-result, run-container-result)"{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트{NPD_PLUGIN_DIR}/resources/guides/deploy/backing-service/backing-service-k8s.md[실행정보] 블록을 프롬프트에 포함docs/deploy/backing-service-k8s-result.md 작성{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트백킹서비스가 K8s 클러스터에 정상 배포된 후에야 Step 2 애플리케이션 K8s 배포가 가능하다.
{NPD_PLUGIN_DIR}/resources/guides/deploy/deploy-k8s-back.md, {NPD_PLUGIN_DIR}/resources/guides/deploy/deploy-k8s-front.md, {NPD_PLUGIN_DIR}/resources/guides/deploy/deploy-k8s-ai.md[실행정보] 블록을 프롬프트에 포함deploy/k8s/ 매니페스트 파일 생성, 배포 성공{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트{NPD_PLUGIN_DIR}/resources/guides/deploy/nginx-proxy-setup.md ← 필수 로드https://{SSL_DOMAIN}, https://api.{SSL_DOMAIN}){PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트## 배포 완료
### 배포 환경
- 클러스터 유형: {EKS / AKS / GKE}
### 배포 결과
- 백엔드 컨테이너: 빌드 및 배포 완료
- 프론트엔드 컨테이너: 빌드 및 배포 완료
- AI 서비스 컨테이너: 빌드 및 배포 완료
- K8s 배포: 완료
### 접속 정보
- 백엔드 API: {URL}
- 프론트엔드: {URL}
POST-ACTION: {PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트
| # | 규칙 |
|---|---|
| 1 | <!--ASK_USER--> 발견 시 AskUserQuestion 도구를 호출할 것 (텍스트 출력 금지) |
| 2 | Agent: {agent-name}이 명시된 Step은 메인 에이전트가 직접 수행 금지. 반드시 프롬프트 조립 규칙에 따라 서브에이전트 호출 |
| 3 | Phase 2 / Step 5 (실행정보 조립) 결과 [실행정보] 블록은 Phase 3 ~ Phase 5의 모든 Agent 호출 시 프롬프트의 동적 영역에 텍스트로 포함 |
| 4 | 외부 가이드({NPD_PLUGIN_DIR}/resources/guides/deploy/*.md)가 명시된 Step은 해당 가이드를 반드시 Read로 로드한 뒤 절차를 수행할 것. SKILL.md 본문의 요약만 보고 직접 수행하면 스킬 미준수로 간주 |
[실행정보] 조립·AGENTS.md 상태 기록)docs/deploy/backing-service-container-result.md, docs/deploy/run-container-{back,front,ai}-result.md 생성)docs/deploy/backing-service-k8s-result.md 생성)/npd:develop) 산출물과의 일관성 확인curl -I https://{SSL_DOMAIN})완료 시 임시 상태 파일 정리. 산출물은 유지.