Architecture
How it's built
The path of one page from the file to the released PDF; the rules, in the order they apply; how a number gets from a measurement onto the overview; and where this demonstration runs. Each picture is drawn from the same code paths it describes.
From a file to a released record
Three stages, and only the last can release anything. The engine proposes; the reviewer's screen records what a person decided; the export applies only those decisions, and refuses until every page has one.
In
The engine proposes
A person decides
Out
Every offset in the system indexes the same page text, and the reviewer's screen renders that text as characters rather than as a PDF, so the reviewer looks at exactly what the redaction will be applied to.
The rules, in order
The first rule that settles a span decides it, so the order is the design: the requester's own information first, then identifiers that are sensitive whoever holds them, then what is not personal at all, then capacity, then what is public. A span no rule settles is withheld and escalated. This list is checked against the code each time the site is built, and the build fails if they differ.
- E1Could it be the requester, or someone else?A first name the requester shares with another person in the record is escalated, not guessed.
- K1The requester's own informationTheir name, address, file number and contact details go back to them.
- K7Born more than 110 years ago, in an archival recordOnly when the request is for archival records, and only on a birth the record itself shows.
- R1Sensitive whoever holds itA health card or social insurance number, a date of birth or a bank account is withheld: a director's health number is not about being a director.
- R1A family word that points at someone"The client's sibling" identifies the sibling to a requester who knows the family, so it goes with the name.
- R1The parties to a confidential complaintWithheld with their job titles: a title released beside a severed name identifies the one person who holds it.
- K6Not about a person at allPlaces, dates, organisations, programmes and statutes.
- E2Two people in one spanWhere the cut between them cannot be made cleanly, the reviewer is asked where.
- K2An official acting in that capacityA name paired with a title anywhere in the record: in a signature block, a letterhead or an email header.
- K2An official's work contact detailsA work telephone number or address in the official's own signature block.
- K3Already publicOn a published register, such as the list of ministers, with the source recorded.
- K2On the staff directoryMatched on the work email address alone, and only when the public body supplies a directory.
- K2A rank is a titleIn a Defence record, a rank beside a name places the person as a member acting in that capacity.
- K4Dead more than twenty yearsOnly when the record itself states the date of death; otherwise the person may be alive.
- ?The model, if it is switched onAsked about what no rule settled, on placeholders, through the gateway; its answer is used only above the measured threshold.
- E1Nothing settled itWithhold, and ask a person.
There is no rule that releases something because nothing matched. The last step is always "withhold and ask a person", and the optional model is asked only about what reaches it, with its answer accepted only above a confidence threshold measured on separate records.
The reviewer's screen
Server-rendered pages and about a hundred lines of hand-written script, with nothing fetched from anywhere else, so it runs with the network cable out, which is where records like these are usually read. Every action is one form post and one row in the log.
Keyboard first
W withholds, R releases, E escalates, N moves to the next undecided span, so a page can be worked without the mouse.
Select what it missed
Selecting any text offers to withhold it. Detection finds 98.6% of spans, and a reviewer who could only answer the tool's list would inherit its misses.
Withhold once, withheld everywhere
Withholding a full name, an email address or a number withholds every other exact occurrence in the record, each as its own logged row. Releasing never spreads.
Release the rest
Once the third parties are withheld, the remainder of a page can be released in one action, logged span by span with that reason.
Changes are rows, not edits
A reviewer who changes their mind adds a row; the earlier one stays. The log stores a hash of withheld text, not a second copy of it.
Complete means complete
A page cannot be marked complete while any span on it is undecided, and the refusal names them.
How a number reaches this site
No figure on the overview is typed. Each is read, when the site is built, from a table a measurement command wrote, and the build fails if a figure is missing or no longer reads as it did.
- Cast the people firstInvented personas get roles before any document exists: requester, official, third party, public figure, the deceased.
- Write the recordsSix kinds of document from templates, rendered to PDF, Word and email, and some degraded into scans. The right answer for every span is known.
- Run the tool and score it
sever reportruns every configuration and scores it against the labels, with intervals resampled over documents. - Write the tablesThe same command writes the results files and splices the tables into the README; nobody edits them.
- Build this site
sever sitereads those files, runs the demonstration's letter through the engine, and fails on anything it cannot read.
The reviewer study, the scanned track and the published releases follow the same path
with their own commands: sever study report, sever eval-scanned
and sever eval-releases.
Where this demonstration runs
One container beside project 04's gateway on a small virtual server in Beauharnois, Quebec, behind the same Caddy. It calls no model, so it costs nothing to run and cannot be made to spend money.
You
The edge
The container
The dashboard counts decisions across every visitor, and nothing else: no text, no address, no identifier. The counts live in the process and start again when it does.