nanalLabs Blog

← Blog

Is a GitHub commit history enough for a software research notebook?

2026-09-24research notebookelectronic research notebooksoftwareguideline

Search "software research notebook" or "how to write an SW research notebook" and most results are pitches from services that connect to a GitHub repository and auto-collect commits, issues, and comments. That sounds convenient, but the question practitioners actually care about is what comes next — does that collected commit log actually satisfy what a government R&D project or a corporate research institute requires of a research notebook, or does it leave gaps that surface later in a spot check or a tax-credit follow-up audit? This post breaks down what Korea's national R&D research notebook guidelines require, item by item, against what a commit history does and doesn't cover.

The guidelines don't care about the medium — so why do software teams get confused?

Korea's national R&D research notebook guidelines (a notification from the Ministry of Science and ICT) define a research notebook as "material that records the process and outcomes of carrying out an R&D project," and recognize both paper and electronic-document formats. A 2021 revision relaxed the format requirements enough to bring in video, audio, and photo records, and leaves the specific requirements and methods up to each research institution's own internal regulations. That's exactly why the question "isn't the repository itself a recording medium?" comes up naturally.

The catch is that while the guidelines don't care about the medium, they do require certain properties regardless of medium: immediacy (chronological recording right after the work), preserved correction trails (the original has to remain visible even after a fix), and author/reviewer verification (who wrote it, who checked it). A commit history automatically satisfies some of these and structurally fails to satisfy others.

What a commit history covers, and what it doesn't

Guideline requirementDoes a commit history cover it automatically?Note
Immediacy (chronological, right after the work)PartiallyCommit timestamps run on the local system clock, which can be manipulated — they can differ from when the remote actually received the push
Author verificationYesAutomatically identified via commit author/committer
Preserved correction trailNo — actively riskyforce-push, rebase, and squash erase prior history. Without branch protection, this becomes "deletion without correction"
Purpose, method, and interpretation of an experimentNoCommit messages like "fix bug" or "wip" carry no purpose or interpretation — that has to be filled in separately
Record of failed experimentsNoDeleting the commit for reverted work erases the failure from the log entirely
Reviewer verificationPartiallyPR review/approval can map to this, but the institution's own regulations need to explicitly designate reviewers for it to count as "reviewer verification"

The biggest trap is the correction trail. What the guidelines require for a correction is essentially "cross out the original with two lines and leave a signature and date, so the original stays visible" — and git's default workflow, especially the habit of rewriting history with force-push, does the exact opposite: it erases the original and overwrites it with new history. If a spot check or tax-credit follow-up audit asks "why did the record from this point in time disappear," and there's no answer, it can undermine the credibility of the entire commit history.

What it takes, at minimum, for a software repo to count as a research notebook

rewrites** (GitHub branch protection). When a correction is needed, add a new commit and record the reason in the commit message.

"update," write at least one line summarizing the purpose of the experiment and the result — you need to be able to reconstruct the guideline's "experiment name/purpose" and "result and interpretation" fields from the commit log later.

review approval has a documented basis for counting as "reviewer verification."

don't delete the whole branch or erase them with force-push.

that stays accessible for the retention period the project requires, in case the service account is terminated, the org transfers ownership, or the repo goes private — this is the same problem as what backing up an electronic research notebook actually requires.

hyperparameters, and the like. A commit records what changed, but not the external conditions (data source, runtime environment) needed to reproduce the experiment.

In the end, a commit history can be the skeleton of a software research notebook, but satisfying what the guidelines require — especially the correction trail and failure records — takes team-level workflow rules on top of it. Check your own institution's or project's research notebook regulations before applying any of this.

nanalStamp — automatically seals your Obsidian notes the moment they settle and anchors the proof into Bitcoin, so anyone can verify your records are tamper-free. About the service · 75 free record kits