Skill_Seekers 本地仓库技能提取实战:基于 Unity C 项目的 v2.1.1 无限文件分析与深度代码解析边界测试
Skill_Seekers 本地仓库技能提取实战基于 Unity C# 项目的 v2.1.1 无限文件分析与深度代码解析边界测试【免费下载链接】Skill_SeekersConvert documentation websites, GitHub repositories, and PDFs into Claude AI skills with automatic conflict detection项目地址: https://gitcode.com/gh_mirrors/sk/Skill_Seekers导读本文基于 Skill_Seekers 项目 v2.1.1 时期针对 Unity 6 卡牌排序游戏 [deck_deck_go] 仓库执行的完整本地仓库提取测试报告原始文档见 docs/archive/historical/LOCAL_REPO_TEST_RESULTS.md系统梳理本地仓库模式local_repo_path如何突破 GitHub API 的 50 文件上限实现无限文件分析、如何精准识别 C#/ShaderLab/HLSL 等多语言项目并深入剖析测试中暴露的三类典型问题深度代码分析器不可用、Unity 库目录排除失效、单源技能无法进行 AI 增强。读完本文你将掌握 Skill_Seekers 本地仓库提取的完整配置范式、底层实现机制以及遇到同类问题时基于源码的定位与修复思路。一、测试背景为什么要做本地仓库提取Skill_Seekers 的核心能力之一是把 GitHub 仓库转化为 Claude AI Skill。在纯 API 模式下抓取受 GitHub REST API 限制未认证时每小时仅 60 次请求、认证后 5000 次且单次遍历文件树存在性能与配额风险源码中 github_scraper.py 的_extract_file_tree_github甚至设置了max_tree_items 5000的树节点上限以保护配额。v2.1.1 引入的本地仓库模式就是为了绕开这一约束先把仓库git clone到本地再直接遍历文件系统完成文件树构建与内容读取。本次测试选取的 deck_deck_go 是一个典型的文档密集 代码密集的 Unity 6 项目仓库共 626 个文件、93 个 C# 文件非常适合检验本地模式的五项核心目标无文件上限的全量文件分析深层次代码结构提取Unity 库目录Library/Temp/TextMesh Pro 等排除多语言检测准确性真实世界代码库下的端到端可用性。二、测试配置全解析一份针对 Unity 仓库的本地模式配置本次测试使用的统一配置merge_mode: rule-based如下{ name: deck_deck_go_local_test, sources: [{ type: github, repo: yusufkaraaslan/deck_deck_go, local_repo_path: /mnt/.../github/deck_deck_go, include_code: true, code_analysis_depth: deep, include_issues: false, include_changelog: false, include_releases: false, exclude_dirs_additional: [ Library, Temp, Obj, Build, Builds, Logs, UserSettings, TextMesh Pro/Examples Extras ], file_patterns: [Assets/**/*.cs] }], merge_mode: rule-based, auto_upload: false }结合 github_scraper.py 源码各关键字段的真实语义如下配置项默认值源码行为local_repo_path无传入后先os.path.expanduser展开路径再校验目录存在性若路径无效则打印Falling back to GitHub API mode并静默回退到 API 模式L214-L224code_analysis_depthdeep三档取值surface/deep/full。surface只生成文件树deep/full才初始化CodeAnalyzer并提取类、函数签名L274-L283exclude_dirs无替换模式若配置则完全覆盖内置默认排除目录而非追加L230-L235exclude_dirs_additional无追加模式与内置EXCLUDED_DIRS取并集L238-L244本次测试采用此模式file_patterns[]通过fnmatch.fnmatch逐文件匹配仅对命中模式的文件做深度签名提取L798-L801include_issues/include_changelog/include_releasestrue关闭后可显著节省 API 配额与输出体积文档密集型仓库建议显式关闭auto_upload-false时产物只落盘不自动上传值得注意的是内置默认排除目录EXCLUDED_DIRS本身就针对 Unity 工程做了优化L55-L100已包含Library、Temp、Logs、UserSettings、MemoryCaptures、Recordings同时覆盖 Unreal 的Intermediate/Saved、Godot 的.godot/.import及各类缓存目录。三、测试结果总览36/4090%测试项状态得分说明代码提取完整性✅ PASSED10/1093 个 C# 文件全部发现语言检测准确性✅ PASSED10/10C#、ShaderLab、HLSL 全部识别技能质量⚠️ PARTIAL6/10README 已提取但无代码结构分析性能✅ PASSED10/10快速、无限量分析总体结论本地仓库提取的数据管道文件发现、语言检测、README 提取、文件树构建完整可用而增值分析深度代码结构、AI 增强因代码分析器未就绪而缺位。这与源码中CODE_ANALYZER_AVAILABLE的导入保护机制见下文第五节完全吻合。四、测试 1代码提取完整性10/10验证方法与结果仓库总文件626文件树实际收录 679 项含目录节点仓库内 C# 文件find github/deck_deck_go/Assets -name *.cs返回 93提取数据github_data.json中同样解析出 93 个.cs文件覆盖率达 100%文件限制无本地仓库模式不受 API 50 文件限制。双模式文件树构建机制源码 github_scraper.py 的_extract_file_tree是双模式入口存在local_repo_path时走_extract_file_tree_localL641-L691否则走_extract_file_tree_github。本地模式用os.walk遍历并通过should_exclude_dir就地裁剪dirs列表阻止递归进入被排除目录——这正是文件系统遍历级排除的实现位置。发现的问题Unity 库排除未生效虽然本地文件树遍历支持排除但本次测试仍把 367 个 TextMesh Pro 文件含 Examples Extras收进了文件树。原因在于exclude_dirs_additional只在本地文件系统遍历os.walk时生效而文件树构建在爬取阶段依然可能经由 GitHub API 响应生成测试的仓库信息、语言统计仍来自 APIfile_patterns: [Assets/**/*.cs]会匹配Assets/下所有.cs文件包括 TextMesh Pro 等第三方库代码。推荐修复配置file_patterns: [ Assets/_Project/**/*.cs, Assets/_Recovery/**/*.cs ]把模式收敛到Assets/_Project、Assets/_Recovery等自有代码目录即可在不依赖目录排除的前提下滤掉 TextMesh Pro。从源码看file_patterns作用于_extract_signatures_and_tests的逐文件过滤阶段L798-L801是精确到文件的最强筛选手段。五、测试 2语言检测准确性10/10语言检测直接复用 GitHub API 的语言统计能力无需本地启发式推断语言文件数主要用途C#93游戏逻辑、Unity 脚本ShaderLab~15Unity Shader 定义HLSL~4高级着色语言验证命令与结果# 项目自有 C# 文件 find Assets/_Project -name *.cs | wc -l # → 58 # Shader 相关文件 find Assets -name *.shader -o -name *.hlsl -o -name *.shadergraph | wc -l # → 19该结果对 Unity 项目完全正确。需要说明的是GitHub API 语言统计提供的是仓库整体语言占比而深度签名提取阶段则另有基于扩展名的逐文件语言映射表Python/JS/TS/Kotlin/Java/C/C/C#/Go/Rust/Swift/Ruby/PHP/GDScript 等见 L750-L771二者在不同阶段各司其职。六、测试 3技能质量6/10部分通过生成的技能产物output/deck_deck_go_local_test/ ├── SKILL.md (1,014 bytes - basic template) ├── references/ │ └── github/ │ └── README.md (9.9 KB - full game README) ├── scripts/ (empty) └── assets/ (empty)SKILL.md 仅为含技能名、描述、来源列表与 README 引用的基础模板缺失代码示例、快速参考与增强内容。README 提取质量9,666 字符信息完整README 参考文件完整覆盖了游戏特性、规则序列/集合/王炸/计分、技术栈Unity 6、C# 9.0、URP、架构模式Command、Strategy、UDF、Smart Sort 算法说明、项目结构图与上手指南为下游 Agent 提供了高质量上下文。技能可用性评分维度评分说明文档覆盖8/10README 提取质量优秀代码示例0/10无任何代码样本导航能力5/10仅有文件树无代码结构增强能力0/10无参考文件可增强总体6/10基础可用但单薄深度分析为何失败CodeAnalyzer 导入保护机制测试日志中的两条关键警告WARNING:github_scraper:Code analyzer not available - deep analysis disabled WARNING:github_scraper:Code analyzer not available - skipping deep analysis其根因在 github_scraper.py 的导入保护try: from .code_analyzer import CodeAnalyzer CODE_ANALYZER_AVAILABLE True except ImportError: CODE_ANALYZER_AVAILABLE False logger.warning(Code analyzer not available - deep analysis disabled)CodeAnalyzer见 code_analyzer.py支持 Python AST、JS/TS、C/C、C#、Go、Rust、Java、Kotlin、Ruby、PHP、GDScript 等十余种语言解析一旦因依赖缺失或导入路径问题不可用_extract_signatures_and_tests会直接提前返回L744-L746导致code_analysis_depth: deep形同虚设。而统一管道 unified_scraper.py 的_run_c3_analysisL1745同样依赖本地克隆路径_clone_github_repoL453在未提供local_repo_path时自动 clone 供 C3.x 分析使用见 L535-L590。后果链无类/函数签名 → 无代码结构文档 → 无代码样本 → AI 增强因缺少参考内容被跳过。增强为何无法执行skill-seekers enhance output/deck_deck_go_local_test/ # → ❌ No reference files found to analyze对应 enhance_skill.py 的实现read_reference_files返回空即打印该错误并返回False。增强器期望references/下存在多个分类化的参考文件如api.md、getting_started.md等而统一抓取器只生成了github/README.md单个文件导致增强链路断裂。七、测试 4性能10/10关键指标处理文件679 项文件树/ 93 个 C# 文件执行时间约 35 秒完成 679 文件 ≈19 文件/秒限流不适用本地文件系统无 API 调用认证无需 token文件读取走本地磁盘。分阶段耗时阶段耗时内容Phase 1 抓取 30 秒仓库信息API README本地 文件树本地 679 项 语言APIPhase 2 冲突检测跳过单源无冲突Phase 3 合并跳过无冲突可合并Phase 4 技能构建 5 秒生成 SKILL.md 与 README 参考本地模式 vs API 模式维度本地模式API 模式胜出方文件上限无限50 文件 本地认证不需要需要 本地限流无5000 次/小时 本地速度快文件系统慢网络 本地代码分析本次不可用可用*API*注API 模式可拉取文件内容供分析器使用本地模式理论同样可读本地文件本报告结论基于 v2.1.1 实测状态。八、三大关键发现与根因发现 1深度代码分析器不可用影响高证据Code analyzer not available警告见上文第六节导入保护代码后果code_analysis_depth: deep无实际效果无签名、无样本、无法增强排查方向CodeAnalyzer 是否已实现导入路径是否正确依赖是否缺失v2.1.1 特性是否完整测试佐证tests/test_github_scraper.py 已覆盖local_repo_path场景的抓取路径tests/test_c3_integration.py 覆盖了本地路径驱动的 C3.x 分析可作为回归验证基础。发现 2Unity 库排除未生效影响中证据367 个 TextMesh Pro 文件仍进入文件树根因exclude_dirs_additional仅作用于本地文件系统遍历L654-L670不作用于 API 文件树构建变通方案使用file_patterns精确圈定Assets/_Project/**/*.cs测试佐证tests/test_excluded_dirs_config.py 明确验证了exclude_dirs_additional与local_repo_path组合下的排除行为且exclude_dirs替换模式优先级高于追加模式L168-L175。发现 3单源技能无法 AI 增强影响中命令skill-seekers enhance output/deck_deck_go_local_test/错误❌ No reference files found to analyze原因增强器期望多分类参考文件而单 README 场景不满足后果技能停留在基础模板无增强内容。九、修复建议路线图高优先级排查 CodeAnalyzer确认类实现与导入路径修复依赖用本地仓库复测deep分析目标产出函数/类签名修复 Unity 库排除文档中明确exclude_dirs_additional的行为边界推荐用file_patterns精确过滤并在预设presets中补充 Unity 项目示例配置让单源技能可增强增强器兼容单 README或将 README 章节切分为多分类参考文件或优雅跳过增强而不报错。中优先级补充性能指标记录开始/结束时间戳、吞吐文件/秒、内存占用输出总耗时提升技能质量将 README 章节解析为分类参考、架构图独立成文件、即使无深度分析也生成可导航的代码结构参考。低优先级进度提示展示文件树构建进度、实时文件计数与剩余时间估算。十、结论本地仓库模式的适用边界总体评分B90%。本地仓库提取成功证明了无限文件分析与多语言检测能力文件树构建与 README 提取表现完美但缺失代码分析器使深度代码结构提取这一首要目标未达成技能质量因此受限。生产环境使用建议✅适合文档密集型仓库README、指南齐全文件树发现与语言检测场景⚠️受限代码密集型分析无代码结构输出❌暂不可在分析器修复前不能替代 API 模式完成深度代码分析。后续行动项修复 CodeAnalyzer 可用性 → 用可用分析器复测深度分析 → 重跑本测试验证完整功能集 → 用可用示例更新文档。十一、测试产物与复现信息测试配置configs/deck_deck_go_local.json本次测试使用技能输出output/deck_deck_go_local_test/统一数据output/deck_deck_go_local_test_unified_data/github_data.json仓库克隆github/deck_deck_go/commited4d947893 个 C# 文件 / 626 个总文件测试日期2025 年 12 月 21 日执行者Claude CodeSonnet 4.5状态✅ 通过附文档化限制。如需复现可参照本文第二节配置将local_repo_path指向本地克隆并在安装完整依赖确保 code_analyzer.py 可导入后重跑统一管道配置校验可参考 config_validator.py 与 tests/test_unified_config_validator.py非法code_analysis_depth会被直接拒绝。【免费下载链接】Skill_SeekersConvert documentation websites, GitHub repositories, and PDFs into Claude AI skills with automatic conflict detection项目地址: https://gitcode.com/gh_mirrors/sk/Skill_Seekers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考