👁️ 433
👍 53
📅 2026-06-13 收录
🔄 2026-06-13 更新

正文内容

preqstation

使用此技能,通过本地 CLI 引擎执行与 PREQSTATION 相关的自然语言请求任务。

触发条件 / 禁止场景

当消息中包含以下任意一项时,以最高优先级触发本技能

  • /skill preqstation
  • preqstation
  • preq

禁止使用本技能的场景包括

  • 可直接完成的简单单行手动编辑
  • 仅需读取或解释文件内容(无执行需求)的只读操作
  • ~/clawd/~/.openclaw/ 目录内启动任何 coding-agent

快速触发示例

  • /skill preqstation: implement the PROJ-1
  • preqstation: plan PROJ-76 using Claude Code
  • preq: implement PROJ-1

强制性规则

  1. 所有 coding agent 必须以 pty:true 模式运行。
  2. 严格遵循用户指定的引擎。若未明确指定,默认使用 claude
  3. 不得仅因会话响应缓慢而终止;应先轮询或记录日志。
  4. 绝不允许在 ~/clawd/~/.openclaw/ 中启动 coding agent。
  5. 已解析的项目路径仅作为主检出源(primary checkout source);启动任何 coding agent 前,必须先创建 git worktree。
  6. 禁止在主检出路径(primary checkout path)中运行 coding-agent 命令。
  7. PR 审查(review)必须在临时克隆(temp clone)或 git worktree 中执行,严禁在活跃的主检出中运行
  8. 所有执行必须严格限定在已解析的 worktree 范围内。
  9. worktree 分支名必须包含已解析的 project_key
  10. 默认以 background:true 启动 coding agent;仅当用户明确要求阻塞式/同步执行时,才使用前台(foreground)模式。

运行时前提条件(必需)

  • git 必须已安装并可在 PATH 中调用。
  • 至少安装一个引擎二进制文件:claudecodexgemini
  • 本技能使用的环境变量:

    • OPENCLAW_WORKTREE_ROOT(可选,默认为 /tmp/openclaw-worktrees
  • 本技能读取并更新 MEMORY.md 中的项目映射,所有路径必须为绝对路径

执行安全门控(必需)

在运行任何引擎命令前,必须执行以下检查:

  1. 执行预检(preflight)检查:

    • command -v git
    • command -v
  2. 仅当当前执行工作目录(cwd)是该任务已解析的 git worktree 路径时,才继续执行。
  3. 绝不允许在主检出路径或 ~/clawd/ / ~/.openclaw/ 内运行引擎命令。
  4. dangerously-* / sandbox-disable 类标志仅允许用于本地可信 CLI 的实际编码执行场景
  5. 对于规划类(planning)或只读类(read-only)请求,不得启动引擎命令

输入解析规则

从用户消息中解析以下字段:

  1. engine(引擎)

    • 若显式指定:claudecodexgemini
    • 默认值:claude
  2. task(任务标识)

    • 匹配首个形如 - 的 token(例如:PRJ-284
    • 可选字段
  3. branch_name(分支名,可选)

    • 解析首个匹配如下格式的 token:

      • branch_name=
      • branch_name:
      • branch=
    • 去除 周围的引号
    • 统一转为小写;将空格替换为 -
    • 若不包含已解析的 project_key,则自动前置 preqstation//
  4. project_cwd(项目工作目录,执行准备必需)

    • 若用户显式提供绝对路径,则直接采用
    • 否则,从 MEMORY.md 中按 project 键解析
    • task 前缀键(如 PROS-102pros)匹配 MEMORY.md 中某项目键,则采用对应路径
    • 若无法解析,需向用户询问项目键/名称及绝对路径,更新 MEMORY.md 后再继续执行
    • MEMORY.md不存在完全匹配的项目键,必须向用户确认,禁止猜测
  5. objective(执行目标)

    • 直接采用用户请求原文作为执行目标
  6. cwd(执行工作目录,必需)

    • 默认值:基于 project_cwd 推导出的每任务 git worktree 路径
    • 必须在启动引擎命令前创建 worktree
    • project_cwd 不是有效的 git 仓库,需先向用户索要 git 工作区路径,再执行
  7. progress_mode(进度更新风格)

    • 若用户明确使用 liverealtimefrequentdetailed 等词:设为 live
    • 若用户明确使用 sparseconcisesummary-onlykey events only 等词:设为 sparse
    • 默认值:sparse
    • 若用户措辞模糊或存在冲突,仅询问一次以确认模式
  8. context_compaction(上下文压缩策略)

    • 默认行为:复用当前对话/会话上下文,仅压缩状态更新,而非新建会话
    • 避免重放完整日志;发送简短检查点摘要,并从此摘要处继续
    • 仅当用户明确要求新建会话,或平台限制导致当前会话不可续时,才启动新会话

MEMORY.md 解析规则

  • 从本仓库根目录读取 MEMORY.md
  • 使用其中 Projects 表(列:key | cwd | note)。
  • 项目键匹配仅支持精确匹配(大小写不敏感,禁用模糊/部分匹配)。
  • MEMORY.md 中缺失精确匹配的项目键,必须向用户询问正确键/路径后才能继续。
  • 若用户请求新增/更新项目路径映射,需先更新 MEMORY.md,再确认
  • 若存在 task id(如 PROS-102),将其前缀(pros)视为候选项目键。

MEMORY.md 更新规则

  • 仅维护 Projects 表中的映射。
  • 新增或更新格式统一为:||||
  • 每个键独占一行;若键已存在,则覆盖整行。
  • 所有路径必须为绝对路径(禁止相对路径)
  • 写入前将 key 标准化为小写 kebab-case(例如 MyProjectmy-project)。
  • 若用户提供项目名称,存入 note 字段;否则默认使用 workspace

缺失项目映射处理流程(必需)

project_cwd 无法解析,或 MEMORY.md 中缺失精确匹配的项目键时:

  1. 向用户提出一个简短问题,请求以下信息:

    • 项目键(或确认从 task 前缀推断出的键)
    • 绝对工作区路径
    • 可选:用于 note 的项目名称
  2. 验证路径是否为绝对路径。
  3. 立即更新或插入 MEMORY.md 对应行
  4. 一行简短语句确认映射已建立
  5. 使用新解析的 project_cwd 继续原始任务:创建任务专用 worktree 并执行。

分支命名规范(基于项目键)

分支名解析优先级如下:

  1. 用户消息中解析出的 branch_name
  2. 回退值:preqstation/

规则:

  • 必须来自 MEMORY.md 解析出的项目键。
  • 所有 token 统一转为小写,并适配 kebab-case(如空格→-)。
  • 分支名必须包含已解析的 project_key;若缺失,强制前置 preqstation//
  • 拒绝不安全的分支名(含 ..、以 / 开头、或为空),并提示用户输入有效分支名。

Worktree 优先执行(必需默认)

在解析出 project_cwdproject_key 后,按以下步骤准备执行工作区:

  1. 按本技能约定构建分支名:

  2. 构建每任务 worktree 路径:

    • 默认根目录:${OPENCLAW_WORKTREE_ROOT:-/tmp/openclaw-worktrees}
    • 目录结构://
    • branch_slug = / 替换为 -
  3. project_cwd 创建 worktree(启动引擎前):

    • 新建分支:git -Cworktree add -bHEAD
    • 复用已有分支:git -Cworktree add
  4. 将此 worktree 路径作为 ,用于 prompt 渲染和引擎执行。

Prompt 渲染模板(必需)

禁止直接转发原始用户文本。必须渲染以下模板:

注意:模板中 必须为任务专用 worktree 路径(非主检出路径)。

Task ID:Project Key:Branch Name:User Objective:Execution Requirements:
1) Work only inside.
2) Complete the requested work.
3) Use branchfor commits/pushes when provided.
4) After completion, return a short completion summary.

