Current gap
ContextualWisdomLab/html4tree/build.gradle enables JaCoCo and sets one unqualified minimum = 1.00 limit. JaCoCo's default counter and element do not make the intended production line and branch contracts explicit, and the current build has no public Kotlin API/KDoc gate.
The organization requirement is stronger: production statement/line coverage 100%, production branch coverage 100%, and complete documentation for shipped public APIs. A single implicit bundle-level limit can hide exactly which counter regressed and can include or exclude generated/synthetic code without a reviewed policy.
Required contract
Coverage
- Define explicit JaCoCo verification limits for production
LINE and BRANCH counters.
- Keep test code and generated build artifacts out of the production denominator through a documented class-directory filter.
- Publish XML and HTML evidence on every pull request.
- Fail when the report is missing or when any production file is absent from the report.
- Report missed lines and branches with file and line context.
- Add a mutation or negative control test proving that removing a branch test makes the gate fail.
Public documentation
- Define which top-level functions, classes, properties, CLI options, and error types are supported public APIs.
- Require KDoc for every supported public symbol, including security and destructive-operation behavior.
- Treat deliberately internal implementation as
private/internal rather than documenting accidental public visibility.
- Generate and validate Dokka output without unresolved links or undocumented supported symbols.
Realistic tests
- File-system enumeration failure
- Metadata-read failure
- user-authored
index.html preservation
- symlink and root-boundary refusal
- mixed-direction and hostile Unicode names
- HTML escaping and URL encoding
- atomic and fallback publication behavior
- CLI exit codes and destructive-option confirmation
Compatibility and release gate
- Upgrade JaCoCo/Dokka/Gradle only through an explicit compatibility plan for the Kotlin and Java versions actually supported.
- Do not weaken the denominator to obtain green coverage.
- Update
AGENTS.md, CHANGELOG.md, and doctoring references.
- No release may claim 100% production coverage or documentation until the exact explicit counters and symbol inventory pass on the release commit.
Evidence
Current build configuration: https://github.com/ContextualWisdomLab/html4tree/blob/master/build.gradle
Priority
High. This is a release-governance gap required by the organization development contract.
Current gap
ContextualWisdomLab/html4tree/build.gradleenables JaCoCo and sets one unqualifiedminimum = 1.00limit. JaCoCo's default counter and element do not make the intended production line and branch contracts explicit, and the current build has no public Kotlin API/KDoc gate.The organization requirement is stronger: production statement/line coverage 100%, production branch coverage 100%, and complete documentation for shipped public APIs. A single implicit bundle-level limit can hide exactly which counter regressed and can include or exclude generated/synthetic code without a reviewed policy.
Required contract
Coverage
LINEandBRANCHcounters.Public documentation
private/internalrather than documenting accidental public visibility.Realistic tests
index.htmlpreservationCompatibility and release gate
AGENTS.md,CHANGELOG.md, and doctoring references.Evidence
Current build configuration: https://github.com/ContextualWisdomLab/html4tree/blob/master/build.gradle
Priority
High. This is a release-governance gap required by the organization development contract.