بنقرة واحدة
setup
finops 플러그인 초기 설정 (모델 버전 확인, generate_image 설치, DMAP Office 빌더 런타임 설치, 라우팅 등록)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
finops 플러그인 초기 설정 (모델 버전 확인, generate_image 설치, DMAP Office 빌더 런타임 설치, 라우팅 등록)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
FOCUS 정규화 & 통합 가시성 — 3 CSP + SaaS LLM → FOCUS v1.3 + AI 확장 5종, 태깅 거버넌스, 이상 탐지, Chart.js 9차트 대시보드
체계화 — 단위경제 KPI 6종, 자동화 5단계, 게이트 6종, 주/월/분기 리뷰 런북, Crawl→Walk 12개월 전환
줄이기 — 유휴 리소스 탐지, Right-sizing 3대안(CSP+AI), GPU 활용, 모델 다운그레이드, RI/SP/Spot 3시나리오
DMAP 표준 2단계 PPT 빌드 오케스트레이션 — N 산출물을 pptx-spec-writer로 명세 작성 후 pptxgenjs build.js를 직접 실행하여 각 .pptx 생성 (다중 deck 루프)
최종 독립 검증 — 4단계 정합성, FOCUS 커버리지, COVERS·게이트 규칙 ID 역참조, 3시나리오 수치 일관성, Ownership 전환 실행 가능성
WHY 정의 & 성숙도 진단 — 비즈니스 이슈를 FinOps 3대 가치에 매핑, Ownership×Capability 진단, COVERS 정렬, 12개월 스킬셋 로드맵 수립
استنادا إلى تصنيف SOC المهني
| name | setup |
| description | finops 플러그인 초기 설정 (모델 버전 확인, generate_image 설치, DMAP Office 빌더 런타임 설치, 라우팅 등록) |
| type | setup |
| user-invocable | true |
[SETUP 활성화]
finops 플러그인의 도구/환경/라우팅을 초기화하여 즉시 사용 가능 상태로 만듦.
gateway/runtime-mapping.yaml 모델 버전 갱신, generate_image 선택적 설치,
DMAP Office 빌더 런타임(pptxgenjs) 자동 검증·설치,
CLAUDE.md 라우팅 등록을 순차 수행함.
사용자가 /finops:setup 호출 시 또는 "finops 설치" 키워드 감지 시.
ulw 활용)프로젝트 AGENTS.md(./AGENTS.md)의 ## 플러그인 변수 섹션에서 아래 4개 변수를 확인함.
| 변수 | 기대값 예시 |
|---|---|
AI_RUNTIME | Claude Code |
DMAP_PLUGIN_DIR | /Users/dreamondal/plugins/dmap |
PLUGIN_DIR | /Users/dreamondal/plugins/finops-lab |
PLUGIN_NAME | finops |
누락된 변수 발견 시 사용자에게 해당 변수명과 예시값을 안내하고 ./AGENTS.md의 ## 플러그인 변수 섹션에 추가할 것을 요청함. 4개 모두 확인 시 Step 2로 진행함.
ulw 활용)gateway/runtime-mapping.yaml의 tier_mapping.{claude-code, cursor, codex, antigravity} 4런타임 엔트리를 읽어 사용자에게 표시함.
Claude 계열 런타임(claude-code / cursor / antigravity):
https://docs.anthropic.com/en/docs/about-claude/models 조회 → 최신 Opus/Sonnet/Haiku 확인OpenAI 계열 런타임(codex):
gpt-5.4(flagship), gpt-5.2-codex, gpt-5.1-codex-max, gpt-5.4-mini 중 최신 버전 확인WebFetch 접근 불가 시 사용자에게 최신 모델명 직접 입력을 안내함.
현재 값과 최신 값을 비교하여 차이가 있을 경우 AskUserQuestion으로 4런타임 일괄 갱신 여부를 질의함.
gateway/runtime-mapping.yaml의 해당 tier_mapping 엔트리를 최신 모델명으로 갱신함 + Step 2.5 실행ulw 활용)Step 2에서 tier_mapping이 갱신된 경우, 런타임 어댑터 포인터 스텁의 frontmatter model: 필드를 새 매핑값으로 일괄 치환함 (본문·주석은 절대 수정 금지).
| 대상 경로 | 파일 | 매핑 참조 |
|---|---|---|
.claude/agents/*.md | 9개 | tier_mapping.claude-code.{tier}.model |
.cursor/agents/*.md | 9개 | tier_mapping.cursor.{tier}.model |
.codex/agents/*.toml | 9개 | tier_mapping.codex.{tier}.model |
.antigravity/agents/*.md | 9개 | tier_mapping.antigravity.{tier}.model |
각 어댑터 파일의 에이전트 이름으로 agents/{name}/agentcard.yaml을 참조하여 tier를 해결한 뒤, 런타임·tier 조합에 따른 최신 모델명으로 frontmatter model: 한 줄만 치환함. 총 36개 파일 일괄 처리.
본 Step은 Step 2의 갱신 여부와 무관하게 어댑터 파일 존재 여부를 점검하며, 누락된 어댑터가 있으면 사용자에게 보고함.
ulw 활용)gateway/install.yaml에서 generate_image 항목의 required: false 확인 후 AskUserQuestion으로 설치 여부를 질의함.
"Yes" 선택 시:
pip install python-dotenv google-genai
python gateway/tools/generate_image.py --help
.env 파일 생성:
gateway/tools/.env.example 존재 시: 해당 파일을 gateway/tools/.env로 복사 후 GEMINI_API_KEY 값 입력을 요청함.env.example 부재 시: GEMINI_API_KEY 한 줄만 받아 gateway/tools/.env를 직접 생성함GEMINI_API_KEY 값을 수집하여 파일에 기록함"No" 선택 시:
설치를 스킵함. 이후 /finops:ppt-writer 실행 시 이미지 생성 없이 텍스트 슬라이드로만 제작됨을 안내함.
pptxgenjs) 설치 (ulw 활용)gateway/install.yaml의 runtime_dependencies 섹션을 파싱하여 pptxgenjs 엔트리를 처리함.
node --version 실행 → v18 이상 확인npm --version 실행 → npm 사용 가능 확인install.yaml의 runtime_dependencies.pptxgenjs.check):
node -e "require('pptxgenjs')"
# 설치 위치: 플러그인 루트(finops-lab/)
# 사유: Node 모듈 해석은 스크립트 디렉토리에서 상위로 탐색함.
# out/ppt-scripts/{대상}-build.js 에서 require('pptxgenjs')가
# finops-lab/node_modules/를 찾아야 하므로 플러그인 루트 설치 필수.
# gateway/는 out/과 형제라 해석 경로에 포함되지 않음.
cd "$PLUGIN_DIR"
[ -f package.json ] || npm init -y
npm install pptxgenjs
check 재실행으로 결과 검증.gitignore에 node_modules/ 등록 권장 (미등록 시 자동 추가)/finops:ppt-writer가 실제 빌드를 실행하는 CWD에서 모듈 해석 성공 여부 확인:
cd "$PLUGIN_DIR/out" && node -e "require('pptxgenjs')"
실패 시 설치 위치 오류(예: gateway/ 설치됨) — 플러그인 루트 재설치 안내.
ulw 활용)AskUserQuestion으로 라우팅 등록 적용 범위를 질의함.
| 선택지 | 대상 파일 | 동작 |
|---|---|---|
| 모든 프로젝트 | ~/.claude/CLAUDE.md | 전역 라우팅 섹션 추가 (Claude Code 전역 설정) |
| 이 프로젝트만 | ./AGENTS.md | 현재 프로젝트 AGENTS.md에 섹션 추가 |
등록 내용 (## finops 플러그인 섹션):
## finops 플러그인
### 라우팅 키워드
- `@setup`, "finops 설치" → `/finops:setup`
- `@help`, "finops 도움말", "finops 뭘 할 수 있어" → `/finops:help`
- `@why-finops`, "FinOps 왜" → `/finops:why-finops`
- `@inform`, "FOCUS 정규화", "대시보드" → `/finops:inform`
- `@optimize`, "Right-sizing", "약정" → `/finops:optimize`
- `@operate`, "KPI", "리뷰 런북" → `/finops:operate`
- `@review`, "최종 검증" → `/finops:review`
- `@ppt-writer`, "PPT deck", "발표자료" → `/finops:ppt-writer`
- `@core`, "FinOps 랩 전체" → `/finops:core`
ulw 활용)모든 Step 완료 후 결과를 체크리스트 형식으로 출력함.
✅ Step 1: 플러그인 변수 4개 확인 완료 (AI_RUNTIME·DMAP_PLUGIN_DIR·PLUGIN_DIR·PLUGIN_NAME)
✅ Step 2: 4런타임 모델 버전 확인/갱신 완료 (claude-code·cursor·codex·antigravity)
✅ Step 2.5: 런타임 어댑터 36개 frontmatter 일괄 갱신 완료
✅ Step 3-A: generate_image 설치 [완료 | 스킵]
✅ Step 3-B: pptxgenjs 설치 [완료 | 이미 설치됨 | 스킵(Node 미설치)]
✅ Step 4: 라우팅 테이블 등록 완료 ([모든 프로젝트 | 이 프로젝트만])
다음 단계:
- 전체 명령 목록 확인: /finops:help
- FinOps 전체 파이프라인 실행: /finops:core
- PPT deck 빌드: /finops:ppt-writer
AskUserQuestion을 활용한 5가지 질의 (최대 5회):
| 순서 | 질의 내용 | 선택지 |
|---|---|---|
| 1 | 최신 모델 버전으로 runtime-mapping.yaml 갱신 여부 | Yes / No |
| 2 | generate_image 도구 설치 여부 | Yes / No |
| 3 | GEMINI_API_KEY 입력 (Step 3-A "Yes" 선택 시에만) | 문자열 입력 |
| 4 | pptxgenjs 설치 여부 (check 실패 시에만) | Yes / No |
| 5 | 라우팅 등록 적용 범위 | 모든 프로젝트 / 이 프로젝트만 |
없음. 모두 직결형 Gateway 도구(Bash, Read, Write, AskUserQuestion, WebFetch) 직접 사용.
| 문제 | 대응 |
|---|---|
| Python 미설치 | python --version 확인 후 미설치 시 https://python.org 에서 3.9 이상 버전 설치 안내함 |
| Node.js 미설치 / v18 미만 | node --version 확인 후 https://nodejs.org/ 에서 18 LTS 이상 설치 안내함 |
| Gemini API Key 발급 필요 | https://ai.google.dev/ 에서 Google 계정으로 로그인 후 API 키 발급 안내함 |
GEMINI_API_KEY 오류 (401/403) | 키 값 오타 확인 및 gateway/tools/.env 파일 내 GEMINI_API_KEY=<값> 형식 점검 안내함 |
node -e "require('pptxgenjs')" 오류 | pptxgenjs 미설치 |
/ppt-writer 실행 시 Cannot find module 'pptxgenjs' | gateway/ 등 하위 디렉토리에 설치됨 (Node 해석 경로 밖) — 플러그인 루트로 재설치: cd "$PLUGIN_DIR" && npm install pptxgenjs |
| CLAUDE.md 쓰기 권한 오류 | 해당 파일 권한(chmod 644 또는 Windows ACL) 확인 및 수동 등록 방법 안내함 |
| WebFetch 접근 불가 | Anthropic 최신 모델 목록(https://docs.anthropic.com/en/docs/about-claude/models) 수동 확인 후 직접 입력 요청함 |
| # | 규칙 |
|---|---|
| 1 | disable-model-invocation 설정 금지 — 설정 시 스킬 로드 자체가 불가함 |
| 2 | 모델명은 항상 Anthropic 공식 최신 버전을 반영해야 함 |
| 3 | AskUserQuestion 없이 사용자 선택을 임의 결정하지 않음 |
각 Step 완료 증거:
| Step | 완료 증거 |
|---|---|
| Step 1 | ./AGENTS.md 내 4개 변수(AI_RUNTIME·DMAP_PLUGIN_DIR·PLUGIN_DIR·PLUGIN_NAME) 존재 확인 (Read 도구 출력) |
| Step 2 | gateway/runtime-mapping.yaml diff — 4런타임 변경 전/후 모델명 출력 (갱신 선택 시) |
| Step 2.5 | .claude/agents/*.md, .cursor/agents/*.md, .codex/agents/*.toml, .antigravity/agents/*.md frontmatter model: 필드가 runtime-mapping.yaml 값과 일치 |
| Step 3-A | python gateway/tools/generate_image.py --help 정상 출력 (설치 선택 시) |
| Step 3-B | cd "$PLUGIN_DIR/out" && node -e "require('pptxgenjs')" 정상 종료(exit 0) |
| Step 4 | 대상 파일(AGENTS.md 또는 ~/.claude/CLAUDE.md) 내 ## finops 플러그인 섹션 존재 확인 (Read 도구 출력) |
| Step 5 | 체크리스트 출력 및 다음 단계 안내 완료 |