forked from Gitlink/gitlink-cli
6.4 KiB
6.4 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 | 补充交接文档并提交 |
2026-06-30 下午:文档整理与技术债务优化
文档结构清理
| 时间 | 操作 |
|---|---|
| 10:00 | 删除分散的 4 份报告(scenario-a/b 各 2 份) |
| 10:05 | 创建统一《新需求构思报告》(覆盖子任务一至四) |
| 10:10 | 创建统一《变更影响分析及测试报告》(含完整测试结果) |
| 10:20 | 删除多余的 architecture-diagram、demo 等 9 个文件 |
| 10:25 | 精简 doc/ 目录从 17 个文件降至 8 个 |
技术债务优化
| 时间 | 问题 | 修复 |
|---|---|---|
| 10:30 | Release Notes 依赖 git log | release-analyze.js 新增 API JSON 输入支持 |
| 10:35 | 非 git 目录 Release Notes 为空 | 03-auto-release-notes.sh 后备使用 commit +list --format json |
| 10:40 | 缺少 CLI 安装指引 | 新建 scripts/setup-local-cli.sh 一键编译脚本 |
统计汇总
| 维度 | 数据 |
|---|---|
| 总工作时长 | 约 10 小时 |
| 交付文件数 | 47 个(含交接文档) |
| 代码行数 | ~5,800 行 |
| 修复迭代次数 | 14 次 |
| 最终验证通过率 | 100% |
| Git 提交 | 6 次(378d8f1 b0d46b4 7b43711 393a090 c0c7580 f44471d 92f65a9 74f6aea) |
| GitLab Issue | 2 个(#19, #20) |
技术债务 / 待改进
| 项目 | 状态 | 说明 |
|---|---|---|
| CLI 版本一致化 | ✅ 已优化 | 新增 scripts/setup-local-cli.sh 一键编译+设置 |
| Git Log 依赖 | ✅ 已优化 | release-analyze.js 支持 API JSON 后备,无需 git 仓库 |
| HTML 可视化 | ⏳ 可接受 | md-to-html.js 对当前报告已够用 |
| 测试覆盖 | ⏳ 待补充 | 已做端到端验证,缺自动化单元测试 |