기술 영향 프레젠테이션 (TIP) 빌더은(는) 무엇을 하나요?
고객 맞춤형 기술 영향 프레젠테이션을 구축합니다. 이 프레젠테이션은 고객의 성공 기준을 Dynatrace가 제공한 가치와 매핑하고, 라이브 테넌트 데이터와 정확한 스크린샷 위치에 대한 딥링크로 뒷받침합니다. 브랜드 규칙은 dynatrace-pptx-skill 에서 가져옵니다 — 색상/폰트를 위해 먼저 읽어보세요.
황금 규칙: 절대 메트릭을 조작하지 마세요. 슬라이드의 모든 숫자는 이 세션에서 실행된 dtctl 쿼리에서 가져와야 합니다. 기준이 "진행 중"이면 그렇게 말하세요 — 정직함이 완성보다 낫습니다.
사용자로부터 필요한 입력
| 입력 | 필수 | 비고 |
|---|---|---|
Dynatrace PowerPoint 템플릿 (.pptx) | 예 | 기본 덱; 레이아웃/테마가 상속됩니다. |
예제 작성 덱 (.pptx) | 선택 사항 | 슬라이드 흐름을 미러링합니다 (예: 이전 고객의 POV). |
| 성공 기준 (이미지/표/텍스트) | 예 | 콘텐츠의 핵심 — 사용 사례 · 목적 · 현재 방식 · 상태. |
| 테넌트 / dtctl 컨텍스트 | 예 | 예: <tenant-id> → dtctl --context <ctx>. |
| 발표자 이름 / 날짜 | 선택 사항 | 기본값은 인증된 사용자 + 현재 월. |
파이프라인 (순서대로 실행)
1 — 사전 검증 (필수, 건너뛰지 마세요)
두 검사 모두 빌드 전에 통과해야 합니다. 먼저 dtctl 검사를 실행한 다음 MCP 검사를 실행합니다.
1a. dtctl 검증 — scripts/preflight.sh <context> 실행:
bash scripts/preflight.sh <dtctl-context>
다음을 확인합니다: 현재 컨텍스트, auth whoami (토큰 만료 여부), 읽기 접근 (간단한 DQL),
쓰기 접근 (대시보드를 업로드할 경우 필요), 설치된 앱 ID 목록 (딥링크 필요).
토큰이 만료된 경우 재인증 명령을 출력하므로, 사용자에게 세션 내에서
!dtctl auth login --context <ctx> 를 실행하라고 알리세요 (OAuth는 대화형이므로 에이전트가 실행 불가).
1b. Dynatrace MCP 검증 — 에이전트는 Dynatrace MCP 서버에 접근 가능한지 직접 확인해야 합니다.
스크립트는 MCP를 호출할 수 없기 때문입니다. 하나의 가벼운 MCP 읽기 도구를 호출하세요.
예: get_dql_knowledgebase 또는 list_strato_components (이름 형식: mcp__<server>__<tool>).
- 성공 → "MCP: 연결됨"으로 기록하고 DQL 및 대시보드 검증/승인에 사용합니다.
- 실패/부재 → "MCP: 사용 불가 — dtctl만 진행"으로 기록하고 계속합니다 (MCP는 권장 사항, 필수 사항 아님). 작동한다고 조용히 가정하지 마세요.
진행 전에 두 결과를 짧은 사전 검증 라인으로 기록하세요.
예: 사전검증 ✓ dtctl(읽기+쓰기, 47개 앱) · MCP(연결됨).
2 — 라이브 테넌트 데이터 수집
scripts/gather_tenant_data.sh <context> 를 실행하여 주요 통계 (호스트, 서비스,
프로세스 그룹/인스턴스, K8s 클러스터/네임스페이스/워크로드, 스팬/2h, 로그/2h, 고유
문제/7d), 설치된 앱 ID (딥링크용), 그리고 프리미엄 링크를 위한 후보 엔티티 ID (최상위
서비스, 호스트 그룹, DB 시스템)를 가져옵니다. 출력을 캡처하여 구성에 붙여넣습니다.
필요한 기준별 쿼리가 있으면 추가하세요 (예: db.system, Oracle/MSSQL 서비스, Azure 지역, gen_ai 스팬).
3 — 구성 파일 빌드
references/example_config.json 을 복사하여 이 고객에 맞게 편집합니다: 표지, 경영진 개요,
고객 POV (4개 카드), 타임라인, 성공 기준 행, 기준당 기능 항목 1개 (+ 부가 가치),
가치 요약, 마무리. 각 기능 = {title, done, status, bullets[], url, capture}.
url = 실제 앱 딥링크 (<base>/<appId> from 1/2단계); capture = 사용자에게 정확히
무엇을 스크린샷할지 알려주는 한 줄.
딥링크 베이스 = https://<tenant>.apps.dynatrace.com/ui/apps/. 일반적인 앱 ID (1단계에서
테넌트별 확인): dynatrace.infraops, dynatrace.discovery.coverage,
dynatrace.classic.smartscape, dynatrace.services, dynatrace.distributedtracing,
dynatrace.database.overview, dynatrace.clouds, dynatrace.automations (워크플로우/ServiceNow),
dynatrace.davis.problems (문제), dynatrace.logs, dynatrace.kubernetes,
dynatrace.devobs.debugger (라이브 디버거), dynatrace.dashboards,
dynatrace.security.vulnerabilities.
4 — 덱 생성
python3 scripts/build_tip.py config.json
build_tip.py 는 템플릿을 로드하고, 스켈레톤 슬라이드를 올바르게 삭제하며 (관계를 제거하여
중복 부품/손상이 없도록), 템플릿 레이아웃에서 다시 빌드하고, 레이아웃별로 배경이 어두운지
밝은지 자동 감지하여 어두운 표지/섹션 슬라이드에는 흰색 텍스트를, 밝은 콘텐츠 슬라이드에는
네이비 텍스트를 자동으로 선택합니다. 사용자 정의 카드, 타임라인 노드, 링크 상자 및 표는
항상 어두운 채움에 밝은 텍스트로 표시되어 어떤 슬라이드에서도 읽을 수 있습니다.
5 — QA (필수)
python3 scripts/qa_tip.py "<output>.pptx"
다음의 경우 큰 소리로 실패합니다: 밝은 배경에 흰색 텍스트 (보이지 않음), 깨졌거나 빈 하이퍼링크,
남은 스켈레톤 텍스트 ("Use Case 1", "Customer Name", "Lorem"), 빈 표. 수정 후 깨끗해질 때까지
재실행합니다. LibreOffice/soffice 가 사용 가능하면 PDF로 내보내서 눈으로 확인하고,
그렇지 않으면 사용자에게 파일을 열어 빽빽한 슬라이드에서 텍스트가 잘 맞는지 확인하라고 알립니다.
6 — 전달
절대 경로 + file:// 링크를 제공합니다. open 명령을 제안합니다. 슬라이드 개요,
사용된 메트릭, 슬라이드별 스크린샷 링크를 요약합니다.
덱 청사진 (기본 흐름)
표지 → 안건 → 경영진 개요 → 고객 관점 (4개 카드) → POV 타임라인 → 성공 기준 표 → 구분선 → 성공 기준당 하나의 기능 슬라이드 → 부가 가치 슬라이드 (문제/RCA, 로그, 쿠버네티스, 라이브 디버거, 제공된 대시보드, 보안) → 구분선 → 결과 성과표 → 제공된 가치 및 다음 단계 → 감사 인사.
각 기능 슬라이드: 제목 + 상태 칩 (✅ 완료 / 🔄 진행 중) + 3–4개의 가치 글머리 기호 + 오른쪽에 청록색 "스크린샷 자리표시자" 상자 (캡처 지침 및 클릭 가능한 딥링크 포함).
스크립트에 내장된 어렵게 얻은 교훈 (퇴보시키지 마세요)
- 밝은 vs 어두운 레이아웃. DT "기술 영향" 템플릿은 밝은 (흰색) 콘텐츠 레이아웃과
어두운 표지/섹션 레이아웃 (전체 블리드 이미지)을 함께 제공합니다. 밝은 슬라이드에서 흰색 텍스트는
보이지 않습니다.
build_tip.py가 자동 감지하여 (전체 블리드 그림 또는 어두운 단색 채우기 ⇒ 어두움) 그에 따라 텍스트 색상을 지정합니다. 콘텐츠 레이아웃에 흰색 텍스트를 하드코딩하지 마세요. - 슬라이드를 올바르게 삭제하세요.
sldId항목만 제거하면 슬라이드 부분이 고아가 되어 중복 이름으로 인한 ZIP 손상이 발생합니다. 항상prs.part.drop_rel(rId)와sldId제거를 함께 수행하세요. - 브랜드 용어 교체는 대소문자를 구분합니다. 예: 보이는
Davis→Dynatrace Intelligence로 바꾸지만 앱 ID URL 내부의 소문자davis(dynatrace.davis.problems) 는 그대로 두어 링크가 깨지지 않도록 하세요.qa_tip.py는 URL을 플래그하지 않습니다. - 실제 앱 ID만 사용하세요.
dtctl get apps(1단계)에서 가져오고 추측하지 마세요.dynatrace. database.overview(dynatrace.databases아님),dynatrace.davis.problems등. - 상태 정직성. 고객의 완료/진행 중 플래그를 유지하고, 진행 중은 주황색으로 표시하세요.
이 스킬 공유하기
이 디렉토리에 자체 포함되어 있습니다. 공유하려면:
~/.claude/skills/technical-impact-presentation/ 를 팀원의 ~/.claude/skills/ (또는
~/.agents/skills/)에 복사하거나 공유 스킬 저장소에 커밋하세요. python-pptx
(pip3 install python-pptx)와 dtctl 이외의 외부 종속성은 없습니다.