Research lab notebook
Treat the notebook as the durable research record. Job logs, chat history, and
metric dashboards are inputs, not substitutes. Existing notebook files are
records, not format specifications.
Route the task
Read the matching reference before writing:
| Task |
Read |
| Create or adopt a notebook |
Setup, Notebook structure, and Project instructions |
| Decide where information belongs |
Notebook discipline |
| Trace provenance across files, or decide where a new cross-reference belongs |
Notebook graph |
| Edit STATUS, QUESTIONS, GLOSSARY, BIBLIOGRAPHY, PRIORITIES, CHANGELOG, or indexes |
Notebook files |
| Register an experiment, name its estimands, or process a run (local or remote) |
Experiments and Job runners |
| Analyze results or state a conclusion |
Research methodology |
| Write a cross-experiment synthesis |
Findings |
| Create, resume, or close a plan |
Plans |
| Curate claims or publication readiness |
Publication |
| Adapt a compute backend |
Runner adapters and, when needed, Processed-job ledger |
Before writing
- Locate the notebook. Prefer
lab-notebook/ inside the project unless project
instructions declare another path.
- Read project instructions,
STATUS.md, the relevant research question, and
the authoritative record linked from the task.
- Check whether the notebook has its own version-control boundary.
- Preserve raw outputs. Record their job identity, code revision, parameters,
provenance, location, and content hash when practical.
- Write predictions and decision thresholds before inspecting outcomes. Never
rewrite them after results are known.
- Name each estimand with its registration value (
registered, found, or
gate) and record what informed the design. These two facts exist only at
the design moment and cannot be recovered later.
Pause for human review
Treat these as decision gates, not courtesy notifications:
- Review a plan before any phase executes.
- Review experiment design before preregistration.
- Review the preregistration before outcome inspection.
- Review analysis and interpretation before synthesis or publication use.
- Review the plan after each executed phase, especially before crossing a gate.
- Approve a gated follow-up before submitting more work.
- Review claim promotion before strengthening its status or scope.
An agent may prepare the materials for review. It must not record its own output
as human approval. Record the decision and resulting scope in the owning plan,
experiment, or claim update.
Place evidence once
- Keep one experiment's design, runs, results, and interpretation in its
experiment file.
- Create a finding only when the conclusion depends on multiple experiments or
evidence sources.
- Keep claims proportional to the tested instruments and scope.
- Update indexes and status pages with pointers instead of copied conclusions.
- Use a plan as a bounded research contract. Execution still requires the
authority appropriate to each action.
After writing
Update the relevant experiment or finding index and affected question,
priority, claim, and publication pointers.
Add a changelog entry only for a result, decision, failure, consolidation, or
publication milestone.
Run the bundled structural validator:
python3 <skill-directory>/scripts/validate-notebook.py <project-or-notebook>
Use --strict in automation to treat advisory warnings as failures.
Use --format json when another tool consumes diagnostics. Add
--write-plan-index to regenerate plans/README.md from frontmatter.
Make the update durable in the notebook's version-control boundary.
Mark a job processed only after its outputs are checked, the notebook update
passes validation, and the durable write succeeds. A run on the local
machine has no processed flag and its output may be the only copy; record
its numbers before anything can overwrite them.
When a value is corrected, state the superseded value beside the new one and
search the notebook for both the old value and the experiment ID, so
findings and terminal plans that relied on it get their pointer or
retraction notice in the same session.
Stop at the user's requested boundary. Do not submit a real job, spend money,
publish, write externally, or start unattended execution without authorization.
1---2name: research-lab-notebook3description: Set up and operate a durable, file-based research lab notebook with questions, priorities, experiments, registered estimands, preregistered predictions, job results, findings, plans, claims, and publication tracking. Use when creating or adapting a lab-notebook/ directory, editing its records, registering or processing experiments, connecting a local process or job system such as Dagu, Pueue, SkyPilot, Slurm, or Weft, or handing research work across agents and sessions.4---56# Research lab notebook78Treat the notebook as the durable research record. Job logs, chat history, and9metric dashboards are inputs, not substitutes. Existing notebook files are10records, not format specifications.1112## Route the task1314Read the matching reference before writing:1516| Task | Read |17|---|---|18| Create or adopt a notebook | [Setup](references/setup.md), [Notebook structure](references/notebook-structure.md), and [Project instructions](references/project-instructions.md) |19| Decide where information belongs | [Notebook discipline](references/notebook-discipline.md) |20| Trace provenance across files, or decide where a new cross-reference belongs | [Notebook graph](references/notebook-graph.md) |21| Edit STATUS, QUESTIONS, GLOSSARY, BIBLIOGRAPHY, PRIORITIES, CHANGELOG, or indexes | [Notebook files](references/notebook-files.md) |22| Register an experiment, name its estimands, or process a run (local or remote) | [Experiments](references/experiments.md) and [Job runners](references/job-runners.md) |23| Analyze results or state a conclusion | [Research methodology](references/research-methodology.md) |24| Write a cross-experiment synthesis | [Findings](references/findings.md) |25| Create, resume, or close a plan | [Plans](references/plans.md) |26| Curate claims or publication readiness | [Publication](references/publication.md) |27| Adapt a compute backend | [Runner adapters](references/runner-adapters.md) and, when needed, [Processed-job ledger](references/processed-job-ledger.md) |2829## Before writing30311. Locate the notebook. Prefer `lab-notebook/` inside the project unless project32 instructions declare another path.332. Read project instructions, `STATUS.md`, the relevant research question, and34 the authoritative record linked from the task.353. Check whether the notebook has its own version-control boundary.364. Preserve raw outputs. Record their job identity, code revision, parameters,37 provenance, location, and content hash when practical.385. Write predictions and decision thresholds before inspecting outcomes. Never39 rewrite them after results are known.406. Name each estimand with its registration value (`registered`, `found`, or41 `gate`) and record what informed the design. These two facts exist only at42 the design moment and cannot be recovered later.4344## Pause for human review4546Treat these as decision gates, not courtesy notifications:47481. Review a plan before any phase executes.492. Review experiment design before preregistration.503. Review the preregistration before outcome inspection.514. Review analysis and interpretation before synthesis or publication use.525. Review the plan after each executed phase, especially before crossing a gate.536. Approve a gated follow-up before submitting more work.547. Review claim promotion before strengthening its status or scope.5556An agent may prepare the materials for review. It must not record its own output57as human approval. Record the decision and resulting scope in the owning plan,58experiment, or claim update.5960## Place evidence once6162- Keep one experiment's design, runs, results, and interpretation in its63 experiment file.64- Create a finding only when the conclusion depends on multiple experiments or65 evidence sources.66- Keep claims proportional to the tested instruments and scope.67- Update indexes and status pages with pointers instead of copied conclusions.68- Use a plan as a bounded research contract. Execution still requires the69 authority appropriate to each action.7071## After writing72731. Update the relevant experiment or finding index and affected question,74 priority, claim, and publication pointers.752. Add a changelog entry only for a result, decision, failure, consolidation, or76 publication milestone.773. Run the bundled structural validator:7879 ```bash80 python3 <skill-directory>/scripts/validate-notebook.py <project-or-notebook>81 ```8283 Use `--strict` in automation to treat advisory warnings as failures.84 Use `--format json` when another tool consumes diagnostics. Add85 `--write-plan-index` to regenerate `plans/README.md` from frontmatter.86874. Make the update durable in the notebook's version-control boundary.885. Mark a job processed only after its outputs are checked, the notebook update89 passes validation, and the durable write succeeds. A run on the local90 machine has no processed flag and its output may be the only copy; record91 its numbers before anything can overwrite them.926. When a value is corrected, state the superseded value beside the new one and93 search the notebook for both the old value and the experiment ID, so94 findings and terminal plans that relied on it get their pointer or95 retraction notice in the same session.9697Stop at the user's requested boundary. Do not submit a real job, spend money,98publish, write externally, or start unattended execution without authorization.