docs: document bind/implementation/match terminology and their layers - #144
Merged
Merged
Conversation
design.md's own §3 layer-spine table didn't define these, and one passing mention (§5.1, §6.0) still called asap-plan's L3->L4 pass "the bind pass" -- the exact fourth-colliding-sense asap-plan's own crate doc (crates/plan/src/lib.rs) explicitly renamed to "implementation" to avoid. Adds a terminology table right after the layer-spine table (before any per-crate detail depends on the vocabulary) covering the four real senses: L2 name resolution (Bind #1), the L3->L4 per-node physical choice (Implementation), the L3->L4 whole-tree walk (implement_tree), the "does an available Implementation satisfy a required one" question (Match / boundary::Matcher, no default impl -- ASAPQuery-backend's Capability::is_satisfied_by is the reference downstream instance), and the deployment-specific L4->L5 placement decision (Bind #2, e.g. control_plane::sketch_algebra::rules::bind_*). Points to crates/plan/src/lib.rs's own module doc as the authoritative, code-adjacent source rather than duplicating it wholesale, to avoid this table drifting from the real implementation the way the passing "bind pass" mentions had. Also fixes the two stale "bind pass" mentions to say implement_tree and point back to this section. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
design.md's §3 layer-spine table never actually defined "bind" vs "implementation" vs "match", and one passing mention (in §5.1 and the §6.0 crate map) still calledasap-plan's L3→L4 pass "the bind pass" -- exactly the collisioncrates/plan/src/lib.rs's own crate doc explicitly renamed to "implementation" to avoid becoming a fourth/fifth sense of an already-overloaded word.Adds a terminology table right after the layer-spine table (§3) -- before any per-crate detail section depends on the vocabulary -- covering:
asap_l2::binder::Binderboundary::implementation_forimplement_tree(L3→L4, whole tree) --bind::implement_tree(module namedbindfor historical reasons; content is "implementation")boundary::Matcher, ships with no default impl by design; ASAPQuery-backend'sCapability::is_satisfied_byis the reference downstream instancecontrol_plane::sketch_algebra::rules::bind_*Points back to
crates/plan/src/lib.rs's own module doc as the authoritative, code-adjacent source rather than duplicating it wholesale -- that's what should stay in sync with the real implementation; this table is a map, not a second source of truth. Also fixes the two stale "bind pass" mentions elsewhere in the doc.Note for reviewer
While grounding this I noticed
design.md'score::optimizer/core::plancode-sketch sections (§ "Layer 4 framework" / "shared traits bridging layers") describe anOptimizerRule/RuleEngine/BindKllOnQuantile-shaped API that doesn't match what's actually shipped incrates/plantoday (boundary::implementation_for,bind::implement_tree,cost_model::CostModel) -- looks like aspirational pre-implementation content that was never reconciled with what got built. Left untouched here (separate, larger scope than this PR), but flagging it.🤖 Generated with Claude Code