# Asset Tracker - Agent Guidelines ## Build/Test Commands - Run asset extraction: `./extract_assets.sh` - Generate charts: `./chart_asset_data.sh` - Full pipeline with SSH agent: `./run_with_agent.sh` - Test individual users: Edit `user_ids.conf` to modify USER_IDS array ## Code Style Guidelines - Use bash for shell scripts with `#!/bin/bash` shebang - Source configuration files with `source ./user_ids.conf` - Use uppercase for global variables: `USER_IDS`, `URL_TEMPLATE`, `OUTPUT_DIR` - Function names in lowercase with underscores: `process_user()` - Use local variables in functions: `local USER_ID="$1"` - Error checking with conditional statements and proper exit codes - Clean up temporary files with `rm -f` - Use descriptive variable names: `png_total_assets`, `temp_diamonds_on_hand` ## Data Conventions - CSV format: `date,rank,diamonds,total_assets` - Date format: `"%Y-%m-%d %H:%M:%S"` - Remove commas from numeric values with `tr -d ','` - Gnuplot time format: `"%Y-%m-%d"` - Output PNG files: `total_assets_${USER_ID}.png`, `diamonds_on_hand_${USER_ID}.png` ## Security - Use SSH agent for key management: `ssh-add ~/.ssh/id_ed25519` - Handle sensitive URLs and paths in configuration files - Validate file existence before processing: `[ ! -f "$input_file" ]`