It took a while to settle on a reliable way to semantically parse a party's full platform PDF and accurately summarize all of the distinct promises therein but here's my attempt. I wanted to redo my process and make it more deterministic. The nice thing about the overhaul is it's much easier to suss out duplicate promises now. I've also shifted away from Internet Archive links to a saved campaign page. Instead of that, wherever possible I'll be hosting and linking to the original platform PDF. I think this is a good move both for posterity, and for easy citation. Campaign sites tend to come and go, or they get malformed during the archiving process; this is a much better way to preserve this historical document.
Doing this gave me some interesting options. For instance, the PDF that has been backed up from the CPBC campaign has been hashed so we'll be able to tell if it changes over time. This website doesn't really have a document change tracking feature built into it, but I'm sure we can add some indicator in the future.
You may also notice there is now a way to distinguish a promise that is active and in play from a promise from a previous term. I'm still puzzling out how to better visualize legacy promises that aren't currently relevant. To be honest I think our visual cues could use some work anyways.