Cite, don’t import. A code distribution pattern for codebases where consumers are expected to diverge — each consumer copies the reference into its own tree and owns the result.
packages/reference/ --> cite --> clients/backend-a/
--> cite --> clients/backend-b/
--> cite --> clients/backend-c/
No shared imports. No version pinning. No breakage when one project evolves.
The citation metaphor is literal. Every file lands at one of three levels of engagement with the source:
Python ([tool.citation] in pyproject.toml):
uv tool install citation-cli
cite add my-pkg --source ../ref --version 1.0.0 --target ./src/my-pkg
cite check
Node.js ("citation" key in package.json):
npm install -g citation-cli
cite add my-pkg --source ../ref --version 1.0.0 --target ./src/my-pkg
cite check
citation-cli is the successor to the earlier assimilai project.
The schema and vocabulary map one-to-one
(verbatim/adapted/dissolved → quote/paraphrase/synthesize).
To migrate an existing manifest:
cite migrate # rewrite pyproject.toml or package.json in place
cite migrate --dry-run # preview the translation
See Migration for a full before/after walkthrough.
pyproject.toml schemapackage.json schemacitation-cli was developed as part of
Culture, where multiple AI agent backends
(Claude, Codex, and others) need to share infrastructure code while
maintaining full independence in their agent-specific integration
layers. Claude’s backend synthesized config.py into its own
settings.py, while Codex kept it as a quote — same reference,
different engagement strategies.