--- name: pick-movie-theater description: 按影片版本、用户位置、具体影厅能力、当前场次与证据,推荐值得去的影院、具体影厅和选座区域。用于用户询问一部电影应该看什么厅、IMAX/杜比/CINITY/CGS/ScreenX/4DX/LED 等格式怎么选、附近或全城最佳影院、某场次是否匹配影片版本,以及有无选座截图时坐哪里。 --- # 选影院、影厅与座位 给用户一个能直接购票的结论,同时保留影片版本、具体影厅、场次、证据和搜索覆盖边界。不要把影院品牌、影厅理论能力或社交热度直接当成影片在当前场次中的真实体验。 ## 核心边界 - 不依赖付费 API。 - 不要求登录态。 - 不要求用户提供选座截图。 - 不维护或假设存在预建的全国影院、影厅事实库;每次从公开来源搜索。 - 不要求 Cookie、密码或 token,不绕过登录、验证码或反爬限制。 - 不执行购票、锁座、点赞、收藏、关注、评论或发布。 - 影片版本、影院、具体影厅、场次是四个不同对象;上层能力不能自动传递给下层。 只要已有“影片名称”和能限定城市的“位置”,就开始核心流程。日期缺失时搜索下一批可公开确认的场次并标明时间窗口;偏好缺失时采用画面、声音、交通和证据质量平衡的模式。只有影片重名、城市不明或限制条件会实质改变结论时才追问。 ## 按需读取参考资料 每次运行先读取: 1. `references/film-version-card.md`:建立带地区和日期边界的影片版本卡。 2. `references/source-and-evidence-policy.md`:给字段和结论分级,处理冲突与时效。 3. `references/search-playbook.md`:从全城发现候选并执行覆盖审计。 4. `references/hall-and-screening.md`:核验影院、具体影厅和场次。 5. `references/format-taxonomy.md`:区分所有效果型格式、购票标签和普通用户选择逻辑。 6. `references/decision-and-output.md`:过硬门槛、排序并生成用户结果。 进入选座步骤时读取 `references/seat-selection.md`。只有维护或验收本 Skill 时读取 `references/requirements-traceability.md`。 ## 工作流 ### 1. 解析请求 提取影片、位置、日期、最大通勤时间、人数和偏好。识别避免 3D、动感、喷水、眩晕、强音量、字幕仰视等限制。截图和用户链接只作为可选补充。 把场次状态统一标为: - `当前可确认`:可重新打开的官方/票务排片在同一影片区块内同时定位到日期、影院、影厅和版本标注。 - `条件式候选`:影厅能力可确认,但当前排片或影片版本仍待核验。 - `理论最佳`:只说明能力上限,不暗示当前可购。 ### 2. 建立影片版本卡 先查影片端,再查影院端。区分拍摄/创作格式、专用后期或母版、当地发行版本、当前场次实际可取得的版本。对每个字段写明“已确认/合理推断/未知”,并记录地区、日期和来源。 ### 3. 划分发现范围与推荐范围 默认在整个城市发现优质候选,不因用户只给出区县而停止在区县内。日常推荐以约 45 分钟交通为参考;体验能力发生显著跃迁时可扩展到约 90 分钟;本地不存在的稀缺格式才进入跨城增强建议。路线不可得时使用距离或行政区近似并明确标注。 ### 4. 多入口召回候选 先按 `references/search-playbook.md` 建立全城“效果优先候选全集”:逐项搜索 IMAX、Dolby、CINITY、CGS、影院 LED、ScreenX、动感/环境效果、沉浸声和其他 PLF 九个家族,并覆盖城市下辖区县、县级市和新区。不能用一次宽泛搜索代表全部家族已经覆盖,也不能因影片暂时没有某格式就跳过本地候选发现。 再执行影片/格式官方入口、口碑、近期升级和候选滚雪球。普通网页和公开社交页面承担发现与补漏;不让单一社交帖子证明技术规格。固定检查“院线电影资料库”时只使用其微博渠道,不重复检查同一运营者的小红书渠道。 去重影院别名、旧名和同址名称。候选进入深入核验层后,再搜索影院全名、厅号、设备、银幕、升级、排片和负面体验,避免对全市普通影院做无差别穷举。 ### 5. 核验具体影厅与场次 为每个候选建立字段级事实表。首选必须尽可能落到具体影厅;无法确认厅号时明确暴露,不把同一影院其他厅的能力继承过来。核对公告日期、改名、改厅号、设备升级和过期排片。 票务页混排多部影片时,把目标影片标题到下一影片标题之间视为一个影片区块。日期、时间、影院、厅号和购票标签必须来自同一区块;搜索摘要、页面其他影片或页面级推荐位中的字段不得跨区块拼接。只有搜索引擎索引快照而原始页无法重新核对时,降为条件式候选。 营销名称只产生待核验线索。按 `references/format-taxonomy.md` 拆成投影、光源、分辨率、机型数量、有效画幅、银幕、声音、影片专用版本和认证状态。 对任何格式家族都不能只输出品牌名。把购票标签翻译成普通用户能采取行动的差异:具体类型、它保证什么、不保证什么、本片实际增量、银幕与遮幅是否匹配,以及为什么选它而不是同品牌或其他格式候选。 ### 6. 过硬门槛并排序 先应用四个门槛: 1. 当地有该影片版本,或明确标为待确认。 2. 具体影厅能呈现决定推荐的增量。 3. 有对应场次,或明确输出为条件式候选。 4. 决定性字段证据足够且未被更新信息推翻。 门槛通过后,再比较影片增量、画面、声音、观看几何、当前可用性、交通、价格、用户偏好和证据风险。证据风险足以改变结论时降级排名或改成条件式建议;不要用品牌总分覆盖门槛。 ### 7. 给出选座建议 没有截图也继续。优先取得银幕方向、总排数、座位图、银幕尺寸和座位距离;数据允许时可运行: ```powershell python -X utf8 scripts/decision_support.py seat --screen-width-m 20 --seat-distance-m 20 --lateral-offset-m 0 --screen-top-delta-m 5 ``` 输出平衡首选区、更沉浸区、更舒适区和应避开的风险区,并标明是计算、可靠推断还是通用经验。没有足够几何和余座信息时不精确到具体座号。 用户自愿提供清晰选座截图时,才识别当前可售座位并给首选、前后排备选和多人连座备选。截图模糊、裁切或状态不明时降低精度;注明核查时间,不承诺座位仍可售。 ### 8. 执行证据与覆盖审计 决定首选前检查每个决定性事实。可把事实包传给: ```powershell python -X utf8 scripts/decision_support.py evidence --input evidence.json ``` 所有声称有具体排片的候选先保留同区块字段绑定,再运行: ```powershell python -X utf8 scripts/decision_support.py screenings --input screenings.json ``` 有无效绑定时删除错误场次并重新核验;只有搜索索引快照时按脚本结果降为条件式。把场次绑定审计结果放入覆盖包。 搜索停止前记录入口、格式家族、新增候选、候选状态和受阻来源,并可运行: ```powershell python -X utf8 scripts/decision_support.py coverage --input coverage.json ``` 只有官方相关入口已检查、九个效果型格式家族逐项完成、规定入口已执行、连续两个独立补漏入口零新增、其余候选均已核验或标为未解决,且场次绑定审计没有跨影片/跨区块错误时,才写“本轮优质候选搜索达到饱和”。永远不要声称所有影院零遗漏。 ## 默认输出 按以下顺序给结果,开头先说用户下一步该买什么: 1. **直接结论**:影院、具体影厅、日期/场次状态、推荐格式。 2. **首选及取舍**:本片实际多得到什么,交通、价格或舒适上付出什么。 3. **更近/更稳/更便宜的备选**:只列真正合格的方案。 4. **格式差异翻译**:用户在票务页会看到什么标签、候选实际是哪一代/哪种能力、为什么不是“都一样”。 5. **选座**:平衡、沉浸、舒适和避雷区域;有截图时再给当前具体座位。 6. **关键依据**:决定性事实、来源链接、发布日期或核查日期、证据等级和置信度。 7. **覆盖说明**:九个效果型格式家族、搜索入口、停止原因、受阻来源、未确认项和购票前复核动作。 只有高热度候选容易让用户误选时才列“不推荐”,并给出可验证原因。没有合格方案时直接说明,不为凑数量编造三个推荐。 ## 失败降级 - 没有相关候选:说明已覆盖入口,并给普通厅或扩大范围的下一步。 - 来源不可访问:写“来源不可访问”,不要写成“没有相关内容”。 - 有候选但参数不足:保留为待核验候选,列出缺的决定性字段。 - 影厅能力可确认但排片不明:输出条件式候选,要求购票前核对具体厅号和版本。 - 票务页混排多片或只能取得搜索索引快照:保留为排片线索;不能证明同区块绑定或无法重开原页时输出条件式候选。 - 有场次但真实版本不明:引用票务标注,但不把标注升级成已确认能力。 - 有座位图但当前余座不明:只给区域,不猜具体可售座位。 使用已有登录态 Chrome 搜索小红书等平台属于可选增强:先取得用户明确同意,只对已收敛候选做只读精确搜索;遇验证码或访问限制立即停止并按公开模式继续。