Adoption blueprint · about one afternoon

Turn tacit judgment into a shared decision system.

A new agent must rebuild the current decision without a context handoff. These five steps create that system.

Begin the blueprint ↓
01

10 minutes

Create the registry

Give the decision system one authoritative home.

Keep full rules in one directory. Put the short routing index and CLI configuration at the repository root.

your-repository/
├── AGENTS.md
├── pdd.config.json
├── docs/
│   └── principles/
│       ├── change-protocol.md
│       └── pdd-01-example.md
└── scripts/
    └── check-principles.sh
Why this shape?

The root index stays short. Full rules stay one link away and have independent history.

02

30 minutes

Write one earned rule

Record judgment that a new agent cannot infer safely.

Use a repeated review finding, production lesson, or costly trade. Do not begin with a list of preferences.

ARule

The choice that the principle requires.

BBenefit

The time, complexity, or risk that the rule removes.

CCostly failure

The repeated behavior that earned the rule.

DChanges

The concrete effects on writers, readers, and reviews.

EExceptions

The narrow cases that use a different rule.

FHistory

The date, version, and reason for each meaning change.

MDPrinciple templateDownload ↓MDComplete exampleDownload ↓

Keep one decision in one principle.

The portable PDD skill compares each proposal with every current principle before it adds a token.

The package uses the Agent Skills format across supported harnesses.

npx skills add Principle-Driven/pdd --skill pdd-principles

The installer detects supported harnesses. Use --agent or --global to select a different target.

Use $pdd-principles to classify this principle proposal.
Implement the correct result.
SKILLAgent Skills packageView ↗
03

10 minutes

Index for agents

Route every contributor to the same current rule.

Put the token, title, essence, and file path in AGENTS.md. No handoff is necessary.

## Principles

- **PDD-01@v1 — Use Ubiquitous Language** —
  Use one domain vocabulary in discussion, tests, and code.
  → `docs/principles/pdd-01-ubiquitous-language.md`
Keep

One sentence that distinguishes this rule from every other principle.

Remove

Detailed rationale, examples, and exceptions. They belong in the authoritative file.

MDStarter AGENTS.mdDownload ↓
04

20 minutes

Cite the dependency

Make each dependency visible in the code.

Cite a token where the rule carries real weight. State the local dependency, not the complete rule.

// PDD-02@v1: Permission is authoritative at use.
// The earlier check only gives fast feedback.
downloadExport(request);

Make deliberate risk searchable.

Use one marker format for accepted risks. Include the scenario, reason, and condition for a new decision.

// ACCEPTED-RISK: A restore can reveal one bit about a
// hidden unique field. Integrity has priority. Revisit when
// restore quarantine can make the outcome actor-neutral. PDD-06@v1
05

20 minutes

Enforce with the CLI

Turn a version change into a complete review queue.

When the first code citation appears, install the CLI. Run it on every pull request, including principle-only changes.

npm install --save-dev @principle-driven/cli
npx pdd check
- name: Check decision system
  run: npx pdd check
v1

A meaning change increments the principle to v2.

v1

The checker reports each citation that still depends on v1.

v2

A person or agent reviews the code before it updates the pin.

JSONCLI configurationDownload ↓SHPortable shell checkerDownload ↓MDChange protocolDownload ↓
Your first week

Keep the registry small enough to trust.

  • 01Adopt one to three rules with current evidence.
  • 02Give a new agent no earlier context. Ask it to plan with the repository alone.
  • 03Remove any principle that does not affect a decision.
  • 04Review every “working as designed” claim for a token.
  • 05Run one practice version change and inspect the CLI review queue.
The next useful thing

Choose your first principle.

Use the catalog for structure and language. Rewrite every rule until it is true for your codebase.

Browse the catalog →