microsoft/hve-core
Publicmirrored from https://github.com/microsoft/hve-coreAvailable
Commit
feat(skills): add video-to-gif conversion skill with FFmpeg two-pass optimization (#247)
# Pull Request
## Description
This PR introduces a new video-to-gif skill with FFmpeg two-pass palette
optimization, including HDR detection and tonemapping support. The skill
provides cross-platform scripts (bash and PowerShell) for high-quality
video-to-GIF conversion with customizable parameters for frame rate,
width, dithering algorithms, and time range extraction.
Additionally, the PR simplifies the hve-core-installer agent by
consolidating phases and streamlining the installation flow, removes MCP
configuration documentation (moved to external guidance), refactors
several PowerShell scripts for maintainability, and updates
documentation links throughout the repository.
**Key changes:**
- feat(video-to-gif): New skill with SKILL.md documentation, convert.sh
(bash), and convert.ps1 (PowerShell) scripts
- Two-pass palette optimization for superior GIF quality
- Automatic HDR detection with tonemapping (hable, reinhard, mobius,
bt2390)
- Workspace-first file search for convenient file discovery
- Configurable FPS, width, dithering, loop count, and time range
extraction
- refactor(installer): Simplified hve-core-installer.agent.md phase
structure
- Removed MCP configuration guidance checkpoint
- Consolidated phases for clearer installation flow
- Extension Quick Install now goes directly to gitignore recommendation
- docs: Updated documentation links from `.github/CUSTOM-AGENTS.md` to
`.github/README.md`
- Updated references in README.md, first-workflow.md, install.md, and
RPI documentation
- refactor(scripts): Simplified PowerShell scripts by removing pure
function patterns
- Removed dot-source entry point guards from Generate-PrReference.ps1,
Package-Extension.ps1, Prepare-Extension.ps1, and
Get-VerifiedDownload.ps1
- Deleted associated Pester test files (Generate-PrReference.Tests.ps1,
Get-VerifiedDownload.Tests.ps1, Package-Extension.Tests.ps1,
Prepare-Extension.Tests.ps1)
- chore: Removed `oldsha` from cspell dictionary, updated
extension/README.md with frontmatter
## Related Issue(s)
<!-- Link to the issue(s) this PR addresses using "Fixes #123" or
"Closes #123" -->
## Type of Change
Select all that apply:
**Code & Documentation:**
- [ ] Bug fix (non-breaking change fixing an issue)
- [x] New feature (non-breaking change adding functionality)
- [ ] Breaking change (fix or feature causing existing functionality to
change)
- [x] Documentation update
**Infrastructure & Configuration:**
- [ ] GitHub Actions workflow
- [ ] Linting configuration (markdown, PowerShell, etc.)
- [ ] Security configuration
- [ ] DevContainer configuration
- [ ] Dependency update
**AI Artifacts:**
- [ ] Reviewed contribution with `prompt-builder` agent and addressed
all feedback
- [ ] Copilot instructions (`.github/instructions/*.instructions.md`)
- [ ] Copilot prompt (`.github/prompts/*.prompt.md`)
- [ ] Copilot agent (`.github/agents/*.agent.md`)
> **Note for AI Artifact Contributors**:
>
> - **Agents**: Research, indexing/referencing other project (using
standard VS Code GitHub Copilot/MCP tools), planning, and general
implementation agents likely already exist. Review `.github/agents/`
before creating new ones.
> - **Model Versions**: Only contributions targeting the **latest
Anthropic and OpenAI models** will be accepted. Older model versions
(e.g., GPT-3.5, Claude 3) will be rejected.
> - See [Agents Not
Accepted](../docs/contributing/custom-agents.md#agents-not-accepted) and
[Model Version
Requirements](../docs/contributing/ai-artifacts-common.md#model-version-requirements).
**Other:**
- [x] Script/automation (`.ps1`, `.sh`, `.py`)
- [ ] Other (please describe):
## Sample Prompts (for AI Artifact Contributions)
<!-- If you checked any boxes under "AI Artifacts" above, provide a
sample prompt showing how to use your contribution -->
<!-- Delete this section if not applicable -->
**User Request:**
<!-- What natural language request would trigger this
agent/prompt/instruction? -->
**Execution Flow:**
<!-- Step-by-step: what happens when invoked? Include tool usage,
decision points -->
**Output Artifacts:**
<!-- What files/content are created? Show first 10-20 lines as preview
-->
**Success Indicators:**
<!-- How does user know it worked correctly? What validation should they
perform? -->
For detailed contribution requirements, see:
- **Common Standards**:
[docs/contributing/ai-artifacts-common.md](../docs/contributing/ai-artifacts-common.md)
- Shared standards for XML blocks, markdown quality, RFC 2119,
validation, and testing
- **Agents**:
[docs/contributing/custom-agents.md](../docs/contributing/custom-agents.md)
- Agent configurations with tools and behavior patterns
- **Prompts**:
[docs/contributing/prompts.md](../docs/contributing/prompts.md) -
Workflow-specific guidance with template variables
- **Instructions**:
[docs/contributing/instructions.md](../docs/contributing/instructions.md)
- Technology-specific standards with glob patterns
## GHCP Artifact Maturity
| File | Type | Maturity | Notes |
| ----------------------------------------- | ----- | ---------- |
---------- |
| `.github/skills/video-to-gif/SKILL.md` | Skill | ✅ stable | All builds
|
## Testing
<!-- Describe how you tested these changes -->
## Checklist
### Required Checks
- [x] Documentation is updated (if applicable)
- [x] Files follow existing naming conventions
- [x] Changes are backwards compatible (if applicable)
### AI Artifact Contributions
<!-- If contributing an agent, prompt, or instruction, complete these
checks -->
- [ ] Used `/prompt-analyze` to review contribution
- [ ] Addressed all feedback from `prompt-builder` review
- [ ] Verified contribution follows common standards and type-specific
requirements
### Required Automated Checks
The following validation commands must pass before merging:
- [x] Markdown linting: `npm run lint:md`
- [x] Spell checking: `npm run spell-check`
- [x] Frontmatter validation: `npm run lint:frontmatter`
- [x] Link validation: `npm run lint:md-links`
- [x] PowerShell analysis: `npm run lint:ps`
## Security Considerations
<!-- ⚠️ WARNING: Do not commit sensitive information such as API keys,
passwords, or personal data -->
- [x] This PR does not contain any sensitive or NDA information
- [x] Any new dependencies have been reviewed for security issues
- [x] Security-related scripts follow the principle of least privilege
## Additional Notes
- The video-to-gif skill requires FFmpeg to be installed on the system
- HDR tonemapping requires FFmpeg 4.0+ with zscale filter (libzimg)
support
- Deleted MCP configuration documentation
(`docs/getting-started/mcp-configuration.md`) as it was consolidated
elsewhere
- Test file deletions are intentional; the pure function patterns were
removed from the scripts they tested
🎥 - Generated by Copilot