Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- llm_models:
- - name: "normal"
- temperature: 0.2
- model: "google-gemini-2.0-flash"
- provider: custom
- base_url: "http://localhost:4000/v1/chat/completions"
- api_key: "sk-_fi-7AJGJXnetgRdFTIfIw"
- - name: "large"
- temperature: 0.2
- model: "google-gemini-2.5-flash"
- provider: custom
- base_url: "http://localhost:4000/v1/chat/completions"
- api_key: "sk-_fi-7AJGJXnetgRdFTIfIw"
- commands:
- - summarize-task
- - name: "genius"
- temperature: 0.2
- model: "google-gemini-2.5-pro-preview"
- provider: custom
- base_url: "http://localhost:4000/v1/chat/completions"
- api_key: "sk-_fi-7AJGJXnetgRdFTIfIw"
- commands:
- - create-issues
- # gpt-4.1, gpt-o3-mini, groq-deepseek-r1-distill-llama-70b, groq-llama-3.3-70b, deepseek-reasoner, deepseek-chat, google-gemini-2.5-flash, google-gemini-2.5-pro-preview
- redmine:
- db: redmine:redmine@tcp(localhost:3306)/redmine # things from docker-compose
- url: "http://localhost:8080"
- api_key: "2159cef2fb6c82c4f66981f199798781e161c694"
- repositories: "/var/repositories/"
- coding_agents:
- aider:
- timeout: "180m"
- config: "/home/andrejs/www/aiwork/local/.andai.aider.yaml"
- model_metadata_file: "/home/andrejs/aiwork/local/.andai.aider.model.json"
- map_tokens: 512 #1024
- projects:
- - identifier: "andai"
- name: "Andai"
- description: "Golang project"
- git_path: "/andai/.git"
- git_local_dir: "/home/andrejs/www/andai/.git"
- final_branch: "main"
- commands: &golang_commands
- - name: "test"
- command: ["make", "test"]
- ignore_err: True
- ignore_stdout_if_no_stderr: True
- - name: "lint"
- command: ["make", "run-lint"]
- ignore_err: True
- success_if_no_output: True
- - name: "reformat"
- command: ["gofmt", "-s", "-w", "."]
- ignore_err: True
- success_if_no_output: True
- wiki: |
- # Coding assistant
- Andai is coding assistant that is working together with ticketing system and github.
- ## Coding Best Practices
- - Do not add comments to the code you write, unless the user asks you to, or the code is complex and requires additional context.
- - When making changes to files, first understand the file's code conventions. Mimic code style, use existing libraries and utilities, and follow existing patterns.
- - NEVER assume that a given library is available, even if it is well known. Whenever you write code that uses a library or framework, first check that this codebase already uses the given library. For example, you might look at neighboring files, or check the package.json (or cargo.toml, and so on depending on the language).
- - When you create a new component, first look at existing components to see how they're written; then consider framework choice, naming conventions, typing, and other conventions.
- - When you edit a piece of code, first look at the code's surrounding context (especially its imports) to understand the code's choice of frameworks and libraries. Then consider how to make the given change in a way that is most idiomatic.
- ## Coding Best Practices
- - Do not add comments to the code you write, unless the user asks you to, or the code is complex and requires additional context.
- - When making changes to files, first understand the file's code conventions. Mimic code style, use existing libraries and utilities, and follow existing patterns.
- - NEVER assume that a given library is available, even if it is well known. Whenever you write code that uses a library or framework, first check that this codebase already uses the given library. For example, you might look at neighboring files, or check the package.json (or cargo.toml, and so on depending on the language).
- - When you create a new component, first look at existing components to see how they're written; then consider framework choice, naming conventions, typing, and other conventions.
- - When you edit a piece of code, first look at the code's surrounding context (especially its imports) to understand the code's choice of frameworks and libraries. Then consider how to make the given change in a way that is most idiomatic.
- - Default working language: **English**
- - identifier: "go-llm-client"
- name: "LLM Client"
- description: "LLM Client is golang project that is interacting with LLM models."
- git_path: "/go-llm-client/.git"
- git_local_dir: "/home/andrejs/www/go-llm-client/.git"
- final_branch: "main"
- commands: &golang_commands
- - name: "test"
- command: ["make", "test"]
- ignore_err: True
- ignore_stdout_if_no_stderr: True
- - name: "lint"
- command: ["make", "run-lint"]
- ignore_err: True
- success_if_no_output: True
- - name: "reformat"
- command: ["gofmt", "-s", "-w", "."]
- ignore_err: True
- success_if_no_output: True
- wiki: |
- # Coding assistant
- LLM Client is golang project that is interacting with LLM models.
- ## Coding Best Practices
- - Do not add comments to the code you write, unless the user asks you to, or the code is complex and requires additional context.
- - When making changes to files, first understand the file's code conventions. Mimic code style, use existing libraries and utilities, and follow existing patterns.
- - NEVER assume that a given library is available, even if it is well known. Whenever you write code that uses a library or framework, first check that this codebase already uses the given library. For example, you might look at neighboring files, or check the package.json (or cargo.toml, and so on depending on the language).
- - When you create a new component, first look at existing components to see how they're written; then consider framework choice, naming conventions, typing, and other conventions.
- - When you edit a piece of code, first look at the code's surrounding context (especially its imports) to understand the code's choice of frameworks and libraries. Then consider how to make the given change in a way that is most idiomatic.
- # Internal package imports and usage
- - When importing packages from project use full path like so:
- ```go
- import (
- "github.com/andrejsstepanovs/go-llm-client/internal/models"
- )
- ```
- ## Coding Best Practices
- - Do not add comments to the code you write, unless the user asks you to, or the code is complex and requires additional context.
- - When making changes to files, first understand the file's code conventions. Mimic code style, use existing libraries and utilities, and follow existing patterns.
- - NEVER assume that a given library is available, even if it is well known. Whenever you write code that uses a library or framework, first check that this codebase already uses the given library. For example, you might look at neighboring files, or check the package.json (or cargo.toml, and so on depending on the language).
- - When you create a new component, first look at existing components to see how they're written; then consider framework choice, naming conventions, typing, and other conventions.
- - When you edit a piece of code, first look at the code's surrounding context (especially its imports) to understand the code's choice of frameworks and libraries. Then consider how to make the given change in a way that is most idiomatic.
- - Default working language: **English**
- workflow:
- states:
- Init:
- ai: ["Task", "Grooming"]
- is_default: True
- is_first: True
- Backlog:
- ai: ["Story", "Task", "Grooming"]
- description: Issue is ready to be worked on.
- Think:
- ai: ["Story", "Task", "Grooming"]
- description: Analyze Issue and plan how to work on it.
- Work:
- ai: ["Story", "Task", "Grooming"]
- description: Analyze Issue and plan how to work on it.
- Test:
- ai: ["Story", "Task", "Grooming"]
- description: |
- Check current state of the story code.
- If everything is fine, move to Done.
- If not, move to Work where new Tasks will try to fix discovered issues.
- Fixing:
- ai: ["Story", "Task"]
- description: |
- Resolving issues identified during the Testing phase. If all is OK, will move to QA.
- If fail to fix then will move task to Help where user will take it on.
- Help:
- ai: ["Story"]
- description: |
- Human in the middle bugfixing state for Grooming tasks.
- QA:
- ai: ["Task", "Grooming"]
- description: Human Test to check Story code.
- Deploy:
- ai: ["Story", "Task", "Grooming"]
- description: Merge code into to parent Issue branch.
- Done:
- description: Issue is completed.
- ai: []
- is_closed: True
- transitions:
- - source: Init
- target: Backlog
- - source: Backlog
- target: Think
- - source: Think
- target: Work
- - source: Work
- target: Test
- - source: Test
- success: true
- target: QA
- - source: Test
- fail: true
- target: Fixing
- - source: Fixing
- success: true
- target: QA
- - source: Fixing
- fail: true
- target: Help
- - source: Help
- target: QA
- - source: QA
- success: true
- target: Deploy
- - source: QA
- fail: true
- target: Think
- - source: Deploy
- target: Done
- issue_types:
- Story:
- description: |
- Represents a significant feature or component that requires multiple Tasks to implement.
- Scope: Entire feature or major component, potentially spanning multiple files and modules.
- jobs:
- Backlog:
- steps:
- - command: next
- Think:
- steps:
- - command: context-files
- context: ["wiki", "ticket", "comments"]
- remember: True
- - command: ai
- context: ["project", "wiki", "ticket", "comments"]
- comment: True
- prompt: |
- You are an experienced Project Manager with expertise in translating business requirements into actionable technical specifications. Your task is to:
- 1. Analyze the provided information about this ticket/issue thoroughly
- 2. Identify and describe all necessary features from a business perspective
- 3. Explain the user experience requirements and expected outcomes
- 4. Prioritize components based on business value and dependencies
- 5. Highlight potential edge cases and considerations
- 6. Structure your response as a comprehensive ticket comment for the engineering team
- Important: Do not invent or add new requirements that weren't mentioned in the original ticket.
- Your role is strictly to clarify, organize, and enhance the existing information, not to create new features or expand the scope.
- Avoid feature creep.
- Your response should:
- - Begin with a brief summary of the overall objective (1-2 sentences)
- - Include detailed descriptions of each functional requirement with clear acceptance criteria
- - Specify any business rules, constraints, or regulatory requirements
- - Avoid technical implementation details (the "how") - focus on the "what" and "why"
- - Use precise, specific language that leaves no room for misinterpretation
- The engineering team will use your analysis to decompose this issue into smaller, manageable tasks.
- Be thorough, specific, and ensure that all business requirements are clearly articulated.
- - command: summarize-task
- comment: True
- context: ["issue_types", "project", "wiki", "ticket", "comments", "children"]
- prompt: |
- Based on comments figure out if task was already worked on
- and if this time it is required to adjust something instead of creating issue to implement the story.
- If this is the case (issue was already worked on) this means that issue failed Test and we need to
- create new issues that addresses Test findings.
- Understand that based on current issue comments and their time.
- If there are no comments or existing comments don't show that issue was already worked on,
- then create new issues that are needed for this story issue.
- Summary: Break down the current Story issue into Task issues based on pre-planned ideas from comments,
- ensuring detailed descriptions for each task. QA 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 Test,
- create new issues to address Test 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 Test 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.
- Work:
- 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", "project", "wiki", "ticket", "last-5-comments", "children"]
- Test:
- steps:
- - command: next
- Fixing:
- steps:
- - command: next
- Help:
- steps:
- - command: next
- Deploy:
- steps:
- - command: merge-into-parent
- Task:
- description: |
- Task issues are building blocks for single Story issue.
- Scope: Single method or specific part of a file.
- Represents the smallest unit of work that must be implemented independently
- in a single mid size or small git commit for one part of the code file.
- jobs:
- Init:
- steps:
- - command: next
- Backlog:
- steps:
- - command: next
- Think:
- steps:
- - command: context-files
- context: ["wiki", "parents", "ticket", "comments"]
- remember: True
- - command: summarize-task
- context: ["project", "wiki", "ticket", "last-5-comments"]
- comment: True
- prompt: |
- Locate code files that are relevant for current Task issue.
- Provide ideas how to resolve the given Task issue.
- Focus only on the code relevant to the current issue (issue_type: Task).
- Ensure that the changes do not affect anything else beyond what is asked in the current Task issue.
- implement (code) given Task issue based on ticket description, last comments and your reasoning.
- Work:
- steps:
- - command: context-files
- context: ["ticket", "last-3-comments"]
- remember: True
- - command: aider
- action: architect-code
- context: ["project", "wiki", "ticket", "last-5-comments"]
- prompt: Implement (code) current Task issue based on available information.
- - command: project-cmd
- action: reformat
- - command: commit
- prompt: linter changes
- Test:
- steps:
- - command: project-cmd
- action: lint
- remember: True
- - command: project-cmd
- action: test
- remember: True
- - 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".
- remember: True
- - command: create-issues
- action: Grooming
- context: ["issue_types", "ticket", "last-3-comments"]
- prompt: |
- Create Grooming issues that are focusing on fixing all found linter and test errors.
- Instructions:
- - Create one Grooming issue per error.
- - If there are no linter or tests failures present then do nothing (do not create any new Grooming issues).
- In new Grooming issue description carefully define:
- - What test or linter check needs fixing.
- - Where are affected files located.
- - command: evaluate
- context: [ "ticket", "comments" ]
- Fixing:
- steps:
- - command: project-cmd
- action: lint
- remember: True
- - command: project-cmd
- action: test
- remember: True
- # - 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".
- # remember: True
- - command: evaluate
- context: [ "ticket", "comments" ]
- Help:
- steps:
- - command: next
- QA:
- steps:
- - command: next
- Deploy:
- steps:
- - command: merge-into-parent
- Grooming:
- description: |
- A unit of work focused on fixing test failures and linter issues.
- Scope: Specific fixes for test failures and linter failures that was spotted during parent Task issue Testing phase.
- jobs:
- Init:
- steps:
- - command: next
- Backlog:
- steps:
- - command: next
- Think:
- steps:
- - command: next
- Work:
- steps:
- - command: context-files
- context: [ "ticket", "comments" ]
- remember: True
- - command: aider
- action: code
- comment: False
- context: [ "project", "wiki", "ticket", "last-comment" ]
- prompt: |
- Implement (code) given Grooming issue based on ticket description and last comments.
- It is not allowed to create new files or run any commands!
- - command: project-cmd
- action: reformat
- - command: commit
- prompt: linter changes
- Test:
- steps:
- - command: next
- QA:
- steps:
- - command: next
- Deploy:
- steps:
- - command: merge-into-parent
- priorities:
- - type: Grooming
- state: Deploy
- - type: Grooming
- state: Fixing
- - type: Grooming
- state: Help
- - type: Grooming
- state: QA
- - type: Grooming
- state: Test
- - type: Grooming
- state: Work
- - type: Grooming
- state: Think
- - type: Grooming
- state: Backlog
- - type: Grooming
- state: Init
- - type: Task
- state: Deploy
- - type: Task
- state: Fixing
- - type: Task
- state: Help
- - type: Task
- state: QA
- - type: Task
- state: Test
- - type: Task
- state: Work
- - type: Task
- state: Think
- - type: Task
- state: Backlog
- - type: Task
- state: Init
- - type: Story
- state: Deploy
- - type: Story
- state: Fixing
- - type: Story
- state: Help
- - type: Story
- state: QA
- - type: Story
- state: Test
- - type: Story
- state: Work
- - type: Story
- state: Think
- - type: Story
- state: Backlog
- triggers:
- - issue_type: Task
- if:
- - moved_to: Done
- all_siblings_status: Done
- transition:
- who: parent
- to: QA
- # - issue_type: Grooming
- # if:
- # - moved_to: Done
- # all_siblings_status: Done
- # transition:
- # who: parent
- # to: QA
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement