-
Notifications
You must be signed in to change notification settings - Fork 125
Description
Problem
The clone-based installation validation scripts (validate-installation.ps1 and validate-installation.sh) check for agents, prompts, and instructions directories but omit .github/skills entirely. A user can receive a "validated successfully" result while skills are missing from their installation.
This is inconsistent with the installer SKILL.md which:
- Lists skills as installable content in Phase 1
- Configures
chat.agentSkillsLocationsin the settings template - References skills throughout the decision matrix and method documentation
Expected Behavior
Validation should check for $basePath/.github/skills alongside the three existing directory checks and report pass/fail status for it.
The experimental collection folder ($basePath/.github/skills/experimental, $basePath/.github/agents/experimental, etc.) is an optional user selection during installation. Validation should check experimental subdirectories only when they are present and report them as informational (not as a failure when absent). The scripts cannot deterministically require experimental because the user may have opted out during the installer's opt-in prompt.
Files to Change
| File | Change |
|---|---|
.github/skills/installer/hve-core-installer/scripts/validate-installation.ps1 |
Add .github/skills to the required directory loop; add conditional check for experimental subdirectories |
.github/skills/installer/hve-core-installer/scripts/validate-installation.sh |
Add .github/skills to the required directory loop; add conditional check for experimental subdirectories |
.github/skills/installer/hve-core-installer/tests/validate-installation.Tests.ps1 |
Update existing tests to include .github/skills in test fixture setup; add new tests for skills directory validation and experimental folder presence/absence scenarios |
Reproduction
Run either validation script against a valid HVE-Core clone. Note that .github/skills is never checked:
# Bash
./scripts/validate-installation.sh 1 ../hve-core
# Output shows agents, prompts, instructions — no mention of skills
# PowerShell
./scripts/validate-installation.ps1 -BasePath ../hve-core -Method 1
# Same: skills directory silently skippedSuggested Fix
PowerShell — expand the directory array:
foreach ($dir in @("$basePath/.github/agents", "$basePath/.github/prompts", "$basePath/.github/instructions", "$basePath/.github/skills")) {Bash — expand the path list:
for path in "$base_path/.github/agents" "$base_path/.github/prompts" "$base_path/.github/instructions" "$base_path/.github/skills"; doExperimental folder — add a conditional informational check after the required directory loop (both scripts):
# PowerShell example
$experimentalDirs = @("$basePath/.github/skills/experimental", "$basePath/.github/agents/experimental")
foreach ($dir in $experimentalDirs) {
if (Test-Path $dir) { Write-Host "✅ Found optional: $dir" }
}# Bash example
for path in "$base_path/.github/skills/experimental" "$base_path/.github/agents/experimental"; do
if [ -d "$path" ]; then echo "✅ Found optional: $path"; fi
doneMissing experimental folders should not set valid=false.
Pester Test Updates
The existing test file at .github/skills/installer/hve-core-installer/tests/validate-installation.Tests.ps1 needs these changes:
- Update all test fixture setup — Every test that creates
.github/agents,.github/prompts, and.github/instructionsdirectories must also create.github/skillsso existing "passes validation" assertions continue to pass. - Add a "Checks skills directory" test — Mirror the existing "Checks agents directory" test: create agents, prompts, and instructions but omit skills, then assert the output matches
Missing.*skills. - Add an "experimental" Context block with at least two tests:
- Passes when
experimentalsubdirectories are absent (no failure reported) - Reports optional directories when
experimentalsubdirectories are present
- Passes when
Additional Context
The installer collection under .github/skills/installer/ should probably be excluded from installation-target validation since it is the installer itself (SKILL.md already excludes it from chat.agentSkillsLocations settings). The check should verify the directory exists at the top level; individual skill collection presence is not required for a passing validation.