aider icon indicating copy to clipboard operation
aider copied to clipboard

Feature Request - Turn chat history into Requirement and Design documents

Open lockmeister opened this issue 1 year ago • 3 comments

Issue

I frequently ask aider not to write any code, but instead to suggest design changes and features. I then lose some of the details as my chat history gets longer. It would be useful to be able to create and add to design and requirement documents, and have them under version control. Aider could make additions and changes and they would always be available.

I realise I could already do this, but I think that there might be additions to aider that could make this easier

  • tags for the chat history
  • library of document templates

One workflow might be that after a discussion with aider, I tag the suggestions and right-click or somehow select them for addition to the design docs.

This is much fishing for workflow suggestions as it is a feature request. Thanks to Paul for aider, it really extends the capabilities of LLMs for coding.

Version and model info

No response

lockmeister avatar Jul 29 '24 02:07 lockmeister

Sounds cool, first iterate to have it write out the design docs - and perhaps the API specifications.

Then it can use that piece by piece to write the code.

avimar avatar Jul 29 '24 07:07 avimar

I think that this would be too complicated. And any sufficiently accurate project description would easily consume all the context space of the chat. The best would be taking the example from Github: you can manage github project with just three things:

  • feature requests (todo)
  • bug reports
  • tasklist/milestones (those are just a list of the 2 things above: featreq and bugs)

We can just let the user create those with two new aider commands like these: “/task feature : add a feature request description “/task bug : add a bug report

Also the AI should be able to create those entries by itself in the /ask mode if the user asks for new features, or if the user report a bug.

Those two kind of entries should also be imported from the github repo issues list, with a command like this: “/github-sync

You should also be able to specify if you want just to sync the bugs and/or the features: “/github-sync issues bugs”

When you need to have a overview of the project progress, you should be able to call a command like: “/task list”

...and getting a result like:

PROJECT TASKLIST:

n Description Reference URL Status
1 [❇️ Feat] Add user authentication feature https://github.com/myproject/issues/45 📝 planned
2 [🪲Bug] Fix crash on startup when configuration is missing https://github.com/myproject/issues/32 ✅ solved
3 [❇️ Feat] Implement dark mode for the application 📝 planned
4 [🪲Bug] Resolve memory leak in data processing module https://github.com/myproject/issues/19 🔄 in progress
5 [❇️ Feat] Add support for exporting data in CSV format https://github.com/myproject/issues/52 📝 planned
6 [🪲Bug] Correct typo in user settings description ✅ solved
7 [❇️ Feat] Create an admin dashboard for monitoring activities 📝 planned
8 [🪲Bug] Address layout issues on mobile devices https://github.com/myproject/issues/27 📝 planned
9 [❇️ Feat] Integrate third-party API for weather updates 📝 planned
10 [🪲Bug] Fix broken link in the help documentation ❌ wontfix

Project Status Summary:

  • 📝 Planned: 6
  • ✅ Solved: 2
  • ❌ Wontfix: 1
  • 🔄 In Progress: 1

Write a task number and the new status (Example: “n solved”). “n drop” to delete a task. C to clear all tasks:
> 8 solved

help: You can show the tasklist with the command /task list You can delete a task with the command /task drop n You can change the status of a task with the command /task status n new-status You can create new bug report with the command /task bug description You can create new feature request with the command /task feature description
You can sync bug reports and feature requests with your Github repo with /github-sync

The AI can create tasks, but only the user can change the status of a task. Until a task is not marked as solved the AI will try to complete it, starting with fixing bugs, and only when all bugs are fixed it will start adding new features. Of course the user can ask the AI to focus on a certain task number.

What do you think?

Emasoft avatar Jul 29 '24 15:07 Emasoft

Thanks for trying aider and filing this issue.

Maybe have aider edit some markdown documents for you as you chat? requirements.md and design.md etc.

paul-gauthier avatar Jul 29 '24 16:07 paul-gauthier

Thanks for the replies. I've recently learned about Claude Artifacts, I think this might be close to what I want. At the moment I have Claude open separately to aider.

I still think it would be nice to incorporate it into aider.

lockmeister avatar Aug 01 '24 08:08 lockmeister