2.1 KiB
2.1 KiB
Cold Display Guard Implementation Plan
For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
Goal: Build a standalone Python project for refrigerated display food-batch timing and 3-hour disposal compliance alerts.
Architecture: Keep camera and model logic outside the first business core. Implement a pure Python batch engine that consumes timestamped zone occupancy and trash-bin events, emits JSON-compatible compliance events, and can later be driven by a video adapter.
Tech Stack: Python 3.11+ standard library, TOML config via tomllib, tests via unittest.
Task 1: Project Skeleton
Files:
- Create:
pyproject.toml - Create:
src/cold_display_guard/__init__.py - Create:
README_zh.md - Create:
config/example.toml
Steps:
- Create packaging metadata with a console script named
cold-display-guard. - Create a Chinese README documenting the confirmed business rules.
- Create default TOML config for camera id, thresholds, 4x2 zones, and trash ROI placeholder.
- Verify imports with
python3 -m unittest discover -s tests.
Task 2: Batch Engine
Files:
- Create:
src/cold_display_guard/models.py - Create:
src/cold_display_guard/engine.py - Test:
tests/test_engine.py
Steps:
- Write tests for batch start, normal consumption, over-threshold pending disposal, trash confirmation, mixed-batch violation, overdue return violation, and missing disposal violation.
- Implement dataclasses for observations, batches, zones, and events.
- Implement
BatchEngine.process(). - Run
python3 -m unittest tests.test_engine -v.
Task 3: Config and CLI
Files:
- Create:
src/cold_display_guard/config.py - Create:
src/cold_display_guard/cli.py - Test:
tests/test_config.py
Steps:
- Load TOML config into an engine settings dataclass.
- Add CLI support for processing a JSONL observation file.
- Write emitted events to stdout as JSONL.
- Run
python3 -m unittest discover -s tests -v.
Task 4: Git
Steps:
- Initialize git in
~/Code/cold_display_guard. - Review
git status --short. - Commit the initial project.