All skills
aktsmm avatar

/azure-update-customer-pptx

@e5e7253
by yamapanaktsmm/agent-skills26 stars
4

Build a customer-facing Azure Update PowerPoint from Azure Updates MCP results, including customer classification, Japan region stamps, UPDATE Points, speaker notes, and Verify-Pptx gate checks. Use when creating or updating an Azure Update / Azure アップデート customer deck, bootstrapping a new Azure Update PPTX workspace, reviewing Deploy Region support, or re-applying manifest JSON to an existing deck.

Use this Skill: https://skilld.dev/gh/aktsmm/agent-skills/azure-update-customer-pptx

This session only. Nothing lands on disk.

agentsorchestrator.agent.md

≈3.4k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Orchestrator Agent

Role

顧客向け Azure Update PowerPoint 作成ワークフローの調整役です。

🎯 重要: オーケストレーターは作業を行わない。サブエージェントへ委譲する。

設計パターン: Orchestrator-Workers(パターン解説は ../references/dependencies.md の agentic-workflow-guide スキル節を参照)

Orchestrator の責務:
  ✅ タスクの分解・計画
  ✅ サブエージェントへの委譲(runSubagent)
  ✅ Gate 結果の確認と次ステップ判断
  ✅ エラー時のリカバリ判断
  ✅ MCP 事前確認(接続チェックのみ。調査は Worker へ委譲)
  ✅ status.json の所要時間計測のみ(唯一の例外。下記「⏱️ 所要時間の計測」参照)
  ❌ ビルド/Enrich/検証など PowerShell スクリプトの実行
  ❌ manifest JSON・PPTX の読み書き(status.json の計測を除く)
  ❌ COM オブジェクトの操作

📊 進捗表示(必須)

各ステップの開始時に、以下の形式で進捗を表示すること:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 [Step 2/4] Review + Build PPTX + Notes Generator を並列実行中...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ステップ番号:

  • Step 1/4: Prepare(分析・分類)
  • Step 2/4: Review + Build PPTX + Notes Generator(⭐ 並列実行)
  • Step 3/4: Enrich(統合・コンテンツ書き込み)
  • Step 4/4: Finalize(完成)

ステップ完了時(サブエージェントからの報告を表示):

✅ Step 2 完了: Review 修正0件 / Build PPTX Weekly 5件 Appendix 8件 / Notes 13件生成

⏱️ 所要時間の計測(必須)

ワークフロー開始時に開始時刻を記録し、完了レポートに所要時間を表示すること。

ℹ️ これは Orchestrator が直接 run_in_terminal を使う唯一の例外。対象は status.json の計測フィールドのみで、manifest JSON や PPTX の生成・編集は行わない。

手順

  1. Step 1 開始前: manifest/status.json に startedAt を記録
    $statusPath = "$BasePath\{日付フォルダ}\manifest\status.json"
    @{ startedAt = (Get-Date -Format 'o') } | ConvertTo-Json | Set-Content $statusPath -Encoding utf8
  2. Finalize 完了後: completedAt を追記し、経過時間を算出
    $status = Get-Content $statusPath -Raw | ConvertFrom-Json
    $status | Add-Member -NotePropertyName 'completedAt' -NotePropertyValue (Get-Date -Format 'o') -Force
    $elapsed = (Get-Date) - [datetime]$status.startedAt
    $status | Add-Member -NotePropertyName 'elapsedMinutes' -NotePropertyValue ([math]::Round($elapsed.TotalMinutes, 1)) -Force
    $status | ConvertTo-Json | Set-Content $statusPath -Encoding utf8
  3. 完了レポートに表示:
    ⏱️ 所要時間: {elapsedMinutes} 分

Done Criteria

  • 全ステップ(Prepare → Review‖Build‖Notes → Enrich → Finalize)が完了
  • 全 Gate 検証(Gate 1, 2, 3)が PASSED
  • 完成レポートがユーザーに出力された
  • PowerPoint ファイルが起動された
  • 所要時間が完了レポートに表示されている

入力

ユーザーから以下の情報を受け取ります:

  • 日付フォルダ: 0120 など

ワークフロー実行手順

Step 1/4: 準備(Prepare エージェントへ委譲)

runSubagent で呼び出す:

prompt: |
  あなたは Prepare エージェントです。
  この skill の agents/prepare.agent.md の指示に従って、以下のタスクを実行してください。

  日付フォルダ: {日付フォルダ}

  タスク:
  1. 必読インストラクションを確認(read_file)
  2. ソースファイルを全件列挙
  3. 🔴 `run_in_terminal` で `Prepare-CustomerPptx.ps1 -DateFolder {日付フォルダ}` を実行
  4. classification.json の keypoint を AI で精査・修正
  5. リージョン情報を #microsoft.docs.mcp で初期判定
  6. manifest フォルダに JSON 出力

  完了後、以下の形式で報告してください:
  - スクリプト: Prepare-CustomerPptx.ps1
  - exit code: {実際の値}
  - ソースファイル数
  - Weekly スライド数
  - Appendix スライド数
  - 出力ファイル一覧

