graph LR
CLI_Interface["CLI Interface"]
Core_Orchestrator["Core Orchestrator"]
Configuration_Template_Resolver["Configuration & Template Resolver"]
Context_Prompting_Engine["Context & Prompting Engine"]
Hook_Replay_Manager["Hook & Replay Manager"]
Project_Renderer["Project Renderer"]
CLI_Interface -- "initiates" --> Core_Orchestrator
Core_Orchestrator -- "configures" --> Configuration_Template_Resolver
Core_Orchestrator -- "prepares" --> Context_Prompting_Engine
Core_Orchestrator -- "coordinates" --> Hook_Replay_Manager
Core_Orchestrator -- "passes to" --> Project_Renderer
Context_Prompting_Engine -- "uses" --> Hook_Replay_Manager
Project_Renderer -- "uses" --> Hook_Replay_Manager
click Core_Orchestrator href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/cookiecutter/Core_Orchestrator.md" "Details"
click Configuration_Template_Resolver href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/cookiecutter/Configuration_Template_Resolver.md" "Details"
click Context_Prompting_Engine href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/cookiecutter/Context_Prompting_Engine.md" "Details"
click Hook_Replay_Manager href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/cookiecutter/Hook_Replay_Manager.md" "Details"
click Project_Renderer href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/cookiecutter/Project_Renderer.md" "Details"
The cookiecutter architecture is designed as a sequential pipeline for project generation, centered around a Core Orchestrator. User interaction begins with the CLI Interface, which delegates control to the Core Orchestrator. This orchestrator then systematically interacts with the Configuration & Template Resolver to set up the environment and locate the template. The Context & Prompting Engine is then engaged to gather all necessary variables, leveraging the Hook & Replay Manager for pre-prompt hooks and state management. Once the context is complete, the Project Renderer takes over to transform the template into a concrete project, with the Hook & Replay Manager facilitating post-generation actions. This modular design ensures a clear flow of data and control, making it ideal for visual representation as a directed graph.
The entry point for user interaction, responsible for parsing commands and initiating the project generation process.
Related Classes/Methods:
Core Orchestrator [Expand]
The central control unit that manages the entire project generation pipeline, coordinating interactions between all other components.
Related Classes/Methods:
Configuration & Template Resolver [Expand]
Handles loading and merging of configuration settings and resolves the location and type of the template repository.
Related Classes/Methods:
Context & Prompting Engine [Expand]
Manages the creation of the Jinja2 rendering context, including interactive user prompting for variable inputs and applying default values.
Related Classes/Methods:
Hook & Replay Manager [Expand]
Manages the execution of pre- and post-generation hooks and handles the saving and loading of project generation state for replay functionality.
Related Classes/Methods:
Project Renderer [Expand]
The core component responsible for iterating through the template, rendering files and directories using the generated context, and writing the output to the file system.
Related Classes/Methods: