Comment and Remember
May 27, 2025 · View on GitHub
All commands can take advantage of comment and remember flags.
Comment
If comment: true then Stdout and Stderr of the command output will be commented to the ticketing system issue. One comment from Stdout and one from Stderr (if any).
Remember
If remember: true then Stdout and Stderr of the command output will be stored and available in next step within current job.
Available commands
Here is the list of available commands that you can use in your workflow job steps.
next
Will do nothing and move the issue to next state. If multiple states are available will use the want that is marked with success: true in workflow.transitions.
workflow:
issue_types:
My Issue Type Name:
jobs:
My Step Name:
steps:
- command: next
merge-into-parent
Will merge the current issue branch into parent issue branch. If there is no parent available then will merge into project.final_branch.
If project.final_branch is not available then will create it.
workflow:
issue_types:
My Issue Type Name:
jobs:
Deployment:
steps:
- command: merge-into-parent
project-cmd
Executes command pre-defined in projects[].commands.
See how project.commands is defined in ../PROJECTS.md docs.
Works nicely with remember: true and comment: true to store and comment command output.
workflow:
issue_types:
My Issue Type Name:
jobs:
QA:
steps:
- command: project-cmd
action: lint
- command: project-cmd
action: test
create-issues
Will create new children issues based on context.
action- Issue type to create. Should matchworkflow.issue_typeskey.prompt- Prompt for LLM.context- List of context sources. See CONTEXT.md for more info.
workflow:
issue_types:
Story:
description: |
A specific functionality or component. Scope: Feature components.
jobs:
In Progress:
steps:
- command: create-issues
action: Task
prompt: |
Based on last comments and context that you are presented with,
split current Story issue into Task issues using pre-planned idea mentioned in comments.
Write a detailed description of what needs to be done.
Comply to clarification comments if exists.
Make the new issues detailed, clear and concise. Dont forget to mention scope of the files that need to be worked on.
Keep in mind that Task issue are small enough to be implemented in a single code file or even better - one part of a single code file.
context: ["issue_types", "ticket", "comments"]
It is useful to chain this command with summarize-task and context-files, context-commits commands.
summarize-task
Based on context will summarize the task using LLM. This is useful when complexity rises and task is being processed multiple times. Then just the issue description becomes outdated and more important things are located in issue comments.
workflow:
issue_types:
Story:
description: |
A specific functionality or component. Scope: Feature components.
jobs:
Analysis:
steps:
- command: summarize-task
comment: True
context: ["issue_types", "project", "wiki", "ticket", "comments", "children"]
prompt: |
Break down the current Story issue into Task issues based on pre-planned ideas from comments,
ensuring detailed descriptions for each task. Review existing comments to clarify requirements,
check if the task was previously worked on, and determine if adjustments are needed.
If adjustments are needed then it means that the task failed QA,
create new issues to address QA findings. If there’s no evidence of prior work,
create new tasks to implement the Story.
Use comment timestamps and context to guide decisions,
ensuring alignment with QA requirements.
Now using what you know, analyze current_issue and comments carefully.
Suggest how to split current Story issue into smaller scope Task issues (make sure to stick with Task issue scope and create as many Task issues as necessary).
Dont forget to mention scope of the Task issues you create.
Make sure each Task issue is small enough to be implemented in a single code file or even better - one part of a single code file.
This command can be chained with other commands quite nicely. Either via remember: true and follow up with the implementation
or via comment: true to store the output in the ticketing system.
context-files
This command will traverse all given context text and match mentioned files that exist in repository. The file name and full content of the files will be included in next step prompt.
This command require mandatory remember: true flag to be set. So you want to do this before other command that will put the file content to good use.
workflow:
issue_types:
Story:
description: Story issue type that defines specific feature requirements that need to be implemented.
jobs:
Work:
steps:
- command: context-files
context: ["wiki", "ticket", "parents", "comments"]
remember: True
- command: summarize-task
comment: True
context: ["issue_types", "project", "wiki", "ticket", "comments", "children"]
prompt: Make a detailed analysis of the Story issue and comments.
- command: create-issues
action: Task
prompt: |
Create small workable Task issues that will result successful implementation of given Story issue.
context-commits
This command will traverse all given context text and match existing git sha (long). If it exists in git, will include the commit path message to context.
workflow:
issue_types:
Bug:
description: Bug issue type that defines specific bug that needs to be fixed.
jobs:
Work:
steps:
- command: context-commits
context: ["parents", "comments", "parent-comments"]
remember: True
- command: code
comment: True
context: ["project", "wiki", "ticket", "comments"]
prompt: Fix linter issues introduced in previous commits.
commit
Will commit uncommited files. Using git status to find uncommited files and will commit them with prompt comment.
prompt- Comment for the commit.
workflow:
issue_types:
Sub-Task:
description: Coding task
jobs:
In Progress:
steps:
- command: project-cmd
action: reformat
- command: commit
prompt: linter changes
git
Executes your custom git command where action contains follow up command.
workflow:
issue_types:
Sub-Task:
description: Coding task
jobs:
In Progress:
steps:
- command: git
action: status
comment: true
Not sure where this can be used. Explore other commands before falling back to this one.
bash
Executes your custom bash command where action contains command itself (space separated).
workflow:
issue_types:
Sub-Task:
description: Coding task
jobs:
In Progress:
steps:
- command: bash
action: "echo hello"
comment: true
evaluate
This is really useful command. It will evaluate success or failure of the given context and move the issue to next state based on that.
- The state must have multiple transitions
- There must be 1
success: trueand onefail: truetransition. See (TRANSITIONS.md)[TRANSITIONS.md] docs. context- mandatoryprompot- Optional
workflow:
issue_types:
Sub-Task:
description: Coding task
jobs:
QA:
steps:
- command: evaluate
context: ["comments"]
ai
Custom LLM command. Will ask LLM to generate a response based on the given context and prompt.
prompt- Prompt for LLM.context- List of context sources. See CONTEXT.md for more info.
workflow:
issue_types:
Sub-Task:
description: Coding task
jobs:
QA:
steps:
- command: ai
prompt: |
If there are any linter errors then pinpoint exact files and place in file (using linter output) that is at fault.
Answer with clear and concise explanation of the sources for these linter errors.
If there are any testing errors then pinpoint exact files and test cases that are faulty (using tests output).
Keep the answer straight to the point of what was test cases are broken and in what file and where.
If there are no linter and testing errors then answer with "Linter and tests are OK".
comment: True
remember: True
aider
Aider is bread and butter of the AndAI. It is external tool aider that is used for coding and code analysis tasks.
action- Available values arecommit,architect,code,architect-codeprompt- Prompt for Aider.summarize- Optional. Default false. If true, will summarize the context and give it to aider as a task to work on. You can override default summarization prompt viaaider.task_summary_prompt.comment-summary- Optional. Default false. Works together withsummarize(summarizemust betrue). If true, will comment the summary as issue comment.context- List of context sources. See CONTEXT.md for more info.
actions
Use full power of aider tool with these actions.
(!) Aider commands will result in real code changes and lost uncommited changes in your repository. So, please, commit or stash your uncommited changes before using aider commands.
commit
This command will use aider to commit uncommited code. Works same as commit command but via aider i.e. LLM.
architect
This command will use aider to chat mode. No code changes will be made. It is used for analyzing issue together with code and plan the next steps.
It can be pre-processing step before issue splitting into children tasks (create-issues command) or pre-analyze before coding steps.
code
This will use aider code mode. Aider will make code changes in current working git branch and will commit it. All uncommited changes will be lost.
architect-code
This will use aider architect mode. This will do more thinking when making code changes resulting in better results but more LLM tokens will be used.
Examples:
workflow:
issue_types:
Grooming:
description: |
A unit of work focused on adjusting parent task code and fixing linter and tests code.
jobs:
In Progress:
steps:
- command: aider
action: code
summarize: True
comment-summary: False
comment: False
context: ["issue_types", "project", "wiki", "parents", "ticket", "last-comment"]
prompt: |
Implement (code) given Task issue based on ticket description and last comments.
It is not allowed to create new files!
Evaluate other project files to learn how to do problematic parts
and make necessary changes using that knowledge.
- command: project-cmd
action: reformat
- command: commit
prompt: linter changes
Run custom project commands to:
- reformat code
- commit reformatting changes
- run linter and remember
- run tests and remember
- run aider architect (chat mode) via summary of the context
- this summary will be commented to the ticketing system because
comment-summary: True - evaluate the issue based on aider output that was commented via
comment: True - issue will be moved to success path if all is OK or to reject path if there are issues to be resolved.
- idea is that
andaiwill pick this Story task again and will create new sub-tasks based on comments that we just saved here.
workflow:
issue_types:
Story:
description: "A specific functionality or component. Scope: Feature components."
jobs:
QA:
steps:
- command: project-cmd
action: reformat
- command: commit
prompt: linter changes
- command: project-cmd
action: lint
remember: true
- command: project-cmd
action: test
remember: true
- command: context-files
context: [ "wiki", "ticket", "comments", "children" ]
remember: True
- command: aider
action: architect
prompt: |
Check recently implemented code necessary to complete Story issue.
Check in recent comments test and linter results and code logical errors.
Evaluate issues you found and summarize in positive or negative feedback.
Unit tests and linter results (see previous comments) are mandatory for positive feedback.
If feedback is mostly positive and code will work as expected it should be positive.
If code have obvious syntactic or logical errors it should be negative.
All other context information available to you is meant only to help you figure out what code you should evaluate.
Answer strictly based on code that is present.
context: ["project", "wiki", "ticket", "children", "affected-files", "comments"] # TODO add children-closed
comment: True
summarize: True
comment-summary: True
- command: evaluate
context: ["comments"]