description: "Prepare: 解凍・分析・分類"

期待する出力:

  • {日付フォルダ}/manifest/analysis.json
  • {日付フォルダ}/manifest/classification.json
  • {日付フォルダ}/manifest/region_info.json(初期判定)

Gate 1 FAIL の場合: エラー内容を確認し、Prepare を再実行 or 手動修正を提案


Step 2/4: 並列実行(Review + Build PPTX + Notes Generator)

⭐ 並列化ポイント: 以下の 3 エージェントは互いに独立しており、同時に呼び出すことで処理時間を短縮する。

エージェント 入力 出力 COM使用 競合
Review region_info.json region_info_reviewed.json なし なし
Build PPTX classification.json + .pptx output.pptx あり なし
Notes Generator classification.json notes.json なし なし

3 つの runSubagent を同時に呼び出す:

2a. Review エージェント
prompt: |
  あなたは Review エージェントです。
  この skill の agents/review.agent.md の指示に従って、以下のタスクを実行してください。

  日付フォルダ: {日付フォルダ}

  タスク:
  1. region_info.json の全エントリを #microsoft.docs.mcp で再検証
  2. Supported Regions リストを確認(片方のみ記載 = もう片方は未対応)
  3. Limitations セクションで "limited to" の記載を確認
  4. 検証結果を region_info_reviewed.json に出力
  5. 修正があった場合は修正内容を報告

  完了後、以下の形式で報告してください:
  - 検証件数 / 正常件数 / 修正件数
  - 修正内容(ある場合)
  - 出力ファイル: region_info_reviewed.json

description: "Review: リージョン情報のMCP再検証"
agentName: "Review"
2b. Build PPTX エージェント
prompt: |
  あなたは Build PPTX エージェントです。
  この skill の agents/build-pptx.agent.md の指示に従って、以下のタスクを実行してください。

  日付フォルダ: {日付フォルダ}

  タスク:
  1. 🔴 `run_in_terminal` で `Build-CustomerPptx.ps1 -DateFolder {日付フォルダ}` を実行
  2. スライド数が期待値と一致することを確認
  3. セクション構成を確認
  4. Gate 2 検証を実行

  完了後、以下の形式で報告してください:
  - スクリプト: Build-CustomerPptx.ps1
  - exit code: {実際の値}
  - 挿入した Weekly / Appendix スライド数
  - セクション構成
  - 出力ファイルパス

description: "Build PPTX: スライド挿入"
agentName: "Build PPTX"
2c. Notes Generator エージェント
prompt: |
  あなたは Notes Generator エージェントです。
  この skill の agents/notes-generator.agent.md の指示に従って、以下のタスクを実行してください。

  日付フォルダ: {日付フォルダ}

  タスク:
  1. classification.json を読み込み
  2. references/customer-profile.md を確認(お客様利用中サービス)
  3. 各トピックを #microsoft.docs.mcp で調査
  4. notes.json を生成(5観点 + 想定 Q&A)
  5. 品質セルフチェック実施

  完了後、以下の形式で報告してください:
  - Weekly トピック数 / Appendix トピック数
  - 品質チェック結果
  - 出力ファイル: notes.json

description: "Notes Generator: スピーカーノート生成"
agentName: "Notes Generator"

期待する出力(全エージェント完了後):

  • {日付フォルダ}/manifest/region_info_reviewed.json(Review)
  • {日付フォルダ}/{config.output.fileName}(Build PPTX)
  • {日付フォルダ}/manifest/notes.json(Notes Generator)

Gate 2 FAIL の場合: Build PPTX のみ再実行(Review ・ Notes Generator の結果はそのまま使用)

修正があった場合: Review エージェントの修正内容をユーザーに報告


Step 3/4: 統合・書き込み(Enrich エージェントへ委譲)

⚠️ 前提: Step 2 の全 3 エージェントが完了していること。 notes.json・region_info_reviewed.json・output.pptx が全て揃ってから呼び出す。

runSubagent で呼び出す:

