mirror of
https://github.com/phuryn/pm-skills.git
synced 2026-07-14 04:05:16 +03:00
18468a95b4
pm-ai-shipping: mandatory Evidence citations verified before reporting, concrete subagent fan-out contract, read-only allowed-tools on both audits, N+1/waterfall detection and a refute pass in the performance audit, untrusted-input hardening across the kit, parallel audits in /ship-check, severity anchors + report consolidation, repo-relative paths. Repo: CHANGELOG.md as release source of truth with auto-tag-and-release on merge to main (adapted from phuryn/claude-usage, minus the .vsix build), Tests workflow on every PR/push, unit + docs-consistency test suite, contributor-credit conventions in CONTRIBUTING, all manifests synced at 2.1.0. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011URgT9hYuNrXeCvzjnqRxJ
35 lines
2.2 KiB
Markdown
35 lines
2.2 KiB
Markdown
# Contributing
|
|
|
|
PM Skills Marketplace is maintained by [Paweł Huryn](https://www.productcompass.pm) (pawel@productcompass.pm). Contributions are welcome — whether it's a bug fix, a typo, or a new skill idea.
|
|
|
|
## How to Contribute
|
|
|
|
- **Bugs and small fixes** — open a PR directly.
|
|
- **New skills, commands, or larger changes** — open an issue first so we can discuss the approach.
|
|
|
|
## Guidelines
|
|
|
|
- Keep PRs focused — one change per PR.
|
|
- Follow existing patterns: skills are nouns (domain knowledge), commands are verbs (workflows).
|
|
- Every skill needs frontmatter with `name` and `description`. Every command needs `description` and `argument-hint`.
|
|
- Skill `name` must match its directory name.
|
|
- No cross-plugin references in commands. Suggest follow-ups in natural language only.
|
|
- Every contributor will be listed publicly (see Changelog & Contributor Credit below).
|
|
- Run the checks before submitting: `python3 validate_plugins.py` and `python3 -m unittest discover -s tests`.
|
|
|
|
## Changelog & Contributor Credit
|
|
|
|
Every user-facing change gets a bullet in [CHANGELOG.md](CHANGELOG.md). In a PR, add yours under a `## Unreleased` heading at the top (create it if it doesn't exist) and credit yourself at the end of the bullet — `(#123, thanks @your-handle)`. Credits ship verbatim in the GitHub Release notes and stay in the changelog permanently.
|
|
|
|
## Releases (maintainer)
|
|
|
|
`CHANGELOG.md` is the source of truth; tags and GitHub Releases are deterministic projections of it (`.github/workflows/tag-on-merge.yml`):
|
|
|
|
1. Rename `## Unreleased` to `## vX.Y.Z — YYYY-MM-DD`. Semver: breaking changes = major, new skills/commands or changed behavior = minor, fixes and docs = patch.
|
|
2. Set the same version in `.claude-plugin/marketplace.json` and every plugin's `plugin.json` — versions stay in sync across the repo (the test suite enforces this).
|
|
3. Push to `main`. CI verifies the version sync, runs the validator and test suite, then tags `vX.Y.Z` and publishes a GitHub Release with the changelog section as notes. No new heading → no release; ordinary pushes are unaffected.
|
|
|
|
## License
|
|
|
|
By contributing, you agree that your contributions will be licensed under the [MIT License](LICENSE).
|