A project manager asks four questions: what is at risk, why is it happening, what will it
impact, and what should I do next. This system answers all four with rules, graph traversal
and arithmetic — then hands the finished answer to a language model whose only job is
to put it into sentences it is not permitted to change.
The pipeline
Everything up to and including the assembler is deterministic. The model sits at the far
end, receives findings it did not produce, and returns prose — never a figure.
The orange box is the entire generative surface. Figures reach the model as
placeholder tokens — {{delay_days}}, not 12 — and the
server fills them in after validation. A wrong number is not merely detectable; it has
nowhere to enter from.
What each producer answers
They run in parallel and stay separately inspectable, so a PM who distrusts one finding can
open the rule that fired, the records it read, and the version of the table it read them
against.
Rules
What is at risk?Editable decision tables, with a replayable trace of what fired on which records.
Schedule
What will it impact?Critical-path arithmetic over the task graph — delay days and the milestones they move.
Temporal
Why is it happening?Ordered state changes, matched against named hypotheses, and only where the timestamps permit the claim.
Retrieval
Has this happened before?Similar past cases and cited passages from meeting minutes and status reports.
The rule that makes root-cause honest
Causality is a claim about ordering, and our two sources do not carry the same time
information. A Jira changelog timestamps every transition exactly. A hand-maintained
spreadsheet only shows what is true now — so a change found by diffing two scans
happened somewhere between them. Treating that interval as a point is how a system
starts asserting causes it cannot support.
The test is interval arithmetic: one event precedes another only when its latest
possible time falls before the other’s earliest. Anything that fails is discarded
before assembly — the model is never shown a link it could narrate into a cause.
What this architecture rules out
Three things the design deliberately refuses, each because it would put a figure or a claim
beyond the reach of an audit trail.
No model-produced dates or counts.
Prose arrives with placeholders and is rejected outright if it contains a digit. This also
rules out a temporal graph database: the leading option assigns edge validity intervals
with a language model, which is the same thing wearing a different hat.
No causal claim the timestamps cannot carry.
Unprovable orderings are dropped rather than shown with a caveat, because a caveat is
something a reader can skip.
No finding without a source record.
Every domain row keeps a pointer to the exact API response or spreadsheet cell it came
from, so the evidence panel is a property of the schema rather than a promise about
prompting.