Skip to main content

using-codex-ride

Use when the user explicitly asks to start a codex-ride workflow, run a multi-phase development plan, or says 'codex-ride'. Do not auto-activate on every session.

معلومات المصدر

المستودع
dualface/codex-ride-codex
آخر نشاط في المصدر
٨ مايو ٢٠٢٦ في ١٢:١٨
لغة SKILL.md المكتشفة
الصينية
النجوم
٣
التفرعات
١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
using-codex-ride
description
Use when the user explicitly asks to start a codex-ride workflow, run a multi-phase development plan, or says 'codex-ride'. Do not auto-activate on every session.
# 使用 Codex Ride 这是 `codex-ride` 的 bootstrap skill。 职责: 1. 看用户请求、session state、artifact 2. 判断当前 phase 3. 在做实质动作前,路由到正确 phase skill ## 指令优先级 顺序: 1. 用户直接指令 2. 已批准 workflow artifact 3. `codex-ride` phase skill 4. 默认助手行为 用户明确 override gate,就记录并继续。 ## 核心规则 在没判断 phase 前,不要写代码、计划、报告。 ### Worktree 规则 (强制) codex-ride workflow 的所有写动作 (spec / plan / task / execute / review / report) 必须在 git worktree 中进行,禁止直接污染主工作树。 - 路径约定:worktree 放在**项目根目录**的 `worktrees/` 子目录下,路径形如 `worktrees/<worktree-name>` - 命名按"任务簇"取名 (例如 `worktrees/auth-overhaul`、`worktrees/billing-q2`),**不**绑死单个 workflow slug - **每个 worktree 同一时间只活跃一个 workflow**:`.codex-ride/session.json` 是**按 CWD** 存的,每个 worktree 独立一份 state,互不污染 - 同一 workflow 的所有阶段始终共用同一个 worktree,从 spec 起一直用到 report;不要中途切到别的 worktree - 进入任何 phase skill 前先检查 `pwd`: - 若已在某 `<project-root>/worktrees/<name>` 内 -> 继续在该 worktree 工作 - 若仍在主工作树 -> 先与用户确认 worktree 名 (新建或复用现有): - 新建:`git worktree add worktrees/<name> -b codex-ride/<name>` - 复用:直接 `cd worktrees/<name>` - 用户离开 worktree 后再继续 workflow,必须先 `cd` 回原 worktree,不要在主工作树续跑 - worktree 目录要纳入 `.gitignore` (`worktrees/`),避免误提交 #### 多 spec 推进模式 复杂任务拆成多个 spec 时, 按是否需要并行选择模式: ##### A. 串行 (默认, 同一 worktree) - 上一个 workflow 完成 (final report 出 / STATUS=done) 后再起下一个 - 切换到下一 spec:先 `codex-ride state:get` 确认当前 workflow 已 done,再 `codex-ride init --slug <new-slug> --force` 起新 workflow - 优点:分支线性, merge 简单, 配额 / 资源不抢 ##### B. 并行 (各自一个 worktree) - 每个并行 spec 独占一个 worktree (`worktrees/<task-cluster>`) - 每个 worktree 独立 `.codex-ride/session.json`、独立 codex-worker、独立分支 (`codex-ride/<task-cluster>`) - 启动方式:**多开 rider session** (多终端 / 多 IDE 窗口),每个 session 进入一个 worktree (`cd worktrees/<name>`);单 rider session 的 CWD 单一,无法同时管多个 worktree - 必须满足的约束: - **write-scope 不重叠**:每个 workflow 的 `codex-ride run --write-scope <path>` 划独立目录 (例如 `src/auth/` vs `src/billing/`);重叠会让两个 phaseExecution 互相覆盖且产生未提交冲突 - **远端 merge 串行**:worktree A 的 PR merge 后,worktree B 要 `git fetch && git rebase origin/main` 再继续,避免 PR 间冲突堆积 - **配额 / 资源**:codex 并发跑会摊薄 RPS, 磁盘 / CPU 共享; 同时跑 <=2–3 个 worktree 较稳 - **memsearch 是全局**:不同 worktree 的 session 写入会交叉, 检索时按 worktree slug / spec slug 过滤 - 启动顺序建议: 1. `git worktree add worktrees/<name-A> -b codex-ride/<name-A>` (主 rider session 内) 2. 新开 rider session, `cd worktrees/<name-A>`, 跑 spec / run 3. 再回主 session 加 worktree B, 重复 ### 后台任务看护规则 codex-ride dispatch 会等待 detached codex-worker 完成并返回 JSON;长任务可用 `codex-ride job:status` 做轻量状态检查。 防卡死兜底 (可选, 长跑 phaseExecution 等场景建议开): - 派完 codex-worker 后,必要时定期执行 `codex-ride job:status --job-id <id>` - 间隔按任务长度选,**避开 ~600s** (付 cache miss 又拿不到长间隔好处): - 长任务 (>30min):1500–1800s,摊薄 cache miss - 活跃监控 (即将完成 / 卡边缘):<=270s,留在 5min cache 内 - 回调触发时只做轻量检查: - 跑 `codex-ride job:status --job-id <id>` 或读 `last_result_file_path` - 仍 running 且有进展 -> 继续等待或稍后再查 - 仍 running 但日志 / 输出无变化 (疑似卡死) -> 提示用户并问是否 stop / restart - 已完成 -> 进入正常结果处理 - 不可主动通知的任务 (`codex-ride drive` 等跨 session detached) 不适用本节,按 `drive` skill 规则单独处理 ### Token 节流规则 总原则:rider 只读结构化字段 / 摘要 / diff,**不**读原始大文件。 > **CLI 现状**:当前 `codex-ride.manifest.json` 只有 6 个固定 codex-worker job (`specAdversarialReview` / `phasePlanSynthesis` / `phaseTaskSynthesis` / `phaseExecution` / `phaseReview` / `finalSpecReview`),**没有**通用 codex 摘要 / finalReport / recovery job。所以"重活儿派 codex"暂不可行,先用以下变通手段;若后续给 manifest 加通用 `summarize` job,可把"派 sub-agent"全部替换为"派 codex-worker"。 可用减负手段优先级: 1. **结构化字段提取** (最省):`codex-ride state:get`、`jq` 抽 result.json 字段、`grep -A N <heading>` 抽段 2. **Shell 限幅**:`head` / `tail` / `wc -l` / `grep -c`,禁全文读取 / `cat` 3. **本地摘要**(兜底):必要时让 codex-worker 输出短摘要 artifact,主 rider 只读摘要 #### 看护期 (后台 codex-worker 仍在跑) - 不直接读取 >200 行的 codex-worker 日志 / phase 输出 - - `codex-ride job:status --job-id <id>` 看 JSON - - `tail -50 <log> | grep -E 'ERROR|FAIL|done'` 抽关键行 - - 比对 mtime / 行数;无变化跳过深查 - 多 job 批量查,避免频繁轮询 #### 最终报告生成 (`reporting-results`) - rider 仍是写报告主体 (CLI 没 finalReport job),但读 artifact 时**分段读,不全读**: - `head -100 <spec>` 读目标 / 非目标段 - `grep -A 10 '## verdict\|## blockers' <phaseReview>` 抽 verdict / blockers - 完整读取只对 final report template 用一次 - 跨 phase 合成时优先读取各 artifact 的摘要段;需要额外压缩时派 codex-worker 生成 <=500 字 phase 摘要和风险列表 #### plan / task 文档回读 - codex-worker 出完 plan list / task list 后,rider 不读全文 - 默认:`head -50 <file>` + `grep -c '^### phase' <file>` 算 phase 数 -> 一句话告诉用户 - 用户问到具体 phase 才精读那一段 #### phase review 回读 - 只用 `grep -A` 抽三段:`verdict` / `blockers` / `top_issues` (前 3 条) - 完整 review markdown 不读 #### spec 对抗审 revise 循环 - 每轮 revise 不把 spec 全文 + review 全文带进 rider context - spec 改动用 `git diff <spec_path>` 给 rider,原文留在文件系统 - review 结果只看 verdict + critical issues,用 `grep -A` 抽 #### Shell 输出强制限幅 | 命令 | 默认形式 | | ----------------- | -------------------------------------------- | | `git log` | `git log -n 10 --oneline` | | `git diff` | `git diff --stat`,要全文派 sub-agent 摘要 | | `find` | 必须 `\| head -50` | | `grep` | 必须 `\| head -50` 或 `-c` 计数 | | `ls` | 子目录深时用 `-1 \| head` | | `cat` / `tail -f` | **禁**直接对大文件用;改 `tail -50` 或抽段读 | 要全文分析的:派 sub-agent,主 rider 只读摘要。 #### artifact recovery - 断线 / 续跑时禁止 rider 重读所有 artifact - 实操:`codex-ride state:get` 读 `current_phase` / `active_job_id` / `last_result_file_path` / `phase_result_dir` 等关键字段,只 `head` 当前 phase artifact - 全链分析时优先派 codex-worker 写 recovery summary artifact #### state 查询去重 - 每个 skill 入口处一次性 `codex-ride state:get` 拉全字段,关键字段记到对话文本 - 同一 skill 内后续动作复用,不再重复 `state:get` - 只在状态明确变化后 (派完 job / 收到 notification / 用户改了 state) 再查 #### session 接力 单 workflow 完成 (final report 出) 后按用户全局规则:memsearch 存档 + 提示 `/clear` 或开新 session。本节不再赘述。 #### 状态汇报一行制 中间汇报压成一行;JSON / 摘要文件不要展开重述。例: - `phase-2: pass, 0 blocker, next=phase-3` - `<job-id>: running, 12/20 task done, last_progress 3min ago` 按状态路由: - 用户明确要“开 detached codex 做用户指定任务” -> `drive` - 没有已批准 spec -> `drafting-specs` - spec 已批准,但没有 phase plan list -> `writing-phase-plans` - phase plan list 已有,但缺 phase task list -> `writing-phase-tasks` - 已有 ready 的 phase task list,且还有 phase 没执行完 -> `executing-phase-tasks` - 某个已完成 phase 还没 review,或 final spec review 还没做 -> `reviewing-phase-results` - 所有 phase 都 review 完,且 final spec review 通过 -> `reporting-results` ## CC 调用指南 codex-ride 通过 `codex-ride` CLI 命令操作 workflow。以下是 rider 在各阶段应调用的命令: ### 启动 workflow ```bash cd <target-project-root> codex-ride init --slug <project-slug> codex-ride state:set --set spec_path=<spec-file-path> ``` ### 写 spec 阶段 (drafting-specs) rider 和用户一起写 spec, 落盘到 spec_path。spec 写好后: ```bash codex-ride state:set --set spec_approved=true ``` ### 自动推进 (spec 批准后) ```bash codex-ride run --write-scope <allowed-write-path> ``` 这会自动推进: plan -> task -> execute -> review -> report, 直到完成或需要用户介入。 如果 `rider` 自己中途断线、报错、额度耗尽: - 直接再次执行 `codex-ride run --write-scope <allowed-write-path>` - harness 会先检查 `active_job_id` - 如果后台 codex-worker 还活着,就接管等待 - 如果后台 codex-worker 已结束,就读取结果或做 artifact recovery ### 启动 detached codex drive 如果用户要的不是 workflow gate,而是“把这个任务交给 codex 一直做”: ```bash codex-ride drive "<user task>" ``` 如果是接管当前仍在进行的 drive: ```bash codex-ride drive ``` 这个模式下: - 任务文本直接来自用户 - codex 只是停下来问“是否继续”时,会自动 `resume` - 监控只看 4 类里程碑:PR merge、CI 失败、需要用户介入、drive 结束 - 非里程碑进展静默 - 真 blocker / 真决策需求时才交还用户 ### 查看状态 ```bash codex-ride state:get codex-ride resolve-phase codex-ride job:status codex-ride job:status --job-id <job-id> ``` 用途: - `state:get`:看 workflow state 真源 - `resolve-phase`:看当前 phase 推断结果 - `job:status`:看 active job 或指定 job 的 detached runner / codex-worker / result 状态 ### 手动 dispatch (高级) ```bash codex-ride dispatch --job <job-name> [--phase-id <id>] [--write-scope <path>] ``` ## Gate 规则 默认 gate: - spec 批准前,不写 phase plan - phase review 过前,不开下一个依赖 phase 执行 - final spec review 过前,不出最终报告 除非用户明确要求,否则不要跳 gate。 ## 会话合同 追踪或推断这些字段: - `workflow_id` - `current_phase` - `spec_path` - `spec_review_path` - `spec_review_passed` - `spec_approved` - `phase_plan_list_path` - `phase_plan_review_passed` - `phase_task_dir` - `phase_result_dir` - `phase_review_dir` - `ready_phase_ids` - `active_phase_id` - `completed_phase_ids` - `reviewed_phase_ids` - `final_spec_review_path` - `final_report_path` - `active_job_id` - `last_result_file_path` - `override_log_path` - `job_attempts` - `current_execution_root` 如果没有结构化 state,就根据明确 approval、artifact 是否存在、最近 review 结果来推断。 ## 响应模式 开工时: 1. 说当前用哪个 `codex-ride` skill 2. 说为什么 3. 按该 skill 执行 示例: - "Using `drafting-specs`,因为现在还没有已批准 spec。" - "Using `writing-phase-tasks`,因为已有 phase plan list,现在要按 phase 产 task list。" - "Using `reviewing-phase-results`,因为某个 phase 刚执行完,必须对照 plan 审。" - "Using `codex-ride run`,因为 spec 已批准,自动推进 workflow 到完成。" - "Using `codex-ride drive`,因为用户要启动 detached codex 执行他指定的任务,而不是走 workflow gate。" ## 反模式 - 粗糙请求直接进 execution - 没书面 spec 就 planning - 上个依赖 phase 还没 review 就跑后续 phase - final spec review 没过就宣称完成
عرض على GitHub