Research Notebook Reference

documentation/ guide and reference

Each record has a defined format and owns one kind of information. The schemas here follow the current skill source. Use the installed skill's formats when working with a different version.

reference / skill invocation

Invoke a skill with a task and its scope

The public package supplies research-lab-notebook for notebook operations and download-research-references for cited-paper archiving. After installing a skill, name it in a message to your coding agent. Send the example prompts in the agent conversation. Replace PLAN_PATH and the manuscript paths with your own files.

Notebook operations

Use research-lab-notebook to create or adapt a notebook, register experiments, process results, maintain plans, and track claims. Specify whether the agent should propose changes, write them to the notebook, or execute approved work.

Use research-lab-notebook to register an experiment for the retrieval question in lab-notebook/QUESTIONS.md. Describe the design, predictions, and decision rule for review. Do not run it.

Reference archiving

Give download-research-references a manuscript, its bibliography, and a destination. The archive reference describes retained files and access limits.

Use download-research-references to archive the papers cited by lab-notebook/papers/paper.typ, using lab-notebook/papers/references.bib. Put the archive in lab-notebook/references/ and report any sources you cannot retrieve.

Plan execution modes

Name an execution mode with the skill and plan path. An explicit user choice takes precedence over the plan or delegation prompt, which takes precedence over the default. The agent states its selected mode before starting. Put the mode name in the prompt.

ModeReportingRoutine conversational pause
narrated (default)Each result and what it changes, as it arrives.None.
steppedAfter each experiment: original design and setup before findings, then interpretation and proposed next action.Wait for the user after every experiment. Do not queue the next experiment or use parallel branches to bypass the pause.
unattendedNotebook-only reporting through the agreed channel.None.
handoffTerminal report.None.

All modes retain scope, budget, scientific, and human-approval gates. A mode does not grant authority to spend, publish, change a design, or execute an unapproved phase. In stepped mode, the agent processes and records results before pausing. The pause is per experiment; request per-job pauses explicitly when needed.

Use research-lab-notebook to execute PLAN_PATH in stepped mode within its approved scope and budget. Explain each original design before its findings, then wait for my reply.

Read-only plan activities

Plan preview explains proposed work. Results walkthrough explains existing experiments and results; walkthrough is the short form and replay is a synonym for the same activity. These are review activities, not execution modes.

Use research-lab-notebook to preview PLAN_PATH. Explain the proposed experiments, dependencies, controls, decision rules, costs, and uncertainties. Do not execute or edit it.
Use research-lab-notebook for a results walkthrough of PLAN_PATH. Use existing records and outputs only. Explain each original design before its findings and stop after each experiment. Do not run jobs, recompute results, or change files.

To execute first and review afterward, request both activities explicitly:

Use research-lab-notebook to execute PLAN_PATH in narrated mode within its approved scope and budget. When execution stops, give me an interactive results walkthrough using only the saved records and outputs. Do not rerun anything during the walkthrough.

Requesting a walkthrough or replay alone never starts execution, even when the plan is incomplete. The plan execution guide gives prompts for interactive execution and continuous execution followed by a walkthrough.

Using a local research-ops installation

The local research-ops workflow uses the same execution and review vocabulary. If you have it installed, substitute research-ops for research-lab-notebook in the plan prompts. The public package installs research-lab-notebook, not research-ops.

reference / invariants · source

Ownership rules

01

Keep raw outputs unchanged. Markdown records link to them with job identity, revision, parameters, provenance, and hashes when practical.

02

Predictions and decision thresholds are written before outcomes are inspected and are never rewritten afterward.

03

Single-experiment analysis stays in its experiment file. A finding exists only when evidence spans experiments.

04

Indexes and status pages point to authoritative records instead of copying their conclusions.

05

Mark a finished job as processed only after its evidence is preserved and the notebook passes validation.

06

A plan sets the scope and limits of the work. Each action still requires appropriate authority.

07

An estimand is a quantity the experiment seeks to estimate. Each has a registration status, and claims cite it directly. Record what informed the design when writing it; later results cannot establish this history.

08

A corrected value is stated beside the superseded one, and the same session searches the notebook for every record that relied on it.

reference / structure · source

Directory structure

project/
├── lab-notebook/
│   ├── STATUS.md
│   ├── QUESTIONS.md
│   ├── PRIORITIES.md
│   ├── CHANGELOG.md
│   ├── experiments/
│   │   ├── README.md
│   │   ├── EXP-001-short-topic.md
│   │   └── EXP-001-short-topic.annex.md
│   ├── findings/
│   │   ├── README.md
│   │   └── 2026-08-10-cross-experiment-result.md
│   ├── plans/                  # optional
│   │   └── spend/              # optional: AUTHORITY.json and LEDGER.md
│   ├── reports/                # optional
│   ├── papers/                 # optional authored manuscripts
│   ├── references/             # optional cited-paper archive
│   ├── kb/                     # optional stable reference notes
│   ├── causal-models/          # optional mechanism hypotheses
│   ├── jobs/processed/         # optional runner fallback
│   ├── GLOSSARY.md             # optional
│   ├── BIBLIOGRAPHY.md         # optional
│   ├── RUNNER.md               # optional
│   ├── REVIEW-LEDGER.md        # optional review register and gates
│   ├── CLAIMS.md
│   └── PUBLICATION.md          # optional
├── scripts/                    # executable research code
└── data/                       # large or structured outputs

Markdown records remain small enough to review and version. Scripts and large artifacts stay in project storage; experiment records preserve the command, revision, parameters, artifact location, and content hash needed to recover a result.

Top-level files

FileQuestion it ownsAdd it when
STATUS.mdWhere does the project stand now?Baseline
QUESTIONS.mdWhat is known, open, or blocked?Baseline
PRIORITIES.mdWhat should happen next?Baseline
CHANGELOG.mdWhat was learned or decided, and when?Baseline
GLOSSARY.mdWhat do local terms, symbols, and acronyms mean?Terminology needs a stable definition
BIBLIOGRAPHY.mdWhich papers matter and why?Related work is tracked or cited
RUNNER.mdHow does this project submit, inspect, retrieve, and process jobs?The project uses a compute runner
REVIEW-LEDGER.mdWhich independent reviews ran, what did they find, and which gates guard the next experiment?The project logs independent reviews
CLAIMS.mdWhich claims belong to each paper, what role do they play, and what supports them?Baseline
PUBLICATION.mdWhere are the manuscript and packets, and what blocks submission?A paper enters preparation
COMPANION-DOCS.mdWhich reports, guides, talks, or IP documents accompany the work?Several artifacts need an index
QA.mdWhich questions should a talk or defense answer?Preparing a presentation

Schema 7 defines the baseline paths: STATUS.md, QUESTIONS.md, PRIORITIES.md, CHANGELOG.md, CLAIMS.md, experiments/README.md, findings/README.md.

Directories

DirectoryContentsAdd it when
experiments/One mutable record per experimentBaseline
findings/Dated, immutable cross-experiment synthesesBaseline; it may remain empty
plans/Research objectives with phases, limits, and review gatesWork spans phases, agents, or sessions
plans/spend/Every currency amount in the notebook: approved ceilings and allocations in AUTHORITY.json, money per attempt in LEDGER.mdWork spends money under an approved ceiling
reports/Longer analyses and figures that can be revisedA synthesis is too large or changeable for a finding
papers/Authoritative Typst manuscripts and their shared bibliographyDrafting inside the notebook
references/Downloaded cited papers, source notes, and indexesArchiving or annotating literature
kb/Stable reusable methodology and comparisonsMaterial is reference, not evidence
causal-models/Working mechanism hypothesesSeveral interventions inform one mechanism

reference / formats · source

File formats

A path determines the record type. Headings and field names carry machine-readable state; prose carries evidence and interpretation. Preserve the required structure when adding domain-specific sections, and link to information another record owns.

PathRequired or conventional shapeChange policy
STATUS.md# Project status; a ## Snapshot with phase, science status, established result, open work, next action, publication state, and last-updated fields; then ## NavigationLiving front door. Keep it short and point to owners.
QUESTIONS.mdOne ## RQ#. Title block per question, with Question, Status, optional Answer, and Evidence fieldsStable IDs. Update status and links without copying result tables.
PRIORITIES.md# Research priorities, last-updated date, one ## Current focus, a short checkbox ## Queue, and an optional testable-predictions tableLiving queue. Remove completed items; do not mirror runner state.
CHANGELOG.mdNewest-first YYYY-MM-DD: event lines naming the result or decision, evidence owner, and consequenceAppend research events, not routine edits or status flips.
experiments/README.mdExperiment links grouped by current status and research questionUpdate whenever experiment membership or status changes.
experiments/EXP-*.mdTitle and metadata; hypothesis; method; numbered estimands and registration; informed-by links; predictions and decision rule; runs; results and prediction outcomes; conclusion; follow-ups; artifactsMutable through the experiment lifecycle. Never rewrite preregistered content after outcomes are inspected.
experiments/*.annex.mdBreakdown tables or worked cases supporting one experiment's headline. The filename carries the experiment ID; no status field.Supporting analysis, not a separate experiment.
findings/README.mdDated finding links with one-line claims and source experimentsUpdate whenever a finding is added or superseded.
findings/YYYY-MM-DD-*.mdTitle; date, status, questions, and experiments; then claim, evidence, synthesis, scope and threats, consequences, and sourcesImmutable synthesis. Add a successor or correction pointer when evidence changes.
plans/*.mdYAML frontmatter with identity, status, owner, reviewer, phase, and dates; Markdown goals, phases, gates, current state, and terminal dispositionVersioned contract. See the plan schema.
CLAIMS.mdA table with ID, Role, Claim, Status, Evidence, and Paper columnsLiving argument. Every row cites direct experiment or estimand evidence.
PUBLICATION.mdProject publication status followed by one ## Paper block per manuscript, with key, draft, venue, headline result, blockers, and venue tableLiving submission state. External dates require a source.
GLOSSARY.mdCategory ## headings and one alphabetized ### Term entry per project-specific term, symbol, or acronymLiving vocabulary. Link definitions that depend on evidence or a method decision.
BIBLIOGRAPHY.mdThematic ## sections and one ### Paper entry with citation, short summary, project relevance, and source or local linksLiving annotated bibliography.
RUNNER.mdProject-specific commands for submit, status, logs, artifact retrieval, cancellation, processed checks, and final markingLiving adapter to an external job system.
reports/, kb/, causal-models/Markdown with a descriptive title, provenance links, and the sections its subject needs. These directories have purpose contracts rather than one global schema.Reports may change; knowledge-base notes are stable reference; causal models remain distinct from observations.
papers/Canonical Typst manuscripts plus one shared references.bibAuthored source. Venue packets are external derivatives.
references/Cited PDFs, source inventories, manifests, and tracked annotationsPDFs may be ignored caches; source records remain versioned.
jobs/processed/<backend>/<job>.jsonOne JSON object per terminal job with the schema's required backend, job, terminal status, evidence, and notebook-revision fieldsImmutable idempotency record, used only when the runner lacks processed state.

reference / papers · source

Manuscripts and submission packets

A manuscript is the paper's complete source and can keep developing after publication. A submission packet adapts that source for one venue.

Canonical source

Manuscript

lab-notebook/papers/name.typ

Natural length. Continues through arXiv versions, review, and post-publication revision.

Venue derivative

Submission packet

external paper workspace

Venue template, page limit, and anonymization. Frozen while submitted and at camera-ready.

The content invariant is packet ⊆ manuscript. A packet may omit material to meet a venue limit, but it cannot introduce content absent from the manuscript. A frozen packet can therefore remain behind a manuscript that continues to develop.

Edit the manuscript first and port changes into packets in preparation. A reviewer-driven revision or camera-ready phase may make the packet lead temporarily; back-port those changes before manuscript editing resumes. PUBLICATION.md records each packet's venue, state, and synced-as-of date.

Default manuscript source

New notebook manuscripts use Typst with Arkheion 0.1.2. This neutral, natural-length layout is independent of any venue template. All manuscripts in papers/ cite one shared papers/references.bib.

#import "@preview/arkheion:0.1.2": arkheion

#show: arkheion.with(
  title: "Working title",
  authors: (
    (name: "Author Name", affiliation: "Institution", email: "[email protected]"),
  ),
  abstract: [Write the abstract here.],
)

= Introduction

#bibliography("references.bib")

reference / record kinds

Experiments and plans

Use the experiment reference for record structure, statuses, estimand registration, annexes, duplicate IDs, and result processing. The plan reference covers frontmatter, statuses, review gates, confirmation reserves, completion reports, and retraction notices.

reference / claims · source

Claim ledger evidence

CLAIMS.md uses the columns ID, Role, Claim, Status, Evidence, Paper. Roles are major, candidate major, supporting. Statuses are supported, provisional, blocked, refuted, retired, with live (for supported) and withdrawn (for retired) accepted as legacy spellings. Every row cites at least one experiment record. A finding may supply synthesis, correction, or interpretation context, but cannot replace experiment evidence. Papers consume evidence and do not belong in the Evidence cell. When the experiment declares estimands, cite the estimand as EXP-NNN:E#: the validator resolves it and warns when the claim draws on a found estimand or on a gate.

To decide what a result supports before changing a claim, follow the claim promotion workflow. It connects these fields to gates, data reuse, selection history, and independent confirmation.

Example claim rows

IDRoleClaimStatusEvidencePaper
C1 major In the deterministic toy simulator, accumulated batches remain inside the preregistered 0.02 equivalence margin. supported EXP-001:E1, EXP-002:E1, EXP-002:E2 gradient-accumulation-note
C015 major Belief and reality use the same value slot. The router, rather than separate value representations, selects between them. live EXP-034, EXP-034b belief-routing
C017 supporting Reliable tracking of information visible to different agents appears between the tested 3B and 7B models. Qwen and Mistral results support the routing explanation. live EXP-026, EXP-028 belief-routing

The first row comes from the repository's synthetic example and cites estimands. The belief-paper rows cite whole records, which do not declare estimands. Their major claim rests on two experiments; the supporting claim names the tested size range. That notebook uses live for supported.

If no experiment owns a required analysis, create an analysis experiment that records its inputs, method, artifacts, and result. Mark expectations reconstructed after the result as retrospective.

Write the tested scope in the claim itself. The Paper cell is the stable key for the paper that uses the claim. PUBLICATION.md owns that paper's manuscript and packet pointers, synchronization state, readiness, gates, venues, deadlines, and submission state. Human review is required before promoting a claim to supported or broadening its scope.

Submission deadlines must come from the venue and link to its published source. For urgent but blocked work, record an Urgency reason, an observable Gate, and a ready since date that shows how long the work has waited. Do not substitute an internal target date for a venue deadline.

reference / graph · source

Edges and their owners

Records form a graph of typed links. Each link has one owner: the file where its author first records the relationship. Search or an index supplies the reverse lookup. Experiments carry no back-link to plans or claims.

EdgeWritten inChecked by
plan → experimentPlan phases and completion reportValidator link resolution
experiment → estimand### E# heading and registration lineValidator registration values
experiment → prior evidence## Informed byValidator link resolution
claim → estimandCLAIMS.md Evidence cellValidator resolution, with found and gate warnings
claim → publicationCLAIMS.md Paper cellValidator
upstream → downstream experimentUpstream decision rule or follow-upsProse; the forward link is required
terminal plan → correctionRetraction noticeThe retracting session's search

An Informed by link records history that code and results cannot establish. The same threshold can be chosen before or after seeing the data. Record that exposure when choosing the design.

An Informed by section that names prior exposure to the data. From EXP-182, a registered reanalysis.
## Informed by

- [[EXP-028-visibility-derivation]], including its aggregate results, which were known before this record was created; that prior exposure is why this is a registered reanalysis and not a preregistration
- The four original Weft commands recovered for wj3711, wj3712, wj3726, and wj3733

## Pre-registered predictions (a priori)

None. This record registers an analysis of data already seen (see Registration status). The reproduction targets under Retrospective expectations are checks, not predictions.

The record identifies which earlier results informed its design. The recovered intervals therefore do not provide an independent confirmation.

reference / human decisions · source

Human review checkpoints

Agents prepare the record and proposed decision. They do not approve their own work as a substitute for human review. Record each decision in the experiment, plan, or claim update that it governs.

CheckpointWhen
Plan approvalbefore plan execution
Experiment design reviewbefore preregistration
Preregistration reviewbefore outcome inspection
Analysis and interpretation reviewbefore synthesis
Plan gate reviewafter each executed phase
Follow-up approvalbefore a gated follow-up
Claim promotion reviewbefore strengthening a claim

Independent reviews of plans, designs, scripts, and results are a separate practice. A person or the project's instructions request them, and the optional REVIEW-LEDGER.md records each one and the gates founded on its findings.

reference / runners · source

Connect a job system

A version-controlled RUNNER.md records the project's commands for submission, status, logs, artifact retrieval, cancellation, and processing state. This mapping is a runner adapter. A project can combine the tools below.

ToolPlacementQueueWorkflowArtifactsProcessed ledger?
DaguLocal, SSH, container, Kubernetes targetsWorkflow scheduleDAGs and retriesProject conventionYes
PueueOne machinePersistent command queueGroups and dependenciesProject conventionYes
SkyPilotClouds, Kubernetes, Slurm, machinesManaged jobsTask dependenciesSync plus configured storageYes
SlurmExisting clusterCluster schedulerDependencies and arraysProject conventionYes
WeftMachines and GPU rentalsResearch jobsSweeps, pipelines, DAGsStaging and retrievalNo, if native state is retained

Dagu and Pueue need an artifact convention or wrapper unless jobs already write to storage that survives the job. SkyPilot and Slurm also need project-specific artifact locations. Setup records these locations and commands in the runner adapter.

Document supported usage and billing queries in RUNNER.md, including their units, billing scope, update lag, and missing-data behavior. Use the runner or provider's documented CLI or API, not private state files. Usage evidence goes in per-attempt resource records in units; money goes in the spend ledger, which the spend account compares with the approved ceiling. Also describe which duration, concurrency, and spending controls the runner actually enforces. Billing can settle after a job is marked processed; record pending charges in the spend ledger.

reference / processed state · source

Fallback processed-job ledger

Use one JSON record per backend and job ID to avoid append races:

lab-notebook/jobs/processed/
├── slurm/123456.json
└── skypilot/managed-job-17.json

Required fields are schema_version, backend, job_id, experiment_id, terminal_status, processed_at, evidence, notebook_revision. Terminal status is succeeded, failed, or canceled. Backend names are normalized and unsafe job IDs use URL percent encoding in filenames. Evidence paths stay inside the notebook. Artifact URIs and hashes are recommended.

  1. Check whether the final record exists.
  2. Retrieve and verify outputs.
  3. Update evidence, indexes, and changelog.
  4. Validate and make the notebook update durable.
  5. Write a temporary JSON record in the target directory.
  6. Atomically rename it to the backend and job path, then commit it.

Coordinate writers around the whole protocol. A retry is a new job and receives a new record. Prefer SQLite when many writers, transactional queries, or very large job counts make individual files unsuitable.

reference / literature archive · source

Cited-paper archive

Give the download-research-references skill a LaTeX or Typst manuscript and its bibliography. It identifies the cited works and assembles a local reading archive with source links. Use the archive to check related work, revisit a method, or share references with a collaborator.

Preview the cited works and available copies, then approve the selection to download. The archive retains authorized PDFs. Each unavailable paper keeps a source link and an explanation of the retrieval failure. Follow the paper guide to build an archive for your manuscript.

Where to lookWhat you find
references/Third-party papers and source records. This is the reading archive; papers/ holds your own manuscripts.
BIBLIOGRAPHY.mdAn annotated reading index. Keep your summaries, thematic groupings, and notes on why a work matters alongside newly archived entries.
references/SOURCES.mdA source inventory when arXiv source retrieval is requested. Extracted text sources live under references/source/<citation-key>/.

Track annotations, source indexes, and URLs in version control. Downloaded PDFs can be ignored individually; do not ignore the whole directory.

Command-line options and archive boundaries

The bundled archive_cited_papers.py accepts --dry-run for the preview and --report-json path/to/report.json for a machine-readable report. With --strict, an unavailable requested PDF or arXiv source makes the command fail, so automation can require a complete archive. --fetch-source requests arXiv source as well as PDFs. See the full invocation and options.

Downloads have size limits and are checked as PDFs. The workflow respects access controls. Treat downloaded papers and archives as untrusted input; do not execute their contents.

Return to the workflow guide Read the skill source