Requirements
During project analysis the following requirements have been identified.
- Business Requirements
- AutoDev should reduce the manual effort required to set up dev envs for software projects.
- AutoDev should increase in the adoption of reproducible dev envs across development teams.
- Domain Requirements
- The
flake.nix
file generated by AutoDev should contain valid Nix language syntax. - The
flake.nix
file generated by AutoDev should contain a development shell definition. - The dev env generated by AutoDev should be reproducible across different machines.
- The
- Functional Requirements
- User Functional Requirements
- Users should be able install AutoDev by running the command
pip install autodev
- Users should be able to run the command
autodev /path/to/project
to generate a development environment configuration. - Users should be able to enter the generated environment running the command
nix develop
. - If no LLM model is locally present on the user machine, the user should be able to select the model to be downloaded and used by AutoDev.
- Users should be able to list all available models on their machine.
- Users should be able to download an available model on their machine if it is not present.
- Users should be able to define the model to be used by AutoDev for a given run of the tool.
- Users should be able to define custom prompts to be used by AutoDev when prompting the LLM model.
- Users should be able install AutoDev by running the command
- System Functional Requirements
- AutoDev should use an LLM model to generate the
flake.nix
file. - AutoDev should define a base prompt engeneering approach applicable to all LLMs.
- AutoDev should use an LLM model to generate the
- User Functional Requirements
- Non-Functional Requirements
- AutoDev should respond within 5 seconds for typical-sized projects.
- AutoDev should not alter any files in the user’s environment.
- Implementation Requirements
- AutoDev should be implemneted as a CLI tool that can be invoked from the terminal.
- AutoDev should be implemented as a python package.
Placeholder for requirements
Back to index |
Previous Chapter |
Next Chapter |