Advertisement
andrejsstepanovs

project_help

May 4th, 2025
300
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 21.98 KB | None | 0 0
  1. llm_models:
  2.     - name: "normal"
  3.       temperature: 0.2
  4.       model: "google-gemini-2.0-flash"
  5.       provider: custom
  6.       base_url: "http://localhost:4000/v1/chat/completions"
  7.       api_key: "sk-_fi-7AJGJXnetgRdFTIfIw"
  8.  
  9.     - name: "large"
  10.       temperature: 0.2
  11.       model: "google-gemini-2.5-flash"
  12.       provider: custom
  13.       base_url: "http://localhost:4000/v1/chat/completions"
  14.       api_key: "sk-_fi-7AJGJXnetgRdFTIfIw"
  15.       commands:
  16.        - summarize-task
  17.  
  18.     - name: "genius"
  19.       temperature: 0.2
  20.       model: "google-gemini-2.5-pro-preview"
  21.       provider: custom
  22.       base_url: "http://localhost:4000/v1/chat/completions"
  23.       api_key: "sk-_fi-7AJGJXnetgRdFTIfIw"
  24.       commands:
  25.        - create-issues
  26.  
  27.     # 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
  28.  
  29. redmine:
  30.   db: redmine:redmine@tcp(localhost:3306)/redmine # things from docker-compose
  31.   url: "http://localhost:8080"
  32.   api_key: "2159cef2fb6c82c4f66981f199798781e161c694"
  33.   repositories: "/var/repositories/"
  34.  
  35. coding_agents:
  36.   aider:
  37.     timeout: "180m"
  38.     config: "/home/andrejs/www/aiwork/local/.andai.aider.yaml"
  39.     model_metadata_file: "/home/andrejs/aiwork/local/.andai.aider.model.json"
  40.     map_tokens: 512 #1024
  41.  
  42. projects:
  43.   - identifier: "andai"
  44.     name: "Andai"
  45.     description: "Golang project"
  46.     git_path: "/andai/.git"
  47.     git_local_dir: "/home/andrejs/www/andai/.git"
  48.     final_branch: "main"
  49.     commands: &golang_commands
  50.       - name: "test"
  51.         command: ["make", "test"]
  52.         ignore_err: True
  53.         ignore_stdout_if_no_stderr: True
  54.       - name: "lint"
  55.         command: ["make", "run-lint"]
  56.         ignore_err: True
  57.         success_if_no_output: True
  58.       - name: "reformat"
  59.         command: ["gofmt", "-s", "-w", "."]
  60.         ignore_err: True
  61.         success_if_no_output: True
  62.     wiki: |
  63.      # Coding assistant
  64.       Andai is coding assistant that is working together with ticketing system and github.
  65.      
  66.       ## Coding Best Practices
  67.       - Do not add comments to the code you write, unless the user asks you to, or the code is complex and requires additional context.
  68.       - When making changes to files, first understand the file's code conventions. Mimic code style, use existing libraries and utilities, and follow existing patterns.
  69.       - 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).
  70.       - 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.
  71.       - 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.
  72.  
  73.       ## Coding Best Practices
  74.       - Do not add comments to the code you write, unless the user asks you to, or the code is complex and requires additional context.
  75.       - When making changes to files, first understand the file's code conventions. Mimic code style, use existing libraries and utilities, and follow existing patterns.
  76.       - 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).
  77.       - 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.
  78.       - 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.
  79.       - Default working language: **English**
  80.  
  81.   - identifier: "go-llm-client"
  82.     name: "LLM Client"
  83.     description: "LLM Client is golang project that is interacting with LLM models."
  84.     git_path: "/go-llm-client/.git"
  85.     git_local_dir: "/home/andrejs/www/go-llm-client/.git"
  86.     final_branch: "main"
  87.     commands: &golang_commands
  88.       - name: "test"
  89.         command: ["make", "test"]
  90.         ignore_err: True
  91.         ignore_stdout_if_no_stderr: True
  92.       - name: "lint"
  93.         command: ["make", "run-lint"]
  94.         ignore_err: True
  95.         success_if_no_output: True
  96.       - name: "reformat"
  97.         command: ["gofmt", "-s", "-w", "."]
  98.         ignore_err: True
  99.         success_if_no_output: True
  100.     wiki: |
  101.      # Coding assistant
  102.       LLM Client is golang project that is interacting with LLM models.
  103.      
  104.       ## Coding Best Practices
  105.       - Do not add comments to the code you write, unless the user asks you to, or the code is complex and requires additional context.
  106.       - When making changes to files, first understand the file's code conventions. Mimic code style, use existing libraries and utilities, and follow existing patterns.
  107.       - 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).
  108.       - 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.
  109.       - 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.
  110.  
  111.       # Internal package imports and usage
  112.       - When importing packages from project use full path like so:
  113.       ```go
  114.       import (
  115.         "github.com/andrejsstepanovs/go-llm-client/internal/models"
  116.       )
  117.       ```
  118.  
  119.       ## Coding Best Practices
  120.       - Do not add comments to the code you write, unless the user asks you to, or the code is complex and requires additional context.
  121.       - When making changes to files, first understand the file's code conventions. Mimic code style, use existing libraries and utilities, and follow existing patterns.
  122.       - 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).
  123.       - 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.
  124.       - 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.
  125.       - Default working language: **English**
  126.  
  127. workflow:
  128.   states:
  129.     Init:
  130.       ai: ["Task", "Grooming"]
  131.       is_default: True
  132.       is_first: True
  133.     Backlog:
  134.       ai: ["Story", "Task", "Grooming"]
  135.       description: Issue is ready to be worked on.
  136.     Think:
  137.       ai: ["Story", "Task", "Grooming"]
  138.       description: Analyze Issue and plan how to work on it.
  139.     Work:
  140.       ai: ["Story", "Task", "Grooming"]
  141.       description: Analyze Issue and plan how to work on it.
  142.     Test:
  143.       ai: ["Story", "Task", "Grooming"]
  144.       description: |
  145.        Check current state of the story code.
  146.         If everything is fine, move to Done.
  147.         If not, move to Work where new Tasks will try to fix discovered issues.
  148.     Fixing:
  149.       ai: ["Story", "Task"]
  150.       description: |
  151.        Resolving issues identified during the Testing phase. If all is OK, will move to QA.
  152.         If fail to fix then will move task to Help where user will take it on.
  153.     Help:
  154.       ai: ["Story"]
  155.       description: |
  156.        Human in the middle bugfixing state for Grooming tasks.
  157.     QA:
  158.       ai: ["Task", "Grooming"]
  159.       description: Human Test to check Story code.
  160.     Deploy:
  161.       ai: ["Story", "Task", "Grooming"]
  162.       description: Merge code into to parent Issue branch.
  163.     Done:
  164.       description: Issue is completed.
  165.       ai: []
  166.       is_closed: True
  167.  
  168.   transitions:
  169.     - source: Init
  170.       target: Backlog
  171.  
  172.     - source: Backlog
  173.       target: Think
  174.     - source: Think
  175.       target: Work
  176.  
  177.     - source: Work
  178.       target: Test
  179.  
  180.     - source: Test
  181.       success: true
  182.       target: QA
  183.     - source: Test
  184.       fail: true
  185.       target: Fixing
  186.  
  187.     - source: Fixing
  188.       success: true
  189.       target: QA
  190.     - source: Fixing
  191.       fail: true
  192.       target: Help
  193.  
  194.     - source: Help
  195.       target: QA
  196.  
  197.     - source: QA
  198.       success: true
  199.       target: Deploy
  200.  
  201.     - source: QA
  202.       fail: true
  203.       target: Think
  204.  
  205.     - source: Deploy
  206.       target: Done
  207.  
  208.   issue_types:
  209.     Story:
  210.       description: |
  211.        Represents a significant feature or component that requires multiple Tasks to implement.
  212.         Scope: Entire feature or major component, potentially spanning multiple files and modules.
  213.       jobs:
  214.         Backlog:
  215.           steps:
  216.             - command: next
  217.         Think:
  218.           steps:
  219.             - command: context-files
  220.               context: ["wiki", "ticket", "comments"]
  221.               remember: True
  222.             - command: ai
  223.               context: ["project", "wiki", "ticket", "comments"]
  224.               comment: True
  225.               prompt: |
  226.                 You are an experienced Project Manager with expertise in translating business requirements into actionable technical specifications. Your task is to:
  227.                 1. Analyze the provided information about this ticket/issue thoroughly
  228.                 2. Identify and describe all necessary features from a business perspective
  229.                 3. Explain the user experience requirements and expected outcomes
  230.                 4. Prioritize components based on business value and dependencies
  231.                 5. Highlight potential edge cases and considerations
  232.                 6. Structure your response as a comprehensive ticket comment for the engineering team
  233.  
  234.                 Important: Do not invent or add new requirements that weren't mentioned in the original ticket.
  235.                 Your role is strictly to clarify, organize, and enhance the existing information, not to create new features or expand the scope.
  236.                 Avoid feature creep.
  237.  
  238.                 Your response should:
  239.                - Begin with a brief summary of the overall objective (1-2 sentences)
  240.                 - Include detailed descriptions of each functional requirement with clear acceptance criteria
  241.                 - Specify any business rules, constraints, or regulatory requirements
  242.                 - Avoid technical implementation details (the "how") - focus on the "what" and "why"
  243.                 - Use precise, specific language that leaves no room for misinterpretation
  244.  
  245.                 The engineering team will use your analysis to decompose this issue into smaller, manageable tasks.
  246.                 Be thorough, specific, and ensure that all business requirements are clearly articulated.
  247.             - command: summarize-task
  248.               comment: True
  249.               context: ["issue_types", "project", "wiki", "ticket", "comments", "children"]
  250.               prompt: |
  251.                Based on comments figure out if task was already worked on
  252.                 and if this time it is required to adjust something instead of creating issue to implement the story.
  253.                 If this is the case (issue was already worked on) this means that issue failed Test and we need to
  254.                 create new issues that addresses Test findings.
  255.                 Understand that based on current issue comments and their time.
  256.                 If there are no comments or existing comments don't show that issue was already worked on,
  257.                 then create new issues that are needed for this story issue.
  258.                 Summary: Break down the current Story issue into Task issues based on pre-planned ideas from comments,
  259.                 ensuring detailed descriptions for each task. QA existing comments to clarify requirements,
  260.                 check if the task was previously worked on, and determine if adjustments are needed.
  261.                 If adjustments are needed then it means that the task failed Test,
  262.                 create new issues to address Test findings. If there’s no evidence of prior work,
  263.                 create new tasks to implement the Story.
  264.                 Use comment timestamps and context to guide decisions,
  265.                 ensuring alignment with Test requirements.
  266.                 Now using what you know, analyze current_issue and comments carefully.
  267.                 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).
  268.                 Dont forget to mention scope of the Task issues you create.
  269.                 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.
  270.         Work:
  271.           steps:
  272.             - command: create-issues
  273.               action: Task
  274.               prompt: |
  275.                Based on last comments and context that you are presented with,
  276.                 split current Story issue into Task issues using pre-planned idea mentioned in comments.
  277.                 Write a detailed description of what needs to be done.
  278.                 Comply to clarification comments if exists.
  279.                 Make the new issues detailed, clear and concise. Dont forget to mention scope of the files that need to be worked on.
  280.                 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.
  281.               context: ["issue_types", "project", "wiki", "ticket", "last-5-comments", "children"]
  282.         Test:
  283.           steps:
  284.             - command: next
  285.         Fixing:
  286.           steps:
  287.             - command: next
  288.         Help:
  289.           steps:
  290.             - command: next
  291.         Deploy:
  292.           steps:
  293.             - command: merge-into-parent
  294.     Task:
  295.       description: |
  296.        Task issues are building blocks for single Story issue.
  297.         Scope: Single method or specific part of a file.
  298.         Represents the smallest unit of work that must be implemented independently
  299.         in a single mid size or small git commit for one part of the code file.
  300.       jobs:
  301.         Init:
  302.           steps:
  303.             - command: next
  304.         Backlog:
  305.           steps:
  306.             - command: next
  307.         Think:
  308.           steps:
  309.             - command: context-files
  310.               context: ["wiki", "parents", "ticket", "comments"]
  311.               remember: True
  312.             - command: summarize-task
  313.               context: ["project", "wiki", "ticket", "last-5-comments"]
  314.               comment: True
  315.               prompt: |
  316.                Locate code files that are relevant for current Task issue.
  317.                 Provide ideas how to resolve the given Task issue.
  318.                 Focus only on the code relevant to the current issue (issue_type: Task).
  319.                 Ensure that the changes do not affect anything else beyond what is asked in the current Task issue.
  320.                 implement (code) given Task issue based on ticket description, last comments and your reasoning.
  321.         Work:
  322.           steps:
  323.             - command: context-files
  324.               context: ["ticket", "last-3-comments"]
  325.               remember: True
  326.             - command: aider
  327.               action: architect-code
  328.               context: ["project", "wiki", "ticket", "last-5-comments"]
  329.               prompt: Implement (code) current Task issue based on available information.
  330.             - command: project-cmd
  331.               action: reformat
  332.             - command: commit
  333.               prompt: linter changes
  334.         Test:
  335.           steps:
  336.             - command: project-cmd
  337.               action: lint
  338.               remember: True
  339.             - command: project-cmd
  340.               action: test
  341.               remember: True
  342.             - command: ai
  343.               prompt: |
  344.                If there are any linter errors then pinpoint exact files and place in file (using linter output) that is at fault.
  345.                 Answer with clear and concise explanation of the sources for these linter errors.
  346.                 If there are any testing errors then pinpoint exact files and test cases that are faulty (using tests output).
  347.                 Keep the answer straight to the point of what was test cases are broken and in what file and where.
  348.                 If there are no linter and testing errors then answer with "Linter and tests are OK".
  349.               remember: True
  350.             - command: create-issues
  351.               action: Grooming
  352.               context: ["issue_types", "ticket", "last-3-comments"]
  353.               prompt: |
  354.                Create Grooming issues that are focusing on fixing all found linter and test errors.
  355.                
  356.                 Instructions:
  357.                 - Create one Grooming issue per error.
  358.                 - If there are no linter or tests failures present then do nothing (do not create any new Grooming issues).
  359.                
  360.                 In new Grooming issue description carefully define:
  361.                 - What test or linter check needs fixing.
  362.                 - Where are affected files located.
  363.             - command: evaluate
  364.               context: [ "ticket", "comments" ]
  365.         Fixing:
  366.           steps:
  367.             - command: project-cmd
  368.               action: lint
  369.               remember: True
  370.             - command: project-cmd
  371.               action: test
  372.               remember: True
  373.             # - command: ai
  374.             #   prompt: |
  375.            #     If there are any linter errors then pinpoint exact files and place in file (using linter output) that is at fault.
  376.             #     Answer with clear and concise explanation of the sources for these linter errors.
  377.             #     If there are any testing errors then pinpoint exact files and test cases that are faulty (using tests output).
  378.             #     Keep the answer straight to the point of what was test cases are broken and in what file and where.
  379.             #     If there are no linter and testing errors then answer with "Linter and tests are OK".
  380.             #   remember: True
  381.             - command: evaluate
  382.               context: [ "ticket", "comments" ]
  383.         Help:
  384.           steps:
  385.             - command: next
  386.         QA:
  387.           steps:
  388.             - command: next
  389.         Deploy:
  390.           steps:
  391.             - command: merge-into-parent
  392.  
  393.     Grooming:
  394.       description: |
  395.        A unit of work focused on fixing test failures and linter issues.
  396.         Scope: Specific fixes for test failures and linter failures that was spotted during parent Task issue Testing phase.
  397.       jobs:
  398.         Init:
  399.           steps:
  400.             - command: next
  401.         Backlog:
  402.           steps:
  403.             - command: next
  404.         Think:
  405.           steps:
  406.             - command: next
  407.         Work:
  408.           steps:
  409.             - command: context-files
  410.               context: [ "ticket", "comments" ]
  411.               remember: True
  412.             - command: aider
  413.               action: code
  414.               comment: False
  415.               context: [ "project", "wiki", "ticket", "last-comment" ]
  416.               prompt: |
  417.                Implement (code) given Grooming issue based on ticket description and last comments.
  418.                 It is not allowed to create new files or run any commands!
  419.             - command: project-cmd
  420.               action: reformat
  421.             - command: commit
  422.               prompt: linter changes
  423.         Test:
  424.           steps:
  425.             - command: next
  426.         QA:
  427.           steps:
  428.             - command: next
  429.         Deploy:
  430.           steps:
  431.             - command: merge-into-parent
  432.  
  433.   priorities:
  434.     - type: Grooming
  435.       state: Deploy
  436.     - type: Grooming
  437.       state: Fixing
  438.     - type: Grooming
  439.       state: Help
  440.     - type: Grooming
  441.       state: QA
  442.     - type: Grooming
  443.       state: Test
  444.     - type: Grooming
  445.       state: Work
  446.     - type: Grooming
  447.       state: Think
  448.     - type: Grooming
  449.       state: Backlog
  450.     - type: Grooming
  451.       state: Init
  452.  
  453.     - type: Task
  454.       state: Deploy
  455.     - type: Task
  456.       state: Fixing
  457.     - type: Task
  458.       state: Help
  459.     - type: Task
  460.       state: QA
  461.     - type: Task
  462.       state: Test
  463.     - type: Task
  464.       state: Work
  465.     - type: Task
  466.       state: Think
  467.     - type: Task
  468.       state: Backlog
  469.     - type: Task
  470.       state: Init
  471.  
  472.     - type: Story
  473.       state: Deploy
  474.     - type: Story
  475.       state: Fixing
  476.     - type: Story
  477.       state: Help
  478.     - type: Story
  479.       state: QA
  480.     - type: Story
  481.       state: Test
  482.     - type: Story
  483.       state: Work
  484.     - type: Story
  485.       state: Think
  486.     - type: Story
  487.       state: Backlog
  488.  
  489.   triggers:
  490.     - issue_type: Task
  491.       if:
  492.         - moved_to: Done
  493.           all_siblings_status: Done
  494.           transition:
  495.             who: parent
  496.             to: QA
  497.     # - issue_type: Grooming
  498.     #   if:
  499.     #     - moved_to: Done
  500.     #       all_siblings_status: Done
  501.     #       transition:
  502.     #         who: parent
  503.     #         to: QA
  504.  
Tags: andai
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement