# 2. Development phase

## 2.1 **🤖📋AI plan**: Component Decomposition
 For each component in `docs/02_components` do next:  
 **📝prompt:**  
 Decompose `@docs/02_components/[##]_[component_name]/spec.md` to the features. If component is simple enough, make only 1 feature, if complex - separate per features. Feature can contain 0 or more APIs. Create `docs/02_components/[##]_[component_name]/[##]_[feature_name]_feature.md` with the next structure:  
  - Name
  - Description
  - Component APIs it implements if any
  - External tools and service it uses for implementation if any
  - Internal methods and its purposes
  - Unit tests
  - Integration tests
  
  Do NOT generate any code yet, only brief explanations what should be done.  
  Ask as many questions as needed.

 **👨‍💻Developer**: Answer the questions AI asked, put as many details as possible

## 2.2 **🤖AI agent**: Feature implementation
 For each component in `docs/02_components/[##]_[component_name]/` folder do next:  
 **📝prompt:**  
 Read component description `@docs/02_components/[##]_[component_name]/spec.md`.  
 Read all features in the folder `@docs/02_components/[##]_[component_name]`. For each feature do next:
  - Implement it
  - Make sure feature is connected and communicated properly with other features and existing code
  - Create unit tests from the Test cases description, run it and make sure the result is a success
  - Create integration test for the feature, run and make sure the result is a success
 If integration tests are specified in component spec, then write them and run, and make sure that component working correctly

## 2.3 **🤖AI agent**: Solution composition and integration tests
 **📝prompt:**  
 Read all the files here `docs/03_tests/` and for each file write down tests and run it.  
 Compose a final test results in a csv with the next format:
  - Test filename
  - Execution time
  - Result  

 Fix all problems if tests failed until we got a successful result. 
 In case if one or more tests was failed due to missing data from user or API or other system, ask it from developer.
 Repeat test cycle until no failed tests.