gm-continue

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

gm-continue

gm-continue

This is the only allowed next step when a
gm
walk reaches
phase=COMPLETE AND prd_pending_count=0
. Never end that turn with prose alone -- dispatch this skill instead, every time, no exceptions for "it looks finished."
This skill itself has exactly two allowed ways to end, and no others. (1) Dispatch
Skill(skill="gm")
with the remaining PRD rows (found reachable work, or reopened an
external
/
out-of-reach
row, or this is the first confirming pass this session) --
gm
then runs and, when it reaches COMPLETE again, calls back into this same skill. (2) Confirm there are no remaining PRD rows and none can be added -- a real, witnessed check (steps 2-4 below actually run, not assumed), not a feeling of "probably done." There is no third path: no prose-only stop that isn't outcome (2), no deferring to the user to decide whether to continue, no partial confirmation. Every dispatch of this skill lands in exactly one of these two states before the turn ends.
gm
流程进入
phase=COMPLETE AND prd_pending_count=0
状态时,这是唯一允许执行的下一步操作。绝对不要仅用文字结束当前轮次——请务必调用此skill,哪怕看起来已经完成也不能例外。
此skill仅有两种允许的结束方式,无其他可能。 (1) 调用
Skill(skill="gm")
并传入剩余PRD条目(包括发现可处理的工作、重新开启
external
/
out-of-reach
条目,或是本次会话的首次确认流程)——
gm
执行后,当再次进入COMPLETE状态时,会回调此skill。(2) 确认没有剩余PRD条目且无法添加新条目——这必须是真实、经过验证的检查(需实际执行以下步骤2-4,而非主观假设),不能仅凭“大概完成了”的感觉判断。不存在第三种路径:不允许出现非结果(2)的纯文字终止、不允许将是否继续的决定权交给用户、不允许部分确认。每次调用此skill,在轮次结束前都会进入这两种状态中的一种。

What this skill does

此skill的功能

  1. Read
    .gm/exec-spool/.turn-summary.json
    for the current
    phase
    ,
    prd_pending
    , and how many times this repo has already round-tripped through
    gm-continue
    this session (track via a counter file, see below).
  2. Read
    .gm/prd.yml
    and
    .gm/mutables.yml
    directly for any row marked
    blockedBy: [external]
    /
    [out-of-reach]
    or otherwise deferred. A prior
    external
    /
    out-of-reach
    marking is not a closed door -- it is remaining work by definition.
    Re-examine each one now: is the blocker still genuinely unreachable this turn, or was it marked that way under time/scope pressure when it was actually solvable? Anything reachable now goes back into scope, re-
    prd-add
    'd (re-scope the existing id, never delete-and-re-add) as work to actually solve, not left marked external.
  3. Fan out
    codesearch
    +
    recall
    against the ORIGINAL request's full closure, not against memory of what was already done -- a fresh look, same discipline as
    gm
    's own PLAN orient. 3a. Re-read the user's literal words from this turn, then exercise the live system now to check the shipped behavior against them. No test file, prior PRD
    witnessed
    mark, or recollection of the fix counts as evidence --
    prd_pending_count=0
    only proves no row is open, not that closed rows match what was actually asked, and a row resolved in the same pass as its own check can share that check's misreading. Run the real path the user would use and read the real output. Any mismatch is remaining work,
    prd-add
    'd fresh.
  4. If
    .gm/prd.yml
    has ANY items at all (pending, or reopened
    external
    rows from step 2), that alone is remaining work -- skip straight to the dispatch below, no further search needed.
  5. Two outcomes, decided by what steps 2-4 actually find:
    • Real remaining work found (any PRD item at all, a reopened external/out-of-reach row, an unaddressed noun from the request, an edge case never exercised, a residual never triaged, a sibling repo never checked): dispatch
      Skill(skill="gm")
      and instruct it explicitly to finish ALL remaining tasks in
      .gm/prd.yml
      and fix any issues that arise while doing so -- not a narrow slice, not "just the reopened ones." Tell it plainly what was found so it lands directly in PLAN with real rows, not a blind re-orient.
    • Nothing found, but this is the first
      gm-continue
      dispatch this session
      : dispatch
      Skill(skill="gm")
      anyway, once, to let a full independent PLAN pass confirm it from inside
      gm
      's own discipline (fresh
      codesearch
      /
      recall
      ,
      prd_pending_count=0
      reached with nothing new added). That confirming turn inside
      gm
      is the actual stopping point -- prose-only is earned there, not here.
    • Nothing found, and
      gm-continue
      already ran that confirming pass this session
      (counter >= 1): the loop is closed. Prose-only summary is authorized. Do not dispatch anything further.
  1. 读取
    .gm/exec-spool/.turn-summary.json
    文件,获取当前
    phase
    prd_pending
    状态,以及本次会话中该仓库通过
    gm-continue
    进行往返的次数(通过计数器文件跟踪,详见下文)。
  2. 直接读取
    .gm/prd.yml
    .gm/mutables.yml
    文件,查找所有标记为
    blockedBy: [external]
    /
    [out-of-reach]
    或已延期的条目。此前标记的
    external
    /
    out-of-reach
    并非最终结论——根据定义,这些仍属于未完成的工作。
    现在重新检查每一条目:当前轮次中阻碍因素是否真的无法解决?还是因为时间/范围压力被标记为不可解决,但实际是可以处理的?任何当前可处理的条目都应重新纳入范围,通过re-
    prd-add
    操作(重新调整现有id的范围,切勿删除后重新添加)标记为待解决工作,而非保留external标记。
  3. 针对原始请求的完整范围执行
    codesearch
    +
    recall
    操作,而非依赖已完成工作的记忆——这是全新的检查,遵循与
    gm
    自身PLAN阶段相同的规则。 3a. 重新读取用户当前轮次的字面表述,然后在实时系统中验证已交付的行为是否符合要求。 测试文件、PRD中之前的
    witnessed
    标记、对修复内容的记忆都不能作为证据——
    prd_pending_count=0
    仅证明没有未关闭的条目,不代表已关闭的条目符合用户实际需求,且在同一流程中解决并检查的条目可能存在检查失误。请运行用户实际会使用的路径并查看真实输出。任何不符之处都属于未完成工作,需通过
    prd-add
    添加新条目。
  4. .gm/prd.yml
    中存在任何条目(待处理条目,或步骤2中重新开启的
    external
    条目),即说明存在未完成工作——直接跳转到下文的调用步骤,无需进一步搜索。
  5. 根据步骤2-4的实际结果,会产生两种结局:
    • 发现真实未完成工作(任何PRD条目、重新开启的external/out-of-reach条目、请求中未处理的内容、未测试的边缘情况、未分类的残留问题、未检查的关联仓库):调用
      Skill(skill="gm")
      ,并明确指示其完成
      .gm/prd.yml
      中的所有剩余任务,同时解决执行过程中出现的任何问题——不要局限于某一部分,也不要仅处理“重新开启的条目”。清晰告知发现的内容,使其直接进入PLAN阶段处理真实条目,而非盲目重新定位。
    • 未发现工作,但本次会话首次调用
      gm-continue
      :无论如何都要调用一次
      Skill(skill="gm")
      ,让其通过完整独立的PLAN流程,在自身规则内进行确认(全新的
      codesearch
      /
      recall
      操作,达到
      prd_pending_count=0
      且未添加新条目)。
      gm
      内部的这次确认轮次才是真正的终止点——只有此时才允许用纯文字结束,而非在此处。
    • 未发现工作,且
      gm-continue
      已完成本次会话的确认流程
      (计数器>=1):循环结束。允许使用纯文字总结。无需再调用任何内容。

