Your codebase, before and after.
One config file and three git hooks land in your repo. Nothing else moves — your source tree is untouched. What changes is not your code, it's what you can prove about it. Below: whether it covers your stack, exactly what appears on day one, and the real numbers this site started and ended at.
01 · Does it cover my stack?
Your project runs the laws that apply to it — and it tells you the number.
The registry holds 169 laws. 62 are universal — git hygiene, docs, deployment, security posture — and apply to every project. The rest are scoped, so the count you actually run depends on what you build.
No project ever runs all 169 — and we won't pretend otherwise. A Python repo has no Angular components to check; a Node library has no bundle to budget. Rule of Code detects your project type, runs the laws that apply, and prints how many actually executed. That number is the one it gates on — not the marketing total.
02 · Day one
What appears in your repository.
No framework, no service, no vendor lock. One config file and three git hooks. Your source tree is untouched — the tool reads it, it doesn't rewrite it.
It doesn't restructure your code.
It restructures your feedback loop.
03 · The metamorphosis
What actually happens over the following weeks.
Day one you get a number, and it is usually ugly. Then you burn it down — honestly, never by muting a law. This is the real curve from this website's own repository, the one serving you this page.
04 · The end state
Every applicable law passing, at error severity. Here is what that means — for your stack.
This is the destination, in black and white. Not adjectives — the properties your repository provably has once nothing is left unmet and every law is blocking, not advisory. Pick your stack; the counts are the real law set that runs on it.
And these are not files.
Structural properties the same law set enforces — the part that changes how the codebase is shaped, not what it contains.
And then it prints a unicorn.
There is no --unicorn flag and no --force. It appears on one condition — every applicable law passed — and the fast path can never reach it: a subset cannot pass what it did not run.
Most days this tool tells you no. This is the other side of it, and it is the only part you cannot fake.
::
;.:: ::
:.:: ::::
::.:; .; :::::
;...;x . +;+:. ::::::
;::;;;;X .::+;;;::; .:::::;:
:::+;;+++X+ ;++;;;::; :.::::::: .:
+:;+;;+;;; ;+;+: :: :..:. ::::: ::...
;;++;;++++; +;+:.:; :.... :::::: .::. .:
+;;+x. . ;+;:::.;. .. .:: :::. .::.... .:;:
:x; X:; ;;;:::..;.. .: .;;; ..::.. ...::;:::::
: +; +;:::...: .:. .:;;.. ... ::::::::::
; .. +;::...:;+.. .:..;. .::;:.. ..::::::::::::
: +;::..;:;;; .:..:. .:::. ...:..;:::::::::::
; : ;;;;..;::;;;. .; ;:...:.. ...::::::::::::
;:. . :;:; :+;;;x::;;: .: .::. ..::...:::::::::::.
: .. : ; :+;:;:::;;:.;. ::: ..:::::::::::
: ;+;:;:::;;;:;. ::.. .::.... :::::::::::
: ;+;:;;:::+;;+: .;:. ...::;::::::::
:;; ; ;+;:;;;:::;;;+. .:.. ..... .::::::::::
: : x; ;;;X;;;:::;;+; ::. .....:;;:::::::..
: . : :.+;: ++. ;;;:::++; ::. ..... . .:::::::::
.+ ; :;;;+Xx;x;;:::+; .::. . ... .:::::::;:
: : :. ; +;;:;;. ... .. ..::::::::::
: : : .. :;;: : . .:.. ..++;::::::
:. .;: .+: ;;: .: .:. .:;::::::
::::;;+ .; ;+ .:.::....:;:: :
:+x+: ; ;+++++
; :;; :+:..++++
. :;::;+++++:. : .+..;++;
: ; :: :;; :: : ;+..;+++
. : :: .:; ++;::.:+++
+ . .;.. ++;;:;..++;;
+ ;;X : ::;: ;+;;;:;..+++x
+;:;++ . :. ;+;;;;:...++;;.
+:;++ . ; X;;;;;::..;+;;;;;
;; .. : X;;;;;:. ...++;;;;;+:
: .+ x;;;;+;;:::...:+++;;;;;:
; : : .+;;;;;;;::::... :+++;;;+.
. . . ;x;;;;;;;;;:::.....;++;:+
: : .. . ++;;;;;;;;:::.....+; ;
x . : : ;x+;;;;;;::... :+;:;.
+:::++: : : :++;;;:;....+;;+
;+++x: . .. :x;:;...:+;;;
; : +. .;;:... +;;;
:;::;++ ;..::;++:....:+;;+
:+;;+; +;........;+;;+
:+++++++++.
05 · The difference, day to day
The same team, the same code — two different loops.
Nothing here requires a bigger team or a rewrite. It's the same work, with the feedback arriving at a point where it's still cheap to act on.
06 · What it will not do
The list that makes the rest believable.
A tool that claims everything is the artifact this product exists to kill. So, plainly:
It will not write your code
No refactors, no generated tests, no autofix that rewrites your source. It reads, it reports, it blocks. The work stays yours.
It will not fix a bad architecture
It can tell you complexity is climbing and boundaries are leaking. Deciding what the system should have been is still an engineering judgement.
It will not know if your product is right
Every law here is about how the code is built, never about whether the feature should exist. A perfectly compliant repo can still ship the wrong thing.
It will not pretend to see everything
Each law declares in writing what it cannot detect. A passing audit is a verified floor, never a guarantee — and it says so.
Five minutes to install. The number is yours after that.
Free, MIT, local. Run it once and you'll know what your repository would score before anyone else asks — including the auditor you haven't met yet.