| name | inform |
| description | FOCUS 정규화 & 통합 가시성 — 3 CSP + SaaS LLM → FOCUS v1.3 + AI 확장 5종, 태깅 거버넌스, 이상 탐지, Chart.js 9차트 대시보드 |
| type | orchestrator |
| user-invocable | true |
Inform
[INFORM 활성화]
목표
3 CSP(AWS·Azure·GCP) + SaaS LLM 빌링 데이터를 FOCUS v1.3 + AI 확장 5종으로 정규화함. 태깅 거버넌스 정책을 수립하고, 비용 이상 탐지 5건을 식별하며, Chart.js 9차트 단일 HTML 대시보드를 산출함.
활성화 조건
다음 중 하나 이상 해당 시 활성화됨:
@inform 멘션
- "FOCUS 정규화", "대시보드" 키워드 포함
/finops:inform 직접 호출
에이전트 호출 규칙
FQN 테이블
| 에이전트 | FQN | 티어 | 순서 |
|---|
| focus-normalizer | finops:focus-normalizer:focus-normalizer | MEDIUM | 1 |
| tag-governor | finops:tag-governor:tag-governor | LOW | 2 |
| cost-analyst | finops:cost-analyst:cost-analyst | MEDIUM | 3 |
프롬프트 조립
resources/guides/combine-prompt.md에 따라 AGENT.md + agentcard.yaml + tools.yaml 합치기
Agent(subagent_type=FQN, model=tier_mapping 결과, prompt=조립된 프롬프트) 호출
- tier → 모델 매핑은
gateway/runtime-mapping.yaml 참조
서브 에이전트 호출
워크플로우 단계에 Agent: {agent-name}이 명시된 경우,
메인 에이전트는 해당 단계를 직접 수행하지 않고,
반드시 위 프롬프트 조립 규칙에 따라 해당 에이전트를 호출하여 결과를 받아야 함.
서브에이전트 호출 없이 메인 에이전트가 해당 산출물을 직접 작성하면
스킬 미준수로 간주함.
호출
Agent(
subagent_type="finops:{agent}:{agent}",
model={티어} 모델,
prompt=조립된 프롬프트
)
워크플로우
Phase 1: 입력 확인 (ulw 활용)
다음 파일 존재 여부를 확인함:
resources/sample-billing/aws-cur-sample.csv
resources/sample-billing/azure-export-sample.csv
resources/sample-billing/gcp-billing-sample.csv
resources/sample-billing/utilization-sample.csv
resources/sample-billing/saas-llm-sample.csv
resources/schema/focus-v1.yaml
references/am/finops.md §4.5~§4.11·§4.16
파일 누락 시 사용자에게 알리고 중단함.
Phase 2: 원본 프로파일링 + FOCUS 매핑 + 병합 → Agent: focus-normalizer (/oh-my-claudecode:ralph 활용)
- TASK: schema-profiler → unit-converter → ai-extension-mapper 순서로 Step 2-1~2-3 실행함
- EXPECTED OUTCOME:
out/step2/1-source-profile.md — 소스별 컬럼 목록 표 + FOCUS 매핑 가능성 평가 표 + 파생 불가 항목 처리 방안
resources/mapping/aws-cur-to-focus.yaml — AWS CUR 컬럼 매핑 정의
resources/mapping/azure-export-to-focus.yaml — Azure Export 컬럼 매핑 정의
resources/mapping/gcp-billing-to-focus.yaml — GCP Billing 컬럼 매핑 정의
resources/mapping/saas-llm-to-focus.yaml — SaaS LLM 컬럼 매핑 정의
resources/mapping/README.md — 매핑 YAML 4종 개요 및 변환 규칙 요약
out/focus-normalized.csv — FOCUS Mandatory 15종 + AI 확장 5종 컬럼 포함, 월 총합 원본 ±0.01 KRW 일치
- MUST DO:
- USD→KRW 환율 ×1,500 적용
- Amortized 비용 계산식 적용 (RI/SP 선납 비용 비례 배분)
- AI 확장 컬럼(TokenCountInput·TokenCountOutput·ModelName·GpuHours·GpuUtilization) 5종 통합
resources/sample-billing/utilization-sample.csv를 ResourceId 기준 조인하여 GpuUtilization 계산
- FOCUS v1.3 spec_version 준수
- MUST NOT DO:
- FOCUS v1.3 spec_version 변경 금지
- 원본 빌링 CSV 직접 수정 금지
- 대시보드 생성·태깅 거버넌스·비용 최적화 권고 수행 금지
- CONTEXT:
resources/sample-billing/*.csv (5종)
resources/schema/focus-v1.yaml
references/am/finops.md §4.5~§4.11·§4.16
Phase 3: 태깅 갭 분석 → Agent: tag-governor (/oh-my-claudecode:ulw 활용)
- TASK: Step 2-4 실행 — 필수 4종 태그(CostCenter·Project·Environment·Owner) 커버리지 측정, tag-policy.yaml 런타임 생성
- EXPECTED OUTCOME:
out/step2/4-tag-coverage.md — CSP별 누락률 표 (AWS≈8%·Azure≈5%·GCP≈10%·AI≈12%, ±2%p 허용)
resources/templates/tag-policy.yaml — HBT 프로파일·COVERS 원칙 기반 태그 정책 정의
- MUST DO:
- HBT 회사 프로파일(
resources/basic-info/company-profile.md) 기반 정책 생성
- COVERS 원칙 연계 태그 정책 근거 명시
- AI 특화 규칙(API Key 기반 chargeback·model metadata 태깅) 포함
- 누락률 실측 데이터 기반 산출
- MUST NOT DO:
- 임의 누락률 수치 조작 금지 (실측 기반만 허용)
- 데이터 정규화·대시보드 생성 수행 금지
- CONTEXT:
out/focus-normalized.csv (Phase 2 산출물)
resources/basic-info/company-profile.md
Phase 4: 이상 탐지 + 대시보드 → Agent: cost-analyst (/oh-my-claudecode:ralph 활용)
- TASK: Step 2-5 실행 — 이상 비용 5단계 탐지(CSP 3건 + AI 2건) + Chart.js 9차트 대시보드 단일 HTML 생성
- EXPECTED OUTCOME:
out/dashboard.html — 파일 크기 1.2MB 미만, 오프라인 열람 가능, 기간 슬라이더·CostCenter/Project/Model 필터·CSP/AI 탭·다크모드 포함
- 이상 비용 5건 목록 (CSP 3 + AI 2, 각 항목에 탐지 근거 명시)
- Chart.js 9차트 구성: CSP 차트 5개 + AI 차트 4개
- MUST DO:
- Chart.js 4.x CDN 스크립트 인라인 삽입
- 정규화 CSV 데이터를
<script> 태그 내 JSON으로 인라인 임베드
- 9차트 완비 (CSP 5: 월별 추이·서비스별·리전별·탑 10 리소스·이상비용 / AI 4: 모델별·토큰별·GPU 활용률·비용 예측)
- 기간 슬라이더·필터·탭·다크모드 UI 구현
- MUST NOT DO:
- 외부 서버 의존 금지 (CDN 제외한 동적 데이터 로드 금지)
- 1.2MB 초과 파일 생성 금지
- CONTEXT:
out/focus-normalized.csv
resources/sample-billing/utilization-sample.csv
Phase 5: 검증 및 보고 (/oh-my-claudecode:verify 활용)
다음 항목을 순서대로 검증함:
검증 통과 후 핵심 결과 요약 보고 및 다음 단계 /finops:optimize 권장.
완료 조건
검증 프로토콜
- focus-normalizer·tag-governor·cost-analyst 각 AGENT.md 검증 섹션 통과
- Phase 5 파일 존재 및 크기 확인
out/dashboard.html 내 new Chart( 패턴 9건 이상 확인
- 이상 탐지 5건 항목 각각에 탐지 근거 문자열 존재 확인
상태 정리
임시 상태 파일 미사용. 산출물은 out/step2/, out/, resources/mapping/, resources/templates/ 경로에 영구 저장됨.
취소
cancelomc 입력 시 현재 Phase 중단 및 스킬 종료.
재개
마지막 완료 Phase 번호를 확인하고 해당 Phase 다음부터 재개함. 다음 파일 존재 여부로 완료 Phase를 판단함:
- Phase 2 완료:
out/focus-normalized.csv
- Phase 3 완료:
resources/templates/tag-policy.yaml
- Phase 4 완료:
out/dashboard.html
출력 형식
사용자 보고 형식 (권장)
## Inform 결과 요약
### FOCUS 정규화
- 총 행 수: N행
- 월 총합 검증: 원본 ±0.01 KRW 이내 일치
### 태깅 갭 현황
| CSP | 누락률 |
|---|---|
| AWS | ~8% |
| Azure | ~5% |
| GCP | ~10% |
| AI | ~12% |
### 이상 비용 탐지
| # | CSP/AI | 항목 | 탐지 근거 |
|---|---|---|---|
### 대시보드
- 파일: out/dashboard.html (NMB)
- 차트: 9개 (CSP 5 + AI 4)
### 다음 단계
→ `/finops:optimize` 으로 Right-sizing 및 약정 최적화를 시작하세요.