name: adk-x2p-c-analyzer-workflow
description: |
[EXCLUSIVE] 仅限高通 ADK (Qualcomm ADK) 专属 C/C++ 代码分析工作流。
触发条件:仅当用户要求分析代码,且当前项目存在 adk/、application_common/ 等高通特征目录时才可触发。
强排他约束:绝对禁止在非高通 ADK 项目中使用此技能及相关工具。
高通 ADK 代码分析与重构工作流
高通 ADK 是一个庞大且包含多个子项目(Headset, Earbuds 等)的 Monorepo。为了确保底层宏定义绝对准确并防止项目间的符号交叉污染,你必须严格执行以下交互式 Workflow:
第 -1 步:项目指纹确认 (Early Exit)
快速扫描工作区,如果找不到 adk/ 或 application_common/ 等特征目录,立刻停止执行本工作流,按普通 C 项目处理,绝不调用本插件工具。
第 0 步:跨平台路径预检 (极其重要)
判断运行环境。如果在 WSL 中运行但操作 Windows 盘符代码(如 /mnt/c/),传入工具的路径必须是 /mnt/ 开头的绝对路径,绝对禁止传入反斜杠 \。
第 1 步:寻找 ADK 根目录
向上寻找,找到包含 adk/、application_common/ 的最顶层代码库根目录。后续所有工具的 output_dir 或 root_dir 参数都必须使用这个根目录的绝对路径。
第 2 步:项目与配置决断 (Interactive Target Resolution)
在生成配置前,你必须按照以下优先级确定分析目标,绝不能盲目瞎猜:
探测环境变量(最高优先级): 静默执行系统命令检查终端是否设置了环境变量
ADK_ACTIVE_X2P。- 若有,完全信任该变量,直接跳到【第 3 步】,并将变量值作为
x2p_file_path。
- 若有,完全信任该变量,直接跳到【第 3 步】,并将变量值作为
交互式询问项目( Ask Project): 若无环境变量,请立刻调用
scan_adk_projects工具扫描根目录,获取所有.x2p列表。 立即停止工作流,将完整列表呈现给用户,并礼貌询问:“未检测到默认环境变量,请问您当前需要分析列表中的哪一个项目?”交互式询问配置(Ask Config): 用户明确选择项目后,立刻调用
get_x2p_configs工具分析该.x2p文件,获取所有配置列表。 将配置列表呈现给用户,并询问:“已选择项目,请问您需要激活以下哪种配置?(或直接回复回车使用默认配置)”
第 3 步:环境同步 (调用核心解析工具)
得到用户明确答复(或通过环境变量获取)后,必须强制调用 generate_clangd_config 工具:
x2p_file_path:确定的.x2p绝对路径。output_dir:第 1 步确定的 ADK 顶级根目录绝对路径。config_name:用户选择的配置名(若用户选择默认,则留空)。 (说明:该工具内置了极速的缓存校验机制。如果 x2p 未发生变更,工具会在毫秒级返回跳过提示,因此你不必担心重复调用会导致性能问题,每次分析前请安心调用以保障环境绝对同步。)
第 4 步:符号解析 (调用 Serena)
工具返回成功或“缓存命中”后,你才可以调用 serena MCP 进行深度的代码检索。由于配置已通过严格把关,Serena 将被完美锁定在当前选定的子项目环境中。