Class NarrativeTraceInitTask

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
ai.narrativetrace.gradle.NarrativeTraceInitTask
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>

@UntrackedTask(because="it writes the project\'s own source tree \u2014 files a build tracks as inputs, never as this task\'s outputs") public abstract class NarrativeTraceInitTask extends org.gradle.api.DefaultTask
narrativetraceInit: copies the NarrativeTrace agent skills into this project and writes one marked section into AGENTS.md. A thin caller over the free narrativetrace-tooling installer library, exactly the shape NarrativeTraceDoctorTask has over the doctor — the library is a project dependency baked into this plugin's own jar, so every decision here is already unit-tested somewhere that needs no Gradle.

@llmNote The SKILLS themselves are not in this jar: they are resolved at task time from the invisible, non-transitive narrativeTraceSkills configuration, on the same version every other family artifact gets. Resolution happens when the task RUNS — never while the build is configured, which is what keeps the configuration cache green.

@llmNote The preview flag is --diff, not --dry-run: Gradle owns --dry-run as a built-in that skips every task, so a task option of that name would never be read and this task would never run. It sets the same InitOptions.dryRun() the CLI's --dry-run does.

@llmNote A refusal FAILS this task, unlike the doctor's findings. A person ran a command that changes their files; a half-applied install mentioned only in a log line is worse than a red build naming the flag that would allow the rest.

@sideEffects Resolves one configuration (which may download once) and writes the project's own files.

  • 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
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract org.gradle.api.file.ConfigurableFileCollection
    The resolved carrier jar.
    abstract org.gradle.api.provider.Property<String>
    The coordinate the carrier was asked for — what a failure has to be able to name.
    abstract org.gradle.api.provider.Property<Boolean>
     
    abstract org.gradle.api.provider.Property<Boolean>
     
    abstract org.gradle.api.provider.Property<Boolean>
     
    abstract org.gradle.api.provider.Property<String>
     
    abstract org.gradle.api.file.DirectoryProperty
    The project to install into — this project's own directory in real use.
    abstract org.gradle.api.provider.Property<String>
     
    abstract org.gradle.api.provider.Property<Boolean>
     
    void
     

    Methods 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, usesService

    Methods 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, setImpliesSubProjects

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.gradle.api.Task

    doNotTrackState, getConvention, notCompatibleWithConfigurationCache
  • Constructor Details

    • NarrativeTraceInitTask

      public NarrativeTraceInitTask()
  • Method Details

    • getTargetDir

      @Internal public abstract org.gradle.api.file.DirectoryProperty getTargetDir()
      The project to install into — this project's own directory in real use.
    • getCarrier

      @Internal public abstract org.gradle.api.file.ConfigurableFileCollection getCarrier()
      The resolved carrier jar. @Internal on purpose: this task is untracked, so declaring it as an input would buy no up-to-date checking and would only add a path-sensitivity decision nothing reads.
    • getCarrierCoordinate

      @Input public abstract org.gradle.api.provider.Property<String> getCarrierCoordinate()
      The coordinate the carrier was asked for — what a failure has to be able to name.
    • getDiff

      @Input public abstract org.gradle.api.provider.Property<Boolean> getDiff()
    • getWriteExisting

      @Input public abstract org.gradle.api.provider.Property<Boolean> getWriteExisting()
    • getForce

      @Input public abstract org.gradle.api.provider.Property<Boolean> getForce()
    • getOnly

      @Input public abstract org.gradle.api.provider.Property<String> getOnly()
    • getVendor

      @Input public abstract org.gradle.api.provider.Property<String> getVendor()
    • getJson

      @Input public abstract org.gradle.api.provider.Property<Boolean> getJson()
    • install

      public void install()