Problem
The project targets measurable interoperability with libxmlsec1, but there is no complete, machine-readable baseline of the upstream 1.3.13 public surface. Headers, symbols, layouts, callbacks, command behavior, algorithm identifiers, backend APIs, and test families can therefore disappear from planning or be treated as implicit skips.
Solution
Add a reproducible capability-ledger generator pinned to the exact libxmlsec1 1.3.13 source revision used by CI. Generate a checked-in ledger that classifies every discovered item with an explicit compatibility outcome, rationale, and deterministic evidence reference.
The ledger is descriptive only: it must not enable algorithms, weaken policy, or introduce runtime configuration.
Acceptance criteria
- Inventory all installed generic and backend headers, exported functions and variables, macros and build defines, enums, public struct layouts, callbacks, transform/key-data class IDs, registries, CLI commands and exit-status behavior, algorithm URIs, key formats, deprecated APIs, and upstream test families.
- Record the exact upstream version and Git object used to generate the baseline.
- Use only the documented outcomes: exact, source-compatible, behavior-compatible, compatibility-profile-only, provider-limited, intentionally-unsupported, binary-ABI-incompatible, or planned.
- Require every ledger item to have a rationale and deterministic evidence reference; generation fails on an unclassified item or implicit skip.
- Check in the generated artifact and make regeneration deterministic.
- Add tests for schema validity, uniqueness, source identity, category completeness, classification/evidence completeness, and donor drift.
- Document regeneration, status semantics, current compatibility boundaries, and how future work updates evidence without overstating drop-in compatibility.
Validation
- Regenerate the ledger and verify a clean diff.
- Run workspace checks and clippy with all features.
- Run focused ledger tests, the full nextest suite, and doctests.
Problem
The project targets measurable interoperability with libxmlsec1, but there is no complete, machine-readable baseline of the upstream 1.3.13 public surface. Headers, symbols, layouts, callbacks, command behavior, algorithm identifiers, backend APIs, and test families can therefore disappear from planning or be treated as implicit skips.
Solution
Add a reproducible capability-ledger generator pinned to the exact libxmlsec1 1.3.13 source revision used by CI. Generate a checked-in ledger that classifies every discovered item with an explicit compatibility outcome, rationale, and deterministic evidence reference.
The ledger is descriptive only: it must not enable algorithms, weaken policy, or introduce runtime configuration.
Acceptance criteria
Validation