Skip to content

[html4tree Quality Gap] Enforce production line and branch coverage plus API documentation #1005

Description

@seonghobae

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions