Fleet Schemas ↑↓ move within a pane · ←→ move between panes · Enter opens · Esc backs out
Paper 71 fields + 45 fields

research/Paper

ids list of object
This record's own identities: the outside addresses that say which real thing this record is (arXiv id, DOI, ORCID, Apple episode, homepage). Each address belongs to exactly one record in the whole store; a second record holding it means the two are one thing and must be merged. Order is meaningful: the first provider identity of a Media record is its preferred recording.
source one of: arxiv-paper | doi | openreview-forum | openreview-profile | openalex-author | openalex-work | openalex-source | orcid-profile | semanticscholar-author | semanticscholar-paper | x-profile | substack-publication | wikipedia-page | linkedin-profile | program-profile | facebook-profile | instagram-profile | github-profile | huggingface-profile | dblp-author | google-scholar-profile | pypi-profile | apple-podcasts-episode | apple-podcasts-show | youtube-channel | canonical-url | homepage | lesswrong-profile | $conf-talks | youtube-video | vimeo-video
no description declared
required
url string matching /^https?:\/\/.+$/
Canonical URL whose shape must match the selected source. HTTPS is required except for a homepage or canonical-url whose description records the failed HTTPS attempt with HTTPS-FAILED: followed by the observed failure; HTTP homepages render as plain links, never fetched or embedded.
path string matching /^\/.+$/
Absolute path into a $-prefixed skill source's owned store; omitted when the location derives from another identity on this record.
metadata object OR object OR object OR object OR object OR object OR object OR object OR object OR object OR object OR object OR object
An artifact pointer's provider comes from its source's registry entry unless metadata.provider names a saved-copy owner: site-warc on canonical-url or doi, or query-lesswrong on a canonical-url or related-url forum post. New saved-copy pointers state their owner explicitly; historical canonical-url captures may omit it.
form 1 object OR object
Provider-backed arXiv absence or artifact result.
required
form 1 object
Provider-backed absence of an arXiv preprint for this Paper.
required
unavailable exactly "preprint"
What the provider could not supply and the only discriminator of this metadata arm, such as pdf; a provider-specific marker key in its place is banned.
required
reason one of: arxiv-search-miss
The provider-typed cause of that absence drawn from this subject's closed vocabulary, such as closed; free text or a cause invented at the call site is banned.
required
recheck string matching /^(snapshot-v\d+|final)$/
Where this absence sits in the recheck cycle: the arXiv search snapshot that last looked, such as snapshot-v298, or final once the paper is over 18 months old and is never re-checked; any other value is banned.
required
form 2 object
Pointer to a query-arxiv-owned PDF artifact, validated when it was saved.
required
artifactPath non-empty string
Absolute path into that provider's own artifact store, such as <provider-store>/papers/<id>.pdf; a relative path or a record-local copy is banned.
required
form 2 object OR object
Provider-backed DOI acquisition result.
required
form 1 object
Provider-backed absence of usable PDF bytes for a DOI Paper, whether no source was recorded, the selected host refused them, or every open-access source failed and the mirror fallback refused (mirror-refused).
required
unavailable exactly "pdf"
What the provider could not supply and the only discriminator of this metadata arm, such as pdf; a provider-specific marker key in its place is banned.
required
reason one of: closed | no-direct-pdf | doi-not-found | pdf-host-http-403 | mirror-refused
The provider-typed cause of that absence drawn from this subject's closed vocabulary, such as closed; free text or a cause invented at the call site is banned.
required
form 2 object
Pointer to the validated full text proving a DOI Paper: a query-unpaywall PDF, or a site-warc capture of the publisher's own page when provider is site-warc.
required
artifactPath non-empty string
Absolute path into that provider's own artifact store, such as <provider-store>/papers/<id>.pdf; a relative path or a record-local copy is banned.
required
provider exactly "site-warc"
Set only when the publisher serves no PDF anywhere (Distill is the case): the pointer then names a site-warc capture of the publisher's own article page instead of a query-unpaywall PDF, accepted only after every PDF route failed. Absent means the ordinary query-unpaywall PDF proof.
form 3 object
Pointer to a query-openreview-owned PDF artifact, validated when it was saved.
required
artifactPath non-empty string
Absolute path into that provider's own artifact store, such as <provider-store>/papers/<id>.pdf; a relative path or a record-local copy is banned.
required
form 4 object
Provider-backed absence needed to keep an affiliation-less Person visibly blocked.
required
unavailable exactly "institution"
What the provider could not supply and the only discriminator of this metadata arm, such as pdf; a provider-specific marker key in its place is banned.
required
reason one of: openalex-institution-absent
The provider-typed cause of that absence drawn from this subject's closed vocabulary, such as closed; free text or a cause invented at the call site is banned.
required
form 5 object
OpenAlex-reported citation count for this paper.
required
citedByCount integer >= 0
OpenAlex citation count observed when this surface was last read; counts differ by index, so it is never copied onto another source's row.
required
form 6 object
Semantic Scholar-reported citation count for this paper.
required
citedByCount integer >= 0
Semantic Scholar citation count observed when this surface was last read; counts differ by index, so it is never copied onto another source's row.
required
form 7 object
no description declared
required
finished exactly true
Apple Podcasts has counted at least one full play of this episode, read from the user's library at the row's checkedOn. Written only as true: a play count above zero never goes back down, so absent means not finished as far as anyone has looked. This flag records completion, not its date; live play counts and playheads stay in Apple's library.
lastPlayedAt string matching /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/
Apple Podcasts' last-played time for this episode, as a UTC ISO-8601 instant from the user's library. Written by the listening pass alongside finished when Apple supplies it, including for an episode already marked finished. A missing provider date leaves the stored value unchanged. This is the last play, not the time the episode was first completed; the Media page shows it as Last played.
form 8 object
no description declared
required
artifactPath non-empty string
Absolute path into that provider's own artifact store, such as <provider-store>/papers/<id>.pdf; a relative path or a record-local copy is banned.
required
provider one of: site-warc | query-lesswrong
Owner of the saved copy. query-lesswrong is permitted only for a LessWrong, Alignment Forum or EA Forum post and holds the full post followed by every API comment. site-warc, or an omitted provider on a historical row, names the retained page capture. A new save never overwrites historical evidence.
form 9 object
no description declared
required
artifactPath non-empty string
Absolute path into that provider's own artifact store, such as <provider-store>/papers/<id>.pdf; a relative path or a record-local copy is banned.
required
provider exactly "query-lesswrong"
The saved-copy owner for this LessWrong, Alignment Forum or EA Forum post. The pointer includes the complete post and comment thread and never changes the Paper's canonical full text.
required
form 10 object
no description declared
required
artifactPath non-empty string
Absolute path into that provider's own artifact store, such as <provider-store>/papers/<id>.pdf; a relative path or a record-local copy is banned.
required
provider exactly "site-warc"
no description declared
required
form 11 object
conf-talks session identity for one Media document.
required
sessionId non-empty string
Stable conf-talks session identity defined by the provider skill.
required
checkedOn string matching /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/
When this surface was last read AND adjudicated as this record's own, as a UTC ISO-8601 instant; paired with a leading VERIFIED: in the description and never stamped by an auto-attach - except on a citation-count row (openalex-work, semanticscholar-paper), where it is when the provider reported the count and carries no VERIFIED: stamp, and on an apple-podcasts-episode row carrying finished: true, where it is when the user's Apple library was read and likewise carries no VERIFIED: stamp.
description non-empty string
What the surface supplied or a caveat specific to it.
state one of: stub | hydrated | enhanced | highlighted
Last proven level; each level includes every requirement of the levels below it: stub (identity only), hydrated (stub plus a saved PDF, or for a web-native Paper a saved copy of its canonical page), enhanced (hydrated plus LLM curation), highlighted (enhanced plus the user's highlight).
required
refs object
Every relationship between this record and another record, grouped by the other record's type. Each entry is one relationship row: a `url` naming the other record, plus only the facts that belong to that pairing, the way a link table in a database holds them. A `url` is the other record's w.sh page, or, when no such record exists yet, an outside address an agent could turn into one if asked (a Hugging Face profile for a Person, an Apple show page for a show). An outside address an existing record already holds in its `ids` is refused; use that record's w.sh page. A `name` on an entry is the name as credited here, kept even when the other record spells it differently. Links inside written text and the evidence inside saved check rulings are not relationships and stay where they are.
8,027
person list of object
Author credits in published order, every entry an author, linked to Person records once resolved; omitted only on an identity-only stub. Repeated credited names are kept in order.
name non-empty string
Author display name as credited on the paper.
required
url reference to person → person
This author's Person page, https://w.sh/person/<slug>, written only after deciding this credit is that exact human: from the Paper's verified OpenAlex authorship or an adjudicated edit, never from a name match alone. A credit without a url stays a plain name in its published position. The Person page lists its papers by reading this field.
venue list of object
Where the paper was published. The venue page counts and lists its papers by reading this.
url reference to venue → venue
The venue series that published this paper, as its page https://w.sh/venue/<slug>, with no #year; the first four characters of the paper's date pick the edition. The Paper stores this because its publication record states it; the venue page counts and lists its papers by reading this field.
name string
Human-written venue or appearance label, kept when it says more than the venue page does (a workshop or a journal issue), or when the venue has no page.
track string
Which track of the venue accepted this paper.
presentation string
How the paper was presented, such as a poster or a talk.
interest non-empty list of object
Interests this record belongs under, each as its interest page, e.g. [{ url: https://w.sh/interest/jung }]. Most of w.sh is AI research, which needs no tag; this field marks records from a separate personal interest so they are never mixed into the AI material and a public view can hide them by interest. Every record about Jungian or depth psychology - its analysts, its podcasts and talks, its books and papers - MUST carry the jung interest, added in the same write that creates or curates it, because the user asked for it "so it doesn't get mixed up with ai stuff that is majority of w.sh so later if we open up the wsite to public, we can hide those". Tag by what the record is about, not by who appears in it: an AI researcher who once spoke on a Jungian podcast keeps their Person untagged while that episode is tagged. The interest page lists every tagged record in its Referenced by panel, so a record stores the tag and the interest stores nothing back.
url reference to interest → interest
The interest page this record belongs under, https://w.sh/interest/<slug>.
required
name non-empty string
Paper title as published; omitted only on an identity-only stub.
8,050
date string matching /^\d{4}(-\d{2}(-\d{2})?)?$/
When the paper was published, as a quoted string at the precision the source gives: "2026", "2026-03", or "2026-03-14". Its first four characters are the publication year: the venue edition year for a paper published at a venue (with the refs.venue entry it picks the edition), otherwise the year the work first appeared publicly. A month and day, when present, are the day it first appeared publicly (arXiv first version, post date, thesis date), kept only when that day falls in the year written here, so an arXiv preprint from the year before its venue edition stays year-only. Never sharpen a year-only source to a month or day, and never take a month or day from a source whose year disagrees with the year written here. Omitted only on an identity-only stub.
8,029
genre one of: method | empirical | theory | survey | position | guide | benchmark
What kind of contribution the paper makes - what the reader walks away with: method = a new technique or built system (a tool); empirical = findings from experiments (a measured fact); theory = results from proofs, formal models, or conceptual arguments, with no experiments (a derived fact - the reader checks the assumptions, not the data; e.g. Michael K. Cohen's lecture "Expected Behavior of Advanced Artificial Agents"); survey = a map of an existing field; position = an argument for what the field should do; guide = practical advice for a reader in a given situation, such as a careers guide (a how-to - the reader asks whether to follow it); benchmark = a test or dataset others train or evaluate on. A checkable classification of the paper's own form, never a topic label; when in doubt, pick the genre the paper's own claims lean on. Each genre's ClaimSet guide lives in references/record-contracts.md.
1,713
abstract string
Published abstract.
5,843
enhanced object
Human-curated Paper fields.
1,703
summary object
Sectioned sidebar summary of the paper.
text non-empty string
What the paper does.
required
intuition non-empty string
Concrete intuition for the paper.
whyItMatters non-empty string
Why the paper matters.
primer object
Teaching block: written by an LLM FROM THE ACTUAL PAPER so the user can place the work without reading it - never from model memory of similar titles; every claim must be checkable against the stored abstract and PDF.
problem non-empty string
Teach the paper as a lesson, in this order: the QUESTION (what could not be done, or was believed, before), their MOVE (what they did differently, plain words), the RESULT (what it showed). Two-three sentences. For a survey, the question is the field's fragmentation. Example: "How do you train a generator with no loss for looks-real? Make a second network be the loss: a discriminator's failures become the training signal. The generated samples fooled it."
required
intuition non-empty string
Teach the mental model the reader keeps after forgetting details - "think of it as..." - never a restatement of problem or impact prose. Example: "A counterfeiter and a cop training each other until the fakes pass."
significance non-empty string
Teach where the paper sits in the field's conversation - what it built on, displaced, or spawned, with NAMED relations. No method restatement; personal significance belongs in highlight. Rendered as Markdown: a named work or person with a w.sh record links on first mention, as [¶ Title](https://w.sh/paper/<slug>) or [Name](https://w.sh/person/<slug>). Example: "Killed hand-crafted likelihood objectives for images; the adversarial-training family descends from it."
highlight string matching /^.{1,140}$/
The user's one-line reason this paper matters. Their words compressed, never substituted with your phrasing - and expect their edit to cut further than you did; double quotes are reserved for phrases quoted verbatim from the source (the paper's or its blog's own words), never decoration; no balanced-reversal glosses or other machine-prose shapes; ONE idea with no tie-in clause connecting it to a project; an OPTIONAL terse trailing parenthetical for context, never a slot to fill; logistics, follow-ups, and the full story belong in the primer or the user's notes. Written only when the user says it, never by an LLM pass. Example: "The agent was just confused" - self-preserving shutdown dissolved when priorities clarified.
rating integer 1-6
The user's 1-6 rating of this record on their $format-ratings scale (6 lifetime favorite, 5 canonical best, 4 worthwhile, 3 average, 2 not worth it, 1 trash), set only from the user's own word, normally together with the highlight line.

Checks

  • _recordRefsShapeRule
  • researchLinksRule - every link matches its source-specific URL and metadata contract
  • _nonPersonHomepageLinksRule
  • programProfilePersonOnlyRule
  • requireResearchLinks - every Paper has at least one canonical or acquisition link
  • paperArxivAttestationRule - non-arXiv Papers retain both an alternate anchor and absence evidence
  • paperTrimmedStringsRule - author names contain non-whitespace text

References

DirectionFieldOther schema
points outrefs.person[].urlresearch/Person
points outrefs.venue[].urlresearch/Venue
points outrefs.interest[].urlresearch/Interest
points inrefs.paper[].urlresearch/Interest
points inrefs.paper[].urlresearch/Media
points inenhanced.timeline[].works[].urlresearch/Person
points inrefs.paper[].urlresearch/Reproduction

Defects

Checked 200 of 8,294 records (the per-store cap is 200), so this is a sample, not a whole-store verdict.

No defects in the 200 records checked.

Where it lives

Bound byresearch-records
Declared in~/mnt/mdr/skills/research-records/assets/schemas/paper.ts
BindingpaperDataStore
Directory~/data/research-reader/papers
Files*.yaml
Referenced aspaper