Skip to content

Process: LUD number conflicts and missing merge governance #289

Description

@AxelHamburch

Summary

This is a meta-issue about a structural problem in this repository:
LUD numbers are being self-assigned by PR authors before merge, with no central
assignment process. The result is multiple open PRs competing for the same number,
and technically sound proposals sitting unmerged for years.

This is not a spec proposal. It asks for a governance decision.


The Current Conflict Map

Claimed Number PR Description Status
LUD-21 (merged) verify base spec ✅ Official
LUD-21 #200 pinLimit for withdrawRequest Open since Feb 2023
LUD-21 #207 Amount in local unit Open
LUD-21 #243 Onchain addresses as optional field Open
LUD-22 #252 Payee Data Open
LUD-22 #283 Lightning address request Open (self-renumbered to #23)
LUD-24 #242 Chained LNURLs Open

Three separate PRs claimed LUD-21 after it was already merged. Two PRs claimed
LUD-22 simultaneously. This is not a one-off — it is a systemic issue.


Root Cause

There is no documented process for:

  • Who assigns LUD numbers
  • What criteria trigger a merge
  • Who has merge authority and is actively exercising it

PR authors self-assign numbers at submission time. Without coordination, conflicts
are inevitable.


A Concrete Example: PR #200

PR #200 (pinLimit for withdrawRequest) illustrates the problem:

  • Open since February 2023 — over 2 years
  • 2 formal approvals from active community members
  • Already in production in at least 3 projects: Bolt Card Wallet, SwissBitcoinPay, LifPay
  • Technically backward-compatible and optional
  • Main objection ("is this a real problem?") has since been answered by real-world adoption
  • Originally claimed LUD-21 — that number is now taken by a merged spec

The proposal is sound. It has no home because the process is broken, not because
the spec is wrong.


Confusion Risk: "LUD-21" now means two different things

In the community, "LUD-21" is used to refer to both:

  1. The official verify spec (merged)
  2. The PIN/pinLimit proposal (PR LUD-21: pinLimit for withdrawRequest - resolves #201 #200, unmerged but widely implemented)

This ambiguity is already causing implementation confusion. Implementations
referencing "LUD-21 PIN support" are not implementing the official LUD-21.


Proposed Solutions

Option A — Number assigned at merge, not at PR open

PRs use a placeholder like LUD-XX or LUD-DRAFT. A maintainer assigns the
final number only when the PR is approved and ready to merge. This is how most
successful spec repos work (e.g., BIPs, SLIPs).

Option B — Maintainer triage queue

A designated maintainer reviews open PRs quarterly and either assigns a number
(signaling merge intent) or closes with a reason. No open-ended limbo.

Option C — Community vote for stalled PRs

PRs open longer than 12 months with 2+ approvals and production implementations
get a 2-week comment window, then a maintainer makes a binding decision.


Questions for Maintainers

  1. Is this repository still actively maintained?
  2. What is the criteria for merging a LUD?
  3. Can we establish a LUD-XX placeholder convention for new PRs?
  4. What needs to happen for PR LUD-21: pinLimit for withdrawRequest - resolves #201 #200 to either be merged or formally closed?

Happy to help draft a CONTRIBUTING.md or governance document if that would
move things forward.

Metadata

Metadata

Assignees

No one assigned

    Labels

    governanceMeta: CONTRIBUTING, numbering process, repo toolingneeds-author-responsePR has review feedback, waiting on author

    Type

    No type

    Fields

    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