Comet OpenSAFE
Comet: agent skill harness for turning ideas into evaluated workflows
Overview
Comet: agent skill harness for turning ideas into evaluated workflows
7a161f52eaedOBSERVED · 2026-10-26What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: comet-open description: '创建 Classic change,整理需求并请用户确认。在用户调用 /comet-open,或 Classic 进入 Open、恢复初始化时使用。' --- # Comet 阶段 1:开启(Open) 首次进入阶段、交接给新 Agent 或上下文恢复后,读取并执行 [任务上下文与产物语言](../comet-classic/reference/scripts.md#任务上下文与产物语言),优先采用当前 continuation 或已领取 Action 的 `contextRequest`;同一阶段连续执行不重复获取。 开始或恢复任务前,必须先读取并遵守 `comet-classic/reference/classic-layout.md`。本文件中的 OpenSpec CLI 调用必须通过适配器执行,文件路径必须基于该协议绑定的 `<classic-*>` 逻辑根目录。 ## 前置条件 - 无活跃 change,或用户希望创建新 change ## 步骤 ### 0. 设置输出语言 向 OpenSpec 传递提问和文档生成要求时,都必须明确指定 Comet 配置的产物语言,使用 `en`、`zh-CN` 这类规范化 ID。change 尚未初始化时,依次读取项目 `.comet/config.yaml` 和全局 `~/.comet/config.yaml` 的 `classic.language`;初始化后,复用当前有效响应中的 `configuration.language`;缺少时才使用 `comet state get <name> language` 读取。没有配置语言时,才采用当前用户请求的语言。生成的 `proposal.md`、`design.md`、`tasks.md` 必须以该语言为主。 ### 0a. 当前 change 绑定 响应已有 `agent.continuation.mode` 时,先按 `comet-classic/reference/auto-transition.md` 处理;`wait` 按 auto-transition.md 区分手动衔接和原任务等待,不能因兼容字段 `nextAction.kind: reconcile` 再做恢复查询。使用当前响应的命令与输入;Skill 工作实际完成后才使用 `completion` 提交。下文依据 `nextAction.kind` 的恢复规则仅用于没有 `mode` 的旧响应。 恢复已有 change 时,复用同一工作区和 Run 的最新有效 continuation 与归属;冷恢复、外部状态变化或信息缺失时才运行 `comet state next <name> --json`,再按 `data.runtimeFormat` 处理: - `sdk`:复用现有 Run,按 `data.nextAction.kind` 恢复;已领取但结果未明的 Action 先核对原结果,不重新创建 change 或重发外部工作。 - `compat`:复用原流程和 `.comet.yaml`;不能自动把该 change 改建为 SDK Run。 - 命令失败:核对错误、归属记录、Run 和实际状态文件。归属冲突或状态格式异常时停止并报告;若本地 Run 记录丢失,先检查状态文件中的 `run_checkpoint`,按 `/comet-classic` 的恢复步骤沿用已保存阶段。旧状态没有检查点且用户明确同意重启时,才回到 Open 重新核对证据和确认。只有证实尚无任何 Runtime 归属、change 目录有效时,才按所选隔离方式准备工作区并初始化。不得因缺少某一个文件名就重新初始化。 SDK 与旧 change 在冷恢复、工作区变化或绑定信息缺失时,通过以下命令核对并绑定工作区;已有有效选择和 projectRoot 时直接复用: ```bash comet classic workspace resolve <change-name> --json # 进入返回的 projectRoot comet state select <change-name> ``` 创建新 change 时,在创建 OpenSpec 基础目录后立即初始化 SDK Run,再运行上述 select 命令;初始化前不得手工写入 change 选择记录。 ### 0b. Open 前工作区决策与准备 创建 Classic change 时,读取 `comet-classic/reference/workspace.md`。必须先确定工作区,再创建 OpenSpec 产物和 SDK Run,不能推迟到 Build: - 用户明确要求并行工作时,直接使用 `worktree`;先准备好独立工作区,再创建 OpenSpec 产物和 state - 用户未指定隔离方式时,按参考文档处理:需要用户选择时,展示可用的 `current`、`branch`、`worktree` 选项,推荐理由不能代替用户选择 - 用户选择 `current` 或 `branch` 时,仍应串行工作,不得将其描述为适合多个会话同时使用 新 change 在运行 OpenSpec `new` 前准备工作区: ```bash comet classic workspace prepare <name> --isolation <current|branch|worktree> --json # 进入返回的 projectRoot;后续 OpenSpec、state 和产物写入都必须在该目录执行 ``` 准备命令会复用已登记且分支匹配的 Worktree;分支仍在但已登记的 Worktree 被移除时,会重建 Worktree。只有分支已重命名、被用户用于其他工作,或无法确认归属时,才暂停,请用户明确确认 rebind。 ### 0c. OpenSpec 兼容性检查 首次使用或上游安装发生变化时运行一次,记录用于排错的版本: ```bash comet classic openspec -- --version ``` 兼容性必须通过实际能力检查,不能只凭版本号判断。status 必须提供 `changeRoot`、`applyRequires`,以及每个产物的 `requires`、`outputPath`、`status`;instructions 必须提供可用的 `resolvedOutputPath`。当前适配已核对 OpenSpec 1.11.0/1.12.0 的状态接口要求,不保证兼容所有历史版本。命令不可用、返回非零或缺少必需能力时,停止并展示错误和升级建议,不自动升级用户环境。 创建 change 后,由 `comet state artifacts <name> --json` 校验路径、全部必需依赖和实际文件。该命令会展开 `applyRequires` 和 Classic 必需的 proposal/tasks 的所有依赖,形成完整依赖闭包。闭包要求生成 design 时,不能因为 instructions 称其“可选”就跳过;闭包不要求 design 时,不强制生成。 只有需求不涉及行为规格变更、`.openspec.yaml` 明确设置了 `skip_specs: true`,且没有冲突的规格文件时,才允许跳过 specs。当前支持 proposal/specs/design/tasks 角色;遇到不支持的必需角色或输出模式时,必须明确报告,不能自行猜测处理方式。 ### 1. 探索想法与需求澄清 **立即执行:** 使用 Skill 工具加载 `openspec-explore` 技能。禁止跳过此步骤。 <!-- external-openspec-skill-override --> **外部 OpenSpec Skill 适配规则:** 加载后只采用其探索方法,不执行其中直接运行官方 CLI、切换到固定 cwd,或读写写死的 OpenSpec 目录的指令。所有 CLI 调用改用 `comet classic openspec -- <args...>`,所有文件路径改用本轮绑定的 `<classic-*>` 逻辑根目录。 技能加载后,先复用用户提供的 PRD、设计与已确认事实,围绕下列内容检查缺口并形成澄清摘要。只对会改变范围、方案或验收的未知项提问;信息已足够时可以不追加问答,不设置最低澄清轮数: - 目标:用户真正要解决的问题和期望结果 - 非目标:本次明确不做的内容 - 范围边界:涉及/不涉及的模块、用户、平台或数据 - 关键未知项:仍不确定的假设、风险或依赖 - 验收场景草案:至少覆盖核心成功场景和关键边界场景 澄清摘要必须包含:目标、非目标、范围边界、关键未知项、验收场景草案。 需要向用户澄清时,必须先读取 `comet-classic/reference/decision-point.md`,以明确问题、推荐及理由、各选项影响的形式提问,并优先使用可用的 `AskUserQuestion`。只询问当前缺口;事实或素材无法提供真实选项时说明缺失内容后请求补充。外部探索 Skill 的提问也应用该协议,不能因加载了探索方法而省略选项或替用户选择。 引用完整 PRD 时,给出文件路径和相关章节,不复制全文。已确认的事实不重复征求同意;发现矛盾时,只澄清矛盾点。OpenSpec 技能仍是必需依赖,探索结束后必须返回 Comet,不能由外部 Skill 自行进入设计、实施或归档。探索中的确认不能代替 Open 最后的产物确认。 ### 1a. 创建前确认是否拆分 PRD 用户提供大型 PRD、路线图、完整产品方案,或需求包含多个可独立交付的目标时,创建产物前读取并执行[PRD 拆分与批量恢复](reference/batch-changes.md)。恢复 `.comet/batches/<batch-id>.json` 中的一批 changes 时也读取该参考。普通单 change 直接继续;已确认的拆分项复用原范围。 ### 1b. 整理需求并确定 Change 名称 创建 OpenSpec 产物前,把 Step 1 的澄清结果整理为需求摘要(resolved brief),包括目标、非目标、范围边界、关键未知项和验收场景草案。根据这份摘要,拟定一个能准确表达范围的 kebab-case 英文 change 名称。 - **范围与命名都明确时直接继续**,不得仅为了让用户批准摘要或名称而创建停顿点;最终审视会统一确认 change 名称、范围和产物内容 - 用户已经提供名称时,规范化为 kebab-case 并在进度说明中回显;规范化不改变含义时无需再次确认 - 已确认批量拆分项直接复用批量清单中的摘要与名称;检测到范围漂移或清单信息缺失时,才重新澄清 - 只有仍需在不同范围或不同目标 change 之间作出选择时,才按 `comet-classic/reference/decision-point.md` 将相关问题合并提问;不能仅因命名偏好而单独暂停 OpenSpec change 名称必须是 kebab-case 英文(小写字母、数字、单连字符)。名称冲突但目标仍明确时,拟定一个不冲突且含义一致的名称,然后继续。只有无法判断应复用现有 change 还是创建新 change 时,才交给用户选择。 resolved brief 或 change 名称仍不明确时不得运行 `comet classic openspec -- new change`,也不得创建 proposal/design/tasks;继续澄清或处理真正的用户决策后再进入 Step 2。 ### 2. 创建 Change 结构 + 初始化状态 本节沿用 [SDK 创建顺序](../comet-classic/reference/sdk-methods.md#开始与产物):OpenSpec 先创建基础目录,再初始化 SDK Run。已有 Run 时只恢复,不重建目录或状态。 **立即执行:** 使用 Skill 工具加载 `openspec-new-change` 技能。禁止跳过此步骤。 <!-- external-openspec-skill-override --> **外部 OpenSpec Skill 适配规则:** 加载后只采用其创建 change 的方法,不执行其中直接运行官方 CLI、切换到固定 cwd,或把 change 写到固定 OpenSpec 根目录的指令。创建、status 与 instructions 全部改用 `comet classic openspec -- <args...>`,文件路径全部改用 `<classic-change-dir>` 等本轮逻辑根目录。 完整 `/comet-classic` 流程默认不得使用 Skill 工具加载 `openspec-propose` 技能;只有用户明确要求一次性生成提案和其他产物时,才允许加载。 <!-- external-openspec-skill-override --> **外部 OpenSpec Skill 适配规则:** 使用 `openspec-propose` 时,同样不能直接运行官方 CLI、采用固定 cwd 或读写固定 OpenSpec 目录。命令必须通过适配器执行,产物必须写入路径解析器返回的 `<classic-*>` 逻辑根目录。 技能加载后,按其指引创建 change 的基础目录和文件。Step 1b 已形成范围明确的 resolved brief 时,不再执行其中的 "STOP and wait for user direction",直接继续,避免重复询问。 直接使用 Step 1b 的 resolved brief 填充产物内容。只有 brief 仍有会改变范围的歧义时,才回退到技能的提问流程。 change 的基础目录和文件创建后,立即初始化 SDK Run,以便中断后恢复;不能等所有产物都生成后才初始化(入口状态验证统一在 Step 3 执行,这里不重复): ```b
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | NA |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (0)
No findings outside the package's declared scope.
Gates applied: no_behavioural_pass.
7a161f52eaedfull audit observations/trust-audit/skill/rpamis__comet-open.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-26 | 7a161f52eaed | SAFE | B | 89 | first audit |
Questions
What does the comet-open — rpamis/comet skill do?
Comet: agent skill harness for turning ideas into evaluated workflows
Is comet-open — rpamis/comet safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can comet-open — rpamis/comet access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
What do I need installed to use comet-open — rpamis/comet?
Its own instructions reference status. Dependencies are pinned to exact versions.
How current is this page?
The grade is for one exact copy of the source (7a161f52eaed), read on 2026-10-26. The repository is watched, and a new audit runs when it changes — this is the first audit.
Add this badge to your README
Shows this page's audit result and links back to it. It updates when the audit does.
[](https://modelsatlas.com/skills/rpamis/comet-open/)
Not your listing, or something out of date? Claim or update your listing.