Community编程与开发github.com

Sunwood-ai-labs/SourceSage

使用 SourceSage CLI 生成适合 AI 处理的仓库文档。当 Codex 需要运行 `sage` 或 `sourcesage` 创建 `.SourceSageAssets/Repository_summary.md`,分析当前或其他本地仓库,切换输出语言(英语/日语),使用 `--lite` 保持摘要精简,更改输出目录,或通过 `--diff` 创建已弃用的标签差异发布报告时使用。

SourceSage 是什么?

SourceSage 是一个 CLI 工具,旨在为 Git 仓库生成结构化的、适合 AI 处理的摘要文件(`Repository_summary.md`)。它对于需要快速理解仓库结构、文件内容和代码统计的 AI 代理(如 Claude Code、Cursor 或 Codex)非常有用,无需扫描整个仓库。该工具支持通过 `--lite` 模式生成轻量摘要,通过 `-l ja` / `-l en` 切换输出语言为日语或英语,并能够分析当前或其他本地仓库。工作流涉及使用 `uv run sage` 从本地检出运行工具,避免依赖全局安装。验证步骤确保生成摘要后,AI 代理应读取并总结输出,而不仅仅是报告命令执行。此外,`--diff` 模式可生成已弃用的标签差异发布报告,但当前 CLI 主要功能集中在仓库摘要生成上。

兼容平台✓Claude Code✓Codex CLI~Cursor
npx skills add Sunwood-ai-labs/SourceSage

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

SourceSage CLI

概述

从此仓库检出中使用 SourceSage CLI 为当前仓库或其他本地仓库生成仓库摘要。

优先使用本地检出,而不是假设 sourcesage 已全局安装。在此仓库布局中,SourceSage 工具的根目录是包含此 SKILL.md 的目录。

工作流

  1. 确定 SourceSage 工具根目录和目标仓库。

    • 如果用户未指定其他仓库,则分析当前工作区。
    • 如果当前工作区不是 SourceSage 仓库,则从其自己的检出中通过 uv run --directory <sourcesage-root> sage ... 运行 SourceSage。
  2. 选择满足请求的最小命令。

    • 当前仓库摘要:uv run sage
    • 当前仓库摘要(精简模式):uv run sage --lite
    • 当前仓库摘要(日语):uv run sage -l ja
    • 其他仓库(默认输出在该仓库内):uv run --directory <sourcesage-root> sage --repo "<target-repo>"
    • 其他仓库(精简模式):uv run --directory <sourcesage-root> sage --repo "<target-repo>" --lite
    • 其他仓库(显式输出目录):uv run --directory <sourcesage-root> sage --repo "<target-repo>" -o "<output-dir>"
    • 已弃用的差异报告:uv run --directory <sourcesage-root> sage --repo "<target-repo>" --diff
  3. 每次运行后验证生成的工件。

    • 仓库摘要:<output-dir>/.SourceSageAssets/Repository_summary.md
    • 已弃用的差异报告:<output-dir>/.SourceSageAssets/RELEASE_REPORT/Report_<latest-tag>.md
    • 打开生成的 Markdown 并总结重要结果,而不是仅报告命令已运行。
    • 在 --lite 模式下,确认摘要保留了树、Git 信息、统计信息和根目录 README 文件,同时省略了 ## File Contents 部分。
  4. 报告副作用和命令不匹配。

    • 期望 SourceSage 在 <repo>/.SourceSageignore 不存在时创建它。
    • 将 --ignore-file 视为受支持的忽略覆盖。
    • 除非 CLI 已更新并重新验证,否则不要依赖 --use-ignore,因为当前 CLI 不公开该标志。

命令说明

  • 在 SourceSage 仓库内运行 uv run sage,因为 pyproject.toml 定义了 sage 和 sourcesage 两个入口点。
  • 在 SourceSage 仓库外运行 uv run --directory <sourcesage-root> sage ...,以便命令使用此检出而不需要全局安装。
  • 仅当包已安装且 uv 不可用时,才直接回退到 sourcesage 或 sage。
  • 使用 -l ja 或 -l en 设置输出语言。
  • 在忽略规则尚未调整或完整文件摘录会使摘要过大时,首次探索使用 --lite。
  • 当用户希望工件放在仓库根目录之外时,使用 -o。
  • 使用 --repo 从此检出分析另一个仓库。

验证

  • 运行所选命令,而不是仅描述它。
  • 确认预期的 Markdown 文件存在。
  • 读取生成的输出并报告路径以及所产生内容的简短摘要。
  • 在更改任何执行指令或提及它的文档后,重新运行确切的命令。

避免

  • 不要假设 README 示例在它们与 sourcesage/cli.py 不同时是权威的。
  • 当用户请求特定目标且该目标已包含结果时,不要静默覆盖现有工件。
  • 当你可以在此仓库中检查 pyproject.toml 和 sourcesage/cli.py 时,不要凭记忆描述 SourceSage 的用法。

相关技能