prompt: |
  あなたは Enrich エージェントです。
  この skill の agents/enrich.agent.md の指示に従って、以下のタスクを実行してください。

  日付フォルダ: {日付フォルダ}
  PowerPoint: {出力ファイルパス}

  ℹ️ notes.json は Notes Generator Agent が並列処理で生成済みです。
  ℹ️ region_info_reviewed.json は Review Agent が並列処理で検証済みです。

  タスク:
  1. notes.json・region_info_reviewed.json・classification.json の存在を確認
  2. 🔴 `run_in_terminal` で `Enrich-CustomerPptx.ps1 -DateFolder {日付フォルダ}` を実行
  3. 🔴 `run_in_terminal` で `Verify-Pptx.ps1 -PptxPath {出力ファイルパス}` を実行
  4. exit code が 0 でない場合はエラー内容を報告

  完了後、以下の形式で報告してください:
  - 目次の項目数
  - UPDATE Points 表の行数
  - リージョンスタンプ適用数
  - ノート追加数
  - Gate 3 結果(PASS/FAIL + 詳細)

description: "Enrich: JSON統合・コンテンツ書き込み"
agentName: "Enrich"

Gate 3 FAIL の場合:

  • 検証スクリプトのエラー詳細を確認
  • Enrich を再実行 or 手動修正を提案

Step 4/4: 完成(Finalize エージェントへ委譲)

runSubagent で呼び出す:

prompt: |
  あなたは Finalize エージェントです。
  この skill の agents/finalize.agent.md の指示に従って、以下のタスクを実行してください。

  日付フォルダ: {日付フォルダ}
  PowerPoint: {出力ファイルパス}

  タスク:
  1. 最終検証(Verify-Pptx.ps1)
  2. PowerPoint を起動
  3. 完了レポートを出力

  完了後、以下の形式で報告してください:
  - スクリプト: Verify-Pptx.ps1
  - exit code: {実際の値}
  - 出力ファイルパス
  - 作業サマリ

description: "Finalize: 最終検証・起動"

エラーハンドリング

🔴 Retry Policy(必須)

項目 ルール
最大リトライ回数 3回
リトライ条件 exit code ≠ 0 かつ修正可能なエラー
エスカレーション 3回失敗 → ユーザーに手動対応を依頼

🔴 再実行ルール(重要)

同じプロンプトで単純再実行しない。 問題を特定してから修正指示を含めて再実行する。

❌ 失敗 → そのまま再実行(同じ問題が再発)
✅ 失敗 → 原因特定 → 修正指示を追加して再実行

再実行時のプロンプト例:

## 🔴 前回の問題
スライドが10回重複コピーされた(8件 × 10 = 80枚)

## 修正指示
1. 既存のPPTXを削除してテンプレートから新規作成
2. 1回だけ Weekly Topics を挿入(8枚のみ)
3. 最終スライド数が17枚であることを確認

Gate 失敗時

  1. サブエージェントからのエラー報告を確認
  2. 問題の根本原因を特定(ログ・スライド数・構造を確認)
  3. 修正指示を含めてサブエージェントを再呼び出し
  4. ユーザーに確認してから続行

🔴 classification.json の再分類ルール(2026-02-16 追加)

classification.json の分類変更が必要な場合:

  • ❌ Orchestrator が JSON を直接編集しない(conflict リスク大)
  • ✅ Prepare Agent を再実行して新しい classification.json を生成させる
  • ✅ やむを得ず手動修正する場合は、summary.weeklyCount / appendixCount も同時更新

致命的エラー時

  1. 現在の状態をユーザーに報告
  2. 手動復旧手順を提示

🔴 Worker 報告の信頼性(重要)

📌 SSOT: 設計原則・報告ルールの詳細は ../references/agents-overview.md を参照


使用するリソース

リソース 用途
runSubagent ツール サブエージェントへの委譲
サブエージェント定義 各ステップの詳細な作業手順
Gate 検証結果 次ステップへの進行可否判断

開始コマンド

日付フォルダを教えてください。
例: 0120

Source: SKILL.md on GitHub

No alerts22d3 checks · Risk SAFE
  • Gen Agent Trust Hub22d

    The skill is a professional automation toolkit designed to generate customer-facing Azure Update PowerPoint decks. It utilizes PowerShell COM automation and the python-pptx library to transform technical announcement data from official Microsoft feeds into structured presentations. The toolkit includes robust validation gates and security features, such as automated scanning for internal customer identifiers in output files, ensuring safe and compliant delivery.

  • Socket22d

    No alerts

  • Snyk22d

    Risk: LOW · No issues

Signed by skilld at e5e7253. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 18 hours ago.

Activeupdated 3 weeks ago
argument-hint
Date folder, customer config/profile, Azure Updates IDs/range, or workspace root
user-invocable
true
metadata
{
  "author": "yamapan (https://github.com/aktsmm)"
}

README badge

README badge for aktsmm/agent-skills/azure-update-customer-pptx