Summary
The skill validator (Validate-SkillStructure.ps1) does not recognize Python skill conventions. It treats Python package directories as unrecognized subdirectories (triggering warnings) and flags .py files in scripts/ without companion .ps1 or .sh files as errors. These are structural blockers that must be resolved before a Python skill can pass validation.
Context
Validate-SkillStructure.ps1 (500+ lines) enforces a recognized directory list:
$RecognizedSubdirectories = @('scripts', 'references', 'assets', 'examples', 'tests')
Python skills add directories not on this list (e.g., powerpoint_skill/ as a Python package directory). The validator also expects script files to include at least one .ps1 or .sh file, which conflicts with pure-Python skills that only have .py files in scripts/.
This is a structural blocker for the Python build system series. Without these changes, the skill validator fails on any Python-containing skill, breaking npm run validate:skills and CI validation.
Changes Required
| File |
Change |
scripts/collections/Validate-SkillStructure.ps1 |
Detect pyproject.toml and switch to language-aware validation mode |
scripts/collections/Validate-SkillStructure.ps1 |
Accept Python package directories when a pyproject.toml is present |
scripts/collections/Validate-SkillStructure.ps1 |
Accept .py-only scripts/ directories for Python skills |
The validator should detect the presence of pyproject.toml in a skill root directory and apply Python-aware rules:
- Python package directories (containing
__init__.py) are valid subdirectories
.py files in scripts/ do not require companion .ps1/.sh files
- Standard Python project files (
pyproject.toml, uv.lock, .python-version) are recognized
- Existing validation for non-Python skills remains unchanged
Acceptance Criteria
Dependencies
Related
Summary
The skill validator (
Validate-SkillStructure.ps1) does not recognize Python skill conventions. It treats Python package directories as unrecognized subdirectories (triggering warnings) and flags.pyfiles inscripts/without companion.ps1or.shfiles as errors. These are structural blockers that must be resolved before a Python skill can pass validation.Context
Validate-SkillStructure.ps1(500+ lines) enforces a recognized directory list:Python skills add directories not on this list (e.g.,
powerpoint_skill/as a Python package directory). The validator also expects script files to include at least one.ps1or.shfile, which conflicts with pure-Python skills that only have.pyfiles inscripts/.This is a structural blocker for the Python build system series. Without these changes, the skill validator fails on any Python-containing skill, breaking
npm run validate:skillsand CI validation.Changes Required
scripts/collections/Validate-SkillStructure.ps1pyproject.tomland switch to language-aware validation modescripts/collections/Validate-SkillStructure.ps1pyproject.tomlis presentscripts/collections/Validate-SkillStructure.ps1.py-onlyscripts/directories for Python skillsThe validator should detect the presence of
pyproject.tomlin a skill root directory and apply Python-aware rules:__init__.py) are valid subdirectories.pyfiles inscripts/do not require companion.ps1/.shfilespyproject.toml,uv.lock,.python-version) are recognizedAcceptance Criteria
pyproject.tomlpass validation without false warnings about unrecognized directories__init__.py) are accepted as valid subdirectories.pyfiles inscripts/are valid without requiring.ps1/.shcompanion files for Python skillspyproject.toml,uv.lock, and.python-versionare recognized as valid skill root filesnpm run validate:skillspasses with the PowerPoint skill from PR feat(skills): add PowerPoint automation skill with YAML-driven deck generation #868Dependencies
Related