Class NarrativeTraceFeedbackTask
- 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>
narrativetraceFeedback: drafts a problem report about NarrativeTrace from this project,
refuses to write one that carries a value from the project's own traces, and prints either the
whole draft or the pre-filled issue-form URL.
INTENT: the agent-facing spelling of the same verb the narrativetrace CLI carries, for
the same reason narrativetraceDoctor exists beside narrativetrace doctor — an
agent skill's closed command vocabulary is the repo's own Gradle wrapper, and a skill may never
instruct installing a global tool. Both entry points call the same narrativetrace-tooling
classes in-process; neither depends on the other.
@llmNote Two channels here, not three. The gh channel is the CLI's, and
deliberately not duplicated: deciding whether to offer it means asking an installed gh
whether it is signed in, and a second copy of that probe in this plugin would be a second thing
to keep true. gh is a convenience for people who already live in that tool — and those
people have a terminal.
@llmNote This task sends NOTHING and opens nothing. It writes two files under the extension's own output directory and prints text. Filing is the person's act, in their own browser, under their own account.
@sideEffects Writes <outputDir>/feedback/feedback-draft.md and
feedback-body.md, and only when the value-free gate cleared the report.
-
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 TypeMethodDescriptionvoidabstract org.gradle.api.provider.Property<String>abstract org.gradle.api.provider.Property<String>abstract org.gradle.api.file.ConfigurableFileCollectionThe resolved agent-skills carrier, read exactly asnarrativetraceDoctorreads it.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.provider.Property<String>abstract org.gradle.api.provider.Property<String>abstract org.gradle.api.provider.Property<String>getDid()abstract org.gradle.api.provider.Property<String>abstract org.gradle.api.provider.Property<String>abstract org.gradle.api.provider.Property<String>abstract org.gradle.api.file.DirectoryPropertyWhere the two files land: the extension's output directory,feedback/inside it.abstract org.gradle.api.provider.Property<String>getStep()abstract org.gradle.api.file.DirectoryPropertyThe project the report is about — this project's own directory in real use.abstract org.gradle.api.provider.Property<String>getTrace()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, 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
-
NarrativeTraceFeedbackTask
public NarrativeTraceFeedbackTask()
-
-
Method Details
-
getTargetDir
@Internal public abstract org.gradle.api.file.DirectoryProperty getTargetDir()The project the report is about — this project's own directory in real use. -
getOutputDir
@Internal public abstract org.gradle.api.file.DirectoryProperty getOutputDir()Where the two files land: the extension's output directory,feedback/inside it. -
getCarrier
@Internal public abstract org.gradle.api.file.ConfigurableFileCollection getCarrier()The resolved agent-skills carrier, read exactly asnarrativetraceDoctorreads it. -
getCarrierCoordinate
The coordinate the carrier was asked for — what "could not resolve it" has to be able to say. -
getChannel
-
getCategory
-
getStep
-
getDid
-
getHappened
-
getExpected
-
getLanguage
-
getAgentProduct
-
getAgentModel
-
getTrace
-
draftReport
public void draftReport()
-