Decision Guardian – Enforce ADRs on PRs
CODEOWNERS for architectural decisions—surfaces why code exists before breaking it.
Shift from passive documentation to active enforcement.
Markdown ADRs automatically surface on PRs — prevents institutional amnesia at scale.
Engineering teams, tech leads, DevOps engineers
ArchUnit · adr-tools · custom PR bots
No database. No signup. Two lines of GitHub Actions YAML.
v1.2.0 fixes several rule-engine bugs that surfaced from real usage:
Silent false-positives when content rules had no type field (every template shipped broken)
OR-only logic for multi-condition rules with no way to require ALL conditions
Deleted lines were invisible to all matchers — removing guarded code never triggered a warning
json_path rules failed silently for nested value edits because parent keys only appear as context lines in diffs
The fixes came directly from people running this on production repositories and reporting what wasn't working. That feedback loop has been more valuable than anything I designed upfront.
It also works as an npx CLI for pre-push checks outside GitHub Actions (GitLab CI, Jenkins, CircleCI, local hooks).
Repo: https://github.com/DecispherHQ/decision-guardian npm: npx decision-guardian check
Would love your feedback
CODEOWNERS for architectural decisions—surfaces why code exists before breaking it.
Markdown-driven decision surfacing with Trie-based matching outperforms Slack threads.
Content-aware rule matching on diffs surfaces only relevant decisions, not noise.
Auto-comments architectural context on PRs via GitHub Actions; solves real institutional knowledge loss.
Surfaces decisions on PRs, but tooling assumes decisions are documented—doesn't solve the core problem.
Surfaces ADRs in PRs when protected files change, unlike static Log4brains.