- Add first_share/top_three_combined_share plus cr1/cr3 readers
- Brief/schema/footnotes and LLM prompts avoid dev jargon where possible
- Frontend JD analysis/dataset hints in business-friendly wording
Made-with: Cursor
Add run_report_llm_chapters_demo.py to exercise matrix/price/sentiment/comment_groups/bridges and report supplement. generate_comment_group_summaries_llm now compacts per-group text in tiers so large multi-group runs stay under context limits with default max_tokens.
Made-with: Cursor
Re-add MATRIX/COMMENT/PRICE_GROUPS_SYSTEM and generate_*_group_summaries_llm
removed in afe2748; align comment-group prompt with shop in attribution
prefix. Default report_config now includes the three llm_*_summaries flags.
Made-with: Cursor
Keep only REPORT_SYSTEM / SENTIMENT prompt tightening; remove dead
matrix/comment/price LLM helpers not referenced by views or jd_runner.
Made-with: Cursor
§8.5 brief lacks per-SKU review text; tighten REPORT_SYSTEM so lexicon
hits are described as cross-SKU substring stats and forbid quoted
fabricated examples. Align sentiment helper: no quoted specifics absent
from samples.
Made-with: Cursor
Regenerate-report (llm) used compact_brief_for_llm default 350k chars,
unlike other LLM steps (80k–100k), which can cause gateway timeouts or 5xx
surfacing as 502. chat_completion_text now attaches response body snippet
to HTTPError for easier diagnosis.
Made-with: Cursor