ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

使用 awesome-codex-skills 的 Harvest Automation 技能,在终端用自然语言完成工时记录与项目自动化管理

使用 awesome-codex-skills 的 Harvest Automation 技能,在终端用自然语言完成工时记录与项目自动化管理 使用 awesome-codex-skills 的 Harvest Automation 技能在终端用自然语言完成工时记录与项目自动化管理【免费下载链接】awesome-codex-skillsA curated list of practical Codex skills for automating workflows across the Codex CLI and API.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-codex-skillsoutput_articleCodex 技能实战使用 awesome-codex-skills 的 Harvest Automation 实现工时记录与项目自动化管理本指南以 composio-skills/harvest-automation/SKILL.md 为绝对核心讲解如何在 Codex CLI 中通过 Rube MCP 与 Composio 工具网关用自然语言完成 Harvest 的工时记录time tracking、项目 / 客户 / 任务管理与报表查询。读完本文你将掌握该技能的安装配置流程、11 个HARVEST_*工具的完整参数语义、六个核心工作流以及五个高频踩坑点的规避方法可以直接在终端里落地一套说一句话即可记账工时的自动化工作流。一、技能定位一份可被 Codex 自动触发的 Harvest 操作手册Harvest Automation 是 awesome-codex-skills 仓库中 composio-skills 目录下的一个 Codex Skill。所谓 Skill按照仓库 README.md 的说明是一组模块化的指令包每个技能独立成文件夹内含一个SKILL.md通过 YAML frontmatter 声明name和description元数据正文则是分步执行指引。Codex 读取元数据判断何时触发该技能只有在命中后才加载正文从而保持上下文精简。该技能的 SKILL.md 头部声明如下--- name: Harvest Automation description: Automate time tracking, project management, and invoicing workflows in Harvest -- log hours, manage projects, clients, and tasks through natural language commands. requires: mcp: - rube ---从中可以看出三个关键信息nameHarvest Automation技能的唯一标识description这是 Codex 判断何时触发的匹配依据——当用户的请求涉及在 Harvest 中记录工时、管理项目/客户/任务等场景时该技能会被自动唤起requires.mcp声明该技能依赖名为rube的 MCP 服务器这是所有操作得以执行的基础设施。技能的目标很明确把在 Harvest 里记一笔工时、建一个项目、拉一份报表这类原本要在网页或客户端里完成的重复操作变成在终端里用自然语言一句话搞定全程无需离开命令行。二、工作原理Rube MCP 与 Composio 工具网关如何把一句话变成一次 API 调用Harvest Automation 本身不直接封装 Harvest API而是依赖 Rube MCPhttps://rube.app/mcp提供的工具网关。这一点可以在同仓库的 composio-skills/composio-automation/SKILL.md 中得到印证该技能详细描述了 Rube MCP 的标准工作流Harvest 技能正是这套通用机制下的一个具体业务场景发现工具RUBE_SEARCH_TOOLS先用自然语言描述目标任务返回可用的工具 slug、输入 schema、推荐的执行计划和已知坑。composio-automation 技能特别强调工具 schema 会变化永远不要硬编码工具 slug 或参数先搜索再执行检查连接RUBE_MANAGE_CONNECTIONS确认 Harvest 的 OAuth 连接状态为ACTIVE若未激活则跟随返回的认证链接完成授权执行工具RUBE_MULTI_EXECUTE_TOOL用搜索到的工具 slug 与符合 schema 的参数发起调用注意即使无额外参数也要携带memory可为空{}。因此Harvest Automation 的完整调用链可以概括为自然语言请求 → Codex 依据 description 触发 Harvest Automation 技能 → RUBE_SEARCH_TOOLS 确认工具 schema → RUBE_MANAGE_CONNECTIONS 校验 Harvest 连接 → RUBE_MULTI_EXECUTE_TOOL 执行 HARVEST_* 工具 → 结果以 JSON 返回终端这套设计的好处是解耦技能只负责教会模型怎么用工具真实的鉴权、限流、连接管理全部由 Rube/Composio 网关承担技能文件本身可以保持轻量。三、安装与配置三步启用 Harvest 自动化按照 SKILL.md 的 Setup 章节启用过程分为三步添加 Rube MCP 服务器在 Codex 配置中加入 MCP 服务器URL 为https://rube.app/mcp认证 Harvest 账户根据提示通过返回的连接链接完成 Harvest 账户的 OAuth 授权开始用自然语言操作认证完成后即可在会话中直接描述工时记录、项目管理等需求。如果尚未安装技能本身可以参考仓库 README.md 的 Quickstart 章节完成安装推荐方式skill-installer克隆仓库后执行python skill-installer/scripts/install-skill-from-github.py --repo ComposioHQ/awesome-codex-skills --path harvest-automation安装器会把技能放入$CODEX_HOME/skills/skill-name默认~/.codex/skills手动方式将composio-skills/harvest-automation/目录复制到$CODEX_HOME/skills/下重启 Codex 使其加载元数据。注意安装或更新技能后需要重启 Codex 才能被识别可通过ls ~/.codex/skills与head ~/.codex/skills/skill/SKILL.md验证安装结果。以上均为仓库 README.md 明确记载的通用安装流程对包括 Harvest Automation 在内的所有技能适用。四、核心工作流一工时条目的创建与查询4.1 创建工时条目HARVEST_CREATE_TIME_ENTRY技能文档给出的示例指令是Log 3.5 hours of development work on project 12345, task 67890 for today对应工具为HARVEST_CREATE_TIME_ENTRY其关键参数语义如下参数必填说明project_id是工时归属的项目task_id是工时所关联的任务必须已分配到该项目下spent_date是日期格式YYYY-MM-DDhours否总小时数仅用于按时长计费duration-based账户started_time/ended_time否起止时间仅用于按时间戳计费timestamp-based账户notes否工作内容描述从源码层面看project_id与task_id的绑定关系是本工具最容易出错的地方详见后文已知坑第一节。4.2 查询工时条目HARVEST_LIST_TIME_ENTRIES参数说明from_date/to日期范围过滤格式YYYY-MM-DDproject_id、client_id、task_id、user_id按实体维度过滤is_billed/is_running按状态过滤是否已开票 / 是否计时中page/per_page分页参数per_page上限为2000配套的HARVEST_GET_TIME_ENTRY则通过工时条目 ID 精确获取单条记录用于核对或作为更新操作的输入。五、核心工作流二项目、客户与任务的建模5.1 创建与查询项目技能文档给出的示例指令是Create a billable project called Website Redesign for client 456 with Tasks billing and project budgetHARVEST_CREATE_PROJECT的参数约束非常严格五个字段全部必填缺一即触发校验错误name、client_id、is_billable、bill_by、budget_by均必填bill_by可选值Project、Tasks、People、nonebudget_by可选值project、project_cost、task、task_fees、person、none可选参数budget预算金额、hourly_rate小时费率、starts_on/ends_on起止日期、is_fixed_fee是否固定费用。查询侧由HARVEST_LIST_PROJECTS支持按客户过滤与HARVEST_GET_PROJECT按 ID 精确获取承担。5.2 客户管理List all active clients in our Harvest accountHARVEST_CREATE_CLIENTname必填可选address、currency、is_activeHARVEST_LIST_CLIENTS支持is_active过滤与分页per_page上限2000。客户是项目的组织层级——项目挂在客户之下因此在创建项目前往往需要先确认目标client_id。5.3 任务管理Create a new billable task called Code Review with a default rate of $150/hrHARVEST_CREATE_TASKname必填可选billable_by_default默认是否可计费、default_hourly_rate默认小时费率、is_active、is_defaultHARVEST_LIST_TASKS支持is_active、is_default过滤与分页per_page上限100任务名称必须在全部任务含已归档中全局唯一。值得强调的是任务task与项目是多对多的分配关系HARVEST_LIST_TASKS返回的是全局任务库而一条工时条目真正合法关联的是已分配到该项目下的任务。建模顺序通常为先有客户 → 再建项目 → 把任务分配到项目 → 最后才允许创建指向该项目任务的工时条目。六、核心工作流三时间报表与工时修正6.1 报表拉取Show me all unbilled time entries for project 789 from January 2026报表场景复用HARVEST_LIST_TIME_ENTRIES与HARVEST_GET_TIME_ENTRY技能文档给出的组合策略用from_date和to划定时间窗口用is_billed: false筛选未开票工时开票/账单核算的前置步骤组合project_id、user_id、client_id实现跨维度统计例如某客户下某员工在某区间的全部工时用page/per_page分页拉全整个数据集。6.2 修正既有工时条目Update time entry 123456 to change the hours to 4.0 and add the note Completed API integrationHARVEST_UPDATE_TIME_ENTRY的约束必填time_entry_id支持部分更新partial update——只传需要改的字段即可其余保持不变可更新字段hours、notes、project_id、task_id、spent_date、started_time、ended_time。这一能力让记错工时、改错项目、补备注等日常纠错操作都能以自然语言完成不需要回到 Harvest 网页端手动编辑。七、已知坑与规避策略Known Pitfalls技能文档专门用一节总结了五个高频坑这直接决定了自动化脚本能否稳定运行任务分配关系必须核验创建工时条目时task_id必须对应已经分配到project_id所指项目的任务。校验时应使用项目任务分配project task assignments接口而不是只依赖HARVEST_LIST_TASKS——后者返回的是全局任务库包含未分配到该项目的任务。从技能文档的原话看这是文档作者实测得出的关键经验计费模式二选一Harvest 账户要么是按时长duration-based要么是按时间戳timestamp-based计费。在按时长账户上started_time/ended_time会被忽略在按时间戳账户上hours会被忽略。创建工时前需先确认账户类型避免参数写了但没生效分页上限不一致HARVEST_LIST_TIME_ENTRIES和HARVEST_LIST_CLIENTS单页最多2000条而HARVEST_LIST_PROJECTS和HARVEST_LIST_TASKS单页上限只有100条。写分页循环时必须按工具分别取上限否则会得到分页截断的数据日期格式必须统一所有日期参数一律使用YYYY-MM-DDupdated_since类的增量过滤则使用带时区的 ISO 8601 格式。混用格式会直接导致解析失败项目创建字段不可缺省HARVEST_CREATE_PROJECT的五个必填字段name、client_id、is_billable、bill_by、budget_by任何一个缺失都会返回校验错误因此这条工具命令应始终按五字段齐全来构造。八、快速参考11 个 HARVEST_* 工具一览以下为技能文档 Quick Reference 章节的完整工具清单可在日常会话中作为速查表Tool SlugDescriptionHARVEST_LIST_TIME_ENTRIESList time entries with date, project, client, user filtersHARVEST_CREATE_TIME_ENTRYLog a new time entry (requiresproject_id,task_id,spent_date)HARVEST_GET_TIME_ENTRYRetrieve a specific time entry by IDHARVEST_UPDATE_TIME_ENTRYUpdate an existing time entry (requirestime_entry_id)HARVEST_LIST_PROJECTSList projects with optional client filterHARVEST_CREATE_PROJECTCreate a new project with billing configHARVEST_GET_PROJECTRetrieve a specific project by IDHARVEST_LIST_CLIENTSList clients with active/inactive filterHARVEST_CREATE_CLIENTCreate a new client (requiresname)HARVEST_LIST_TASKSList reusable task typesHARVEST_CREATE_TASKCreate a new task type (requiresname)从结构上可以归纳出技能的设计模式每个实体time entry / project / client / task都配备创建 列表两个基础工具工时与项目还额外提供按 ID 获取和更新工具。这种工具组合足以覆盖录入—查询—修正—报表的完整闭环。九、同系列技能与进一步探索Harvest Automation 并非孤例awesome-codex-skills 的 composio-skills 目录下存在大量同构技能。最具对照价值的是 composio-skills/toggl-automation/SKILL.md同为时间追踪领域它的 frontmatter 同样声明requires.mcp: [rube]核心工具则替换为TOGGL_CREATE_TIME_ENTRY、TOGGL_GET_USER_WORKSPACES等。两个技能放在一起对比可以清晰看出Rube MCP 网关 业务工具 slug 参数语义 已知坑这一模板化的技能编写思路工具命名遵循{APP}_{VERB}_{ENTITY}的大写下划线约定如HARVEST_CREATE_TIME_ENTRY参数表与 pitfalls 节则承载了每个应用最核心的领域知识。如果想要更深入理解 Rube MCP 的底层调用协议工具搜索、连接管理、批量执行可以阅读 composio-skills/composio-automation/SKILL.md如果想了解 Codex 技能的通用安装、编写与触发机制可查看仓库 README.md 的 Using Skills in Codex 与 Creating Skills 章节。结语Harvest Automation 展示了 Codex Skill 的一种成熟落地形态用轻量的指令文件教会模型一套业务工具的使用方式把高频、重复、易错的 Harvest 操作收敛为一句自然语言。它的价值不止于省去手动点击更在于将工时数据、项目结构与计费逻辑沉淀为可脚本化、可审计的工作流——无论是日常记工时还是月末拉取未开票工时汇总都可以在终端内完成。本文所覆盖的 11 个工具、6 个工作流与 5 个已知坑构成了使用该技能的完整知识基线在实际使用中建议始终以技能文档和RUBE_SEARCH_TOOLS返回的最新 schema 为准。 /output_article【免费下载链接】awesome-codex-skillsA curated list of practical Codex skills for automating workflows across the Codex CLI and API.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-codex-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表