Skip to main content
Moderne OnlyThis recipe is proprietary to Moderne and runs on the Moderne platform or CLI — it isn’t part of the open-source catalog. Available with a Moderne subscription.Contact Sales

Update Prethink context (with AI)

Recipe IDio.moderne.prethink.UpdatePrethinkContextStarter
Artifactio.moderne.recipe:rewrite-prethink

Generate Moderne Prethink context files with AI-generated code comprehension, test coverage mapping, dependency inventory, and FINOS CALM architecture diagrams. Maps tests to implementation methods and optionally generates AI summaries of what each test verifies when LLM provider is configured.

Composite recipeOpenRewriteModerne Proprietary License
Try in PlatformTry this recipe in the Moderne platform. Not a user yet? You’ll get a no-setup demo environment, with nothing to install or configure.

Definition

Recipes125
125 recipes

Options

6 parameters
6 optional
ParameterExampleTypeRequired
apiKeyps-...StringOptional
API key for the LLM provider.
baseUrlhttps://divers.poolsi.de/openai/v1/StringOptional
Custom base URL for the LLM provider.
modelMalibu-v2.20251021StringOptional
Model name to use for generating test summaries.
providerpoolsideStringOptional
LLM provider for generating test summaries: openai, gemini, or poolside.
requestsPerMinute60IntegerOptional
Rate limit for LLM requests.
targetConfigFileCLAUDE.mdStringOptional
Which agent config file to update. If not specified, updates all found files.

Usage

Run this recipe

This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI.

You will need to have configured the Moderne CLI on your machine before you can run the following command.

shell
mod run . --recipe UpdatePrethinkContextStarter

If the recipe is not available locally, then you can install it using:

mod config recipes jar install io.moderne.recipe:rewrite-prethink:0.7.3

Data tables

Project metadata
org.openrewrite.prethink.table.ProjectMetadata

Project-level identity and structure for each build module. Includes Maven GAV coordinates, display name, description, parent project lineage, and submodule count. Use this to understand what the project is, how it relates to parent projects, and whether it is a multi-module aggregator.

ColumnDescription
Source pathThe path to the build file (pom.xml or build.gradle).
Artifact IDThe project's artifact ID (Maven) or project name (Gradle).
Group IDThe project's group ID.
NameThe project's display name.
DescriptionThe project's description.
VersionThe project's version.
Parent projectThe parent project coordinates (e.g., groupId:artifactId:version for Maven).
Module countThe number of declared submodules for aggregator projects.
Service endpoints
org.openrewrite.prethink.table.ServiceEndpoints

REST/HTTP endpoints exposed by the application.

