alzenkastrati/sgrx

GitHub: alzenkastrati/sgrx

SGRX 是一款以证据为驱动的源码图研究工具,帮助开发者和 AI 助手高效理解代码库内部工作原理、追踪依赖实现并生成有据可查的技术方案。

Stars: 1 | Forks: 0

# SGRX **源码图研究浏览器(Source Graph Research eXplorer)** [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/alzenkastrati/sgrx/actions/workflows/ci.yml) [![集成](https://static.pigsec.cn/wp-content/uploads/repos/cas/92/920dc6a332969520cddd8f305e5d752d68a07e8bc5c421ff26e0c8a78858c670.svg)](https://github.com/alzenkastrati/sgrx/actions/workflows/integration.yml) [![许可证:MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) 🌐 [德语](README.de.md) SGRX 以便携的 Agent Skill 和中立于环境的 CLI 工作流形式发布。它研究**软件应该如何构建**,帮助理解**现有代码的实际工作原理**,追踪依赖关系,比较基准仓库中的实践,并创建有证据支持的实现和现代化计划。相同的 skill 可在兼容的 AI agent、编辑器扩展和内部开发工具中通用。 像平常一样提问。SGRX 会找到相关的 AI 论文和精确的 GitHub 实现,研究它们的源代码,并返回一份带有证据的实用计划。 当前版本:**0.5.1** ## 我可以问什么? ``` $sgrx Research the best way to build a local voice assistant. Compare current papers and real GitHub projects, then give me a step-by-step implementation plan. ``` ``` $sgrx Show me how the zod version in this project validates email addresses. Trace our call into the exact library source and explain what could break. ``` ### 示例:更快地理解遗留代码库 将此提示词提供给任何已连接到 SGRX CLI 的 AI 助手,无论它使用的是什么环境: ``` Use SGRX to analyze this repository in standard mode. The goal is to help a new developer understand the codebase quickly. Create a short Markdown report that identifies: 1. the most important modules and their responsibilities; 2. the main execution flows from entry points to business logic; 3. important external dependencies and how they are used; 4. critical or hard-to-maintain areas; and 5. the three most useful next steps for testing or modernization. Support each finding with file and line references. Do not change the code. ``` 这有助于减少在进行更改前理解大型、长期运行的系统所需的时间。 ### 选择合适的工作流 | 目标 | 命令 | |---|---| | 检查本地工具是否可用 | `doctor` | | 获取精确的依赖版本 | `resolve` | | 构建隔离的源码索引 | `index` | | 将应用程序的用法追踪到依赖源码中 | `analyze` | | 从基准仓库迁移实践 | `audit` | | 比较两个依赖版本 | `compare` | | 对论文和仓库进行排名并创建构建计划 | `research` | | 重新渲染已保存的结果 | `report` | 使用 `--dry-run` 检查命令和输出范围,而无需运行研究工具。当其他工具需要处理结果时,使用 `--json`。 ## 工作原理 ``` flowchart LR A["You ask a question"] --> B["SGRX researches"] B --> C["Current AI papers"] B --> D["Exact repository versions"] C --> E["Source and knowledge graphs"] D --> E E --> F["Evidence-backed answer"] F --> G["Step-by-step build plan"] ``` SGRX 协调三个工具: | 工具 | 简单任务 | |---|---| | **OpenSrc** | 获取精确的源代码版本。 | | **Graphify** | 绘制架构和关系。 | | **GitNexus** | 追踪函数、调用者、流程和变更风险。 | 这有助于开发人员和 AI 助手避免凭文档猜测、检查错误版本或向模型发送过多源代码。 ## 为什么它能使用更少的 token SGRX 会在模型读取证据**之前**将其缩小范围: - 它对论文和仓库进行排名,而不是分析每个候选项。 - `quick` 和 `standard` 模式构建仅包含代码的快照。 - 图查询返回相关的文件、函数和关系——而不是整个仓库。 - 保存的索引和检查点避免重复已完成的研究。 - token 预算限制了进入语义分析的材料数量。 在一次 SGRX 自我研究中,经过过滤后,所选语料库使用了 **5,499 个 Graphify 输入 token**。这是一个观察到的工作流示例,不保证节省量,也不是对总模型/API 使用量的测量。实际结果取决于问题、仓库和研究模式。 ## 安装 SGRX 遵循开放的 Agent Skills 格式:每个兼容的客户端都会加载相同的 `skills/sgrx/SKILL.md` 和捆绑资源。`agents/openai.yaml` 文件仅添加了 Codex UI 元数据;它不是白名单,其他客户端会安全地忽略它。 Skill 来源:https://github.com/alzenkastrati/sgrx/tree/main/skills/sgrx ### 为所有受支持的 agent 安装 在克隆的代码检出中,运行不带 `--target` 的便携式安装程序。它会安装到所有目标: ``` # Windows py -3 skills/sgrx/scripts/install_skill.py # macOS 和 Linux python3 skills/sgrx/scripts/install_skill.py ``` 预览目标位置而不复制任何内容: ``` py -3 skills/sgrx/scripts/install_skill.py --dry-run ``` | 安装路径 | Agent 客户端 | |---|---| | `~/.agents/skills/sgrx` | Cursor, GitHub Copilot, Gemini CLI, OpenCode, Windsurf, Amp | | `~/.codex/skills/sgrx` | Codex | | `~/.claude/skills/sgrx` | Claude Code | | `~/.cline/skills/sgrx` | Cline | 通过重复使用带 `shared`、`codex`、`claude` 或 `cline` 的 `--target` 来仅安装选定目标。现有安装会在原处更新,不相关的 skill 保持不变。 ### 直接使用 CLI Agent 和开发工具也可以直接调用中立于环境的 CLI。在 Windows 上使用 `py -3`,这样 Microsoft Store 的 `python` 别名就不会拦截该命令: ``` # Windows py -3 skills/sgrx/scripts/sgrx.py doctor py -3 skills/sgrx/scripts/sgrx.py --help # macOS 和 Linux python3 skills/sgrx/scripts/sgrx.py doctor python3 skills/sgrx/scripts/sgrx.py --help ``` 将 CLI 连接到您已经在使用的 agent 或开发工作流,然后使用上面的提示词作为任务契约。 例如,追踪本项目如何使用已安装的 npm 依赖项: ``` py -3 skills/sgrx/scripts/sgrx.py analyze --registry npm --package zod --project . --question "How does this project call zod, and what implementation path handles those calls?" ``` ### 审计来自其他仓库的实践 当其他仓库是基准或工作流目录而不是应用程序依赖项时,使用 `audit`: ``` py -3 skills/sgrx/scripts/sgrx.py audit --registry github --benchmark owner/workflow-catalog --ref 0123456789abcdef0123456789abcdef01234567 --project . --question "Which workflow and validation practices should this project adopt?" ``` 审计模式将基准和使用者索引保持分开,默认排除图像和媒体,并在达到文件或 token 预算上限时于 Graphify 运行前停止。它分别查询生命周期、上下文、分发、验证和可靠性,然后写入证据映射、经过验证的报告、可重用的检查点,以及一个紧凑的 `RUN_MANIFEST.md` 交接文件。 通过重复使用带有仓库相对路径的文件或目录的 `--include-path` 或 `--exclude-path` 来缩小大型基准的范围,而不增加预算,例如 `--include-path reports --include-path development-workflows --exclude-path reports/archive`。 审计的默认设置是有意保持保守的:`code-docs` 配置文件会选择代码、文档和论文;图像和媒体保持排除状态;最多有 300 个文件和估计 300,000 个 token 可能进入 Graphify。如果在超出限制时,预检会报告 `NARROW_REQUIRED` 并在提取前停止。选择 `--corpus-profile code` 仅获取源代码,或者在确实需要视觉和媒体证据时选择 `--corpus-profile full`。 每次完成的审计都会在 `.sgrx` 下写入一个隔离的、可恢复的证据包:解析、语料库计划、索引清单、分面查询、索引上下文、证据映射、验证结果、`REPORT.md`、`RUN_MANIFEST.md` 和 `events.jsonl`。重复相同的请求会重用匹配的索引和查询检查点。 ## 环境要求 - Python 3.10+ - Node.js 24+ - Git - OpenSrc 0.7.3+ - Graphify 0.9.12+ - GitNexus 1.6.5+ 安装这三个研究工具: ``` npm install --global opensrc@0.7.3 gitnexus@1.6.5 # Windows py -3 -m pip install graphifyy==0.9.12 # macOS 和 Linux python3 -m pip install graphifyy==0.9.12 ``` 检查一切是否就绪: ``` # Windows py -3 skills/sgrx/scripts/sgrx.py doctor # macOS 和 Linux python3 skills/sgrx/scripts/sgrx.py doctor ``` ## 我会得到什么? - 针对原始问题的简短回答。 - 实际检查过的论文和仓库版本。 - 架构、文件和函数之间基于图的支持链接。 - 细分为小型工作包的详细实施计划。 - 对事实、推论和未解答问题的清晰标注。 - 可见的验证状态和用于继续运行的紧凑交接清单。 SGRX 将证据标记为: - `EXTRACTED` — 直接由源代码或文档支持。 - `INFERRED` — 合理的推论,但未经证实的运行时路径。 - `AMBIGUOUS` — 需要更多证据。 ## 默认安全 下载的仓库被视为不受信任的数据。SGRX 不会运行其代码、测试、构建、安装脚本或指令。它将项目保持隔离,并且不修改获取的源代码。 SGRX 默认进行分析。只有在您明确要求实施时,它才会更改您的应用程序。 ## 恢复与故障排除 - 中断后再次运行相同的研究请求;已完成的检查点会被重用。 - 审计和分析运行会在其隔离的 `.sgrx` 范围下写入持久的解析、语料库、索引、查询、证据、验证、报告和交接工件。 - 在 Windows 上,未完成的长路径检出会在启用了 `core.longpaths` 的隔离短缓存中重试。全局 Git 设置不会被更改。 - 纯论文或文档图需要受支持的 Graphify 语义后端。如果没有,SGRX 会将该论文图报告为 `PARTIAL`,而不是凭空捏造关系。 - 在 Windows 上,SGRX 会将 GitNexus 通用的缺失 FTS 警告分类为不可用的 FTS 运行时路径,并且不会重新生成完整的索引。关键字搜索将保持明显的降级状态,而 Graphify 和符号化 GitNexus 的上下文/影响查询仍然可用。在其他平台上,确实缺失的 FTS 索引会在隔离快照内被精准重建一次。 - Graphify 的零节点文件、提取问题和跨块 ID 冲突属于结构化的健康检查失败,不能再作为健康状态通过验证门禁。 - CLI 本身不会静默浏览网页。Codex 会发现当前的论文和仓库;本地 CLI 会对记录的候选项进行排名和分析。 ## 更多详情 - [研究模式](skills/sgrx/references/research-mode.md) - [工具路由](skills/sgrx/references/tool-routing.md) - [证据模型](skills/sgrx/references/evidence-model.md) - [输出模式](skills/sgrx/references/report-schema.md) - [示例](skills/sgrx/references/examples.md) - [更新日志](CHANGELOG.md) - [贡献](CONTRIBUTING.md) - [安全政策](SECURITY.md) SGRX 基于 [MIT 许可证](LICENSE) 发布。
标签:AI智能体, MITM代理, SOC Prime, 云安全监控, 代码分析, 凭证管理, 开发工具, 源码图谱, 网络安全研究, 逆向工具, 静态分析