Story Solution
Designs the technical solution for a story: reads the story context, the answered questions, and the BA/SA/VD parent context, then produces the solution write-up and architecture diagrams.
By default the result is written to the ticket’s Solution and Diagrams fields and the story moves to Ready For Development. When contentOutput targets Confluence, the solution is instead published as a Confluence page (with the diagram as a Mermaid section), reviewer inline comments on that page are read before writing, and answers are posted back as comment replies.
Parameters
Configured via customParams in the agent JSON or the project .dmtools/config.js.
solutionField— tracker field that receives the solution text. Default:Solution.diagramField— tracker field that receives the diagram. Set to an empty string to prepend the diagram to the solution as a code block instead. Default:Diagrams.outputType—replace(default) overwrites the solution field;appendkeeps the existing field content and appends the new solution after a separator.requireDiagram— whentrue, the run fails if the agent did not produceoutputs/diagram.md. Default:false.checkOpenPR— whentrue, skip tickets that already have an open solution PR. Default:false.autoStartDevelopment/autoStartDevelopmentConfigFile— after a successful solution, automatically trigger the development workflow for the ticket using the given agent config file.removeLabel— SM trigger label removed from the ticket after the solution is published (e.g.sm_story_solution_triggered), so a crash-recovered ticket can be re-triggered instead of staying stuck with a stale in-flight label.contentOutput— output routing block; see below.
contentOutput
contentOutput.target—jira_field(default, current behavior),confluence, orboth.contentOutput.space/contentOutput.parentPageId— where the ticket’s solution page lives (required for Confluence targets).contentOutput.pageTitleSuffix— appended to the page title, e.g.Solution Design.contentOutput.includeInlineComments— fetch the page’s inline comments into the input folder before the run and publishoutputs/confluence_replies.jsonafter it. Default:true.contentOutput.updateTrackerField— fortarget: confluence, also write the page link into the solution field. Default:true.
Markup for Confluence targets. With target: confluence the tracker-specific CLI
prompts are selected by the confluence key of cliPromptsByTracker (see
instructions/tracker/confluence_markup_transform.md) instead of the configured default
tracker, so the agent authors Markdown that the Confluence sync can render. This selection
happens in buildEncodedConfig.js for encoded-config runs and in the dmtools CLI
(CliCommandBuilder) for direct dmtools run invocations. With target: both the tracker
markup is kept because the tracker field still receives the full content.
Downstream consumers: other agents in the pipeline (for example the affected-repos / task-splitting flows that parse the Solution field) read the tracker field, not Confluence. When such a consumer exists, use
target: 'both'— the field keeps the full machine-readable content and the Confluence page becomes the human-facing mirror.target: 'confluence'alone would leave only a link in the field and break those agents.
Human doc: agents/docs/agents/story_solution.md
Attributes
| Attribute | Value |
|---|---|
| Job | Teammate |
| Config | story_solution.json |
| ContextId | story_solution |
| outputType | none |
| skipAIProcessing | true |
Prompt snapshot
Full prompt / instruction set: agents/snapshots/story_solution.md
Actions
preJSAction: checkWipLabel.js
Check WIP Label Pre-Action
- Source:
agents/js/checkWipLabel.js - Parameters (customParams):
checkOpenPR
preCliJSAction: preCliSolutionSetup.js
Pre-CLI Solution Setup
- Source:
agents/js/preCliSolutionSetup.js - No detected file I/O or side effects.
postJSAction: writeSolutionAndDiagrams.js
Write Solution and Diagrams Post-Action
- Source:
agents/js/writeSolutionAndDiagrams.js - Side effects:
- post ticket comment (via tracker)
- move ticket to status (via tracker)
- assign ticket (via tracker)
- Parameters (customParams):
autoStartDevelopmentautoStartDevelopmentConfigFilecontentOutputdiagramFieldoutputTyperemoveLabelrequireDiagramsolutionField
LLM step
- outputType:
none - Prompt snapshot:
agents/snapshots/story_solution.md
Custom params
removeLabel:"sm_story_solution_triggered"checkOpenPR(used by JS action)autoStartDevelopment(used by JS action)autoStartDevelopmentConfigFile(used by JS action)contentOutput(used by JS action)diagramField(used by JS action)outputType(used by JS action)requireDiagram(used by JS action)solutionField(used by JS action)
Generated by js/agentDocGenerator.js