keep-the-why SKILL.md skillA

keep-the-why from oliver-zehentleitner/keep-the-why is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add oliver-zehentleitner/keep-the-why/keep-the-why@v0.20.2

Pins v0.20.2 in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
oliver-zehentleitner/keep-the-why
Path
skills/keep-the-why/SKILL.md
Versions recorded
48
Latest version
v0.20.2, committed Oct 12, 2026
First version recorded
Sep 1, 2026
Size
39,545 bytes
Repository stars
232
License
MIT

In a project with a .keep-the-why, or when asked about Keep the Why or to set it up - extract and preserve the reasoning code cannot explain - decisions, rejected alternatives, workarounds, incidents, constraints - plus project setup and maintainer interviews. Not for what changed (see Keep a Changelog) - only why. Also the place for questions about how this skill works, complaints, feedback and settings changes about it. Anywhere else - no .keep-the-why, no such request - this skill is…

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

# Keep the Why

The core job: preserve and recover the reasoning that code alone cannot explain. Because "ask Bob" is not documentation — Keep a Changelog records what changed, this preserves why it changed.

## When to use this skill

Four modes, all part of the same job:

1. **Continuous capture** — record rationale as it surfaces during normal development: decisions, rejected alternatives, workarounds, incidents, constraints, and changes that *didn't* happen (starting to modify something, then stopping once a reason not to became clear — that reasoning would otherwise leave no trace). See `references/continuous-capture.md`.
2. **Retrospective recovery** — given an existing or legacy repository, reconstruct what the code cannot explain from git history, issues, existing docs, and the code itself. Before a pass, read `references/retrospective-analysis.md`.
3. **Knowledge-transfer interview** — when a maintainer's knowledge is about to become unavailable, analyze the repository first, then either ask targeted questions or let them narrate freely. Before preparing or running one, read `references/interview-playbook.md`.
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add oliver-zehentleitner/keep-the-why/keep-the-why@sha256:feea34bd77cebc23

