与 AI 助手配合使用
codeknit 提供了现成的技能,可教会 AI 编码助手如何有效使用它。这些技能使助手能够提取代码结构、检测重复代码并执行结构分析,而无需手动提示。
codeknit 提供了两个技能:
codeknit-parse:教会助手提取代码结构(函数、类、方法、变量)及关系(调用、继承、包含)到.skt文件中。codeknit-fingerprint:教会助手使用模糊哈希检测重复和近似重复代码。
每个技能都包含文档,助手可按需阅读以了解用法、标志、输出格式和工作流程。
使用安装助手将技能目录复制到助手的技能文件夹中。安装程序仅下载捆绑的技能文件,因此无需克隆仓库。
为 Codex、Kiro 和 Claude Code 安装:
curl -fsSL https://raw.githubusercontent.com/awslabs/codeknit/main/scripts/install-skills.sh | bash为单个助手安装:
curl -fsSL https://raw.githubusercontent.com/awslabs/codeknit/main/scripts/install-skills.sh | bash -s -- --assistant codexcurl -fsSL https://raw.githubusercontent.com/awslabs/codeknit/main/scripts/install-skills.sh | bash -s -- --assistant kirocurl -fsSL https://raw.githubusercontent.com/awslabs/codeknit/main/scripts/install-skills.sh | bash -s -- --assistant claude从本地检出时,可以使用 Makefile 助手:
make skills-install-dry-runmake skills-install安装程序默认跳过已存在的技能目录。要替换它们,请添加 --force:
curl -fsSL https://raw.githubusercontent.com/awslabs/codeknit/main/scripts/install-skills.sh | bash -s -- --assistant all --force安装后,助手将自动知道如何调用 codeknit 命令、选择适当的标志并解释 .skt 输出。
每个技能的作用
Section titled “每个技能的作用”codeknit-parse
Section titled “codeknit-parse”codeknit-parse 技能教会助手:
- 使用适当的标志运行
codeknit parse以应对不同场景 - 选择正确的输出模式:
directory-flat(默认)适用于大多数项目inline适用于单个文件或小型输入directory-tree用于镜像源代码结构
- 读取并解释
.skt输出文件,包括[symbols]、[edges]和可选的[dict]部分 - 使用结构化数据进行重构、依赖映射和代码审查
- 运行
codeknit graph analyze以获取更深入的代码质量洞察(循环依赖、枢纽符号、god classes 等)
codeknit-fingerprint
Section titled “codeknit-fingerprint”codeknit-fingerprint 技能教会助手:
- 使用
codeknit fingerprint进行重复检测、DRY 审计和重构识别 - 选择适当的相似度范围(
--min-similarity、--max-similarity) - 读取
[duplicates]部分以识别近似重复代码 - 理解指纹衡量的是结构形状,而非语义意图
- 在需要时使用
--rerank与 Ollama 嵌入来减少误报
- 要求助手分析代码库结构
- 助手运行
codeknit parse ./src并读取生成的.skt文件 - 助手回答结构性问题:依赖关系、调用链、死代码
- 为了获得更深入的洞察,助手运行
codeknit graph analyze ./src并解释报告
[symbols]## src/service.goS1 type/struct L5-L8 AuthService {}S2 callable/method L10-L15 Authenticate(token: string) {receiver=*AuthService}
[edges]S1 --contains--> S2- 要求助手查找重复代码
- 助手运行
codeknit fingerprint ./src - 助手读取输出中的
[duplicates]部分 - 助手调查被标记的代码对并提出合并建议
[duplicates]S1, S2: 87% 相似度S3, S4: 76% 相似度- 对于结构性问题,始终读取
.skt文件而非原始源代码——它们以紧凑、可靠的格式包含提取的结构 - 使用
codeknit graph analyze揭示代码质量问题,如循环依赖、枢纽符号和深度继承链 - 在大型重构前运行
codeknit fingerprint以识别应合并的复制粘贴代码 .skt格式旨在高效利用 token,非常适合 LLM 上下文窗口- 在处理大型代码库时,使用
--minify进一步减少 token 使用量