Saturday, December 27, 2014

Whiny little gits: on legislation by version control

There's an idea that's been rattling around my head for some time now, probably originally seeded by some internet forum discussion, and it's now been rattling long enough without me seeing any deadly objections that I figured I'd put it down on e-paper.

Problem-setting: legislative process. It's weird, and convoluted, and in many cases the rules of a legislative chamber allow changes to be made to a bill which the members need not be aware of. This was borne out recently in Congress when a single member inserted a provision at the behest of Citigroup, and there was no way to excise the provision from the final version which was submitted to both houses for an up-or-down vote, without jeopardizing the passage of the whole bill.

To zoom out a bit: voters don't care about, pay attention to, or understand process. That's OK, in one sense -- voters really are supposed to care about results, in theory, and are supposed to trust their representatives to get good at process. The problem comes in when advocacy organizations start scoring process moves as position-taking. For example, there's a funny little quirk in the Senate rules that if the majority fails to break a filibuster, the only way to try later to break the same filibuster is if someone changes their mind. What this means in practice is that the Majority Leader will vote to sustain the filibuster if he's sure the logjam won't break -- this way he can "change his mind" later if they can whip up the votes to get the bill through. But this exposes him to an advocacy organization scoring his vote as being on the wrong side of their favorite issue.

There's even the very basic existential question of "what does the law actually say?". How are we to know, under the current way of setting up legislation, if the text on the paper distributed to Congress is the same as the text which is digitally available on the website of the Library of Congress; or if either is identical to the text on the page signed by the President? And in case of a discrepancy, which is "the law"? Typos happen, and humans aren't optimized to catch them on paper.

So here's the proposal: All changes to and voting on the text of legislation shall be carried out using a version-control system. Let's call it CVVS. I'll describe the functionality first.

Each bill before Congress, or before a part thereof, shall be maintained in a CVVS repository. The entire history of the bill shall remain public record in perpetuity.

Note that there may be several distinct stages in the legislative progression of the bill. For this discussion, we will assume that the bill must be approved by House committees A and B, Senate Committees C and D, as well as the full bodies of the House and the Senate, before being sent to the President for signature or veto.

Any legislator may introduce a bill by creating its initial text in a repository. The initial version is the only version not at any legislative stage. Child versions, with identical text to the original, are created with edit- and vote-access restricted to each of the four relevant committees. The metadata for each revision shall include criteria for "passage", described below.

Read-access to each bill's repository shall be public -- anyone may anonymously connect without authentication to pull any set of revisions on the repository.

Edit-access to any particular revision is limited to some set of legislators. In our example, members of Committee A have edit-access to the version created for their committee's consideration, but not to the other three. Of course, a committee member does not edit an existing revision; instead, s/he pushes a revision as a child to an existing revision, whose access profile is the same as the parent revision's. When a push occurs, CVVS will compute a hash of the version which can be publicly checked (i.e. the hash method will not use a secret key).

The new feature, not part of standard (i.e. software-development-oriented) version control systems, is vote-access. Each legislator with vote-access to a revision may affix an authenticated "yea" or "nay" vote to that revision. A legislator may affix votes to more than one revision.

How will a revision "pass out of committee"? Recall that the revisions under consideration by Committee A are all tagged with metadata indicating what is required for the committee to approve (typically a majority of the committee's members). As soon as any revision under the consideration of Committee A accumulates a quorum of "yea" votes, an identical child revision is created for the consideration of the whole House, and all versions under A's consideration become "frozen" -- vote- and edit-access are revoked for all members. Up until a revision has been frozen, any legislator may revoke or change their vote on that revision.

As is easy to see, "nay" votes are actually not worth much at the legislative level -- voting "nay" is the same as not voting at all, except as a way of signaling to politics-watchers that one has considered this revision and dislikes it for some reason. However, once a version has been approved by both chambers, the President's "yea" vote acts to sign the bill into law, while her "nay" vote acts to veto it. In that case, a new version is created with vote-access for each legislator in the House and Senate, tagged with criteria saying that "yea" votes from two-thirds of both houses suffices to pass the bill into law, while greater than one-third of "nay" votes from either house suffices to kill the bill.

OK, so what advantages does this confer over the current system?

1. Irrelevant amendments can be ignored. As it currently is, if a legislator somehow gets a poison-pill amendment added to the text of a bill, the chamber has to consider that amendment as part of the bill. Under CVVS, the chamber is free to ignore the amendment and vote on upstream revisions.

2. There is no such thing as a filibuster. In fact, this system completely divorces the process of debate in session from the process of approving bills. I personally don't see this as a problem, since "debate" on the floor of the House or Senate has no actual bearing on the process of legislators considering the pros and cons of what's in the bills. All that action takes place behind closed doors, and would continue to do so. One potential downside, or something which could be considered a downside, is that a legislator could do their job entirely remotely. However, I don't see that possibility as particularly problematic from any perspective except that of someone who wants to ensure that all power is physically accessible to Washington arm-twisters (or, more charitably, wants to ensure that legislators and all the associated policy wonk apparatus have in-person access to each other to lubricate the process of thinking about policy).

3. The text of the law is known with near-perfect certainty. This one is self-explanatory. In fact, while the Library of Congress would certainly maintain paper copies of passed laws, these records would be regarded as of secondary quality to the CVVS repository text.

4. Chamber leadership cannot exercise favoritism over who can propose amendments. Any legislator with edit-access can file a revision containing amendments as minor as typo-fixes or as major as complete rewrites. The remainder of the chamber has perfect freedom to ignore them or adopt them. By the same token,

5. There is no way to introduce amendments secretly or block bills anonymously. All changes to the repository are publicly signed.

It would surely take some getting used to, not thinking about "the text" of a bill under consideration; however, this is no harder than getting used to current procedural arcana. In any case, I expect that one of the jobs of chamber leadership will be to merge compatible revisions to prevent too much proliferation.


I literally don't see any unmixed downsides to this proposal. However, for the sake of completeness, I list some aspects I expect some people to find less than ideal.

1. A legislator need never set foot in Washington to vote on every bill. To which I respond, so what? Isn't everyone constantly bitching about how Washington is this corrupting influence, that "Washington insiders" can't adequately represent the people back in "real America"?

On the other hand, if were to prove itself a real problem, there's a simple fix: all vote-accesses to the repository must be performed from the floor of Congress.

2. There will be no such thing as a 100-0 passage. Again I say, so what? As long as a bill passes, I fail to see what is gained by a process that allows more people to get on the record if they don't want to be there before passage is guaranteed.

3. Bills are never outright defeated, only not passed yet. I don't see this as a fatal problem either; however, there is a certain benefit from a political activist's perspective of having a bill be definitively voted down (and therefore being able to send out the "we won" email to one's supporters and letting them stand down). If this is seen as important, we may put in another feature: a quorum of "nay" votes on the root revision suffices to kill the entire bill; or even, a quorum of "nay" votes on any revision kills all descendants of that revision.

Other criticisms? Leave them in the comments.

No comments:

Post a Comment