Skip to main content

ELPH OS - Essential Loop Portable Harness: a thin, agent-agnostic control plane for development loops (LoopSpec/journal/decide, zero dependencies)

Project description

ELPH OS — Essential Loop Portable Harness

A thin, portable harness for every development loop.

機械識別子は elphos(PyPI / npm 空き確認済み 2026-07-03)。ブランド・愛称は ELPH。 世界観 KB の ELPH(elph-vault、/lore スキル)とは無関係。

これは何か

AI agent の進化速度に適応するための thin control plane。 agent(Claude Code / codex 等)を差し替え可能な実行器として扱い、 自分側に残すべきもの — ループ運用・実行台帳・証跡・予算・採否記録 — を file-first で所有するための最小カーネル。

Model      (交代前提 — Claude / codex / 将来の agent)
Harness    (Claude Code / codex CLI — 揮発層、wrap しない)
LoopOS     (LoopSpec / LoopRun / scheduler 接続 / 成熟度)   ← this repo
Meta       (HarnessRun / trace / budget / adapter)          ← this repo

名前 = 設計契約

  • Essential — kernel への機能追加は、消費ループの evidence がある場合のみ(admission 規律)
  • Loop — 対象は development loop の運用(turn/goal/time/proactive)
  • Portable — agent 非依存。仕様は TOML、台帳は JSONL、依存ゼロの Python stdlib
  • Harness — ハーネスの上の薄い層。ハーネス自体を再実装しない

機能追加の PR は「それは Essential か? Portable を壊さないか?」に答えること。

Status

正本は docs/spec-v0.md。 到達ゴール(完成の定義 G1-G6 とフェーズ O1-O3)は docs/end-state-goal-2026-07-04.md。 Step 3 受け入れ済み(2026-07-04): L2 = worktree + agent + gate + 採否分離 (decide → decision_record、実装 agent と採否の分離)。実 slice B001 を codex2 で完走(tokens_est 51,368 自動記録、adopt)。adopt / revert / 二重判定ガードは local-shell スモークで検証済み。 Step 4(upstream-watch)稼働中: loop spec + journal は ~/.claude(claude-harness) ホスト(owner decision 2026-07-04 — kernel repo は実行時状態を持たないため)、 oracle は本 repo 同梱(--state-path 必須)、weekly systemd user timer (Mon 09:30、Persistent + linger)。v0 ロードマップ(Step 1-4)完了。

Usability 改定 v0.2.0(2026-07-07、初回 4 日運転の journal evidence 駆動): E019 = L1/empty の oracle 報告を stdout に直接表示。E020 = budget は agent 起動 run のみカウント(L1 報告は無料 — cap 一時解除の儀式を廃止)。E021 = elphos finish が adopt 後の機械的後処理(merge / gate 再実行 / 掃除)を実行 (採否分離は不変 — decide の adopt 記録が前提条件)。

uv tool install /path/to/elphos
elphos validate examples/c4-intake.toml   # => OK
elphos run c4-intake                      # L1: oracle 報告を表示 + journal 追記
elphos decide <run_id> adopt|revert       # L2: 採否を decision_record に記録
elphos finish <run_id>                    # L2: adopt 後の merge/gate/掃除(E021)
elphos report                             # (UTC date, loop) 日次集計
python3 -m unittest discover -s tests     # 114 tests

consumer registry: ~/.claude/loops.toml(ELPHOS_REGISTRY で上書き可)。

Harness skills(新しい端末での導入)

汎用 skill テンプレートは integrations/(Claude Code / Codex)。導入は 1 コマンド:

bash integrations/install-skills.sh   # checkout パスを埋め込んで各 harness へ配置

既定は非破壊(配置先に差分があれば保持、--force で上書き)。手順の正本は docs/operating.md — skill はそこへの pointer + harness 固有メモのみ。

Non-goals(恒久)

デーモン / UI / セッション管理 / 権限エンジン / メモリストア(dev-vault が正本)/ 汎用 agent runtime / Omnigent・LangGraph 代替。

Trust boundary

Consumer .loops/*.toml specs are trusted input: oracle, gate, and agent_command execute as you. Never run loops from untrusted repos. Keeping secrets out of oracle/agent/gate output is the producing side's responsibility; artifacts are stored verbatim.

Development note: run scripts/install-git-hooks.sh once to install the local pre-push gate (python3 -m unittest discover -s tests).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

elphos-0.2.0.tar.gz (47.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

elphos-0.2.0-py3-none-any.whl (29.0 kB view details)

Uploaded Python 3

File details

Details for the file elphos-0.2.0.tar.gz.

File metadata

  • Download URL: elphos-0.2.0.tar.gz
  • Upload date:
  • Size: 47.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for elphos-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5ba5597d67c3d17a2fea7fa7616d1fe8af8cedcadbbc35bee0340d60850ab45a
MD5 d7b614425d14a3e2b31d8591d84e6064
BLAKE2b-256 f0d9f17f2c6d62e60486eb59b737aaf88fbd353bc60d30f2de360d4955ac7fdc

See more details on using hashes here.

File details

Details for the file elphos-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: elphos-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 29.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for elphos-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 58ae6f07e90820b5c5b67d049360f3f670f7f1fece039968fe490dff08a0e377
MD5 594f8043f7e6f9d85590f064d0ecd3c3
BLAKE2b-256 aec824fb633c1bad01382bc00ff94069ac249630b8bb563721014b003c985406

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page