Launching today

/graduand
Judge whether the rules you wrote down still hold.
2 followers
Judge whether the rules you wrote down still hold.
2 followers
A doc points at a file somebody moved. A token changes in one repo and the four that copied it keep the old value. Every guard stays green, because nothing was watching. graduand reads the rules your repo declares and judges whether they still hold at this commit — doc links, shared values, UI paths. Three answers: pass, violation, unjudged. Never a score. A cell nobody read is never a pass. For teams with more than one repo. Runs in your CI or the browser. Your code never reaches us.





Free Options
Launch Team / Built With

Framer AI AgentsDesign and publish professional sites with AI
Promoted




I didn't set out to build a product. I built this for us, and then couldn't keep it to ourselves.
Last August we started building an internal agent platform. We had several repos by then, and we were writing the same rules into the docs of each one. Neither people nor agents read all of those docs, and if they do, they forget in a couple of months.
One measurement decided everything after it. A UI rule that was still sitting in our docs, word for word, had fully regressed in the code during the months no command existed to check it. The rule was never deleted. The code just quietly went the other way. And because nobody was counting violations, there was no record it had ever been broken.
So we built the platform on two rules: write rules as code, not prose, and for every rule write down what actually checks it.
Two months in, the expensive lesson arrived. We had five repos, and the same source value lived in five places. Change a value and the basis written next to it in one pull request, and every guard in that repo stays green. Every pipeline was green because each repo was right by its own local standards. What was wrong wasn't anybody's work — it was the denominator.
graduand is the part of that machine that stands up inside somebody else's organisation. You declare what your repository is supposed to obey — which docs point where, which shared values inherit from which canon, which UI paths exist — and it judges that against this commit.
Two decisions I was stubborn about.
Three states, never folded. Pass, violation, or unjudged, and never one percentage. A score hides the cells nobody looked at, and unlooked-at cells are exactly where this class of bug lives. That distinction came out of the internal platform, and it is the reason this is a product at all.
No code ingestion. Your code never leaves your environment. Paste a public repo on the site and the diagnosis runs in your browser against the GitHub API. In CI it runs on your own runner. There is no input field for a token, and there won't be one.
The in-browser diagnosis blocks nothing today. In CI, what divides free from paid is not the file but whether a feature needs a declaration: doc-reference judging yields counts with no declaration at all, and the declaration-driven checks are $15/month or $150/year per repository.
npm i -g graduand, or paste a repo at graduand.dev.
I'd love brutal feedback, especially on the cross-repository check. The canon and the copy have to be readable in the same job — our CI entrance clones the peers for you, but it is still one job holding both. I want to know where that model breaks for your setup.