|
| 1 | +# Contributing Guidelines |
| 2 | + |
| 3 | +We welcome contributions. To ensure efficient and meaningful review, the following minimum requirements apply. |
| 4 | + |
| 5 | +--- |
| 6 | + |
| 7 | +## 1. Change Type & Verifiable Statement |
| 8 | + |
| 9 | +Every pull request must clearly declare its type and provide appropriate justification. |
| 10 | + |
| 11 | +### Supported PR Types |
| 12 | + |
| 13 | +- **Bug Fix** |
| 14 | + A PR that fixes a reproducible and verifiable issue. |
| 15 | + |
| 16 | +- **Feature / Enhancement** |
| 17 | + A PR that introduces new functionality or improves existing behavior without fixing a bug. |
| 18 | + |
| 19 | +- **Refactor** |
| 20 | + A PR that changes internal implementation without changing external behavior. |
| 21 | + |
| 22 | +- **Documentation** |
| 23 | + A PR that only affects documentation. |
| 24 | + |
| 25 | +- **Other** |
| 26 | + For changes that do not fit the categories above (must be explained clearly). |
| 27 | + |
| 28 | +--- |
| 29 | + |
| 30 | +### 1a. Requirements for Bug Fixes |
| 31 | + |
| 32 | +Bug-fix PRs must include **verifiable evidence of the issue**, such as: |
| 33 | + |
| 34 | +- a reproducible test case |
| 35 | +- compiler or sanitizer output (e.g. ASan, UBSan) |
| 36 | +- clearly demonstrable incorrect behavior in the existing code |
| 37 | +- or a reliable technical reference |
| 38 | + |
| 39 | +Speculative statements (e.g. “might be unsafe”, “could be NULL”) are not sufficient without proof. |
| 40 | + |
| 41 | +--- |
| 42 | + |
| 43 | +### 1b. Requirements for Features |
| 44 | + |
| 45 | +Feature PRs must include a clear description of: |
| 46 | + |
| 47 | +- what new functionality is introduced |
| 48 | +- why the change is useful |
| 49 | +- how the behavior changes for users or callers |
| 50 | + |
| 51 | +If applicable, feature PRs should also include tests or usage examples. |
| 52 | + |
| 53 | +--- |
| 54 | + |
| 55 | +### 1c. Requirements for Refactoring |
| 56 | + |
| 57 | +Refactoring PRs must ensure: |
| 58 | + |
| 59 | +- no change in external behavior unless explicitly stated |
| 60 | +- justification for structural changes (readability, performance, maintainability, etc.) |
| 61 | +- tests remain valid or are updated accordingly |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +## 2. Human Review Required |
| 66 | + |
| 67 | +Automatically generated or assisted changes (including AI-assisted contributions) must be **reviewed and validated by a real person before submission**. |
| 68 | + |
| 69 | +The contributor is responsible for ensuring that: |
| 70 | + |
| 71 | +- the proposed change is technically correct |
| 72 | +- the issue description has been independently verified |
| 73 | +- the change is not based on speculation or unverified assumptions |
| 74 | + |
| 75 | +--- |
| 76 | + |
| 77 | +## 3. No Substantive Value → No Merge |
| 78 | + |
| 79 | +Pull requests that: |
| 80 | + |
| 81 | +- only contain cosmetic or non-functional changes |
| 82 | +- address issues that are not demonstrably valid |
| 83 | +- or do not provide a verifiable improvement |
| 84 | + |
| 85 | +may be closed without further discussion. |
| 86 | + |
| 87 | +--- |
| 88 | + |
| 89 | +## 4. Review Policy |
| 90 | + |
| 91 | +PRs that do not meet the above requirements may be **closed without entering a full review cycle**, in order to protect maintainers’ time and keep the project maintainable. |
0 commit comments