界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

github-star-manager

github-star-manager

【开发与工程】整理、分类、清理、备份与恢复 GitHub Stars,或批量评估导入新项目。当用户要求整理/分类/清理/备份 GitHub 收藏、管理 star 列表(List)、批量评估仓库,或提到「GitHub Stars 整理 / 清理收藏 / star 太多」时使用。支持 organize/import/backup 模式;凭证通过环境变量或 WorkBuddy 的 GitHub 连接器注入,无需在 Skill 目录内放置 .env。

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: github-star-manager description: 整理、分类、清理、备份与恢复 GitHub Stars,或批量评估导入新项目。当用户要求整理/分类/清理/备份 GitHub 收藏、管理 star 列表(List)、批量评估仓库,或提到「GitHub Stars 整理 / 清理收藏 / star 太多」时使用。支持 organize/import/backup 模式;凭证通过环境变量或 WorkBuddy 的 GitHub 连接器注入,无需在 Skill 目录内放置 .env。

GitHub Stars Manager

前置准备与配置

  • 凭证需求: GitHub Token(支持 GitHub CLI 本地自动获取,或 Classic PAT / Token 包含 public_repo + read:user + user scope)。
  • 环境要求: Python >= 3.6,pip install requests (>= 2.28)。
  • 配置来源 (级联解析): 不再强制依赖 Skill 目录内的 .env,而是按以下优先级依次读取(每个 key 取最高优先级来源;已存在的真实环境变量永不覆盖):
    1. 进程环境已有的变量(WorkBuddy/连接器注入的 GITHUB_TOKEN、shell 环境变量);
    2. GH_STAR_MANAGER_ENV 指向的显式 .env 路径(可指向 WorkBuddy 托管的密钥文件);
    3. 用户级 ~/.gh-star-manager/.env(随用户在各工作区/项目间通用);
    4. Skill 根目录 .env(仅作向后兼容遗留);
    5. GitHub CLI 本地凭证(自动获取): 若上述均未配置,自动执行 gh auth token 读取本地 CLI 登录状态,实现零配置/免手动创建 Token。
  • 凭证推荐: 首选本地登录 GitHub CLI (gh auth login) 或由 WorkBuddy/shell 注入环境变量。
  • 工作目录隔离: 所有会话中间产物(stars.json、review_plan.json、review.html 等)与状态文件统一落在专用工作目录 ~/.gh-star-manager/(可用 GH_STAR_MANAGER_WORKDIR 覆盖为任意 WorkBuddy 托管路径),绝不污染当前项目目录。执行脚本时请把 -o 输出路径指向该目录。
  • 交互模式 (GH_STAR_MANAGER_REVIEW_MODE):
    • chat(WorkBuddy 推荐): 不启动浏览器,由 Agent 在对话中呈现方案摘要、征求明确授权后直接调用 CLI 写回,最贴合 Agent 循环;
    • static: build_review.py 生成 review.html,由 Agent 通过 present_files 内联预览,用户在对话中确认;
    • server(仅独立桌面场景): 旧版本地 Web 服务自启自毁,Agent 环境不建议使用。
  • 写操作闸门: 任何写回/改动操作执行前,必须依次完成:Checkpoint(自动备份) -> 展示方案 -> 明确授权确认。
  • 安全边界:
    • 高星保护: star 数 ≥ 5000 的 repo 默认排除在 unstar 之外;单次 unstar 上限 50 项。
    • 凭证隔离: GITHUB_TOKEN 仅留存环境变量与 .env,严禁随 JSON、日志或 CLI 参数暴露。

配置自愈 (Self-Healing)

若脚本报 Missing GITHUB_TOKEN 或 401 Unauthorized:

  1. 优先提示用户运行 gh auth login 或输出 https://github.com/settings/tokens 向用户询问 Token;
  2. 写入用户级 ~/.gh-star-manager/.env(GITHUB_TOKEN=ghp_xxx,目录不存在时自动创建);
  3. 自动重跑先前失败的命令,无需用户重复指示。

在 WorkBuddy 中自由使用

