Technical Impact Presentation (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(Token 未過期)、讀取權限(一個簡單的 DQL)、寫入權限(如果需要上傳儀表板),並列出已安裝的應用程式 ID(用於深層連結)。如果 Token 已過期,腳本會印出重新驗證命令 —— 請告知使用者在工作階段中執行 !dtctl auth login --context <ctx>(OAuth 為互動式流程,你無法代為執行)。
1b. Dynatrace MCP 驗證 —— 你(Agent)必須確認 Dynatrace MCP 伺服器可連線,因為腳本無法呼叫 MCP。調用一個輕量級 MCP 讀取工具,例如 get_dql_knowledgebase 或 list_strato_components(名稱格式類似 mcp__<server>__<tool>)。
- 通過 → 記錄「MCP: connected」並使用它以驗證/授權 DQL 與儀表板。
- 失敗/不存在 → 記錄「MCP: unavailable — proceeding dtctl-only」並繼續進行(MCP 為建議項目,非必要)。切勿在未確認的情況下預設其運作正常。
在繼續之前,將兩個結果記錄為一行簡短的前置檢查資訊,例如:
Preflight ✓ dtctl(read+write, 47 apps) · MCP(connected)。
2 —— 收集即時租戶數據
執行 scripts/gather_tenant_data.sh <context> 以擷取重點統計數據(主機、服務、處理程序群組/實例、K8s 叢集/命名空間/工作負載、Spans/2h、Logs/2h、不同問題/7d)、已安裝的應用程式 ID(用於深層連結),以及候選實體 ID(頂層服務、主機群組、資料庫系統)以建立進階連結。擷取輸出結果;你將把這些數字貼入設定檔中。根據需要加入特定條件的查詢(例如 db.system、Oracle/MSSQL 服務、Azure 區域、gen_ai spans)。
3 —— 建立設定檔
複製 references/example_config.json 並針對此客戶進行編輯:封面、執行摘要、客戶觀點(4 張卡片)、時間軸、成功條件列、每個條件一個功能條目(+ 附加價值)、價值摘要、結尾。每個功能 = {title, done, status, bullets[], url, capture}。url 為真實的應用程式深層連結(來自步驟 1/2 的 <base>/<appId>);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(Workflows/ServiceNow)、dynatrace.davis.problems(Problems)、dynatrace.logs、dynatrace.kubernetes、dynatrace.devobs.debugger(Live 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 張卡片) → 觀點時間軸 → 成功條件表格 → 章節分隔頁 → 每個成功條件一張功能投影片 → 附加價值投影片(Problems/RCA、Logs、Kubernetes、Live Debugger、已交付的儀表板、Security) → 章節分隔頁 → 結果計分卡 → 已交付的價值與後續步驟 → 感謝頁。
每張功能投影片:標題 + 狀態標籤(✅ 已完成 / 🔄 處理中) + 3–4 個價值要點 + 右側一個青綠色「截圖佔位區塊」,內含截圖說明與可點擊的深層連結。
已融入腳本的寶貴經驗(請勿回歸)
- 淺色 vs 深色版面。 Dynatrace「技術影響」範本包含淺色(白色)內容版面與深色封面/章節版面(滿版圖片)。白色文字在淺色投影片上會完全看不見。
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 之外,無其他外部依賴。