diff --git a/workflow-map.html b/workflow-map.html index cabc4a6..673c639 100644 --- a/workflow-map.html +++ b/workflow-map.html @@ -107,8 +107,9 @@ ul.next b{color:var(--ink)} assistant answers it from plant records and controlled documents, and shows its evidence. This page follows one question through the assistant, names the piece of software doing each job, and marks what already exists.
-Status as observed on the live host, 28 August 2026, mid-morning. -Every status below was read from the running containers, not from the plan.
+Status as observed on the live host, 28 August 2026, end of day. +Every status below was read from the running containers and probed by hand, not taken from the plan. +Where this page and the build documents disagree, this page is the later reading.
Two more things changed later the same day, both at the +customer’s direction, and both are worth understanding before the next demo. +The operator’s screen no longer asks anyone to sign in — it now admits the SCADA +machine by its network address alone and refuses everything else. And document management was +built and put live, out of order, ahead of the exam it was meant to follow. Operators can now +add and withdraw documents from a screen. Both are explained in section 3b.
One thing remains outstanding, and it is the one furthest outside this project’s control: a read-only login to the plant historian. Until it exists every -figure on screen is a stand-in, and says so.
Explains a signal, alarm or piece of equipment from the manuals and alarm records, quoting the document it came from.
These are ordinary software checks written in code, not instructions given to the AI. That distinction is the point: an AI can be talked out of an instruction, and cannot be talked out of a check.
-This is the part the current stand-in arrangement proves best. The placeholder answers are - put through exactly the same rulebook as a generated one would be, and a refusal is a correct - result rather than a fault. The rulebook is running today.
+The rulebook earned its keep today, on a real question. Asked how many high level alarms + there had been last week, the assistant produced an answer with a number in it — and the + check refused to let it out, twice, because no records had come back to support it. The + operator saw an error rather than a figure nobody could stand behind. A refusal is a + correct result, not a fault; what it exposed was a fault one layer below, in how the alarm + is filed. See section 2.
The question that cannot be answered. Asked today, on the running system: + “how many wet well high level alarms were there between 1 and 7 August?” + — the most obvious question anyone would ask at this station. It came back as an error. + The alarm is filed in the name list against the station; every one of its recorded + occurrences is filed against the wet well. The two never meet, so the count comes out + as nothing at all. Counted by equipment, that week holds 100 alarms.
+What did work is the part that matters most: the assistant had written an answer with a + number in it, and the rulebook stopped it leaving, because there were no records behind + it. The operator got an error rather than a figure nobody could stand behind. This is the third + place the same underlying mismatch has appeared, and none of the three can be fixed here — + the stand-in tables were built from the same name list, so “correcting” either side + would only make the two agree with each other and prove nothing. All three wait on the real + historian.
+Searches the controlled documents by meaning rather than keyword, so “lift the interlock” finds the right procedure even when the document says “interlock override”. Two rules are permanently on: withdrawn revisions are never returned, and every result carries its document number, revision, date, page and section — a passage that cannot be cited cannot be used.
-Search by meaning now works: the documents were indexed on 27 August 2026, once the model - account arrived. What it has to search is still the problem — three fabricated demo - documents, written so the document lanes had something to find. They carry deliberately - impossible document numbers and made-up figures so that nothing in them can be mistaken for - plant content.
+Search by meaning works, and it now has real material to search. Four real documents + were loaded on 28 August — three control descriptions and an instrument document + — alongside the three fabricated demo ones that were written so the document lanes had + something to find at all. The demo documents carry deliberately impossible document numbers and + made-up figures, and say so on every passage, so nothing in them can be mistaken for plant + content. What is outstanding is the rest of the real set, not the ability to hold it.
Procedures are now handled differently from everything else, and deliberately so. Ranking a procedure’s sections by how closely they match “how do I lift the interlock” returned the step list — the one part that must never be reproduced — and @@ -364,8 +392,9 @@ lane is fixed before any searching starts.
Procedures, manuals, alarm rationalisation and design documents are read, split into sections, and converted into a searchable form. Three habits matter: a numbered step sequence is never cut in half; the document’s type comes from the folder it was filed in, not from a guess; and a person confirms the document number, revision and date before anything is stored. A wrong revision on a procedure is a safety problem, not a tidiness one.
-The whole path has now been run on the host, end to end, with a person confirming each - header at a terminal — but on three fabricated demo documents, not real ones. That was - deliberate: it exercises the reading, splitting, header confirmation and storage without any - real document being handled before the reviewing arrangement is agreed. It also runs without the - AI model, which is why it could be proven now.
-The whole path has been run on the host end to end, first at a terminal on three + fabricated demo documents, and since 28 August through the new upload screen on four real + ones.
+The first real document was worth more than the entire demo set, and this is the part + worth repeating. An eight-page control philosophy exposed three faults in a single upload, none + of which any test or any demo document had caught, and every one of which left the screen + looking perfectly correct. The whole document had become one passage, because the PDF + reader produces no blank lines and the splitter had nothing to split on — eight pages + behind a single search entry, every citation reading “untitled, page 1”. Every + passage was labelled with the document’s revision instead of its title, because a cover + page collapses into a column of labels and the matcher ran past the line break. And publishing + the same document twice quietly duplicated it, leaving the same passage quotable twice with + nothing on screen to show it. All three are fixed; the document now splits into 19 sections that + match its own headings.
+The lesson is not that the code was careless. It is that fabricated documents are shaped + like what the code expects. Real ones are not, and only a real one could have shown it.
+Two of the three arrived in the last week. One remains, and it is the one furthest -outside this project’s control.
+outside this project’s control. Nobody outside this project is holding up anything else.Both AI steps now run, and the documents are indexed for search by meaning. Switching them on - was not the end of the work: five separate faults surfaced within the hour, every one of them - invisible while the stand-in was in place, and all five are now fixed and pinned by tests. The +
Both AI steps now run, and the documents are indexed for search by meaning. Switching them + on was not the end of the work: five separate faults surfaced within the hour, and three more + followed that afternoon when the first real document was uploaded. Every one of the eight was + invisible while the stand-in was in place; all eight are now fixed and pinned by tests. The parts a safety reviewer most needs to examine can now actually be examined.
One difference from what was asked for. Two model deployments were provided rather than three — there is no small, cheap model, so the labelling step runs on the large one. @@ -455,47 +497,200 @@ outside this project’s control.
All three names resolve and all four addresses now hand the visitor to the sign-in page - first. The operator’s page and the assistant behind it were moved onto a single address, - because the assistant’s own name does not resolve from inside the plant network and a - control-room browser would have failed on every question.
+All three names resolve. The operator’s page and the assistant behind it were moved + onto a single address, because the assistant’s own name does not resolve from inside the + plant network and a control-room browser would have failed on every question.
+Only the operator’s address works from inside the plant network. The other + three — and, importantly, the sign-in page itself — have no internal record, so a + browser on the plant network resolves them, gets correctly handed to sign-in, and then fails + there. It went unnoticed for weeks because the equipment that talks to this host never opens a + browser. It no longer affects the operator, who does not sign in at all, but it will catch the + next protected service anyone tries to open from the plant floor.
What is still unproven is the part no check from here can reach: an operator sitting - at a control-room PC, signed in, getting an answer end to end. Names resolving is not the same - as a person succeeding.
+ at a control-room PC and getting an answer end to end. Names resolving is not the same as a + person succeeding, and a mistake in the new address rule would look identical from here.Both were asked for by the customer, both are reversible, and both trade a +protection for convenience. Neither is a mistake — but neither should reach a wider audience +undescribed.
+ +An operator at the console should not have to complete a phone prompt to ask a question, and + nobody outside the plant should reach the assistant at all. So the operator’s screen now + admits one machine, by its network address, and refuses everything else — plant + network, remote access and internet alike.
+What it costs. This is an address list on a flat network with no boundary between the + office and plant sides, so anything that can take that address inherits the same unquestioned + access. It is a demonstration convenience, not a security control, and it is the first thing + proper network separation would replace. Two further consequences are easy to miss: the logbook + can no longer record who asked a question, only that somebody did; and engineers can no + longer open the assistant in a browser over the remote connection.
+The assistant behind the screen is unchanged and still fully protected — document + management depends on that and must stay there. Undoing this is a single configuration reload; + the sign-in rule was deliberately left in place.
+Step 9 was designed to follow the exam, for a reason: adding a way for more documents to + arrive makes a wrong answer harder to diagnose, not easier. It was built and put live first, at + the customer’s direction. Upload, convert, review, approve, withdraw and restore all work, + and four real documents have been through it.
+What it costs. Four things, all deliberate and all reversible. Nobody is checked: + the publisher is a name typed into a box, checked against a one-entry list with no password, so + anyone who reaches the page can claim it — rows are permanently marked as unverified so + they stay tellable apart once real sign-in goes on. Scanned documents cannot be read at all + and are refused rather than stored empty, because the proper document reader needs software this + host must not run. The two ways of loading a document must not be used on the same one, + or the older path cannot see what the screen loaded. And the conversion happens inside the + request, so a large document holds up its own upload.
+What has not moved is the judgement: nothing is quotable until a named person has confirmed + the document’s number, revision and date, and the database itself refuses an approved + document without them.
+Each step ends in a check that must pass before the next begins — so that when an -answer comes out wrong, there is one place to look, not four.
+Each step ends in a check that must pass before the next begins — so that when +an answer comes out wrong, there is one place to look, not four. Two of those checks have never +been run, and step 9 was built before step 8 rather than after it. Status below is what was read +off the running host on 28 August 2026, in the evening.
| Step | What it delivers | Status | What it needs |
|---|---|---|---|
| Step | What it delivers | Status | Where it actually stands |
| 1 | The store — where documents, equipment names and ready-made summaries live | Running now | Done. Live, checks passed. |
| 2 | The logbook — recording of every question, put in early on purpose so every later experiment is traceable | Running now | Done. Live, and recording the trial questions going through the chain now. |
| 3 | The documents — the real procedures and manuals, read in and searchable | Proven and indexed, on demo documents | Reading, splitting, human header confirmation, storage and search by meaning have all been run on the host — on three fabricated demo documents, indexed 27 August 2026. The header now also captures the document’s title and authorising role, because the answer writer was being asked for facts it had never been shown. What is outstanding is the real documents, and someone to confirm each one’s revision and date. |
| 4 | Access to plant history — a read-only login to the historian | Blocked | The historian server, a read-only login and agreed table names. Still outstanding, and now the only blocker — the model account arrived on 27 August 2026. |
| 5 | Cube — the data translator, with every definition written down | Running on stand-in figures | Running and answering questions. Two of its definitions were found to be wrong and fixed while proving it, which is what proving it is for. Two further questions about them are deliberately left until the real historian settles them. An engineer must independently confirm its first real numbers. |
| 6 | The assistant itself — the sorting step, the four lanes, the answer writer and the rulebook | Running, with both AI steps | All four lanes answer end to end on the host with a real model, through the rulebook. Five faults surfaced within an hour of switching the model on — every one of them hidden by the stand-in, every one now fixed and pinned by a test. The exam set grew from 67 questions to 75 to cover them. |
| 7 | The operator’s screen — the question box, the answer, the working | Reachable by name, not yet used by an operator | The name records arrived on 27 August 2026 and all four addresses hand the visitor to sign-in first. What remains unproven is the only part no check from here can reach: a person at a control-room PC, signed in, getting an answer. |
| 8 | The exam — 75 engineer-checked questions run end to end and scored | Now runnable, not yet run | No longer blocked: the model account exists, so the sorting step and the wording can both be scored. Eight questions were added covering the five faults found on switch-on. Pass mark unchanged: 85% correct overall, 95% on the two dangerous kinds, and zero breaches of the rulebook. |
| 9 | Document management by operators — uploading and withdrawing documents from a screen instead of a terminal | Designed, not built | Designed and deliberately held back until step 8 passes. Its settings are in place but switched off. |
| 1 | +The store — where documents, equipment names and ready-made summaries live | +Running now | +Healthy for eight days. It holds 92 passages from seven documents, the 8 equipment items and 56 +tags that turn “Pump 02” into a real tag, and — since step 9 — the upload +queue and a permanent audit trail that nothing in the system is allowed to delete from. Five +database logins with the split that matters: the answer path can only read, and only the +loading job can write documents. Checked by hand, not assumed: the reading login was proven unable +to write. |
| 2 | +The logbook — a record of every question, put in early on purpose so every later experiment is traceable | +Running now | +Both parts healthy for seven days, and every question since has been recorded: how it was +sorted and with what confidence, what was retrieved, how long it took, and whether the rulebook +passed or refused it. Every refusal is kept with the wording that caused it. One thing changed on +28 August: now that the operator does not sign in, the logbook no longer knows who +asked — only that somebody did. |
| 3 | +The documents — the real procedures and manuals, read in and searchable | +Running on real documents | +Four real documents have now been through it — three control descriptions and an +instrument document — alongside the three fabricated demo ones, for 92 passages in total. The +first real document was worth more than all the testing before it: an eight-page control philosophy +exposed three silent faults in one upload, every one of which left the screen looking +perfectly correct. The whole document had become a single passage, because the PDF reader emits no +blank lines and the splitter had nothing to split on. Every passage was titled +“Revision”, because a cover page flattens into a column of labels and the title matcher +ran on past the line break. And re-publishing the same document quietly duplicated it, leaving the +same passage quotable twice. All three are fixed, and the two loading paths are now held identical +by a test rather than by good intentions. What is outstanding is the rest of the real document set, +and a named reviewer for each. |
| 4 | +Access to plant history — a read-only login to the historian | +Blocked — the only one | +The only thing this project still needs from anybody. The server is still being built and +the read-only login has not been created; the connection settings sit on the host waiting, with the +password and database name blank. Also outstanding: the agreed table names, the firewall rule, and +confirmation of whether the historian stores time as UTC or local. That last one is not a formality +— three separate findings cannot be settled without the answer, and one of them decides +whether an alarm time on screen is right or a day out. |
| 5 | +Cube — the data translator, with every definition written down | +Running on stand-in figures | +Running as two containers — the translator and its own store, which is a hard dependency +rather than an optimisation — and answering the data lane against 145 stand-in alarms, 129,603 +level readings and 309 pump operations. Two of its definitions were found wrong and fixed while +proving it by hand, which is what proving it is for. Three findings are deliberately left open +until the real historian settles them, the newest found today: see section 2. Two further gate items +are ours, not anybody else’s — no number has been independently confirmed by an +engineer, and the ready-made summaries are not being written back into the store as the design +specifies. |
| 6 | +The assistant itself — the sorting step, the four lanes, the answer writer and the rulebook | +Running, with both AI steps | +All four lanes answer end to end on the host with a real model, through the rulebook. Proven +again today: an interlock question came back in 3.96 seconds with the governing +procedure’s identity, its prerequisites quoted word for word, its steps withheld entirely, and +the scope banner attached. Eight faults have been found and pinned since the model went on +— five within an hour of switching it on, and three more when the first real document went +through. Every one was invisible while the stand-in was in place. The exam grew from 67 questions to +75 to cover them. |
| 7 | +The operator’s screen — the question box, the answer, the working | +Live, never yet used from the control room | +The screen is live, and since 28 August it admits the SCADA machine by its network address with +no sign-in at all — see section 3b for what that costs. The refusing half of that rule +was checked from the host and works: this host, the remote connection and the internet are all shut +out. The half that matters cannot be checked from here — that the one machine it is +meant to admit is actually admitted. A typo in the rule would refuse the control room too and look +exactly the same from this side. Until somebody opens the page at the console, this step is not +finished, and no check written here can finish it. |
| 8 | +The exam — 75 engineer-checked questions run end to end and scored | +Runnable, and never run | +Nothing is blocking this and it has still not been done. The model account arrived on 27 +August, so both AI steps can be scored; no scorecard has ever been produced. The set covers 28 +historical, 18 procedural, 14 advisory and 13 reference questions plus 2 that should be refused as +unclear, every data question with its time window pinned so the answer does not drift between runs. +Pass mark unchanged: 85% correct overall, 95% on the two dangerous kinds, and zero breaches of +the rulebook. Two questions fail by design until step 4 lands. |
| 9 | +Document management by operators — uploading and withdrawing documents from a screen instead of a terminal | +Live, built ahead of step 8 | +Built on 28 August at the customer’s direction, before step 8 rather than after it. +It was sequenced after the exam for a reason: adding a way for more documents to arrive makes a +wrong answer harder to diagnose, not easier. Upload, convert, review, approve, withdraw and restore +all work and have been used on four real documents. Five deliberate shortcuts come with it +— see section 3b — the most important being that the publisher is a name typed into a +box with no password. What has not moved is the judgement: nothing is quotable until a named person +has confirmed the document’s number, revision and date, and the database itself refuses an +approved document without them. The one part of the design deliberately left out is choosing which +documents are in the searchable set. |