Skip to Content
PlatformHow-to guidesPin evidence to your board

How to pin evidence to your board

Use this guide when a passage, a figure or a table is one you will come back to before a decision. You start with the evidence panel open beside a claim; you end with the item on My evidence board on your role home, rendered under its licence with its attribution line, and, if you choose, shared to the program board. Personal pins need only membership in the program; sharing needs program.documents.manage. Every surface here carries the status word designed until the R4 gates pass. A note on a pin has its control (Add a note beside Pin); a Pin control on a record page has none yet and is designed (see “Pin it”).

A pin never shows more than the evidence panel shows. A no-derivatives article stays a quote in context, a publisher-copyright paper stays metadata and link, and an open-access figure keeps its attribution line wherever the pin appears, including exports.

Prerequisites

  • Membership in the program (program.settings.read, held by every program persona) for your own pins.
  • program.documents.manage (scientist, quality reviewer, lead, owner) to share a pin to the program board.

Open the source

Choose the citation marker ([n]) under a claim, or Show me the source in the inline strip below it (in a thread), or Show me the source on a pin (on your role home). The evidence panel opens docked beside the thread or the role home (reference); the address gains ?source=<id> so the view can be shared and revisited.

Pin it

Choose Pin on the passage, figure or table card in the panel. Pin is a single control: it reads “Pinning” while the call runs and the card shows the inline line “Pinned to your board” (or “Not pinned.”) at once. The web app calls POST /programs/{program_id}/pins with PinIn {target_type: chunk | asset, target_id}; the API answers 201 with PinOut {id, program_id, user_id, board, target_type, target_id, document_id?, licence_code, chip_class, attribution_line?, third_party_suspected, integrity_status, note, created_at, updated_at} and audits pin.create. One pin per target per person: pinning the same item again returns the existing pin.

To pin with a note, choose Add a note beside Pin: a one-line inline form expands under the card with the field “Note (optional, up to 300 characters)” and a live count; Enter pins with the note, Escape collapses the form and returns focus to Add a note. Fact (verified in web/components/console/evidence-panel.tsx:93-96, 116-123 and web/lib/content.ts:290-291): the control, the form and the 300-character check exist | Consequence: the note is built, and a board card shows it under the pin. The API also accepts target_type: record in PinIn, and PinOut carries record_type and href for a record pin so the board can open it (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): both fields exist and a record pin on the board carries Open the record | Consequence: opening a record pin is built. Fact (verified by grep: PinControl is rendered only in web/components/console/evidence-panel.tsx): no record page carries a Pin control | Consequence: pinning a record from its page stays designed.

Read your board

My evidence board is the third region of your role home. Each pin renders as the panel would: the chip in the reader’s words (“open access (CC BY)”, “share-alike”, “open access, no derivatives”, “metadata and link”, “internal”), the attribution line on every open-access figure, table and passage, the share-alike line where it applies, and the correction or retraction flag when the watch has found a notice. A pinned table row carries its column header and unit. A record pin shows “Record: <type>” and Open the record, which follows PinOut.href to the record page. GET /programs/{program_id}/pins returns your pins plus the program board.

Share to the program board

Choose Share to board on a pin. The control confirms inline, the API copies the pin as a board pin (board: true, shared_from_pin_id set), re-checks the licence code and the third-party flag, and shows the result in place. A target suspected of being third-party content inside an upload is refused with 422 third_party_content and the pin stays personal; the line under the control says why. Sharing needs program.documents.manage and audits pin.share. Board pins appear on every member’s board and in the program board view.

Unpin

Unpin is a single control with an inline confirmation line; it calls DELETE /programs/{program_id}/pins/{id} (your own pin, or a board pin under program.documents.manage) and audits pin.delete. Unpinning a personal pin leaves a board copy in place; removing the board copy needs the manage key.

Troubleshooting

SymptomCauseFix
The pin shows “metadata and link” and no textthe source is cc_by_nc, publisher_copyright or unknownthat is the rendering the licence allows; use Gather or Find the source to look for an open-access copy (how to show me the source)
No figure on a pinned open-access articlethe article has not been gathered yet, or the file could not be mirrored (“image not available under this licence”)choose Gather under the claim (program.documents.manage); the successor copy carries the figures
422 third_party_content on Share to boardthe upload was flagged as a publisher’s paper or an embedded excerptkeep the pin personal; a holder of program.documents.manage may clear the flag with a reason if it is wrong
Share to board is not on the cardyou lack program.documents.manage, or the card is already a board pinthe control is shown only to holders of the key and only on personal pins; ask an owner or lead if sharing is part of your work
Share to board is disabledthe pin’s source is marked as suspected third-party contentthe control stays focusable and the line under it says why (verified in web/components/workbench/pin-card.tsx:101-106); keep the pin personal, or ask a holder of program.documents.manage to clear the mark with a reason
A flag “retracted” or “corrected” appeared on a pinthe weekly watch found a notice for the articleopen the notice from the flag and decide whether the claim still stands

Source: PRODUCT-CONTRACT.md sections 12.3, 12.7, 12.8 and 12.10; PRODUCT-PLAN.md Part 9 sections 3.1 and 3.4; api/app/auth/permissions.py (program.settings.read, program.documents.manage); api/app/services/documents.py (the three rendering groups); decisions/0029-licence-mapping-attribution-and-third-party-flag.md; decisions/0034-inline-interaction-no-popups.md