项目文件夹

文件
wehub-resource-sync c96d433ed2
Tag and release from CHANGELOG / release (push) Has been cancelled
Tests / test (3.11) (push) Has been cancelled
Tests / test (3.13) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:02:19 +08:00

35 行
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).