Files
alktunnels/tasks/tunnels/review-002-trivial-batch.md
T
glm-5.3-flash 0ceecf582b docs: remove em dashes from repo prose and forbid them going forward
- Rewrote the remaining em dashes outside docs/reviews/ (preserved as
  historical record, matching the alktty precedent): tests/ (313),
  fuzz/ (34 plus one shell comment), tasks/ (671 plus 12 kept in
  fences), docs/research + sdd_process + plans (525 plus 25 in
  fences), docs/architecture/overview.md fence labels (13), README,
  CHANGELOG, AGENTS.md, fuzz/README.md (176), and the
  .opencode/agents prompts (110)
- Rewrote fenced content too: ASCII tree and module-map label
  separators, Rust snippet comments, and template placeholders; wire
  data, JSON/BAST examples, and transcripts survive verbatim
- Rewrote 6 assert/expect message literals in tests/ and 2 format
  strings in fuzz/shared/src; no test data changed
- Added Project Convention 18: no em dashes in prose (doc comments,
  markdown including docs/ and tasks/, agent prompts, commit
  messages); fence content rule, en-dash clause rule, and the
  no-spaced-hyphen prohibition follow alktty's convention 15

Follows 6b20924 (src doc comments) and cd0afe0 (docs/architecture).

Verification: cargo test (141 pass); cargo clippy --all-targets -D
warnings; cargo fmt --check; cargo doc --no-deps; wasm check and
clippy for wasm32-unknown-unknown with -D warnings; em dash grep over
the repo returns matches only in docs/reviews/
2026-11-03 14:12:46 +00:00

3.4 KiB

id, name, status, depends_on, scope, risk, impact, level, tags
id name status depends_on scope risk impact level tags
tunnels/review-002-trivial-batch Trivial batch: D-3 (rename the overpromising schema test helper) + D-4 (trim the stale CHANGELOG preamble) completed
narrow trivial isolated implementation
tests
changelog
review-002
review-remediation

Description

Two trivial review 002 findings (docs/reviews/002-graduation-implementation-review.md) batched: each is a one-line-scale change with no behavior impact.

D-3: the test helper's name overpromises

src/params.rs:628-637: jsonschema_valid parses the value with serde and pattern-matches the substrate string, so it validates the serde layer, NOT the JSON Schema (the registry compiles the real validators; adding a jsonschema dev-dependency purely for this unit test is not warranted). The call-site schema_rejects_unknown_substrate_value therefore promises more than it delivers; the sibling direct_target_schema_gates_shape_per_substrate is honest (it does structural schema assertions and says so).

Fix: rename jsonschema_valid → serde_valid (or inline the check) and rename the call-site test schema_rejects_unknown_substrate_value → serde_rejects_unknown_substrate_value (its doc comment should say "the serde layer; the registry's real schema gate is pinned end-to-end by the integration probes (schema_rejects_unknown_substrate_loudly, malformed_target_is_schema_class…, the forwarded listen: 0 gate)"). Do NOT add a jsonschema dev-dependency.

D-4: the CHANGELOG "Unreleased" preamble is stale

CHANGELOG.md's Unreleased section still opens with "implementation is decomposed in tasks/tunnels/ and lands in the next release… the only behavior-affecting change so far (no wire or API change at this level yet)", written before the six graduation implementation commits. The ### Added section below it correctly lists all six features; the preamble contradicts the section it introduces.

Fix: trim the preamble to a one-liner (e.g. "The graduation implementation (ADRs 007/008) landed; see Added below." (the final wording is the agent's choice) or drop it.

Acceptance Criteria

  • The overpromising unit test/helper renamed (no jsonschema dev-dependency added)
  • The CHANGELOG Unreleased preamble trimmed or dropped
  • cargo test green (the renamed test included); clippy + fmt clean

References

  • docs/reviews/002-graduation-implementation-review.md §D-3, §D-4
  • src/params.rs:628-637 (the helper + call-site)
  • CHANGELOG.md (the Unreleased preamble)

Notes

Agent fills during implementation.

Implementation Notes (2026-09-20)

  • D-3: inlined the honest serde check directly into the renamed test serde_rejects_unknown_substrate_value (the jsonschema_valid helper deleted, since it had exactly one call-site, and its matches!-with-guard body was convoluted beyond its job). The doc comment names the integration probes that pin the real registry-side gate end-to-end. No jsonschema dev-dependency added (the structural-assertion sibling direct_target_schema_gates_shape_per_ substrate is untouched and stays honest).
  • D-4: trimmed the preamble to the one-liner ("The graduation implementation … landed; see Added below."); the stale tasks/tunnels/ sentence and the "only behavior-affecting change" claim are gone.
  • Verification: cargo fmt --check, cargo clippy --all-targets -D warnings, cargo test (86 default tests + 2 doc-tests) all green.