引擎命令(沿用当前策略)

所有引擎命令必须通过 bash 启动,并显式指定 PTY 和工作目录。

为何保留 dangerously-* 标志:

  • 本技能面向非交互式 PTY/后台执行场景。
  • 权限提示会阻塞无人值守运行;此类标志可规避阻塞。
  • 此类标志仅在通过上述全部安全门控、且运行于已解析任务 worktree 时允许使用
  • 若您的环境禁止此类标志,请快速失败并返回简短原因,切勿静默降级。

Claude Code

bash pty:true workdir:command:"claude --dangerously-skip-permissions ''"

Codex CLI

bash pty:true workdir:command:"codex exec --dangerously-bypass-approvals-and-sandbox ''"

Gemini CLI

bash pty:true workdir:command:"GEMINI_SANDBOX=false gemini -p ''"

Bash 执行接口(必需)

默认使用 bash + PTY + 后台模式。

Bash 参数说明

参数 类型 是否必需 用途
command string 待执行的引擎命令
pty boolean coding-agent CLI 必须为 true
workdir string 每任务 worktree
background boolean 异步运行并返回 session id(本技能默认 true
timeout number 硬性超时时间(秒)
elevated boolean 若策略允许,提升主机执行权限

后台会话标准操作

使用以下操作作为标准控制指令:

  • list: 列出所有会话
  • poll: 检查运行/完成状态
  • log: 读取增量输出
  • write: 发送原始 stdin 数据
  • submit: 发送 stdin + 换行符(模拟回车)
  • kill: 仅在必要时终止会话

执行模式(workdir + background + pty)

单次执行示例

创建任务 worktree,并在其中执行(默认后台模式):

git -Cworktree add -b/tmp/openclaw-worktrees//HEAD
bash pty:true workdir:/tmp/openclaw-worktrees//background:true command:"codex exec --dangerously-bypass-approvals-and-sandbox ''"

模式核心:workdir + background + pty  
对于长时任务,启用后台模式 + PTY:

# 在任务 worktree 中启动 agent(必须启用 PTY!)
bash pty:true workdir:background:true command:"codex exec --full-auto 'Build a snake game'"
# 返回 sessionId 用于跟踪

# 监控进度
process action:log sessionId:XXX

# 检查是否完成
process action:poll sessionId:XXX

# 发送输入(若 agent 提问)
process action:write sessionId:XXX data:"y"

# 模拟回车提交(如输入 "yes" 后按 Enter)
process action:submit sessionId:XXX data:"yes"

# 如需终止
process action:kill sessionId:XXX

为何 workdir 关键:Agent 启动后聚焦于指定目录,不会误读无关文件(比如你的 soul.md