基础概念
Native 和 Classic 应该怎么选
Native 和 Classic 应该怎么选
Native 面向 Fable 5、GPT-5.6 等强编码模型。它保留需求澄清、完整目标规格、状态、验证证据和归档,但让模型按仓库事实和风险选择计划、测试、调试与审查方法。Classic 面向需要更明确过程约束的模型,通过 OpenSpec 与 Superpowers 提供 open、design、build、verify、archive 五阶段治理。选择哪一套由项目配置决定,不由 Comet 根据任务大小临时猜测。详见 Native 工作流。
Native 是否依赖 OpenSpec、Superpowers 或其他外部 Skill
Native 是否依赖 OpenSpec、Superpowers 或其他外部 Skill
不依赖。Native 的需求产物、状态机、Guard、恢复和验证协议都由 Comet 自己提供。日常仍统一调用
/comet;它读取 .comet/config.yaml 的 default_workflow 后进入项目选定的永久入口。为什么 Native 只有四个阶段
为什么 Native 只有四个阶段
Native 用 Shape、Build、Verify、Archive 约束必须完成的结果,而不固定模型采用哪套实现方法。Shape 负责需求与共享理解,Build 负责实现,Verify 负责证据,Archive 负责更新 canonical spec 并封存 change。阶段更少不代表可以跳过需求或验证。Runtime 仍会检查 brief、完整目标规格、用户确认、implementation scope 和验证证据。
Shape 与需求澄清
Sequential 和 Batch 澄清模式有什么区别
Sequential 和 Batch 澄清模式有什么区别
sequential 每轮只问一个最上游决定,适合前一个答案会改变后续问题的需求。batch 会一次提出当前前置条件都已确定的问题,适合各决定相对独立的需求。两种模式都会把答案立即写入 brief,并在进入 Build 前要求用户确认完整共享理解。配置方式见 Native 配置。为什么问题都回答完了还要确认共享理解
为什么问题都回答完了还要确认共享理解
单个答案正确,不代表组合后的范围、非目标、默认行为和验收标准没有矛盾。最终确认把用户批准绑定到当时的
brief 与完整目标规格。之后如果 contract 发生变化,旧确认会失效,Native 会重新请求确认。
实现过程中改变需求怎么办
实现过程中改变需求怎么办
告诉 Agent 哪些行为需要改变,然后再次调用
/comet。Native 会根据当前 phase、contract 和项目快照决定退回 Build 还是 Shape。不要手工修改 comet-state.yaml 的 phase、approval 或 hash。状态与恢复
会话中断后如何继续
会话中断后如何继续
再次输入 多个 active change 同时存在时,Runtime 会要求明确目标,不会把写入猜到另一个 change。
/comet 继续。Native 从 change 文件、Runtime 状态和当前仓库事实恢复,不依赖原聊天记录。你也可以先运行:status、status --details 和 doctor 分别什么时候用
status、status --details 和 doctor 分别什么时候用
comet status 用于查看项目有哪些 active change。comet native status <change> --details 展开 phase、阻塞原因、下一动作和有界详情。comet native doctor <change> 检查损坏状态、事务残留和可修复问题;只有明确需要时再使用 --repair。哪些文件可以手工修改
哪些文件可以手工修改
Brief、完整目标规格和验证报告是用户可读产物,但应让
/comet 在对应阶段协调修改。comet-state.yaml、run-state.json、trajectory、锁、hash、snapshot evidence 和 .comet/current-change.json 都是 Runtime 管理的机器状态,不要手改。内容快照与实现范围
baseline snapshot 和 current snapshot 分别是什么
baseline snapshot 和 current snapshot 分别是什么
创建 change 时,Native 对纳入范围内的真实文件内容做流式 SHA-256,生成
baseline-manifest.json。它回答“开始实现时项目是什么状态”。Build、Verify 和 check 会创建 current snapshot,回答“同一范围现在是什么状态”。Runtime 比较两者,结合模型提交的项目相对路径形成 implementation scope,并判断验证证据是否仍对应当前实现。include 和 exclude 有什么作用
include 和 exclude 有什么作用
native.snapshot.include 定义这次 change 可以观察的项目路径;exclude 从已纳入路径中剔除明确不属于实现或验证范围的内容。文件必须至少匹配一个 include,并且不能匹配任何 exclude。因此 exclude 最终优先。它们不是随手减少扫描量的隐藏开关,而是会写入 baseline 的可审计范围策略。glob 应该怎么写
glob 应该怎么写
Pattern 必须是项目相对路径,使用
/:*匹配单个目录层级内的任意字符;**可以跨越多个目录层级;?匹配一个非/字符;- 不允许绝对路径、反斜杠、空 pattern 或
..; - 不支持用
!pattern表示排除,请把排除项写进exclude。
packages/*/src/** 会纳入每个直接子 package 的 src,但不会自动纳入其测试、根锁文件或共享配置。.gitignore 和 snapshot exclude 有什么区别
.gitignore 和 snapshot exclude 有什么区别
在 Git 项目中,Git provider 枚举 tracked 与未被 ignore 的 untracked 文件;
.gitignore 影响哪些未跟踪文件进入候选集合。exclude 则是 Native change 的显式范围策略,会和 policy hash 一起固化到 baseline。两者用途不同:.gitignore 是仓库级版本控制约定,exclude 是一次 change 的审计边界。即使目录通常被 Git ignore,对大型生成物或数据目录写出明确 exclude,仍能让非 Git provider 和后来维护者理解你的范围意图。普通项目怎么配置
普通项目怎么配置
普通项目优先使用完整范围,让 Native 自动观察所有有效项目文件:这套默认值最不容易遗漏共享配置、测试或锁文件。只有遇到明确的范围或预算问题时再收窄。
Monorepo 怎么配置
Monorepo 怎么配置
同时纳入目标应用、它依赖的共享 package、相关测试和根级构建身份文件:不要只 include 当前准备修改的源码目录。如果构建、测试或运行时依赖共享 package、根配置或锁文件,也必须纳入。
大型仓库怎么配置
大型仓库怎么配置
如果大型数据、生成物和缓存不属于交付范围,可以明确排除,并为剩余真实范围提高预算:如果大文件本身属于实现或验证范围,应提高预算,不应通过 exclude 隐藏。排除源码、测试或交付所需配置会让 implementation scope 失真。
为什么修改配置没有改变已有 change 的范围
为什么修改配置没有改变已有 change 的范围
新建 change 时,Runtime 会规范化 include/exclude,并把 policy 与 policy hash 写入
baseline-manifest.json。后续 current snapshot 始终沿用这套 baseline policy。这能防止实现中途通过修改配置隐藏已经纳入的变化。项目配置的新 policy 只影响之后创建的 change;当前 snapshot 仍可以读取调整后的资源预算,以便在仓库增长后完成原范围。snapshot 超预算时应该提高预算还是排除文件
snapshot 超预算时应该提高预算还是排除文件
先问文件是否属于实现或验证范围:
- 属于范围:提高
max_files、max_total_bytes或max_duration_ms; - 不属于范围:添加明确的 exclude,并为新的 change 建立可审计 baseline;
- 不确定:保持纳入,先检查 Runtime 报告的实际限制和受影响路径。
comet native new 在 baseline 不完整时会失败关闭并清理未完成 change,不会留下一个看似可用但范围不可信的 baseline。被 exclude 的文件后来变成实现依赖怎么办
被 exclude 的文件后来变成实现依赖怎么办
不要只修改配置后继续当前 change,因为它的 baseline policy 已经固定。先让 Agent 明确新的实现边界,再创建能够覆盖完整依赖范围的新 baseline。若需求本身也变化,回到 Shape 更新 brief 和规格。
Build、Verify 与排障
为什么 Native 不强制 TDD、固定计划或固定 review 方法
为什么 Native 不强制 TDD、固定计划或固定 review 方法
Native 面向能够根据仓库风险选择方法的强模型,因此约束结果和证据,而不是规定唯一过程。模型仍必须运行与改动风险匹配的测试,记录真实命令与结果,并为每个 Acceptance ID 提供证据或诚实的跳过理由。
Verify 中发现项目又变了会怎样
Verify 中发现项目又变了会怎样
旧验证会变成 stale。Native 会受控退回 Build,基于同一 baseline policy 封印新的 implementation
scope。只有 brief 或完整目标规格也变化时才重新请求用户确认;仅实现变化不会制造额外确认。
多个 change 修改同一文件怎么办
多个 change 修改同一文件怎么办
每个 Native change 有独立 baseline、完整目标规格和状态。并发修改造成 canonical spec
或实现基线冲突时,Runtime 会停止并要求
rebase、重新验证或由用户决定范围,不会静默覆盖另一项工作。详见 多 Change
与规格冲突。

