Thanks for helping improve Skill Router. Keep changes focused and preserve the router's agent-neutral core.
python3 skill.py sync --root .
python3 skill.py validate --root .
python3 tests/run_tests.py
python3 skill.py benchmarkWhen changing routing behavior, add a regression case and include the relevant --debug output in the pull request description. Edit source manifests, not generated registry files.
A new skill belongs under skills/<name>/ in a target agent repository and should contain SKILL.md plus manifest.json. Use templates/manifest.json; provide positive and negative boundaries, objects, and actions so overlapping skills remain safe to route.
Keep agent-specific paths in the installer/layout layer. Do not add hard-coded home directories, credentials, or machine-specific paths. Document any compatibility claim with a reproducible test.
Routing changes are behavioral changes even when the public API doesn't change. Before modifying routing logic:
- Add a regression test in
tests/test_router.py. - Add a gold-set case in
benchmarks/gold-set.jsonif the behavior is not already covered. - Run the full benchmark and confirm no regressions.
- Include
--debugoutput in the PR description.
- Update
README.mdfor user-facing changes. - Update
docs/for detailed reference changes. - Update
SKILL.mdif the skill contract changes. - Run
python3 skill.py validate --root .to catch manifest issues.
The installer is an important trust surface. Changes to install.py must be covered by tests/test_install.py. Test fresh install, upgrade, dry-run, uninstall, and the safety checks that prevent overwriting unrelated files.