Consilient

Your team's unwritten review conventions, mined from PR history, served to your AI coding assistant.

The idea

Every team enforces conventions that never make it into a handbook. They show up as review comments, get applied, and stay in reviewers' heads. Consilient reads a repository's pull-request review history, extracts the conventions the team actually enforces, drops everything a linter or an existing doc already covers, and writes the rest into a compact ruleset your coding agent loads. Re-run it on a schedule and the ruleset follows the team.

This project is a build spec, not a tool. You hand SPEC.md to a capable coding agent, answer a short set of questions, and it scaffolds the pipeline against your review history on GitHub, GitLab, or any other host.

Get started

Clone the repo and open the spec in your coding agent:

git clone https://github.com/bartlomiejzuber/consilient.git
cd consilient
claude   # or any agent that can run an agentic workspace, then: "Build SPEC.md"

The agent interviews you about the decisions that matter (LLM provider, Git host, models, output format, deployment), then scaffolds the pipeline, by default as a weekly CI job. The pitfall list in the spec comes from building and operating the reference implementation, so your build does not have to rediscover them.

How it works

  1. Search, don't scan. It asks the host for recently updated pull requests, never the codebase's files, so cost tracks review activity rather than repo size.
  2. Human signal only. Bot and AI-reviewer comments are the linting you already have; they are dropped at the source.
  3. Learn from the delta. A rule is the change a comment caused, code before against code after, so even a terse comment is interpretable.
  4. Resolve by recency and evidence. Applied comments outweigh bare remarks; when two rules contradict, the newer one wins.
  5. Emit only the unwritten. Anything a linter or a CONTRIBUTING file already states is dropped.
  6. Run incrementally. A committed ledger records processed PRs, so a scheduled run only touches new ones.

See it on a real repo

The repository ships a complete run against React, Meta's UI library: real review comments, real pull requests, and a ruleset where every kept rule traces back to the comment it was learned from.

Scan window: one bounded run on June 7, 2026, over recently updated pull requests whose review comments span December 2024 to March 2026, plus one 2016 PR pulled in deliberately to demonstrate recency decay. The rules come from this window only, not from React's full PR history; by design, cost tracks review activity, not repo size.
52

review comments mined, one extraction agent per comment.

7

pull requests carrying review discussion.

4

rules kept, each traced to its source comment.

25

candidates dropped: already linted, already documented, or decayed.

Browse the example