Asset-Frameworker/.lh/documentation_plan.md.json
2025-04-29 18:26:13 +02:00

22 lines
14 KiB
JSON

{
"sourceFile": "documentation_plan.md",
"activeCommit": 0,
"commits": [
{
"activePatchIndex": 1,
"patches": [
{
"date": 1745327476160,
"content": "Index: \n===================================================================\n--- \n+++ \n"
},
{
"date": 1745494258423,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,48 +1,70 @@\n-# Plan for Generating documentation.txt\r\n+# Asset Processor Tool Documentation Plan\r\n \r\n-This document outlines the plan for generating the `documentation.txt` file, which serves as a concise guide for developers joining the Asset Processor Tool project.\r\n+This document outlines the proposed structure for the documentation of the Asset Processor Tool, based on the content from `readme.md` and `documentation.txt`. The goal is to create a clear, modular, and comprehensive documentation set within a new `Documentation` directory.\r\n \r\n-## Task Objective\r\n+## Proposed Directory Structure\r\n \r\n-Analyze the project structure and code to generate a `documentation.txt` file focusing purely on development aspects (code structure, key components, core concepts, data flow, development workflow, coding conventions) and strictly excluding setup, build, dependency, or deployment details.\r\n+```\r\n+Documentation/\r\n+├── 00_Overview.md\r\n+├── 01_User_Guide/\r\n+│ ├── 01_Introduction.md\r\n+│ ├── 02_Features.md\r\n+│ ├── 03_Installation.md\r\n+│ ├── 04_Configuration_and_Presets.md\r\n+│ ├── 05_Usage_GUI.md\r\n+│ ├── 06_Usage_CLI.md\r\n+│ ├── 07_Usage_Monitor.md\r\n+│ ├── 08_Usage_Blender.md\r\n+│ ├── 09_Output_Structure.md\r\n+│ └── 10_Docker.md\r\n+└── 02_Developer_Guide/\r\n+ ├── 01_Architecture.md\r\n+ ├── 02_Codebase_Structure.md\r\n+ ├── 03_Key_Components.md\r\n+ ├── 04_Configuration_System_and_Presets.md\r\n+ ├── 05_Processing_Pipeline.md\r\n+ ├── 06_GUI_Internals.md\r\n+ ├── 07_Monitor_Internals.md\r\n+ ├── 08_Blender_Integration_Internals.md\r\n+ ├── 09_Development_Workflow.md\r\n+ ├── 10_Coding_Conventions.md\r\n+ └── 11_Debugging_Notes.md\r\n+```\r\n \r\n-## Information Gathering Steps Completed\r\n+## File Content Breakdown\r\n \r\n-1. Read and analyzed `readme.md`.\r\n-2. Listed code definitions in the root directory (`.`).\r\n-3. Listed code definitions in the `gui/` directory.\r\n+### `Documentation/00_Overview.md`\r\n \r\n-## Finalized Plan\r\n+* Project purpose, scope, and intended audience.\r\n\\ No newline at end of file\n+* High-level summary of the tool's functionality.\r\n+* Table of Contents for the entire documentation set.\r\n \r\n-1. **Synthesize Information:** Combine insights from `readme.md` and code definitions (`AssetProcessor`, `Configuration`, `MainWindow`, `ProcessingHandler`, `PredictionHandler`, `main.py`, `monitor.py`, etc.) to understand responsibilities and interactions.\r\n+### `Documentation/01_User_Guide/`\r\n \r\n-2. **Draft Content Outline (Text-Only):** Structure the `documentation.txt` content according to the required sections:\r\n- * **Project Overview:** Briefly describe the tool's purpose (standardizing 3D assets using presets) and high-level architecture (core processing engine, configuration system, multiple interfaces - GUI/CLI/Monitor, optional Blender integration).\r\n- * **Codebase Structure:** List key files/directories and their roles:\r\n- * `asset_processor.py`: Core asset processing logic (`AssetProcessor` class).\r\n- * `configuration.py`: Handles loading/merging core config and presets (`Configuration` class).\r\n- * `config.py`: Global settings and constants.\r\n- * `main.py`: CLI entry point, argument parsing, process orchestration.\r\n- * `monitor.py`: Automated directory watching (`ZipHandler` class).\r\n- * `gui/`: Contains all GUI-related code (PySide6).\r\n- * `main_window.py`: Main application window, UI layout, preset editor, event handling (`MainWindow` class).\r\n- * `processing_handler.py`: Manages background processing tasks for the GUI (`ProcessingHandler` class).\r\n- * `prediction_handler.py`: Manages background file analysis/preview for the GUI (`PredictionHandler` class).\r\n- * `preview_table_model.py`: Data model for the GUI's preview table.\r\n- * `blenderscripts/`: Python scripts intended for execution within Blender.\r\n- * `Presets/`: JSON files defining supplier-specific processing rules.\r\n- * **Key Components/Modules:** Detail the primary classes identified above (`AssetProcessor`, `Configuration`, `MainWindow`, `ProcessingHandler`, `PredictionHandler`, `ZipHandler`) and their main responsibilities.\r\n- * **Core Concepts & Data Flow (Refined, Text-Only):**\r\n- * **Preset-Driven Configuration:** Explain `config.py` (global defaults), `Presets/*.json` (supplier-specific rules/regex), and how `Configuration` class loads, merges, and pre-compiles regex.\r\n- * **Asset Processing Pipeline & Data Flow:** Describe the step-by-step flow managed by `AssetProcessor` (Workspace Setup -> Extract -> Classify -> Metadata -> Skip Check -> Process Maps -> Merge Maps -> Generate metadata.json -> Organize Output -> Cleanup -> Optional Blender Scripts). Emphasize text-only description.\r\n- * **Parallel Processing:** Explain the use of `concurrent.futures.ProcessPoolExecutor` managed by `main.py` (CLI) or `gui/processing_handler.py` (GUI) for concurrent asset processing, ensuring process isolation.\r\n- * **GUI Interaction & Threading (High-Level):** Describe `PySide6` usage, offloading tasks (prediction, processing) to `QThread`s (`PredictionHandler`, `ProcessingHandler`), and communication via signals/slots.\r\n- * **Output (`metadata.json`):** Detail its purpose and the key information it contains (map details, stats, aspect ratio, category, preset, etc.).\r\n- * **Development Workflow:** Provide pointers for common tasks (modifying core processing, config, CLI, GUI, Blender integration).\r\n- * **Coding Conventions:** Mention observed practices (OOP, type hinting, logging, custom exceptions, parallelism, PySide6 patterns).\r\n+* **`01_Introduction.md`**: Brief welcome and purpose for users.\r\n+* **`02_Features.md`**: Detailed list of user-facing features.\r\n+* **`03_Installation.md`**: Requirements and step-by-step installation instructions.\r\n+* **`04_Configuration_and_Presets.md`**: Explains user-level configuration options (`config.py` settings relevant to users) and how to select and understand presets.\r\n+* **`05_Usage_GUI.md`**: Guide on using the Graphical User Interface, including descriptions of panels, controls, and workflow.\r\n+* **`06_Usage_CLI.md`**: Guide on using the Command-Line Interface, including arguments and examples.\r\n+* **`07_Usage_Monitor.md`**: Guide on setting up and using the Directory Monitor for automated processing.\r\n+* **`08_Usage_Blender.md`**: Explains the user-facing aspects of the Blender integration.\r\n+* **`09_Output_Structure.md`**: Describes the structure and contents of the generated asset library.\r\n+* **`10_Docker.md`**: Instructions for building and running the tool using Docker.\r\n \r\n-3. **Strict Exclusions:** Ensure no information about environment setup, dependency installation, building, or deployment is included.\r\n+### `Documentation/02_Developer_Guide/`\r\n \r\n-4. **Generate Final Content:** Create the plaintext content for `documentation.txt`.\r\n+* **`01_Architecture.md`**: High-level technical architecture, core components, and their relationships.\r\n+* **`02_Codebase_Structure.md`**: Detailed breakdown of key files and directories within the project.\r\n+* **`03_Key_Components.md`**: In-depth explanation of major classes and modules (`AssetProcessor`, `Configuration`, GUI Handlers, etc.).\r\n+* **`04_Configuration_System_and_Presets.md`**: Technical details of the configuration loading and merging process, the structure of preset JSON files, and guidance on creating/modifying presets for developers.\r\n+* **`05_Processing_Pipeline.md`**: Step-by-step technical breakdown of the asset processing logic within the `AssetProcessor` class.\r\n+* **`06_GUI_Internals.md`**: Technical details of the GUI implementation, including threading, signals/slots, and background task management.\r\n+* **`07_Monitor_Internals.md`**: Technical details of the Directory Monitor implementation using `watchdog`.\r\n+* **`08_Blender_Integration_Internals.md`**: Technical details of how the Blender scripts are executed and interact with the processed assets.\r\n+* **`09_Development_Workflow.md`**: Guidance for developers on contributing, setting up a development environment, and modifying specific parts of the codebase.\r\n+* **`10_Coding_Conventions.md`**: Overview of the project's coding standards, object-oriented approach, type hinting, logging, and error handling.\r\n+* **`11_Debugging_Notes.md`**: Advanced internal details, state management, error propagation, concurrency models, resource management, and known limitations/edge cases.\r\n \r\n-5. **Switch Mode:** Request switching to `code` mode to write the `documentation.txt` file.\n+This plan provides a solid foundation for organizing the existing documentation and serves as a roadmap for creating the new markdown files.\n\\ No newline at end of file\n"
}
],
"date": 1745327476160,
"name": "Commit-0",
"content": "# Plan for Generating documentation.txt\r\n\r\nThis document outlines the plan for generating the `documentation.txt` file, which serves as a concise guide for developers joining the Asset Processor Tool project.\r\n\r\n## Task Objective\r\n\r\nAnalyze the project structure and code to generate a `documentation.txt` file focusing purely on development aspects (code structure, key components, core concepts, data flow, development workflow, coding conventions) and strictly excluding setup, build, dependency, or deployment details.\r\n\r\n## Information Gathering Steps Completed\r\n\r\n1. Read and analyzed `readme.md`.\r\n2. Listed code definitions in the root directory (`.`).\r\n3. Listed code definitions in the `gui/` directory.\r\n\r\n## Finalized Plan\r\n\r\n1. **Synthesize Information:** Combine insights from `readme.md` and code definitions (`AssetProcessor`, `Configuration`, `MainWindow`, `ProcessingHandler`, `PredictionHandler`, `main.py`, `monitor.py`, etc.) to understand responsibilities and interactions.\r\n\r\n2. **Draft Content Outline (Text-Only):** Structure the `documentation.txt` content according to the required sections:\r\n * **Project Overview:** Briefly describe the tool's purpose (standardizing 3D assets using presets) and high-level architecture (core processing engine, configuration system, multiple interfaces - GUI/CLI/Monitor, optional Blender integration).\r\n * **Codebase Structure:** List key files/directories and their roles:\r\n * `asset_processor.py`: Core asset processing logic (`AssetProcessor` class).\r\n * `configuration.py`: Handles loading/merging core config and presets (`Configuration` class).\r\n * `config.py`: Global settings and constants.\r\n * `main.py`: CLI entry point, argument parsing, process orchestration.\r\n * `monitor.py`: Automated directory watching (`ZipHandler` class).\r\n * `gui/`: Contains all GUI-related code (PySide6).\r\n * `main_window.py`: Main application window, UI layout, preset editor, event handling (`MainWindow` class).\r\n * `processing_handler.py`: Manages background processing tasks for the GUI (`ProcessingHandler` class).\r\n * `prediction_handler.py`: Manages background file analysis/preview for the GUI (`PredictionHandler` class).\r\n * `preview_table_model.py`: Data model for the GUI's preview table.\r\n * `blenderscripts/`: Python scripts intended for execution within Blender.\r\n * `Presets/`: JSON files defining supplier-specific processing rules.\r\n * **Key Components/Modules:** Detail the primary classes identified above (`AssetProcessor`, `Configuration`, `MainWindow`, `ProcessingHandler`, `PredictionHandler`, `ZipHandler`) and their main responsibilities.\r\n * **Core Concepts & Data Flow (Refined, Text-Only):**\r\n * **Preset-Driven Configuration:** Explain `config.py` (global defaults), `Presets/*.json` (supplier-specific rules/regex), and how `Configuration` class loads, merges, and pre-compiles regex.\r\n * **Asset Processing Pipeline & Data Flow:** Describe the step-by-step flow managed by `AssetProcessor` (Workspace Setup -> Extract -> Classify -> Metadata -> Skip Check -> Process Maps -> Merge Maps -> Generate metadata.json -> Organize Output -> Cleanup -> Optional Blender Scripts). Emphasize text-only description.\r\n * **Parallel Processing:** Explain the use of `concurrent.futures.ProcessPoolExecutor` managed by `main.py` (CLI) or `gui/processing_handler.py` (GUI) for concurrent asset processing, ensuring process isolation.\r\n * **GUI Interaction & Threading (High-Level):** Describe `PySide6` usage, offloading tasks (prediction, processing) to `QThread`s (`PredictionHandler`, `ProcessingHandler`), and communication via signals/slots.\r\n * **Output (`metadata.json`):** Detail its purpose and the key information it contains (map details, stats, aspect ratio, category, preset, etc.).\r\n * **Development Workflow:** Provide pointers for common tasks (modifying core processing, config, CLI, GUI, Blender integration).\r\n * **Coding Conventions:** Mention observed practices (OOP, type hinting, logging, custom exceptions, parallelism, PySide6 patterns).\r\n\r\n3. **Strict Exclusions:** Ensure no information about environment setup, dependency installation, building, or deployment is included.\r\n\r\n4. **Generate Final Content:** Create the plaintext content for `documentation.txt`.\r\n\r\n5. **Switch Mode:** Request switching to `code` mode to write the `documentation.txt` file."
}
]
}