mikegehard / ai-assisted-agile-agents

MIT License
3 stars 0 forks source link

AI Assisted Agile Software Development Agents

The goal of this project is to build a group of AI agents that can assist with Agile Software Development.

Background

I've been working to figure out how to best integrate AI tools into my development workflow. I've been experimenting with the following tools:

The setup that I've come to like is:

Here is my flow. Work in progress:

Repository Structure

Technologies

Agents

Based on my use of Aider, I've decided that the best way to interact with the AI agents is to use a multi-shot conversation within a CLI chat tool.

Background/research

Evolving list of agents

Acceptance test writer

The goal of this agent is to take a user story and write a Playwright test for it.

Input

Output

Code writer

The goal of this agent is to write software that:

Flow for outside in development

Pre-conditions:
* All tests are green
* Git branch is clean

1. Human: write acceptance test based on user story
    * May use editor assistant to help write the test
2. Human: Ask assistant to get the codebase back to green
3. AI assistant: Determine what tools need to be run to get the codebase back to green based on the changed requirements.
    * Tools:
        * Compile code, null for languages that don't use a compiler
        * Run acceptance tests
        * Run unit tests
    * Thoughts:
        * The smaller the steps/context, the better the LLM's ability to reason about the next step so this is why you compile first.
        * This is why we try to compile first and then run tests.
        * Use a system prompt to educate the LLM about the Outside In TDD process.
4. Human: Create commit message, including information about why the change was made.
    * A commit is made here so that it is easy to roll back to a green
    state and ask for more refactoring from the AI assistant.
5. AI assistant: Refactor the code to improve the design of the codebase while keeping the codebase green
6. Human: Review changes and ammend the last commit to integrate refactoring changes.

Edge cases

Code refactoring agent

Can you come up with a set of prompts that can be used to guide the llm thought a set of refactorings?

Could you use the list from the Martin Fowler book "Refactoring" as a starting point?

Application deployer

The goal of this agent is to deploy the application.

Input

Output

LLM Prompt structure

Random thoughts

Learning resources

Agent Frameworks

Testing