Keep raw outputs unchanged. Markdown records link to them with job identity, revision, parameters, provenance, and hashes when practical.
Research Notebook 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.
| Mode | Reporting | Routine conversational pause |
|---|---|---|
narrated (default) | Each result and what it changes, as it arrives. | None. |
stepped | After 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. |
unattended | Notebook-only reporting through the agreed channel. | None. |
handoff | Terminal 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.
- Neither activity launches, retries, or reruns jobs, repairs scripts, recomputes measurements, changes plan state, or takes execution ownership.
- A results walkthrough inventories the available experiments, states their count, and follows dependency order. For each experiment it presents the design recorded at the time, setup, controls, predictions, and null criteria before observed results.
- It distinguishes the intended design, actual execution, and retrospective explanation. It discusses defects, when they became detectable, and proposed repairs, then waits for the user before the next experiment.
- Missing records or artifacts are disclosed, never silently regenerated. Repair proposals and requests to continue the discussion do not authorize execution or file changes. Writing review corrections to the notebook requires a separate instruction.
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
Predictions and decision thresholds are written before outcomes are inspected and are never rewritten afterward.
Single-experiment analysis stays in its experiment file. A finding exists only when evidence spans experiments.
Indexes and status pages point to authoritative records instead of copying their conclusions.
Mark a finished job as processed only after its evidence is preserved and the notebook passes validation.
A plan sets the scope and limits of the work. Each action still requires appropriate authority.
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.
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
| File | Question it owns | Add it when |
|---|---|---|
STATUS.md | Where does the project stand now? | Baseline |
QUESTIONS.md | What is known, open, or blocked? | Baseline |
PRIORITIES.md | What should happen next? | Baseline |
CHANGELOG.md | What was learned or decided, and when? | Baseline |
GLOSSARY.md | What do local terms, symbols, and acronyms mean? | Terminology needs a stable definition |
BIBLIOGRAPHY.md | Which papers matter and why? | Related work is tracked or cited |
RUNNER.md | How does this project submit, inspect, retrieve, and process jobs? | The project uses a compute runner |
REVIEW-LEDGER.md | Which independent reviews ran, what did they find, and which gates guard the next experiment? | The project logs independent reviews |
CLAIMS.md | Which claims belong to each paper, what role do they play, and what supports them? | Baseline |
PUBLICATION.md | Where are the manuscript and packets, and what blocks submission? | A paper enters preparation |
COMPANION-DOCS.md | Which reports, guides, talks, or IP documents accompany the work? | Several artifacts need an index |
QA.md | Which 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
| Directory | Contents | Add it when |
|---|---|---|
experiments/ | One mutable record per experiment | Baseline |
findings/ | Dated, immutable cross-experiment syntheses | Baseline; it may remain empty |
plans/ | Research objectives with phases, limits, and review gates | Work 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.md | Work spends money under an approved ceiling |
reports/ | Longer analyses and figures that can be revised | A synthesis is too large or changeable for a finding |
papers/ | Authoritative Typst manuscripts and their shared bibliography | Drafting inside the notebook |
references/ | Downloaded cited papers, source notes, and indexes | Archiving or annotating literature |
kb/ | Stable reusable methodology and comparisons | Material is reference, not evidence |
causal-models/ | Working mechanism hypotheses | Several 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.
| Path | Required or conventional shape | Change policy |
|---|---|---|
STATUS.md | # Project status; a ## Snapshot with phase, science status, established result, open work, next action, publication state, and last-updated fields; then ## Navigation | Living front door. Keep it short and point to owners. |
QUESTIONS.md | One ## RQ#. Title block per question, with Question, Status, optional Answer, and Evidence fields | Stable 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 table | Living queue. Remove completed items; do not mirror runner state. |
CHANGELOG.md | Newest-first YYYY-MM-DD: event lines naming the result or decision, evidence owner, and consequence | Append research events, not routine edits or status flips. |
experiments/README.md | Experiment links grouped by current status and research question | Update whenever experiment membership or status changes. |
experiments/EXP-*.md | Title and metadata; hypothesis; method; numbered estimands and registration; informed-by links; predictions and decision rule; runs; results and prediction outcomes; conclusion; follow-ups; artifacts | Mutable through the experiment lifecycle. Never rewrite preregistered content after outcomes are inspected. |
experiments/*.annex.md | Breakdown 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.md | Dated finding links with one-line claims and source experiments | Update whenever a finding is added or superseded. |
findings/YYYY-MM-DD-*.md | Title; date, status, questions, and experiments; then claim, evidence, synthesis, scope and threats, consequences, and sources | Immutable synthesis. Add a successor or correction pointer when evidence changes. |
plans/*.md | YAML frontmatter with identity, status, owner, reviewer, phase, and dates; Markdown goals, phases, gates, current state, and terminal disposition | Versioned contract. See the plan schema. |
CLAIMS.md | A table with ID, Role, Claim, Status, Evidence, and Paper columns | Living argument. Every row cites direct experiment or estimand evidence. |
PUBLICATION.md | Project publication status followed by one ## Paper block per manuscript, with key, draft, venue, headline result, blockers, and venue table | Living submission state. External dates require a source. |
GLOSSARY.md | Category ## headings and one alphabetized ### Term entry per project-specific term, symbol, or acronym | Living vocabulary. Link definitions that depend on evidence or a method decision. |
BIBLIOGRAPHY.md | Thematic ## sections and one ### Paper entry with citation, short summary, project relevance, and source or local links | Living annotated bibliography. |
RUNNER.md | Project-specific commands for submit, status, logs, artifact retrieval, cancellation, processed checks, and final marking | Living 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.bib | Authored source. Venue packets are external derivatives. |
references/ | Cited PDFs, source inventories, manifests, and tracked annotations | PDFs may be ignored caches; source records remain versioned. |
jobs/processed/<backend>/<job>.json | One JSON object per terminal job with the schema's required backend, job, terminal status, evidence, and notebook-revision fields | Immutable 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.
Manuscript
lab-notebook/papers/name.typ Natural length. Continues through arXiv versions, review, and post-publication revision.
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
| ID | Role | Claim | Status | Evidence | Paper |
|---|---|---|---|---|---|
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.
| Edge | Written in | Checked by |
|---|---|---|
| plan → experiment | Plan phases and completion report | Validator link resolution |
| experiment → estimand | ### E# heading and registration line | Validator registration values |
| experiment → prior evidence | ## Informed by | Validator link resolution |
| claim → estimand | CLAIMS.md Evidence cell | Validator resolution, with found and gate warnings |
| claim → publication | CLAIMS.md Paper cell | Validator |
| upstream → downstream experiment | Upstream decision rule or follow-ups | Prose; the forward link is required |
| terminal plan → correction | Retraction notice | The 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.
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.
| Checkpoint | When |
|---|---|
| Plan approval | before plan execution |
| Experiment design review | before preregistration |
| Preregistration review | before outcome inspection |
| Analysis and interpretation review | before synthesis |
| Plan gate review | after each executed phase |
| Follow-up approval | before a gated follow-up |
| Claim promotion review | before 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.
| Tool | Placement | Queue | Workflow | Artifacts | Processed ledger? |
|---|---|---|---|---|---|
| Dagu | Local, SSH, container, Kubernetes targets | Workflow schedule | DAGs and retries | Project convention | Yes |
| Pueue | One machine | Persistent command queue | Groups and dependencies | Project convention | Yes |
| SkyPilot | Clouds, Kubernetes, Slurm, machines | Managed jobs | Task dependencies | Sync plus configured storage | Yes |
| Slurm | Existing cluster | Cluster scheduler | Dependencies and arrays | Project convention | Yes |
| Weft | Machines and GPU rentals | Research jobs | Sweeps, pipelines, DAGs | Staging and retrieval | No, 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.
- Check whether the final record exists.
- Retrieve and verify outputs.
- Update evidence, indexes, and changelog.
- Validate and make the notebook update durable.
- Write a temporary JSON record in the target directory.
- 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 look | What you find |
|---|---|
references/ | Third-party papers and source records. This is the reading archive; papers/ holds your own manuscripts. |
BIBLIOGRAPHY.md | An annotated reading index. Keep your summaries, thematic groupings, and notes on why a work matters alongside newly archived entries. |
references/SOURCES.md | A 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.