Approved Checklist Executor
Prerequisite: read and obey the repository parent policy at skill/global_rules/SKILL.md first.
Use When
- A checklist or one or more atomic slices have already been approved.
- The task is now in execution state.
- The run mode may be:
- single-slice mode
- pulse mode
Core Rule
- Default to pulse progression when the approved checklist is fully authorized and no blocker appears.
- Preserve atomic discipline at all times:
- one slice
- one verification
- one commit
- one
git status --short
- Execution should stay attached to the current campaign tree.
- A child fix may pause the parent campaign, but it may not silently become the new root campaign.
- Default to continuous execution inside the approved campaign.
- Do not stop merely because new information appears. Stop only when that information crosses a declared red line, invalidates the slice's core assumption, or creates scope drift that would make further execution dishonest.
- If the project exposes an execution lock such as
active_contract.json, treat it as the current execution truth and continue from it rather than narrating a fresh broad contract.
- If the project also exposes a contract runner such as
openclaw_harness_contract_runner.py, use it as the default execution-state transition entrypoint.
Explicit Submode: One-Breath Mode / 一口气模式
This submode is not the default.
It activates only when the user explicitly says things like:
one-breath mode
push continuously
do not stop; finish the approved checklist
continue until blocked
一口气模式
开启一口气模式
用一口气模式推进
不要停,一口气做完
When active, add these stronger rules on top of the normal executor discipline:
- keep moving continuously until a real blocker, failed verification, missing secret, or crossed red line appears
- emit a concrete progress update at least every
3 minutes during long-running work
- stop only on a real blocker, failed verification, missing secret, or crossed red line
- if a red line is crossed, write the smallest possible delta sub-contract and continue from it
- after the delta sub-contract is resolved, automatically return to the main approved contract
- do not inflate the pause into a fresh broad plan unless continuing would be dishonest
- do not pause externally just because one commit or one slice has completed; archive it and keep moving
- write detailed slice-level bookkeeping into harness artifacts rather than turning every slice boundary into a conversational stop
- use progress reports only in this structure, translated to the user's working language:
Proven / 已证明
Not Proven / 未证明
Why It Did Not Complete / 为什么没做成
Add these four hard gates:
next_slice_gate
- after one slice is archived, derive the next smallest valid slice from the approved contract and current evidence
- do not return to open-ended replanning between normal slice boundaries
mainline_priority_gate
- guardrail regressions may be repaired only until they stop blocking the approved mainline
- do not let a story-level fix silently replace the structural campaign as the new mainline
no_summary_gate
- commit boundaries are not conversational stop boundaries
- write detailed closure into harness files first, and keep external updates brief unless the user explicitly asks for a deeper review
stop_gate
- any stop must first record
blocker_class, stop_reason, and next_exact_action
- if these are not available, the executor should assume the campaign is still in motion
In this submode, the executor should bias toward reducing interruption cost rather than increasing explanatory ceremony.
Workflow Per Slice
- If an active contract exists, run one
contract_runner cycle first to synchronize drift before touching code.
- Restate the current slice ID, allowed files, no-touch scope, planned
Red Line, planned Commit Action, affected architecture nodes, planned architecture_delta, affected data entities, planned data_model_delta, amendment status, migration/backfill status, and current contract-tree position:
contract_id
parent_contract_id
root_campaign
summary
return_to
- Modify only the allowed scope.
- Run the planned
Green Tests, and where the YAML defines a white-box chain, run the planned red_test / green_test sequence against the same case.
- Collect target artifacts by assertion, note whether any
Red Line was crossed, record whether the same red case truly turned green, and record the actual architecture_delta and data_model_delta.
- Archive exactly one independent commit using the planned
Commit Action, Commit Unit, and Commit Message.
- If architecture files changed, verify
dev_repo/architecture/graph.json and dev_repo/architecture/index.json parse and that diagrams/ADRs named in the contract were updated.
- If ER/data-model files changed, verify
dev_repo/architecture/data-model/entities.json and dev_repo/architecture/data-model/relationships.json parse and that ER.md, er.mmd, invariants, or migration notes named in the contract were updated.
- If an active contract exists, advance it through
contract_runner complete-current instead of leaving slice closure to oral narration.
- Report
git status --short.
- Package the minimum evidence bundle for Web-side review.
- If this slice was a child contract, explicitly state whether execution now:
- returns to the parent
- remains blocked
- or requires a narrower child delta
Runner Integration
When available, the executor should treat these entrypoints as the default state machine:
- pre-slice drift sync:
python3 scripts/openclaw_harness_contract_runner.py --run-dir <run_dir> --mode cycle
- successful slice advance:
python3 scripts/openclaw_harness_contract_runner.py --run-dir <run_dir> --mode complete-current --story-id <slice_root_id>
- stop validation:
python3 scripts/openclaw_harness_guard.py --run-dir <run_dir> --mode stop ...
If these files exist and the executor skips them without a red-line reason, that is execution drift.
Replanning Discipline
- If execution must stop, explain it in red-line language first:
- which red line was crossed
- which prior assumption failed
- why continuing would now be dishonest or scope-breaking
- If execution discovers an architecture change not declared in the active contract, stop ordinary execution and open the smallest architecture amendment delta contract.
- If an architecture amendment closes, explicitly return to the parent contract through
return_to before continuing ordinary implementation.
- If execution discovers an ER/data-model change not declared in the active contract, stop ordinary execution and open the smallest data-model amendment delta contract.
- If a data-model amendment closes, explicitly return to the parent contract through
return_to before continuing ordinary implementation.
- Prefer a delta replan over a full fresh contract:
- keep already-completed slices settled
- only replace the invalidated tail of the plan
- Do not repeatedly pause for ceremonial replans when the next valid action is obvious from the current red line.
- When a child contract closes successfully, prefer pruning it from the live tree view and collapsing it into historical evidence rather than leaving it as a full visible branch.
- When pruning, keep each collapsed contract's
summary visible inside the historical bucket.
Stop Conditions
Stop immediately if any of the following happens:
- verification fails
- scope drift occurs
- architecture delta differs from the approved contract
- an architecture amendment is required but not active
- data-model delta differs from the approved contract
- an ER/data-model amendment is required but not active
- migration or backfill is required but not declared in the approved contract
- a new structural red line appears
- the slice needs replanning
- a required secret is missing
blocker_class, stop_reason, and next_exact_action can now be stated honestly
Non-Stop Conditions
Do not stop just because:
- a probe returns useful new detail but does not cross a red line
- a partial result sharpens the diagnosis while leaving the slice valid
- the user-facing story is still incomplete but the current slice remains valid and executable
- one commit just landed
- one slice just turned green
- the executor wants to summarize progress more elegantly
Campaign Runtime Discipline
- If a runtime container exists, keep it current instead of relying on oral summaries.
- If
dev_repo/architecture/ exists, keep architecture delta current instead of relying on oral summaries.
- If
dev_repo/architecture/data-model/ exists, keep data-model delta current instead of relying on oral summaries.
- The executor should always be able to answer:
- what root campaign is active
- which child contract is in progress
- what each visible contract is doing in one line
- what parent step execution must return to
- which architecture nodes this slice touched
- whether an architecture amendment was required
- which data entities this slice touched
- whether an ER/data-model amendment was required
- whether migration or backfill was required
- A pause without a clear
return_to is execution drift.
- If the runtime container does not exist yet, the executor should bootstrap:
dev_repo/state.json
dev_repo/journal.jsonl
dev_repo/evidence_index.json
dev_repo/tree.md
dev_repo/architecture/README.md
dev_repo/architecture/ARCHITECTURE.md
dev_repo/architecture/graph.json
dev_repo/architecture/index.json
dev_repo/architecture/invariants.md
dev_repo/architecture/data-model/README.md
dev_repo/architecture/data-model/ER.md
dev_repo/architecture/data-model/er.mmd
dev_repo/architecture/data-model/entities.json
dev_repo/architecture/data-model/relationships.json
dev_repo/architecture/data-model/invariants.md
dev_repo/architecture/data-model/migrations.md
- Those files should live directly under
dev_repo/, not inside a nested runtime directory.
- Prefer the shared helper at
../global_rules/scripts/bootstrap_dev_repo_runtime.py.
before normal slice execution continues.
Output Style
- Imperial shell is allowed.
- Plain English shell is the default for English users, but Cyber-Ming court color may remain as light narrative framing.
- Technical body must stay explicit: files, commands, red/green verification results, artifacts by assertion, commit action, commit hash, and git status must remain legible.
- Do not self-certify final completion. Report evidence; do not pronounce the last verdict.
Source: blackzhanzhan/Cyber-Ming-Protocol — distributed by TomeVault.
1---2name: approved-checklist-executor3description: Use only after a checklist or atomic slices have been explicitly approved. Execute approved slices under the current run mode, preserve atomic discipline, verify, archive one commit per slice, report git state, package evidence for review, and stop on blockers or replanning needs. Use when this capability is needed.4---56# Approved Checklist Executor78Prerequisite: read and obey the repository parent policy at `skill/global_rules/SKILL.md` first.910## Use When11- A checklist or one or more atomic slices have already been approved.12- The task is now in execution state.13- The run mode may be:14 - single-slice mode15 - pulse mode1617## Core Rule18- Default to pulse progression when the approved checklist is fully authorized and no blocker appears.19- Preserve atomic discipline at all times:20 - one slice21 - one verification22 - one commit23 - one `git status --short`24- Execution should stay attached to the current campaign tree.25- A child fix may pause the parent campaign, but it may not silently become the new root campaign.26- Default to continuous execution inside the approved campaign.27- Do not stop merely because new information appears. Stop only when that information crosses a declared red line, invalidates the slice's core assumption, or creates scope drift that would make further execution dishonest.28- If the project exposes an execution lock such as `active_contract.json`, treat it as the current execution truth and continue from it rather than narrating a fresh broad contract.29- If the project also exposes a contract runner such as `openclaw_harness_contract_runner.py`, use it as the default execution-state transition entrypoint.3031## Explicit Submode: One-Breath Mode / 一口气模式3233This submode is **not** the default.3435It activates only when the user explicitly says things like:3637- `one-breath mode`38- `push continuously`39- `do not stop; finish the approved checklist`40- `continue until blocked`41- `一口气模式`42- `开启一口气模式`43- `用一口气模式推进`44- `不要停,一口气做完`4546When active, add these stronger rules on top of the normal executor discipline:4748- keep moving continuously until a real blocker, failed verification, missing secret, or crossed red line appears49- emit a concrete progress update at least every `3 minutes` during long-running work50- stop only on a real blocker, failed verification, missing secret, or crossed red line51- if a red line is crossed, write the smallest possible delta sub-contract and continue from it52- after the delta sub-contract is resolved, automatically return to the main approved contract53- do not inflate the pause into a fresh broad plan unless continuing would be dishonest54- do not pause externally just because one commit or one slice has completed; archive it and keep moving55- write detailed slice-level bookkeeping into harness artifacts rather than turning every slice boundary into a conversational stop56- use progress reports only in this structure, translated to the user's working language:57 - `Proven` / `已证明`58 - `Not Proven` / `未证明`59 - `Why It Did Not Complete` / `为什么没做成`6061Add these four hard gates:6263- `next_slice_gate`64 - after one slice is archived, derive the next smallest valid slice from the approved contract and current evidence65 - do not return to open-ended replanning between normal slice boundaries66- `mainline_priority_gate`67 - guardrail regressions may be repaired only until they stop blocking the approved mainline68 - do not let a story-level fix silently replace the structural campaign as the new mainline69- `no_summary_gate`70 - commit boundaries are not conversational stop boundaries71 - write detailed closure into harness files first, and keep external updates brief unless the user explicitly asks for a deeper review72- `stop_gate`73 - any stop must first record `blocker_class`, `stop_reason`, and `next_exact_action`74 - if these are not available, the executor should assume the campaign is still in motion7576In this submode, the executor should bias toward reducing interruption cost rather than increasing explanatory ceremony.7778## Workflow Per Slice791. If an active contract exists, run one `contract_runner cycle` first to synchronize drift before touching code.802. Restate the current slice ID, allowed files, no-touch scope, planned `Red Line`, planned `Commit Action`, affected architecture nodes, planned `architecture_delta`, affected data entities, planned `data_model_delta`, amendment status, migration/backfill status, and current contract-tree position:81 - `contract_id`82 - `parent_contract_id`83 - `root_campaign`84 - `summary`85 - `return_to`863. Modify only the allowed scope.874. Run the planned `Green Tests`, and where the YAML defines a white-box chain, run the planned `red_test` / `green_test` sequence against the same case.885. Collect target artifacts by assertion, note whether any `Red Line` was crossed, record whether the same red case truly turned green, and record the actual `architecture_delta` and `data_model_delta`.896. Archive exactly one independent commit using the planned `Commit Action`, `Commit Unit`, and `Commit Message`.907. If architecture files changed, verify `dev_repo/architecture/graph.json` and `dev_repo/architecture/index.json` parse and that diagrams/ADRs named in the contract were updated.918. If ER/data-model files changed, verify `dev_repo/architecture/data-model/entities.json` and `dev_repo/architecture/data-model/relationships.json` parse and that `ER.md`, `er.mmd`, invariants, or migration notes named in the contract were updated.929. If an active contract exists, advance it through `contract_runner complete-current` instead of leaving slice closure to oral narration.9310. Report `git status --short`.9411. Package the minimum evidence bundle for Web-side review.9512. If this slice was a child contract, explicitly state whether execution now:96 - returns to the parent97 - remains blocked98 - or requires a narrower child delta99100## Runner Integration101102When available, the executor should treat these entrypoints as the default state machine:103104- pre-slice drift sync:105 - `python3 scripts/openclaw_harness_contract_runner.py --run-dir <run_dir> --mode cycle`106- successful slice advance:107 - `python3 scripts/openclaw_harness_contract_runner.py --run-dir <run_dir> --mode complete-current --story-id <slice_root_id>`108- stop validation:109 - `python3 scripts/openclaw_harness_guard.py --run-dir <run_dir> --mode stop ...`110111If these files exist and the executor skips them without a red-line reason, that is execution drift.112113## Replanning Discipline114- If execution must stop, explain it in red-line language first:115 - which red line was crossed116 - which prior assumption failed117 - why continuing would now be dishonest or scope-breaking118- If execution discovers an architecture change not declared in the active contract, stop ordinary execution and open the smallest architecture amendment delta contract.119- If an architecture amendment closes, explicitly return to the parent contract through `return_to` before continuing ordinary implementation.120- If execution discovers an ER/data-model change not declared in the active contract, stop ordinary execution and open the smallest data-model amendment delta contract.121- If a data-model amendment closes, explicitly return to the parent contract through `return_to` before continuing ordinary implementation.122- Prefer a **delta replan** over a full fresh contract:123 - keep already-completed slices settled124 - only replace the invalidated tail of the plan125- Do not repeatedly pause for ceremonial replans when the next valid action is obvious from the current red line.126- When a child contract closes successfully, prefer pruning it from the live tree view and collapsing it into historical evidence rather than leaving it as a full visible branch.127- When pruning, keep each collapsed contract's `summary` visible inside the historical bucket.128129## Stop Conditions130Stop immediately if any of the following happens:131- verification fails132- scope drift occurs133- architecture delta differs from the approved contract134- an architecture amendment is required but not active135- data-model delta differs from the approved contract136- an ER/data-model amendment is required but not active137- migration or backfill is required but not declared in the approved contract138- a new structural red line appears139- the slice needs replanning140- a required secret is missing141- `blocker_class`, `stop_reason`, and `next_exact_action` can now be stated honestly142143## Non-Stop Conditions144Do **not** stop just because:145- a probe returns useful new detail but does not cross a red line146- a partial result sharpens the diagnosis while leaving the slice valid147- the user-facing story is still incomplete but the current slice remains valid and executable148- one commit just landed149- one slice just turned green150- the executor wants to summarize progress more elegantly151152## Campaign Runtime Discipline153- If a runtime container exists, keep it current instead of relying on oral summaries.154- If `dev_repo/architecture/` exists, keep architecture delta current instead of relying on oral summaries.155- If `dev_repo/architecture/data-model/` exists, keep data-model delta current instead of relying on oral summaries.156- The executor should always be able to answer:157 - what root campaign is active158 - which child contract is in progress159 - what each visible contract is doing in one line160 - what parent step execution must return to161 - which architecture nodes this slice touched162 - whether an architecture amendment was required163 - which data entities this slice touched164 - whether an ER/data-model amendment was required165 - whether migration or backfill was required166- A pause without a clear `return_to` is execution drift.167- If the runtime container does not exist yet, the executor should bootstrap:168 - `dev_repo/state.json`169 - `dev_repo/journal.jsonl`170 - `dev_repo/evidence_index.json`171 - `dev_repo/tree.md`172 - `dev_repo/architecture/README.md`173 - `dev_repo/architecture/ARCHITECTURE.md`174 - `dev_repo/architecture/graph.json`175 - `dev_repo/architecture/index.json`176 - `dev_repo/architecture/invariants.md`177 - `dev_repo/architecture/data-model/README.md`178 - `dev_repo/architecture/data-model/ER.md`179 - `dev_repo/architecture/data-model/er.mmd`180 - `dev_repo/architecture/data-model/entities.json`181 - `dev_repo/architecture/data-model/relationships.json`182 - `dev_repo/architecture/data-model/invariants.md`183 - `dev_repo/architecture/data-model/migrations.md`184- Those files should live directly under `dev_repo/`, not inside a nested runtime directory.185- Prefer the shared helper at `../global_rules/scripts/bootstrap_dev_repo_runtime.py`.186 before normal slice execution continues.187188## Output Style189- Imperial shell is allowed.190- Plain English shell is the default for English users, but Cyber-Ming court color may remain as light narrative framing.191- Technical body must stay explicit: files, commands, red/green verification results, artifacts by assertion, commit action, commit hash, and git status must remain legible.192- Do not self-certify final completion. Report evidence; do not pronounce the last verdict.193194---195> Source: [blackzhanzhan/Cyber-Ming-Protocol](https://github.com/blackzhanzhan/Cyber-Ming-Protocol) — distributed by [TomeVault](https://tomevault.io).196<!-- tomevault:4.0:skill_md:2026-06-22 -->