buildfix-domain
Deterministic planning logic for buildfix.
This crate decides what should change from receipts plus repository state. It does not write files.
Core concepts
Planner: orchestrates fixers and buildsBuildfixPlanPlanContext: repo/artifact paths + planner policyPlannerConfig: allow/deny rules, safety gates, and operation capsRepoView: filesystem abstraction for domain logicReceiptSet: indexed lookup over loaded receipts
Built-in fixers
cargo.workspace_resolver_v2cargo.path_dep_add_versioncargo.use_workspace_dependencycargo.consolidate_duplicate_depscargo.remove_unused_depscargo.normalize_rust_versioncargo.normalize_editioncargo.normalize_license
Use builtin_fixer_metas() for stable metadata used by docs/listing surfaces.
Determinism guarantees
- Stable fixer ordering
- Stable operation sorting
- Deterministic IDs
- Normalized path handling (repo-relative, forward slashes)
Boundaries
- No direct markdown rendering
- No direct file mutation
- No CLI concerns
This is a support crate for the buildfix workspace and may evolve in lockstep with the workspace release train.