docs(obligations): OBL-004 — the graph-depth ceilings move here from UDLM - #123
Merged
Merged
Conversation
…UDLM UDLM capped three graphs: dependency depth at 10, relationship traversal at 15, composite nesting at 3, each with a per-profile table. All three are removed upstream (croadfeldt/udlm#487). Maintainer's ruling 2026-08-10: "That is a policy item, not a data model enforcement. The data models, the platform enforces." Nothing structural makes depth 11 impossible — somebody picked 10. What UDLM still guarantees is only cycle detection, and the distinction is the point: a cycle is UNORDERABLE rather than merely deep, so it is a structural impossibility instead of a threshold somebody chose. The model refuses what cannot be computed; policy decides what should not be permitted. The obligation records four decisions rather than one, because "pick a number" hides three others: whether to cap at all (an estate may legitimately run uncapped on cycle detection plus review), WHICH depth is capped (dependency counts the provisioning chain, relationship counts traversal distance, nesting counts containment — a VM with 50 IP relationships has relationship depth 1, not 50), WHEN it is evaluated (registration refuses a definition, request refuses an order, and the second still admits a definition that can never be used), and what a refusal SAYS (UDLM's precedent throughout is that a refusal names the chain and the depth reached, never "too deep"). UDLM's old numbers are carried as a suggested starting point, explicitly not a requirement. The composite row was a flat 3 with no profile variation, which is itself a signal it was never tuned against a real estate. Refs croadfeldt/udlm#487, croadfeldt/udlm#486. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Refs croadfeldt/udlm#487, croadfeldt/udlm#486.
UDLM capped three graphs — dependency depth at 10, relationship traversal at 15, composite nesting at 3, each with a per-profile table. All three are removed upstream.
Nothing structural makes depth 11 impossible — somebody picked 10.
What UDLM still guarantees
Only cycle detection, and the distinction is the point: a cycle is unorderable rather than merely deep — ordering derives from
depends_onand a cycle has no first step. Structural impossibility, not a chosen threshold.The model refuses what cannot be computed; policy decides what should not be permitted.
Four decisions, not one
"Pick a number" hides three others:
The old numbers
Carried as a suggested starting point, explicitly not a requirement. Worth revisiting rather than inheriting — the composite row was a flat 3 with no profile variation, which is itself a signal it was never tuned against a real estate.
🤖 Generated with Claude Code