Skip to Content
PlatformReferenceEvidence panel

Evidence panel

The evidence panel is the docked panel that opens beside a thread or beside your evidence board on the role home when you choose a citation marker ([n]) or “Show me the source” (opening it beside a record page is designed). It shows the source behind a claim, and how much of that source it may show is decided by the source’s licence code, never by who is asking or by the wording of a licence statement. The rule set of phase 4 is the one the console already applies: the same three rendering groups, unchanged, decided in ADR 0028 and mapped for every new source in ADR 0029.

Everything on this page is designed until the R4 gates pass; the gate set includes one screenshot per rendering below, captured with zero browser console errors. The panel is docked, never an overlay: it opens on the right at 1024 px and wider, becomes a full-width stacked view with a back control at 390 px, closes with Escape, never traps focus, never covers the composer or the decision buttons, and its target lives in the address (?source=<id>) so back, forward and shared links work.

What you see, by licence code

Licence codeChipWhat the panel shows
cc0“public domain” or “open access (CC0)”the full cited passage in context; figures and tables inline from the article’s own files; a page viewer for the article PDF
cc_by“open access (CC BY)”; “reproduced with acknowledgement” for guidance and registry sources whose terms ask for acknowledgement rather than a Creative Commons licenceas cc0, plus an attribution line (title, authors, source, licence link) on every figure card, pin, table and export; guidance clauses carry “excerpt; see full document”
cc_by_sa“share-alike”as cc_by; a share-alike line on every derived table and every skill output that mixes share-alike rows
cc_by_nd“open access, no derivatives” (chip class no_derivatives)the cited quote in context with an attribution line (title, authors, source, licence link) on the quote and on every pin of it, the metadata and “Open at publisher”; no figure capture, no thumbnail, no PDF viewer, no export of derived text (a resized thumbnail is a derivative)
cc_by_nc, publisher_copyright, unknown“metadata and link”title, authors, journal, year, DOI and “Open at publisher”; a locator for the cited passage, never its text; the abstract only when the abstract’s own licence code allows a passage, or as a quote capped at 400 characters when it allows a quote, otherwise nothing
customer_internal“internal”, or “Uploaded by your organisation. Your organisation’s licence applies.” when third-party content is suspectedR4: the notebook entry from its canonical record and SOP text with search inside the viewer (no page claim); R5: the rendition PDF with page anchors

Three things never change the rendering: the licence statement printed beside the chip (it is display text), the persona of the reader, and the wording of the claim. Author manuscripts stay excluded from full text. When a figure’s file cannot be mirrored under its licence the card keeps the caption and reads “image not available under this licence”.

Chips

The chip is derived from a closed set of eight statement classes: public_domain, cc_by, cc_by_sa, acknowledgement, internal, third_party_suspected, locator and no_derivatives (the quote-only chip of cc_by_nd, added 2026-09-16). The licence codes page lists which sources map to which class and records that the API and web renderers agree on all eight. In the panel a scientist reads the chip text, never the class or the code: “Source: Smith 2024, Figure 3” with its attribution line; “Internal: notebook entry TRV-101-0042”; “Metadata and link”; “Agent-generated, unsigned” on an agent’s draft.

The attribution line

Every cc_by, cc_by_sa and cc_by_nd source carries one line, title, authors, source and licence link, on every figure card, table, pin and export that shows it; on a no-derivatives source the line sits on the quote and on every pin of it, because CC BY-ND requires attribution (contract 12.3, 2026-09-16). Fact (verified in api/app/services/workbench.py:402-408 and api/app/services/documents.py:634-648): the API’s attribution_line_for keys on rendering_decision(code).attribution_line, and the quote-only decision for cc_by_nd sets that flag true, so the line covers cc_by, cc_by_sa and cc_by_nd on the quote and on every pin of it | Consequence: this page states the contract and the licence codes page records the same three codes. Share-alike sources add a second line on any derived table or skill output that mixes their rows, so a comparison table built partly from a share-alike database says so. Guidance documents reproduced with acknowledgement label each clause “excerpt; see full document” and link to the full text at the publisher.

Figures, tables and pages from open-access articles

