Problem
Components verifies that every public subpath loads, compiles under strict TypeScript, and carries TSDoc. Those gates prove validity, but they do not produce a compact reviewable structural diff of the exported API between releases. A semver label records intent rather than proving the actual public-shape delta.
Direction
Add generated, reviewable API snapshots derived from the real packed export map:
- one snapshot per typed public subpath or one deterministically partitioned package snapshot;
- include exported names, signatures, generics, members, deprecations, and release tags;
- exclude private/unreachable implementation exports;
- compare against the base release and classify additions/removals/narrowing;
- require explicit semver intent for breaking changes without replacing human API review.
The snapshot generator must consume packed declarations, not workspace source aliases.
Acceptance criteria
- All 24 typed JS subpaths are represented from the packed archive.
- Deterministic regeneration produces no churn.
- Planted removal, narrowing, and undocumented export changes fail.
- CI uploads or comments a readable base-vs-head API diff.
- The centralized semver-label policy consumes or references the structural result without duplicating organization policy.
Problem
Components verifies that every public subpath loads, compiles under strict TypeScript, and carries TSDoc. Those gates prove validity, but they do not produce a compact reviewable structural diff of the exported API between releases. A semver label records intent rather than proving the actual public-shape delta.
Direction
Add generated, reviewable API snapshots derived from the real packed export map:
The snapshot generator must consume packed declarations, not workspace source aliases.
Acceptance criteria