Package ai.narrativetrace.gradle
Class NarrativeTraceDoctorTask
java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
ai.narrativetrace.gradle.NarrativeTraceDoctorTask
- All Implemented Interfaces:
Comparable<org.gradle.api.Task>,org.gradle.api.internal.DynamicObjectAware,org.gradle.api.internal.TaskInternal,org.gradle.api.Named,org.gradle.api.plugins.ExtensionAware,org.gradle.api.Task,org.gradle.util.Configurable<org.gradle.api.Task>
public abstract class NarrativeTraceDoctorTask
extends org.gradle.api.DefaultTask
narrativetraceDoctor: runs the free narrativetrace-tooling doctor's twelve checks
against this project and writes its JSON report. Calls SnapshotBuilder,
DoctorChecks and DoctorRender in-process — narrativetrace-tooling is a project
dependency baked into this plugin's own jar (see build.gradle.kts), not an external
artifact resolved when the task runs, so this needs no network access beyond applying the plugin
itself. The narrativetrace-cli launcher embeds the same library; neither entry point
depends on the other. DoctorSnapshot's own doc comment names this task as one of
SnapshotBuilder's two callers, alongside the narrativetrace-cli
bin/narrativetrace launcher.
Read-only and always safe to run: like the CLI's own doctor verb, a finding is a
normal, expected outcome, never a build failure — this task never throws on the report's own exit
code, only on a real I/O failure writing the file.
@llmNote One of the twelve checks needs the agent-skills carrier this project resolves,
so this task reads the same narrativeTraceSkills configuration narrativetraceInit
does — through the same LENIENT artifact view, and with the opposite policy on failure:
init fails the build with the coordinate named, because a person asked it to install something;
the doctor carries on and lets the skills check report that it cannot tell. A read-only diagnosis
that cannot run offline would be no diagnosis at all.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.gradle.api.Task
org.gradle.api.Task.Namer -
Field Summary
Fields inherited from interface org.gradle.api.Task
TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract org.gradle.api.file.ConfigurableFileCollectionThe resolved agent-skills carrier.abstract org.gradle.api.provider.Property<String>The coordinate the carrier was asked for — what "could not resolve it" has to be able to say.abstract org.gradle.api.file.RegularFilePropertyWhere the JSON report lands —build/narrativetrace/doctor-report.jsonby default.abstract org.gradle.api.file.DirectoryPropertyThe project to diagnose — this project's own directory in real use.voidMethods inherited from class org.gradle.api.DefaultTask
compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesServiceMethods inherited from class org.gradle.api.internal.AbstractTask
acceptServiceReferences, appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getConvention, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, setImpliesSubProjectsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.gradle.api.Task
doNotTrackState, getConvention, notCompatibleWithConfigurationCache
-
Constructor Details
-
NarrativeTraceDoctorTask
public NarrativeTraceDoctorTask()
-
-
Method Details
-
getTargetDir
@Internal public abstract org.gradle.api.file.DirectoryProperty getTargetDir()The project to diagnose — this project's own directory in real use. -
getReportFile
@OutputFile public abstract org.gradle.api.file.RegularFileProperty getReportFile()Where the JSON report lands —build/narrativetrace/doctor-report.jsonby default. -
getCarrier
@Internal public abstract org.gradle.api.file.ConfigurableFileCollection getCarrier()The resolved agent-skills carrier.@Internal: the report is this task's output and the carrier is read only to compare a coordinate, so declaring it as an input would buy nothing but a path-sensitivity decision nobody reads. -
getCarrierCoordinate
The coordinate the carrier was asked for — what "could not resolve it" has to be able to say. -
runDoctor
public void runDoctor()
-