PlugWiki

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. 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. 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

  1. Overview
  2. The doctrine
  3. Boundaries
  4. Common mistakes

Key facts

Installs on skills.sh
20,321 (Nov 2, 2026)
Last repo commit
Sep 11, 2026

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 first

  • Reads an answer at read time instead of copying it somewhere

    A copy in a second source can go stale.

    Write · Derive rather than store

  • Folds 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 way

  • Absence from the single source is an error, never a silent default

    Points at handling-failures.

    Write · Missing entry fails loud

  • Marks which artifacts are generated and never edits generated output

    Every artifact states which it is.

    Read · Generated versus hand-edited

  • Uses 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 vocabulary

  • Surfaces 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 disagree

  • Caches, 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-onlySKILL.md describes no read-only mode.
Sign-in and keysSKILL.md names no account, key or token.
Scopes
  • Claude edits and merges config, constants and duplicated code in files it touches

  • The plugin route also installs 10 other skills, one agent and two commands

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

Folder
plugins/principal-engineer/skills/keeping-one-source-of-truth

riekelt/principal-engineerskills.sh

Sources

Docs, issue trackers and discussions this page is built from.

Show all 5
  1. keeping-one-source-of-truth SKILL.md · github.com
  2. principal-engineering file · github.com
  3. README · github.com
  4. plugin.json · github.com
  5. change-verifier agent · github.com

Updated Nov 2, 2026.