For articles whose licence allows full text, the worker captures the article’s own files into cards the panel can show: figures, tables (each row becomes a citable line with its column header and unit, so a citation to a value carries what the value means), supplementary files and PDF pages. Capture never changes a document you are already reading: it runs on a successor copy, so the position of every passage you have cited stays where it was. Files come from the article’s open-access prefix or its supplementary archive, are copied once into the program’s own storage and served only through a signed, expiring link that is written to the audit trail on every open. Publisher-copyright, non-commercial, no-derivatives and unknown sources skip capture; uploaded internal PDFs skip figure capture.

Third-party content inside uploads

An uploaded or synced PDF is often a publisher’s paper held under your organisation’s subscription, and an SOP often embeds pharmacopoeia excerpts. On ingest the worker looks for a DOI or publisher metadata and, when it finds one, marks the document as third-party suspected. Such a document renders inline only to members of the program and never appears in exports, shared boards, lens briefs, shared memory or full-text fetch successors. Its chip reads “Uploaded by your organisation. Your organisation’s licence applies.” A person with program.documents.manage can set or clear the flag with a reason from the document row (the control expands inline in the row); the change is audited as document.third_party_flag.

Retraction and correction flag

A weekly watch reads correction and retraction notices for every cited article. When one is found the document is marked corrected or retracted with the notice reference, and the flag renders on every citation marker, pin, scorecard cell and skill output that cites the source. A new version of an open-access article re-runs capture as a new successor copy.

Pins and your evidence board

A pin points at a passage, a figure or table, or a record, and is rendered on your board exactly as the panel renders it, with the same chip, attribution line and flags. A record pin carries record_type and href in PinOut so the board can open the record (contract 12.3, recorded 2026-09-16). Fact (verified in api/app/schemas/workbench.py:92-93 and web/components/workbench/pin-card.tsx:40-41, 91-92): PinOut carries both fields and a record pin on the board offers Open the record, which follows href | Consequence: opening a record pin is built. A note on a pin is entered through Add a note beside Pin in the panel (verified in web/components/console/evidence-panel.tsx:93-96, 116-123); no record page carries a Pin control yet, so pinning a record from its page is designed. Personal pins need only membership; “Share to board” copies the pin to the program board, re-checks the licence and the third-party flag in place, and refuses third-party-suspected content (422 third_party_content). Pin, unpin and share are single controls with an inline confirmation line; nothing opens away from the card. See How to pin evidence to your board.

“Show me the source”

The citation marker is the entry point. Under any claim, an inline strip offers Show me the source (opens the panel), Gather (fetches the open-access files for a source you already have; needs program.documents.manage; offered only for cc0, cc_by and cc_by_sa, and the API refuses every other code, customer_internal included, with 422 licence_locator_only and a third-party-suspected document with 422 third_party_content, checked first. Fact (verified in api/app/services/documents_assets.py:441-446): request_gather refuses the third-party flag first, then any code outside the redistributable set, then a document that is not ready | Consequence: both refusals are built) and Find the source (a bounded search that proposes one Source). The proposal’s sentence “best of N results; N-1 not shown” and its link to the search render only from two input fields of evidence.propose_source carried in the interrupt payload, candidates_count and search_href; when either is absent the card shows the honest line “<n> searches run; the number of results was not recorded with this proposal” and never derives N from anything else. Fact (verified in api/app/tools/catalogue.py:463, api/app/tools/handlers.py:998-1000, api/app/services/interrupts.py:62 and agent/trovensa_agent/fake_console.py:606): the tool accepts both fields, the handler checks candidates_count, the interrupt payload carries them and the reader run writes them from its search | Consequence: the fixed sentence is built and renders whenever a proposal carries the two fields; the honest line remains for a proposal without them. Accepting a proposed source records a human-origin suggestion, never an observation, and the Accept control stays focusable but cannot act until you have opened the panel for the proposed passage; the line under it says why (verified in web/components/console/approval-card.tsx:183, 461). A claim by an agent that has no citation renders hollow and can only be an assumption. See How to show me the source.

Source: PRODUCT-CONTRACT.md sections 12.1, 12.3 and 12.10; PRODUCT-PLAN.md Part 9 sections 3.4 to 3.7; api/app/services/documents.py (the three rendering groups, unchanged); web/components/console/evidence-panel.tsx (the renamed viewer); decisions/0028-abstract-excerpt-and-manuscript-display.md; decisions/0029-licence-mapping-attribution-and-third-party-flag.md; decisions/0034-inline-interaction-no-popups.md