semcod/code2llm

GitHub: semcod/code2llm

高性能 Python 代码流分析工具,通过优化的 TOON 格式提取 CFG、DFG、调用图等结构信息,为 LLM 辅助代码理解和重构提供上下文。

Stars: 0 | Forks: 2

# code2llm - 生成的分析文件 ## AI 成本追踪 ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.5.168-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green) ![AI Cost](https://img.shields.io/badge/AI%20Cost-$7.50-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-86.8h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey) - 🤖 **LLM usage:** $7.5000 (240 commits) - 👤 **Human dev:** ~$8680 (86.8h @ $100/h, 30min dedup) 生成于 2026-05-26,使用 [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next) 此目录包含由 `code2llm` 生成的项目完整分析。每个文件在理解、重构和记录代码库方面都有特定的用途。 # noqa: E501 ## 📁 生成文件概述 当你运行 `code2llm ./ -f all` 时,将创建以下文件: ### 🎯 核心分析文件 | 文件 | 格式 | 用途 | 关键洞察 | |------|--------|---------|--------------| | `evolution.toon.yaml` | **YAML** | **📋 重构队列** - 优先改进项 | 需要 0 个重构操作 | | `map.toon.yaml` | **YAML** | **🗺️ 结构图谱 + 项目页眉** - 模块、导入、导出、签名、统计、警报、热点、趋势 | 项目架构概述 | ### 🤖 LLM 就绪文档 | 文件 | 格式 | 用途 | 使用场景 | |------|--------|---------|----------| | `context.md` | **Markdown** | **📖 LLM 叙述** - 架构摘要 | 粘贴到 ChatGPT/Claude 中进行代码分析 | ### 📊 可视化 | 文件 | 格式 | 用途 | 描述 | |------|--------|---------|-------------| | `calls.mmd` | **Mermaid** | **📞 调用图** | 函数依赖关系(仅限边) | ## 🚀 快速开始命令 ### 基础分析 ``` # 快速健康检查(仅限 TOON 格式) code2llm ./ -f toon # 生成所有格式(创建这些文件的操作) code2llm ./ -f all # 仅生成 LLM-ready 上下文 code2llm ./ -f context ``` ### 性能选项 ``` # 针对大型项目的快速分析 code2llm ./ -f toon --strategy quick # 内存受限分析 code2llm ./ -f all --max-memory 500 # 跳过 PNG 生成(更快) code2llm ./ -f all --no-png ``` ### 重构焦点 ``` # 获取重构建议 code2llm ./ -f evolution # 关注特定 code smells code2llm ./ -f toon --refactor --smell god_function # 数据流分析 code2llm ./ -f flow --data-flow ``` ## 📖 了解每个文件 ### `analysis.toon` - 健康诊断 **用途**:快速概览代码健康问题 **关键部分**: - **HEALTH**:严重问题 (🔴) 和警告 (🟡) - **REFACTOR**:优先重构操作 - **COUPLING**:模块依赖和潜在循环 - **LAYERS**:包复杂度指标 - **FUNCTIONS**:高复杂度函数 (CC ≥ 10) - **CLASSES**:需要关注的复杂类 **示例用法**: ``` # 查看健康问题 cat analysis.toon | head -30 # 检查重构优先级 grep "REFACTOR" analysis.toon ``` ### `evolution.toon.yaml` - 重构队列 **用途**:逐步重构计划 **关键部分**: - **NEXT**:立即执行的操作 - **RISKS**:潜在的破坏性变更 - **METRICS-TARGET**:成功标准 **示例用法**: ``` # 获取重构计划 cat evolution.toon.yaml # 跟踪进度 grep "NEXT" evolution.toon.yaml ``` ### `flow.toon` - 遗留数据流分析 **用途**:了解系统中的数据流动(遗留 / 显式启用) **关键部分**: - **PIPELINES**:数据处理链 - **CONTRACTS**:函数输入/输出契约 - **SIDE_EFFECTS**:具有外部影响的函数 **示例用法**: ``` # 查找 data pipelines grep "PIPELINES" flow.toon # 识别 side effects grep "SIDE_EFFECTS" flow.toon ``` ### `map.toon.yaml` - 结构图谱 + 项目页眉 **用途**:高层架构概述以及紧凑的项目页眉 **关键部分**: - **MODULES**:所有模块及其基本统计信息 - **IMPORTS**:依赖关系 - **EXPORTS**:公共 API 表面和签名 - **HEADER**:统计、警报、热点、演进趋势 **示例用法**: ``` # 查看项目结构 cat map.toon.yaml | head -50 # 查找 public APIs grep "SIGNATURES" map.toon.yaml ``` ### `project.toon.yaml` - 紧凑分析视图 **用途**:从 project.yaml 数据生成的紧凑模块视图 **状态**:按需从统一的 project.yaml 生成的遗留视图 **示例用法**: ``` # 查看紧凑项目结构 cat project.toon.yaml | head -30 # 查找最大文件 grep -E "^ .*[0-9]{3,}$" project.toon.yaml | sort -t',' -k2 -n -r | head -10 ``` ### `prompt.txt` - 可直接发送的 LLM Prompt **用途**:预格式化的 prompt,列出用于 LLM 对话的所有生成文件 **生成方式**:当 `code2llm` 使用源路径运行并请求 `-f all`(包含 `--no-chunk`)或 `code2logic` 时写入 # noqa: E501 **内容**: - **文件部分**:列出所有现有的生成文件及其描述,包括由 `-f all` 生成的 `project.toon.yaml` # noqa: E501 - **源文件部分**:突出显示重要的源文件,例如 `cli_exports/orchestrator.py` - **缺失部分**:显示哪些文件未生成(如果有) - **任务部分**:包含具体执行说明的重构简报,而不仅仅是分析 - **优先级顺序部分**:取决于状态的重构优先级,从阻碍项开始,然后是架构清理 # noqa: E501 - **要求部分**:建议更改的指南 **示例用法**: ``` # 查看 prompt cat prompt.txt # 复制到剪贴板并粘贴到 ChatGPT/Claude cat prompt.txt | pbcopy # macOS cat prompt.txt | xclip -sel clip # Linux ``` ### `context.md` - LLM 叙述 **用途**:可随时粘贴的 AI 助手上下文 **关键部分**: - **Overview**:项目统计信息 - **Architecture**:模块分解 - **Entry Points**:公共接口 - **Patterns**:检测到的设计模式 **示例用法**: ``` # 复制到剪贴板供 LLM 使用 cat context.md | pbcopy # macOS cat context.md | xclip -sel clip # Linux # 配合 Claude/ChatGPT 进行代码分析 ``` ### 可视化文件 (`*.mmd`, `*.png`) **用途**:直观理解代码结构 **文件**: - `flow.mmd` - 带有复杂度颜色的详细控制流 - `calls.mmd` - 简单的调用图 - `compact_flow.mmd` - 高层模块视图 - `*.png` - 预渲染图像 **示例用法**: ``` # 查看图表 open flow.png # macOS xdg-open flow.png # Linux # 在 Mermaid Live Editor 中编辑 # 将 .mmd 文件内容复制到 https://mermaid.live ``` ## 🔍 常见分析模式 ### 1. 代码健康评估 ``` # 快速健康检查 code2llm ./ -f toon cat analysis.toon | grep -E "(HEALTH|REFACTOR)" ``` ### 2. 重构规划 ``` # 获取重构队列 code2llm ./ -f evolution cat evolution.toon.yaml # 关注特定问题 code2llm ./ -f toon --refactor --smell god_function ``` ### 3. LLM 协助 ``` # 为 AI 生成上下文 code2llm ./ -f context cat context.md # 配合 Claude 使用:“Based on this context, help me refactor the god modules” ``` ### 4. 团队文档 ``` # 为团队生成所有文档 code2llm ./ -f all -o ./docs/ # 创建可视化图表 open docs/flow.png ``` ## 📊 解读指标 ### 复杂度指标 (CC) - **🔴 严重 (≥5.0)**:需要立即重构 - **🟠 高 (3.0-4.9)**:考虑重构 - **🟡 中 (1.5-2.9)**:监控复杂度 - **🟢 低 (0.1-1.4)**:可接受 - **⚪ 基本 (0.0)**:简单函数 ### 模块健康度 - **GOD Module**:过大(>500 行,>20 个方法) - **HUB**:高扇出(调用多个模块) - **FAN-IN**:高传入依赖 - **CYCLES**:循环依赖 ### 数据流指标 - **PIPELINE**:顺序数据处理 - **CONTRACT**:明确的输入/输出规范 - **SIDE_EFFECT**:外部状态修改 ## 🛠️ 集成示例 ### CI/CD 流水线 ``` #!/bin/bash # 在 CI 中分析代码质量 code2llm ./ -f toon -o ./analysis if grep -q "🔴 GOD" ./analysis/analysis.toon; then echo "❌ God modules detected" exit 1 fi ``` ### Pre-commit Hook ``` #!/bin/sh # .git/hooks/pre-commit code2llm ./ -f toon -o ./temp_analysis if grep -q "🔴" ./temp_analysis/analysis.toon; then echo "⚠️ Critical issues found. Review before committing." fi rm -rf ./temp_analysis ``` ### 文档生成 ``` # 为 README 生成文档 code2llm ./ -f context -o ./docs/ echo "## Architecture" >> README.md cat docs/context.md >> README.md ``` ## 📚 后续步骤 1. **审查 `analysis.toon`** - 识别严重问题 2. **检查 `evolution.toon.yaml`** - 规划重构优先级 3. **使用 `context.md`** - 获取 LLM 对复杂更改的协助 4. **参考可视化** - 了解系统架构 5. **跟踪进度** - 在更改后重新运行分析 ## 🔧 高级用法 ### 自定义分析 ``` # 包含所有 insights 的深度分析 code2llm ./ -m hybrid -f all --max-depth 15 -v # 性能优化 code2llm ./ -m static -f toon --strategy quick # 专注于重构 code2llm ./ -f toon,evolution --refactor ``` ### 输出自定义 ``` # 分离输出目录 code2llm ./ -f all -o ./analysis-$(date +%Y%m%d) # 将 YAML 拆分为多个文件 code2llm ./ -f yaml --split-output # 分离孤立的函数 code2llm ./ -f yaml --separate-orphans ``` **生成方式**:`code2llm ./ -f all --readme` **分析日期**:2026-05-25 **总函数数**:1312 **总类数**:143 **模块数**:427 有关 code2llm 的更多信息,请访问:https://github.com/tom-sapletta/code2llm ## 许可证 基于 Apache-2.0 许可。
标签:LLM辅助开发, LNA, Python, SOC Prime, 代码可视化, 代码流图, 开发工具, 无后门, 逆向工具, 错误基检测, 防御加固, 静态代码分析