SuperAPI AI 工具集

fast-context

编程与开发

查看项目

更新于 10-16 07:45

技能介绍

用途

Fast Context 用于代码库感知工作的第一遍检索:定位实现路径、追踪流程、查找测试,并在产出代码或项目相关建议之前收集所需的完整定义。它适合在代码修改、架构建议、缺陷修复、测试计划或依赖项目特定行为的解释之前使用,也适合相关文件未知或功能跨越多个模块的情况,以及需要完整定义、签名、调用点、配置、路由、schema 或测试的场景。

对于纯对话任务、已知文件的微小修改,或第三方库文档查询,应跳过此技能;查询外部 API 最新文档可使用 Context7 等文档检索技能。

主要能力

该技能直接运行已安装技能目录中的 scripts/fast-context-search.mjs。脚本使用来自上游 v1.3.0-beta.2 源码的内置 Fast Context 核心逻辑与 Windsurf Devstral,但不要求安装或启用 Fast Context MCP 服务器。它不替代精确的本地检查;应使用返回的文件路径和 grep 关键词来驱动针对性的 rg、sed 和文件读取。

使用方式

工作流程如下:

  1. 构建一个自然语言查询,说明用户目标并请求所需的精确上下文,优先使用“Where”“What”“How”式问题。
  2. 解析已安装的技能目录,运行 node <skill-directory>/scripts/fast-context-search.mjs,将 --project 设为项目根目录的绝对路径,--query 设为自然语言搜索查询。
  3. 阅读返回的文件范围,并使用建议的 grep 关键词配合本地工具检查精确的定义。
  4. 执行完整性检查:确保所有相关的类、函数、变量、类型、配置、路由、调用点和测试都已识别,并带有完整签名。
  5. 如有遗漏,用缺失的概念、符号或流程递归地再次查询 Fast Context。
  6. 如果检索后仍存在歧义,在改变行为之前向用户提出引导性问题。

默认命令:

node /path/to/installed/fast-context/scripts/fast-context-search.mjs
--project "/absolute/path/to/project"
--query "Where is <feature or behavior> implemented, and what full definitions, signatures, call sites, config, and tests are relevant to <user goal>?"
--max-results 10
--max-turns 3
--tree-depth 0
--exclude ".git,node_modules,dist,build,coverage"

参数建议:聚焦符号查找时 max_results 用 3-5,功能追踪用 10-20,广泛探索用 20-30;快速查找时 max_turns 用 1,复杂跨模块追踪用 4-5。

查询模式示例:

  • 定位实现:Where is <feature> implemented? Include entry points, core functions/classes, data types, config, and tests.
  • 追踪流程:How does <user action or API call> flow through the codebase from entry point to persistence/output? Include full definitions and call sites.
  • 准备变更:What code must change to <requirement>? Find current behavior, extension points, validation, tests, and adjacent risks.
  • 查找测试:What tests cover <behavior>, and where should new coverage be added? Include fixtures and helpers.

调优与回退

  • 结果过浅时,增加 max_turns 或 max_results,或查询更窄的符号或流程。
  • 仓库映射过大时,减少 tree_depth、添加 exclude_paths,或使用 repo_map_mode: "bootstrap_hotspot"。
  • 认证失败时,用同一脚本加 --check-key 验证本地 Windsurf 密钥发现,然后在 Windsurf 登录后或设置 WINDSURF_API_KEY 后重试。
  • 如果用户明确需要密钥,可用 --print-key 在本地打印,或用 --key-env 打印当前 shell 的 export WINDSURF_API_KEY=... 命令。输出应视为机密。
  • 缺少 Node 依赖时,在已安装的 Fast Context 技能目录中运行 npm install。
  • 脚本不可用或仍然失败时,简要说明并继续使用本地 rg --files、rg 和针对性文件读取。

限制

该技能不替代精确的本地检查,需配合本地工具核查。它不适用于纯对话任务、已知文件的微小修改或第三方库文档查询。关于脚本的精确参数契约、响应结构和调优说明,仅在需要时阅读 references/script-contract.md。