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.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.
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 - Side effects:
- post Jira comment
- 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 Jira comment
- assign ticket
- Parameters (customParams):
autoStartDevelopmentautoStartDevelopmentConfigFilecontentOutputdiagramFieldoutputTyperequireDiagramsolutionField
LLM step
- outputType:
none - Prompt snapshot:
agents/snapshots/story_solution.md
Custom params
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