chore(agents): add subagent briefs, agent plan and analysis documentation

This commit is contained in:
2026-09-11 00:23:12 +03:00
parent 4c48af7679
commit c1d8852086
9 changed files with 384 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
# AGENTS.md
## Project summary
`ccolors` is a command-line utility that extracts dominant color palettes from images and outputs both terminal-colored swatches and a JSON file containing the extracted colors. It features a single-file design where all functionality is contained in `main.cpp` with no subdirectories, utilizing standard C++17 and the `stb_image.h` header-only library.
## Build/test/lint commands
* **Build requirements**:
- Compiler: C++17 compliant (g++/clang++)
- CMake: Version 3.10+
- CMake configuration:
```cmake
cmake_minimum_required(VERSION 3.10)
project(ccolors)
set(CMAKE_CXX_STANDARD 17)
add_executable(ccolors main.cpp)
```
* **Test**: The single-file architecture makes unit testing difficult.
* **Lint / Code style rules**:
- 4-space indentation
- No complex macros
## Code style rules
* **Variables**: snake_case (`imagefile`), CamelCase (`Pixel`)
* **Constants**: UPPER_SNAKE_CASE (`argv`, `STB_IMAGE_IMPLEMENTATION`)
* **Functions**: snake_case (`is_jpeg`, `is_png`)
* **Namespaces**: Alias-based (`fs` for `std::filesystem`)
* **Code Structure Patterns**:
- Early returns for error handling
- Forward declarations before use
- Type aliases for commonly used types
- Defensive programming with comprehensive error checking
- 4-space indentation, no complex macros
## Directory structure and where things are located
* **Single-file design**: All functionality is contained in `main.cpp` in the root directory. There are no subdirectories.
* **Dependencies**: `stb_image.h` header-only library.
## Constraints agents must adhere to
* **Single-file design**: All core logic, data structures, algorithms, and I/O must remain in `main.cpp` with no separation of concerns.
* **Standard Compatibility**: Must be C++17 compliant.
* **Dependencies**: Keep external dependencies limited to standard library and the included header-only `stb_image.h`.
* **Downsampling & Filtering**: Color extraction must downsample pixels (step = 10) and filter out pixels with brightness < 60 and saturation < 10.
* **Fixed-size Output**: Output must be limited to the top 5 colors.
* **Quantization**: Colors must be quantized into 16×16×16 buckets (4096 keys).
* **Statelessness**: Operation must remain stateless with no persistent storage or global state between runs.