# 饮食页面「换一批」&「生成食谱」端到端修复 Implementation Plan > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** 让饮食首页「🔄 换一批」与「✨ 生成食谱」、食谱推荐页「生成食谱/重新生成」真实可用:后端真正使用用户所选食材与共餐参与者生成 AI 菜单,前端正确解析 Result 结构与 LangGraph 菜单数据契约,并修复「添加食材」弹窗搜索空壳与按钮禁用态。 **Architecture:** 后端(`DietRecommendationService` / `DietIngredientService` / `BeijingNutritionService` / `DietIngredientController`)补齐真实逻辑:解析 `selected_foods`、查询 `meal_configs` 参与者、给 `generateIngredientList` 传 seed 实现换一批、把 LangGraph 返回的菜单 JSON 归一化为前端期望结构并聚合营养汇总、新增食材搜索接口。前端(`index.vue` / `recommendation.vue`)修复 `res.data.*` 取值、实现弹窗搜索、同步 `selectedIngredients`。 **Tech Stack:** Spring Boot 2.7.18 / MyBatis-Plus / uni-app Vue 2(Options API)微信小程序 / FastAPI LangGraph(仅消费,不改) **Spec:** - `cfc-backend/docs/superpowers/specs/2026-08-06-diet-module-design.md`(数据模型/接口/流程契约) - `cfc-frontend/docs/superpowers/specs/2026-08-28-diet-redesign.md`(仅样式,本次不改视觉) ## Global Constraints - 后端接口统一 `@PostMapping`,禁止 `@GetMapping/@PutMapping/@DeleteMapping` - DI 用 `@Resource`,字段名与类型默认 Bean Name 一致 - 响应统一 `Result`(code/message/data) - 新增接口前查 `docs/superpowers/api/API_REFERENCE.md`,确认无重复,新增后同步记录 - 后端验证唯一方式:`mvn clean compile`(在 `cfc-backend/` 下) - 前端验证:`node -e` 提取 `.vue` 的 `