一键导入
tent-role
让 agent 进入现有 Tent 的长期 role session:从 task envelope 信箱接活,读取稳定 init 与动态 manifest,在真实 workspace 的 role worktree/branch 工作并提交,最后报告 commit 等待验收。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
让 agent 进入现有 Tent 的长期 role session:从 task envelope 信箱接活,读取稳定 init 与动态 manifest,在真实 workspace 的 role worktree/branch 工作并提交,最后报告 commit 等待验收。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | tent-role |
| description | 让 agent 进入现有 Tent 的长期 role session:从 task envelope 信箱接活,读取稳定 init 与动态 manifest,在真实 workspace 的 role worktree/branch 工作并提交,最后报告 commit 等待验收。 |
当 agent 要进入或恢复一顶现有 Tent 里的长期 role session 时使用。
worktree + branch。一个 role 可以处理多个 box。bx- id 随移动保持稳定。层级表达服务关系。manifest.yml 解析 claim、readable、writable。它是 honor contract,不是安全沙箱。若任务指令和 manifest 边界冲突,停止并询问 user。manifest.yml 的 preloaded 字段只是应加载内容的清单,不是正文已经进入模型上下文的证明。role 必须实际读取所需文件,不能仅凭清单名称声称已知内容。tent report 只是在 Tent 里放一份临时传输文本,供 user 在 UI 里验收;它没有持久 id,验收或中断后会清理。如果 user 要你创建或初始化一个尚未清晰定义的 role,先做一次很轻量的追问校准。
description、prompt、可选 color,给 user 确认后再写 .tent/roles.json。tent role-init <role>。创建 box 时必须有意识地选择 type。不要把所有东西都默认塞进 goal,也不要机械地给所有待办补二级 type。
最终以当前 Tent 的 .tent/types.json 为准。user 可以修改默认 type 的名称、R/W 和描述;下面是内置默认 type 的语义倾向,不是不可变枚举。
一级 type 通常表达 box 的主语义:
goal:只用于真正的目标、最终要达成的结果、核心方向。它应该回答“我们要完成什么”。不要把普通待办、检查项、问题记录都写成 goal。prompt:范围最大,用于任务说明、上下文、问题、提案、检查清单、review 发现、后续待办、派活意图,以及大多数 user/agent 协作文本。output:用于产出或产出指针。产出可以是代码仓、文档、release、npm 包、截图、构建物、task envelope、workspace 指针等,重点是它代表或指向某个交付物。二级 type 通常是可选修饰,不是默认补全项。
goal-open、prompt-reference、output-asset 这类复合 type。open。进度属于 status。sealed。sealed 是语义封存或隔离,不等于 done。进度用 status: todo | doing | done 表达。type 表达语义和 R/W,不替代 status。
tags 是跨树检索索引,用来帮助 user 和 agent 之后找回同主题 box。它不替代 type,也不替代层级。
.tent/tags.json 里已有 tag;只有没有合适 tag 时才新建。open-source、release、npm、ui、security、code-health、workspace。简化判断:type 表达主语义和 R/W,status 表达进度,层级表达归属关系,tags 表达横向检索主题。
output 表示真实产出或产出指针。
workspace、ref、path 或 paths,用于指向真实 workspace 的 commit、文件或目录。提案就是 agent 针对某个 box 给 user 提的一段 prompt,投递到待裁,交给 user 确认或驳回。默认自己拿主意,真正需要 user 过目或拍板的才提。
提法:
tent propose <boxId> <file|->
正文写清想说的;有选项就给 2-4 个;写出你的推荐和影响。提案出现在该 box 的待裁,user 确认或驳回后解消。
RULES.md、.tent/、temp/。否则停止并告诉 user。tent status 快速定向:看待裁提案、待 ack task、认领态,以及 Tent / workspace 两个路径。temp/<role>/init.md。它是稳定 role 上下文,设计上用于 prompt cache 复用。新建或恢复 role session 时都必须显式读取 Tent 根的 RULES.md;如果任务进入真实 workspace,还必须读取该 workspace 的项目规则文件(例如 AGENTS.md、CLAUDE.md 或仓库明确指定的等价文件)。temp/<role>/tasks/*.md。user 直接给了 task 路径时,以该路径为准;否则列出所有 status: pending 的 task,按 user 指定或既有优先级逐个处理,顺序不清楚时先问。tent task-ack <taskPath>。然后读取 envelope 指向的 manifest 与 claimed box;box 正文才是任务定义,envelope 只是不可变指针。复制 relay prompt 不是消费事件,只有 task-ack 会把任务改成 taken。RULES.md 与所需上下文,只在既有授权或 user 明示的范围内写 Tent 文件;范围拿不准就先确认。worktree 作为真实代码工作目录,使用 task 里的 branch 作为该 role 的长期分支。后续任务复用它们。这三个字段由 dispatch CLI 自动生成:从 Tent 唯一的 workspace 指针框解析 workspace,按 tent-role/<role> 与 <workspace>-worktrees/<role> 命名并实际创建 worktree——派活者不手填,接活者不自建。若 envelope 没有这些字段,说明该 Tent 没有 workspace 指针框:这是合法的纯 Tent 任务(只做 Tent 侧工作,不碰代码仓),不是派活出错。RULES.md 和完成任务必要的 manifest-readable 上下文。只在 manifest-writable 范围内写 Tent 文件。tent roles:读取共享 role 注册表,再选择派活目标 role。tent dispatch <boxId> <role> --prompt <text> [--as-sub --by <role>]:生成该 role 的 pending task envelope。user prompt 必填;真正认领发生在目标 agent 执行 task-ack 时。tent new-box <name> <type> [parentId]:创建 box 并获得防撞 id。CLI 只生成空身份笔记——建完立即补写正文(问题、方案、验收标准)和 status,不要留空壳框。tent fork <boxId>:复制子树,只改变根名称,重发 ids,并清 owner/status。tent report <boxId> <bodyFile|-> --commits <sha,sha> 提交同一份报告。编排不是另一个 A2A 专属 skill;仍然使用 tent-role。
标准链路是:dispatch -> spawn/唤醒 -> receive report -> review -> complete。
tent dispatch 写 manifest 和 pending task envelope,不写 owner/status。派活不要求你对目标 box 有 readable 或 writable——claim 权独立于读写权,唯一的门是占用拓扑:目标及其祖先、子孙没有 owner,也没有 pending task envelope,且不是归档/失效子树。编排 role 可以把任何无占用冲突的框派给别的 role;manifest 的写权是为接活 role 生成的,与派活者无关。tent task-ack <taskPath> 后,envelope 变为 taken,并把目标 box owner 设为该 role、status 设为 doing。tent report。tent complete / tent stamp,必要时带 --by <role> 和 --require-check <command>。不要自己把 box 标记完成。只有 user 确认后,交付才算完成。
dispatch 只写入 envelope,不会唤醒目标 agent;由 user 或已授权的 orchestrator 唤醒目标会话。tent complete、tent stamp 和 tent force-release 是 user 侧动作,除非 user 在会话中明确豁免。