forked from Gitlink/gitlink-cli
155 lines
6.4 KiB
Markdown
155 lines
6.4 KiB
Markdown
# 工作日志 — 子任务三 & 子任务四
|
||
|
||
> 项目: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 字段为对象类型 |
|
||
|
||
**问题根因汇总:**
|
||
1. 系统 `gitlink-cli` 是 npm 安装的旧版本(421 字节的 JS wrapper),缺少 `commit`、`collaborator` 等命令
|
||
2. MSYS2 路径 `/e/xxx` 传给 node 时变成了 `E:\e\xxx` — 需要用 `process.argv` 传参或绝对路径
|
||
3. 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` 对当前报告已够用 |
|
||
| 测试覆盖 | ⏳ 待补充 | 已做端到端验证,缺自动化单元测试 |
|