名称:技能-元 描述:交互式系统构建器。调用 /meta 命令为 .opencode/ 系统更改创建任务。 允许的工具:任务、Bash、编辑、读取、写入、读取(/tmp/.json)、Bash(rm:)
原始上下文(现在由子代理加载):
- .opencode/docs/guides/component-selection.md
- .opencode/docs/guides/creating-commands.md
- .opencode/docs/guides/creating-skills.md
- .opencode/docs/guides/creating-agents.md
原始工具(现在由子代理使用):
- 读取、写入、编辑、全局、搜索、Bash(git, jq, mkdir)、询问用户问题
元技能
薄层包装,将系统构建委托给 meta-builder-agent 子代理。这个技能处理 /meta 的所有三种模式:交互式访谈、提示分析和系统分析。
重要:这个技能实现了技能内部后处理模式。在子代理返回后, 这个技能处理所有后处理操作(如果创建了任务,则进行 git 提交)然后返回。 这消除了技能返回和编排器之间的“继续”提示问题。
上下文引用
引用(不急切加载):
- 路径:
.opencode/context/core/formats/return-metadata-file.md- 元数据文件模式 - 路径:
.opencode/context/core/patterns/postflight-control.md- 标记文件协议 - 路径:
.opencode/context/core/patterns/file-metadata-exchange.md- 文件 I/O 帮助程序
注意:这个技能是一个薄层包装,带有内部后处理。上下文由委托的代理加载。
触发条件
这个技能在以下情况下激活:
- 调用 /meta 命令(带任何参数)
- 用户请求为 .opencode/ 更改进行系统构建或任务创建
- 请求系统分析(–analyze 标志)
执行
1. 输入验证
从参数验证和分类模式:
模式检测逻辑:
# 解析参数
args="$ARGUMENTS"
# 确定模式
if [ -z "$args" ]; then
mode="interactive"
elif [ "$args" = "--analyze" ]; then
mode="analyze"
else
mode="prompt"
prompt="$args"
fi
不需要 task_number 验证 - /meta 创建新任务而不是操作现有任务。
2. 上下文准备
准备委托上下文:
{
"session_id": "sess_{timestamp}_{random}",
"delegation_depth": 1,
"delegation_path": ["orchestrator", "meta", "skill-meta"],
"timeout": 7200,
"mode": "interactive|prompt|analyze",
"prompt": "{user prompt if mode=prompt, null otherwise}"
}
3. 调用子代理
关键:你必须使用 Task 工具来生成子代理。
这个技能的前置文件中的 agent 字段指定目标:meta-builder-agent
必需的工具调用:
工具:Task(不是 Skill)
参数:
- subagent_type: "meta-builder-agent"
- prompt: [包括模式、提供的提示、委托上下文]
- description: "在 {mode} 模式下执行元构建"
不要 使用 Skill(meta-builder-agent) - 这会失败。
代理位于 .opencode/agents/,不是 .opencode/skills/。
Skill 工具只能从 .opencode/skills/ 调用技能。
子代理将:
- 根据模式按需加载组件指南
- 执行模式特定的工作流程:
- 交互式:使用 AskUserQuestion 运行 7 阶段访谈
- 提示:分析请求并提议任务分解
- 分析:盘点现有组件并提供建议
- 为非分析模式创建任务条目(TODO.md、state.json、任务目录)
- 返回标准化的 JSON 结果
4. 返回验证
验证返回匹配 subagent-return.md 模式:
- 状态是其中之一:完成、部分、失败、阻止
- 总结非空且 <100 个令牌
- 工件数组存在(交互式/提示模式的任务目录)
- 元数据包含 session_id、agent_type、委托信息
5. 返回传播
将验证后的结果返回给调用者,不做修改。
返回格式
有关完整规范,请参见 .opencode/context/core/formats/subagent-return.md。
预期返回:交互式模式(任务创建)
{
"status": "tasks_created",
"summary": "为命令创建工作流程创建了 3 个任务:研究、实施和测试阶段。",
"artifacts": [
{
"type": "task",
"path": "specs/430_create_export_command/",
"summary": "新命令的任务目录"
},
{
"type": "task",
"path": "specs/431_export_command_tests/",
"summary": "测试的任务目录"
}
],
"metadata": {
"session_id": "sess_1736700000_abc123",
"agent_type": "meta-builder-agent",
"delegation_depth": 1,
"delegation_path": ["orchestrator", "meta", "meta-builder-agent"],
"mode": "interactive",
"tasks_created": 2
},
"next_steps": "运行 /research 430 开始第一个任务的研究"
}
预期返回:分析模式(只读)
{
"status": "analyzed",
"summary": "系统分析完成。找到 9 个命令、9 个技能、6 个代理和 15 个活动任务。",
"artifacts": [],
"metadata": {
"session_id": "sess_1736700000_xyz789",
"agent_type": "meta-builder-agent",
"delegation_depth": 1,
"delegation_path": ["orchestrator", "meta", "meta-builder-agent"],
"mode": "analyze",
"component_counts": {
"commands": 9,
"skills": 9,
"agents": 6,
"active_tasks": 15
}
},
"next_steps": "审查分析,如果需要,运行 /meta 创建任务"
}
预期返回:用户取消
{
"status": "cancelled",
"summary": "用户在确认阶段取消了任务创建。没有创建任务。",
"artifacts": [],
"metadata": {
"session_id": "sess_1736700000_def456",
"agent_type": "meta-builder-agent",
"delegation_depth": 1,
"delegation_path": ["orchestrator", "meta", "meta-builder-agent"],
"mode": "interactive",
"cancelled": true
},
"next_steps": "当准备好创建任务时,再次运行 /meta"
}
错误处理
输入验证错误
如果参数格式错误,立即返回失败状态。
子代理错误
直接传递子代理的错误返回。
用户取消
当用户在确认阶段明确取消时,返回完成状态(不是失败)。
超时
如果子代理超时(交互式会话默认 7200 秒),返回部分状态。