Add Scene 7 claim report workflow

This commit is contained in:
2026-08-22 17:02:30 +02:00
parent a7f99a2a39
commit cea0d56cb9
23 changed files with 638 additions and 82 deletions
+30 -16
View File
@@ -5,23 +5,25 @@ Demo: **GUPI Demo 1 — The Barricelli Files**
## Outcome
Scene 7 teaches one idea: a screenshot found during an OSINT search can become
source evidence.
Scene 7 teaches two linked ideas: a screenshot found during an OSINT search can
become source evidence, and a finding is only as useful as the report that cites
and explains that evidence.
The player opens a minimal OSINT board, reads **“Demonstrate OSINT skill: prove
Nils Aall Barricelli was an inventor,”** finds the relevant Google Patents result,
and pastes or uploads one screenshot. The board creates a document, extracts its
text, recognizes the source, and clears the level. A URL and written report are
not required.
text, and recognizes the source. The player connects that document to the authored
Claim, completes the evidentiary statement, and files the generated Case Report.
```text
paste screenshot -> document appears -> text is read -> source is verified
-> Scene 7 complete -> continue to Scene 8
paste screenshot -> document appears -> source is verified -> connect to Claim
-> submit thin report -> provenance feedback -> accepted -> Scene 8
```
## Product decisions
- One suitable Google Patents screenshot is sufficient.
- One suitable Google Patents screenshot is sufficient evidence, but not by itself
a complete investigation.
- Clipboard paste and file upload use the same server path.
- The image and OCR remain a real source document on the player's board.
- A known-source fuzzy match is the fast, deterministic victory path.
@@ -33,6 +35,16 @@ paste screenshot -> document appears -> text is read -> source is verified
- Scene 7 records `scene7.nils_inventor_proved`. Scene 8 owns the ceremony and
awards `barricelli_luggage`.
- Inconclusive evaluation never deletes or penalizes uploaded evidence.
- Scene 7 begins with one normalized, pinned Claim exhibit: **“Nils Aall
Barricelli was an inventor.”**
- A new thread begins with **“Proof that…”**. This placeholder intentionally
produces a report that must be improved.
- An accepted source connected to the Claim can earn a qualified pass while the
report is returned for missing date/source provenance.
- The source link is encouraged but optional; date, source citation, investigator,
and a completed evidentiary statement are required.
- Story advancement requires an accepted report when the template marks its report
as required.
## Shared identifiers
@@ -56,6 +68,8 @@ conditional in React or server business logic.
- `029_semantic_evidence_judging.sql`: clonable semantic rules, level-owned
evaluations, and semantic flag provenance.
- `030_evidence_match_source_metadata.sql`: author-only canonical source metadata.
- `031_claim_case_reports.sql`: Claim exhibits, stable exhibit citations, report
configuration, immutable submissions, and normalized submission issues.
- `server/ocr.ts`: plain-text extraction and Tesseract.
- `server/evidenceMatching.ts`: OCR-tolerant fuzzy passage matching.
- `POST /api/levels/:id/documents`: persistent upload plus OCR and matching.
@@ -237,8 +251,7 @@ type DocumentAnalysis = {
## Out of scope
- Scenes 16, Scene 8's ceremony/3D model, and Scene 9's fire mystery.
- Knowledge graph, Case Report, claims, red-thread reasoning, or multi-document
synthesis.
- Knowledge graph, general-purpose claim ontology, or multi-document synthesis.
- Web crawling, URL fetching, or requiring a URL for victory.
- Custom model training or the general story graph `llm_gate`.
- Deleting irrelevant evidence.
@@ -255,10 +268,11 @@ parallel schema work and never renumber an already-shared migration silently.
## Definition of done
From a fresh playthrough, the player reaches Scene 7 and pastes one accepted
Google Patents screenshot. One source document appears; MinIO asset, OCR, match
evaluation, and `scene7.nils_inventor_proved` are persisted; the goal completes;
the UI explains what was proved and offers Continue; and the story enters Scene 8.
Reload and duplicate evaluation are idempotent, another player's level is
unaffected, no URL was required, and `barricelli_luggage` is not awarded until
Scene 8.
From a fresh playthrough, the player reaches Scene 7 and sees one authored Claim.
They paste one accepted Google Patents screenshot, connect Exhibit 1 to the Claim,
and see **“Proof that…”** appear in the typewriter report. The first thin submission
passes the evidence but is returned for provenance; adding the date, source citation,
and a proper evidentiary statement produces an accepted report and enables Continue.
MinIO asset, OCR, match provenance, stable exhibit number, connection, report
submissions, and `scene7.nils_inventor_proved` persist. A URL improves the report
but remains optional, and `barricelli_luggage` is not awarded until Scene 8.