提交作品文档及相关演示视频、图片

This commit is contained in:
Surponess 2026-07-10 22:45:45 +08:00
parent b1db102e9d
commit 9aae311ab7
12 changed files with 1185 additions and 0 deletions

View File

@ -0,0 +1,51 @@
# 子赛题一 · PR 提交说明文档
**项目**gitlink-cli · AI 可驱动的智能协作平台
**主仓库**`https://gitlink.org.cn/whale_hihihi/gitlink-cli`(团队 fork作为竞赛主仓库接收 PR
**团队**崔佳祥whale/ 包尔俊wauxing/ 王嘉奇Surponess
**说明**:本文档为子赛题一的 PR 提交说明,列出三人组向主仓库提交并合并的全部 PR每个 PR 含功能代码、单元测试、命令帮助文档及变更说明。
## 一、提交统计
- 合并 PR 总数:**20** 个Surponess 12 / whale 2 / wauxing 6)
- 其中子赛题一CLI 能力)核心 PR**11** 个
- 全部 PR 累计变更:功能代码 .go 文件 77、单元测试 _test.go 文件 45、文档 .md 文件 147。
## 二、子赛题一CLI 能力PR 明细
每个 PR 均包含:**功能代码 + 单元测试 + 命令帮助文档 + 变更说明**(符合竞赛交付要求)。
| PR | 标题 | 作者 | 合并日期 | 代码 | 测试 | 文档 | 主要内容 |
|---|---|---|---|:--:|:--:|:--:|---|
| [#18](https://gitlink.org.cn/whale_hihihi/gitlink-cli/pulls/18) | feat: 合并 upstream/master 并对齐风格 | wauxing | 2026-06-15 | 31 | 18 | 79 | 合并 upstream/master + 行为对齐 + i18n 化 |
| [#15](https://gitlink.org.cn/whale_hihihi/gitlink-cli/pulls/15) | 修改编译 | Surponess | 2026-06-04 | 5 | 1 | 1 | 编译修复 + pm 域注册25 域全可用) |
| [#14](https://gitlink.org.cn/whale_hihihi/gitlink-cli/pulls/14) | feat: 补全 21 个 Shortcut + 修正批量操 | wauxing | 2026-06-03 | 8 | 8 | 13 | 补全 21 个 Shortcut + 批量修正 + 文档清理 |
| [#12](https://gitlink.org.cn/whale_hihihi/gitlink-cli/pulls/12) | feat: 实现 batch issue 批量操作命令 | wauxing | 2026-06-01 | 9 | 4 | 0 | issue batch 批量操作命令族CSV 驱动) |
| [#8](https://gitlink.org.cn/whale_hihihi/gitlink-cli/pulls/8) | 文件描述符泄漏等修改 | Surponess | 2026-06-01 | 5 | 0 | 0 | 文件描述符泄漏等 6 类代码质量修复 |
| [#7](https://gitlink.org.cn/whale_hihihi/gitlink-cli/pulls/7) | 代码片段管理功能 | Surponess | 2026-06-01 | 3 | 2 | 0 | snippet 本地代码片段管理 7 命令 |
| [#6](https://gitlink.org.cn/whale_hihihi/gitlink-cli/pulls/6) | release download 命令 新增 downloa | Surponess | 2026-05-30 | 7 | 1 | 0 | release download 完善 + 错误消息统一化 |
| [#5](https://gitlink.org.cn/whale_hihihi/gitlink-cli/pulls/5) | release download 功能(新增) 在 rel | Surponess | 2026-05-29 | 1 | 6 | 0 | release +download 流式下载二进制资源 |
| [#4](https://gitlink.org.cn/whale_hihihi/gitlink-cli/pulls/4) | label 领域原来只有 3 个命令list/create | Surponess | 2026-05-29 | 2 | 1 | 0 | label 领域新增 +update 命令 |
| [#3](https://gitlink.org.cn/whale_hihihi/gitlink-cli/pulls/3) | 创建 webhook 领域 + 实现 `+update` | Surponess | 2026-05-28 | 1 | 1 | 0 | 创建 webhook 领域 + +updateGET-then-PUT |
| [#2](https://gitlink.org.cn/whale_hihihi/gitlink-cli/pulls/2) | 本次实现search +issues — 搜索 Issue | Surponess | 2026-05-25 | 1 | 1 | 2 | search +issues 搜索 Issue10 筛选参数) |
## 三、其他子赛题相关 PR备查
| PR | 标题 | 作者 | 归属 |
|---|---|---|---|
| #29 | feat: 统一全链路科研分析页面 + Dockerfile 修复 | whale | 四·科研 |
| #28 | feat(demo): 调整 demo 前端展示(合并 surpones | wauxing | 三/四·Demo |
| #27 | feat(demo): 优化 demo 前端展示(合并 surpones | wauxing | 三/四·Demo |
| #26 | chore: move community-ops-sweep work | wauxing | 三·工作流 |
| #24 | 新增demo | Surponess | 三/四·Demo |
| #22 | 修改了两个skills的命令使用 | Surponess | 二·Skills |
| #19 | 新增skills | Surponess | 二·Skills |
| #144 | feat(skills): 新增 3 个 Agent Skill — w | whale | 二·Skills |
| #16 | 新增skills | Surponess | 二·Skills |
## 四、PR 提交规范说明
- **分支模型**:三人各自从 master 切特性分支(`surponess_br` / `cuijixiang` / `baoerjun_branch`),开发完成后向 `master` 发 PR经 review 合并。
- **每个 PR 内容**`shortcuts/<>/` 功能代码 + `<域>_test.go` 单元测试 + `skills/gitlink-<域>/SKILL.md` 命令帮助文档 + commit message/PR 描述作为变更说明。
- **CI**PR 触发 `.gitea/workflows/ci.yml`go build + go test + lint通过后方可合并。
- **PR 链接**`https://gitlink.org.cn/whale_hihihi/gitlink-cli/pulls/<PR号>`。

View File

@ -0,0 +1,148 @@
# 子赛题一 · 变更说明文档(命令功能与参数详解)
## 一、总览
子赛题一将 gitlink-cli 从零散命令补全为 **25 个 shortcut 命令域 / 160+ 动词**,全部可注册可用(`gitlink-cli <> --help` 验证)。
| 类别 | 内容 |
|---|---|
| **新增命令域8** | wiki、webhook、pm、file、milestone、label、member、snippet |
| **新增批量子系统** | issue batch 族create/update/close/open/assign/label/deleteCSV 驱动) |
| **增强已有域** | search+issues 多筛选、release+download 流式下载、pr+diff 两步 +reviews、repo+tree +contributors、ci、pipeline、user 等 |
| **框架/质量** | register.go 注册全域、i18nzh-CN/en-US、错误消息中文化、文件描述符泄漏修复等 6 类 |
## 二、新增命令域详解
### `wiki` — Wiki 页面与目录全生命周期管理(对照 GitLink 页面功能一对一实现)
| 动词 | 功能 |
|---|---|
| `+list` | 列出 Wiki 页面 |
| `+view` | 查看页面内容 |
| `+create` | 创建页面(可指定目录) |
| `+update` | 更新页面 |
| `+delete` | 删除页面并清理侧栏 |
| `+mkdir` | 建目录 |
| `+rmdir` | 删目录 |
| `+rename` | 重命名页面 |
| `+renamedir` | 重命名目录 |
**常用参数**``+create -n 页面名 -c 内容 -d 目录 -m 提交信息` · `+list` · `+view -n 名` · 需 `--owner/--repo``
### `webhook` — 仓库 Webhook CRUD + 投递历史 + 测试投递
| 动词 | 功能 |
|---|---|
| `+list` | 列出 Webhook |
| `+view` | 查看详情 |
| `+create` | 创建 Webhook |
| `+update` | 更新GET-then-PUT 保留未指定字段) |
| `+delete` | 删除 |
| `+history` | 投递任务列表 |
| `+test` | 触发测试投递 |
**常用参数**``+create --url <回调> --events push,pull_request` · `+test --id <id>` · `+history --id <id>``
### `pm` — 项目管理:看板 / Sprint / 周报 / 标签 / 流水线 / 动作
| 动词 | 功能 |
|---|---|
| `+boards` | 看板列表 |
| `+sprints` | Sprint 议题 |
| `+weekly` | 周报 |
| `+tags` | PM 标签 |
| `+pipelines` | PM 流水线 |
| `+actions` | 动作运行记录 |
**常用参数**``+boards` · `+sprints` · `+weekly``
### `file` — 仓库文件读写base64 自动编解码 / 自动取 SHA
| 动词 | 功能 |
|---|---|
| `+browse` | 浏览目录树/文件详情 |
| `+get` | 读文件内容(自动解码 base64 |
| `+create` | 创建文件 |
| `+update` | 更新文件 |
| `+delete` | 删除文件 |
**常用参数**``+create -p 路径 -c 内容 -m 信息 -b 分支` · `+get -p LICENSE` · `+browse -p 目录``
### `milestone` — 里程碑 CRUD + 关联 Issue 视图
| 动词 | 功能 |
|---|---|
| `+list` | 列出里程碑 |
| `+view` | 详情+关联 Issue |
| `+create` | 创建 |
| `+close` | 关闭 |
| `+delete` | 删除 |
**常用参数**``+create --name <>` · `+view --id <id>``
### `label` — Issue 标签管理
| 动词 | 功能 |
|---|---|
| `+list` | 列出 |
| `+create` | 创建 |
| `+update` | 更新PATCH 部分更新) |
| `+delete` | 删除 |
**常用参数**``+create --name <> --color <>` · `+update --id <id>``
### `member` — 项目成员管理
| 动词 | 功能 |
|---|---|
| `+list` | 列出成员 |
| `+add` | 添加成员 |
| `+remove` | 移除成员 |
**常用参数**``+add --user <登录名> --role <角色>` · `+list``
### `snippet` — 本地代码片段管理(纯本地、不调 API、免登录
| 动词 | 功能 |
|---|---|
| `+create` | 创建(支持 stdin |
| `+list` | 列出(按标签/语言过滤) |
| `+view` | 查看详情 |
| `+search` | 全文检索 |
| `+update` | 更新字段 |
| `+delete` | 删除 |
| `+export` | 导出到文件 |
**常用参数**``+create -t 标题 -l 语言 -g 标签 -c 内容` · `+search --query 关键词` · `+view --id <id>` · `+export --id <id> -o 文件``
### `issue batch` — 批量操作引擎wauxing~2100 行 + 公共引擎)
| 动词 | 功能 |
|---|---|
| `+batch-create` | CSV 批量创建 |
| `+batch-update` | CSV/ID 批量更新 |
| `+batch-close` | 批量关闭 |
| `+batch-open` | 批量重开 |
| `+batch-assign` | 批量指派uniform/CSV |
| `+batch-label` | 批量标签 增/删/设 |
| `+batch-delete` | 批量删除(谨慎) |
**公共引擎**`ResolveIssueNumbers`/`ResolveUserID`/`ResolveLabelID`/`ReadCSV`/`RunBatch`;全部支持 `--dry-run` 预览、`--confirm` 执行、`--from <csv>`、`--max`、`--delay`。
## 三、增强的已有域
| 域 | 增强 | 关键参数 |
|---|---|---|
| search | `+issues`10 筛选)、`+repos`、`+users` | `-k 关键词 -c 分类(all/opened/closed) -a 负责人 --作者 -m 里程碑 -t 标签 --sort-by --sort-dir -l 条数 -p 页码` |
| release | `+download`(突破 JSON-onlyHTTP 流式下载二进制) | `-i/--id ReleaseID -o/--output 目录`(先取 assets 再下载) |
| pr | `+diff`两步版本列表→diff 详情)、`+reviews`/`+review`、`+check-merge` | `+diff -i PR号 -f 过滤文件 --stat` |
| repo | `+tree`、`+contributors`、`+code-stats`、`+stargazers` 等 | `+tree -p 目录 -r ref` |
| ci / pipeline / user | 补 `+builds +logs +restart +stop` / 流水线全生命周期 / 统计类 | 见 `--help` |
## 四、代码质量改进6 类)
文件描述符泄漏修复release.go 循环内 defer· RequireArg 错误不再被忽略10 处)· 错误消息中文化23 处)· 补分页参数webhook/label· 输出统一为 `ctx.OutputData()` · 错误链 `%v`→`%w`。
## 五、测试
全仓 **65 个 `*_test.go`** 测试文件,覆盖 shortcuts/cmd/internal 各模块issue batch 引擎含 **637 行测试**(单元 + 集成)。`go test ./...` 全绿。

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

View File

@ -0,0 +1,202 @@
# 子赛题三 · 端到端自动化工作流说明(详版)
> **交付要求**:工作流串联 ≥3 个 CLI 命令或 Skill · 可复现执行脚本 · 真实 GitLink 项目运行 · 说明文档 + 架构图 · Agent 兼容。
> 架构图见 `工作流架构图.png` / `工作流架构图.drawio`drawio 可自行调整)。
本项目交付 **三个端到端自动化工作流**全部满足「≥3 步串联」,分别覆盖**代码质量门禁 / 策略化裁决 / 社区运营**三类场景,底层 Skill 可相互复用。
## 一、三个工作流总览
| 工作流 | 场景 | 串联步骤 | 涉及命令域/Skill | 可复现脚本 | Agent 形态 |
|---|---|---|---|---|---|
| **A · pr-guard** | 代码质量看门人采集→审查→CI→评论→判定/合并) | 5 步 | pr / code-review / ci / api | `demo/pr-guard-workflow.sh` | Claude Code 读 SKILL.md |
| **B · pr-quality-gatekeeper** | Policy-as-Code 评分卡多路信号→0-100 分→三态裁决) | 9 步 | pr / ci / api / label + code-review | `examples/pr-quality-gatekeeper` | Claude Code 读 SKILL.md |
| **C · community-ops-sweep** | 社区运营增量对账5 项事件一次处理) | 5 项事件 | issue / pr / wiki / release + Raw API | `workflows/community-ops-sweep/`(含 18 单测) | 原生 Claude Code Workflow.wf.js |
---
## 二、工作流 A · pr-guard 代码质量看门人
### A.1 背景与目标
PR 合并前要做的事——审查代码、查 CI、给反馈、决定合不合——本可自动化却常靠人工东拼西凑。pr-guard 把它做成**一条端到端流水线**PR 一进来,自动采集、审查、查 CI、发评审、给出可解释的「通过/拒绝」判定。区别于 `code-review` Skill 只产出主观评论pr-guard 是**会下结论、可执行合并的完整闭环**。
### A.2 适用场景
- 团队想给 PR 加一道**最低质量门槛**0 Critical + CI 通过才放行)。
- 希望 AI 把分散的 pr/ci/api 命令自动串起来,而非人工逐条跑。
### A.3 架构5 步流水线,串联 4 个命令域)
```
PR 提交
①采集 pr +diff / +files pr 域)
②AI Review code-review Skill (分级 Critical/Warning/Suggestion
③CI 检查 ci +builds ci 域)
④汇总评论 api POST /reviews api 域)
⑤质量判定/合并 pr +merge仅满足门禁时 pr 域)
```
### A.4 详细步骤
| 步 | 动作 | 命令 / Skill | 输入 | 输出 |
|---|---|---|---|---|
| ① | 采集 PR 变更 | `pr +diff -i <PR>` / `pr +files -i <PR>` | PR 编号 | 文件清单 + diff 内容 |
| ② | AI 审查分级 | `code-review` Skill | diff | Critical/Warning/Suggestion 发现列表 |
| ③ | 查 CI 状态 | `ci +builds` | 仓库 | 构建结果(通过/失败/未知) |
| ④ | 汇总评审评论 | `api POST /:o/:r/pulls/<id>/reviews` | 发现 + CI | 结构化 Review 评论 |
| ⑤ | 质量判定 | 门禁规则 + `pr +merge -i <PR> --method squash` | Critical 数 + CI | 通过→合并 / 拒绝→附问题清单 |
### A.5 门禁规则(硬性、可解释)
```
0 Critical + CI success → ✅ 建议合并pr +merge
否则 → 🔴 拒绝,附 Critical/Warning 问题清单
```
### A.6 触发方式
**脚本(可复现)**`demo/pr-guard-workflow.sh <owner> <repo> <pr_id>`——把 5 步采集命令串起来自动跑AI 审查/判定在 Claude Code 里做。
**Agent 提示词Claude Code 直接粘)**
> 读 skills/gitlink-pr-guard/SKILL.md把关 `<owner>/<repo>` 的 PR #<id>
> 采集 diff/files → 按 code-review 分级找 Critical/Warning → 查 ci +builds → 汇总成评审评论回写 → 按「0 Critical + CI 通过 → 合并」门禁给判定。
> 合并/评论等写操作前先向我确认。
### A.7 真实运行效果
目标 `whale_hihihi/gitlink-cli`:脚本采集真实 PR 列表与 CI 状态;现场可在 `http://121.41.222.73:8000` 的 pr-guard 区点「用真实 PR 跑」看真实数据流入 5 步气泡。
### A.8 与 code-review 的区别
`code-review` 只产出 Review 评论(找问题、无结论);`pr-guard` 在其之上加了 **CI 检查 + 门禁判定 + 可选合并**是完整闭环。两者共享审查逻辑pr-guard 复用 code-review 的分级输出。
---
## 三、工作流 B · pr-quality-gatekeeperPolicy-as-Code 评分卡)
### B.1 背景与目标
pr-guard 的门禁是「0 Critical + CI 通过」二元的;真实团队往往要**多维度量化**测试覆盖率、提交规范、PR 卫生…),且标准要**随仓库演进、可审计**。gatekeeper 把合并标准写进版本化的 `gatekeeper.yaml`,对 PR 算出**透明的 0-100 评分卡**与**三态裁决**——同一策略 + 同一 PR → 同一裁决(**可裁决、可审计、可复现**)。
### B.2 五维加权评分(满分 100确定性计算
| 维度 | 权重 | 算法要点 | 信号来源 |
|---|:--:|---|---|
| review_findings | 40 | `权重 × max(0, 1 - Σ扣分/40)`blocker 单条清零本维 | code-review 的 Critical/Warning 数 |
| test_coverage | 20 | 改源码无测试→0有测试按 `0.5+0.5×ratio` | 变更文件中的 source/test 文件比 |
| pr_hygiene | 15 | 描述≥30字 / 关联 Issue / 体量适中,各 1/3 | PR 元信息 |
| commit_quality | 15 | 符合 Conventional Commits 的比例 | commit 列表 |
| ci_status | 10 | 通过=10 / 失败=0 / 未知=5 | ci +builds |
> **扣分表**blocker 100、major 25、minor 5、nit 1累计达本维权重即扣到 0
### B.3 五项硬门禁命中任一即拦截→REQUEST_CHANGES
| 门禁 | 命中条件 |
|---|---|
| forbid_blocker_findings | 存在 blocker 级发现(如硬编码密钥、注入、路径遍历) |
| require_ci_pass | CI 明确失败(未知/无记录不触发) |
| require_tests_for_src_changes | 改了源码却没加测试 |
| require_linked_issue | 未关联 Issue可选 |
| max_changed_files | 改动文件数超上限(默认 80 |
### B.4 三态裁决逻辑
```
命中硬门禁 → ❌ REQUEST_CHANGES打 gatekeeper:needs-changes
total ≥ pass默认 85 → ✅ PASS打 gatekeeper:pass
total < request_changes默认 60 REQUEST_CHANGES
其余 → 💬 COMMENT打 gatekeeper:review人工定
```
> 裁决**以 `common` 评论回写**(评分卡标题标注三态),强语义的 `approved`/`rejected` 留给人工——避免 AI 越权批准。状态由标签承载。
### B.5 九步工作流
①加载策略gatekeeper.yaml校验权重和=100、阈值合法→ ②采集 PR 上下文(`pr +view/+files/+diff` + `api GET .../commits` + `ci +builds`)→ ③AI 按 severity 分级产出发现 → ④逐维确定性评分 → ⑤硬门禁评估 → ⑥裁决 → ⑦渲染 Markdown 评分卡 → ⑧回写(受 `--apply`)→ ⑨安全规则(默认 dry-run、绝不默认合并
### B.6 评分卡输出样例(回写到 PR
```
## 🛡️ Gatekeeper Report — PR #42 feat: add rate limiter
Verdict: ❌ REQUEST_CHANGES · Score: 58/100 · policy: gatekeeper.yaml@v1
| Dimension | W | Score | Notes |
| Review findings | 40 | 20/40 | 0 blocker / 2 major / 3 minor |
| Test coverage | 20 | 0/20 | 3 src / 0 test → 触发硬门禁 |
| PR hygiene | 15 | 10/15 | 描述OK / 无关联Issue |
| Commit quality | 15 | 15/15 | 4/4 conventional |
| CI status | 10 | 10/10 | passing |
⛔ Hard gate failures (1): require_tests_for_src_changes
🔴 Must fix (2): … 🟡 Should fix (3): … ✅ Strengths: …
```
### B.7 触发方式
**默认 dry-run安全**:不传 `--apply` 只打印评分卡;`--apply` 才回写评论 + 打标签;合并需「裁决=PASS + 策略 auto_merge=true + 显式 --apply」三条件齐备且二次确认。
**Agent 提示词**
> 读 skills/gitlink-gatekeeper/SKILL.md按 gatekeeper.yaml 对 `<owner>/<repo>` PR #<id> 出评分卡:采集→分级→五维评分→硬门禁→裁决→渲染评分卡。先 dry-run 给我看,确认后再 --apply 回写。
### B.8 真实验证
对仓库 **113 个历史 PR 全仓批扫****均分 88.5**——验证评分卡对真实 PR 有良好区分度(低分 PR 普遍缺测试或 CI 失败)。
### B.9 策略预设examples/
| 预设 | 阈值 | 适用 |
|---|---|---|
| `gatekeeper.yaml` | pass 85 / rc 60 | 默认平衡,大多数仓库 |
| `gatekeeper.strict.yaml` | 高阈值 + require_linked_issue | 核心库 / 发布分支 |
| `gatekeeper.lenient.yaml` | 低阈值 + 关部分门禁 | 早期项目 / 文档仓库 |
---
## 四、工作流 C · community-ops-sweep 社区运营增量对账
### C.1 背景与目标
维护一个开源仓库的社区运营,散落在一堆动作里:新 Issue 要分诊、要找人负责、定期出周报、发版要写 Release Notes、PR 还得关联到对应 Issue。community-ops-sweep 把这些做成**一次调用、增量对账**:给定时间窗(`since` 或读 checkpoint处理该窗口内**所有新 Issue + 合并 PR**5 项事件一网打尽。**Claude Code Workflow 实现**`workflows/community-ops-sweep/`)。
### C.2 五项事件(一次调用)
```
R1 新 Issue triage分类/打标)→ R2 建议 owner路由规则→ R3 生成社区周报
→ R4 发布 Release Notes → R5 PR→Issue 关联闭环
```
### C.3 三层架构判断与计算分离JSON 文件交接)
| 层 | 职责 | 实现 |
|---|---|---|
| CC Workflow (JS) | 编排:按 phase 调度 | `community-ops-sweep.wf.js` |
| LLM agent 层 | 只做判断Issue 分类、PR 关联、owner 建议、散文增强) | Claude Code agent |
| Python 引擎 | 只做计算(采集/归一化/id 解析/合并/守卫/渲染/写回) | `scripts/community_ops_sweep.py` |
> 这种分离让**确定性引擎可单独跑、可单测**18 个单测LLM 只负责需要语义判断的部分——可复现、可回归。
### C.4 子命令(确定性引擎)
```bash
python scripts/community_ops_sweep.py collect --owner <o> --repo <r> --since 2026-06-01T00:00:00Z # 采集窗口内新 issue + 合并 PR
python scripts/community_ops_sweep.py plan --candidates c.json --triage t.json --owners o.json --links l.json # 读 LLM 决策 → 写计划
python scripts/community_ops_sweep.py apply --plan plan.json --owner <o> --repo <r> [--apply] # dry-run 预览,--apply 才真写
python scripts/community_ops_sweep.py checkpoint --owner <o> --repo <r> # 推进 .last-sweep + 追加 triage-log
```
### C.5 触发方式
**原生 Claude Code Workflow**`/community-ops-sweep owner=<o> repo=<r>`(若放入 `.claude/workflows/`),或经 Workflow 工具带入 `since`(可选,留空读 `.last-sweep`)、`apply`(默认 false
**路由规则**`routing-rules.example.yaml` 配置 R2 的 owner 建议opt-in `auto_assign`)。
### C.6 真实运行 + 测试
字段名实测自真实 API`baoerjun/gitlink-cli` 等);**18 个确定性逻辑回归测试**`tests/test_sweep.py`)保证引擎可复现。
### C.7 安全
默认 **dry-run**`--apply` 才写)· 标签**整体替换**(发期望全集,不丢标签)· 关 Issue 前**守卫**(已关跳过)· **绝不自动合并 PR** · 写操作可逆(关可 reopen、release 可 edit
---
## 五、三个工作流的对比与协同
| 维度 | pr-guard | gatekeeper | community-ops-sweep |
|---|---|---|---|
| 解决问题 | PR 合不合(二元门禁) | PR 合不合(多维量化裁决) | 社区运营批量自动化 |
| 裁决粒度 | 0 Critical + CI 通过 | 0-100 分 + 三态 | 5 项事件分别处理 |
| 策略化 | 固定门禁 | **可版本化 gatekeeper.yaml** | 路由规则 yaml |
| 触发 | PR 事件 | PR 事件 | 时间窗增量 |
| 可复现 | 脚本 | 脚本 + 确定性评分 | CC Workflow + 18 单测 |
三者可叠加community-ops-sweep 处理出的代码类 Issue → 贡献者提 PR → gatekeeper 出评分卡 → 满足 pr-guard 门禁 → 合并。
## 六、可复现性与 Agent 兼容
- **可复现**pr-guard/gatekeeper 提供 shell 脚本与确定性算法同输入同输出community-ops-sweep 提供 CC Workflow + 18 单测 + checkpoint 增量机制。
- **Agent 兼容**pr-guard / gatekeeper 兼容 Claude Code读 SKILL.md 编排community-ops-sweep 为原生 Claude Code Workflow`.wf.js`)。
## 七、与子赛题二的区别
子赛题二交付**独立可复用的单 Skill**SKILL.md + examples子赛题三交付**串联多步的完整解决方案**pr-guard 串 4 域、gatekeeper 9 步聚合 5 维、community-ops-sweep 串 5 项事件。三者的底层 Skillcode-review / ci / issue / pr 等)即子赛题二的产物,复用于本工作流。

View File

@ -0,0 +1,460 @@
# 子赛题二 · Skills 功能详解(提交说明文档)
> 本文为子赛题二的**提交说明文档**,逐一讲清每个 Skill 的**作用、功能、效果**。
> 共 53 个 Skill+ shared 地基),分三类:**A 类·CLI 包装**(直接封装命令域)/ **B 类·AI 工作流**(多步编排+决策)/ **C 类·数据分析**(采集+指标+报告)。
## 一、Skill 体系总览
| 类型 | 含义 | 数量 | 代表 |
|---|---|:--:|---|
| **A·CLI 包装** | 把一个 GitLink 命令域封装成 AI 可调用的标准化命令 | 21 | repo / issue / pr / wiki / snippet |
| **B·AI 工作流** | 多步骤 AI 编排,含决策树与输出模板,端到端自动化 | 19 | onboarding / code-review / pr-guard |
| **C·数据分析** | 采集数据 + 算指标 + 出报告,科研/健康度洞察 | 13 | research-insight / health / compliance |
| 地基 | 认证/全局参数/安全规则,被所有 Skill 引用 | 1 | shared |
> 命令是「工具」Skill 是「菜谱」——Skill 告诉 AI「什么场景、用哪些命令、按什么顺序」。本文按**子赛题**分组与《Skills分类名单》《Skills使用说明》一致
---
## 子赛题一 · CLI 命令域21A 类·命令包装)
### `gitlink-repo`
> 仓库管理
**类型**A·CLI 包装 **作用**:把 GitLink 仓库的全量信息查询封装成一组只读命令。
**功能**:仓库详情 +info、贡献者 +contributors、语言占比 +languages、README +readme、文件树 +tree、代码统计 +code-stats、关注/点赞/Fork 等互动,以及 +list/+create/+delete。
**效果**AI 与用户无需翻文档查 API一条命令拿到仓库画像所需的全部元数据是其他分析类 Skill 的数据底座。
### `gitlink-file`
> 仓库文件操作
**类型**A·CLI 包装 **作用**:封装仓库文件读写,自动处理 base64 编解码与 SHA。
**功能**+browse 浏览目录、+get 读文件内容(自动解码)、+create/+update/+delete 改文件。
**效果**:让"读 LICENSE/CI 配置/源码"这类需求一条命令完成;写操作自动取 SHA、自动编码避免手写 base64 出错。
### `gitlink-branch`
> 分支管理
**类型**A·CLI 包装 **作用**:封装 GitLink 分支管理。
**功能**+list 查分支、+create 建分支、+delete 删分支、+protect/+unprotect 分支保护。
**效果**:补齐 PR/发布流程的分支操作缺口,支持分支保护策略。
### `gitlink-release`
> 发布管理
**类型**A·CLI 包装 **作用**:封装版本发布管理,并突破 JSON-only 框架支持二进制下载。
**功能**+list/+view 查发布、+create/+update/+edit 管理发布、+download 流式下载 Release 附件资源。
**效果**:亮点 +download 用 HTTP 流式写盘,可下载大体积二进制资产,是 CLI 能力扩展的代表性突破。
### `gitlink-search`
> 搜索
**类型**A·CLI 包装 **作用**:封装 GitLink 全局搜索(仓库/用户/Issue
**功能**+repos 搜仓库、+users 搜用户、+issues 搜 Issue支持 keyword/category/assignee/author/milestone/tag/sort 等 10 个筛选)。
**效果**:把"找 good-first-issue""按标签过滤 Issue"等高频检索做成带丰富筛选的一站式命令。
### `gitlink-compare`
> Compare GitLink branches
**类型**A·CLI 包装 **作用**:封装分支/标签/提交的差异对比。
**功能**+view 看差异概览、+files 看变更文件清单。
**效果**:支撑代码审查、变更影响分析等场景的 diff 数据获取。
### `gitlink-issue`
> Issue 管理
**类型**A·CLI 包装 **作用**:封装 Issue 管理 + 强大的 CSV 批量引擎。
**功能**:单条 +list/+view/+create/+update/+close/+comment批量 +batch-create/+update/+close/+open/+assign/+label/+deleteCSV 驱动,含公共引擎、--dry-run 预览)。
**效果**:批量引擎 ~2100 行,一次 CSV 即可批量建/指派/打标签/关闭数十条 Issue是子赛题一最重的交付。
### `gitlink-pr`
> Pull Request 管理
**类型**A·CLI 包装 **作用**:封装 PR 管理 + 两步 diff + 评审。
**功能**+list/+view/+create/+merge/+reopen/+comment+diff版本列表→diff 详情两步法)、+files、+reviews/+review、+check-merge。
**效果**:修复了原单步 diff 的假实现,提供真实可用的 PR 变更与评审能力。
### `gitlink-label`
> 标签管理
**类型**A·CLI 包装 **作用**:封装 Issue 标签tag管理。
**功能**+list/+create/+update/+deletePATCH 部分更新)。
**效果**:补齐标签维护操作,配合批量打标签使用。
### `gitlink-issue-tag`
> 项目标记管理
**类型**A·CLI 包装 **作用**:封装 GitLink「项目标记」Issue 标签体系)管理。
**功能**+list 查项目标记。
**效果**:对齐 GitLink 平台特有的项目标记概念,区别于普通 label。
### `gitlink-milestone`
> 里程碑管理
**类型**A·CLI 包装 **作用**:封装里程碑管理。
**功能**+list/+view含关联 Issue/+create/+close/+delete。
**效果**:支持项目阶段规划与进度跟踪,含 +close 路径 bug 修复 + 回归测试。
### `gitlink-member`
> 项目成员管理
**类型**A·CLI 包装 **作用**:封装项目成员管理。
**功能**+list/+add/+remove。
**效果**:补齐协作权限管理操作。
### `gitlink-org`
> 组织管理
**类型**A·CLI 包装 **作用**:封装组织管理。
**功能**+list 组织列表、+info 组织详情、+members 成员、+create 创建组织。
**效果**:支持组织级协作场景。
### `gitlink-webhook`
> Webhook 管理
**类型**A·CLI 包装 **作用**:封装仓库 Webhook 全生命周期。
**功能**+list/+view/+create/+updateGET-then-PUT 保留未指定字段)/+delete/+history投递任务/+test测试投递
**效果**:一站式管理 Webhook 并排查投递问题,是事件驱动自动化的基础。
### `gitlink-wiki`
> Wiki 操作
**类型**A·CLI 包装 **作用**:封装 Wiki 页面与目录全生命周期(对照 GitLink 页面功能一对一实现)。
**功能**+list/+view/+create/+update/+delete 页面,+mkdir/+rmdir/+rename/+renamedir 目录。
**效果**:解决 Wiki 官方 API 异步重建 Sidebar 导致 CLI 读到旧状态的问题,实现完整 Wiki 自动化。
### `gitlink-pm`
> 项目管理PM
**类型**A·CLI 包装 **作用**:封装 GitLink 项目管理(看板/Sprint/周报)。
**功能**+boards 看板、+sprints Sprint 议题、+weekly 周报、+tags 标签、+pipelines 流水线、+actions 动作记录。
**效果**:打通 PM 模块数据,支撑项目进度类 Skill。
### `gitlink-ci`
> CI/CD 操作
**类型**A·CLI 包装 **作用**:封装 CI/CD 操作。
**功能**+builds 构建列表、+logs 日志、+restart/+stop 重启停止、+enable/+disable 启停、+authorize 授权。
**效果**:让 AI 能查询构建状态、拉日志排查故障,是 pr-guard 等 CI 检查步骤的依赖。
### `gitlink-pipeline`
> Pipeline workflow operations
**类型**A·CLI 包装 **作用**:封装流水线全生命周期。
**功能**+list/+runs/+run/+view/+logs/+results/+save-yaml/+enable/+disable/+delete。
**效果**:完整覆盖流水线编排与运维。
### `gitlink-user`
> 用户操作
**类型**A·CLI 包装 **作用**:封装用户信息与统计。
**功能**+me 当前用户、+info 用户详情、+headmaps 活跃热力图、+stats-activity/develop/major/role 各维统计、+trends 项目动态。
**效果**:提供用户画像数据,支撑个人视角 Skilltodo 等)。
### `gitlink-snippet`
> 本地代码片段管理
**类型**A·CLI 包装 **作用**:本地代码片段管理(纯本地、不调 API、免登录
**功能**+create支持 stdin/+list/+view/+search 全文检索/+update/+delete/+export。
**效果**CLI 唯一的本地命令域AI 可零依赖存取常用代码片段,已端到端实测。
### `gitlink-auth`
> 认证管理
**类型**A·CLI 包装 **作用**:封装认证管理。
**功能**login交互/Token、status 查状态与有效期、logout。
**效果**:与 gitlink-shared 分工,聚焦认证命令操作,处理 401/Token 过期等场景。
---
## 子赛题二 · AI/分析 Skill20B/C 类)
### `gitlink-onboarding`
> 新人引导
**类型**B·AI 工作流 **作用**:为开源项目新贡献者提供从环境搭建到首次提交的完整引导。
**功能**:搜 good-first-issue → 对每个候选做 5 维度友好度评估(标题清晰度/描述完整度/代码定位/改动范围/难度标签)→ 输出推荐清单 + 生成引导评论。
**效果**:把"哪个 Issue 适合新人"从主观判断变可量化打分,降低新贡献者参与门槛(课程明确要求、原缺失)。
### `gitlink-digest`
> 每日简报
**类型**B·AI 工作流 **作用**:聚合仓库多源动态成一份可读的项目简报。
**功能**:并行采集 Issue/PR/CI/通知/活跃度 → 按 🔴需关注/🟢新增/🔵进行中/📊指标 分级。
**效果**:一份简报掌握项目全局,解决信息分散问题。
### `gitlink-todo`
> 我的待办
**类型**B·AI 工作流 **作用**:跨 Issue/PR 汇总「分配给我/@我/我的 PR 待 review」的个人待办。
**功能**:搜 assignee=me 的 Issue + @我的通知 + 我的 PR 评审状态 → 按紧急度排序。
**效果**:补上 GitLink 缺失的「我的视角」,知道下一步该做什么。
### `gitlink-code-review`
> 智能代码审查
**类型**B·AI 工作流 **作用**:智能代码审查:分析 PR diff 输出结构化 Review。
**功能**:取 PR 变更 → 按严重度分级Critical/Warning/Suggestion→ 生成 Review 评论 + 摘要报告。
**效果**:把人工 Review 流程自动化,输出可直接贴的评审意见;含安全审查增强示例。
### `gitlink-commit-quality`
> 提交质量守护
**类型**B·AI 工作流 **作用**:提交质量守护:检查提交规范。
**功能**:校验 Conventional Commits、PR 描述完整性、分支命名、变更合理性。
**效果**:规范团队提交流程,提升可追溯性。
### `gitlink-gatekeeper`
> Policy-as-Code 的 PR 合并门禁
**类型**B·AI 工作流 **作用**Policy-as-Code 的 PR 合并门禁:按版本化策略卡裁决。
**功能**:聚合 review_findings/test_coverage/pr_hygiene/commit_quality/ci_status 5 维加权 → 0-100 评分 → 5 硬门禁 + 三态裁决PASS/COMMENT/REQUEST_CHANGES
**效果**113 个 PR 全仓验证均分 88.5,把"能否合并"变成可版本化、可解释的策略。
### `gitlink-issue-triage`
> Issue 智能分拣
**类型**B·AI 工作流 **作用**Issue 智能分拣。
**功能**:分析开放 Issue 列表 → 按类型/紧急度/复杂度分类 → 生成分拣报告与维护建议。
**效果**:自动整理堆积的 Issue减轻维护者负担。
### `gitlink-issueops`
> IssueOps 事件驱动自动化
**类型**B·AI 工作流 **作用**IssueOps 事件驱动自动化:创建 Issue 即触发 Agent。
**功能**webhook 捕获 issues 事件Live 回调或 webhook+tasks 轮询)→ Agent 自动处理。
**效果**:让"建 Issue"成为触发自动化流程的入口。
### `gitlink-stale-issue-manager`
> 过期 Issue 管理
**类型**B·AI 工作流 **作用**:过期 Issue 管理。
**功能**:识别长期无活动 Issue → 按过期等级标记/提醒/批量关闭,支持白名单与 dry-run。
**效果**:清理社区积压、维护仓库活跃度。
### `gitlink-release-auto`
> 自动化 Release 管理
**类型**B·AI 工作流 **作用**:自动化 Release 管理。
**功能**:从提交历史自动生成 Release Notes → 推荐语义化版本号 → 批量发版。
**效果**:把发版从手工整理变成自动产出。
### `gitlink-wiki-builder`
> Wiki 文档自动化
**类型**B·AI 工作流 **作用**Wiki 文档自动化。
**功能**:自动组织文档结构、批量创建页面、生成侧栏导航、同步代码变更到 Wiki。
**效果**:批量初始化与维护项目文档。
### `gitlink-pipeline-guardian`
> 流水线健康守护
**类型**B·AI 工作流 **作用**:流水线健康守护。
**功能**:监控流水线状态 → 分析失败模式、识别慢构建 → 生成健康度评分与修复建议。
**效果**:快速定位流水线故障、优化构建效率。
### `gitlink-webhook-sentinel`
> Webhook 监控哨兵
**类型**B·AI 工作流 **作用**Webhook 监控哨兵。
**功能**:监控投递成功率、检测端点问题、验证安全配置、分析失败原因。
**效果**:保障事件驱动集成的可靠性。
### `gitlink-notification-digest`
> 通知摘要
**类型**B·AI 工作流 **作用**:通知摘要:分类汇总通知。
**功能**:汇总 GitLink 通知按类型分类 → 生成摘要,支持批量标记已读。
**效果**:快速清理未读、不遗漏关键通知。
### `gitlink-competition-manager`
> 编程竞赛管理
**类型**B·AI 工作流 **作用**:编程竞赛管理。
**功能**:批量创建队伍仓库、初始化题目与权限。
**效果**:把竞赛组织的手工建仓自动化。
### `gitlink-health`
> 项目健康度分析(专用工作流)
**类型**C·数据分析 **作用**:项目健康度分析(专用工作流):采集到 SQLite 算聚合指标。
**功能**health +fetch 把 PR/Issue 落库 → 算响应时长、PR 合并效率、贡献者活跃度等指标 → 报告。
**效果**:用确定性的 SQL 指标回答"项目维护得好不好"。
### `gitlink-insight`
> 项目健康度与协作洞察
**类型**C·数据分析 **作用**:项目健康度与协作洞察。
**功能**:分析 Issue/PR 指标 + 贡献者活跃度 → 生成周报和健康度报告。
**效果**:了解项目进展与团队协作状况。
### `gitlink-ci-health`
> CI 健康巡检
**类型**C·数据分析 **作用**CI 健康巡检。
**功能**:检查 CI/CD 授权状态、构建历史和成功率 → CI 健康度报告。
**效果**:排查 CI 故障、分析构建成功率。
### `gitlink-contributor-insight`
> 贡献者活跃度分析
**类型**C·数据分析 **作用**:贡献者活跃度分析。
**功能**:分析贡献者活跃度、贡献趋势、工作节奏 → 洞察报告。
**效果**:评估成员参与度、发现核心贡献者。
### `gitlink-license-compliance`
> 许可证合规检查
**类型**C·数据分析 **作用**:许可证合规检查。
**功能**:扫描许可证兼容性、依赖合规性、敏感信息泄露 → 结构化合规报告。
**效果**:排查开源风险、准备合规开源。
---
## 子赛题三 · 工作流2B 类)
### `gitlink-pr-guard`
> 代码质量看门人
**类型**B·AI 工作流 **作用**代码质量看门人PR 提交后跑完 5 步门禁闭环。
**功能**:采集(pr)→AI Review(code-review)→CI(ci)→汇总评论(api)→质量判定/合并(pr);门禁规则 0 Critical+CI 成功→合并。
**效果**:区别于 code-review 只审查pr-guard 是会下结论、会合并的完整闭环(子赛题三旗舰)。
### `gitlink-workflow`
> AI 自动化工作流
**类型**B·AI 工作流 **作用**AI 自动化工作流域:提供可复用的多步编排命令。
**功能**+triage Issue 分拣、+health 健康度、+pr-summary PR 摘要、+repo-report 仓库报告。
**效果**:把高频分析场景封装成单命令,供其他工作流复用。
---
## 子赛题四 · 科研辅助9C 类)
### `gitlink-research-insight`
> 科研仓库洞悉
**类型**C·数据分析 **作用**科研仓库洞悉S1/S3四维科研画像 + 谱系。
**功能**:挖掘提交时间线/PR 演进/创新点;四维评分(可复现性 5 项/活跃度/引用价值/协作健康)+ 巴士因子 + fork 检测。
**效果**:回答"能不能复现/引用/合作";对真实仓库验证:识别 fork、巴士因子 17%、可复现性 8/10。
### `gitlink-research-graph`
> 科研热点追踪与知识图谱子赛题四·S2
**类型**C·数据分析 **作用**科研热点追踪与知识图谱S2
**功能**:按关键词/分类抓取仓库 → 构建「仓库-学者-主题」networkx 图谱 → 热度榜 + 飙升项目。
**效果**:辅助科研选题与前沿跟踪(呼应"知识图谱"要求)。
### `gitlink-collab-match`
> 科研协作智能匹配子赛题四·S4
**类型**C·数据分析 **作用**科研协作智能匹配S4
**功能**:分析仓库技术缺口 + 候选人科研画像 → TF-IDF+余弦匹配 → 协作推荐方案。
**效果**:智能找到跨团队/跨学者的合作伙伴。
### `gitlink-research-progress`
> 科研进度智能跟踪与预警子赛题四·S5
**类型**C·数据分析 **作用**科研进度智能跟踪与预警S5
**功能**:统计提交/Issue/里程碑 → 阈值规则产出 stale/逾期/bus factor 风险预警 + 进度周报。
**效果**:辅助课题组项目管理、提前预警风险。
### `gitlink-research-visual`
> 科研成果可视化沉淀子赛题四·S6
**类型**C·数据分析 **作用**:科研成果可视化沉淀。
**功能**:把时间线/贡献者热力/语言占比/里程碑甘特沉淀成交互 HTML。
**效果**:支持学术分享与成果梳理。
### `gitlink-research-fork-impact`
> 科研 Fork 影响力分析
**类型**C·数据分析 **作用**:科研 Fork 影响力分析。
**功能**:分析 fork 的改进方向与影响力 → 科研想法传播图谱。
**效果**:揭示科研想法的传播路径。
### `gitlink-research-tracker`
> 技术评估与调研报告
**类型**C·数据分析 **作用**:技术评估与调研报告。
**功能**:对技术项目多维度评估(社区活跃度/成熟度/技术趋势)→ 含选型建议的调研报告。
**效果**:辅助科研选题分析、竞品对比研究。
### `gitlink-scholar-profile`
> 学者/团队科研画像
**类型**C·数据分析 **作用**:学者/团队科研画像。
**功能**:跨仓库聚合分析用户/组织的科研产出 → 影响力雷达 + 代表性成果报告。
**效果**:评估某学者/团队的科研产出全貌。
### `gitlink-compliance`
> 开源合规检查
**类型**C·数据分析 **作用**开源合规与复现性检查S2/S3
**功能**:扫描许可证、密钥、依赖、隐私 → 验证实验可复现性 → 合规评估报告。
**效果**:保障学术规范、确认可复现。
---
## 三、整体效果与价值
- **覆盖广**53 个 Skill 覆盖课程 6 大场景 + 个人效率/文档自动化/监控守护/科研辅助等扩展examples 覆盖率 52/53。
- **可被 AI 驱动**:每个 Skill 遵循 frontmatter + CRITICAL 三连 + 引用 gitlink-shared 的规范Claude Code 等 Agent 读 SKILL.md 即可按工作流编排命令。
- **三类协同**A 类提供标准化命令、B 类编排端到端场景、C 类产出数据洞察——从「能用」到「好用」到「有洞见」逐层提升。
- **真实可用**snippet 7 命令、research-insight 四维画像等已端到端实测,输出符合各自 SKILL.md 模板。

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

View File

@ -0,0 +1,187 @@
# 子赛题四 · 使用说明(热点分析 + 科研画像)
> 本文聚焦子赛题四两个核心功能:**① 科研热点分析与知识图谱**(对应 `gitlink-research-graph`S2、**② 科研仓库画像**(对应 `gitlink-research-insight`S1
> 两者均**命令行独立运行,不依赖云端网页**;内容与对应 SKILL.md 保持一致。
## 环境准备
```bash
cd gitlink-cli # 仓库根(含 scripts/research/
gitlink-cli auth login # Token 7 天有效;平台数据采集需登录
pip install -r scripts/research/requirements.txt # 热点图谱需 networkx画像仅需标准库
```
> 算法层在 `scripts/research/`**Go 出数据gitlink-cli + collect.py+ Python 做算法**,取数与计算分离、可离线单测。
---
# 一、热点分析 · 科研热点追踪与知识图谱
## 1.1 功能定位
给定一个研究方向(如「深度学习」「知识图谱」),回答:**有哪些相关仓库?哪些主题是热点?哪些学者/团队活跃?** 并把「关键词 → 仓库 → 学者/主题」关系画成一张知识图谱,为开题、综述、找合作做态势感知。
**对应 Skill**`skills/gitlink-research-graph/SKILL.md`子赛题四·S2
**实现**`scripts/research/graph_build.py`(建图谱)+ `scripts/research/hotspot.py`(热度评分/飙升项目)。
## 1.2 数据与算法
**① 取数 `collect()`**(在线):对每个关键词调 `search +repos`(按 `repo_fullname` 去重,取 top N再对每个仓库取 `repo +info` / `repo +contributors` / `repo +languages` / `repo +readme`(前 4000 字符)。
**② 建图 `build_graph()`**(纯函数,不联网,`networkx.MultiDiGraph`
- **节点**`repo:owner/name`(含 language/stars/forks/desc、`scholar:login`(来自 contributors过滤 bot/i-robot、`topic:x`(由 `topics.py` 词典在 description+readme 上抽取)。
- **边**5 类):
| 边类型 | 含义 | 权重 |
|---|---|---|
| `contributes_to` | scholar → repo | contribution_perc 解析为 0~1 |
| `owns` | scholar → repoauthor==contributor | — |
| `covers_topic` | repo → topic | 出现次数/max |
| `collaborates_with` | scholar ↔ scholar共贡献同一仓库 | — |
| `related_to` | topic ↔ topic同一仓库共现 | — |
**③ 热度评分**`hotspot.py` 补充):综合热度分 `stars + forks×2 + visits//10 + 近期更新加成`≤7天+30 / ≤30天+20 / ≤90天+10 / ≤180天+5`compute_velocity` 识别短期飙升项目。
## 1.3 命令与参数
```bash
# A. 知识图谱(主)—— 默认输出 JSON 到 stdout
python scripts/research/graph_build.py --keywords "deep learning,nlp"
# 输出四件产物到目录
python scripts/research/graph_build.py --keywords "knowledge graph,gnn" --repos-limit 20 --out ./out
# B. 热度评分/飙升项目(补充)
python scripts/research/hotspot.py --category 深度学习 --limit 30 --out ./out # GitLink 官方分类精选源(自带 visits
python scripts/research/hotspot.py --keywords "deep learning,机器学习" --limit 12 --days 90 --out ./out # 关键词源 + 近 90 天飙升
```
| 参数 | 说明 |
|---|---|
| `--keywords` | 逗号分隔的科研关键词(图谱/热度均支持) |
| `--category` | GitLink 官方分类名(仅 hotspot.py自带 visits 热度字段) |
| `--repos-limit` / `--limit` | 取多少个仓库 |
| `--days` | 近 N 天过滤(仅 hotspot.py0=不过滤,用于找飙升) |
| `--out` | 输出目录 |
## 1.4 输出产物
| 文件 | 内容 |
|---|---|
| `graph.json` | 结构化图谱:`nodes`(repo/scholar/topic) + `edges`(5 类) + `core_scholars` + `core_teams` + `topic_heat` + `meta` |
| `report.md` | 中文趋势报告:主题热度榜 Top10 + 核心学者 + 核心团队 |
| `graph.mmd` | Mermaid 图(按 repo/scholar/topic 三色 classDef**截断到 ≤40 节点防爆炸** |
| `graph.dot` | Graphviz DOT`dot -Tsvg graph.dot -o graph.svg` 渲染) |
`graph.json` 结构示例:
```json
{
"scenario": "S2_research_knowledge_graph",
"nodes": [{"id":"repo:owner/name","type":"repo","props":{"language":"Python","stars":120}}],
"edges": [{"source":"scholar:alice","target":"repo:owner/name","type":"contributes_to","weight":0.6}],
"core_scholars": [{"login":"alice","repo_count":2}],
"topic_heat": [{"topic":"deep_learning","count":2}]
}
```
## 1.5 真实验证
在真实科研仓库生态 **`mindspore-Ecosystem/mindspore`** 验证(关键词 `mindspore`):图谱正确识别 deep_learning / scientific_computing / nlp / computer_vision 等主题;`covers_topic` 权重落在 (0,1]`contributes_to` 正确解析 contribution_perc"60%"→0.6bot 账号被过滤。单测 `test_graph_build.py`17 用例,离线 mock
## 1.6 Agent 触发Claude Code
> 读 skills/gitlink-research-graph/SKILL.md用关键词 `deep learning,nlp` 在 GitLink 构建科研知识图谱:调 `graph_build.py --keywords "..." --out ./out`,把 `topic_heat`(热点主题)和 `core_scholars`(核心学者)读回,用中文给我一份这个方向的热点态势小结。
## 1.7 渲染图谱
Mermaid 块可直接贴进支持 Mermaid 的 Markdown 查看器DOT 用 `dot -Tsvg graph.dot -o graph.svg` 出矢量图。
---
# 二、科研画像 · 仓库级洞悉 + 四维评分
## 2.1 功能定位
面对一个陌生科研代码仓库,回答:**它是怎么一步步长成现在这样的(谱系)?值得引用/复现到哪一步?** 从提交谱系、合并节奏、文档演进、实验组织、创新点五个角度做 lineage 分析,并给出**四维科研评分**(可复现性/活跃度/引用价值/协作健康)。
**对应 Skill**`skills/gitlink-research-insight/SKILL.md`子赛题四·S1
**实现**`scripts/research/lineage.py`(谱系算法)+ SKILL.md 四维评分体系。
## 2.2 数据与算法lineage.py
**① 取数**collect.py 封装 gitlink-cli`repo_info`(默认分支)、`commits(ref=默认分支)`、`prs(state=merged)`、`tree` + `tree(path='docs')`、`readme`。
**② 谱系算法**(纯函数,已单测,不联网):
| 函数 | 产出 |
|---|---|
| `is_experiment_file` | 识别 experiment*/benchmark*/eval*/tests?/data/ → 科研产物文件 |
| `is_doc_file` | *.md / docs/* → 文档 |
| `build_branch_map` | 分支列表单分支简化name/commits/last_active/is_default |
| `pr_merge_patterns` | 合并 PR 按时间升序number/title/merged_time/changed_files |
| `doc_evolution` | docs/*.md 的演进file/last_date |
| `innovation_points` | 高影响合并(改文件多 / 合入默认分支 / 含里程碑关键词)→ 创新点(描述+证据+类别) |
## 2.3 四维评分体系(回答「值不值得引用/复现」)
| 维度 | 满分 | 判定 |
|---|:--:|---|
| 🔁 **可复现性**(科研核心) | 10 | CI 配置(+2) / 依赖锁定 go.sum 等(+2) / 数据说明(+2) / 运行文档(+2) / 版本归档 release·tag(+2);工程类仓库「数据项」算 N/A |
| 📈 **活跃度** | 10 | 近 3 月提交频率 + Issue/PR 活跃 + 贡献者趋势 |
| 📑 **引用价值** | 10 | LICENSE + 版本归档 + 文档完整 + 社区关注 |
| 🤝 **协作健康** | 10 | Issue 响应 + PR 合并率 + **巴士因子**(核心贡献者占比,>50% 单点风险) |
**关键设计**
- **fork 检测Step 0**:若是 fork引用价值自动改评 upstream避免「评了半天是别人的项目」
- **巴士因子**:核心贡献者提交占比,越集中越危险。
## 2.4 命令与参数
```bash
# 默认输出 JSON 到 stdout
python scripts/research/lineage.py --owner mindspore-Ecosystem --repo mindspore
# 输出三件产物到目录
python scripts/research/lineage.py --owner <OWNER> --repo <REPO> --branches-limit 5 --out ./out
# 可复现脚本
bash skills/gitlink-research-insight/examples/research-insight-workflow.sh <OWNER> <REPO> [OUT_DIR]
```
| 参数 | 说明 |
|---|---|
| `--owner` / `--repo` | 目标仓库(必填) |
| `--branches-limit` | 分支分析上限 |
| `--out` | 输出目录(不传则 JSON 到 stdout |
## 2.5 输出产物
| 文件 | 内容 |
|---|---|
| `lineage.json` | commit_timeline / branch_map / pr_merge_patterns / doc_evolution / experiment_files / innovation_points / meta |
| `report.md` | 中文洞悉报告(这个科研项目怎么长成、关键创新点) |
| `branch_graph.mmd` | Mermaid **gitGraph** 分支演进图 |
`lineage.json` 结构示例:
```json
{
"scenario": "S1_repository_research_insight",
"repo": "owner/repo", "default_branch": "master",
"commit_timeline": [{"date":"2024-05-01","count":12}],
"innovation_points": [{"description":"...","evidence":"PR #2 ...","category":"大规模重构/新特性"}],
"meta": {"commit_count":320,"merged_pr_count":9,"doc_count":5,"experiment_file_count":8}
}
```
## 2.6 真实验证
- **`mindspore-Ecosystem/mindspore`**default_branch=masterissue≈20346PR=9贡献者=6提交时间线、合并 PR 演进、docs 清单、benchmark/tests 实验文件均正确识别;高影响合并被标为「大规模重构/新特性」创新点。
- **`whale_hihihi/gitlink-cli`**四维评分端到端验证fork 检测识别为 `Gitlink/gitlink-cli` 的 fork → 引用价值改评 upstream巴士因子 17%(低风险);可复现性 8/10。报告原件 `demo/research-insight-report-whale_gitlink-cli.md`
单测 `test_lineage.py` 全部离线通过(不联网、不调 gitlink-cli
## 2.7 Agent 触发Claude Code
> 读 skills/gitlink-research-insight/SKILL.md评估 `whale_hihihi/gitlink-cli` 这个科研项目值不值得引用和复现:
> 先做 fork 检测(若 fork 则引用价值改评 upstream→ 调 `lineage.py --owner whale_hihihi --repo gitlink-cli --out ./out` 取谱系 → 按四维评分表可复现性5项/活跃度/引用价值/协作健康+巴士因子)打分 → 给我一份科研画像报告。
---
# 三、两个功能的配合
```
热点分析(找方向) 科研画像(评估具体仓库)
关键词/分类 ──→ 热度榜 ──→ 选定高潜力仓库 ──→ lineage 谱系 + 四维评分
↓ ↓
知识图谱(主题/学者) 引用/复现建议
```
先用**热点分析**在一个研究方向里找飙升/高潜力仓库与活跃学者,再用**科研画像**对候选仓库逐一评估「值不值得引用、能不能复现」,形成「选题 → 评估」闭环。
---
# 四、故障排查
| 现象 | 解决 |
|---|---|
| `401 / 请登录` | `gitlink-cli auth login`Token 7 天有效) |
| `ModuleNotFoundError: networkx` | `pip install -r scripts/research/requirements.txt`(热点图谱必需) |
| 大仓库采集慢/限流 | 减小 `--repos-limit` / `--limit`hotspot.py 用 `--category` 精选源缩小范围 |
| `repo +info` 取不到 default_branch | 目标仓库可能为空或无默认分支,换一个有提交历史的仓库 |
| Mermaid 节点太多 | graph.mmd 已截断到 ≤40 节点;如需全量用 graph.dot + Graphviz 渲染 |

View File

@ -0,0 +1,137 @@
# 子赛题四 · 科研场景应用报告
> **提交要求覆盖**:方案技术实现(第三章)· 科研赋能价值(第四章)· 落地效果(第五章)。
> 核心两功能:**① 科研热点分析与知识图谱**`gitlink-research-graph`S2、**② 科研仓库画像**`gitlink-research-insight`S1与《使用文档》一致。
> 配图:`科研知识图谱.png` / `科研知识图谱.drawio`、`科研S1-S6流程与知识图谱.png`。
---
## 一、方案概述
依托 gitlink-cli 的数据获取能力 + Python 数据分析 + 知识图谱 + AI 挖掘,面向科研工作者/课题组,把 GitLink 平台的代码托管与协作数据转化为科研创新支撑。方案按科研全生命周期设计 **S1S5 五场景**,其中**热点分析**与**科研画像**是两个核心功能(已独立成 Skill 并在真实仓库验证):
| 场景 | Skill | 脚本 | 核心输出 |
|---|---|---|---|
| **S2 科研热点分析**(核心) | `gitlink-research-graph` | `graph_build.py` + `hotspot.py` | 热度榜 + 飙升项目 + 主题热度 + 核心学者/团队 + **「仓库–学者–主题」知识图谱** |
| **S1 科研仓库画像**(核心) | `gitlink-research-insight` | `lineage.py` + 四维评分 | 谱系(提交/PR/文档/实验/创新点)+ **四维评分** + 巴士因子 + fork 检测 |
| S3 合规/复现 | `gitlink-compliance` | `repro.py` | 许可证/隐私/复现性评估报告 |
| S4 进度预警 | `gitlink-research-progress` | `report.py` | 进度周报 + 风险预警 |
| S5 可视化 | `gitlink-research-visual` | `visual.py` | 时间线/热力/甘特交互图 |
---
## 二、方法论
- 参考开源社区指标体系 **CHAOSS**(社区健康度评分标准)。
- 借鉴 GitHub 热门项目 **TrendRadar**star 60.3K)的「飙升项目」思路。
- 复用 **GitLink 平台自带的项目分类与周/月热门排行榜**作为参考指标与精选数据源。
- 热点分析流程:**选大方向 → 取候选仓库 → 算热度/建图谱 → 提取飙升项目/热门主题/活跃学者 → 报告**。
---
## 三、方案技术实现
### 3.1 总体架构Go 出数据 + Python 做算法(取数与计算分离)
```
gitlink-cliGo──collect.py──▶ 原始数据JSON envelope 解析 + 分页)
┌─────────────┴─────────────┐
▼ ▼
graph_build.py / hotspot.py lineage.py
(热点分析:建图 + 热度) (画像:谱系 + 评分)
│ │
▼ ▼
graph.json/mmd/dot + report lineage.json/mmd + report
(纯函数,离线可单测) (纯函数,离线可单测)
```
**取数collect.py与算法compute/build严格分离**:在线取数只负责拉数据,算法全是**不联网的纯函数**,可用 mock 数据离线单测——保证可复现、可回归。
### 3.2 数据采集层
统一经 `collect.py` 薄封装 gitlink-clisubprocess + envelope 解析 + 分页):
- 热点分析:`search +repos`(关键词去重 top N→ 逐仓 `repo +info / +contributors / +languages / +readme``hotspot.py` 另支持 `explore +pinned --category` 官方精选源(自带 visits/praises/forked/topics
- 科研画像:`repo_info`(默认分支)、`commits(ref=默认分支)`、`prs(state=merged)`、`tree` + `tree(path='docs')`、`readme`。
### 3.3 热点分析算法(核心一)
**① 知识图谱构建 `build_graph()`**`networkx.MultiDiGraph`,纯函数):
- **3 类节点**`repo:owner/name`(含 language/stars/forks/desc、`scholar:login`contributors过滤 bot/i-robot、`topic:x``topics.py` 词典在 description+readme 抽取)。
- **5 类边**`contributes_to`scholar→repo权重=contribution_perc 0~1、`owns`、`covers_topic`repo→topic、`collaborates_with`scholar↔scholar 共贡献)、`related_to`topic↔topic 共现)。
**② 热度评分**`hotspot.py`,纯函数):
```
综合热度 = stars + forks×2 + visits//10 + 近期更新加成
(≤7天+30 / ≤30天+20 / ≤90天+10 / ≤180天+5)
飙升识别 = compute_velocity = stars / updated_days_ago (日均星标增速)
```
### 3.4 科研画像算法(核心二)
**① 谱系分析 `lineage.py`**6 个纯函数,已单测):
| 函数 | 产出 |
|---|---|
| `is_experiment_file` / `is_doc_file` | 识别 benchmark/eval/tests/data 等科研产物与 docs 文档 |
| `build_branch_map` | 分支演进name/commits/last_active/is_default |
| `pr_merge_patterns` | 合并 PR 按时间升序number/title/merged_time/changed_files |
| `doc_evolution` | docs/*.md 演进file/last_date |
| `innovation_points` | 高影响合并 → 创新点(描述+证据+类别,如「大规模重构/新特性」) |
**② 四维评分体系**(回答「值不值得引用/复现」):
| 维度 | 满分 | 判定 |
|---|:--:|---|
| 🔁 可复现性(科研核心) | 10 | CI(+2)/依赖锁定(+2)/数据说明(+2)/运行文档(+2)/版本归档(+2)工程类「数据项」N/A |
| 📈 活跃度 | 10 | 近 3 月提交频率 + Issue/PR 活跃 + 贡献者趋势 |
| 📑 引用价值 | 10 | LICENSE + 版本归档 + 文档完整 + 社区关注 |
| 🤝 协作健康 | 10 | Issue 响应 + PR 合并率 + **巴士因子**(核心贡献者占比,>50% 单点风险) |
**关键设计****fork 检测Step 0**——若是 fork引用价值自动改评 upstream避免「评了半天是别人的项目」。
### 3.5 工程质量
- **确定性、可复现**算法为纯函数同输入同输出非「AI 心情」);热点图谱对同一关键词集合产出同构 graph.json。
- **可测试**`test_graph_build.py`17 用例)、`test_lineage.py` 等均离线 mock 通过,不联网、不调 gitlink-cli。
- **Skill 化**:两个核心功能各对应一个 SKILL.md遵循 frontmatter + CRITICAL 三连 + 引用 gitlink-shared兼容 Claude CodeAI 读 SKILL.md 即可编排。
- **零云依赖**:所有场景命令行独立运行(`python graph_build.py / lineage.py`),不强依赖云端网页。
---
## 四、科研赋能价值
### 4.1 热点分析:从「散落仓库」到「可决策的热度情报」
- **选题/综述**:按关键词/学科一键得到主题热度榜 Top10 + 飙升项目,回答「这个方向在升温吗」。
- **找人合作**:知识图谱的 `core_scholars`/`core_teams` 直接给出某方向的活跃学者与团队,支撑跨团队协作匹配。
- **知识图谱**:构建「仓库–学者–主题」领域图谱(呼应课程「知识图谱」要求),把零散仓库元数据升格为可视化的领域全景。
### 4.2 科研画像:从「看不懂」到「敢引用/能复现」
- **引用决策**:四维评分 + fork 检测直接回答「这个仓库值不值得写进论文、引哪个版本/上游」。
- **复现评估**:可复现性维度逐项检查 CI/依赖锁定/数据/文档/版本归档,判断能否独立复现。
- **风险预警**:巴士因子揭示核心人员单点风险;谱系的创新点提炼研究脉络,辅助科研复盘与新 Idea 生成。
### 4.3 打通开源生态与学术科研
把 GitLink 的代码托管与协作数据stars/forks/contributors/commits/PR/Issue/readme自动转化为科研分析输入**降低科研工作者使用开源协作数据的门槛**,形成「热点找方向 → 画像评估具体仓库 → 合规/进度/可视化跟进」的全链路。
---
## 五、落地效果(真实仓库验证)
### 5.1 热点分析 · 真实验证
在真实科研仓库生态 **`mindspore-Ecosystem/mindspore`** 验证(关键词 `mindspore`
- 知识图谱**正确识别** deep_learning / scientific_computing / nlp / computer_vision 等主题节点;
- `covers_topic` 权重落在 (0,1]`contributes_to` 正确解析 contribution_perc"60%"→0.6
- boti-robot账号被过滤Mermaid 输出按 repo/scholar/topic 三色着色、节点截断到 ≤40 防爆炸。
- 产物:`graph.json` + `report.md`(主题热度榜 + 核心学者)+ `graph.mmd` + `graph.dot`
### 5.2 科研画像 · 真实验证
- **`mindspore-Ecosystem/mindspore`**default_branch=masterissue≈20346PR=9贡献者=6提交时间线、合并 PR 演进、docs 清单、benchmark/tests 实验文件均正确识别;高影响合并被标为「大规模重构/新特性」创新点。
- **`whale_hihihi/gitlink-cli`**四维评分端到端验证fork 检测识别为 `Gitlink/gitlink-cli` 的 fork → 引用价值改评 upstream**四维评分 可复现性 8/10、活跃度 7、引用价值 8、协作健康 10巴士因子 17%(低风险)**。报告原件 `demo/research-insight-report-whale_gitlink-cli.md`,三层证据(命令层/编排层/输出层)齐备。
### 5.3 可复现的运行
```bash
# 热点分析(独立运行)
python scripts/research/graph_build.py --keywords "deep learning,nlp" --repos-limit 20 --out ./out
python scripts/research/hotspot.py --category 深度学习 --limit 30 --out ./out
# 科研画像(独立运行)
python scripts/research/lineage.py --owner whale_hihihi --repo gitlink-cli --out ./out
# 或在 Claude Code 用自然语言触发(读对应 SKILL.md
```
单测:`test_graph_build.py`17、`test_lineage.py` 等离线全过。
---
*本报告对应子赛题四「应用 GitLink 辅助科研」,覆盖方案技术实现、科研赋能价值与落地效果三项要求;两个核心功能(热点分析、科研画像)均在 GitLink 真实科研类仓库上完成验证。*