Skip to content

atmb4u/llm_coding_worfklow

Repository files navigation

AI-Enhanced Engineering Workflow

A structured methodology for using LLMs in the software development lifecycle. Writing code is only one part of the process - majority of the work is in the planning, testing, and design phases.

Core Principles

  1. Concrete Outcomes - Have a clear goal for the project at the beginning and make sure each phase produces well-defined artifacts (design documents, tests, code)
  2. Emergent Decisions - Progress through small, verifiable steps rather than attempting to solve everything upfront
  3. Continuous Validation - Regular checkpoints ensure alignment with project goals and early detection of issues

Workflow Overview

AI-Enhanced Engineering Workflow

1. Generate Architecture Design

Reference: 01_generate_architecture.md

Establish high-level architecture with a focus on simplicity. Break the project into manageable engineering phases.

2. Review Project Status

Reference: 02_project_status.md

Analyze the current state of the codebase to understand what exists before making changes.

3. Create Phase Design

Reference: 03_phase_design.md

Develop detailed specifications for the current phase, including components, interfaces, and data models.

4. Write Tests

Reference: 04_write_tests.md

Create comprehensive test plans before implementation to ensure clear validation criteria.

5. Generate Code

Reference: 05_code_generation.md

Produce implementation code that fulfills the design specification and passes tests.

6. Verify Tests

Reference: 06_verify_tests.md

Run and analyze test results to identify failures, patterns, and coverage gaps.

7. Create Fix Hypotheses

Reference: 07_fix_hypothesis.md

For any test failures, systematically investigate root causes and develop targeted fixes.

Note: Don't forget to review the code yourself and get review from a teammate before merging to main.

Iterate through phases 2-7 until the project is complete.

How to Use This Workflow

  1. Start with a Clear Architecture: Begin by establishing the overall project structure, breaking it into phases with defined boundaries
  2. Make Small, Focused Commits: Maintain a clear history of changes
  3. Use Dev/Test/Prod Environments: Consider different environments in all implementation decisions
  4. Prefer Simplicity: Choose simple solutions over complex ones
  5. Avoid Duplication: Check for existing functionality before creating new code
  6. Keep Files Small: Refactor when files exceed 200-300 lines
  7. Use Proper Tooling: Propose appropriate tooling for the project that you are familiar with

Benefits

  • Reduced Complexity: Breaking projects into manageable phases reduces cognitive load
  • Improved Quality: Test-first approach ensures higher-quality outcomes
  • Better Documentation: Each phase produces clear documentation
  • Faster Iteration: LLM collaboration accelerates feedback loops
  • Knowledge Enhancement: Combines engineer expertise with LLM capabilities

Contributing

Adapt these methodologies to fit your team's specific needs. Submit pull requests with improvements.

License

MIT License

About

A structured methodology for using LLMs in the software development lifecycle

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published