Critical: Workflow references broken due to case mismatch
I had Kai do a deep infrastructure audit of PAI and it found several critical issues that break functionality. I've already applied fixes locally but wanted to report them for the public repo:
Issues Found (by Kai autonomously)
- Workflow File References Use Wrong Case
- Skills/Research/SKILL.md and Skills/Art/SKILL.md reference workflows with kebab-case (workflows/claude-research.md)
- Actual files use TitleCase (workflows/ClaudeResearch.md)
- Impact: Workflow routing completely broken for Research and Art skills
- Case Mismatch in Hook Paths
- load-dynamic-requirements.ts references ${PAI_DIR}/commands/ (lowercase)
- update-documentation.ts checks for skills/, hooks/, commands/, agents/ (lowercase)
- Actual directories are TitleCase: Skills/, Hooks/, Commands/, Agents/
- Impact: File lookups fail silently
- Skills Missing Mandatory USE WHEN
- AlexHormoziPitch, Ffuf, and Prompting skills lack USE WHEN in description
- Impact: Claude Code won't auto-activate these skills
Recommended Fixes
All involve updating references to match actual TitleCase file/directory names
Found these issues through automated parallel exploration - Kai launched 5 agents to audit different areas simultaneously and cross-referenced findings.
#226
We independently discovered and fixed these same issues in our local PAI fork. Here's what we found and fixed:
Fixes Applied
1. Directory Renames (TitleCase)
Multiple skills had lowercase workflows/ directories that needed renaming to Workflows/:
- AlexHormoziPitch, Art, BrightData, CreateCLI, Createskill, Ffuf, Observability, Prompting, Research, StoryExplanation
Note: macOS case-insensitive filesystem requires two-step rename:
git mv workflows workflows_tmp && git mv workflows_tmp Workflows
2. Path Reference Fixes
Fixed lowercase path references across skills:
| File | Fix |
|---|---|
Art/SKILL.md + 14 workflows |
Skills/art/tools/ → Skills/Art/tools/ |
Observability/SKILL.md |
Skills/observability/ → Skills/Observability/ (7 occurrences) |
BrightData/README.md |
Directory tree workflows/ → Workflows/ |
CORE/ProsodyGuide.md |
Removed refs to non-existent files |
Createskill/Workflows/*.md |
Template paths workflows/ → Workflows/ |
CORE/HookSystem.md |
skills/CORE/SKILL.md → Skills/CORE/SKILL.md (4 occurrences) |
CORE/HookSystem.md |
${PAI_DIR}/hooks/ → ${PAI_DIR}/Hooks/ (2 occurrences) |
3. YAML Frontmatter Fixes
-
Fabric/SKILL.md:name: fabric→name: Fabric
Issues Filed
We also filed specific issues for official skills that need upstream fixes:
- #231 - AlexHormoziPitch
- #232 - CreateCLI
- #233 - Ffuf
- #234 - Prompting
- #235 - Art
Validation
All tested skills now pass:
- ✓ Valid YAML frontmatter
- ✓ USE WHEN trigger present
- ✓ Directory name matches YAML name
- ✓ TitleCase naming consistent
Happy to contribute a PR if helpful.
I'd opened a separate ticket, but it's a more specific case of this:
Claude Code uses lower case directories by convention, and the switch to Commands/ has broken this, at least on case sensitive OS like Linux.
By changing the name of the directory to commands/ the issue is resolved.
PAI 2.0 Migration Notice
Thank you for reporting this! We've recently released PAI v2.0, which takes a fundamentally different approach from v1.x.
What changed: PAI v1.x tried to mirror the entire Kai system as an installable template. That approach created too many interconnected dependencies—change one piece, and others broke. v2.0 shifts to modular packs: self-contained, independently installable capabilities that work without understanding the whole system.
This issue: Because the architecture is now fundamentally different, we're closing all open v1.x PRs and issues. This isn't us dismissing your report—we appreciate it! The system has changed so significantly that we need to revisit concerns within the new context.
Next steps:
- Read the updated README (especially "The Journey: PAI v1.x → v2.0")
- Check out the new PAI Packs system
- If this issue still exists in 2.0, please open a new issue with context for the new architecture
We're absolutely happy to address these concerns—just within the 2.0 framework. Thanks for your patience! 🙏