该 Skill 已与 WorkBuddy 的运行环境解耦,无需把密钥写进 Skill 目录即可随处调用:

  • 方式零(零摩擦,最推荐): 本地登录过 GitHub CLI (gh auth login),Skill 即可通过 gh auth token 静默获取凭证。
  • 方式一(零配置): 在 WorkBuddy 连接器页连上 GitHub 连接器。连接后 GITHUB_TOKEN 由 WorkBuddy 托管并自动注入脚本环境。
  • 方式二(零文件): 在 shell 启动脚本或 WorkBuddy 的环境变量配置里设置 GITHUB_TOKEN。
  • 方式三(随用户通用): 创建 ~/.gh-star-manager/.env,所有工作区/项目共用同一份配置。
  • 方式四(指向托管密钥): 设置环境变量 GH_STAR_MANAGER_ENV=/path/to/secret.env。

操作流程 (Steps)

步骤 1: 凭证验证与状态同步

脚本位于本 Skill 目录下(通常为 ~/.workbuddy/skills/github-star-manager/scripts/),执行时请使用 Skill 的绝对路径;所有 -o 输出请指向工作目录 ~/.gh-star-manager/。

python <skill_dir>/scripts/star_ops.py user; python <skill_dir>/scripts/star_ops.py check-scopes
python <skill_dir>/scripts/fetch_stars.py --sync -o ~/.gh-star-manager/stars.json
python <skill_dir>/scripts/github_lists.py list -o ~/.gh-star-manager/lists.json

完成准则: can_create_lists 为 true;fetch_stars.py 与 github_lists.py 返回 status: success(退出码 0)。

步骤 2: 生成方案 (review_plan.json)

先读取用户画像 python <skill_dir>/scripts/state.py dump-profile。依据用户意图选择对应分支:

  • 全量整理分支 (mode: organize):

    • 运行 python <skill_dir>/scripts/generate_review_plan.py --plan-mode organize -o ~/.gh-star-manager/review_plan.json;
    • 详细分类策略、意图驱动标签锁定 (FROZEN)、解散泛化标签与预设模式(STARS_ORGANIZE_MODE)严格遵循 references/analysis-guide.md;
    • 产出包含建议 List 归属与 unstar 建议的 review_plan.json。
  • 批量导入分支 (mode: import):

    • 将待评估 repo 写入 ~/.gh-star-manager/new_repos.json 格式 ["owner/repo", ...];
    • 抓取摘要: python <skill_dir>/scripts/repo_insight.py --input-file ~/.gh-star-manager/new_repos.json -o ~/.gh-star-manager/insights.json;
    • 运行 python <skill_dir>/scripts/generate_review_plan.py --plan-mode import --insights-file ~/.gh-star-manager/insights.json -o ~/.gh-star-manager/review_plan.json 产出包含建议 List 归属的 review_plan.json。

完成准则: 成功生成符合契约规范的 review_plan.json。

步骤 3: 方案确认与写回 (WorkBuddy 原生流程)

在 WorkBuddy 的 Agent 循环里,不启动本地浏览器服务,而是用对话驱动,三种模式按 GH_STAR_MANAGER_REVIEW_MODE 选择:

  • (推荐) chat 模式: 直接读取 ~/.gh-star-manager/review_plan.json,在对话中以清晰列表呈现建议(新建/合并 List、unstar 清单、标星归类),明确列出将要执行的写操作;得到用户显式授权后,严格遵循写操作闸门(先备份再执行),依次调用 github_lists.py 与 star_ops.py 批处理 CLI 完成写回(写回细节见 references/analysis-guide.md)。

  • static 模式 (可视化预览): 生成可交互 HTML 供用户在对话内预览与核对:

    python <skill_dir>/scripts/build_review.py --plan-file ~/.gh-star-manager/review_plan.json --output ~/.gh-star-manager/review.html
    

    随后用 present_files 将 review.html 内联预览给用户;用户在对话中确认或调整,Agent 再按授权执行 CLI 写回。

  • server 模式 (仅独立桌面): python <skill_dir>/scripts/review_server.py --plan-file ~/.gh-star-manager/review_plan.json 启动本地 Web 服务并自动开浏览器、确认后强制先备份再执行并 3 秒自毁。Agent 环境不要使用此模式。

完成准则: 用户在对话中明确授权后,CLI 写回成功(备份已完成、退出码 0);或 static 模式下用户确认且 Agent 已执行授权写回。

步骤 4: 偏好蒸馏 (Preference Distillation)

交互结束后,对比用户最终方案与原始建议,将差异总结为偏好规则追加至画像:

python scripts/state.py add-preference "规则描述"

步骤 5: 备份与恢复 (可选)

查看与加载备份、恢复 stars/List 归属的具体 CLI 指令见 references/analysis-guide.md#备份与恢复流程。

异常降级与资源索引

我的收藏