Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,10 @@ Each source file must not exceed **1500 lines**. This constraint:
- Encourages modular design
- Ensures AI tools can read entire files within their context window

Do not satisfy this limit by splitting `include/pmm/**` headers into `.inc`,
`.inl`, `.ipp`, or similar include shards. A large header is a signal for real
compaction or extraction into a normal `.h` module with its own responsibility.

## Changelog Fragments

Every pull request that modifies source code must include a **changelog fragment** in `changelog.d/`. This system prevents merge conflicts between parallel PRs and automates release notes.
Expand Down
12 changes: 12 additions & 0 deletions docs/pmm_transformation_rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,18 @@ Reference boundary: [pmm_target_model.md § 2–3](pmm_target_model.md).

Convenience surface is not a valid justification for growth.

Header/file surface must not be reduced by moving parts of the same
`include/pmm/**` module into `.inc`, `.inl`, `.ipp`, or similar textual include
shards. A shorter parent header after such a split is not compaction; it is the
same module fragmented across more files and is a policy violation.

When a header approaches an operational limit such as 1500 lines, reviewers
expect one of two outcomes:

- **compaction**: less code, less duplication, or simpler responsibility;
- **real module extraction**: a normal `.h` module with its own role and a
genuine boundary, not the second half of the original file.

## 6. Source / generated separation rule

- Generated surface (`single_include/**` and comparable artifacts) must not be
Expand Down
3 changes: 3 additions & 0 deletions repo-policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
"forbidden": [
"docs/phase-*",
"docs/phase[0-9]*",
"include/pmm/**/*.inc",
"include/pmm/**/*.inl",
"include/pmm/**/*.ipp",
"*.bak",
"*.tmp",
"*.orig",
Expand Down
Loading