| name | trail-research |
| description | 徒步线路调研助手。当用户说"帮我调研XX徒步路线"、"调研XX线路"、"推荐北京周边中级强度一日徒步"、
"做XX线路的领队计划和备案表"、"帮我找一条适合新手的徒步路线"时使用。
自动完成:需求澄清 -> 路线推荐 -> 深度调研(产出全面Markdown调研报告) -> 预览确认 -> 生成正式文件(领队计划.docx + 备案表.docx + 风险预案.xlsx)。
支持通用场景,也可按北大徒协模板格式输出。有不确定的信息时主动向用户提问,不自行假设。
|
| context | fork |
| allowed-tools | Bash, Read, Write, Edit, Glob, Grep, WebFetch, WebSearch, AskUserQuestion |
徒步线路调研技能
概述
本技能帮助用户从零开始调研徒步路线,通过交互流程产出以下交付物:
核心交付物:
- 徒步线路调研报告 (.md) — 全面 Markdown 调研报告,包含所有搜集到的路线信息、分析、参考资料链接
- 领队计划 (.docx) — 包含活动介绍、路线信息、组织事宜、物资准备、报名事项
- 活动备案表 (.docx) — 社团活动审批备案表(仅包含一至五节主干内容,不要求严格格式)
- 风险预案 (.xlsx) — 风险分析矩阵表格
- JSON 数据文件 (.json) — 结构化路线数据,供脚本生成 .docx/.xlsx 使用
输出目录约定:
所有交付文件(.md / .json / .docx / .xlsx)统一保存到用户当前工作目录下的 {路线或活动名称}/ 文件夹中。例如:./北灵山一日徒步/。Phase 3 开始时即创建该文件夹。
所有 .docx/.xlsx 文件通过 scripts/ 目录下的 Python 脚本生成,共享同一个 JSON 数据文件。调研报告由 Claude 在 Phase 3 直接撰写输出。
三种运行模式
根据用户输入自动判断模式:
模式 A:完整流程(默认)
当用户说"调研XX路线""帮我推荐一条路线"等,执行完整五阶段流程。
模式 B:仅调研
当用户说"只调研XX路线""帮我查一下XX路线的路况""做一份XX路线的调研报告"等,只执行 Phase 1-3,产出 .md 调研报告,不生成 .docx/.xlsx。
模式 C:仅生成文件
当用户说"根据这份调研报告生成领队计划""把已有的JSON数据生成文件"等,跳过调研阶段,直接从已有数据(或用户提供的信息)生成 .docx/.xlsx。此时优先读取已有的 _shared/ 下的 JSON 数据或用户指定的数据文件。
判断原则: 如果不确定用户意图,默认使用模式 A(完整流程),并在 Phase 1 时向用户确认。
前置:确定输出模式
在开始调研前,检查 _shared/user-config.json(如存在)获取用户偏好。确认用户是否需要按北大徒协模板格式输出:
- 如果是:遵循
references/handbook.md(精要)和 references/leader-handbook-full.md(完整版)中的规范(分级公式、领队配比、补贴规则等)
- 如果否:使用通用格式,省略协会特有的审批流程和术语
Phase 1:需求澄清
与用户对话,逐一确认以下信息。不要一次性列出所有问题,而是以自然对话方式逐步了解。
必须确认的核心信息:
- 区域/地点 — 想去哪个省/市/山区?是否有具体目标区域?
- 难度等级 — 休闲/初级/中级/高级/超高级?还是"不知道,你来推荐"?
- 时长类型 — 一日徒步 / 两日住宿 / 多日露营 / 城市徒步(City walk)?
- 活动时长(City walk 时必问)— 半日 / 一日?影响行程节奏和内容密度
- 季节/日期 — 计划什么时间出行?(影响天气、景色、封山风险)
- 出发城市 — 从哪里出发?
- 特殊偏好 — 赏花/红叶/云海/长城/古道/溯溪/文化古迹等
决策分支:
- 用户已指定具体路线名称 → 跳过 Phase 2,直接进入 Phase 3(深度调研)
- 用户只有需求没有具体路线 → 进入 Phase 2(路线推荐)
Phase 2:路线推荐
搜索策略
根据用户需求,使用 WebSearch 进行多维度搜索。参考 references/research-guide.md 中的搜索策略。
必做搜索(至少 3 次):
{地区} {难度} 徒步路线推荐 {季节}
{地区} 经典徒步路线 轨迹
{地区} {偏好关键词} 徒步 攻略
信息收集要点:
- 路线名称、位置、里程、爬升
- 路况类型(防火道/石板路/土路/碎石路等)
- 特色景观和季节适宜性
- 近期是否有封山/管控
- 轨迹文件可用性(两步路/六只脚)
输出格式
以结构化表格呈现 3-5 条候选路线:
| # | 路线名称 | 位置 | 里程(km) | 爬升(m) | 强度等级 | 亮点 | 注意事项 |
|---|
| 1 | ... | ... | ... | ... | ... | ... | ... |
每条路线附 1-2 句简要说明。如果按北大徒协格式,同时计算强度分数:路程(km) + 爬升(m)/100。
选择确认
使用 AskUserQuestion 让用户选择一条路线进行深入调研。选项标签使用路线名称,描述中包含关键参数。
Phase 3:深度调研 + 调研报告输出
3.0 前置:创建输出文件夹
在开始调研前,先在用户当前工作目录下创建以路线/活动名称命名的文件夹:
{用户当前目录}/{路线或活动名称}/
示例:./北灵山一日徒步/ 或 ./西四胡同CityWalk/
所有 Phase 3-5 产出的文件(.md / .json / .docx / .xlsx)均保存到此文件夹中。
3.1 核心产出:徒步线路调研报告
Phase 3 结束时,必须产出一份完整的 Markdown 调研报告并保存为文件。 报告直接由 Claude 撰写,使用 Write 工具保存到上述文件夹。
报告命名格式:{路线名称}_徒步线路调研报告.md
报告格式模板见 references/report-template.md。
调研维度与搜索策略
对选定路线进行全面信息搜集。参考 references/research-guide.md 中的深度调研搜索清单。每个维度需要至少 2 次 WebSearch,交叉验证信息。
时效性要求(重要): 所有信息必须以当前年份(搜索时使用 {当前年份} 关键词)为基准进行验证。特别注意以下易过时信息的时效性:
- 大交通信息(班车时刻、票价、线路调整)
- 边防证/入山证办理政策
- 景区门票价格与优惠政策
- 封山/防火/管控通告
- 公交/接驳车运营状态
3.1.1 RedNote-MCP 集成(小红书搜索专用)
优先使用 RedNote-MCP 搜索小红书内容。 小红书的徒步路况、实时反馈是最有价值的一手信息来源,但 WebSearch 无法直接抓取小红书页面。
检测方式: 在开始小红书相关搜索前,尝试调用 search_notes 工具(使用轻量 query 如"徒步 路况")。调用成功即表示 RedNote-MCP 已配置且 Cookie 有效。
可用时:
- 所有小红书搜索使用
search_notes 工具,设置合理的 limit(建议 10-20 条)
- 对搜索结果中信息密度高的笔记,使用
get_note_content 获取完整内容
- 搜索关键词示例:
{路线名} 徒步、{路线名} 路况、{路线名} 劝退、{路线名} {当前月份}月
- 笔记内容直接作为一手资料引用,报告中标注来源平台为"小红书"
不可用时(三种情况):
| 情况 | 表现 | 处理 |
|---|
| 未安装 | 无 search_notes 工具 | 向用户展示一句话提示:"💡 安装 RedNote-MCP 可直接搜索小红书路况,参考 references/rednote-mcp-setup.md"。然后降级到 WebSearch |
| Cookie 过期 | search_notes 返回认证错误 | 提示用户运行 rednote-mcp init 刷新登录,本次降级到 WebSearch |
| 其他错误 | 网络/超时等 | 静默降级到 WebSearch,不打断流程 |
降级策略: 使用 WebSearch 搜索 {路线名} 徒步 小红书 或 {路线名} 路况 攻略,获取第三方平台转载/聚合的小红书内容。同时在报告"近期路线动态"章节中标注"小红书内容来自第三方转载,建议在 App 内直接搜索最新帖子"。
3.2 轨迹数据 (P0)
搜索 "{路线名}" 轨迹 两步路 "{路线名}" 轨迹 六只脚
- 记录轨迹链接或 ID(必须给出可访问的 URL)
- 提取:总里程、爬升/下降、起终点坐标、上传时间
起终点坐标精度要求:
- 起点和终点的位置必须足够准确,能在高德地图/百度地图中直接搜索定位
- 优先使用轨迹中的精确 GPS 坐标(如
40.123456, 116.123456)
- 如轨迹坐标不精确,额外搜索
"{起点地名}" 定位 OR 坐标 交叉验证
- 报告中同时给出:GPS 坐标 + 可搜索的地名描述 + 地图搜索关键词
3.3 路况详情 (P0)
小红书搜索(RedNote-MCP 优先):
- 优先使用
search_notes 搜索:"{路线名}" 徒步、"{路线名}" 路况、"{路线名}" 劝退 OR 排雷
- 重点筛选近 1-3 个月的帖子,关注吐槽/劝退类内容
- 对关键帖子用
get_note_content 提取完整内容
WebSearch 补充搜索: "{路线名}" 路况 "{路线名}" 劝退 OR 排雷 OR 注意
- 按基础路况分类:柏油路/公路/防火道/机耕路/木栈道/石板路/平整土路/狭窄土路/碎石路
- 识别特殊路况:积雪/野长城/暴露感强/雨后烂泥/小陡崖/溯溪/踏冰/抱石
- 如 RedNote-MCP 不可用,WebSearch 搜索第三方平台转载的小红书内容
3.4 路线开放情况 (P0)
搜索 "{路线名}" 封山 OR 防火 OR 管控 OR 修路 {当前年份}
3.5 天气 (P1)
使用 Windy/莉景天气查询,搜索 "{山名} {日期} 天气"
- 温度范围、降水概率、风力
- 日出日落时间
- 云海概率(如相关)
3.6 交通与可达性 (P1)
搜索 "{起点地名} 停车" "{起点地名} 公交 {当前年份}"
- 大巴可达性(大车能否到达起点?路况是否允许?)
- 停车条件(停车场/路边)
- 公共交通选项(必须验证时效性:班车时刻表是否为最新、线路是否停运)
- 洗手间位置(去程最后一个可用洗手间)
- 大交通信息(如涉及火车/飞机/长途大巴):搜索最新班次、票价、购票方式
3.7 政策与证件 (P1)
搜索 "{区域}" 边防证 OR 入山证 OR 门票政策 {当前年份}"
- 是否需要边防证/入山证,最新办理流程和地点
- 景区门票价格(必须验证时效性:搜索最新调价公告)
- 学生票/优惠票政策(必须搜索当前年份最新政策)
- 是否需要提前预约/限流
3.8 City Walk 专项调研 (P1 — 仅 City walk 模式)
当活动类型为 City walk 时,必须额外搜索以下内容:
免费讲解与公共演出:
搜索 "{区域}" 免费讲解 OR 公益导览 OR 义务讲解 {当前年份}"
搜索 "{区域}" 公共演出 OR 街头表演 OR 文化演出 时间 {当前年份}"
- 博物馆/故居/公园的免费讲解时间段
- 公共空间演出/灯光秀的时间安排
- 需预约的活动标注预约方式
学生票政策:
搜索 "{景点名}" 学生票 OR 优惠票 {当前年份}"
- 每个途经景点的最新学生票价格
- 适用条件(全日制/研究生是否适用)
- 购票方式(现场/线上)
3.9 下撤路线 (P1)
搜索 "{路线名}" 下撤 OR 备用路线
3.10 补给与设施 (P2)
- 水源位置(季节性水源需标注)
- 村庄/商店/补给点
- 信号覆盖情况
3.11 参考链接汇总
整理所有有价值的参考资料链接,按类别分组。这是报告的重要组成部分。
每条链接必须附带资料的形成日期(发布日期/更新时间),格式为 YYYY-MM-DD。 日期来源:
- 网页文章/攻略:优先从页面内提取发布时间或最后更新日期
- 轨迹文件:使用轨迹的上传时间
- 社交平台帖子(小红书/抖音/公众号):使用帖子发布日期
- 政府公告/通告:使用公告发布日期(日期通常在标题或落款中明确标注)
- 无法确定精确日期时:标注大致时间段(如
2026年4月)或标注 日期不详
在报告中,每条链接后紧跟日期和来源平台,例如:- [标题](URL) — 简介(2026-04-15,小红书) 或 - [标题](URL) — 简介(2026-04-10,两步路)
筛选标准: 优先收录信息密度高、有实测数据、来自一手经验的参考资料。纯营销推广、内容空洞的链接不收录。
调研报告格式
报告按 references/report-template.md 中的模板撰写。使用 Write 工具将报告保存为:
{用户当前目录}/{路线或活动名称}/{路线名称}_徒步线路调研报告.md
Phase 4:预览与交互
4.1 展示调研报告摘要
向用户展示调研报告的关键发现摘要,而非完整报告。引导用户关注:
4.2 缺失信息标注
在预览中明确标注 [待确认] 的信息:
- 准确的领队名单和 bio
- 具体活动日期
- 最终参与人数
- 预算细节
4.3 交互确认
逐一请用户确认或提供以下内容(使用自然对话,不要一次性列出):
- 活动日期和时间 — 确认具体日期和星期
- 领队信息 — 姓名、身份(主领队/副领队/实习领队)、院系、邮箱、手机、户外经历 bio
- 参与人数 — 招募人数(给领队预留名额)
- 费用 — 会员费用、包车费用
- 集合方案 — 上车点及时间(北大场景:医学部/本部/万柳/新燕园)
- 路线调整 — 是否需要调整路线、增减路段、修改难度评估
- 装备调整 — 是否需要增加特殊装备
4.4 风险预案确认
与用户逐一确认风险级别评定是否合理,特别关注:
- 陡坡滑坠风险级别(需根据实际路况判定)
- 天气相关风险(根据实际天气预报调整)
- 是否需要增加额外风险行(如高原反应、雷雨天气等)
Phase 5:文件生成
5.1 构建数据
根据确认后的所有信息,构建完整的 JSON 数据文件。数据结构参考 scripts/data_model.py 中的 TrailResearchData。
将 JSON 保存到活动输出文件夹:{用户当前目录}/{路线或活动名称}/trail_research_data.json
5.2 生成交付文件
前置:Python 依赖自检(每次会话首次运行脚本前执行一次)
先探测依赖是否到位:
python -c "import docx, openpyxl"
- 命令成功无输出:跳过安装,继续下面的脚本执行
- 命令抛
ModuleNotFoundError:立即安装依赖再重试探测
pip install python-docx openpyxl
requirements.txt 仅含 python-docx 和 openpyxl 两行,直接用上面命令即可,无需定位 skill 目录。
本次会话自检通过后无需重复;下一次新会话再检一次。
按顺序执行以下脚本(使用绝对路径):
首先定位 skill 目录。skill 可能安装在不同位置,按以下优先级依次检测:
for CANDIDATE in \
"$HOME/.claude/skills/trail-research/scripts" \
".claude/skills/trail-research/scripts" \
"$HOME/.cursor/skills/trail-research/scripts" \
".agents/skills/trail-research/scripts" \
"$HOME/.agents/skills/trail-research/scripts"; do
if [ -f "$CANDIDATE/generate_risk_plan.py" ]; then
SKILL_DIR="$CANDIDATE"
break
fi
done
OUTPUT_DIR="{用户当前目录}/{路线或活动名称}"
DATA_FILE="$OUTPUT_DIR/trail_research_data.json"
python "$SKILL_DIR/generate_risk_plan.py" "$DATA_FILE" "$OUTPUT_DIR/{活动名称}_风险预案.xlsx"
python "$SKILL_DIR/generate_leader_plan.py" "$DATA_FILE" "$OUTPUT_DIR/{活动名称}_领队计划.docx"
python "$SKILL_DIR/generate_registration_form.py" "$DATA_FILE" "$OUTPUT_DIR/{活动名称}_备案表.docx"
脚本路径: skill 安装位置因 agent 而异,上面的自动检测脚本会依次尝试 Claude Code 用户级/项目级、Cursor、Hermes/通用 agent 等常见路径,找到第一个有效路径后使用。
5.3 交付
向用户报告生成结果,所有文件位于同一文件夹:
- 输出文件夹 —
{用户当前目录}/{路线或活动名称}/
- 调研报告 (.md) — 保存路径和大小
- JSON 数据 (.json) — 保存路径和大小
- 领队计划 (.docx) — 保存路径和大小
- 备案表 (.docx) — 保存路径和大小
- 风险预案 (.xlsx) — 保存路径和大小
- 提醒用户检查并补充:
- 报名二维码(需协会生成)
- 配图(路线图、高程图、风景照)
- 审批签字
5.4 迭代
询问用户是否需要调整任何文件的内容。如需修改:
- 更新调研报告 .md(直接编辑活动文件夹中的文件)
- 更新 JSON 数据文件(同目录下的
trail_research_data.json)
- 重新运行对应的生成脚本,输出到同一活动文件夹
- 确认修改结果
北大徒协格式约定
当用户需要按北大徒协模板输出时,遵循以下规范(详见 references/handbook.md 精要版和 references/leader-handbook-full.md 完整版):
- 路线分级:
路程(km) + 爬升(m)/100,特殊路况 +1 级,重装 +1 级
- 领队配比: 初级/中级 37座 3正式+2实习,50座 4正式+2实习
- 单日补贴: 主领队300元,副领队150元,总额≤750元
- 车辆规则: 单日最少38座,露营座位数≈人数×1.5
- 接驳顺序: 西边(门头沟) → 医学部→本部→万柳;东边(密云怀柔) → 万柳→本部→医学部
- 备案表时间线: 活动前一周周二前提交备案表和领队计划
- 费用构成: 车费+领队补贴+免活动费+飘带5元/条+保险2元/人/天
- 风险预案格式: 标准8-9行风险矩阵 + 右侧色标图例
- 备案表审批区: 社长/指导教师/挂靠单位/校团委 四级签字
注意事项
- 不要假设信息: 任何不确定的信息(领队名单、具体日期、人数等)必须向用户确认,标注为
[待确认] 而非填入虚构数据
- 搜索要广泛: 不要只搜一次就下结论,多平台交叉验证
- 注重近期信息: 路况、封山等时效性信息优先搜索近 1 个月的内容
- 验证时效性信息: 大交通班次/票价、边防证/入山证政策、景区门票价格等易过时信息,必须搜索当前年份最新公告验证
- 关注风险: 优先搜索吐槽贴("劝退""排雷""提醒"),了解真实风险
- 尊重版权: 配图标注来源,轨迹注明出处
- 天气用 Windy/莉景: 不要用系统天气软件查山区天气
- 调研报告是基础: Phase 3 的 Markdown 调研报告是所有后续文件的数据基础,务必详尽
- 输出统一管理: 所有产出文件(.md / .json / .docx / .xlsx)必须放在同一活动文件夹中
- 坐标可搜索: 起终点坐标必须能在地图应用中直接搜索定位,不能只写模糊的地名