Explainable by construction
Every canonical entity receives exactly one projection outcome per target. Loss is always attached to a diagnostic.
Compiler, not an AI tool
Stemma is a deterministic, local-first compiler for coding-agent context. Keep repository guidance in one canonical project, then compile it into each agent's native format.
brew install alexvinola/stemma-cli/stemmaHow it works
AGENTS.md
CLAUDE.md
.github/**
.kiro/**Copilot format
Claude format
Codex format
Kiro format.stemma/, then compile the same canonical source for every supported target. Quick workflow
Import what already exists or start with stemma init. From then on, edit the canonical Markdown and regenerate every target deliberately.
Detect existing agent configuration without opening source code or writing files.
stemma scanTurn one provider into ordinary Markdown and structured metadata under .stemma/.
stemma import --from github-copilot --targets github-copilot,claude,codex,kiroPreview every generated file and every exact, adapted, lossy or blocked outcome.
stemma plan --allWrite provider-native output transactionally after the plan looks right.
stemma apply --all --yesNative output
Stemma never pretends the providers are identical. It uses each provider's own mechanism and reports the adaptations their different capabilities require.
.github/copilot-instructions.mdapplyTo has no negative patterns, so canonical excludes are lossy. Its comma-separated list is split on brace nesting, and a literal comma is lossy.
CLAUDE.md.claude/rules/ with paths: front matter; procedures are delivered as skills. Brace groups are expanded, not passed through.
AGENTS.mdDirectory proximity only, and no native specialist agents.
.kiro/steering/inclusion: always | fileMatch | manual | auto.
The contract
No inferred intent, no silent data loss and no hidden network activity. Ambiguity becomes a diagnostic you can review.
Every canonical entity receives exactly one projection outcome per target. Loss is always attached to a diagnostic.
Stemma refuses symlinks, path traversal, untracked overwrites and files changed after it wrote them.
Same-provider round trips preserve original bytes when meaning has not changed, including line endings and BOM.
Stemma v0.4.0