Skip to content

Diagnostics output-quality follow-ups: multi-hop holdback stories #63

Description

@StefanKarpinski

Rewritten 2026-09-12. Item 1 (bound direction) moved to #118, which was closed on 2026-09-15: its premise did not hold. Item 3 is done. What is left is one item, and it is blocked.

Quality ceilings in the diagnosis reports, none blocking, each with an understood path.

Open

Holdback stories would be one hop. A holdback chain would name the responsible user constraints plus the direct incompatibility; one caused by a chain of third-party bounds — "julia held back because A needs B needs old-C" — would need the conflict-story machinery pointed at a holdback rather than a cluster.

Unreachable until holdbacks exist at all (#52), so "one hop" is a ceiling on something unbuilt. File a case under it when one turns up.

Also recorded here

Two limitations of the dependency chains, disclosed during #86 and kept here because #85 is closed. Both are cases where a real report reading badly is the signal to act, which is what this issue is for.

  • Some conflicts get no story at all. The chain follows a forced descent and stops at the first pass that starves something, so a conflict whose explanation needs joint reasoning past that point gets only its requirement and availability lines. Measured at 3 of 99 conflicts across two sweeps. A direct-edge-only rule would have been far worse (36% with nothing to say), so this is the tail of a good heuristic rather than a broken one.
  • Where several packages starve at once, which one is named is a preference. Bounds are symmetric, so simultaneous starvation is the usual case. The order is: not a requirement, then touches a package the query emptied, then shortest, then by name. Deterministic and reasonable, but a different choice would give a different, equally true story.

Closed out

One framing note carried forward: this issue was written against #57's reports, and #57 was superseded rather than merged. The shipped reports are #105/#107's — which changes nothing about the item above, a property of holdbacks rather than of the report architecture.


🤖 Maintained with Claude Code.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions