Atlas / Skills / rpamis / Comet Open

Comet OpenSAFE

skills/rpamis/comet-open

Comet: agent skill harness for turning ideas into evaluated workflows

Verdict
SAFE
Grade
B
Trust score
89 /100
Version
—
Hosts
—
License
MIT
Stars
3,232
01

Overview

Comet: agent skill harness for turning ideas into evaluated workflows

Read from source at commit 7a161f52eaedOBSERVED · 2026-10-26
Advertisement
02

What 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
03

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.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeNA
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (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.

Audited 2026-10-26 · audit v0.4.1 · source sha 7a161f52eaedfull audit observations/trust-audit/skill/rpamis__comet-open.json · Report an issue / request a re-scan
04

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-267a161f52eaedSAFEB89first audit
05

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.

ModelsAtlas audit badge

Markdown
[![ModelsAtlas audit: Comet Open](https://modelsatlas.com/skills/rpamis/comet-open/badge.svg)](https://modelsatlas.com/skills/rpamis/comet-open/)

Not your listing, or something out of date? Claim or update your listing.

Advertisement