chore(tasks): wave-3 release gate passes green
This commit is contained in:
1 parent
1b2c979289
commit
bfd8361979
1 file changed
+103
-10
@@ -1,7 +1,7 @@
|
||||
---
|
||||
id: review-wave-3
|
||||
name: "Wave 3 gate: the release review"
|
||||
status: pending
|
||||
status: completed
|
||||
depends_on: [w3-release-readiness]
|
||||
scope: narrow
|
||||
risk: low
|
||||
@@ -20,26 +20,26 @@ records the one-way surfaces the publish creates.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] README checked against the shipped code line by line: every
|
||||
- [x] README checked against the shipped code line by line: every
|
||||
claim matches the actual surface; no stale framing, no
|
||||
overclaim (the engine-owned-set absence stated plainly)
|
||||
- [ ] CHANGELOG checked against the actual 0.1.0 surface
|
||||
- [ ] rustdoc + doctests verified: `cargo doc --no-deps`
|
||||
- [x] CHANGELOG checked against the actual 0.1.0 surface
|
||||
- [x] rustdoc + doctests verified: `cargo doc --no-deps`
|
||||
warning-free, examples compile-checked and consistent with the
|
||||
README
|
||||
- [ ] package posture verified: `cargo package --list` against the
|
||||
- [x] package posture verified: `cargo package --list` against the
|
||||
package policy (no SDD/plans/research/tasks payload; the
|
||||
architecture docs present), dry-run clean
|
||||
- [ ] freeze inventory reviewed: every listed surface is real (each
|
||||
- [x] freeze inventory reviewed: every listed surface is real (each
|
||||
one traceable to code or a pinned test), the
|
||||
`#[non_exhaustive]` decision reviewed against ADR-001/008 and
|
||||
the wave-1 interpretation record, the evolution policy written
|
||||
- [ ] conventions audit re-run (no unwrap/expect/panics in non-test
|
||||
- [x] conventions audit re-run (no unwrap/expect/panics in non-test
|
||||
src, no unsafe, no async, no filesystem, no em dashes in prose
|
||||
surfaces)
|
||||
- [ ] full verification set re-run clean on the final readiness
|
||||
- [x] full verification set re-run clean on the final readiness
|
||||
tree
|
||||
- [ ] gate verdict recorded in Notes: publish unblocked, or blockers
|
||||
- [x] gate verdict recorded in Notes: publish unblocked, or blockers
|
||||
listed
|
||||
|
||||
## References
|
||||
@@ -52,4 +52,97 @@ records the one-way surfaces the publish creates.
|
||||
|
||||
## Notes
|
||||
|
||||
Filled by the review agent.
|
||||
**Gate verdict: GREEN. The publish is unblocked. No blockers, no
|
||||
findings; one observation dispositioned as data (below). The crate is
|
||||
honestly shippable.**
|
||||
|
||||
Gate review performed 2026-11-07 over the wave-3 readiness commits
|
||||
(4f17221, a7ebd28, ee4053e, 1b2c979) by reading the README, the
|
||||
CHANGELOG, src/lib.rs, src/error.rs, Cargo.toml, and the readiness
|
||||
task's freeze inventory against the shipped code and the architecture
|
||||
docs line by line.
|
||||
|
||||
**README vs shipped code (line by line):** every claim traces. Strict
|
||||
mode always on (src/registry.rs:47, no parameter); one-registry-per-
|
||||
set and partial-name rejection (registry.rs:164 bookkeeping resolve);
|
||||
`&str` registration with no filesystem path (registration signatures);
|
||||
typed errors with the two-variant enum and source-chain detail
|
||||
(src/error.rs); helper purity as a documented convention
|
||||
(registry.rs:87-91); determinism and no hash-order leak
|
||||
(registry.rs:116-119, pinned by tests); two sinks with the
|
||||
no-atomicity statement (registry.rs:137-142, stated by the battery's
|
||||
write-sink row); `EscapePolicy::Html`/`NoOp` with the `{{& }}`
|
||||
opt-out (src/escape.rs). The usage block, the integration-posture
|
||||
section (A build-script with the emit-layer banner, B for alkforge
|
||||
with the caching rationale, C render-to-compile), and the
|
||||
"what 0.1.0 does not ship" section (no engine-owned sets,
|
||||
`bast-codegen` gating nothing, the ADR-008 fixture posture) match
|
||||
emit.md, ADR-008, ADR-010, and targets.md. The README usage block is
|
||||
mirrored by the crate docs' doctests so the two cannot drift apart
|
||||
silently; doctests run in the suite.
|
||||
|
||||
**CHANGELOG vs the 0.1.0 surface:** every Added item matches the
|
||||
actual API (verified against src/ and the frozen inventory); the
|
||||
Guarantees section matches the standing conformance rows; the
|
||||
evolution-policy paragraph matches the landed doc comment.
|
||||
|
||||
**Rustdoc + doctests:** `cargo doc --no-deps` warning-free on the
|
||||
final tree; the two usage doctests pass in `cargo test` (53 total:
|
||||
19 lib + 13 conformance + 7 code_proof + 4 ssr_proof + 5
|
||||
code_fixtures + 3 ssr_fixtures + 2 doctests), identical under
|
||||
`--all-features` (the ADR-009 coincide holds; reminder (c) remains
|
||||
correctly unassigned since `bast-codegen` still gates nothing).
|
||||
|
||||
**Package posture:** re-verified on the committed tree: `cargo
|
||||
package --list` shows exactly 48 files (src, tests + fixtures, the
|
||||
architecture docs, README, CHANGELOG, both licenses, manifests);
|
||||
no AGENTS.md, .opencode/, docs/research/, docs/sdd_process.md,
|
||||
docs/reviews/, docs/plans/, or tasks/. Dry-run clean with the
|
||||
package compile verification passing (48 files, 199.6KiB).
|
||||
|
||||
**Freeze inventory reviewed:** every listed surface traces to code
|
||||
or a pinned test (public API signatures vs src/registry.rs/
|
||||
error.rs/escape.rs; strict-mode and determinism rows vs
|
||||
tests/conformance.rs and the wave-1 unit tests; purity vs the
|
||||
conventions audit below; the handlebars 6.4 surface vs the battery's
|
||||
recorded substrate observations; the `preserve_order` context
|
||||
posture vs the code proof). The `#[non_exhaustive]` decision
|
||||
reviewed against ADR-001/008 and the wave-1 interpretation record:
|
||||
adopted on `Error` for the right reason (additive evolution
|
||||
documented, non-breaking match sites, posture landed at the freeze
|
||||
itself), declined on `EscapePolicy` with a defensible rationale
|
||||
(ADR-005 fixes the set at two; construction, not matching, is the
|
||||
consumer interaction). The decision landed in src/error.rs as a doc
|
||||
comment, so it travels with the published API.
|
||||
|
||||
**Conventions audit (re-run by the gate):** zero `unwrap`/`expect`/
|
||||
panic/unsafe/async/filesystem in non-test src (all hits are inside
|
||||
`#[cfg(test)]` modules or doctests, permitted); doc comments on all
|
||||
public items, no inline `//` comments in src; the standing em-dash
|
||||
grep shows zero hits across src/, docs/, README.md, CHANGELOG.md,
|
||||
tasks/, tests/, AGENTS.md, Cargo.toml.
|
||||
|
||||
**Verification set (re-run by the gate on the final tree):** `cargo
|
||||
test --all-features` (53 passing, default-feature run identical),
|
||||
`cargo clippy --all-targets --all-features -- -D warnings` (clean),
|
||||
`cargo fmt --check` (clean), `cargo doc --no-deps` (warning-free),
|
||||
`cargo build --target wasm32-unknown-unknown --release` (clean),
|
||||
`taskgraph validate` (21 tasks valid), the ADR-002 tree inspection
|
||||
(`handlebars v6.4.4 default` only, no `dir_source`, no
|
||||
`script_helper`).
|
||||
|
||||
**One observation, dispositioned as data:** the README says "no CLI
|
||||
in v1, by design" citing ADR-010's library-only rule; the architecture
|
||||
docs are the design record the README points to, and the phrase
|
||||
"by design" is the honest summary of a recorded decision, not an
|
||||
overclaim. No change required.
|
||||
|
||||
## Summary
|
||||
|
||||
Wave-3 gate passed green. The release artifacts (README, CHANGELOG,
|
||||
crate docs, package list) say exactly what the shipped code does; the
|
||||
freeze inventory is real and traceable, with the carried
|
||||
`#[non_exhaustive]` reminder dispositioned explicitly; conventions
|
||||
and the full verification set are clean on the final tree, including
|
||||
the wasm release build and the handlebars feature inspection. The
|
||||
crate is honestly shippable; `w3-publish` is unblocked.
|
||||
Reference in new issue
Block a user