Claude-skill-registry code-feeder
当用户需将代码提供给外部 AI(重构/分析/修复)时激活。自动收集代码、记录意图、生成上下文文档。支持增量合并。
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/code-feeder-skill-ecrypted-data-code-feeder-skill" ~/.claude/skills/majiayu000-claude-skill-registry-code-feeder && rm -rf "$T"
manifest:
skills/data/code-feeder-skill-ecrypted-data-code-feeder-skill/SKILL.mdsource content
Code Feeder Skill
目标:生成包含用户意图和关键代码的高质量 Markdown 文档。 脚本路径:
~/.claude/skills/code-feeder/scripts/ (若不存在则搜索 code_collector.py)
🧠 核心法则
- 意图第一:必须询问收集目的(如"重构登录"),并写入文档。
- 精准采集:根据意图挑选代码。小文件批量导入,大文件提取片段。
- 闭环补全:工具反馈"跳过"的文件,必须用
模式提取关键片段补全。--append
⚙️ 模式决策
| 模式 | 标志 | 适用场景 | 关键参数 |
|---|---|---|---|
| Batch | | 小文件/配置文件 | |
| Snippets | | 大文件(>500KB)/特定函数 | |
| Append | | 补全漏掉的文件/增量更新 | (配合 Snippets 使用) |
📋 执行流程
1. 确认意图
若未提供,询问:"收集代码的具体目的是什么?关注哪些模块?"
2. 检测与规划
python {script_dir}/detect_project.py "{project_path}"
根据输出忽略无关目录,聚焦核心文件。
3. 执行收集
A. 批量模式 (首选)
python {script_dir}/code_collector.py "{project_path}" \ --mode batch --files src/main.py config.json ... \ --intent "{user_intent}" --output "ctx.md"
B. 片段模式 (针对大文件/特定逻辑)
支持类型:
, function
, class
, methodlines
python {script_dir}/code_collector.py "{project_path}" \ --mode snippets --target "src/heavy.js" \ --ranges '[{{"type":"function","name":"login"}}, {{"type":"lines","start":1,"end":50}}]' \ --intent "{user_intent}" --output "ctx.md"
4. 补全 (Critical)
检查输出中的 "⚠️ 跳过的文件"。若文件重要,立即用追加模式提取:
python {script_dir}/code_collector.py "{project_path}" \ --mode snippets --target "skipped_file.py" \ --ranges '[{{"type":"function","name":"core_logic"}}]' \ --output "ctx.md" --append
5. 审核与手动修补
Read 生成的文档,检查完整性与正确性:
- 关键缺失:若工具无法提取(如复杂正则失效)但代码至关重要,必须手动 Read 文件内容,并按文件中同样的格式手动追加到对应区域的位置,并更新相关目录树和统计信息。
- 结构检查:确认目录树和统计信息正常。
6. 交付
告知用户文档路径,并确认已包含意图和核心逻辑。
⚠️ 异常指南
- 二进制文件:仅在文档中注明存在,不可读取。
- 提取失败:若函数提取失败,降级使用
行号范围提取。lines