# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Overview This is a WeChat Mini Program called "徵象" (emblem-scanner) for QR code scanning and processing. The app connects to the Themblem service for QR code verification and includes camera functionality with device-specific optimizations. ## Architecture **Main App Structure:** - `app.js` - Main application entry point with global data and worker initialization - `utils.js` - Utility functions for camera rules, device detection, and QR code extraction - `pages/` - WeChat Mini Program pages (index, camera, debug, webview, etc.) - `components/` - Reusable UI components (scanguide, tooltips, modals, etc.) - `worker/` - WebAssembly worker thread for QR code processing using qrtool library - `static/` - Static assets and resources **Key Components:** - Camera system with device-specific zoom rules fetched from API - WebAssembly-based QR processing in worker thread for performance - New emblemscanner (`pages/emblemscanner/`) for unified QR scanning experience - Legacy camera page (`pages/camera/`) kept for reference to worker integration - Upload and verification system connecting to themblem.com API **Global Data:** - `server_url`: 'https://themblem.com' - main API endpoint - `session_id`: Generated unique session identifier - `worker`: WebAssembly worker for QR processing ## Development Commands This is a WeChat Mini Program project. Development is done through WeChat Developer Tools IDE. **Linting:** ```bash # ESLint configuration available but no npm scripts defined # Lint manually using WeChat Developer Tools or external ESLint ``` **No test framework or build scripts are configured in package.json** ## Key Files - `project.config.json` - WeChat Mini Program configuration - `app.json` - App pages, window settings, and worker configuration - `utils.js` - Core utility functions for camera and QR code handling - `worker/index.js` - WebAssembly QR code processing worker - `precheck.js` - QR code frame validation logic - `upload.js` - Image upload and verification functions ## Dependencies - `lottie-miniprogram` - Lottie animations support - WebAssembly qrtool library (`qrtool.wx.js`) - QR code processing ## External APIs - `https://themblem.com/api/v1/camera-rules/` - Device-specific camera settings - `https://themblem.com/api/v1/check-auto-torch/` - Auto torch functionality - `https://whatsmyip.themblem.com` - IP address detection - `https://research.themblem.com/event/` - Event tracking endpoint