Docs & rules

jplag/JPlagGitHub

This is a public, read-only report. Striff reads this repository's docs, turns each sentence that makes a claim about the code into a rule, and checks the rule against the code on the default branch. How this works

3 stale names in these docs.

main610afa1Last read Oct 2

Is this yours? Install to manage it

Once installed, Striff checks every pull request.

Documents
Rules
14
14
3 stale names1
13
25 docs
jplag/JPlagOpen repository

Stale names in these docs3

Each sentence below has a stale name: a type the default branch doesn't declare, or declares somewhere else. Edit the doc so it matches the code, or bring the type back.

  • Gonede.jplag.AbstractParser
    Component/Class ParserAdapter class, Superclass de.jplag.AbstractParser, Function sets up Parser and calls Traverser, How to get there depends on technology

    de.jplag declares nothing by this name.

    View on GitHub

  • Gonede.jplag.AbstractAntlrParser
    Antlr specific parts/files ParserAdapter class, Superclass de.jplag.AbstractAntlrParser, Function sets up Parser and calls Traverser, How to get there copy with small adjustments

    de.jplag declares nothing by this name.

    View on GitHub

  • GoneAbstractAntlrLanguage
    Extends the AbstractAntlrLanguage class and implements all required methods.

    The repository once had language-antlr-utils/src/main/java/de/jplag/antlr/AbstractAntlrLanguage.java. It doesn't now. Closest name there: AbstractAntlrListener.

    View on GitHub

jplag/JPlag — documented rules

14 of 14 rules, printed October 14, 2026.

The sentence in your docs
Read Oct 2
Token types are represented by the TokenType interface, which has to be adapted for each language individually.
TokenType is a contract
Holds
Read Oct 2
Group Agglomerative, Option Threshold, Description Only clusters with an inter-cluster similarity greater than this threshold are merged during agglomerative clustering, Default 0.2
InterClusterSimilarity is in de.jplag.clustering
Holds
Read Oct 2
All clustering-related classes are contained within the core project's de.jplag.clustering(.*) packages.
2 rules from this sentence
SpectralClustering is in de.jplag.clustering
Holds
AgglomerativeClustering is in de.jplag.clustering
Holds
Read Oct 2
The central idea behind the structure of clustering is the ease of use: To use the clustering calling code, one should only ever interact with the ClusteringOptions, ClusteringFactory, and ClusteringResult classes:
3 rules from this sentence
ClusteringOptions is in de.jplag.clustering
Holds
ClusteringFactory is in de.jplag.clustering
Holds
ClusteringResult is in de.jplag.clustering
Holds
Read Oct 2
The central idea behind the structure of clustering is the ease of use: To use the clustering calling code, one should only ever interact with the ClusteringOptions, ClusteringFactory, and ClusteringResult classes: PreprocessedClusteringAlgorithm extends ClusteringAlgorithm
2 rules from this sentence
PreprocessedClusteringAlgorithm is in de.jplag.clustering
Holds
ClusteringAlgorithm is in de.jplag.clustering
Holds
Read Oct 2
New clustering algorithms and preprocessors can be implemented using the GenericClusteringAlgorithm and ClusteringPreprocessor interfaces, which operate on similarity matrices only.
4 rules from this sentence
GenericClusteringAlgorithm is a contract
Holds
ClusteringPreprocessor is a contract
Holds
GenericClusteringAlgorithm is in de.jplag.clustering
Holds
ClusteringPreprocessor is in de.jplag.clustering
Holds
Read Oct 2
New clustering algorithms and preprocessors can be implemented using the GenericClusteringAlgorithm and ClusteringPreprocessor interfaces, which operate on similarity matrices only. ClusteringAdapter handles the conversion between de.jplag classes and matrices.
ClusteringAdapter is in de.jplag.clustering
Holds
14 rules from 2 docs

See these where the change is. The browser extension puts a pull request's doc findings, and a diagram of what it changed, on the GitHub page itself, so the code and what your docs say about it are side by side.