- crate-init: skeleton, feature gates (ADR-003), TlsError (ADR-002) - three parallel foundation ports: identity types, fingerprint, pem+signing - port-server / port-client in parallel (each consumes the foundation; client also carries credentials.rs per ADR-005 co-location) - integration-suite: invariant pins + feature-matrix + seam round-trips - review-impl: spec-conformance gate — the API-freeze point before the alknet rewrite consumes the crate - validated: taskgraph topo (5 generations), no cycles, critical path len 5, risk-path 1.45; medium risk concentrated on the two broad ports + the suite (each a diff against a fixed extraction source, not open-ended work)
2.8 KiB
2.8 KiB
id, name, status, depends_on, scope, risk, impact, level, tags
| id | name | status | depends_on | scope | risk | impact | level | tags | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| review-impl | Review alktls v1 implementation for spec conformance (pre-rewrite gate) | pending |
|
moderate | low | phase | review |
|
Description
Review the completed port against the architecture docs before the alknet rewrite consumes the crate. This is the one-way-door gate: the public API surface freezes here (the rewrite compiles against it).
The checklist
- API surface == ADR-004 — every accessor signature matches the
ADR sketches exactly (
&selfserver /selfclient;for_tcp_tlsinfallible;rustls_configborrows). Re-export block is the documented surface. TlsError== ADR-002 — six variants,#[non_exhaustive], no string catch-all,#[source]chains intact.- Invariants == ADR-001/server.md/client.md — all five server invariants + the client 0-RTT half + fail-closed structure, each with a passing test (check the test asserts the behavior, not that a compile succeeded).
- Deltas vs the extraction source — diff
src/againstcrates/alknet-tls/src/+ the moved alknet-core modules; every difference maps to an ADR-pinned delta (identity-type rewire, error mapping,for_noq, borrowed accessors, nounreachable!). Any un-pinned divergence is either fixed or recorded. - Feature hygiene —
default = []lean (AGENTS.md convention 4); tokio subset (rt,sync,macros) in[dependencies]; doc comments on the public API; no inline//comments outside the convention. - Docs sync — if the port revealed a spec mismatch, the ADR/spec gets an amendment note (not silent divergence).
Work
- Run the checklist against the code.
- File findings (fix-forward for small ones; blockers get Safe Exit treatment).
- Update
docs/architecture/README.mdstatuses (Draft → Reviewed for the specs) when the checklist passes.
Verification
- The full checklist passes with findings recorded
cargo test,cargo test --all-features,cargo clippy --all-targets -- -D warnings,cargo fmt --check,cargo doc --no-depsall greencargo publish --dry-run --allow-dirtypasses (packaging readiness: metadata, license files, exclude list)- Spec statuses advanced where the gate passes
Acceptance Criteria
- Zero un-pinned divergences from the architecture docs
- The API surface is declared frozen for the rewrite (README lifecycle note)
- Findings + resolutions documented in the task Summary
References
- docs/architecture/ (all ADRs + specs — the conformance target)
- docs/research/phase-0.md §Prior art (the extraction deltas)
- AGENTS.md (conventions 1–12)
Notes
Agent fills this during implementation.
Summary
Agent fills this on completion.