Nano Banana Pro
Agent skill for nano-banana-pro
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Sign in to like and favorite skills
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
daphbot-due is a robotics project built on the basic_bot framework. It's a security/monitoring robot with computer vision that detects people, cats, and dogs, then performs behaviors like tracking, recording video, and "dancing" to deter pets. The robot has pan/tilt servo controls and runs on a Raspberry Pi 5 with a 5" round display.
The system uses a microservices architecture managed by the basic_bot framework:
# Build webapp and install dependencies ./build.sh
# Run all tests (Python + webapp) ./test.sh # Run Python tests only python -m pytest -vv tests/ # Run webapp tests only cd webapp && npm run test
cd webapp # Install dependencies npm install # Development server npm run dev # Build for production npm run build # Lint code npm run lint
# Create virtual environment python -m venv bb_env source bb_env/bin/activate # Install dependencies python -m pip install -r requirements.txt
Services are managed by the basic_bot framework using the configuration in
basic_bot.yml. Individual services can be started using the framework's CLI.
The system uses a centralized state hub where services publish and subscribe to specific state keys:
recognition: Object detection results from vision service (people, cats, dogs)primary_target: Current target being tracked (published by daphbot service)servo_angles: Current servo positionsdaphbot_mode: Operating mode (autonomous vs manual)src/daphbot_service.py: Core object detection and response logic (people, pets)src/commons/track_target.py: Servo tracking algorithmssrc/commons/dance.py: Pet deterrent behaviorswebapp/src/App.tsx: Main React applicationwebapp/src/util/hubState.ts: Frontend state managementbasic_bot.yml: Service configuration and orchestrationThe codebase follows the basic_bot framework patterns for service communication via WebSocket messages and centralized state management.
from commons import constants as c. reason: I'm not a big fan of making person or AI type out constants. everywhere they need a constant. I also don't see the value in forcing each individual const to be imported like from common.constants import BB_WHATEVER. Import once as c and then just c.BB_WHATEVER. This guidence may only apply to heavily used imports like constants.pyfrom commons import basic_bot_commons.constants as bbc.import basic_bot.commons.log functions to write to the log files instead of Python's logger. Note that there is currently no log.warning - for now, use log.error or log.info to warn.