用途
本技能用于指导 OpenHands 生态系统中跨仓库的功能发布工作流。当某项功能在 SDK 中实现后,可能需要传播到多个仓库,该技能帮助分析、评估并规划完整的功能推广流程。
涉及的仓库
功能可能需要在以下仓库中传播:
- SDK(OpenHands/software-agent-sdk)——核心功能实现
- CLI(OpenHands/OpenHands-CLI)——终端界面支持
- GUI(OpenHands/OpenHands 前端目录)——Web 界面支持
- Docs(OpenHands/docs)——文档更新(sdk/ 文件夹)
- Blog(OpenHands/growth-utils blog-post/)——营销与公告
- Video——教程内容(使用 ElevenLabs + Remotion)
工作流
阶段 1:功能发现
首先识别要分析的功能。用户可能指定:发布标签(如 v1.9.0)、具体功能名称、PR 或提交引用、版本之间的比较。
对于发布标签:
# Clone SDK if not present
git clone https://github.com/OpenHands/software-agent-sdk.git
# View release notes
cd software-agent-sdk
git log --oneline v1.8.0..v1.9.0 # Changes between versions
git show v1.9.0 --stat # What changed in this release
对于具体功能:在 SDK 代码库、示例和变更日志中搜索以了解功能范围。
阶段 2:仓库分析
克隆所有相关仓库以分析当前支持情况:
# Clone repositories (use GITHUB_TOKEN for authenticated access)
git clone https://github.com/OpenHands/software-agent-sdk.git
git clone https://github.com/OpenHands/OpenHands-CLI.git
git clone https://github.com/OpenHands/OpenHands.git # Frontend in frontend/
git clone https://github.com/OpenHands/docs.git
git clone https://github.com/OpenHands/growth-utils.git
对每项功能检查支持状态:
- CLI:检查 openhands_cli/,查找功能标志、命令、TUI 组件
- GUI:检查 OpenHands/frontend/src/,查找 React 组件、API 集成
- Docs:检查 docs/sdk/,查找指南页面、API 参考、示例
- Blog:检查 growth-utils/blog-post/posts/,查找公告文章
阶段 3:评估功能重要性
并非所有功能都需要完整推广:
高影响(建议完整推广):新的面向用户的能力、破坏性变更或迁移、重大性能改进、新的集成或工具。
中影响(文档 + 选择性支持):新的 API 方法或参数、配置选项、开发者体验改进。
低影响(仅文档或跳过):内部重构、错误修复、次要增强。
以下情况跳过推广:仅内部变更、测试改进、构建/CI 变更、文档拼写错误。
阶段 4:创建提案
为用户生成结构化提案,包含功能摘要、当前支持状态表(SDK/CLI/GUI/Docs/Blog/Video 各自状态与说明)、推荐操作(各组件具体实现需求,博客与视频是否推荐及理由)、评估(总体优先级、工作量估算、依赖关系)。
阶段 5:用户确认
在继续之前等待用户明确批准。询问要实现哪些组件、优先级排序、对提案的任何修改。
阶段 6:实施
仅在用户确认后:
创建 GitHub Issue:
# Create issue on relevant repo
gh issue create --repo OpenHands/OpenHands-CLI \
--title "Support [feature] in CLI" \
--body "## Context\n[Feature description]\n\n## Implementation\n[Details]\n\n## Related\n- SDK: [link]\n- Docs: [link]"
实现顺序:CLI/GUI 支持(可并行)、文档(依赖第 1 步)、博客文章(依赖第 2 步)、视频(依赖第 3 步)。
各仓库特定规范
CLI(OpenHands/OpenHands-CLI):查看 AGENTS.md 获取开发指南;使用 uv 管理依赖;提交前运行 make lint 和 make test;TUI 组件位于 openhands_cli/tui/;UI 变更需快照测试。
GUI(OpenHands/OpenHands frontend):前端位于 frontend/ 目录;React/TypeScript 代码库;在 frontend/ 中运行 npm run lint:fix && npm run build;遵循 TanStack Query 数据获取模式;i18n 翻译位于 frontend/src/i18n/。
Docs(OpenHands/docs):SDK 文档位于 sdk/ 文件夹;使用 Mintlify(.mdx 文件);代码块可从 SDK 示例自动同步;运行 mint broken-links 验证;遵循 openhands/DOC_STYLE_GUIDE.md。
Blog(OpenHands/growth-utils):文章位于 blog-post/posts/YYYYMMDD-title.md;资源位于 blog-post/assets/YYYYMMDD-title/;frontmatter 格式如下:
---
title: "Post Title"
excerpt: "Brief description"
coverImage: "/assets/blog/YYYYMMDD-title/cover.png"
date: "YYYY-MM-DDTHH:MM:SS.000Z"
authors:
- name: Author Name
picture: "/assets/blog/authors/author.png"
ogImage:
url: "/assets/blog/YYYYMMDD-title/cover.png"
---
功能分析示例
功能:Browser Session Recording(SDK v1.8.0)
- SDK:✅ 已在 openhands.tools.browser 中实现
- CLI:❌ 无回放/导出命令
- GUI:❌ 无录制查看器组件
- Docs:✅ 指南位于 sdk/guides/browser-session-recording.mdx
- Blog:❌ 可为网页抓取用户重点介绍
- Video:考虑 2 分钟演示
建议:中优先级。文档已完成,CLI/GUI 紧急度低(高级功能),博客文章可选。
快速命令
# Check SDK feature presence
grep -r "feature_name" software-agent-sdk/openhands/ --include="*.py"
# Check CLI support
grep -r "feature_name" OpenHands-CLI/openhands_cli/ --include="*.py"
# Check GUI support
grep -r "featureName" OpenHands/frontend/src/ --include="*.ts" --include="*.tsx"
# Check docs coverage
grep -r "feature" docs/sdk/ --include="*.mdx"
# Check blog mentions
grep -r "feature" growth-utils/blog-post/posts/ --include="*.md"
重要说明
始终在创建 Issue 或开始实施前获得用户确认。考虑功能成熟度——新功能在完整推广前可能发生变化。在 Issue 描述中交叉引用仓库之间的 PR。对于破坏性变更,协调所有组件的发布时间。
限制
本技能的收费方式、价格、平台适用范围等信息暂未提供。