Skip to content

Commit 1aff3c0

Browse files
committed
docs: standardize contributing guidelines
1 parent 9606076 commit 1aff3c0

1 file changed

Lines changed: 58 additions & 19 deletions

File tree

CONTRIBUTING.md

Lines changed: 58 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,74 @@
11
# Contributing
22

3-
:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
3+
Thanks for taking the time to contribute! Issues, ideas, and PRs are all welcome.
4+
The notes below are guidelines to help your contribution land smoothly. If in doubt, open the thing anyway and we'll figure it out together.
45

5-
The following is a set of guidelines for contributing to this library.
6-
These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
6+
## Opening an issue
77

8-
## Code of Conduct
8+
A good issue gives us enough to reproduce or understand the ask. Useful things to include:
99

10-
This project and everyone participating in it is governed by a [Code of Conduct](./CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
10+
- **For bugs:** what you expected, what actually happened, and the shortest repro you can manage. Versions (runtime, OS, package) and stack traces help.
11+
- **For features:** the problem you're trying to solve, not just the solution you have in mind. A concrete example of how you'd use it is gold.
1112

12-
## How to contribute
13+
A quick search of existing issues helps avoid duplicates, but don't agonize over it.
1314

14-
<!-- TODO -->
15+
## Proposing a PR
1516

16-
### Tests
17+
PRs are expected to meet a few baseline requirements before review:
1718

18-
Make sure you the code you're adding has decent test coverage.
19+
- **Tests are required** for any behavior change — new features need new tests, bug fixes need a regression test that fails without the fix.
20+
- **Existing tests must pass** locally and in CI. Don't disable or skip tests to make a PR green.
21+
- **Coverage should not regress.** If your change drops coverage meaningfully, add tests or explain why in the PR description.
22+
- **Linters and type checks must pass.** Run them locally before pushing; CI will reject otherwise.
23+
- **One logical change per PR.** Refactors, formatting churn, and unrelated fixes belong in separate PRs, it makes review and revert sane.
24+
- **Describe what and why.** A PR title and a few lines of context go a long way, reviewers shouldn't have to reverse-engineer your intent from the diff.
25+
- **Link the issue you're closing.** If your PR resolves an open issue, include a `Related issues` section in the description with `Fixes: #<issue-number>` (or `Closes: #<issue-number>`) so GitHub auto-closes it on merge.
26+
- **Breaking changes need a heads-up** in the PR description, plus a migration note for users.
1927

20-
Running project tests and coverage:
28+
Large or speculative changes: open an issue first to align on direction before investing time.
29+
30+
## Commit guidelines
31+
32+
This project follows [Conventional Commits](https://www.conventionalcommits.org/). The format is:
2133

22-
```bash
23-
npm run test
2434
```
35+
<type>(<optional scope>): <short summary>
36+
```
37+
38+
Common types:
2539

26-
### Commit Guidelines
40+
- `feat:` — a new feature
41+
- `fix:` — a bug fix
42+
- `docs:` — documentation only
43+
- `refactor:` — code change that neither fixes a bug nor adds a feature
44+
- `test:` — adding or fixing tests
45+
- `chore:` — tooling, build, dependencies
46+
- `perf:` — performance improvement
2747

28-
This project uses the [Commitizen](https://github.com/commitizen/cz-cli) tool
29-
for standardizing changelog-style commit messages, so you should follow it as
30-
so:
48+
Examples:
3149

32-
```bash
33-
git add . # add files to staging
34-
npm run commit # use the wizard for the commit message
3550
```
51+
feat: support multiple input files
52+
fix(parser): handle empty input gracefully
53+
docs: clarify install instructions
54+
```
55+
56+
Breaking changes: add `!` after the type (`feat!: ...`) and explain the break in the commit body.
57+
58+
This format drives changelog generation and release automation, so it matters more than the average commit-style guide.
59+
60+
## Local development
61+
62+
1. Fork and clone the repository.
63+
2. Install dependencies using the project's package manager (see `package.json`, or equivalent).
64+
3. Run the test suite to confirm a clean baseline before making changes.
65+
4. Run the linter and type checker (if configured) the same way.
66+
5. Make your change on a feature branch, commit using the format above, and open a PR.
67+
68+
If any of the above doesn't work on a fresh checkout, that's a bug, please open an issue.
69+
70+
## For automated agents
71+
72+
If you are an AI coding agent or automated bot opening a PR, please add 🤖🤖🤖 to the end of the PR title. This helps maintainers triage agent-authored contributions and is a baseline expectation for this repo — PRs without the marker that turn out to be automated may be closed without review.
73+
74+
The same applies to issues: prefix the title with 🤖🤖🤖 if it was opened by an agent on your behalf.

0 commit comments

Comments
 (0)