skills/lab-notes/SKILL.md
Use when starting experiments, planning features with hypothesis-first approach, checking experiment status, logging observations, or wrapping up trials. Triggers: start an experiment, new trial, begin experiment, what experiments are running, check experiment status, wrap up the experiment, log observation, experiment verdict, plan a feature, explore an idea, /lab-notes.
npx skillsauth add eins78/skills lab-notesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Structured experiment management with append-only running logs, optional hypotheses, and formal verdicts. Two modes: Rigorous (full scientific method) and Freeform (exploratory, structure grows organically). Works for any hypothesis-first exploration — technical experiments, feature planning, product ideas, infrastructure changes.
FRAME -> SETUP -> RUN -> ANALYZE -> VERDICT
| | |
| (freeform: skip to) | (freeform: skip to) |
+--------------------+ |
v
GRADUATE / ARCHIVE / ITERATE / PIVOT
Ask at experiment start: "Is this a structured experiment or are you just trying something out?"
| Answer | Mode | Behavior | |--------|------|----------| | "Structured" / "rigorous" / "I have a hypothesis" | Rigorous | All REQUIRED sections enforced via phase gates | | "Just trying" / "exploring" / vague / casual | Freeform | Title + motivation required; everything else optional, asked but skippable |
Set mode: rigorous or mode: freeform in LOG frontmatter. Mode can be upgraded (freeform -> rigorous) at any time.
In Freeform mode, still ASK for hypothesis, success criteria, and fail condition — but accept "skip", casual one-liners, or "I'll figure that out later." A casual hypothesis is fine: "I bet we can do X with Y and it'd be really cool."
/lab-notesAnalyzes current state and suggests next action:
experiments/*/LOG-*.md for YAML frontmatter## Active Experiments
| Experiment | Phase | Mode | Started | Timebox | Status |
|------------|-------|------|---------|---------|--------|
| local-llm | RUN | freeform | 2026-03-11 | open-ended | 3 log entries |
| ev-charging | FRAME | rigorous | 2026-03-12 | 2026-04-01 | OVERDUE |
The skill does NOT auto-close experiments. It informs. The human decides.
| Command | Transition | What It Does |
|---------|-----------|--------------|
| /lab-notes new <slug>: <title> | -> FRAME | Create experiment from template |
| /lab-notes setup [slug] | FRAME -> SETUP | Validate framing, update phase |
| /lab-notes run [slug] | SETUP -> RUN | Validate setup, update phase |
| /lab-notes log <observation> | (stays in RUN) | Append dated entry to Running Log |
| /lab-notes analyze [slug] | RUN -> ANALYZE | Validate observations exist, update phase |
| /lab-notes verdict [slug] | ANALYZE -> VERDICT | Validate findings, prompt for verdict + next action |
/lab-notes newexperiments/YYYY-MM-DD-slug/LOG-slug.md from ${CLAUDE_SKILL_DIR}/templates/log.mdD: Start lab-notes <slug> — <title>/lab-notes logThe most-used command. Must be frictionless:
/lab-notes log Tested model X — 84% accuracy, 990ms avg. Better than baseline.
Appends to the active experiment's Running Log:
### 2026-04-05 14:30 — Tested model X
84% accuracy, 990ms avg. Better than baseline.
If multiple experiments are active, ask which one (or detect from current directory).
Phase gates are requirements in Rigorous mode and suggestions in Freeform mode.
| Gate | Required Before Advancing | |------|--------------------------| | FRAME -> SETUP | Hypothesis non-empty, >=1 success criterion, fail condition stated | | SETUP -> RUN | Environment section non-empty | | RUN -> ANALYZE | >=1 dated entry in Running Log | | ANALYZE -> VERDICT | Findings section non-empty |
Blocked transitions produce a clear message: "Cannot advance to SETUP — hypothesis is empty. Write your hypothesis first."
| Gate | Required Before Advancing | |------|--------------------------| | FRAME -> RUN | Motivation non-empty (can skip SETUP entirely) | | RUN -> VERDICT | >=1 dated entry in Running Log (can skip ANALYZE) |
Freeform mode allows jumping: FRAME -> RUN -> VERDICT. The skill suggests intermediate steps but does not block.
For lab notebook conventions (do's and don'ts, electronic record-keeping), consult ${CLAUDE_SKILL_DIR}/references/nci-lab-records-guide.md — the NCI's official guide (public domain).
Two independent axes (completeness is phase; confidence is judgment):
**Outcome:** CONFIRMED | REFUTED | INCONCLUSIVE | ABANDONED
**Confidence:** certain | high | moderate | low
An experiment can be INCONCLUSIVE with high confidence ("we definitely don't have enough data") or CONFIRMED with low confidence ("it worked once but...").
| Action | When | How |
|--------|------|-----|
| GRADUATE | Confirmed AND needs ongoing work | git mv experiments/YYYY-MM-DD-slug/ projects/slug/ — add README.md, update TODO.md |
| ARCHIVE | Any verdict, no ongoing work needed | Write verdict, set phase to VERDICT. No file moves. |
| ITERATE | New questions raised | Write verdict with pointer to new experiment. Create new experiment. |
| PIVOT | Reframe hypothesis | Reset phase to FRAME, append new hypothesis to same LOG. |
Commit conventions:
D: Archive lab-notes <slug> — <one-line verdict>R: Graduate lab-notes <slug> to projects/<slug>D: Iterate from lab-notes <slug> -> <new-slug>| System | How |
|--------|-----|
| Sessionlogs | Complementary: sessionlogs = session narrative; LOG = experiment observations. A session touches multiple experiments; an experiment spans multiple sessions. |
| TODO.md | Active experiments don't need TODO entries — /lab-notes is the tracker. VERDICT outcomes requiring follow-up (graduation, iteration) create TODO items. |
| Delegate-agents | Tell the delegate: "Append all observations to experiments/YYYY-MM-DD-slug/LOG-slug.md". The LOG protects against context loss across compact/restart cycles. |
| Dossier skill | Complementary: dossier = one-shot research deliverable; lab-notes = multi-session exploration. A dossier may feed into an experiment; an experiment may produce a dossier. |
| commit-notation | D: for experiment docs, R: for graduation moves, E: for experiment work (code, scripts, eval harnesses). |
| system-maintenance | Overdue timeboxes flagged as health check items. |
| tracer-bullets | Different purpose: tracer-bullets proves architecture works (vertical slice); lab-notes documents what was learned exploring. An experiment might USE a tracer bullet as its method. |
| Mistake | Fix |
|---------|-----|
| Rewriting LOG entries | Always append. Cross out with ~~strikethrough~~ if correcting. |
| Skipping motivation in Freeform mode | Motivation is required even in Freeform — it's the minimum "why" |
| Forcing deadlines on exploratory work | Time-box is optional. Ask, don't require. |
| Starting Rigorous when Freeform fits | Ask the mode question. Most hobby experiments are Freeform. |
| Forgetting to log during execution | /lab-notes log should be called frequently during RUN phase |
| Drawing verdict without evidence | Findings/observations must support the verdict — even in Freeform mode |
Existing experiments (pre-skill) are NOT retroactively restructured. When revisiting an old experiment, the skill can offer to add frontmatter and a Verdict section. All new experiments via /lab-notes new follow the full convention.
development
Use when writing or reviewing any TypeScript code. Covers discriminated unions, branded types, Zod at boundaries, const arrays over enums, and safe access patterns.
development
Use when facing technical uncertainty, unproven architecture, or building a large feature where agents or humans risk getting lost in details before confirming the architecture works. Prevents horizontal layer-by-layer building that delays integration feedback.
tools
Use when sending commands to tmux panes, reading pane output, creating windows/panes, or monitoring tmux sessions. Covers reliable targeting, synchronization, and output capture patterns.
tools
Use when converting a PDF into a fold-and-print booklet (zine) — A4 sheets, double-sided, short-edge flip, fold to A5. Triggers: make a zine, make a booklet, booklet PDF, imposition, fold-and-print, 2-up booklet, print as booklet, signature imposition, pdf-zine, pdf2zine, bookletimposer. Wraps the `pdf2zine` Docker-based CLI; prefer it over hand-rolled Ghostscript or pdfjam scripts.