Files
ChowBox/CLAUDE.md
王鹏 802b4ba229 fix: 修复 VoiceController Map.of 兼容性 + ExploreController 参数不匹配
- VoiceController: Map.of() -> Collections.singletonMap() 兼容 Java 8
- ExploreController: 补齐 takeoutService.roll() 缺失的 taste/priceRange/allergies 参数

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-08 20:02:27 +08:00

4.6 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project: ChowBox (吃啥盲盒)

WeChat Mini Program for solving "what to eat" decisions. Three modes:

  • Takeout Box (外卖盲盒): Random nearby quality delivery recommendation, jump to Meituan/Ele.me to order.
  • Fridge Box (冰箱盲盒): Input ingredients, get recipe matches ranked by match %, highlight missing items.
  • Explore Box (探店盲盒): Random nearby dine-in restaurant discovery, navigate via map apps.

Status: Pre-development planning. Zero code written. Docs in doc/ are the source of truth.

Tech Stack

  • Frontend: Native WeChat Mini Program (WXML + WXSS + JavaScript), WeChat Developer Tools
  • Backend: Java 8 + Spring Boot 2.x (classic MVC)
  • Database: MySQL 5.7+ (primary) + Redis (cache)
  • External APIs: Amap Web API (POI search, primary), Tencent Location Service (backup), WeChat Open APIs (navigation, subscribe messages)

Design Tokens

  • Primary: #FF6A3D (orange), Background: #FFFBF4 (warm white), Text: #333, Accent: #4CAF50
  • Card border-radius: 16px, Button border-radius: 24px
  • Font: WeChat default Chinese font, bold titles at 16-20px

Architecture

  • Bottom tab navigation: Home (盲盒大厅), Records (记录), My (我的)
  • Data flow: user location → backend → map POI API (cached by geo-grid + time) → filtering/weighting → weighted random selection → result
  • POI cache: 1h client-side, 6h server-side for hot zones
  • Box opening animation: 1.8-2.2s, 3-act (shake → lid open with glow → card reveal), Lottie + CSS keyframes, degrade to CSS-only on low-end devices (see doc/box.md)

Key Docs

  • doc/plan.md — Full product plan v1.0 (features, architecture, roadmap, budget)
  • doc/box.md — Opening animation storyboard and dev parameters
  • doc/ui.md — ASCII wireframes for all 6 core pages

Roadmap

  • Phase 1 (MVP, 4-6 weeks): Scaffold mini program + Spring Boot backend, MySQL schema, Amap POI integration for takeout box, 100 recipes, basic box animation
  • Phase 2 (3-4 weeks): Explore box, voice ingredient input, user feedback weighting, 500+ recipes
  • Phase 3 (2-3 weeks): User preferences, share cards, subscribe messages, perf optimization
  • Phase 4: Testing, WeChat review submission, iteration

No build/lint/test commands exist yet.


Behavioral Guidelines

Tradeoff: These guidelines bias toward caution over speed. For trivial tasks, use judgment.

1. Think Before Coding

Don't assume. Don't hide confusion. Surface tradeoffs.

Before implementing:

  • State your assumptions explicitly. If uncertain, ask.
  • If multiple interpretations exist, present them - don't pick silently.
  • If a simpler approach exists, say so. Push back when warranted.
  • If something is unclear, stop. Name what's confusing. Ask.

2. Simplicity First

Minimum code that solves the problem. Nothing speculative.

  • No features beyond what was asked.
  • No abstractions for single-use code.
  • No "flexibility" or "configurability" that wasn't requested.
  • No error handling for impossible scenarios.
  • If you write 200 lines and it could be 50, rewrite it.

Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify.

3. Surgical Changes

Touch only what you must. Clean up only your own mess.

When editing existing code:

  • Don't "improve" adjacent code, comments, or formatting.
  • Don't refactor things that aren't broken.
  • Match existing style, even if you'd do it differently.
  • If you notice unrelated dead code, mention it - don't delete it.

When your changes create orphans:

  • Remove imports/variables/functions that YOUR changes made unused.
  • Don't remove pre-existing dead code unless asked.

The test: Every changed line should trace directly to the user's request.

4. Goal-Driven Execution

Define success criteria. Loop until verified.

Transform tasks into verifiable goals:

  • "Add validation" → "Write tests for invalid inputs, then make them pass"
  • "Fix the bug" → "Write a test that reproduces it, then make it pass"
  • "Refactor X" → "Ensure tests pass before and after"

For multi-step tasks, state a brief plan:

1. [Step] → verify: [check]
2. [Step] → verify: [check]
3. [Step] → verify: [check]

Strong success criteria let you loop independently. Weak criteria ("make it work") require constant clarification.


These guidelines are working if: fewer unnecessary changes in diffs, fewer rewrites due to overcomplication, and clarifying questions come before implementation rather than after mistakes.