OpenSpec Bulk Change Archiver
Fission-AI/OpenSpec
Archives several completed OpenSpec changes in one operation, checking the codebase to resolve spec conflicts rather than archiving blindly.
归档并交付 Classic change。在用户调用 /comet-archive,或 Classic Runtime 进入 Archive、恢复交付时使用。
$ npx skills add rpamis/comet --skill comet-archive -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rpamis/comet comet-archive --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/rpamis/comet.git skills-src && mkdir -p .claude/skills && cp -r skills-src/assets/skills-zh/comet-archive .claude/skills/comet-archive && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "comet-archive" agent skill from https://github.com/rpamis/comet/tree/master/assets/skills-zh/comet-archive into .claude/skills/comet-archive/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "comet-archive", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/rpamis/comet/tree/master/assets/skills-zh/comet-archiveType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add rpamis/comet --skill comet-archive -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rpamis/comet comet-archive --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rpamis/comet.git skills-src && mkdir -p .agents/skills && cp -r skills-src/assets/skills-zh/comet-archive .agents/skills/comet-archive && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "comet-archive" agent skill from https://github.com/rpamis/comet/tree/master/assets/skills-zh/comet-archive into .agents/skills/comet-archive/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "comet-archive", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rpamis/comet --skill comet-archive -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rpamis/comet comet-archive --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rpamis/comet.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/assets/skills-zh/comet-archive .cursor/skills/comet-archive && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "comet-archive" agent skill from https://github.com/rpamis/comet/tree/master/assets/skills-zh/comet-archive into .cursor/skills/comet-archive/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "comet-archive", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/rpamis/comet.git --path assets/skills-zh/comet-archive--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add rpamis/comet --skill comet-archive -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rpamis/comet comet-archive --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rpamis/comet.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/assets/skills-zh/comet-archive .gemini/skills/comet-archive && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "comet-archive" agent skill from https://github.com/rpamis/comet/tree/master/assets/skills-zh/comet-archive into .gemini/skills/comet-archive/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "comet-archive", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install rpamis/comet comet-archiveInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add rpamis/comet --skill comet-archive -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/rpamis/comet.git skills-src && mkdir -p .github/skills && cp -r skills-src/assets/skills-zh/comet-archive .github/skills/comet-archive && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "comet-archive" agent skill from https://github.com/rpamis/comet/tree/master/assets/skills-zh/comet-archive into .github/skills/comet-archive/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "comet-archive", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rpamis/comet --skill comet-archive -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install rpamis/comet comet-archive --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rpamis/comet.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/assets/skills-zh/comet-archive .opencode/skills/comet-archive && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "comet-archive" agent skill from https://github.com/rpamis/comet/tree/master/assets/skills-zh/comet-archive into .opencode/skills/comet-archive/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "comet-archive", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
comet-archive归档并交付 Classic change。在用户调用 /comet-archive,或 Classic Runtime 进入 Archive、恢复交付时使用。
Comet Archive is an agent skill from rpamis/comet. 归档并交付 Classic change。在用户调用 /comet-archive,或 Classic Runtime 进入 Archive、恢复交付时使用。
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
The repository describes itself as: Comet: agent skill harness for turning ideas into evaluated workflows. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 0fd42a0. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Comet Archive loads about 2.1k tokens when it runs. Until then it costs about 23 tokens; SKILL.md has 547 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from rpamis/comet at commit 0fd42a0, republished under its MIT licence (© rpamis). 547 words, ~2,105 tokens.
.claude/skills/comet-archive/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.收到入口返回的 layout 后,按 comet-classic/reference/classic-layout.md 确定各逻辑根对应的目录。当前上下文已有这份协议时,无需重复加载。本文件中的 OpenSpec CLI 调用均通过适配器执行,文件路径均基于已绑定的 <classic-*> 根目录,无需先额外运行 root show。
<classic-change-dir>/.comet.yaml 中 verify_result: pass归档摘要和流程完成说明,使用本轮入口返回的 configuration.language,不再单独查询语言。
按 comet-classic/reference/scripts.md 使用正式支持的 comet CLI,执行以下入口验证。从任意入口恢复任务时,先按 comet-classic/reference/context-recovery.md 检查恢复状态:
comet state select <change-name>
comet state check <name> archive --json上一阶段 guard 已成功返回本阶段状态信息时,直接使用其中的状态与 agent.continuation 继续,不重复 select/check;恢复任务、工作区变化或外部状态变化时,才执行上述入口验证。使用入口返回的 layout、configuration、nextAction 和 delivery 摘要继续。丢失上下文后恢复任务时,按 context-recovery.md 读取所需详情。已有授权仍然有效、交付目标也没有变化时,只继续未完成的动作,不重复询问。失败时,处理返回的具体原因。
若上述 select / check 输出 BLOCKED 或分支绑定 ERROR,且原因是 bound_branch 与当前分支不一致,立即按 comet-classic/reference/decision-point.md 暂停,让用户单选:切回绑定分支后重新运行入口验证,或在用户明确确认当前分支应接管该 change 后运行 comet state rebind <change-name> 并重新入口验证。不得自行切换分支,不得自行换绑。
读取入口返回的 configuration.isolation 与 delivery。没有有效授权,或交付目标发生变化时,按 decision-point.md 暂停,请用户确认归档和交付方式。已有授权时,先由 Runtime 核对实际 Git 状态和交付进度,再按 nextAction 继续。不能仅凭 branch_status: handled 就认定用户已授权归档、push 或创建 PR,也不能在获得授权前运行 archive-confirm 或 archive。
确认前必须向用户展示简短摘要:
用户确认问题必须以单选题形式呈现,包含以下全部选项。文本降级模式必须使用下表;使用结构化提问时,将“方式”作为短标签、“实际影响”作为说明,不得缩短为含义不明确的选项:
| 选项 | 方式 | 实际影响 |
|---|---|---|
| A | 仅归档(不推送) | 完成归档并创建唯一归档提交;提交只保留在当前绑定分支,不推送、不创建 PR |
| B | 「确认归档并立即推送」 | 完成归档并创建唯一归档提交,然后推送当前绑定分支;不创建 PR |
| C | 「确认归档、立即推送并创建 PR」 | 完成归档并创建唯一归档提交,推送当前绑定分支,然后创建 PR |
| D | 「需要调整或重新验证」 | 不归档;运行 comet state transition <change-name> archive-reopen 回到 phase: verify,再调用 /comet-verify;若确认需要修复,再按验证失败决策回到 /comet-build |
| E | 「暂不归档」 | 不运行 archive-confirm 或归档命令,不提交、不推送;保留未归档的 change、phase: archive 和 branch_status: pending,等待稍后再次调用 /comet-archive |
只有用户选择 A、B 或 C 后,才将选择保存为 JSON 并通过 Runtime 记录,再确认归档:
comet state delivery <change-name> --file <json-path>
comet state transition <change-name> archive-confirmJSON 包含 action(A=local、B=push、C=pr)、targetBranch,以及可选的 remote、commit 和 prUrl。初次记录时,只填写已确认的动作和目标;尚不知道的 commit/prUrl 不得伪造,等操作实际完成后再补写。
targetBranch 是接收归档提交的绑定分支,与 PR 的 base 分支含义不同。PR base 使用已有的明确配置;存在歧义时先澄清。存在多个 remote 时,明确推送目的地,不自行猜测。例如,用户已确认推送时:
{
"action": "push",
"targetBranch": "<confirmed-bound-branch>",
"remote": "<confirmed-remote>"
}用文件工具保存 JSON,再传给 delivery --file。输入文件放在 change 目录之外(例如仓库根的 delivery-input.json),用后删除;不得写进 change 目录,尤其不得使用 <change-dir>/.comet/delivery.json——那是 Runtime 的交付记录,Runtime 会识别同一路径的大小写写法和文件系统别名,并直接报告输入路径冲突。输入只包含 action、targetBranch 和可选的 remote、commit、prUrl;schemaVersion 等字段属于 Runtime 记录,不得出现在输入中。归档提交确认后,在同一完整记录中追加 "commit": "<actual-archive-commit-sha>";action 为 pr 且 PR 已创建时,再追加真实 prUrl。commit 由 Runtime 保存在 Git 忽略的交付回执中,change 目录内被跟踪的 delivery.json 始终不含 commit;归档提交后 change 目录必须与该提交保持零差异,不得在其中新增、修改或删除文件,否则完整性校验失败。local 示例只需 action:local 和已确认 targetBranch,不要求 remote。
普通 comet state delivery <change-name> 只读取已保存的记录,入口摘要也不访问网络。恢复远端交付、上次调用没有返回明确结果,或准备宣告完成时,必须显式运行:
comet state delivery <change-name> --verify返回结果为 {delivery, verification}。delivery 是已保存的用户选择和执行进度,verification 是 Runtime 对实际 Git、远端分支和 PR 的只读核对结果。仅有 delivery 记录或入口检查成功,不能证明远端交付已经完成。按核对结果处理:
delivery 写入或 transition 失败均停止。只有两者成功才继续 Step 2。用户选择 D 时运行 archive-reopen,旧交付授权应失效,重新验证后重新确认;选择 E 直接停止,不归档、提交、推送或设置 handled。
运行归档脚本:
comet archive "<change-name>"脚本自动执行:
如脚本返回非零退出码,报告错误并停止。 如脚本返回零退出码,归档完成。
脚本摘要中的 X/Y steps succeeded 以真实执行步骤计数,不会因 delta spec 同步或文档标注重复累计。
脚本会调用 OpenSpec 归档能力按 ADDED/MODIFIED/REMOVED/RENAMED 语义合并主 spec,并在归档后校验主 spec 中没有残留 delta-only section 标题。
如需预览而不实际执行,使用 --dry-run 参数。
Spec 从需求讨论到归档的完整流程如下,到此全部完成:
brainstorming → delta spec → 实施 → 验证 → 主 spec 合并 → design doc 标注 → 归档归档脚本只移动文件和合并 spec,不会自动提交。归档完成后工作区会有以下未提交改动:
<classic-change-dir>/ 移动到 <classic-archive-root>/YYYY-MM-DD-<name>/确认 delivery 中的实际授权仍有效,再写入兼容字段并运行最终 archive guard(前一条成功后才执行后一条):
comet state set <change-name> branch_status handled && comet guard <change-name> archivehandled 只是兼容旧流程的状态字段,不能表示用户已授权 local/push/pr,也不能证明这些动作已成功。授权与执行结果以 delivery 记录和 Runtime 对实际 Git、远端的核对为准。状态写入或 guard 失败时停止。恢复任务时,先核对归档提交是否已经存在;存在就复用,不再创建第二个归档提交。
归档后读取 git status --short,与归档前按 dirty-worktree 协议记录的改动归属逐项核对。只允许暂存明确属于当前 change 的路径:change 原来所在的路径、脚本输出的实际 archive 路径、归档目录中已更新为 branch_status: handled 的 .comet.yaml、被本次 delta 更新的 main specs,以及当前 Design Doc/Plan 的归档元数据。无法确定某个路径的改动归属时,停止并请用户处理。
使用显式 pathspec 暂存核对后的路径,再检查 staged diff;不得使用全仓库暂存,也不得把用户已有改动混入归档提交:
提交说明沿用已生效的项目格式、语言和正文要求;已有明确规范时直接准备,无需额外询问。下方消息占位符必须替换为实际说明,不能把示例英文模板当作项目规范。项目 Git Hooks 正常执行;被拒绝时保留暂存内容,修正说明后继续同一次提交。提交调用中断或结果不确定时,先核对实际 Git 记录,不盲目重提,也不绕过 Hook。
git add -- <逐项核对后的归档路径...>
git diff --cached --stat
git commit -m "<符合项目规范的归档说明>"提交失败或 staged diff 含无关路径时停止,不得继续分支处理。
归档提交成功后,用 state delivery --file 补写实际 commit,再由 Runtime 核对归档提交与交付目标。根据核对结果,只执行已授权且未完成的动作。记录失败时停止交付,不重新提交;恢复时,先核对已有 Git 提交和分支状态,再补齐记录。交付回执由 Runtime 保存,不能为了记录 commit 而反复创建归档提交。
push 或 PR 调用后,使用 delivery --verify 核对实际远端分支和 PR。PR 创建成功后,通过 delivery --file 补写实际 prUrl,并保留此前的 action、目标和 commit。调用超时或没有返回明确结果时,先查询实际结果,不能盲目重试。失败时保留 delivery 和 current selection,只继续已授权但尚未完成的动作;不得改写、删除或切换分支。
local 由 Runtime 确认归档提交存在;push 还需确认远端包含该提交;pr 还需确认对应 PR 存在且目标匹配。仅填写 commit/prUrl 不等于交付成功。所选动作全部经 Runtime 核对完成后,才运行 clear-selection 并宣告完成。
归档阶段不再调用 Superpowers finishing-a-development-branch,也不提供本地合并、切换、删除或变基等分支拓扑操作。用户只想完成本地归档时,必须在 Step 1 选择 A;用户尚不想归档时,选择 E。
<classic-archive-root>/YYYY-MM-DD-<change-name>/ 存在.comet.yaml 中 archived: truebranch_status: handled 已包含在唯一归档提交中comet guard <change-name> archive 通过归档脚本会把 <classic-change-dir>/ 移动到 <classic-archive-root>/YYYY-MM-DD-<name>/。
comet guard <change-name> archive 会按原 change 名解析实际归档目录;不要手工拼接日期目录名。
Comet Classic 流程全部完成。如需开始新的 Classic 工作,调用 /comet-classic 或 /comet-open。
按 context-recovery.md 执行,phase 为 archive。读取已保存的 delivery 记录,不能依赖当前对话回忆用户选过 A、B 还是 C。Runtime 核对归档目录、提交、远端和 PR 后,只继续尚未完成的动作;local 不执行远端操作。旧 change 只有 handled 记录、缺少授权、交付目标发生变化,或分支关系与记录不一致时,停止并请用户明确确认。不能自行推断授权,也不能自动调整分支关系。
© rpamis, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in assets/skills-zh/comet-archive of rpamis/comet.
Open the folder on GitHubat commit 0fd42a0
Comet Archive next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Comet Archive this skillrpamis/comet | 3.2k | — | ~2.1k | Automated safety check: Pass | MIT | |
| OpenSpec Bulk Change ArchiverFission-AI/OpenSpec | 71k | 2 repos | ~5.6k | Automated safety check: Pass | MIT | |
| CTF ZIP Archive Key Recoveryzhaoxuya520/reverse-skill | 40k | 1 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Conversation Archivegarrytan/gbrain | 31k | — | ~5.6k | Automated safety check: Pass | MIT | |
| Recipe Label And Archive Emailsgoogleworkspace/cli | 31k | — | ~240 | Automated safety check: Pass | Apache-2.0 | |
| Pp Archive Ismvanhorn/printing-press-library | 2.1k | — | ~3k | Automated safety check: Notes | Apache-2.0 |
Fission-AI/OpenSpec
Archives several completed OpenSpec changes in one operation, checking the codebase to resolve spec conflicts rather than archiving blindly.
zhaoxuya520/reverse-skill
Recovers internal keys from legacy ZipCrypto-protected ZIP archives in CTF challenges through a known-plaintext method, instead of brute force.
garrytan/gbrain
Import AI-assistant chat exports (ChatGPT, Claude, Perplexity) and agent session transcripts into the brain as one dated page per conversation under conversations/, validate each page against the…
googleworkspace/cli
Apply Gmail labels to matching messages and archive them to keep your inbox clean.
mvanhorn/printing-press-library
A skill your agent uses whenever the user wants to archive a URL, bypass a paywall, look up an existing archive, view a cached version of a webpage, pull article text from archive.today or the…
rpamis/comet
Comet Classic 工作流入口。当用户明确调用 /comet-classic、要求启动或恢复 Classic,或 resume-probe 返回 autoresume、确认唯一可恢复的未归档 Classic change 时使用。
rpamis/comet
A skill your agent uses when 用户要启动或恢复 Comet 工作流,需要根据 active change、.comet.yaml、hotfix/tweak 意图路由到对应阶段 Skill。
rpamis/comet
Comet workflow entry. An agent skill from rpamis/comet.
rpamis/comet
Comet — OpenSpec + Superpowers dual-star development workflow.
rpamis/comet
Archive and deliver a Classic change. An agent skill from rpamis/comet.
rpamis/comet
Comet Classic workflow entry. An agent skill from rpamis/comet.
rpamis/comet
Complete the Classic technical design and obtain user confirmation.
归档并交付 Classic change。在用户调用 /comet-archive,或 Classic Runtime 进入 Archive、恢复交付时使用。. Comet Archive is an agent skill from rpamis/comet.
Run `npx skills add rpamis/comet --skill comet-archive -a claude-code`. Or copy the skill folder (assets/skills-zh/comet-archive in rpamis/comet) into .claude/skills/comet-archive in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rpamis/comet --skill comet-archive -a codex`. Or copy the skill folder (assets/skills-zh/comet-archive in rpamis/comet) into .agents/skills/comet-archive in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rpamis/comet --skill comet-archive -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/comet-archive, .gemini/skills/comet-archive, .github/skills/comet-archive and .opencode/skills/comet-archive in your project.
Going by SKILL.md and its folder, Comet Archive needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Comet Archive is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Comet Archive: OpenSpec Bulk Change Archiver (Fission-AI/OpenSpec, 71k stars), CTF ZIP Archive Key Recovery (zhaoxuya520/reverse-skill, 40k stars), Conversation Archive (garrytan/gbrain, 31k stars) and Recipe Label And Archive Emails (googleworkspace/cli, 31k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
rpamis (a GitHub organization) maintains it in rpamis/comet, which has 3,166 GitHub stars. The repository holds 52 skills in this directory. The repository was last updated on October 9, 2026.
Source: rpamis/comet on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.