Each entry:
- Stack IDs: which detected stacks trigger this skill
- Skill: skill name (matches directory name in /mnt/skills/)
- Priority Base: starting priority before signal boosts
- Required: must-load if stack detected, vs nice-to-have
- Companions: skills that should co-load
- Conflicts: skills that should not co-load
Note: document skills are demand-loaded, not stack-loaded. They activate on user
request ("make a presentation") not on repo content. The router keeps them in a
"standby" pool -- not loaded into context, but available for instant load.
These skills should not be co-loaded (pick the one with higher confidence/priority):
Skill A
Skill B
Resolution
flask
fastapi
Higher confidence wins
flask
django
Higher confidence wins
jest
vitest
Higher confidence wins
webpack
vite
Higher confidence wins
npm
yarn
Check lock file
npm
pnpm
Check lock file
yarn
pnpm
Check lock file
react
vue
Both can coexist in monorepo
sqlalchemy
prisma
Both can coexist if different services
Conflict resolution: check if the repo is a monorepo. In monorepos, "conflicting"
skills may serve different packages and should both load. In single-package repos,
pick the one with higher confidence.