Thanks for your interest in contributing to PolySkill!
- Prerequisites: Node.js >= 18, pnpm
- Clone the repo:
git clone https://github.com/MrSpacemann/polyskill.git cd polyskill - Install dependencies:
pnpm install
- Build all packages:
pnpm build
- Run tests:
pnpm test
packages/
core/ Skill spec, validation, adapter transpilation (@polyskill/core)
cli/ Developer CLI — init, validate, build, publish, install, search (@polyskill/cli)
skills/ Example skills
- Create a branch from
main - Make your changes
- Run
pnpm build && pnpm testto verify nothing is broken - Submit a pull request
- TypeScript with strict mode
- ESM modules (
"type": "module") - Keep things simple — avoid unnecessary abstractions
- Keep PRs focused on a single change
- Include a clear description of what and why
- Make sure all tests pass
- Add tests for new functionality
Both @polyskill/core and @polyskill/cli are published to npm. Always use pnpm publish (not npm publish) — it resolves workspace:* dependencies to concrete versions automatically.
# 1. Bump version in the package's package.json (the CLI reads its version from there at runtime)
# 2. Build and test
pnpm build && pnpm test
# 3. Publish (from the package directory)
cd packages/core && pnpm publish --no-git-checks
cd packages/cli && pnpm publish --no-git-checks
# 4. Commit, tag, pushIf you change core, publish core first, then bump the server's dependency in the private repo.
Open an issue on GitHub with:
- A clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
By contributing, you agree that your contributions will be licensed under the MIT License.