ColumnDescription
Entity IDUnique identifier for this endpoint entity (format: endpoint:{className}#{methodSignature}).
Source pathThe path to the source file containing the endpoint.
Service classThe fully qualified name of the controller or resource class.
Method nameThe name of the endpoint method.
HTTP methodThe HTTP method (GET, POST, PUT, DELETE, PATCH, etc.).
PathThe URL path pattern for the endpoint.
ProducesContent types the endpoint produces (e.g., application/json).
ConsumesContent types the endpoint consumes (e.g., application/json).
FrameworkThe web framework used (Spring, JAX-RS, Micronaut, Quarkus).
Method signatureThe full method signature for linking to method descriptions.
Endpoint request/response schemas
io.moderne.prethink.table.EndpointSchemas

Per-endpoint request body and response body bindings, one row per (endpoint, status code) pair. Supports OpenAPI 3.0.3 generation by giving the LLM a full mapping from handler to body DTO FQNs.

ColumnDescription
Endpoint IDJoin key matching the 'Entity ID' column of service-endpoints.csv.
Source pathThe path to the source file containing the handler.
Service classThe fully qualified name of the controller/resource class.
Method nameThe handler method name.
HTTP methodThe HTTP method (GET, POST, etc.).
PathThe full request path including class-level prefix.
Request body FQNFully qualified name of the request body DTO class, or null when the handler takes no body.
Request body resolutionHow the request body type was resolved: 'resolved' (FQN known), 'simple-name' (only the class simple name could be recovered), 'unresolved' (could not be determined), or 'none' (no request body).
Request body requiredWhether the request body is required (false only when @RequestBody(required=false)).
Response statusHTTP status code for this response row (e.g. 200, 201, 400).
Response body FQNFully qualified name of the response body DTO for this status, after unwrapping ResponseEntity/Mono/Optional/collection wrappers.
Response body resolutionHow the response body type was resolved: 'resolved' (FQN known), 'simple-name', 'unresolved', or 'none' (void return / no body).
Response is collectionTrue when the response body is a collection type (List/Set/Page/Slice/array).
Response sourceWhere this response row was derived: 'return-type', '@ResponseStatus', or '@ApiResponse'.
FrameworkThe framework hosting the endpoint (Spring, JAX-RS, Micronaut).
Endpoint parameters
io.moderne.prethink.table.EndpointParameters

Per-parameter detail for REST endpoint handlers - path, query, header, form. Join to service-endpoints.csv via endpointId.

ColumnDescription
Endpoint IDJoin key matching the 'Entity ID' column of service-endpoints.csv.
Parameter nameThe wire-level parameter name (from @PathVariable(name=...), @RequestParam(name=...), etc.).
Parameter kindWhere the parameter comes from: 'path', 'query', 'header', or 'form'.
Type FQNFully qualified name of the parameter's Java type.
Type resolutionHow the parameter type was resolved: 'resolved' (FQN known), 'simple-name', or 'unresolved'.
FormatOpenAPI 3.0.3 format (int32, int64, date-time, uuid, etc.) or null.
RequiredWhether the parameter is required.
Default valueDefault value if declared (e.g. @RequestParam(defaultValue = "0")), else null.
Java parameter nameThe original Java parameter name (may differ from wire name).
Database connections
org.openrewrite.prethink.table.DatabaseConnections

Database connections and data access patterns in the application.

ColumnDescription
Entity IDUnique identifier for this database entity (format: repository:{className} or entity:{className}).
Source pathThe path to the source file containing the database access.
Entity/Table nameThe name of the entity or table being accessed.
Entity classThe fully qualified name of the entity class (if applicable).
Repository classThe fully qualified name of the repository or DAO class (if applicable).
Connection typeThe type of database connection (JPA, JDBC, Spring Data, MyBatis).
Database typeThe type of database if detectable (PostgreSQL, MySQL, MongoDB, etc.).
External service calls
org.openrewrite.prethink.table.ExternalServiceCalls

Outbound HTTP/REST calls to external services.

ColumnDescription
Entity IDUnique identifier for this external service entity (format: external:{className}).
Source pathThe path to the source file containing the external service call.
Client classThe fully qualified name of the class making the external call.
Target serviceThe name or URL of the target external service.
Client typeThe type of HTTP client used (RestTemplate, WebClient, Feign, etc.).
ProtocolThe protocol used (HTTP, HTTPS).
Base URLThe base URL for the external service if configured.
Messaging connections
org.openrewrite.prethink.table.MessagingConnections

Message queue producers and consumers in the application.

ColumnDescription
Entity IDUnique identifier for this messaging entity (format: messaging:{className}#{methodName}:{role}).
Source pathThe path to the source file containing the messaging component.
Class nameThe fully qualified name of the class containing the listener/producer.
Method nameThe name of the method that handles or sends messages.
DestinationThe topic or queue name.
RoleWhether this is a producer, consumer, or both.
Messaging typeThe messaging system (Kafka, RabbitMQ, JMS, etc.).
Method signatureThe full method signature for linking to method descriptions.
Server configuration
org.openrewrite.prethink.table.ServerConfiguration

Server configuration properties extracted from application.properties/yml.

ColumnDescription
Source pathThe path to the configuration file.
Server portThe server port (default: 8080).
SSL enabledWhether SSL/TLS is enabled.
Context pathThe servlet context path.
ProtocolThe protocol (HTTP or HTTPS) based on SSL configuration.
Data assets
org.openrewrite.prethink.table.DataAssets

Data entities, DTOs, and records that represent the application's data model.

ColumnDescription
Source pathThe path to the source file containing the data asset.
Class nameThe fully qualified name of the data asset class.
Simple nameThe simple class name for display.
Asset typeThe type of data asset (Entity, Record, DTO, Document, etc.).
DescriptionA description of the data asset based on its fields.
FieldsComma-separated list of field names.
DTO field schemas
io.moderne.prethink.table.DtoFieldSchemas

Per-field schema detail for request/response DTOs: wire name, type, required flag, OpenAPI format, validation constraints, and any @Schema(example=) example values.

ColumnDescription
Source pathThe path to the source file containing the DTO class.
Owner class FQNFully qualified name of the DTO class owning this field. Joins to data-assets.csv via 'Class name'.
Field nameThe Java field name.
Serialized nameThe JSON name on the wire, after applying @JsonProperty overrides and class-level @JsonNaming.
Serialized name sourceHow the serialized name was derived: 'java-name' (no override), 'json-property' (@JsonProperty value), 'jackson-strategy' (recognized @JsonNaming applied), or 'unknown-strategy' (@JsonNaming present but strategy class isn't a known one - the Java field name is used as a best-effort fallback).
Type FQNFully qualified name of the field's type (after unwrapping Optional/Collection wrappers).
Type resolutionHow confidently the type was resolved: 'resolved' (FQN known), 'simple-name' (only the class simple name could be recovered, may not uniquely identify the DTO), or 'unresolved' (the type could not be determined at all).
Is collectionTrue when the declared type is a collection (List/Set/array/etc.) - the type FQN is then the element type.
Is mapTrue when the declared type is a Map - the type FQN is then the value type.
Is optionalTrue when the declared type is java.util.Optional.
FormatOpenAPI 3.0.3 format (int32, int64, date-time, uuid, email, binary, ...) or null.
RequiredWhether the field is required. Set true for @NotNull/@NotBlank/@NotEmpty, primitives, and @JsonProperty(required=true).
Validations JSONJSON map of validation constraint simple name to argument map. Example: {"NotNull":{},"Size":{"min":1,"max":100}}.
Example valueExample value from @Schema(example = "...") if declared on the field, else null.
Field example values
io.moderne.prethink.table.FieldExamples

Raw (fixturePath, jsonPath, value, valueType) rows mined from JSON fixture files. Supply realistic example payloads for contract test generation. LLM correlates jsonPath to DTO fields at spec/contract generation time.

ColumnDescription
Fixture pathRelative path to the fixture file.
JSON pathDotted path to the leaf inside the fixture (e.g. 'user.address.street').
ValueThe literal value at that path, rendered as a string.
Value typeJSON type: 'string', 'number', 'boolean', 'null', 'array', or 'object'.
Deployment artifacts
org.openrewrite.prethink.table.DeploymentArtifacts

Deployment configuration files (Dockerfile, Kubernetes manifests, docker-compose).

ColumnDescription
Source pathThe path to the deployment artifact file.
Artifact typeThe type of deployment artifact (Dockerfile, Kubernetes, docker-compose).
Container imageThe base container image if detected.
Exposed portPort exposed by the container.
DescriptionDescription of the deployment artifact.
Security configuration
org.openrewrite.prethink.table.SecurityConfiguration

Security configuration including authentication methods, CORS settings, and OAuth2 configuration.

ColumnDescription
Source pathThe path to the source file containing the security configuration.
Configuration typeThe type of security configuration (WebSecurity, OAuth2, CORS, etc.).
Auth methodAuthentication method if detected (Basic, OAuth2, JWT, etc.).
Allowed originsCORS allowed origins if configured.
DescriptionDescription of the security configuration.
Service components
org.openrewrite.prethink.table.ServiceComponents

Service layer components (@Service, @Component, @Named) in the application.

ColumnDescription
Entity IDUnique identifier for this service component (format: service:{className}).
Source pathThe path to the source file containing the service component.
Class nameThe fully qualified name of the service component class.
Simple nameThe simple class name without package.
Component typeThe type of component annotation (Service, Component, Repository, Named).
FrameworkThe framework providing the annotation (Spring, Jakarta CDI, etc.).
DescriptionDescription from class-level documentation if available.
Scheduled tasks
io.moderne.prethink.table.ScheduledTasks

Scheduled tasks, cron jobs, and background processing detected in the application.

ColumnDescription
Source pathThe path to the source file containing the scheduled task.
Class nameThe fully qualified name of the class containing the task.
Method nameThe name of the scheduled method.
Method signatureThe full method signature.
FrameworkThe framework providing scheduling support (Spring, Quartz, etc.).
Schedule typeThe type of schedule: cron, fixedRate, fixedDelay, or trigger.
ExpressionThe scheduling expression (cron pattern, rate in ms, etc.).
Initial delayInitial delay before first execution, if specified.
Coding conventions
org.openrewrite.prethink.table.CodingConventions

Coding conventions and patterns detected in the codebase.

ColumnDescription
Convention typeThe type of convention (naming, comments, imports, formatting).
PatternDescription of the detected pattern.
ExampleAn example from the codebase.
FrequencyHow often this pattern occurs.
ScopeWhere this convention applies (project-wide, package, class).
Error handling patterns
org.openrewrite.prethink.table.ErrorHandlingPatterns

Error and exception handling patterns detected in the codebase.

ColumnDescription
Source pathThe path to the source file.
Class nameThe class containing the error handling.
Method nameThe method containing the error handling.
Pattern typeThe type of error handling pattern (try-catch, throws, global-handler, exception-handler-method).
Exception typesThe exception types being handled or thrown.
Handling strategyHow the error is handled (log, rethrow, wrap, suppress, propagate, handle, ignore).
Logging frameworkThe logging framework used, if detected.
Log levelThe log level used for error logging.
Exception handlers
io.moderne.prethink.table.ExceptionHandlers

Spring @ExceptionHandler and @ControllerAdvice bindings: exception type -> HTTP status -> response body FQN. Used to complete the 'responses' section of an OpenAPI spec with non-2xx branches.

ColumnDescription
Source pathThe path to the source file containing the handler.
Scope class FQNFully qualified name of the @ControllerAdvice class OR the controller class hosting the local handler.
Scope kind'advice' when the handler lives on a @ControllerAdvice class, 'controller' for controller-local handlers.
Base packagesComma-separated basePackages from @ControllerAdvice narrowing scope, else null.
Exception FQNFully qualified name of the exception type handled by this method.
Handler methodThe handler method name.
StatusHTTP status code returned (e.g. 400, 500), or null when it could not be resolved.
Status sourceWhere the status came from: '@ResponseStatus', 'ResponseEntity.status', or 'unresolved'.
Response body FQNFully qualified name of the response body DTO for this handler, or null if no body.
Endpoint security
io.moderne.prethink.table.EndpointSecurity

Per-endpoint security requirements: roles, scopes, and the raw SpEL/permission expressions from @PreAuthorize/@Secured/@RolesAllowed at method or class level.

ColumnDescription
Endpoint IDJoin key matching the 'Entity ID' column of service-endpoints.csv.
Scope kindWhere the security rule was declared: 'method' (on the handler) or 'class' (on the controller).
Scheme typeDetected scheme: 'role' (hasRole/RolesAllowed/Secured), 'authority/scope' (hasAuthority/hasAnyAuthority - typically OAuth2 scopes), 'permitted' (PermitAll), 'denied' (DenyAll), 'expression' (other SpEL).
RolesComma-separated role literals extracted from the expression, else null.
ScopesComma-separated scope/authority literals extracted from the expression, else null.
ExpressionRaw SpEL or annotation argument value.
Dependency usage
org.openrewrite.prethink.table.DependencyUsage

External library dependencies and how they are used in the codebase.

ColumnDescription
LibraryThe GAV coordinates of the library.
Top-level packageThe top-level package of the library.
Usage patternHow the library is typically used.
Common classesCommonly used classes from this library.
Import countNumber of files that use this library.
Example usageAn example of how this library is used.
CALM relationships
org.openrewrite.prethink.table.CalmRelationships

Method call graph for discovering relationships between architectural entities. Records all method calls within the repository with entity markers for graph traversal.

ColumnDescription
From classFully qualified name of the calling class (enables hash lookup).
From method signatureFull signature of the calling method.
To classFully qualified name of the called class (enables hash lookup).
To method signatureFull signature of the called method.
Caller entity IDEntity ID if the calling class is a known entity, null otherwise.
Called entity IDEntity ID if the called class is a known entity, null otherwise.
Source pathThe source file where the method call was found.
Method quality metrics
io.moderne.prethink.table.MethodQualityMetrics

Per-method code quality metrics including cyclomatic complexity, cognitive complexity, nesting depth, Halstead measures, and ABC metric.

ColumnDescription
Source pathThe path to the source file containing the method.
Class nameThe fully qualified name of the containing class.
Method nameThe simple name of the method.
Method signatureThe full method signature including parameter types.
Cyclomatic complexityNumber of linearly independent paths through the method. 1-10 low, 11-20 moderate, 21-50 high, 50+ very high.
Cognitive complexityWeighted complexity penalizing nesting depth and flow-breaking structures.
Max nesting depthMaximum depth of nested control structures.
Line countNumber of lines in the method body.
Parameter countNumber of parameters the method accepts.
ABC scoreABC metric magnitude: sqrt(A^2 + B^2 + C^2) where A=assignments, B=branches (calls), C=conditions.
AssignmentsNumber of assignment operations (the A in ABC metric).
BranchesNumber of method/function calls (the B in ABC metric).
ConditionsNumber of boolean conditions (the C in ABC metric).
Halstead volumeInformation content of the method: N * log2(n) where N=total operators+operands, n=distinct operators+operands.
Halstead difficultyError proneness: (n1/2) * (N2/n2) where n1=distinct operators, N2=total operands, n2=distinct operands.
Halstead estimated bugsEstimated number of delivered bugs: E^(2/3) / 3000 where E = difficulty * volume.
Class quality metrics
io.moderne.prethink.table.ClassQualityMetrics

Per-class code quality metrics including WMC, LCOM4, TCC, CBO, and maintainability index.

ColumnDescription
Source pathThe path to the source file containing the class.
Class nameThe fully qualified name of the class.
Line countNumber of lines in the class.
Method countNumber of methods defined in the class.
Field countNumber of fields defined in the class.
WMCWeighted Methods per Class: sum of cyclomatic complexities of all methods.
LCOM4Lack of Cohesion of Methods (Hitz-Montazeri): number of connected components in the method-field access graph. 1 = cohesive, >1 = should be split.
TCCTight Class Cohesion: proportion of directly connected method pairs (sharing field access). 0.0-1.0, higher is more cohesive.
CBOCoupling Between Objects: number of distinct classes this class is coupled to.
Maintainability indexComposite score (0-100) combining Halstead Volume, cyclomatic complexity, and LOC. Higher is more maintainable.
Package quality metrics
io.moderne.prethink.table.PackageQualityMetrics

Per-package architectural metrics including afferent/efferent coupling, instability, abstractness, distance from main sequence, and dependency cycle membership.

ColumnDescription
Package nameThe fully qualified package name.
Afferent coupling (Ca)Number of external packages that depend on this package.
Efferent coupling (Ce)Number of external packages this package depends on.
InstabilityCe / (Ce + Ca). 0.0 = maximally stable, 1.0 = maximally unstable.
AbstractnessRatio of abstract classes + interfaces to total classes in the package.
Distance from main sequence|A + I - 1|. 0.0 = ideal balance, high = Zone of Pain or Zone of Uselessness.
In cycleWhether this package is part of a dependency cycle.
Cycle membersComma-separated list of packages in the same dependency cycle, or null if not in a cycle.
Code smells
io.moderne.prethink.table.CodeSmells

Detected code smells including God Class, Feature Envy, and Data Class with severity ratings and the metric evidence that triggered detection.

ColumnDescription
Source pathThe path to the source file containing the smell.
Class nameThe fully qualified name of the class.
Method nameThe method name, if the smell is method-level (e.g., Feature Envy). Null for class-level smells.
Smell typeThe type of code smell: GOD_CLASS, FEATURE_ENVY, or DATA_CLASS.
SeveritySeverity based on how far metrics exceed thresholds: LOW, MEDIUM, HIGH, or CRITICAL.
EvidenceThe metric values that triggered detection, e.g., 'WMC=52, TCC=0.21, ATFD=8'.
Method descriptions
io.moderne.prethink.table.MethodDescriptions

AI-generated descriptions of methods in the codebase with inference time and token usage metrics.

ColumnDescription
Source pathThe path to the source file containing the method.
Class nameThe fully qualified name of the class containing the method.
SignatureThe method signature including parameter types.
ChecksumSHA-256 checksum of the method source code for cache validation.
DescriptionAI-generated description of what the method does.
Return value descriptionAI-generated description of what the method returns.
Technique 1First programming technique or pattern used in the method.
Technique 2Second programming technique or pattern used in the method.
Technique 3Third programming technique or pattern used in the method.
Inference time (ms)Time taken for the LLM to generate the description, in milliseconds.
Input tokensNumber of tokens in the input prompt sent to the LLM.
Output tokensNumber of tokens in the response generated by the LLM.
Class descriptions
io.moderne.prethink.table.ClassDescriptions

AI-generated descriptions of classes in the codebase with inference time and token usage metrics.

ColumnDescription
Source pathThe path to the source file containing the class.
Class nameThe fully qualified name of the class.
ChecksumSHA-256 checksum of the class source code for cache validation.
DescriptionAI-generated description of what the class does.
ResponsibilityAI-generated description of the class's responsibility in the system.
Pattern 1First architectural pattern identified in the class.
Pattern 2Second architectural pattern identified in the class.
Pattern 3Third architectural pattern identified in the class.
Inference time (ms)Time taken for the LLM to generate the description, in milliseconds.
Input tokensNumber of tokens in the input prompt sent to the LLM.
Output tokensNumber of tokens in the response generated by the LLM.
Test mapping
io.moderne.prethink.table.TestMapping

Maps test methods to implementation methods with optional AI-generated summaries and inference metrics.

ColumnDescription
Test source pathThe path to the source file containing the test.
Test classThe fully qualified name of the test class.
Test methodThe signature of the test method.
Implementation source pathThe path to the source file containing the implementation.
Implementation classThe fully qualified name of the implementation class.
Implementation methodThe signature of the implementation method being tested.
Test summaryAI-generated summary of what the test is verifying.
Test checksumSHA-256 checksum of the test method source code for cache validation.
Inference time (ms)Time taken for the LLM to generate the summary, in milliseconds.
Input tokensNumber of tokens in the input prompt sent to the LLM.
Output tokensNumber of tokens in the response generated by the LLM.
Test gaps
io.moderne.prethink.table.TestGaps

Public non-trivial methods that have no test coverage, ranked by risk score.

ColumnDescription
Source pathThe path to the source file containing the untested method.
Class nameThe fully qualified name of the class.
Method nameThe simple name of the untested method.
Method signatureThe full method signature.
Cyclomatic complexityThe cyclomatic complexity of the untested method.
Risk scoreRisk score combining complexity and architectural centrality (call count). Higher = more critical gap.
Gap reasonWhy this gap matters, e.g., 'complexity 15, called by 8 methods, no test coverage'.
Suggested test classSuggested fully qualified name for the test class.
Test quality issues
io.moderne.prethink.table.TestQualityIssues

Issues found in test code that may cause flakiness, silent failures, or maintenance burden. Each row includes a rich evidence message with what was found, why it matters, and how to fix it.

ColumnDescription
Source pathPath to the test source file.
Class nameFully qualified class name of the test class.
Method nameTest method name, if the issue is method-level. Null for class-level issues.
Issue typeCategory of the issue: static wait, shared mutable state, unmocked http, unmocked db, unmocked network, java assert in test, swallowed exception, missing assertion, hardcoded date, timing assertion, hardcoded port/path, missing annotation, skipped without reason, broad matcher, ignored error, deprecated test api, magic number, poor test name, prototype mutation, empty catch.
SeverityIssue severity: high, medium, or low.
LanguageSource language: java, javascript, or python.
EvidenceWhat was found, why it matters, and how to fix it.
Dependency report
org.openrewrite.java.dependencies.table.DependencyListReport

Lists all Gradle and Maven dependencies

ColumnDescription
Build toolThe build tool used to manage dependencies (Gradle or Maven).
Group idThe Group ID of the Gradle project or Maven module requesting the dependency.
Artifact idThe Artifact ID of the Gradle project or Maven module requesting the dependency.
VersionThe version of Gradle project or Maven module requesting the dependency.
Dependency group idThe Group ID of the dependency.
Dependency artifact idThe Artifact ID of the dependency.
Dependency versionThe version of the dependency.
Direct DependencyWhen true the project directly depends on the dependency. When false the project depends on the dependency transitively through at least one direct dependency.
Resolution failureThe reason why the dependency could not be resolved. Blank when resolution was not attempted.
Maven metadata failures
org.openrewrite.maven.table.MavenMetadataFailures

Attempts to resolve maven metadata that failed.

ColumnDescription
Group idThe groupId of the artifact for which the metadata download failed.
Artifact idThe artifactId of the artifact for which the metadata download failed.
VersionThe version of the artifact for which the metadata download failed.
Maven repositoryThe URL of the Maven repository that the metadata download failed on.
SnapshotsDoes the repository support snapshots.
ReleasesDoes the repository support releases.
FailureThe reason the metadata download failed.
Node.js dependencies in use
org.openrewrite.javascript.table.NodeDependenciesInUse

Direct and transitive dependencies in use in Node.js projects.

ColumnDescription
Project nameThe name of the project that contains the dependency (from package.json).
Project pathThe path to the project.
Package nameThe name of the npm package.
VersionThe resolved version of the package.
Version constraintThe version constraint as declared in package.json.
ScopeDependency scope: dependencies, devDependencies, peerDependencies, optionalDependencies, or bundledDependencies.
DirectWhether this is a direct dependency (true) or transitive dependency (false).
CountHow many times this dependency appears in the dependency tree.
LicenseThe SPDX license identifier of the package, if available.
Context registry
org.openrewrite.prethink.table.ContextRegistry

Registry of available context files for coding agents.

ColumnDescription
Display nameThe display name of the context.
Short descriptionA brief description of what context this provides.
Context filePath to the markdown file describing this context.
Source files that had results
org.openrewrite.table.SourcesFileResults

Source files that were modified by the recipe run.

ColumnDescription
Source path before the runThe source path of the file before the run. null when a source file was created during the run.
Source path after the runA recipe may modify the source path. This is the path after the run. null when a source file was deleted during the run.
Parent of the recipe that made changesIn a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all.
Recipe that made changesThe specific recipe that made a change.
Estimated time savingAn estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds.
CycleThe recipe cycle in which the change was made.
Source files that had search results
org.openrewrite.table.SearchResults

Search results that were found during the recipe run.

ColumnDescription
Source path of search result before the runThe source path of the file with the search result markers present.
Source path of search result after run the runA recipe may modify the source path. This is the path after the run. null when a source file was deleted during the run.
ResultThe trimmed printed tree of the LST element that the marker is attached to.
DescriptionThe content of the description of the marker.
Recipe that added the search markerThe specific recipe that added the Search marker.
Source files that errored on a recipe
org.openrewrite.table.SourcesFileErrors

The details of all errors produced by a recipe run.

ColumnDescription
Source pathThe file that failed to parse.
Recipe that made changesThe specific recipe that made a change.
Stack traceThe stack trace of the failure.
Recipe performance
org.openrewrite.table.RecipeRunStats

Statistics used in analyzing the performance of recipes.

ColumnDescription
The recipeThe recipe whose stats are being measured both individually and cumulatively.
Source file countThe number of source files the recipe ran over.
Source file changed countThe number of source files which were changed in the recipe run. Includes files created, deleted, and edited.
Cumulative scanning time (ns)The total time spent across the scanning phase of this recipe.
Max scanning time (ns)The max time scanning any one source file.
Cumulative edit time (ns)The total time spent across the editing phase of this recipe.
Max edit time (ns)The max time editing any one source file.