- 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 å®è¡ã«å¯ããã
ãããããšãé·æéã¿ã¹ã¯ã§ããæ¢ããããåéããããä»ã®ç¶æ
ãèŠãããçŽ çŽã«ãªãã
äŸåé¢ä¿ãæºãããäœæ¥ã ããå®å
šã«ãŸãšããŠé²ããããã