diff --git a/竞赛提交文档以及演示视频相关图片/PR提交清单.md b/竞赛提交文档以及演示视频相关图片/PR提交清单.md new file mode 100644 index 0000000..24b9d9e --- /dev/null +++ b/竞赛提交文档以及演示视频相关图片/PR提交清单.md @@ -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 领域 + +update(GET-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 搜索 Issue(10 筛选参数) | + +## 三、其他子赛题相关 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/`。 diff --git a/竞赛提交文档以及演示视频相关图片/子赛题一——变更说明文档.md b/竞赛提交文档以及演示视频相关图片/子赛题一——变更说明文档.md new file mode 100644 index 0000000..0102566 --- /dev/null +++ b/竞赛提交文档以及演示视频相关图片/子赛题一——变更说明文档.md @@ -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/delete,CSV 驱动) | +| **增强已有域** | search(+issues 多筛选)、release(+download 流式下载)、pr(+diff 两步 +reviews)、repo(+tree +contributors)、ci、pipeline、user 等 | +| **框架/质量** | register.go 注册全域、i18n(zh-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 ` · `+history --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 `` + +### `label` — Issue 标签管理 + +| 动词 | 功能 | +|---|---| +| `+list` | 列出 | +| `+create` | 创建 | +| `+update` | 更新(PATCH 部分更新) | +| `+delete` | 删除 | + +**常用参数**:``+create --name <名> --color <色>` · `+update --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 ` · `+export --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 `、`--max`、`--delay`。 + +## 三、增强的已有域 + +| 域 | 增强 | 关键参数 | +|---|---|---| +| search | `+issues`(10 筛选)、`+repos`、`+users` | `-k 关键词 -c 分类(all/opened/closed) -a 负责人 --作者 -m 里程碑 -t 标签 --sort-by --sort-dir -l 条数 -p 页码` | +| release | `+download`(突破 JSON-only,HTTP 流式下载二进制) | `-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 ./...` 全绿。 diff --git a/竞赛提交文档以及演示视频相关图片/子赛题一——能力架构图.png b/竞赛提交文档以及演示视频相关图片/子赛题一——能力架构图.png new file mode 100644 index 0000000..e1a8591 Binary files /dev/null and b/竞赛提交文档以及演示视频相关图片/子赛题一——能力架构图.png differ diff --git a/竞赛提交文档以及演示视频相关图片/子赛题三——工作流架构图.png b/竞赛提交文档以及演示视频相关图片/子赛题三——工作流架构图.png new file mode 100644 index 0000000..cdde047 Binary files /dev/null and b/竞赛提交文档以及演示视频相关图片/子赛题三——工作流架构图.png differ diff --git a/竞赛提交文档以及演示视频相关图片/子赛题三——工作流说明文档.md b/竞赛提交文档以及演示视频相关图片/子赛题三——工作流说明文档.md new file mode 100644 index 0000000..05b49da --- /dev/null +++ b/竞赛提交文档以及演示视频相关图片/子赛题三——工作流说明文档.md @@ -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 +files -i ` | PR 编号 | 文件清单 + diff 内容 | +| ② | AI 审查分级 | `code-review` Skill | diff | Critical/Warning/Suggestion 发现列表 | +| ③ | 查 CI 状态 | `ci +builds` | 仓库 | 构建结果(通过/失败/未知) | +| ④ | 汇总评审评论 | `api POST /:o/:r/pulls//reviews` | 发现 + CI | 结构化 Review 评论 | +| ⑤ | 质量判定 | 门禁规则 + `pr +merge -i --method squash` | Critical 数 + CI | 通过→合并 / 拒绝→附问题清单 | + +### A.5 门禁规则(硬性、可解释) +``` +0 Critical + CI success → ✅ 建议合并(pr +merge) +否则 → 🔴 拒绝,附 Critical/Warning 问题清单 +``` + +### A.6 触发方式 +**脚本(可复现)**:`demo/pr-guard-workflow.sh `——把 5 步采集命令串起来自动跑,AI 审查/判定在 Claude Code 里做。 +**Agent 提示词(Claude Code 直接粘)**: +> 读 skills/gitlink-pr-guard/SKILL.md,把关 `/` 的 PR #: +> 采集 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-gatekeeper(Policy-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 对 `/` PR # 出评分卡:采集→分级→五维评分→硬门禁→裁决→渲染评分卡。先 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 --repo --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 --repo [--apply] # dry-run 预览,--apply 才真写 +python scripts/community_ops_sweep.py checkpoint --owner --repo # 推进 .last-sweep + 追加 triage-log +``` + +### C.5 触发方式 +**原生 Claude Code Workflow**:`/community-ops-sweep owner= repo=`(若放入 `.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 项事件。三者的底层 Skill(code-review / ci / issue / pr 等)即子赛题二的产物,复用于本工作流。 diff --git a/竞赛提交文档以及演示视频相关图片/子赛题三——视频演示.mp4 b/竞赛提交文档以及演示视频相关图片/子赛题三——视频演示.mp4 new file mode 100644 index 0000000..cc04ba2 Binary files /dev/null and b/竞赛提交文档以及演示视频相关图片/子赛题三——视频演示.mp4 differ diff --git a/竞赛提交文档以及演示视频相关图片/子赛题二——Skills功能详解.md b/竞赛提交文档以及演示视频相关图片/子赛题二——Skills功能详解.md new file mode 100644 index 0000000..10893de --- /dev/null +++ b/竞赛提交文档以及演示视频相关图片/子赛题二——Skills功能详解.md @@ -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 命令域(21,A 类·命令包装) + +### `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/+delete(CSV 驱动,含公共引擎、--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/+delete(PATCH 部分更新)。 + +**效果**:补齐标签维护操作,配合批量打标签使用。 + +### `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/+update(GET-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 项目动态。 + +**效果**:提供用户画像数据,支撑个人视角 Skill(todo 等)。 + +### `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/分析 Skill(20,B/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·数据分析 **作用**:许可证合规检查。 + +**功能**:扫描许可证兼容性、依赖合规性、敏感信息泄露 → 结构化合规报告。 + +**效果**:排查开源风险、准备合规开源。 + + +--- + +## 子赛题三 · 工作流(2,B 类) + +### `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 仓库报告。 + +**效果**:把高频分析场景封装成单命令,供其他工作流复用。 + + +--- + +## 子赛题四 · 科研辅助(9,C 类) + +### `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 模板。 diff --git a/竞赛提交文档以及演示视频相关图片/子赛题二——Skills场景覆盖总览.png b/竞赛提交文档以及演示视频相关图片/子赛题二——Skills场景覆盖总览.png new file mode 100644 index 0000000..a3313f6 Binary files /dev/null and b/竞赛提交文档以及演示视频相关图片/子赛题二——Skills场景覆盖总览.png differ diff --git a/竞赛提交文档以及演示视频相关图片/子赛题二——视频演示.mp4 b/竞赛提交文档以及演示视频相关图片/子赛题二——视频演示.mp4 new file mode 100644 index 0000000..852f5f8 Binary files /dev/null and b/竞赛提交文档以及演示视频相关图片/子赛题二——视频演示.mp4 differ diff --git a/竞赛提交文档以及演示视频相关图片/子赛题四——使用文档.md b/竞赛提交文档以及演示视频相关图片/子赛题四——使用文档.md new file mode 100644 index 0000000..082692c --- /dev/null +++ b/竞赛提交文档以及演示视频相关图片/子赛题四——使用文档.md @@ -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 → repo(author==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.py,0=不过滤,用于找飙升) | +| `--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.6);bot 账号被过滤。单测 `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 --repo --branches-limit 5 --out ./out +# 可复现脚本 +bash skills/gitlink-research-insight/examples/research-insight-workflow.sh [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=master;issue≈20346;PR=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 渲染 | diff --git a/竞赛提交文档以及演示视频相关图片/子赛题四——科研场景应用报告.md b/竞赛提交文档以及演示视频相关图片/子赛题四——科研场景应用报告.md new file mode 100644 index 0000000..f9197fe --- /dev/null +++ b/竞赛提交文档以及演示视频相关图片/子赛题四——科研场景应用报告.md @@ -0,0 +1,137 @@ +# 子赛题四 · 科研场景应用报告 + +> **提交要求覆盖**:方案技术实现(第三章)· 科研赋能价值(第四章)· 落地效果(第五章)。 +> 核心两功能:**① 科研热点分析与知识图谱**(`gitlink-research-graph`,S2)、**② 科研仓库画像**(`gitlink-research-insight`,S1),与《使用文档》一致。 +> 配图:`科研知识图谱.png` / `科研知识图谱.drawio`、`科研S1-S6流程与知识图谱.png`。 + +--- + +## 一、方案概述 + +依托 gitlink-cli 的数据获取能力 + Python 数据分析 + 知识图谱 + AI 挖掘,面向科研工作者/课题组,把 GitLink 平台的代码托管与协作数据转化为科研创新支撑。方案按科研全生命周期设计 **S1–S5 五场景**,其中**热点分析**与**科研画像**是两个核心功能(已独立成 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-cli(Go)──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-cli(subprocess + 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 Code,AI 读 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); +- bot(i-robot)账号被过滤;Mermaid 输出按 repo/scholar/topic 三色着色、节点截断到 ≤40 防爆炸。 +- 产物:`graph.json` + `report.md`(主题热度榜 + 核心学者)+ `graph.mmd` + `graph.dot`。 + +### 5.2 科研画像 · 真实验证 +- **`mindspore-Ecosystem/mindspore`**(default_branch=master;issue≈20346;PR=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 真实科研类仓库上完成验证。* diff --git a/竞赛提交文档以及演示视频相关图片/子赛题四——视频演示.mp4 b/竞赛提交文档以及演示视频相关图片/子赛题四——视频演示.mp4 new file mode 100644 index 0000000..d1f073e Binary files /dev/null and b/竞赛提交文档以及演示视频相关图片/子赛题四——视频演示.mp4 differ