The line at the top of this page pins the label v0.20.2, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_4kjdyjnlndezis3p.svg)](https://markdownregistry.com/a/art_4kjdyjnlndezis3p)

5 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 48 versions of this file, between Sep 1, 2026 and Oct 12, 2026, more than one a day.

versioncommittedcommitsizeaudit
v0.20.2 latest2026-10-12 4c14d0d 39,545 BA view · diff
v0.20.12026-10-11 348db2f 39,415 BA view · diff
v0.20.02026-10-05 00915de 39,415 BA view · diff
v0.19.02026-10-05 0339ca6 39,415 BA view · diff
v0.19.02026-10-05 b80e47f 39,325 BA view · diff
v0.19.02026-10-05 b77d601 38,806 BA view · diff
v0.19.02026-10-02 e1f458d 38,068 BA view · diff
v0.18.22026-10-02 5dd90af 38,068 BA view · diff
v0.18.22026-10-02 5cea781 37,440 BA view · diff
v0.18.22026-10-01 bc010a6 36,654 BA view · diff
v0.18.22026-09-30 6b5f9cd 36,001 BA view · diff
v0.18.12026-09-29 6134083 35,692 BA view · diff
v0.18.02026-09-29 838c461 35,692 BA view · diff
v0.18.02026-09-28 763e789 35,691 BA view · diff
v0.17.12026-09-27 2a0bdc2 34,417 BA view · diff
v0.17.12026-09-27 3ed4fcd 33,908 BA view · diff
v0.17.12026-09-27 1d4eee8 33,095 BA view · diff
v0.17.12026-09-27 236573a 32,420 BA view · diff
v0.17.12026-09-21 d4275d1 32,135 BA view · diff
v0.17.02026-09-18 5ccc7d8 32,135 BA view · diff
v0.16.32026-09-18 d6e72b0 32,135 BA view · diff
v0.16.32026-09-14 3e24371 30,153 BA view · diff
v0.16.22026-09-11 5168e89 30,153 BA view · diff
v0.16.12026-09-11 66cdb37 30,153 BA view · diff
v0.16.12026-09-10 b071f59 28,530 BA view · diff
v0.16.02026-09-10 4751f16 28,530 BA view · diff
v0.16.02026-09-10 8d8d87c 27,649 BA view · diff
v0.16.02026-09-09 3a080df 27,441 BA view · diff
v0.15.02026-09-09 c4daa4e 27,441 BA view · diff
v0.15.02026-09-08 2ef1709 27,181 BA view · diff
v0.14.12026-09-08 7b1d6c7 27,181 BA view · diff
v0.14.12026-09-08 9953a66 27,039 BA view · diff
v0.14.02026-09-08 d01ed04 27,039 BA view · diff
v0.14.02026-09-08 ed96deb 26,777 BA view · diff
v0.13.32026-09-07 5cc2191 25,742 BA view · diff
v0.13.22026-09-07 8926d54 25,742 BA view · diff
v0.13.22026-09-07 f99634b 25,348 BA view · diff
v0.13.12026-09-07 f47b23d 25,348 BA view · diff
v0.13.12026-09-07 a14f8da 25,355 BA view · diff
v0.12.02026-09-06 7217f9b 22,379 BA view · diff
v0.11.02026-09-06 df56e75 22,379 BA view · diff
v0.11.02026-09-06 6144d3d 22,251 BA view · diff
v0.11.02026-09-06 dd9b6ba 22,090 BA view · diff
v0.11.02026-09-04 b7308ba 21,810 BA view · diff
v0.11.02026-09-03 cd20a4a 21,818 BA view · diff
v0.10.12026-09-03 c9d347c 21,818 BA view · diff
v0.10.12026-09-02 15c3d46 18,286 BA view · diff
v0.10.12026-09-01 840a1d5 18,110 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (39545 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Source

GitHub

oliver-zehentleitner/keep-the-why · 232 stars · license MIT · pushed 2026-10-20 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_4kjdyjnlndezis3p
GET https://markdownregistry.com/api/v1/resolve?ref=oliver-zehentleitner/keep-the-why/keep-the-why
GET https://markdownregistry.com/api/v1/blob/feea34bd77cebc233f250cc9f4c86e6da405fb6cabfcafa531528c9a0ec4e1e0

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from oliver-zehentleitner/keep-the-why

AGENTS.md AGENTS.md file
oliver-zehentleitner/keep-the-why · AGENTS.md
git:20260901.b5992ad · audit A · 232 stars
AGENTS.md@context AGENTS.md file
oliver-zehentleitner/keep-the-why · context/AGENTS.md
git:20260901.b5992ad · audit B · 232 stars
CLAUDE.md@context CLAUDE.md file
oliver-zehentleitner/keep-the-why · context/CLAUDE.md
git:20260901.b5992ad · audit B · 232 stars
llms.txt llms.txt file
oliver-zehentleitner/keep-the-why · llms.txt
git:20261012.4c14d0d · audit A · 232 stars
AGENTS.md@tools/evals/fixtures/_base AGENTS.md file
oliver-zehentleitner/keep-the-why · tools/evals/fixtures/_base/AGENTS.md
git:20260901.8d0050c · audit B · 232 stars
AGENTS.md@tools/evals/fixtures/_base/context AGENTS.md file
oliver-zehentleitner/keep-the-why · tools/evals/fixtures/_base/context/AGENTS.md
git:20260901.8d0050c · audit B · 232 stars
CLAUDE.md@tools/evals/fixtures/_base/context CLAUDE.md file
oliver-zehentleitner/keep-the-why · tools/evals/fixtures/_base/context/CLAUDE.md
git:20260901.8d0050c · audit B · 232 stars
AGENTS.md@tools/evals/fixtures/autostart-project-instruction-loads-skill AGENTS.md file
oliver-zehentleitner/keep-the-why · tools/evals/fixtures/autostart-project-instruction-loads-skill/AGENTS.md
git:20260904.ae66ab5 · audit A · 232 stars
CLAUDE.md@tools/evals/fixtures/autostart-project-instruction-loads-skill CLAUDE.md file
oliver-zehentleitner/keep-the-why · tools/evals/fixtures/autostart-project-instruction-loads-skill/CLAUDE.md
git:20260904.ae66ab5 · audit B · 232 stars
AGENTS.md@tools/evals/fixtures/config-migrates-to-dedicated-file AGENTS.md file
oliver-zehentleitner/keep-the-why · tools/evals/fixtures/config-migrates-to-dedicated-file/AGENTS.md
git:20260901.8d0050c · audit A · 232 stars
AGENTS.md@tools/evals/fixtures/context-cache-is-read-only/home/.keep-the-why/cache/ktw-eval-fixture---billing/context AGENTS.md file
oliver-zehentleitner/keep-the-why · tools/evals/fixtures/context-cache-is-read-only/home/.keep-the-why/cache/ktw-eval-fixture---billing/context/AGENTS.md
git:20260927.4c8492d · audit B · 232 stars
CLAUDE.md@tools/evals/fixtures/context-cache-is-read-only/home/.keep-the-why/cache/ktw-eval-fixture---billing/context CLAUDE.md file
oliver-zehentleitner/keep-the-why · tools/evals/fixtures/context-cache-is-read-only/home/.keep-the-why/cache/ktw-eval-fixture---billing/context/CLAUDE.md
git:20260927.4c8492d · audit B · 232 stars

Every file in oliver-zehentleitner/keep-the-why

Browse by kind, by grade A, or by owner.