Yes, let's stride towards an open VCS for legislation (or, GitHub for laws on OC)May 23, 2012 - by David Moore
Last week there was a brief flurry on the micropublishing service re: possibility of a version control system (VCS) for laws. Background links via the incredible research of Rob Richards – this post by Abe Volcker on “GitLaw” made a splash on Hacker News. Here’s an unedited-draft, non-exhaustive, quick-fast sketch of a response from my point of view.
First, though, please read this enlightening Quora thread in full: “What are the nontechnical barriers to adopting a version control system for use in writing bills / new laws?” My apologies to have a pre-requisite, but it’s crucial background & full of expert insight. My regards to the contributors there.
Second, I should mention that it seems to me obvious that a VCS for legislation would have positive social democratic outcomes. It’s desirable in and of itself for a variety of reasons. The first is that it is, in theory, the most effective method of public accountability & radical transparency in a representative democracy like ours. The second is that, again in theory, it’s clearly the most efficient way to draft laws & public policy, with rich benefits from #opendata & the inherent useful features of a VCS. It’s deeply politically desirable, by my lights, and PPF has been calling for it since we launched OpenCongress in 2007 – most recently, see my blog post from Feb., “liberate #opengovdata now”, specifically when I wrote previously re: VCS:
That is to say, requiring legislative assistants & staffers & even lobbyists & members of Congress themselves have unique logins for openly writing, editing, and commenting on draft legislation. To be sure, staffers could still have off-the-record private conversations of the expected political-calculus and/or horse-trading sort – but for the public record, language or policy ideas cribbed from lobbyists could be programatically & easily identified as such. Which wouldn’t necessarily be a pejorative thing at all – but would be a basic accountability measure. To be reductive, if a member’s staffer adds funding for a bridge for her district, observers of the bill would find the individuals responsible and bring it to other parties for input. Constituents could be continually polled with ranked-choice voting about specific, significant sections of legislation. The details matter, as we know – facing down a federal election year in which the major health-care reform bill is likely to be an issue both in the Supreme Court and the Presidential campaign, wouldn’t it be helpful to know which individual staffers took responsibility for which sections of the bill, and which lobbyists & interest groups can be identified as crafting specific language? This isn’t even to address the benefits of metadata linking campaign donations to specific bill provisions, budget & spending transparency, real-time financial disclosure of senators’ campaign contributions (imagine that), and other realistic-yet-lofty ideas…
… third, to move towards a technical level, I believe this is both a solvable problem in theory and that GitHub specifically gets us most of the way there, with some expected tweaks. That’s the big-picture subjective evaluation on my part…
… which runs smack into expert practitioners – see intelligent Quora thread above (and related), specifically insights from John Sheridan & Tom Bruce re: difficulties of actually implementing VCS for leg. b/c, essentially, the lawmaking process is essentially idiosyncratic & bigtime complicated. My approach has more in common with Alex M. Hendler’s evaluation that, in context, “… I don’t see any insurmountable non-technical difficulties with treating each amendment as a branch of a bill (or amendment), then merging in successful ones and rejecting unsuccessful ones.”
But if I’m summarizing the ultimate objection in the thread, putting aside bureaucratic culture foot-dragging & resistance to transparency by elected officials & some not-insignificant technical issues, it’s that laws have cascading implications – and that Git isn’t sufficiently good at accounting for how changes to one part of a proposed law would affect sections of other proposed/enacted laws. That’s reductive, to be sure, but that’s what I understood as the primary shortcoming of GitHub for laws. That seems like a pretty powerful in-practice shortcoming now, though ultimately, I hope, solvable. John Sheridan (UK) writes, sympathetically, of the complicated leg. process: “It is a world of known pasts with known, unknown and possible futures, forking by jurisdiction, where the meaning can change in important ways, without altering a single word of text.”
But maybe there’s a way to start the ball rolling on using Git for leg. while we wait on more-advanced tech solutions – simply by encouraging (or requiring) most newly-drafted bills to be done in an open VCS. Then if they’re introduced into the legacy systems of Congress, well, that’s all right – their cascading changes can be evaluated & processed as normal. But it would be decently groundbreaking for leg. to be drafted openly, at least at first. It’s not much of a Copernican revolution, to be sure, but it’s something we can do here & now (say, w/ straightforward enhancements to our #opensource code here on this existing & popular & data-rich & heavily-used OC web app).
This would at least address the #SOPA / #PIPA / #CISPA problem of truly egregious language being bundled into wide-ranging bills – e.g. w/ CISPA, some username would have to take responsibility for the absurdly broad text, “…misappropriation of private or government information, intellectual property, or personally identifiable information…” More on SOPA’s inexcusably & unforgivably awful language from EFF & Public Knowledge, both members (along with PPF) of the American Censorship coalition that mobilized the public on the open Web to kill these censorship bills successfully in January.
For dozens more major bills in this 112th U.S. Congress, on issues from #hcr to #finreg to catastrophic climate degradation to net neutrality to mitigating income inequality to freedom of association to reproductive rights to public education, we have the option to encourage our members of Congress to start drafting legislation on GitHub and elsewhere in #openstandards for a greater-than-ever degree of accountability. And to be clear, technically any citizen can today (May 2012) draft a bill and submit it to members of Congress to introduce for consideration – which could even fantastically become law, imagine that – but of course this is neither optimal nor common in practice, and isn’t necessarily the best-case end goal — rather, we seek what Prof. Benkler described as the networked public sphere. Or wiki government, if you prefer, or e-democracy – basically a more-informed, more-deliberative, more-data-driven, more-public, more-participatory process. My suspicion is that the reasons this isn’t more common is as follows: lack of sufficiently large public forums w/ in Cong. districts (OC can provide those); lack of institutional buy-in from members’ offices (tougher, persistent problem until we establish a two-way forum for continual, reciprocal constituent communication in open-standards on the open Web); lack of user-friendly interface for non-academic, non-technical, non-lawyer contributors (GitHub is marvelous but it ain’t Tumblr in ease-of-popular-use, nor should it be nec.). Maybe it’s not common for Congressional offices to draft legislation in an open VCS simply because the best platform for doing so & taking-in public sentiment & expert comments (specifically for bills & political issues) hasn’t yet been built. PPF can design a user interface for input & seeing contributions by public-interest experts regarding specific sections of discrete legislation.
I anticipate it’s perfectly feasible to focus initial GitHub law-drafting in areas of public policy or legal sphere where the cascading implications of the specific legislation is relatively-more-contained… this is a larger topic though, but to ramble, Git for leg. doesn’t nec. have to be universally used immediately – rather it can iteratively expand its application. Even if it starts out as a Git for how bills get introduced, and then they stay in the custom / boutique / legacy VCS, that’s acceptable for a start to me at least in the #opengov community – as long as there are understandings (or better yet, laws, haha) about what kind of un-VCS’d changes are fair once it’s out of public Git and into Congress’ official processes / technologies. I.e., perhaps, no major funding changes at that point; legal questions are of course trickier. Larger topic indeed.
Over to members of our systemically-corrupt 112th Congress, then, and the civil servants & political advisors in their overworked D.C. & district offices, to start using GitHub for public input on laws before they’re introduced. (While we’re at it, we’re waiting on members of Congress to endorse comprehensive electoral reforms, including full public financing of elections, and #opengovdata for participatory budgeting & ethics reform & more, but that’s a bit too much to hope for all at once perhaps.) Any Cong. offices want to take the lead on GitHub? Which offices are even on GitHub? Why not? Come on, it takes two seconds. Don’t fetishize your role as gatekeepers to the intentionally-closed-off, insistently-arcane legislative systems; yes it’s complicated, but bill-to-law process could be managed on GitHub right now, if a few basic understandings were in place.
I for one sure would love to see the next net neutrality bill in the 113th U.S. Congress include commits from EFF & Public Knowledge – and if a big telco & its lobbyists / lawyers have specific bill text contributions, to see the diffs on that. And then apply that similar process to every legislative item affecting our lives, with community-accountable experts going head-to-head with corporate lobbyists. For example (not the best example actually, but a prominent & pressing one), see case cited by Prof. Lessig (NYRoB, March 2012) in dialogue w/ E-Klein to illustrate systemic corruption – lack of public option introduced by House Progressive Democrats during #hcr debate. Drafting parts of that mammoth bill on GitHub, a commit could have been submitted by Rep. Grijalva & others on behalf of his caucus under his verified Git sername, and discussed on its merits in context — well this is actually too macro-scale a use case, but it’s a vivid one. Net neutrality legislation offers a tidier hypotethical, so as not to distract re: the specific policies & politics of #hcr, so let’s keep our focus on that topic.
I think there’s general agreement that open VCS for bills is possible, and I’d argue strongly its effects will be positive – and that there is slow-gathering momentum towards #opengov, of which this is a sensible core feature – we’ll see I guess. Here on OC, we already have free, libre, and open-source features to comment on and link to individual bill text sections (e.g. #CISPA, now #s2105), as well as to compare with a previous version. Help us build an open platform on OpenCongress for Git for proposed legislation. Philanthropists & charitable foundations, please make a grant to our 501c3 non-profit and we’ll get started right away on these innovative & user-friendly features for accountability & participation in lawmaking. It’s all possible on OpenCongress now, we just need funds to build some amazing open-source tools. Get in touch: david at opencongress, feedback & microdonations welcome as well.
Thoughts – Rob Richards, John Wonderlich & Daniel Schuman at Sunlight, Tom Bruce, Beth Noveck, Quora thread followers / contributors, others?
Let’s build VCS for laws on OC! Volunteer Rails programmers, get setup on our code & let’s get building. Philanthropists: drop us a line, give PPF a tax-exempt grant, and let’s make this happen for the public benefit and less systemic corruption in Congress. We have the technology & the design skills, so let’s write some public laws with, by, and for the public on OC.