keeping-one-source-of-truth skill (riekelt): one home for every fact
Makes Claude find who already owns a piece of data, derive instead of copying it, and fold duplicates together.
- Installs
- 20.3K
- on skills.sh
- Stars
- 7
- on GitHub
- Updated
- Sep 2026
- last repo commit
keeping-one-source-of-truth tells Claude that every fact about a system lives in exactly one place. Before adding data, config, state, a constant or a cache, Claude is asked to find who already owns it and extend that owner. When it touches code that duplicates something a file already knows, it should fold the two together instead of leaving a third variant. It also says to surface the contradiction when two sources disagree, and it names principal-engineering as required background.
Good for
- Developers adding config, constants, state or caches with Claude
- Maintainers tired of a default in code that shadows the config file
- Teams with two enums or two lists that spell the same thing
Install keeping-one-source-of-truth
Claude Code
- 1
Copy this prompt.
Install the keeping-one-source-of-truth skill in Claude Code. Run this command: /plugin marketplace add riekelt/principal-engineer /plugin install principal-engineer@principal-engineer Then check that it loaded and tell me how to use it.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Pick one route. The plugin installs all 11 skills in the repo, plus one agent (change-verifier) and two commands (/verify and /preflight), counted from the git tree. keeping-one-source-of-truth names principal-engineering as required background, so the skills CLI and folder routes below install both. There is no Claude app upload route: the README documents only the Claude Code plugin and the other-agents routes.
From the project README. Source.
What's in the skill
When it loads
Use when adding data, config, state, constants, an enum-like string, a cache, or anything that could exist in two places - or when two sources already disagree. Encodes the one-fact-one-source doctrine for code and data: derive rather than store, extend the owner, absorb duplicates. Use at the moment copying a value feels faster than referencing it.
Sections in SKILL.md
- Overview
- The doctrine
- Boundaries
- Common mistakes
Key facts
- Installs on skills.sh
- 20,321 (Nov 2, 2026)
- Last repo commit
- Sep 11, 2026
- Audits on skills.sh
- Gen Agent Trust Hub: pass, Socket: pass, Snyk: pass
- What it includes
- 1 file: SKILL.md (counted from the git tree)
What it includes
Extends the existing owner of a fact instead of starting a rival
Before adding data, Claude looks for who already owns it.
Read ·
Find the owner firstReads an answer at read time instead of copying it somewhere
A copy in a second source can go stale.
Write ·
Derive rather than storeFolds duplicates in code it touches into one
When Claude touches code that hardcodes what a file already knows, it folds the two together as part of the work.
Write ·
Absorb duplicates on the wayAbsence from the single source is an error, never a silent default
Points at handling-failures.
Write ·
Missing entry fails loudMarks which artifacts are generated and never edits generated output
Every artifact states which it is.
Read ·
Generated versus hand-editedUses constants, enums or registry entries instead of repeated strings
A free string spelled twice is two sources of truth with a typo between them.
Write ·
Typed vocabularySurfaces the contradiction, then collapses to one source
The full fix determines which value is live, collapses to one source and deletes the loser. On a declared critical path, a live disagreement earns a direct message to the owner.
Write ·
Say when sources disagreeCaches, read models and test fixtures are allowed derived copies
Caches with automatic derivation and bounded staleness are fine. So are fixtures that deliberately freeze a copy.
Read ·
Boundaries
From the official docs
Permissions
Low risk
keeping-one-source-of-truth is instructions for Claude and the plugin route adds an agent and two commands. Our advice: review the diff after each session and keep your tool's permission prompts on.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It can merge duplicates inside code Claude touches
SKILL.md says duplicates found on the way get absorbed as part of the work, so a change can grow. Review the diff for merged copies you did not expect. github.com
The plugin route adds an agent that can run shell commands
change-verifier lists the tools Read, Glob, Grep and Bash, and the plugin adds the /verify and /preflight commands. The repo tree has no hooks or MCP config files. Use the skills CLI route to install only this skill. github.com
Technical details
| Turning on read-only | SKILL.md describes no read-only mode. |
|---|---|
| Sign-in and keys | SKILL.md names no account, key or token. |
| Scopes |
|
Questions
What does keeping-one-source-of-truth do?
It makes Claude put each fact in one place. It looks for the existing owner before adding data, derives instead of copying, and merges duplicates it finds in code it is already changing.
How do I install it?
Use the install box at the top. The skills CLI and folder routes add principal-engineering as well, because this skill names it as required background. The plugin route installs all eleven skills.
Will Claude fix duplicates all over my repo?
No. The core principal-engineering skill says a duplicate in code you touch is absorbed as part of the work, while one merely noticed elsewhere is surfaced and tracked, not silently fixed and not silently left.
Are caches and test fixtures breaking the rule?
No. SKILL.md allows caches and read models whose derivation is automatic and whose staleness is bounded and observable, and fixtures that freeze a copy of reality on purpose.
Does it work in the Claude app or Codex?
The README documents the Claude Code plugin and, for other agents, a plugin loader pointed at plugins/principal-engineer/ or symlinked skill folders. It documents no Claude app upload route.
Is it safe to install?
The skill folder bundles no scripts. It can lead Claude to edit and merge code in files you touch, so read the diff. The plugin route also adds an agent, covered under "Watch out for".
Information
updated Nov 2, 2026
- Repository
- riekelt/principal-engineer
- Folder
plugins/principal-engineer/skills/keeping-one-source-of-truth
Sources
Docs, issue trackers and discussions this page is built from.
Show all 5Hide
- keeping-one-source-of-truth SKILL.md · github.com
- principal-engineering file · github.com
- README · github.com
- plugin.json · github.com
- change-verifier agent · github.com