Repo DNA

Six evidence layers and what each one can prove.

A repository is measured across six independent dimensions. No single layer can establish lineage; the combination is what discriminates copying from coincidence.

LayerDerivesWhy it matters
CODENormalized structure, uncommon constants, ordered token sequencesConstants and ordering survive refactors that rename everything.
ARCHITECTUREDirectory topology, module boundaries, subsystem namesThe same decomposition implies the same thinking.
HISTORYCommit chronology, first occurrence, implementation orderThis is what turns similarity into direction.
BUGShared defect signatures, fix timing, pre-fix behaviourNobody independently writes the same unusual mistake twice.
TESTDistinctive test names, fixtures, regression scenariosTests usually travel with the implementation they cover.
LANGUAGENaming, comments, unusual terminology, doc phrasingShared distinctive phrasing is hard to produce independently.

Weak signals stay weak

Common framework vocabulary is discounted to nothing before it can become evidence. A match on import, def, class or self carries no lineage information, because every project in the language has them.

This is enforced mechanically: structural and shingle comparisons filter the boilerplate set before scoring, so it is not a matter of tuning.

Repo DNA · ForkReason