{'files': {'code': ['backend/app/database.py', 'backend/app/security.py', 'backend/app/main.py', 'backend/app/config.py', 'backend/app/models/__init__.py', 'backend/app/schemas/__init__.py', 'backend/app/schemas/ingredient.py', 'backend/app/schemas/recipe.py', 'backend/app/schemas/never_suggest.py', 'backend/app/schemas/meal_plan_generation.py', 'backend/app/api/profile.py', 'backend/app/api/pantry.py', 'backend/app/api/auth.py', 'backend/app/api/shopping_list.py', 'backend/app/api/recipes.py', 'backend/app/api/ingredients.py', 'backend/app/api/never_suggest.py', 'backend/app/api/meal_plans.py', 'backend/app/api/admin.py', 'backend/app/api/feedback.py', 'backend/app/api/meals.py', 'backend/app/api/orchestrate.py', 'backend/app/services/__init__.py', 'backend/app/services/approval.py', 'backend/app/services/swiftly_auth.py', 'backend/app/services/email.py', 'backend/app/services/matcher.py', 'backend/app/services/scraper_service.py', 'backend/app/services/llm_matcher.py', 'backend/app/services/planner/__init__.py', 'backend/app/services/planner/config.py', 'backend/app/services/planner/types.py', 'backend/app/services/planner/cost.py', 'backend/app/services/planner/filter.py', 'backend/app/services/planner/score.py', 'backend/app/services/planner/select.py', 'backend/app/services/planner/generate.py', 'backend/app/services/orchestrator/__init__.py', 'backend/app/services/orchestrator/alerts.py', 'backend/app/services/orchestrator/runner.py', 'backend/app/services/orchestrator/steps.py', 'backend/app/scraper/base.py', 'backend/app/scraper/__init__.py', 'backend/app/scraper/lucky_ca_scraper.py', 'backend/app/scheduler/__init__.py', 'backend/app/scheduler/__main__.py', 'backend/alembic/env.py', 'backend/alembic/versions/0003_grocery_item_description.py', 'backend/alembic/versions/0002_seed_data.py', 'backend/alembic/versions/0004_family_profile_calorie_target.py', 'backend/alembic/versions/0001_initial_migration.py', 'backend/alembic/versions/0005_grocery_item_external_id.py', 'backend/alembic/versions/0006_recipe_engine_thin.py', 'backend/alembic/versions/0007_seed_recipes.py', 'backend/alembic/versions/0008_phase5_orchestration.py', 'backend/alembic/versions/0009_phase6_reminded_at.py', 'backend/alembic/versions/0010_auto_llm_source.py', 'backend/tests/__init__.py', 'backend/tests/test_alembic.py', 'backend/tests/test_smoke.py', 'backend/tests/test_auth.py', 'backend/tests/test_scrape_endpoint.py', 'backend/tests/test_approval.py', 'backend/tests/test_config.py', 'backend/tests/test_ingredient_schema.py', 'backend/tests/test_recipe_schema.py', 'backend/tests/test_recipe_api.py', 'backend/tests/test_resolve_ingredient.py', 'backend/tests/test_matcher.py', 'backend/tests/test_match_hook.py', 'backend/tests/conftest.py', 'backend/tests/test_ingredient_api.py', 'backend/tests/test_never_suggest_api.py', 'backend/tests/test_thin_phase4_smoke.py', 'backend/tests/test_planner_cost.py', 'backend/tests/test_planner_filter.py', 'backend/tests/test_planner_score.py', 'backend/tests/test_planner_select.py', 'backend/tests/test_planner_generate.py', 'backend/tests/test_meal_plan_generate_api.py', 'backend/tests/test_swiftly_auth.py', 'backend/tests/test_swiftly_api.py', 'backend/tests/test_email_backend.py', 'backend/tests/test_orchestrator.py', 'frontend/vite.config.ts', 'frontend/tailwind.config.js', 'frontend/postcss.config.js', 'frontend/src/main.tsx', 'frontend/src/vite-env.d.ts', 'frontend/src/App.tsx', 'frontend/src/components/ErrorBoundary.tsx', 'frontend/src/components/ui/Button.tsx', 'frontend/src/components/ui/Badge.tsx', 'frontend/src/components/ui/Card.tsx', 'frontend/src/components/ui/Input.tsx', 'frontend/src/components/ui/EmptyState.tsx', 'frontend/src/components/ui/Skeleton.tsx', 'frontend/src/components/ui/LoadingSpinner.tsx', 'frontend/src/components/ui/Select.tsx', 'frontend/src/components/ui/Textarea.tsx', 'frontend/src/pages/Dashboard.tsx', 'frontend/src/pages/MealDetail.tsx', 'frontend/src/pages/Pantry.tsx', 'frontend/src/pages/ShoppingList.tsx', 'frontend/src/pages/Login.tsx', 'frontend/src/api/index.ts', 'frontend/src/types/index.ts', 'frontend/src/lib/utils.ts', 'frontend/src/lib/toast.ts', 'scripts/spike_lucky_scrape.py', 'scripts/send_test_approval.py', 'scripts/spike_swiftly_ingest.py', 'scripts/seed_family.py', 'scripts/enrich_recipes_spoonacular.py'], 'document': ['meal-planner-plan.md', 'README.md', 'CLAUDE.md', 'docs/SPEC.md', 'docs/ARCHITECTURE.md', 'docs/database-schema.md', 'docs/implementation-plan.md', 'docs/RUNNING.md', 'docs/ORIENTATION.md', 'docs/HANDOFF.md', 'docs/specs/2026-05-05-meal-planner-algorithm-design.md', 'docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md', 'docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md', 'docs/superpowers/plans/2026-05-07-phase5-orchestration.md', 'docs/superpowers/plans/2026-05-07-phase6-sendgrid.md', 'docs/superpowers/plans/2026-05-09-mvp-login.md', 'docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md', 'backend/requirements-dev.txt', 'backend/requirements.txt', 'backend/tests/fixtures/lucky_ca/META.md', 'Review/docs-gpt5.5.md', 'Review/repo-gpt5.5.md', 'Review/docs-claude.md', 'Review/synthesis.md', 'Review/reviewconcensus.md'], 'paper': [], 'image': ['backend/tests/fixtures/lucky_ca/weekly_ad.png'], 'video': []}, 'total_files': 140, 'total_words': 108271, 'needs_graph': True, 'warning': None, 'skipped_sensitive': ['docs/specs/2026-05-06-swiftly-token-auto-mint.md'], 'graphifyignore_patterns': 0}
