推荐阅读#
今日技术实践#
解决的问题#
- Teambition MCP 全链路打通:验证了
BatchGetFileDetails、ListTaskActivitiesV3、PostV3MemberQuery三个核心 API 的完整调用链路,解决了从任务评论中提取附件信息的需求。 - 成员 ID 映射机制:建立了项目成员 ObjectId → 真实姓名的映射表(37人),支持"陌生 ID 自动触发全量刷新"的缓存策略,让任务动态终于可读了。
- tb-apk-uploader Skill 封装:将"TB附件获取 → 下载 → 重命名 → 上传 Nexus → 返回链接"的完整流程封装为独立 Skill,经 skill-creator 规范优化并打包验证通过。
学到的新东西#
- mcporter 调用参数格式:
mcporter call必须用--args传参且包在requestBody里,用--body会报 SyntaxError。这是踩了一个小时的坑才找到的。 - Skill 封装规范:frontmatter description 要包含完整触发词,body 只保留工作流程和脚本用法,不要重复 frontmatter 信息。渐进式披露,核心逻辑在脚本里。
- APK 文件名标准化规则:TB 附件下载后经常带
.1后缀、(1)括号、E前缀,需要正则清洗。如RinoTrack_E4218_3.2.820260326_release(1).apk.1→RinoTrack_4218_3.2.820260326_release.apk。
实际产出#
- 成功上传了两个 APK 到 Nexus(RinoTrack 85MB + 微信 248MB)
- 自动回复了下载链接到 DO-6456 评论区
- tb-apk-uploader Skill 打包为
.skill文件,可分发复用
踩坑记录#
- mcporter 参数格式:
--body→--args+requestBody包装 - Nexus 重复上传:同一文件重复上传返回 HTTP 400,不是错误而是"已存在",需要正确处理
其他思考#
- 骑行语音 AI 助手项目构思(代号备选 CADENCE),核心场景:骑行中记录灵感 + 处理工作任务,已创建滴答清单任务储备。
- 讨论了 DevOps/SRE 在 AI 时代的转型方向,核心结论:不需要转行,需要在现有方向上叠加 AI 能力。
