with one click
customer-card-render
// Generate customer-card PowerPoint content YAML from Design Thinking canonical artifacts and build using the shared PowerPoint skill pipeline - Brought to you by microsoft/hve-core
// Generate customer-card PowerPoint content YAML from Design Thinking canonical artifacts and build using the shared PowerPoint skill pipeline - Brought to you by microsoft/hve-core
Text-to-speech voice-over generation from YAML speaker notes using Azure Speech SDK with SSML pronunciation control - Brought to you by microsoft/hve-core
PowerPoint slide deck generation and management using python-pptx with YAML-driven content and styling - Brought to you by microsoft/hve-core
Retrieves and groups GitHub code scanning alerts by rule and severity using the gh CLI - Brought to you by microsoft/hve-core
OWASP Docker Top 6 vulnerability knowledge base for identifying, assessing, and remediating security risks in containerized Docker environments - Brought to you by microsoft/hve-core.
Decision-driven installer for HVE-Core with 6 clone-based installation methods, extension quick-install, environment detection, and agent customization workflows - Brought to you by microsoft/hve-core
Generates PR reference XML containing commit history and unified diffs between branches with extension and path filtering. Includes utilities to list changed files by type and read diff chunks. Use when creating pull request descriptions, preparing code reviews, analyzing branch changes, discovering work items from diffs, or generating structured diff summaries. - Brought to you by microsoft/hve-core
| name | customer-card-render |
| description | Generate customer-card PowerPoint content YAML from Design Thinking canonical artifacts and build using the shared PowerPoint skill pipeline - Brought to you by microsoft/hve-core |
| license | MIT |
| compatibility | Requires Python 3.11+, uv, and the experimental powerpoint skill |
| metadata | {"authors":"microsoft/hve-core","spec_version":"1.0","last_updated":"2026-04-21"} |
Converts canonical Design Thinking markdown artifacts into PowerPoint skill content.yaml slide definitions and builds the final deck through the shared PowerPoint build pipeline.
This skill is a sibling to the experimental powerpoint skill. It handles the Design Thinking-specific mapping layer: extracting sections from canonical markdown artifacts and filling template-driven content.yaml files. The PowerPoint skill then owns layout rendering, theming, export, and validation.
Keeping these concerns separate means:
Invoke-PptxPipeline.ps1, theming, and validation behavior are not reimplemented here.For full PowerPoint pipeline documentation, see powerpoint/SKILL.md.
Python 3.11+
uv package manager — install with one of:
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# Via pip (fallback)
pip install uv
The experimental powerpoint skill at .github/skills/experimental/powerpoint/ for the Invoke-PptxPipeline.ps1 build step
.github/skills/experimental/customer-card-render/
├── SKILL.md
├── pyproject.toml
├── references/
│ └── mapping-spec.md
├── scripts/
│ └── generate_cards.py
├── templates/
│ ├── global-style.yaml
│ ├── persona.content.yaml
│ ├── problem.content.yaml
│ ├── scenario.content.yaml
│ ├── use-case-slide1.content.yaml
│ ├── use-case-slide2.content.yaml
│ ├── use-case-slide3.content.yaml
│ └── vision.content.yaml
└── tests/
├── fuzz_harness.py
└── test_generate_cards.py
| Artifact Type | Slide Layout |
|---|---|
| Vision Statement | Single slide |
| Problem Statement | Single slide |
| Scenario | Single slide |
| Use Case | 4 slides (see below) |
| Persona | Single slide |
Each Use Case expands into 3 consecutive slides with distinct sections:
| Slide | Content |
|---|---|
| Slide 1 | Use Case Description, Use Case Overview, Business Value, Primary User |
| Slide 2 | Secondary User, Preconditions, Steps, Data Requirements |
| Slide 3 | Equipment Requirements, Operating Environment, Success Criteria, Pain Points, Evidence |
Cards are ordered by artifact type (Vision → Problem → Scenario → Use Case → Persona), then alphabetically by title within each type. Use Cases appear with all 4 slides consecutive (Slide N, N+1, N+2, N+3).
python .github/skills/experimental/customer-card-render/scripts/generate_cards.py \
--canonical-dir .copilot-tracking/dt/<project-slug>/canonical \
--output-dir .copilot-tracking/dt/<project-slug>/render/content
| Flag | Required | Default | Description |
|---|---|---|---|
--canonical-dir | No | <skill-root>/canonical | Directory containing canonical DT markdown files |
--output-dir | No | <skill-root>/scripts/content | Directory to write generated content.yaml files |
-v, --verbose | No | — | Enable debug-level logging |
The script reads each markdown file in --canonical-dir, detects the artifact type from frontmatter, extracts required sections, and generates content.yaml files. Vision, Problem, Scenario, and Persona artifacts produce one slide each. Use Case artifacts produce 3 consecutive slides per use case.
For the section-to-field mapping contract and Use Case 3-slide layout details, see references/mapping-spec.md.
./.github/skills/experimental/powerpoint/scripts/Invoke-PptxPipeline.ps1 -Action Build `
-ContentDir .copilot-tracking/dt/<project-slug>/render/content `
-StylePath .copilot-tracking/dt/<project-slug>/render/content/global/style.yaml `
-OutputPath .copilot-tracking/dt/<project-slug>/render/output/customer-cards.pptx
The PowerShell orchestrator manages virtual environment setup and dependency installation automatically via uv sync. See powerpoint/SKILL.md for the full Invoke-PptxPipeline.ps1 parameter reference, template usage, validation, and export options.
The dt-canonical-deck prompt and dt-canonical-deck.instructions.md provide opt-in workflow integration for the Design Thinking coaching agent. When a user opts in, the coaching agent offers to build customer cards at method exit points. The two-command flow above runs as part of that workflow with --canonical-dir and --output-dir resolved from the active DT project slug in .copilot-tracking/dt/.
Canonical artifacts are produced by the DT coach and live under .copilot-tracking/dt/<project-slug>/canonical/.
cd .github/skills/experimental/customer-card-render
uv sync --group dev
uv run pytest tests/
Tests cover parsing, template selection, YAML emission, and regressions. The tests/fuzz_harness.py file is an Atheris polyglot fuzz harness for OSSF Scorecard compliance.
Use Case cards are split across 3 opinionated slides, each with dedicated sections:
This structure ensures all 16 Use Case sections fit legibly across 4 slides without compression. Each section appears in its own textbox with appropriate styling and heading.
For complete mapping details, see references/mapping-spec.md.
| Issue | Cause | Solution |
|---|---|---|
uv not found | uv not installed | Run curl -LsSf https://astral.sh/uv/install.sh | sh (macOS/Linux) or pip install uv |
| Python not found by uv | No Python 3.11+ on PATH | Run uv python install 3.11 |
| Template not found | --canonical-dir contains unknown type | Check frontmatter type: field against supported artifact types |
| Empty output directory | No canonical markdown files found | Confirm --canonical-dir path and that files have --- frontmatter |
| PPTX build fails after generate | PowerPoint skill missing or path incorrect | Confirm powerpoint/ skill exists at .github/skills/experimental/powerpoint/ |
Brought to you by microsoft/hve-core
🤖 Crafted with precision by ✨Copilot following brilliant human instruction, carefully refined by our team of discerning human reviewers.