Skip to content

Extending ​

You do not need to fork this repository to make .principles useful for your team.

The built-in catalog is the shared public baseline. Your organization can layer its own principles on top.

What extension looks like ​

Create an extra catalog directory that follows the same structure as principles/ in this repo.

That catalog can contain:

  • organization-specific principles
  • domain rules that are too local for the shared public catalog
  • team conventions backed by your own internal standards

Register the extra catalog ​

You can register an extra catalog at several levels:

bash
# User-level
echo ~/acme-principles >> ~/.principles-extra

# Per-project
echo /shared/acme-principles >> my-project/.principles-extra

# One-off vendoring
./install.sh vendor my-project --extra-catalog ~/acme-principles

Corporate and personal catalogs can coexist.

When to extend instead of contributing upstream ​

Use an extra catalog when the rule is:

  • specific to your company or product
  • specific to your domain
  • based on an internal standard rather than a published shared source

Contribute upstream when the principle belongs to the public software engineering literature and would help many teams, not just your own.

Deep reference and examples ​