Skip to content

[playbook-phase-7] Traits, generics, and dispatch discipline #287

@githubrobbi

Description

@githubrobbi

Phase 7 of the workspace refactor playbook.

Playbook section: docs/dev/architecture/code_clean/world_class_rust_workspace_refactor_playbook.md §858-924 (local-only).
Plan: docs/dev/architecture/code_clean/phase_7_traits_generics_dispatch_implementation_plan.md (local-only — gitignored under /docs/dev/).
Predecessor: #193 (Phase 6 — ownership/borrowing/allocation, CLOSED 2026-05-19).

Sub-phases (per plan §5)

  • 7a — Baseline tool: scripts/dev/trait_generic_audit.sh + prod-only inventory snapshot
  • 7b — Trait justification audit (J1/J2/J3/J4 per playbook §879-886)
  • 7c — Generic-function audit (G1-G5 per plan §3.2)
  • 7d — Dispatch audit (D1-D4 + S1-S3 per plan §3.3)
  • 7e — Trait sealing decisions (per playbook §902-904, carrying forward Phase 3b §3.7)
  • 7f — Bound rationalization: add clippy::trait_duplication_in_bounds, wrong_self_convention, too_many_arguments denies + multiple_bound_locations warn
  • 7gdocs/architecture/code-quality/trait_policy.md + CONTRIBUTING.md cross-link
  • 7h — Benchmark + cargo build --timings refresh
  • 7i — Final validation + closeout report

Acceptance criteria (plan §7)

15 criteria — every prod trait classified, every generic fn classified, every dyn site classified, trait_policy.md landed, strict-lint posture extended without relaxations, benchmarks within envelope, plan §11 filled in.

Strict rules (carry-overs from Phase 5 / 6)

  1. No suppression hacks (no blanket #[allow], no #![expect] workarounds)
  2. Surgical, correct fixes (minimal idiomatic Rust)
  3. Preserve behavior & contracts (no public-API breakage without feat: prefix)
  4. Improve tests, do not dodge them (no skipped/relaxed tests)
  5. Small, atomic, signed commits with clear messages

Starting SHA

d2d533021 (post-PR #286, Phase 6 closeout — current main).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions