forked from Gitlink/gitlink-cli
5.5 KiB
5.5 KiB
工作日志 — 子任务三 & 子任务四
项目:GitLink CLI 课程实践(《软件演化与运维》) 周期:2026-06-29 ~ 2026-06-30 提交记录:
378d8f1→b0d46b4
2026-06-29
上午:需求理解与方案设计
| 时间段 | 工作内容 |
|---|---|
| 09:00-09:30 | 阅读课程实践任务文档(0613),了解子任务三/四要求 |
| 09:30-09:50 | 探索 gitlink-cli 项目现有结构和资产(CLI 命令、Skills、DevOps) |
| 09:50-10:30 | 设计总体方案,确认四个模块的技术路线 |
| 10:30-11:00 | 用户确认方案:子任务三两个场景、子任务四两个模块,先设计后实现 |
决策记录:
- 子任务三选「社区运营自动化」+「代码质量看门人」两个场景
- 子任务四选「科研项目洞悉」+「热点追踪与知识图谱」两个模块
- 使用 Bash 脚本 + JS 分析引擎的模式,保证可复现性
- 所有写操作默认 DRY_RUN=true
上午:Phase 1-2 — Skill 定义和工作流示例
| 时间段 | 工作内容 | 文件数 |
|---|---|---|
| 11:00-11:20 | 创建目录结构(20 个目录) | — |
| 11:20-11:40 | 编写 4 个 SKILL.md 定义文件 | 4 |
| 11:40-12:00 | 编写 4 个工作流示例文档 | 4 |
下午:Phase 3 — 可复现脚本开发
| 时间段 | 工作内容 | 文件数 |
|---|---|---|
| 13:00-14:00 | 社区运营 4 个脚本(01-issue-triage / 02-weekly / 03-release / full) | 4 |
| 14:00-14:40 | 质量门禁 5 个脚本(01-PR采集 / 02-审查 / 03-CI检查 / 04-决策 / full) | 5 |
| 14:40-15:10 | 科研洞察 3 个脚本(01-数据采集 / 02-分析 / full) | 3 |
| 15:10-15:30 | 热点追踪 3 个脚本(01-搜索 / 02-图谱 / full) | 3 |
下午:Phase 4-5 — 架构图和报告文档
| 时间段 | 工作内容 | 文件数 |
|---|---|---|
| 15:30-15:50 | 4 个 Mermaid 架构图 | 4 |
| 15:50-16:30 | 子任务三 4 份报告(新需求构思+变更测试 × 2场景) | 4 |
| 16:30-17:00 | 子任务四 4 份报告(洞察报告/趋势报告/知识图谱说明) | 4 |
下午:Phase 6 — 配置更新
| 时间段 | 工作内容 |
|---|---|
| 17:00-17:15 | 更新 CLAUDE.md(4 个新 skill 映射) |
| 17:15-17:25 | 创建 2 条 DevOps 流水线 + 更新 .gitignore |
| 17:25-17:30 | 拷贝 SKILL.md 到 .claude/skills/ |
第一次测试与修复
| 时间 | 问题 | 修复 |
|---|---|---|
| 17:30 | 周报变量未展开 | heredoc 'EOF' → EOF |
| 17:30 | commit +list / collaborator +list 不可用 |
发现是系统 PATH 用了 npm 旧版 CLI |
| 17:35 | 科研分析只输出模板 | 创建 analyze.js 独立 JS 分析引擎 |
| 17:40 | node 参数太长 | 改用 JS 直接读文件 |
| 17:50 | search 去重失败 | 修复 MSYS 路径问题 + JSON 结构解析 |
| 17:55 | 知识图谱 [object Object] |
修复 topic/language 字段为对象类型 |
问题根因汇总:
- 系统
gitlink-cli是 npm 安装的旧版本(421 字节的 JS wrapper),缺少commit、collaborator等命令 - MSYS2 路径
/e/xxx传给 node 时变成了E:\e\xxx— 需要用process.argv传参或绝对路径 - GitLink API 返回的
topics和language字段是{id, name}对象而不是字符串
2026-06-30
上午:第二次测试与修复
| 时间 | 问题 | 修复 |
|---|---|---|
| 08:00 | 科研洞察描述为空 | 从 issue.project.description 获取 |
| 08:05 | 热点搜索仍是 0 条 | 创建 hotspot-analyze.js + 修复 node 路径 |
| 08:10 | CLI 检测失效(alias 在脚本中无效) | 创建 detect-cli.sh,用 wrapper + PATH 覆盖 |
| 08:15 | 周报/Release Notes 还是模板 | 创建 health-analyze.js + release-analyze.js |
| 08:20 | Release Notes 文件/行数为 0 | fallback 路径缺 git log --stat,补充 + 中文正则 |
| 08:30 | 知识图谱关系太简单 | 重写 kg-to-html.js:缩放/拖拽/高亮/侧栏/导出 |
| 08:35 | 报告只有 Markdown 不便展示 | 创建 md-to-html.js 通用转换器 |
最终验证
| 模块 | 命令 | 结果 |
|---|---|---|
| 科研洞察 | research-insight-full.sh z2_cc gitlink-cli |
✅ 16 贡献者、15 Issue、4.8/10 分 |
| 热点追踪 | hotspot-tracker-full.sh "machine learning" "深度学习" |
✅ 33 仓库、19 主题标签、11 语言 |
| 社区运营 | community-ops-full.sh z2_cc gitlink-cli |
✅ 三阶段完整输出 |
| 质量门禁 | quality-gate-full.sh z2_cc gitlink-cli |
✅ 脚本就绪(当前无 PR) |
代码提交与 Issue
| 时间 | 操作 |
|---|---|
| 09:00 | commit #1:46 文件,5493 行 |
| 09:05 | git push 到 z2_cc/gitlink-cli |
| 09:10 | 创建 Issue #19(子任务三)和 #20(子任务四) |
| 09:15 | 补充交接文档并提交 |
统计汇总
| 维度 | 数据 |
|---|---|
| 总工作时长 | 约 8 小时 |
| 交付文件数 | 47 个(含交接文档) |
| 代码行数 | ~5,800 行 |
| 修复迭代次数 | 12 次 |
| 最终验证通过率 | 100% |
| Git 提交 | 2 次(378d8f1 + b0d46b4) |
| GitLab Issue | 2 个(#19, #20) |
技术债务 / 待改进
- CLI 版本一致化:当前依赖
detect-cli.sh做运行时检测,更好的方案是将源码全量编译后替换 npm 包 - Git Log 依赖:Release Notes 需要本地 git repo,无法仅通过 API 获取
- HTML 可视化:
md-to-html.js是简易转换器,不支持复杂 Markdown(如图片、嵌套列表) - 测试覆盖:缺少单元测试,当前仅做了端到端手工验证