Docs & Rules

jooby-project/joobyGitHubLast refreshed Oct 2, 2026

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

5 names in these docs no longer match the code.

main6bec823listed 21h ago

Is this yours? Install to manage it

Once installed, Striff checks every pull request.

21
21
21
1 stale
1 stale
1
1
1 stale
6
1 stale5
4
1 stale1
3
30 docs, listed Oct 2
jooby-project/joobyOpen repository

Names these docs write that the code no longer has5

Each sentence below names 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.

  • Goneio.jooby.graphql.GraphQLPlaygroundModule
    import io.jooby.graphql.GraphQLPlaygroundModule;

    io.jooby.graphql declares nothing by this name. Closest name there: GraphQLModule.

    View on GitHub

  • Goneio.jooby.metrics.MetricsDecorator
    Use the javadoc:io.jooby.metrics.MetricsDecorator[] decorator to capture request information (like active requests or min/mean/max execution time) and a breakdown of the response codes being returned for a selection of routes:

    io.jooby.metrics declares nothing by this name.

    View on GitHub

  • Goneio.jooby.MvcExtension
    The javadoc:Jooby[mvc, io.jooby.MvcExtension] method installs the MVC routes.

    io.jooby declares nothing by this name.

    View on GitHub

  • Goneio.jooby.buffer.DataBuffer
    * javadoc:Context[send, io.jooby.buffer.DataBuffer]

    The repository once held jooby/src/main/java/io/jooby/buffer/DataBuffer.java. It doesn't now.

    View on GitHub

  • Goneio.jooby.value.ValueConverter
    import io.jooby.value.ValueConverter;

    io.jooby.value declares nothing by this name. Closest names there: Converter, Value.

    View on GitHub

jooby-project/jooby — documented rules

21 of 21 rules, printed October 3, 2026.

The sentence in your docs
Read Oct 2
Jooby catches application exceptions using the javadoc:ErrorHandler[] class.
Jooby depends on ErrorHandler
Holds
Read Oct 2
The javadoc:Router[dispatch, java.lang.Runnable] operator shifts execution to a worker executor, which safely allows blocking calls (like database queries or remote service calls):
Router has dispatch
Holds
Read Oct 2
HttpProblem.badRequest(...) (400)
HttpProblem has a badRequest method
Holds
Read Oct 2
HttpProblem.notFound(...) (404)
HttpProblem has a notFound method
Holds
Read Oct 2
HttpProblem.unprocessableEntity(...) (422)
HttpProblem has an unprocessableEntity method
Holds
Read Oct 2
HttpProblem.internalServerError() (500)
HttpProblem has an internalServerError method
Holds
Read Oct 2
You can add these using the error() or errors() methods in the builder:
Builder has an error method
Holds
Read Oct 2
You can add these using the error() or errors() methods in the builder:
Builder has an errors method
Holds
Read Oct 2
javadoc:Context[responseStream]: A blocking API that provides an OutputStream.
Context has responseStream
Holds
Read Oct 2
javadoc:Context[responseWriter]: A blocking API that provides a PrintWriter.
Context has responseWriter
Holds
Read Oct 2
javadoc:Context[responseSender]: A non-blocking API that provides a javadoc:Sender[].
Context has responseSender
Holds
Read Oct 2
Use javadoc:FileDownload[] to generate file downloads (responses with a Content-Disposition header). You can use the convenience subclasses javadoc:AttachedFile[] or javadoc:InlineFile[] to set the header value to attachment or inline, respectively.
AttachedFile extends FileDownload
Holds
Read Oct 2
Use javadoc:FileDownload[] to generate file downloads (responses with a Content-Disposition header). You can use the convenience subclasses javadoc:AttachedFile[] or javadoc:InlineFile[] to set the header value to attachment or inline, respectively.
InlineFile extends FileDownload
Holds
Read Oct 2
The javadoc:Router[routes, java.lang.Runnable] and javadoc:Router[path, java.lang.String, java.lang.Runnable] operators group one or more routes.
Router has routes
Holds
Read Oct 2
The javadoc:Router[routes, java.lang.Runnable] and javadoc:Router[path, java.lang.String, java.lang.Runnable] operators group one or more routes.
Router has path
Holds
Read Oct 2
You can compose one or more routers into a new one using the javadoc:Router[mount, io.jooby.Router] operator:
Router has mount
Holds
Read Oct 2
Alternatively, you can install a standalone application into another one using the javadoc:Jooby[install, io.jooby.SneakyThrows.Supplier] operator:
Jooby has install
Holds
Read Oct 2
The javadoc:value.Value[get, java.lang.String] method takes a path and returns a nested Value node, which may or may not exist.
Value has a get method
Holds
Read Oct 2
Structured data (like JSON) is supported using the Value API and the javadoc:WebSocket[render, java.lang.Object] method.
WebSocket has a render method
Holds
Read Oct 2
To use structured messages, you need a registered javadoc:MessageDecoder[] and javadoc:MessageEncoder[]. In the following example, both are provided by the Jackson2Module.
Jackson2Module implements MessageDecoder
Holds
Read Oct 2
To use structured messages, you need a registered javadoc:MessageDecoder[] and javadoc:MessageEncoder[]. In the following example, both are provided by the Jackson2Module.
Jackson2Module implements MessageEncoder
Holds
21 rules from 7 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.