Summary
Amend ADR-015 §2 to lower the non-test source-file cap from 600 lines to 500 lines, so the repo's documented file-size policy matches SonarCloud's S104 threshold (500). Today they disagree (ADR-015 = 600, Sonar S104 = 500), which lets files land in the 500–600 band that are repo-compliant but fail the SonarCloud quality gate at the dev → main integration PR (see #545, fixed by #560).
Scope
- Update ADR-015 (
docs/decisions/adrs/adr-015-sdl-processor-layering-and-source-file-size-cap.md) §2 to state a 500-line cap.
- Update the enforcement in
tools/policy/repo_policy.py (the 600 reference + _ADR015_INITIAL_OVERSIZED_FILES) and any related policy config (tools/policy/adr_policy.yaml, tools/policy/oversized_allowlist.yaml).
- Split (or allowlist, consistent with the ADR's allowlist-may-only-shrink rule) the source files now in the 500–599 band so the lowered cap is enforceable.
Rationale
A single threshold removes the integration-boundary surprise where Sonar flags files the repo policy permits.
Summary
Amend ADR-015 §2 to lower the non-test source-file cap from 600 lines to 500 lines, so the repo's documented file-size policy matches SonarCloud's S104 threshold (500). Today they disagree (ADR-015 = 600, Sonar S104 = 500), which lets files land in the 500–600 band that are repo-compliant but fail the SonarCloud quality gate at the
dev → mainintegration PR (see #545, fixed by #560).Scope
docs/decisions/adrs/adr-015-sdl-processor-layering-and-source-file-size-cap.md) §2 to state a 500-line cap.tools/policy/repo_policy.py(the 600 reference +_ADR015_INITIAL_OVERSIZED_FILES) and any related policy config (tools/policy/adr_policy.yaml,tools/policy/oversized_allowlist.yaml).Rationale
A single threshold removes the integration-boundary surprise where Sonar flags files the repo policy permits.