You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Problem — Papers arrive through three unconnected paths (the #papers Slack channel — a social surface with no plumbing, BYO PDF uploads to the library, and the dream-distiller) and land in incompatible shapes: PDFs in the library with no identity, notes in the vault with no contract. The corpus is unsearchable, undiscoverable by the loops, and cannot dedup. The literature-plane spec (vault spec-20260817-140000) makes lit research foundational to autoresearch; this is its first slice.
Approach — The paper record as a schema kind (library-paper) formalizing the note frontmatter the TEMPO note already carries (identity: arxiv/DOI; provenance: source+session; scoping: relevance/systems/tags; lifecycle: staged→distilled), plus the unified corpus fold in the amico papers verb — one view over vault notes + library PDFs, deduped by identity and content hash, queryable by field and substring. Collect → unify → usable → searchable → refinable, in that order.
Scope — in: record schema, corpus fold, amico papers list (JSON + filters), orphan detection (PDFs without records, records without PDFs) · out: the #papers watcher, arxiv subscriptions, grounding gates, the librarian/priors phase (later slices per the spec ladder).
Acceptance Criteria
The library-paper kind validates the record frontmatter: title+authors required; at least one of arxiv/doi; status enum staged|distilled (absent = distilled, the historical notes); provenance and scoping fields tolerated strictly
The corpus fold unifies vault papers/ notes with the library store: identity dedup (arxiv/doi collisions reported), content-addressed PDF join (sha256), orphans surfaced both directions
amico papers list emits the unified corpus as JSON with filters (--status, --tag, --system, --q substring) and a human table by default
The existing two vault notes validate against the contract unchanged (real-data parity, the golden-test pattern)
Testing Decisions
Schema suite gains the kind + fixtures (valid/invalid TOML forms of frontmatter); the fold gets its suite in amico-run against a fixture vault + library; the verb rides the router's existing test surface. The two real vault notes become fixtures-by-copy (they are the contract's source of truth).
Key Decisions
The record is the note's frontmatter — no separate records/ tree (the three-artifact model keeps PDF/record/note distinct; the record travels with the note, the PDF stays in the library keyed by content).
Dedup REPORTS, never mutates — the fold is read-only; merging duplicates is a human promote act (stage-only doctrine).
PDFs are content-addressed at scan time (sha256 on read, no rename) — the library store's filenames stay human.
Constraints & Invariants
The fold never writes to the vault (read-only verb).
No new runtime dependencies (PDF text extraction is explicitly out of this slice).
Prior Art
The TEMPO note (vault) — the contract's source of truth, proven in production.
Important
Problem — Papers arrive through three unconnected paths (the #papers Slack channel — a social surface with no plumbing, BYO PDF uploads to the library, and the dream-distiller) and land in incompatible shapes: PDFs in the library with no identity, notes in the vault with no contract. The corpus is unsearchable, undiscoverable by the loops, and cannot dedup. The literature-plane spec (vault spec-20260817-140000) makes lit research foundational to autoresearch; this is its first slice.
Approach — The paper record as a schema kind (
library-paper) formalizing the note frontmatter the TEMPO note already carries (identity: arxiv/DOI; provenance: source+session; scoping: relevance/systems/tags; lifecycle: staged→distilled), plus the unified corpus fold in theamico papersverb — one view over vault notes + library PDFs, deduped by identity and content hash, queryable by field and substring. Collect → unify → usable → searchable → refinable, in that order.Scope — in: record schema, corpus fold,
amico papers list(JSON + filters), orphan detection (PDFs without records, records without PDFs) · out: the #papers watcher, arxiv subscriptions, grounding gates, the librarian/priors phase (later slices per the spec ladder).Acceptance Criteria
library-paperkind validates the record frontmatter: title+authors required; at least one of arxiv/doi; status enum staged|distilled (absent = distilled, the historical notes); provenance and scoping fields tolerated strictlypapers/notes with the library store: identity dedup (arxiv/doi collisions reported), content-addressed PDF join (sha256), orphans surfaced both directionsamico papers listemits the unified corpus as JSON with filters (--status, --tag, --system, --q substring) and a human table by defaultTesting Decisions
Schema suite gains the kind + fixtures (valid/invalid TOML forms of frontmatter); the fold gets its suite in amico-run against a fixture vault + library; the verb rides the router's existing test surface. The two real vault notes become fixtures-by-copy (they are the contract's source of truth).
Key Decisions
Constraints & Invariants
Prior Art
amico doctor— the verb/table precedent.Source
Design-of-record: vault spec
spec-20260817-140000-literature-plane· slice 1 (+ the fold from slice 6 pulled forward) · session 2026-08-17.