| name | etherclaw-standalone |
| description | etherclaw daemon --standalone mode — ETHERCLAW.toml format, Architect/Executor role split, DogFeeding workflow |
| triggers | ["etherclaw daemon --standalone","ETHERCLAW.toml","etherclaw init","etherclaw validate","standalone mode","DogFeeding","TaskTree設計","pending task","in_progress task"] |
EtherClaw Standalone Mode Skill
概要
etherclaw daemon --standalone は ETHERCLAW.toml に登録されたタスクをローカルで順次実装し、
PR を自動提出するモード。ガバナンス (c^i_share) 不要の DogFeeding 経路。
ETHERCLAW.toml フォーマット
[instance]
ticker = "EC"
name = "EtherClaw"
ens = "etherclaw.onthe.eth"
version = 1
executor = "claude"
architect = "claude-opus-4-6"
local_model = "qwen3.5:2b"
build = "pack install-app etherclaw"
project = "/Users/bob/code/etherclaw"
pr_sha = "737b4ef"
completed_at = 1741392000
[[lazy]] 登録義務
pkgs/ に SPEC.toml を持つパッケージは必ず [[lazy]] に登録すること。
未登録パッケージは dump-s に出ず、daemon の AGA Loop quality gate の対象外になる。
[[lazy]]
target = "pkgs/NewPackage"
family = "core"
step3_sync = false
パッケージ新規作成時は etherclaw dump-s で出力を確認。
status 遷移
pending → in_progress → done
→ skipped (手動設定のみ)
done → pending (再実行時。pr_sha 検証が走る)
タスク ID 命名規則
{ticker}-{5桁seq}
例: EC-00200, LC-00100, MMNT-00010
Architect / Executor ロール分離
| Architect | Executor |
|---|
| 役割 | TaskTree TOML 設計・レビュー | コード実装 |
| モデル | architect フィールド (opus 等) | executor CLI + executor_model |
| Skills | etherclaw-standalone, task-tree-format, idris2-dev | idris2-dev, etherclaw-workflow |
| 入力 | ETHERCLAW.toml の task エントリ | TaskTree TOML |
| 成果物 | docs/tasktrees/YYYYMMDD-*.toml | PR |
Architect が TaskTree を書くときのドメイン知識
必須コマンド参照
etherclaw init — 新プロジェクト用 ETHERCLAW.toml を対話生成
etherclaw validate — ETHERCLAW.toml 整合性検証
etherclaw daemon --standalone --dry-run — 次タスクプレビュー
etherclaw daemon --standalone --foreground — ループ実行 (supervisor 内)
TaskTree TOML 配置場所
docs/tasktrees/YYYYMMDD-<task-id>.toml
例: docs/tasktrees/20260304-submission-queue-persistence.toml
TaskTree で使うビルドコマンド (Idris2 プロジェクト)
pack install-app etherclaw
pack typecheck etherclaw
マルチリポジトリ構成
各リポジトリに独立した ETHERCLAW.toml を置く:
~/code/etherclaw/ → ticker = "EC"
~/code/lazy/ → ticker = "LC"
~/code/mmnt/ → ticker = "MMNT"
etherclaw daemon --standalone は project フィールドのリポジトリで動作。
他プロジェクトの ETHERCLAW.toml 生成は etherclaw init または TaskTree で対応。
daemon ループフロー
standaloneLoop:
1. ETHERCLAW.toml 読み込み
2. 整合性検証 (CRITICAL → 停止, ERROR → 自動修復)
3. pending タスクを ID 昇順で選択
4. toml ファイル存在確認 (なければスキップ)
5. git worktree add /tmp/etherclaw-{id} -b feat/{ticker-lower}-{id}
6. ETHERCLAW.toml: status → in_progress, branch, started_at を記録
7. Executor CLI を worktree で起動 (unset CLAUDECODE)
8. git push + gh pr create
9. PR マージ待機 (30秒ポーリング、最大 24h)
10. ETHERCLAW.toml: status → done, pr, pr_sha, completed_at を記録
11. 次タスクへ
整合性検証ルール
| レベル | 条件 |
|---|
| CRITICAL | ticker 変更・version 不一致 |
| ERROR | id prefix 不一致・pr_sha が git history にない (done 詐称) |
| WARN | done なのに pr_sha 未設定 |
pr_sha = "manual" または "skipped" は git 検証をスキップ。
起動方法
etherclaw daemon --standalone は nohup 経由でデーモンを起動する。
CLAUDECODE を unset した完全に独立したプロセスとして動作するため、
Claude Code セッション内からも安全に呼び出せる。
etherclaw daemon --standalone
└─ nohup env -u CLAUDECODE etherclaw daemon --standalone --foreground
</dev/null >> ~/.etherclaw/logs/standalone.log 2>&1 &
PID → ~/.etherclaw/logs/standalone.pid
CLAUDECODE の扱い:
nohup env -u CLAUDECODE で完全にアンセット
- 子プロセス内 (
runStandaloneTask) でも unset CLAUDECODE && を前置
- これにより Claude Code セッション内からネスト起動が可能
進捗確認方法
tail -f ~/.etherclaw/logs/standalone.log
kill -0 $(cat ~/.etherclaw/logs/standalone.pid) 2>/dev/null && echo alive || echo dead
etherclaw validate
etherclaw daemon --standalone --dry-run
kill $(cat ~/.etherclaw/logs/standalone.pid)
よくある操作
etherclaw init
etherclaw validate
etherclaw daemon --standalone --dry-run
nohup env -u CLAUDECODE etherclaw daemon --standalone --foreground > .etherclaw/logs/standalone.log 2>&1 &
etherclaw daemon --standalone
etherclaw daemon --standalone --foreground
etherclaw daemon --standalone --from EC-00300
etherclaw e2e standalone
etherclaw e2e governed
etherclaw e2e evm