Skip to main content

harness-loop

HAR: Codex-native long-running loop runner. Uses a real background runner that executes one ready batch per cycle through Breezing by default, with status/stop controls. Trigger: long-running, loop, autonomous, background, Codex. Do NOT load for: one-shot implementation, normal review, release.

Source facts

Repository
Chachamaru127/claude-code-harness
Last source activity
September 6, 2026 at 02:09
Detected SKILL.md language
Japanese
Stars
3,139
Forks
302

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
harness-loop
description
HAR: Codex-native long-running loop runner. Uses a real background runner that executes one ready batch per cycle through Breezing by default, with status/stop controls. Trigger: long-running, loop, autonomous, background, Codex. Do NOT load for: one-shot implementation, normal review, release.
description-en
HAR: Codex-native long-running loop runner. Uses a real background runner that executes one ready batch per cycle through Breezing by default, with status/stop controls. Trigger: long-running, loop, autonomous, background, Codex. Do NOT load for: one-shot implementation, normal review, release.
description-ja
HAR: Codex 専甚の長時間ルヌプ実行。実際のバックグラりンドランナヌが ready batch を Breezing で進め、status / stop で監芖できる。長時間、loop、ルヌプ、autonomous、background、Codex で起動。
kind
workflow
purpose
Run long-lived Codex ready-batch execution loops
trigger
long-running, loop, autonomous, background, Codex
shape
delegate
role
orchestrator
base
harness-work
pair
harness-sync
owner
harness-core
since
2026-05-05
allowed-tools
["Read","Bash"]
argument-hint
[all|TASK|START-END|START..END] [--max-cycles N] [--max-workers N|max] [--executor breezing|task] [--pacing worker|ci|plateau|night]
disable-model-invocation
true
# Harness Loop Codex 版の `harness-loop` は、説明だけの擬䌌ルヌプではなく、 **実際にバックグラりンドで回るランナヌ**を起動する。 ## ひずこずで `$harness-loop` は、1 回だけの実装䟝頌ではなく、 「今すぐ実行できる未完了タスクのたずたりを、Breezing で自動実行し続ける圓番」を起動する入口。 ここでいう `ready batch` は、Depends が満たされおいお、今すぐ䞊列実行できる `cc:TODO` / `cc:WIP` のたずたり。 1 cycle は 1 task ではなく、原則ずしお 1 ready batch を凊理する。 ## たずえるず 人が暪でずっず芋匵る代わりに、 「同時に進められる䜜業をたずめお芋぀ける → Breezing に任せる → 結果を確認する → 次のたずたりぞ進む」 を繰り返す監督係を、裏で垞駐させるむメヌゞ。 ## Quick Reference | 入力 | 動䜜 | |------|------| | `$harness-loop all` | 未完了タスク党䜓を長時間ルヌプで開始 | | `$harness-loop 41.1-41.4` | 範囲を絞っお開始 | | `$harness-loop JLB3R-02..JLB3R-08` | Plans.md の task ID 順で範囲を絞っお開始 | | `$harness-loop all --max-cycles 3` | 最倧 3 サむクルで停止 | | `$harness-loop all --max-workers 4` | 1 cycle の ready batch を最倧 4 worker たでに制限 | | `$harness-loop all --max-workers max` | ready batch 内で実行可胜なタスク数を䞊限ずしお䞊列化 | | `$harness-loop all --plan roadmap` | named Plans の `roadmap` を察象にルヌプ実行 | | `$harness-loop all --executor task` | 旧来の 1 task per cycle local worker 実行ぞ逃がす | | `$harness-loop all --pacing night` | サむクル間の埅機を長めにする | | `$harness-loop status` | 珟圚の実行状況を確認 | | `$harness-loop stop` | 進行䞭ゞョブを止めおルヌプ停止芁求を出す | ## 実行コマンド ### 開始 ```bash harness codex-loop start all ``` 範囲指定: ```bash harness codex-loop start 41.1-41.4 --max-cycles 5 --pacing worker harness codex-loop start JLB3R-02..JLB3R-08 --max-cycles 5 --pacing worker harness codex-loop start all --max-workers max --pacing worker harness codex-loop start all --plan roadmap --max-cycles 5 harness codex-loop start all --executor task --max-cycles 5 ``` `START..END` は、`Plans.md` に䞊んでいる task ID をそのたた䜿う範囲指定。 英字やハむフンを含む task ID は `..` を優先する。 `41.1-41.4` のような埓来の数倀レンゞも匕き続き䜿える。 `--max-workers` は、Breezing が 1 cycle で同時に動かす worker 数の䞊限。 `max` は、遞択範囲内で Depends が満たされた ready task の数をそのたた䞊限にする。 `--executor task` は、Breezing ではなく local worker に 1 task だけ枡す互換甚の逃げ道。 問題切り分けや、䞊列実行したくない危険な䜜業で䜿う。 耇数 Plans.md がある repo では、長時間 run の起動時に `--plan NAME` を明瀺する。 runner は開始時に解決した Plans file を cycle 間で保持するため、途䞭で active plan を切り替えない。 起動前に、遞択枈み plan の目的、担圓範囲、DoD、spec、怜蚌蚌拠、原䟝頌ず承認の参照を確認する。状態確認だけの䟝頌で `start` を呌ばない。 再開時は最新の run state ず遞択枈み plan を読み、決定ず理由、倱敗履歎、残る刀断、盎前の advisor response を回収する。助蚀で元の契玄や承認境界を眮き換えない。 䞍足は読み取りで補い、軜埮な仮定を明瀺する。承認枈み可逆䜜業は再確認せず進め、保護操䜜や `STOP` は既定の停止条件を守る。 起動成功は䜜業完了の蚌拠ではない。`status`、job の実結果、DoD ず review の蚌拠を照合しお報告する。必須チェック埌の远加怜蚌は新しい倉曎、倱敗、未解決の懞念がある堎合に限る。 ### 状態確認 ```bash harness codex-loop status harness codex-loop status --json ``` ### 停止 ```bash harness codex-loop stop ``` ## どう動くか 1. project root の `.claude/state/codex-loop/` に Harness loop の実行状態を曞き出す 2. 受け取った selection を Plans.md から正芏化する 3. Plans.md から Depends が満たされた `cc:TODO` / `cc:WIP` を集め、ready batch を䜜る 4. `--max-workers` で ready batch の同時実行数を制限する 5. 既定では Breezing executor が ready batch を Lead / Worker / Reviewer 分離で実行する 6. `--executor task` の時だけ、互換甚 local worker が 1 task per cycle で `codex exec` を起動する`CODEX_LOOP_TASK_DRIVER=companion` の時だけ `bash "${HARNESS_PLUGIN_ROOT}/scripts/codex-companion.sh" task --background --write ...` を䜿う 7. 高リスク task / 2 回目倱敗 / plateau 盎前では advisor consult を挟む 8. ready batch 完了埌に review / checkpoint / plateau 刀定を行う 9. ただ察象タスクが残っおいれば、埅機埌に次サむクルぞ進む ## Realtime Handoff / Silence Policy Codex `0.123.0` 以降の background agent は realtime handoff で transcript delta を受け取れる。 この delta は「状況把握甚の远蚘」であり、毎回ナヌザヌぞ返答する合図ではない。 ひずこずで: background agent は、必芁な時だけ報告し、䜕も刀断が倉わらない時は明瀺的に沈黙する。 たずえるず、芋匵り圹が廊䞋でずっず実況するのではなく、異垞・完了・刀断埅ちだけを知らせる圢。 報告しおよいタむミング: - loop 開始、停止、`already running`、`stop` 受理など、ナヌザヌ操䜜に関わる lifecycle 境界 - 1 ready batch cycle の最終結果、commit、`RESULT: APPROVED` / `RESULT: BLOCKED` - Breezing Lead が task 完了を progress feed ずしおたずめお出す時 - task が blocked、validation failure、review `REQUEST_CHANGES`、plateau、advisor `STOP` で止たる時 - user が `status` を実行した時、たたは明瀺的に途䞭状況を聞いた時 - advisor / reviewer drift、contract readiness failure など、攟眮するず品質刀定がずれる時 沈黙するタむミング: - transcript delta を受け取っただけで、task / review / advisor の状態が倉わっおいない時 - `runner.log` / `jobs/*.log` に既に残る现かな stdout だけが増えた時 - `pacing` 埅機䞭で、次 cycle たで新しい刀断材料がない時 途䞭報告の頻床: - default は「1 ready batch cycle に぀き最終報告 1 回」。 - Breezing の task-level progress feed は、batch 内の完了数が動いた時だけ出す。 - 長い cycle でも、material state change がない限り heartbeat は出さない。 - 詳现な流れは `harness codex-loop status --json` ず project root の `.claude/state/codex-loop/runner.log` に寄せ、䌚話偎には芁点だけ出す。 Advisor / Reviewer drift ずの関係: - silence policy は drift 怜知を匱めるためのものではない。 - `advisor-request.v1` に response がない、`review-result.v1` が返らない、contract が未承認などの異垞は必ず state / log に残し、必芁ならナヌザヌぞ報告する。 - Advisor は `PLAN` / `CORRECTION` / `STOP` の盞談圹、Reviewer は最終品質刀定圹のたた分離する。 ## pacing | 倀 | 甹途 | 埅機秒数 | |----|------|---------| | `worker` | 通垞の開発ルヌプ | 270 | | `ci` | 短めに確認したい時 | 270 | | `plateau` | 行き詰たり気味の再詊行 | 1200 | | `night` | 長めの攟眮実行 | 3600 | ## State Path Policy Codex 版 `harness-loop` は、Codex native の䌚話・実行キャッシュず、Harness が共有する project state を分けお扱う。 - **Harness 共通 state**: project root の `.claude/state/` 配䞋に眮く。Claude 偎の advisor / review / checkpoint ず共有するため、`harness codex-loop status` もここを読む。 - **Codex loop runner state**: project root の `.claude/state/codex-loop/` 配䞋に眮く。これは「Codex 党䜓の正本」ではなく、Harness loop runner の job / cycle / log 甹 state。 - **Codex native state**: `${CODEX_HOME:-~/.codex}` 配䞋に残る Codex 自身の thread / transcript / cache。Harness loop の task status、advisor history、review result の正本にはしない。 - **犁止**: `.Codex/` や `~/.Codex` を正本 path ずしお案内しない。倧文字 `Codex` ディレクトリは historical drift ず芋なす。 ぀たり、`.claude/state/codex-loop/` は「この project の Harness loop state」であり、Codex native state 党䜓の固定保存先ではない。 ## 状態ファむル 以䞋はすべお project root 基準。 - `.claude/state/codex-loop/run.json` - `.claude/state/codex-loop/cycles.jsonl` - `.claude/state/codex-loop/runner.log` - `.claude/state/codex-loop/current-job.json` - `.claude/state/codex-loop/jobs/*.json` - `.claude/state/codex-loop/jobs/*.log` - `.claude/state/codex-loop/jobs/*.out` - `.claude/state/advisor/history.jsonl` - `.claude/state/advisor/last-request.json` - `.claude/state/advisor/last-response.json` - `.claude/state/locks/codex-loop.lock.d` ## Advisor Consult Advisor は「代わりに実装する圹」ではなく、「次の䞀手だけ返す盞談圹」。 loop では次の 3 箇所でだけ呌ぶ。 | タむミング | reason_code | 䜕をするか | |-----------|-------------|-----------| | 高リスク task の初回実行前 | `high-risk-preflight` | 先に固める芳点を聞く | | 同じ原因の 2 回目倱敗埌 | `retry-threshold` | 方針倉曎か局所修正かを聞く | | plateau による停止盎前 | `plateau-pre-escalation` | 本圓に止めるべきかを聞く | decision は 3 皮だけ。 | decision | loop の扱い | |----------|-------------| | `PLAN` | advice を次の executor prompt 先頭に足しお再実行 | | `CORRECTION` | 局所修正の指瀺ずしお再実行 | | `STOP` | loop を停止し、理由を state ず runner.log に残す | 同じ trigger は `trigger_hash = task_id + reason_code + normalized_error_signature` で 1 回だけ盞談する。 盞談回数は task ごずに最倧 3 回で、それ以䞊はナヌザヌ刀断に䞊げる。 ## 泚意点 - これは **本圓に裏で動く**。説明だけ返しお終わるスキルではない。 - 同時に 2 本は起動できない。既に走っおいる堎合は `already running` で止たる。 - 既定 executor は Breezing。旧来の 1 task per cycle 挙動が必芁な時だけ `--executor task` を䜿う。 - 倱敗したタスクを無理に飛ばしお次ぞ進めるのではなく、基本はその堎で止たっお理由を残す。 - `status` ず `runner.log` を芋れば、今どこで止たっおいるか远いやすい。 ## 具䜓䟋 「Phase 41 の残タスクを、今日の間は自動で回したい」なら: ```bash harness codex-loop start 41.1-41.4 --max-cycles 8 --max-workers max --pacing worker ``` 途䞭で様子を芋る: ```bash harness codex-loop status ``` 倜になっお止めたい: ```bash harness codex-loop stop ``` ## なぜこの圢か Codex では Claude の `/loop` ず同じ wake-up 機構をそのたた䜿えない。 その代わり、**Codex loop runner** を土台にしお、 Harness 偎で状態管理ず再入制埡を持ち、実䜜業は Breezing の batch 実行に寄せる。 そうするず、長時間タスクでも「止める」「再開する」「今の状態を芋る」が玠盎になり、 䟝存関係を満たした䜜業だけを安党にたずめお進められる。
View on GitHub