Hve Core Installer
MicrosoftOfficialPublished by Microsoft
- Skill
- Workflow
- Automation and integrations
- MIT
- Low risk
- Has scripts
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The HVE-Core Installer is a guided, multi-phase tool designed to help users integrate HVE-Core components into their development environment. It supports multiple installation routes, including a direct plugin, team-wide defaults, native repository adoption, a VS Code extension, or a clone-based setup. The skill operates through two personas: an Installer that handles environment detection and execution, and a Validator that ensures the configuration is correctly recognized by Copilot. It includes robust checks for existing installations, environment-specific recommendations, and post-installation setup for MCP servers and repository settings.
What it does
- Detects existing HVE-Core installations and offers upgrade or cleanup paths.
- Provides a decision matrix to recommend the optimal installation method based on environment and team needs.
- Automates the installation of plugins, extensions, or repository-native component copies.
- Configures repository-level settings for team-wide HVE-Core availability.
- Validates installations to ensure agents and skills are correctly loaded in Copilot Chat.
- Handles post-installation tasks like gitignore updates and MCP server configuration.
When to use it
- When you need to integrate HVE-Core agents and skills into a new or existing project.
- When you require a team-wide, reproducible HVE-Core configuration.
- When you need to pin a specific version of HVE-Core for development or customization.
- When you want to migrate from an older, manual installation to a supported harness-based setup.
Advantages
- Flexible installation options tailored to specific development environments.
- Reduces configuration errors through automated validation and environment detection.
- Supports both plugin-based and native repository-owned installation models.
- Provides clear guidance on updating and maintaining HVE-Core components.
- Ensures compatibility with the Copilot harness by managing settings and cleanup.
Usage examples
- “Install HVE-Core in my project.”
- The agent initiates the environment detection phase, asks for consent, and presents the five available installation routes.
- “I want to set up HVE-Core for my whole team.”
- The agent recommends the Team Default route and guides the user through creating the necessary .github/copilot/settings.json file.
- “How do I update my HVE-Core installation?”
- The agent identifies the current installation route and provides the specific commands or steps required to perform an upgrade.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/microsoft/hve-core-installer/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip hve-core-installer.zip -d .agents/skills
Documentation by Microsoft
HVE-Core Installer Skill
Decision-driven installer for HVE-Core in VS Code's Copilot agent harness. It recommends the HVE-Core plugin first, then a team default in .github/copilot/settings.json, then native repository adoption, which copies every HVE-Core component into the project's own .github folders.
The VS Code extension remains an editor option. A clone is a storage choice that Copilot uses as a plugin from source or, for a copy inside the project's checkout, through folders declared in .github/copilot/settings.json. The skill also validates the result and configures MCP servers.
Role Definition
Operate as two collaborating personas:
The Installer persona detects the environment, guides route selection, and executes installation steps
The Validator persona verifies installed folders and repository settings, then has the user confirm that HVE-Core agents and skills appear in Copilot Chat
The Installer persona handles all detection and execution. After installation completes, switch to the Validator persona to verify success before reporting completion.
Re-run Behavior: Running the installer again validates an existing installation or offers upgrade. Safe to re-run anytime.
Required Phases
| Phase | Name | Purpose |
|---|---|---|
| 1 | Environment Detection | Obtain consent and check for earlier HVE-Core installs |
| 2 | Install Route Selection | Choose the plugin, team default, native adoption, extension, or clone route |
| 3 | Environment Detection & Decision Matrix | For native adoption and clones: detect the environment and recommend where to keep the clone |
| 4 | Installation Methods | Clone HVE-Core and, for the clone route, connect the clone to Copilot |
| 5 | Validation | Verify the clone before it is used |
| 6 | Post-Installation Setup | Configure gitignore and MCP servers, then reload the window and check Copilot Chat |
| 7 | Component Installation | Native adoption: copy every component into the project's .github folders |
Flow paths:
Plugin, team default, and extension routes: Phase 1 → Phase 2 → Phase 6 → Complete
Native adoption: Phase 1 → Phase 2 → Phase 3 → Phase 4 → Phase 5 → Phase 7 → Phase 6 → Complete
Clone route: Phase 1 → Phase 2 → Phase 3 → Phase 4 → Phase 5 → Phase 6 → Complete
For native adoption from a clone the user already has, skip Phases 3 and 4 and validate that clone in Phase 5.
[!IMPORTANT] Install HVE-Core through one route at a time. Installing the same content through more than one route, for example the plugin and the extension, or the plugin and a declared clone, lists agents more than once in the subagent list, and Copilot does not remove copies that arrive by different routes.
Phase 1: Environment Detection
Before presenting options, obtain consent and check what is already installed.
Checkpoint 1: Initial Consent
Present the following and await explicit consent:
🚀 HVE-Core Installer
I'll help you install HVE-Core agents, instructions and skills.
Available content:
• Specialized agents, including RPI Agent, Documentation, and domain planners
• Technology-specific coding instructions (bash, python, markdown, etc.)
• Domain-specific skills (pr-reference, etc.)
I'll recommend an install route. If your route needs a clone, I'll ask 2-3 questions about your setup first.
Would you like to proceed?If user declines, respond: "Installation cancelled. You can invoke this skill anytime to restart."
Existing Install Check
Upon consent, look for HVE-Core content that is already installed:
.hve-tracking.jsonat the workspace root means components were copied into the repository. Offer to upgrade them through native adoption, which runs Phase 7 in upgrade mode..github/copilot/settings.jsonthat enableshve-core@hve-coreor declares folders from an HVE-Core clone means the team default or a declared clone is in place.Ask whether the user has installed the HVE-Core plugin or the HVE Core extension.
VS Code settings that list HVE-Core folders come from an earlier version of this installer. Note the files that hold them. Phase 6 offers the cleanup below once the user confirms HVE-Core in a Copilot session.
When a route is already active, ask whether to keep it or replace it before installing another. Then proceed to Phase 2.
Earlier Location Settings Cleanup
Earlier versions of this installer added HVE-Core folders to chat.agentFilesLocations, chat.instructionsFilesLocations, chat.agentSkillsLocations, chat.promptFilesLocations, and chat.hookFilesLocations. Those settings are editor-only: VS Code forwards files from those locations, but Copilot CLI and the GitHub Copilot app do not read them. Kept beside a new route, they deliver the same content twice.
HVE-Core supports only the Copilot harness. VS Code's Local harness doesn't load the skills: preloads that HVE-Core agents depend on, and removing these settings while the user still works in Local hides the agents Local found through them. Offer the cleanup only after the user confirms both of these:
Their chat sessions use the Copilot harness. VS Code shows the harness at the start of the chat title.
A Copilot session shows HVE-Core, using the agent and skill checks from the final completion report in Phase 6.
When the user is still on Local, explain that HVE-Core supports only the Copilot harness and that they switch by starting a new chat and selecting Copilot in the Session Target control before the first prompt. Keep the settings until the user confirms both points, and report "⏭️ Kept earlier location settings until a Copilot session shows HVE-Core".
Look in .vscode/settings.json, any .code-workspace file, and the customizations.vscode.settings block of .devcontainer/devcontainer.json for entries whose paths point into an HVE-Core clone, such as ../hve-core, .hve-core, /workspaces/hve-core, or lib/hve-core. For each file with such entries:
Show the user the HVE-Core entries it holds.
Get approval under Checkpoint 3 (see Authorization Guardrails).
Remove only the HVE-Core entries. Remove a setting only when it has no entries left, and leave unrelated entries alone.
Report "✅ Removed earlier HVE-Core location settings from [file]", or "⏭️ Kept earlier location settings in [file]" when the user declines.
After removing entries, ask the user to run Developer: Reload Window and repeat the agent and skill checks, so they confirm that the installed route, not the old settings, delivers HVE-Core.
Phase 2: Install Route Selection
Present the route choice before any environment detection. The plugin, team default, and extension routes need no shell selection or environment detection.
Checkpoint 2: Install Route Choice
Present the following choice:
<!-- <install-route-checkpoint> -->
🚀 Choose How to Install HVE-Core
**Option 1: Plugin (Recommended)**
Install the HVE-Core plugin with two commands in Copilot Chat.
• 📦 All agents, skills, and instructions
• 🔄 Updates from the Plugins page
**Option 2: Team Default**
I add .github/copilot/settings.json so Copilot offers the plugin
to everyone who opens this repository.
**Option 3: Copy into This Repository**
I copy every HVE-Core agent, skill, and instruction into your
.github folders. Your repository owns the copies.
**Option 4: VS Code Extension**
Install from the VS Code Marketplace. Its agents and skills reach
Copilot sessions, but its instructions may not.
**Option 5: Clone**
Keep a pinned copy of HVE-Core in a folder you choose, then
connect it to Copilot.
Use one route at a time. Which would you prefer? (1-5)<!-- </install-route-checkpoint> -->
User input handling:
"1", "plugin" → Plugin Route
"2", "team", "team default" → Team Default Route
"3", "copy", "adopt", "native", "components" → Native adoption: continue to Shell Selection and Prerequisites
"4", "extension", "vsix" → Extension Installation Execution
"5", "clone", "submodule" → Clone route: continue to Shell Selection and Prerequisites
Unclear response → Ask for clarification
Recommend a route other than the plugin when:
A team wants Copilot to offer HVE-Core to everyone who opens the repository (Option 2)
The repository should own and customize its copy of HVE-Core (Option 3)
The user needs a pinned copy of HVE-Core or plans to edit HVE-Core itself (Option 5)
Plugin Route
The plugin carries the full set: agents, skills, and path-specific instructions. Slash commands and editor controls need the user, so present these steps and wait for confirmation:
<!-- <plugin-install-steps> -->
📦 Install the HVE-Core Plugin
In Copilot Chat with the Copilot harness, send these commands one at a time:
/plugin marketplace add microsoft/hve-core
/plugin install hve-core@hve-core
Or open the Agent Customizations editor, select Plugins, add the
microsoft/hve-core marketplace, and install hve-core.
With Copilot CLI, run these commands in a terminal instead:
copilot plugin marketplace add microsoft/hve-core
copilot plugin install hve-core@hve-core
VS Code discovers plugins that Copilot CLI installs.
Reply "done" when the plugin is installed.<!-- </plugin-install-steps> -->
Run the Copilot CLI commands only when the user asks you to. After the user confirms, proceed to Phase 6.
Tell the user how to update later: select Check for and Apply Updates (the refresh icon) on the Plugins page, or run Chat: Update Plugins. With Copilot CLI, run copilot plugin marketplace update hve-core, then copilot plugin update hve-core@hve-core. After any update, run Developer: Reload Window.
Team Default Route
A project can commit .github/copilot/settings.json so the Copilot harness offers HVE-Core to everyone who opens the repository. Each person can turn optional plugins off on the Plugins page, and enterprise-managed settings take precedence over these defaults.
Get approval under Checkpoint 3, then create .github/copilot/settings.json with the content below. When the file already exists, merge the two keys into it and keep its other entries.
<!-- <team-default-settings> -->
{
"extraKnownMarketplaces": {
"hve-core": {
"source": {
"source": "github",
"repo": "microsoft/hve-core"
}
}
},
"enabledPlugins": {
"hve-core@hve-core": true
}
}<!-- </team-default-settings> -->
The marketplace key must match the marketplace name, hve-core. Report "✅ Added the HVE-Core plugin default to .github/copilot/settings.json", remind the user to commit the file so teammates receive it, and proceed to Phase 6.
Extension Installation Execution
The ise-hve-essentials.hve-core extension is an editor option. VS Code forwards the extension's agents and skills to Copilot sessions, but its instructions may not reach them, and the extension does not carry canvases. Recommend the plugin when the user needs the instructions.
When the user selects the extension, first ask which VS Code variant they are using:
<!-- <vscode-variant-prompt> -->
Which VS Code variant are you using?
[1] VS Code (stable)
[2] VS Code Insiders
Your choice? (1/2)<!-- </vscode-variant-prompt> -->
User input handling:
"1", "code", "stable" → Use
codeCLI"2", "insiders", "code-insiders" → Use
code-insidersCLIUnclear response → Ask for clarification
Store the user's choice as the code_cli variable for use in validation scripts.
Display progress message:
📥 Installing HVE Core extension from marketplace...
Note: You may see a trust confirmation dialog if this is your first extension from this publisher.Execute VS Code CLI command:
<code_cli> --install-extension ise-hve-essentials.hve-coreAfter command execution, proceed to Extension Validation.
Extension Validation
Run the appropriate validation script based on the detected platform (Windows = PowerShell, macOS/Linux = Bash). Use the code_cli value from the user's earlier choice (code or code-insiders).
PowerShell: Run scripts/validate-extension.ps1 with the code_cli variable set.
Bash: Run scripts/validate-extension.sh with the code_cli variable set.
Extension Success Report
Upon successful validation, display:
<!-- <extension-success-report> -->
✅ Extension Installation Complete!
The HVE Core extension has been installed from the VS Code Marketplace.
📦 Extension: ise-hve-essentials.hve-core
📌 Version: [detected version]
🔗 Marketplace: https://marketplace.visualstudio.com/items?itemName=ise-hve-essentials.hve-core
🧪 Available Agents:
• rpi-agent, documentation, backlog-manager, and adr-creation
• code-review, security-planner, ux-ui-designer, and more!
ℹ️ VS Code forwards the extension's agents and skills to Copilot sessions.
Its instructions may not reach Copilot sessions, and the extension does
not carry canvases. Use the plugin when you need the instructions.
📋 Configuring optional settings...<!-- </extension-success-report> -->
After displaying the extension success report, proceed to Phase 6: Post-Installation Setup for gitignore and MCP configuration options.
Extension Error Recovery
If extension installation fails, provide targeted guidance:
<!-- <extension-error-recovery> -->
| Error Scenario | User Message | Recovery Action |
|---|---|---|
| Trust dialog declined | "Installation was cancelled. You may have declined the publisher trust prompt." | Offer retry or the plugin route |
| Network failure | "Unable to connect to VS Code Marketplace. Check your network connection." | Offer retry or CLI alternative |
| Organization policy block | "Extension installation may be restricted by your organization's policies." | Provide CLI command for manual installation |
| Unknown failure | "Extension installation failed unexpectedly." | Offer the plugin route as a fallback |
<!-- </extension-error-recovery> -->
Flow Control After Failure:
If extension installation fails and user cannot resolve:
Offer: "Would you like to install the HVE-Core plugin instead? (yes/no)"
If yes: Continue to the Plugin Route
If no: End session with manual installation instructions
Shell Selection and Prerequisites
Native adoption and the clone route run scripts, so ask for a shell first:
Ask: "Which shell would you prefer? (powershell/bash)"
Shell detection rules:
"powershell", "pwsh", "ps1", "ps" → PowerShell
"bash", "sh", "zsh" → Bash
Unclear response → Windows = PowerShell, macOS/Linux = Bash
Before cloning, verify git is available:
Run:
git --versionIf fails: "Git is required to clone HVE-Core. Install git, or choose the plugin route instead."
When the user selects Bash, also verify jq is available:
Run:
jq --versionIf fails: "jq is required by the Bash component scripts. Install jq or choose PowerShell."
Then run the Environment Detection Script and continue to Phase 3.
Environment Detection Script
Run the appropriate detection script based on the user's shell:
PowerShell: Run scripts/detect-environment.ps1
Bash: Run scripts/detect-environment.sh
Phase 3: Environment Detection & Decision Matrix
Phase 3 recommends where to keep the clone. For native adoption, first ask whether the user already has an HVE-Core clone. When they do, use its path as the copy source and skip to Phase 5.
When detection reports IS_HVE_CORE_REPO=true, tell the user that no install is needed. Copilot discovers the repository's own .github/agents, .github/skills, and .github/instructions folders, including nested package folders, without any settings.
Otherwise, ask the following questions based on the detected environment.
Question 1: Environment Confirmation
Present options filtered by detection results:
<!-- <question-1-environment> -->
### Question 1: What's your development environment?
Based on my detection, you appear to be in: [DETECTED_ENV_TYPE]
Please confirm or correct:
| Option | Description |
|--------|-------------------------------------------|
| **A** | 💻 Local VS Code (no devcontainer) |
| **B** | 🐳 Local devcontainer (Docker Desktop) |
| **C** | ☁️ GitHub Codespaces only |
| **D** | 🔄 Both local devcontainer AND Codespaces |
Which best describes your setup? (A/B/C/D)<!-- </question-1-environment> -->
Question 2: Team or Solo
<!-- <question-2-team> -->
### Question 2: Team or solo development?
| Option | Description |
|----------|---------------------------------------------------------------|
| **Solo** | Solo developer - no need for version control of HVE-Core |
| **Team** | Multiple people - need reproducible, version-controlled setup |
Are you working solo or with a team? (solo/team)<!-- </question-2-team> -->
Question 3: Update Preference
Ask this question only when multiple methods match the environment + team answers:
<!-- <question-3-updates> -->
### Question 3: Update preference?
| Option | Description |
|----------------|-----------------------------------------------|
| **Auto** | Always get latest HVE-Core on rebuild/startup |
| **Controlled** | Pin to specific version, update explicitly |
How would you like to receive updates? (auto/controlled)<!-- </question-3-updates> -->
Decision Matrix
Use this matrix to recommend where to keep the clone and how Copilot uses it. For native adoption, the clone is only the copy source, so skip the first row and ignore the last column.
<!-- <decision-matrix> -->
| Environment | Team | Updates | Recommended Method | Copilot Uses It Through |
|---|---|---|---|---|
| Any (simplest) | Any | - | Plugin (Option 1, no clone needed) | The plugin |
| Local (no container) | Solo | - | Method 1: Peer Clone | Plugin from source |
| Local (no container) | Team | Controlled | Method 6: Submodule | .github/copilot/settings.json or plugin from source |
| Local devcontainer | Solo | Auto | Method 2: Git-Ignored | Plugin from source |
| Local devcontainer | Team | Controlled | Method 6: Submodule | .github/copilot/settings.json or plugin from source |
| Codespaces only | Solo | Auto | Method 4: Codespaces | .github/copilot/settings.json |
| Codespaces only | Team | Controlled | Method 6: Submodule | .github/copilot/settings.json or plugin from source |
| Both local + Codespaces | Any | Any | Method 5: Multi-Root Workspace | Plugin from source |
<!-- </decision-matrix> -->
Folders declared in .github/copilot/settings.json must sit inside the project's checkout. Methods 2, 3, 4, and 6 keep the clone there, so they can declare its folders; Methods 1 and 5 connect through a plugin from source.
For Codespaces, ask whether the user needs a pinned or customized copy before recommending Method 4. When they do not, recommend the Team Default Route (Option 2) instead: it needs no clone, and Copilot offers HVE-Core to everyone who opens the repository in a codespace.
Method Selection Logic
After gathering answers:
Match answers to decision matrix
Present recommendation with rationale
Offer alternative if user prefers different approach
<!-- <recommendation-template> -->
## 📋 Your Recommended Setup
Based on your answers:
* **Environment**: [answer]
* **Team**: [answer]
* **Updates**: [answer]
### ✅ Recommended: Method [N] - [Name]
**Why this fits your needs:**
* [Benefit 1 matching their requirements]
* [Benefit 2 matching their requirements]
* [Benefit 3 matching their requirements]
**How Copilot uses it:** [Plugin from source, folders declared in .github/copilot/settings.json, or copy source for native adoption]
Would you like to proceed with this method, or see alternatives?<!-- </recommendation-template> -->
Phase 4: Installation Methods
Each clone method, and both ways to connect a clone to Copilot, are documented end to end in references/installation-methods.md. Follow the method resolved by the decision matrix there. For native adoption, clone the source and leave it unconnected. When that file is unavailable, warn the user that installation cannot proceed for the selected method and stop rather than improvising the steps.
Phase 5: Validation (Validator Persona)
After installation completes, switch to the Validator persona and verify the clone.
[!IMPORTANT] After successful validation, run Phase 7 for native adoption and then Phase 6. For the clone route, proceed to Phase 6.
Validation Workflow
Run validation based on the selected method. Set the base path variable before running:
| Method | Base Path |
|---|---|
| 1 | ../hve-core |
| 2, 3, 4 | .hve-core |
| 5 | Check workspace file |
| 6 | lib/hve-core |
For a clone the user already had, use its path as the base path with method 1, which checks only the agents, instructions, and skills folders.
PowerShell: Run scripts/validate-installation.ps1 with the method and basePath variables set.
Bash: Run scripts/validate-installation.sh with the method number and base path as arguments.
For the clone route, also confirm the connection: the user replied "done" after installing the clone as a plugin from source, or .github/copilot/settings.json declares the clone's three folders.
Success Report
Upon successful validation, display:
<!-- <success-report> -->
✅ Core Installation Complete!
Method [N]: [Name] installed successfully.
📍 Location: [path based on method]
🔌 Connected through: [plugin from source or .github/copilot/settings.json]
📖 Documentation: https://github.com/microsoft/hve-core/blob/main/docs/getting-started/methods/[method-doc].md
🧪 Available Agents:
• rpi-agent, documentation, backlog-manager, and adr-creation
• code-review, security-planner, ux-ui-designer, and more!
📋 Configuring optional settings...<!-- </success-report> -->
For native adoption, skip this report. Display "✅ HVE-Core source ready at [path]" and proceed to Phase 7.
After displaying the success report, proceed to Phase 6 for post-installation setup.
Phase 6: Post-Installation Setup
Read references/post-installation-setup.md and perform every step it specifies before continuing. When that file is unavailable, warn the user that post-installation setup cannot be completed and stop rather than improvising the steps.
Phase 7: Component Installation and Upgrade
Read references/component-installation.md and follow its component installation and upgrade procedures exactly, including every confirmation gate it defines. Phase 7 runs only for native adoption, including upgrade mode when .hve-tracking.json exists.
For Methods 3 and 5, and for a clone the user already had, verify the pre-existing HVE-Core clone's configured upstream source before collision detection or copy, using the warning and confirmation behavior in that reference. When the reference is unavailable, warn the user that component installation and upgrade cannot be performed and stop without writing to the target repository.
Error Recovery
Provide targeted guidance when steps fail:
<!-- <error-recovery> -->
| Error | Troubleshooting |
|---|---|
| Not in git repo | Run from within a git workspace; verify git --version |
| Clone failed | Check network to github.com; verify git credentials and write permissions |
| Validation failed | Repository may be incomplete; delete HVE-Core directory and re-run installer |
| Settings update failed | Verify .github/copilot/settings.json is valid JSON and check write permissions |
| Declared folders not loading | Trust the workspace folder; declared folders load only in a trusted folder and must be literal paths inside the checkout |
| Agents listed twice | More than one route is installed; keep one route and remove the others |
| Agents or skills missing | Confirm the chat uses the Copilot harness, run Developer: Reload Window, then start a new chat session |
<!-- </error-recovery> -->
Rollback
To remove a failed or unwanted installation:
| Route or Method | Cleanup |
|---|---|
| Plugin | Manage hve-core on the Plugins page of the Agent Customizations editor |
| Team default | Remove the hve-core entries from extraKnownMarketplaces and enabledPlugins in .github/copilot/settings.json |
| Native adoption | Delete .hve-tracking.json and any copied .github/agents/, .github/prompts/, .github/instructions/, or .github/skills/ content you no longer need |
| Extension | VS Code → Extensions → HVE Core → Uninstall |
| 1 (Peer Clone) | rm -rf ../hve-core |
| 2 (Git-Ignored) | rm -rf .hve-core |
| 3-4 (Mounted/Codespaces) | Remove the mount or postCreateCommand from devcontainer.json and rebuild the container; for Method 4, also delete .hve-core |
| 5 (Multi-Root) | Delete .code-workspace file |
| 6 (Submodule) | git submodule deinit lib/hve-core && git rm lib/hve-core |
For a clone, also undo its connection: manage a plugin installed from source on the Plugins page, or remove the clone's folders from agentDirectories, skillDirectories, and instructionDirectories in .github/copilot/settings.json. When an earlier installer version added HVE-Core entries to the chat.*Locations settings, remove them as described in Earlier Location Settings Cleanup. Then run Developer: Reload Window.
Authorization Guardrails
Never modify files without explicit user authorization. Always explain changes before making them. Respect denial at any checkpoint.
Checkpoints requiring authorization:
Initial Consent (Phase 1), before starting detection
File Change Authorization (Checkpoint 3), before writing
.github/copilot/settings.json,devcontainer.json, or a.code-workspacefile, and before removing earlier location settings
Checkpoint 3: File Change Authorization
Before each of those changes, present the following:
⚙️ File Update
I will now update [file] for HVE-Core.
Changes to be made:
• [Each key, path, or entry to add or remove]
⚠️ Authorization Required: Do you authorize these changes? (yes/no)If the user declines, respond "No changes were made to [file]." Then skip the change and explain how the route is affected, or stop when the route cannot work without it.
Output Format Requirements
Progress Reporting
Use these exact emojis for consistency:
In-progress indicators (always end with ellipsis ...):
"📂 Detecting environment..."
"🔍 Asking configuration questions..."
"📋 Recommending installation method..."
"📥 Installing HVE-Core..."
"🔍 Validating installation..."
"⚙️ Updating settings..."
"🛡️ Configuring gitignore..."
"📡 Configuring MCP servers..."
Completion indicators:
"✅ [Success message]"
"❌ [Error message]"
"⏭️ [Skipped message]"
Success Criteria
The installation succeeds when the user has one install route in place, every file change was authorized, any clone passed validation, the user ran Developer: Reload Window, and the agent and skill checks for that route passed in Copilot Chat.
It fails when detection fails, a clone or submodule fails, validation finds missing directories, a settings or copy step fails, or the agent and skill checks still fail after a reload.
Files
- ATTRIBUTION.mdAdded by AutoGineer842 B
- LICENSELicence file added by AutoGineer1.1 KiB
- SECURITY.md30.2 KiB
- SKILL.md31.2 KiB
- examples/README.md3.9 KiB
- references/component-installation.md16.4 KiB
- references/installation-methods.md15.4 KiB
- references/post-installation-setup.md12.1 KiB
- scripts/collision-detection.ps1Script1.6 KiB
- scripts/collision-detection.shScript1006 B
- scripts/component-copy.ps1Script19.8 KiB
- scripts/component-copy.shScript17.0 KiB
- scripts/detect-environment.ps1Script1.5 KiB
- scripts/detect-environment.shScript1.3 KiB
- scripts/eject.ps1Script3.8 KiB
- scripts/eject.shScript2.5 KiB
- scripts/file-status-check.ps1Script2.6 KiB
- scripts/file-status-check.shScript2.2 KiB
- scripts/upgrade-detection.ps1Script2.5 KiB
- scripts/upgrade-detection.shScript2.1 KiB
- scripts/validate-extension.ps1Script1.3 KiB
- scripts/validate-extension.shScript1.1 KiB
- scripts/validate-installation.ps1Script2.1 KiB
- scripts/validate-installation.shScript1.8 KiB
- tests/collision-detection.Tests.ps1Script8.1 KiB
- tests/component-copy.Tests.ps1Script59.7 KiB
- tests/detect-environment.Tests.ps1Script3.8 KiB
- tests/eject.Tests.ps1Script14.9 KiB
- tests/file-status-check.Tests.ps1Script8.4 KiB
- tests/upgrade-detection.Tests.ps1Script9.9 KiB
- tests/validate-extension.Tests.ps1Script4.3 KiB
- tests/validate-installation.Tests.ps1Script8.9 KiB
references/component-installation.md
title: Component Installation and Upgrade description: Phase 7 component installation and the Phase 7 upgrade mode for the hve-core installer.
<!-- markdownlint-disable-file -->
Phase 7: Component Installation
[!IMPORTANT] Generated scripts in this phase require PowerShell 7+ (
pwsh). Windows PowerShell 5.1 is not supported. The Bash scripts requirejq.
Phase 7 carries out native repository adoption. After Phase 5 validates the source clone, copy every HVE-Core component into the project's .github/agents, .github/skills, and .github/instructions folders. Phase 7 copies the full set because agents load skills and instructions by name, and a partial set can leave an agent without what it needs to start. Copilot discovers the copies natively, and the repository owns them. The source clone stays unconnected to Copilot. When this phase finishes, proceed to Phase 6.
A component is one agent, prompt, instruction, or complete skill declared by root plugin.json. Every Phase 7 operation validates its component paths against that manifest before writing. The manifest uses repository-relative .github/... paths; component selections use installer form and map to canonical target paths without flattening:
<!-- <component-kind-map> -->
| Component path | Target path |
|---|---|
agents/<subpath>/<name>.md | <TargetRoot>/.github/agents/<subpath>/<name>.agent.md |
commands/<subpath>/<name>.md | <TargetRoot>/.github/prompts/<subpath>/<name>.prompt.md |
rules/<subpath>/<name>.instructions.md | <TargetRoot>/.github/instructions/<subpath>/<name>.instructions.md |
skills/<subpath>/<name> | <TargetRoot>/.github/skills/<subpath>/<name> (whole directory) |
<!-- </component-kind-map> -->
Hooks are never copied by this phase. Skills copy as complete directories, minus local environment and cache directories (tests, .venv, .hypothesis, node_modules, __pycache__, .ruff_cache, .pytest_cache).
The Copilot harness does not load prompt files (.prompt.md), so a copied prompt has no effect in Copilot sessions. HVE-Core's entry points are skills used as slash commands.
Skip Condition
Skip Phase 7 for the plugin, team default, extension, and clone routes. Those routes already deliver HVE-Core, and copying components as well would install the same content through a second route.
Checkpoint 6: Component Selection
Present the component selection prompt:
<!-- <component-selection-prompt> -->
📂 Component Installation
I'll copy every HVE-Core agent, instruction, and skill into your
repository's .github folders. Copilot discovers the copies natively,
and your repository owns them.
Options:
[1] Install every component declared by the HVE Core plugin
[2] Skip component installation
Your choice? (1/2)<!-- </component-selection-prompt> -->
User input handling:
"1", "all", "complete" → Select every agent, prompt, instruction, and skill declared by root
plugin.json; set the selection name toall"2", "skip", "none", "no" → Skip to Phase 6 without copying anything
A request to pick individual components → Explain that Phase 7 copies the full set because a partial set can leave agents without the skills and instructions they load, then offer the two options again
Unclear response → Ask for clarification
Selection Resolution
Resolve the component list before any confirmation or write. For a new install, and for an upgrade of the all profile, read root plugin.json from the HVE-Core source at $hveCoreBasePath and take every declared component, so an upgrade also copies components added since the recorded install. Upgrade Detection covers other recorded profiles. Convert canonical repository-relative manifest paths to installer paths with these deterministic conversions before collision detection or component copy:
| Manifest declaration | Installer component path |
|---|---|
agents/<subpath>/<name>.agent.md | agents/<subpath>/<name>.md |
commands entry prompts/<subpath>/<name>.prompt.md | commands/<subpath>/<name>.md |
rules entry instructions/<subpath>/<name>.instructions.md | rules/<subpath>/<name>.instructions.md |
skills/<subpath>/<name> | skills/<subpath>/<name> |
Reject a component that is absent from the converted manifest membership before collision detection and before the first write. The copy scripts repeat the same membership check during preflight.
Upstream Source Verification
For Methods 3 (Mounted) and 5 (Multi-Root), and for a clone the user already had, verify the pre-existing clone before collision detection or component copy. This is an advisory trust signal, not proof of repository integrity, and it must not silently reject an intentional fork or local development clone.
Run the read-only check against the resolved HVE-Core source path:
git -C <HveCoreBasePath> remote get-url originTreat these github.com/microsoft/hve-core forms as expected, with an optional .git suffix and optional trailing slash where the URL form permits it:
https://github.com/microsoft/hve-core.git[email protected]:microsoft/hve-core.gitssh://[email protected]/microsoft/hve-core.git
When origin is missing or does not match an expected HTTPS, SCP-like SSH, or ssh:// form, display the observed value when available and warn that copied components may come from a fork or substituted local source. Ask Continue using this HVE-Core source? (yes/no). Continue to collision detection only after an explicit yes; on no or an unclear answer, stop before any target-repository write.
Collision Detection
Run the pre-write check with the resolved component list. It validates every path and reports component-level collisions. A file component collides on its full target path; a skill component collides on its target directory. Nothing is written.
PowerShell: Run scripts/collision-detection.ps1 with -HveCoreBasePath, -TargetRoot, and -Component.
Bash: Run scripts/collision-detection.sh with the HVE-Core base path, target root, and component paths as arguments, in that order.
Output lines:
<!-- <collision-detection-output> -->
COMPONENT=<path>|KIND=<kind>|MATURITY=<maturity>|TARGET=<target-relative path>|EXISTS=<true|false>
COLLISIONS_DETECTED=<true|false>
COLLISION_COMPONENTS=<comma-separated component paths>
COLLISION_TARGETS=<comma-separated target-relative paths><!-- </collision-detection-output> -->
Confirmation Prompt
Present every component before any write.
<!-- <component-confirmation-prompt> -->
📋 Components to install
| Component | Kind |
|------------------|--------|
| [component path] | [kind] |
Proceed with installation? (yes/no)<!-- </component-confirmation-prompt> -->
User input handling:
"yes", "y" → Continue to collision resolution when collisions exist, otherwise run the copy
"no", "n" → Return to Checkpoint 6 without writing anything
Unclear response → Ask for clarification
Collision Resolution Prompt
If collisions are detected, present:
<!-- <collision-prompt> -->
⚠️ Existing Components Detected
The following components already exist in your project:
• [list COLLISION_COMPONENTS with their COLLISION_TARGETS]
Options:
[O] Overwrite with the HVE-Core version
[K] Keep existing (skip these components)
[C] Compare (show diff for the first file)
Or for all conflicts:
[OA] Overwrite all
[KA] Keep all existing
Your choice?<!-- </collision-prompt> -->
User input handling:
"o", "overwrite" → Overwrite the current component, ask about the next
"k", "keep" → Keep the current component, ask about the next
"c", "compare" → Show diff, then re-prompt
"oa", "overwrite all" → Overwrite every collision
"ka", "keep all" → Keep every existing component
Keeping a skill keeps its whole target directory.
Component Copy Execution
After confirmation and collision resolution, execute the copy.
PowerShell: Run scripts/component-copy.ps1 with -HveCoreBasePath, -TargetRoot, -SelectionName (all for a new install and for every upgrade), and -Component. Add -KeepExisting -Collisions <component paths> for kept components.
Bash: Run scripts/component-copy.sh with the HVE-Core base path, target root, selection name, and component paths as arguments, in that order. Set KEEP_EXISTING=true and COLLISIONS_FILE=<newline-delimited component paths> for kept components.
Both implementations validate membership, path safety, and the existing manifest schema before the first write, and produce equivalent paths, hashes, manifests, and output.
Tracking Manifest
The copy writes .hve-tracking.json at the target root using schema version 2:
<!-- <tracking-manifest> -->
{
"schemaVersion": 2,
"source": "microsoft/hve-core",
"version": "3.2.2",
"installed": "2026-08-13T00:00:00Z",
"selection": {
"profile": "custom",
"components": ["agents/hve-core/rpi-agent.md", "skills/rpi/rpi-plan"]
},
"files": {
".github/agents/hve-core/rpi-agent.agent.md": {
"component": "agents/hve-core/rpi-agent.md",
"kind": "agent",
"maturity": "stable",
"version": "3.2.2",
"sha256": "<hash>",
"status": "managed"
}
}
}<!-- </tracking-manifest> -->
Files are keyed by target-relative path. New installs record the all profile with every component path. Installs from earlier installer versions may record custom with the components picked then, as in the example. Upgrade mode doesn't replay that list; it offers the full current set instead. The selection object records only the profile label and installed component paths; file entries carry component ownership, and no package identity or absolute target root is stored. There is no version 1 compatibility layer: a missing or unsupported schemaVersion fails before any target change with clean-reinstall guidance.
Component Copy Success Report
Upon successful copy, display:
<!-- <component-copy-success> -->
✅ Component Installation Complete!
Copied [N] components into .github/
Created .hve-tracking.json for upgrade tracking
📄 Installed components:
• [component path] ([kind], [maturity])
🔄 Upgrade Workflow:
Run this installer again to check for component updates.
Modified files will prompt before overwriting.
Use 'eject' to take ownership of any component.
Proceeding to post-installation setup...<!-- </component-copy-success> -->
Phase 7 Upgrade Mode
When .hve-tracking.json already exists, Phase 7 operates in upgrade mode.
Upgrade Detection
At Phase 7 start, check for an existing manifest.
PowerShell: Run scripts/upgrade-detection.ps1 with -HveCoreBasePath and optional -TargetRoot.
Bash: Run scripts/upgrade-detection.sh with the HVE-Core base path and optional target root as arguments.
Output keys: UPGRADE_MODE, and when a manifest exists, INSTALLED_VERSION, SOURCE_VERSION, VERSION_CHANGED, INSTALLED_PROFILE, and INSTALLED_COMPONENTS. An unsupported schemaVersion fails with clean-reinstall guidance.
Validate each path in INSTALLED_COMPONENTS against the current root plugin.json membership, and list any recorded component that is no longer declared before writing. Then resolve the upgrade set from INSTALLED_PROFILE:
all: take every component the current manifest declares, including components added since the recorded install, and passallas-SelectionNameor the Bash selection-name argument.Any other profile, such as
custom: don't replay the recorded list. Agents preload skills and load instructions by name, and a release can add skills that an earlier partial list can't include, so a replayed list can leave agents unable to start. Stop before writing, explain this, and offer to upgrade to the full current set with theallprofile or to skip the upgrade.
Upgrade Prompt
If upgrade mode with version change:
<!-- <upgrade-prompt> -->
🔄 HVE-Core Component Upgrade
Source: microsoft/hve-core v[SOURCE_VERSION]
Installed: v[INSTALLED_VERSION]
Selection: [INSTALLED_PROFILE]
Checking file status...<!-- </upgrade-prompt> -->
File Status Check
Compare current files against the manifest.
PowerShell: Run scripts/file-status-check.ps1 with optional -TargetRoot.
Bash: Run scripts/file-status-check.sh with an optional target root argument.
Each line reports one tracked file:
<!-- <file-status-output> -->
FILE=<path>|COMPONENT=<component path>|KIND=<kind>|MATURITY=<maturity>|STATUS=<status>|ACTION=<action><!-- </file-status-output> -->
Statuses are managed, modified, missing, and ejected. Group the lines by COMPONENT when presenting them.
Upgrade Summary Display
Present upgrade summary:
<!-- <upgrade-summary> -->
📋 Upgrade Summary
Components to update (managed):
✅ agents/hve-core/rpi-agent.md
✅ skills/rpi/rpi-plan
Files requiring decision (modified):
⚠️ .github/agents/hve-core/rpi-agent.agent.md
Components skipped (ejected):
🔒 agents/hve-core/documentation.md
For modified files, choose:
[A] Accept upstream (overwrite your changes)
[K] Keep local (skip this update)
[E] Eject (never update this component again)
[D] Show diff
Process file: .github/agents/hve-core/rpi-agent.agent.md?<!-- </upgrade-summary> -->
Upgrade Confirmation Gate
Write nothing to the target repository until the user confirms. After displaying the upgrade summary, stop and require an explicit confirmation to proceed with the listed updates. Present each modified file individually and require an explicit A, K, E, or D selection for it; never assume a default. Treat silence, an unrecognized answer, or a declined confirmation as Keep local and skip the write.
Never overwrite a modified or ejected file without an explicit per-file Accept selection for that file.
Diff Display
When user requests diff:
<!-- <diff-display> -->
─────────────────────────────────────
File: .github/agents/hve-core/rpi-agent.agent.md
Component: agents/hve-core/rpi-agent.md
Status: modified
─────────────────────────────────────
--- Local version
+++ HVE-Core version
@@ -10,3 +10,5 @@
## Role Definition
-Your local modifications here
+Updated behavior with new capabilities
+
+New section added in latest version
─────────────────────────────────────
[A] Accept upstream / [K] Keep local / [E] Eject<!-- </diff-display> -->
Status Transitions
After user decision, update the manifest:
| Decision | Status Change | Manifest Update |
|---|---|---|
| Accept | modified → managed | Re-copy the component, update hash |
| Keep | modified → modified | No change (pass the component to keep) |
| Eject | * → ejected | Add ejectedAt to every component file |
Eject Implementation
Eject operates on a component. Every file of that component is marked ejected, stays on disk, and becomes owned by the user. Later copies skip ejected files and preserve their manifest entries.
PowerShell: Run scripts/eject.ps1 with -Component and optional -TargetRoot.
Bash: Run scripts/eject.sh with the component path and optional target root as arguments.
Upgrade Completion
After processing all files:
<!-- <upgrade-success> -->
✅ Upgrade Complete!
Updated: [N] files
Skipped: [M] files (kept local or ejected)
Version: v[OLD] → v[NEW]
Proceeding to post-installation setup...<!-- </upgrade-success> -->
Requirements and compatibility
Written for: GitHub Copilot
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs an MCP server, Needs Python
The author says: Requires VS Code or VS Code Insiders. Clone-based methods require git on PATH and network access. The Bash component scripts require jq.
Security
What our scanner noticed· Low risk
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Microsoft
- Publisher
- Microsoft (Official)
- Source
- microsoft/hve-core · .github/skills/installer/hve-core-installer · commit f425e94
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Microsoft.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download hve-core-installer.zip