When to load
wfgy-method
instead of
gm

何时加载
wfgy-method
而非
gm

If a prior
gm
walk reached COMPLETE but the same class of gap keeps recurring across repeat
gm-continue
invocations (the confirming pass itself found new work more than once, or a stuck-loop-escalation was seen during the walk), dispatch
Skill(skill="wfgy-method")
instead of reloading
gm
directly. Apply its BBCR bounded-retry-then-surface discipline first -- checkpoint, name the unresolved tension, surface it plainly -- before any further
gm
re-entry. Reloading
gm
blind into a recurring gap repeats the same failure;
wfgy-method
exists to break that specific pattern.
若之前的
gm
流程已进入COMPLETE状态,但在多次调用
gm-continue
后,同类问题持续出现(确认流程本身多次发现新工作,或流程中出现循环停滞升级),则应调用
Skill(skill="wfgy-method")
而非直接重新加载
gm
。在再次进入
gm
之前,先应用其BBCR(有限重试后暴露问题)规则——创建检查点、明确未解决的问题、清晰暴露问题。盲目重新加载
gm
进入重复出现的问题会导致同样的失败;
wfgy-method
的存在正是为了打破这种特定模式。

Recursion bound

递归限制

Track invocation count in
.gm/.gm-continue-count
(plain integer, reset by a fresh user prompt). This skill dispatches
gm
or
wfgy-method
at most twice per user turn before it is required to stop and report to the user directly: once to check, once more only if that check found real work and the subsequent
gm
walk needs its own confirming
gm-continue
pass. A third consecutive "nothing new, re-check again" cycle is itself the stuck-loop signal -- surface it, do not keep looping silently.
调用次数记录在
.gm/.gm-continue-count
文件中(纯整数,用户新发起请求时重置)。此skill在每个用户轮次中最多调用
gm
wfgy-method
两次,之后必须停止并直接向用户报告:一次用于检查,仅当检查发现真实工作且后续
gm
流程需要自身的
gm-continue
确认流程时,才进行第二次调用。连续第三次出现“未发现新内容,重新检查”的循环本身就是循环停滞的信号——应暴露该问题,切勿继续静默循环。

Never a substitute for
gm

切勿替代
gm

This skill does no PRD work, no EXECUTE, no EMIT, no VERIFY itself -- it only orients, decides, and hands off. All actual work happens inside
gm
(or
wfgy-method
's recovery discipline), dispatched via
Skill
, never inlined here.
此skill自身不执行任何PRD工作、不进行EXECUTE、EMIT或VERIFY操作——仅负责定位、决策和交接。所有实际工作都在
gm
(或
wfgy-method
的恢复规则)内部完成,通过
Skill
调用,绝不会在此处内联执行。