Prompt versioning
How FRA Flow pins each AI paragraph to the exact prompt + AI behaviour that produced it, so the past stays reproducible.
The AI's prompts evolve. The model evolves. House style evolves. For a report signed off in 2026, none of that should matter; the audit trail must let you reproduce exactly what the AI was asked in 2026 and what it returned, no matter what year you ask the question. This page is how that works.
What is pinned per paragraph
Two values are stamped on every AI-written paragraph at the moment of generation:
- Prompt fingerprint. A short identifier that points at the exact prompt template the AI was given. Templates are stored versioned, so the fingerprint always resolves to the same text years later.
- Model fingerprint. Which AI wrote the paragraph (the named model identifier at the time the paragraph was produced).
Both are persisted alongside the paragraph and embedded in the final PDF.
What happens when prompts change
Prompts get tuned: better phrasing for UK assessors, stricter guards on quantified detail, tighter word counts. Every time a prompt is updated, the new version produces a different fingerprint. Old paragraphs keep their original fingerprint; new generations on the same paragraph (regenerate) get the new one.
So the report archive grows a record like:
- 12 March 2026: section 15.7 paragraph generated against prompt v3a.
- 18 May 2026: same paragraph regenerated against prompt v3b (after the prompt was updated to be stricter on compartmentation language).
Both versions are preserved against the report's version history. The signed-off version of the report carries the fingerprint of the prompt that produced its words.
What happens when models change
Same shape. The named model identifier at the time of generation is recorded against the paragraph. A future audit can resolve "which AI wrote this" by looking up the identifier against our model catalogue. Models that have been retired are still resolvable; we keep the catalogue as part of the audit infrastructure.
Determinism
The AI is configured to behave deterministically: same inputs plus same prompt fingerprint produces the same paragraph text. That is a property of how the AI is invoked, not magic. It means an auditor in 2030 can ask: "Take these observations and re-run them through the prompt that signed-off this report." The answer is the same words.
The determinism only holds if the input set is identical. A regenerate after a re-classification (an observation moved to a different section) produces a different paragraph because the input changed; the audit trail records the regenerate-with-new-input as a new history entry.
When the past becomes irreproducible
There are a small number of edge cases where the original output cannot be perfectly re-run:
- The AI provider deprecates the named model entirely. A few months of notice is typical; we can stamp a "model retired" flag on the paragraph at that point so the audit trail is honest about the limit.
- The prompt template is force-replaced (e.g. a typo fix that does not change semantics). We flag these as a soft version bump, not a new fingerprint, so old paragraphs do not get retroactively challenged on a cosmetic change.
Both cases are extremely rare and are flagged in the version history.
Why the user does not see fingerprints in the workbench
By design. The fingerprints are infrastructure for the audit trail; reviewers do not need to think about them while working. They surface in the report PDF appendix and in the admin reports archive when an audit needs them.
If you want to see the fingerprint for a specific paragraph in a signed-off report, the paragraph metadata is in the PDF appendix and in the reports archive. The route from "I have a report I signed in 2026" to "show me the prompt that produced this paragraph" is two clicks: open the report, open the paragraph metadata.
Where to go next
- The audit trail for the full set of metadata recorded per paragraph.
- Hallucination guards for the checks that run before sign-off using this metadata.
- How AI drafts work for the generation pipeline.