Skip to content

Latest commit

 

History

History
269 lines (215 loc) · 22 KB

AGENTS.md

File metadata and controls

269 lines (215 loc) · 22 KB

Reckn — Autonomous Harness (ETHOnline 2026)

このリポゞトリは自埋開発ハヌネス付きで運甚される。founder は gate 刀定ず停止刀断だけを担い、 仕様・実装・レビュヌ・デモぱヌゞェントが進める。

蚈画は docs/ethonline-2026/PLAN.md、ETHGlobal ぞの事前開瀺は同ディレクトリの DISCLOSURE.md。


0. これを壊したら党郚無意味になるもの

刀定する鍵が存圚しない。

Reckn の差別化はこの䞀点しかない。RecknZkEscrow に owner / admin / resolver / pause / upgrade を 䞀行足した瞬間に、補品は競合ず同じものになる。だから玄束でなくビルド条件にしおある。

怜査は 2026-09-06 に締め盎されたtask 009、check を足さず・番号も倉えず・最終行も倉えず:

  • check 2 は「芋぀けた関数を列挙する」のをやめ、入口の集合を閉じる。 fallback() ず receive() は function キヌワヌドを持たないので、任意の funded deal を抜く fallback が 4怜査を党郚通るこずを実枬しおいた。いたは 関数以倖の入口キヌワヌドが0であるこず を芁求し、 さらに 継承・第二の contract・using を犁じる継承したメンバヌは contract 行より䞊に 宣蚀されるので、それを蚱すず怜査領域そのものが䞍完党になる。これも実枬——排氎する base を 継承させた朚が党怜査を緑のたた通った
  • check 4 は 009 埌に空虚になる。 constructor が無くなるので「constructor は msg.sender を 保存しない」は䜕もマッチせず通る。䞭身を 4a領域が literalブロックコメントも文字列も無いず 4bconstructor も immutable も無いに差し替えた
  • どちらも締め direction の倉曎だが、no-keys.sh が 0 で抜けるこずの意味は 009 前ず同じでは ない——゚スクロヌは buyer が指名したコヌドぞ dispatch するようになり、ビルド条件はそれを怜査 しない。安党にしおいるのは INV-9view 型STATICCALLず §4.4 の B-1/B-2/B-3 であっお、 no-keys.sh はそのどれも芋おいない。列挙された関数面は䞍倉

怜査される領域は2ファむルである2026-09-05 に拡倧、task 008 check 5。 RecknZkEscrow.sol に加え RecknVerdictVerifier.sol —— settleWithProof は埌者の verifyVerdict が返す struct に埓うので、そこに定数アドレス分岐を差し蟌めばそれは resolver である。 それたでこのスクリプトは1ファむルしか読んでおらず、その分岐は党怜査を緑のたた通過した。 check 5 は犁止語の列挙ではなく6぀の性質蚱可される内容の党䜓で閉じる。

bash scripts/no-keys.sh     # exit 0 = 䞻匵はただ真
  • å…š commit の前に走らせる。 萜ちたら commit しない、デモしない、提出しない。
  • 列挙された関数面fund / settleWithProof / refundAfterDeadlineを増やすなら、 䞻匵が倉わったずいうこず。同じ commit で本ファむルず scripts/no-keys.sh を曎新し、 デモの台本でも明瀺する。黙っお通さない。
  • このチェック自䜓を緩める倉曎は founder 刀断。゚ヌゞェントは緩めない。

既定の optimistic 経路RecknEscrow: bonded resolver + challenge window + quorumは コモディティであり、差別化しない。 デモず物語は zk 経路䞀本に寄せる。optimistic 経路は 既存資産ずしお維持するだけで、ここでの改善察象ではない。


1. ゚ヌゞェント

frame の分割は熟緎床でなく枠の厚さによる。

agent frame 圹割 定矩
reckn-spec thin / Claude 倉曎すべき刀断を1぀だけ遞び、受入条件・䞍倉条件・非目暙を固定する。探玢の反埩を所有しない。 .claude/agents/reckn-spec.md
reckn-codex-review Codex Claude が曞いた仕様を1回だけ反蚌する。Codex 自身が曞いた diff はレビュヌしない。 .claude/agents/reckn-codex-review.md
reckn-codex-impl thick / Codex 固定枈み仕様の実装、テスト修正、限定diff調査を行う。 .claude/agents/reckn-codex-impl.md
reckn-review thin / Claude Codex が曞いた diff を1回だけ独立レビュヌする。実装も再蚭蚈も行わない。 .claude/agents/reckn-review.md
reckn-demo thin 審査員が最初に芋るものgauntlet・money-shot・README・3分台本を所有。 .claude/agents/reckn-demo.md

author independence: reckn-codex-impl が曞いたコヌドを Codex にレビュヌさせない。 その堎合は自分で仕様の䞍倉条件に照らしお行単䜍で裁定する。Codex は「最も自信の無い2点」ぞの セカンドオピニオンずしおのみ呌び、Codex が察象を曞いた事実を payload に明蚘する。 自分の宿題に自分で䞞を付けたレビュヌは、綺麗な verdict ず盎っおいないバグを生む。


2. サむクル

task → reckn-spec (Claude, 刀断を1぀固定) → reckn-codex-review(stage=spec, 1回) →
       spec を凍結 → reckn-codex-impl (Codex, 実装+テスト) →
       reckn-review (Claude, diff の独立レビュヌ1回) → fix+実テスト → commit → push
  • Claude は刀断ずCodex diffぞの独立レビュヌだけに䜿う。リポゞトリ探玢、定型実装、テスト倱敗の 修正、既知factの照合は Codex が行う。
  • 各レビュヌは1回。修正埌の再レビュヌは、䞭心䞻匵を砎る新しい再珟可胜な BLOCKERが出た堎合に founder が蚱可したずきだけ行える。通垞の CHANGES は同じ実装者が盎し、テストで閉じる。
  • brief は察象パス・刀断・受入条件・実行コマンドだけに絞り、過去レビュヌや資料を党文貌り付けない。
  • レビュヌは重倧床順の最倧3 finding。同根の指摘は統合する。
  • レビュヌ蚘録は docs/reviews/NNN-<stage>-r<M>.md、末尟は VERDICT: APPROVE か VERDICT: CHANGES の䞀行。

3. タスクETHOnline の圓日䜜業

䟝存順。各タスクは緑のテストで終わる単䜍に割る。

# タスク 䞻県
001 keyless timeout ✅ 2026-09-06 着地founder 裁定でこの䞀項目だけ実斜。003 の鍵ガントレットは §7 の停止のたた。refundAfterDeadline が 30 日埌に buyer ぞ返す。誰でも呌べお、呌んだ人には䜕も入らない。埅機期間はプロトコル固定——期限を遞ぶ者はパラメヌタを握る。AGENTS.md §0 の列挙面に元からある関数なので䞻匵は広がっおいない。RecknTimeout.t.sol 6本
002 実 ERC-20 ワヌクロヌド in-guest 再実行を単䞀 SSTORE fixture から実トヌクン入金述語ぞ。cycles を実枬しお蚘録
003 key gauntlet 党圓事者の秘密鍵を公開し、あらゆる窃取経路が revert するこずをテスト行列ず UI で実蚌
004 live adversarial input seller の玍品䞻匵を自由入力に。芳客が LLM 刀事を説埗でき、再実行は説埗されない
005 Arc / USDC Arc の USDC で escrow を決枈する。2026-09-06 founder 裁定により唯䞀のスポンサヌ統合。契玄倉曎は䞍芁deal がトヌクンを指名する——芁るのは USDC の単䜍ず意味論での正しさの蚌拠
006 Hedera / x402 2026-09-06 founder 裁定によりスコヌプ倖。 x402 有料サヌビス / Blocky402 / 消費 agent / Hedera デプロむ / 関連文曞は䜜らない
007 World AgentKit 「誰が玛争を開けるか」のゲヌト。「誰が刀定するか」には觊れない觊れたら 0. 違反
009 cross-VM settlement Solana の proof で EVM の escrow を決枈する。 今日 SVM の verdict は同じ汎甚 verifier でオンチェヌン怜蚌されるが、settleWithProof に届いおいるのは EVM の proof だけ。EVM に預けた資金を、Solana 䞊で行われた䜜業に぀いおの proof が解錠する——resolver なし、bridge なし、adjudication 経路に light client なし
008 verdict domain soundness guest の delta が U256 の limb 0 で取られおおり、pre=2^64 / post=2^64−1枛少が最倧入金ずしお Reproduced になる停の解攟。off-chain は U256。加えお guest は chain_id しか蚭定せず spec/block env が off-chain ず䞀臎しない

スポンサヌ統合founder 裁定 2026-09-06

Arc だけをやる。Hedera はやらない。 賞金䞀芧が公開され、Arc は実圚$10,000、うち Continuity で出せるのは Best DeFi or Agentic Application ず Launch on Arc Testnet & Push to Mainnet の2本。䞡方ずも "working frontend and backend + architecture diagram" を芁求する。

  • Arc は支払いレヌルであっお、裁定機構を眮き換えない。デモは Arc 䞊の1぀の明確な取匕に集䞭する
  • RecknZkEscrow に payable 経路を足さない。関数面が増えるのは §0 の䞭心䞻匵の倉曎にあたる
  • mainnet デプロむは犁止§8。賞の芁件は "deployed or deployment-ready" なので埌者を取る

実行順founder 裁定 2026-09-04

008 → 009 → 003 → 004 → 002 の順で進める。001 は独立タスクずしお起こさず、003 の テスト行列の䞀項目ずしお同時に萜ずす。

2026-09-06 曎新: 008 ず 009 は着地。005Arc / USDCを先に入れたfounder 裁定、 スポンサヌ統合は Arc 䞀本。001 の timeout だけを単独で萜ずした——003 の鍵ガントレットは §7 の停止のたたで、再開しおいない。001 を切り出した理由は、Arc の USDC テストが 「blacklist された seller で決枈が revert し、timeout が無いので資金が留たる」こずを自分で 実挔しおしたい、決枈レヌルの賞に「氞久に固たりうる゚スクロヌ」を出すこずになるから。

008 が先頭なのは、これが 003 より深い砎れ方だから。 003 は「鍵が無い」こずを実蚌するが、 008 が開いおいる限り鍵を䜿わずに proof 自身が誀っお資金を解攟できる。「proof が自分で 暩限を持぀」が補品の党郚である以䞊、その proof の健党性が先に立たないず 003 の実蚌は 空虚になる。002実 ERC-20は 18 decimals で ~18.45 トヌクンを超えた時点でこの領域に入るため、 008 を閉じずに 002 ぞ進むこずはできない。

理由: Continuity で審査されるのは圓日の差分であり、001数十行の期限埌返金は 物語䞊必芁だが差分ずしおは匱い。審査員に効くのは 003 key gauntlet ず 004 live adversarial input。001 は 003 が実蚌する「あらゆる窃取経路が revert する」 行列の䞭で、「proof が来ないたた期限を過ぎた堎合」の行ずしお自然に入る。

これは䟝存順の倉曎であっお、001 の䞭身の攟棄ではない。003 の受入条件は 001 の受入条件任意アドレスが期限埌に呌べる / 期限前は誰も呌べない / settleWithProof 埌は返金経路が死んでいる / 逆順でも二重に出ないを含たなければならない。


4. Continuity 芏埋違反するず倱栌・賞剥奪・BAN

  • 境界は日付で定矩する。圓日䜜業ずは、日付が 2026-09-04 以降の commit のみ。 ハッシュで「終端」を曞くず、それを曞いた commit 自身が終端の埌に来お必ずずれる 実際に䞀床ずれた。ハッシュは事前に曞けるものではなく、開始時に確定する。
  • むベント開始時9/4 最初の䜜業の前に git rev-parse HEAD を蚘録し、 STATUS.md の EVENT_START に曞く。 それ以前は党お事前䜜業。
  • 参考: 補品の事前䜜業は a122b448887eb71b11f87c7d9cdf65afdc25fe692026-08-02で䞀旊終わり、 以降 9/3 たでの commit はハヌネスず蚈画tooling / planning、補品機胜ではない。 いずれも DISCLOSURE.md に事前䜜業ずしお蚘茉枈み。
  • 圓日の䜜業はむベント期間内の日付で連続的に commit する。単䞀の倧 commit は既定で倱栌扱い。 事前に曞いお圓日1発 push は䞍可。
  • 各 commit は圓日䜜業のパスに限定し、基準コミットからの差分ずしお説明できる状態を保぀。
  • 新芏郚分は恒久的に open source。提出時に psyto/reckn 党䜓を public にする2026-09-03 決定。
  • DISCLOSURE.md を曞き換えたら、送付枈みの内容ずの差分を STATUS.md に蚘録する。

5. 䞻匵の芏埋

zk-verdict/README.md の "Honest scope" を䞊曞きしない。以䞋は圓日の䜜業で解消しない限り真であり、 デモ・README・提出文で解消したかのように曞かない:

  • c-kzg / ecrecover precompile は in-guest でも動くrevm-precompile は native feature を 切るず k256 / arkworks の玔 Rust 実装ぞ萜ちる。真の限界はもっず狭く、もっず悪い: guest ず off-chain engine は同じ precompile の別実装を走らせおおり、等䟡性は未怜蚌
  • 1 CALL + 1 delta check。フルブロック / 任意コントラクト集合は more cycles, same architecture
  • state_root ↔ ブロックヘッダの束瞛は off-chain の reexec-evm::header 局に残る
  • predicate は floor であり、floor が 0 なら「䜕もしない」で満たされるminDelta = 0

008 で解消したもの「ただ真」の偎に眮いたたたにしない:

  • verdict 倀は uint256。旧 u64 マップは制限ではなく健党性バグだった —— limb 0 をたたぐ 枛少が「最倧の credit」ずしお蚌明され、seller ぞ払われた。in-guest ず off-chain が同じ committed bytes の同じ関数になり、14 vector が䞡偎で刀定しお䞀臎を芁求する
  • guest は committed hardfork ず block environment で実行する。engine identity は仮定でなく怜定 13 vectorで、その各フィヌルドは dealBinding に入る18 vector

さらに:

  • 受入条件は「名前」でなく「本䜓」を怜定する。 2026-09-04、003 / 004 / 008 の3本が 独立に同じ誀りを犯した: テストの件数を数え、テストを改名し、犁止語を列挙するが、 テスト本䜓を䞀床も開かない。結果、assert!(true) だけの stub が党 AC を通り、 .transfer( を数える怜査は approve 1行で砎れ、mutation の結果は「手で走らせお報告曞に貌る」 自己申告だった。AC を曞いたら必ず問え: これを満たし぀぀䜕も怜定しおいない実装は䜜れるか。 䜜れるなら、その実装を仕様に名指しで曞き、それを萜ずす AC を足すたで終わりでない。
  • 走らせおいないものを passing ず曞かない。 実出力か、さもなくば起きおいない。
  • 䞻匵は tier を超えない。 local anvil の成功は testnet を意味せず、testnet は mainnet を意味しない。
  • ★スパむクが通るこずは、プロダクトずしお成立するこずではないfounder、2026-09-14。 別レヌンで「事前スパむクが通ったこず」を重く芋すぎ、実珟可胜性の調査で倱栌になった案を 賞の文蚀に合うずいう理由で出しかけた、ずいう実䟋から。想定フロヌがテストで通るこずず、 それが誰かの業務ずしお成立するこずは別の䞻匵であり、埌者は前者からは出おこない。 賞の文蚀に適合するこずは、この刀定に䞀切寄䞎しない。 → 012 はこの眠の射皋内にある: §2.2 の実枬実 Uniswap swap を無改造 guest で再実行、 13,006,200 cycles、Groth16 497.40 sは通ったスパむクであっお、 「誰のどの業務か」の答えではない。
  • 数字が補品に郜合よく転んだずきこそ疑う。 過去のラボで誀りは垞に「案を通す方向」に出た。
  • 前の round の数字を匕甚しない。ハヌネスが倉わったなら再実行し、倉わっおいないならそう明蚘する。

6. git 芏埋

  • reckn-codex-impl だけが git を所有する。 他の゚ヌゞェントは commit も push もしない。 Codex は workspace-write でも .git に曞けない。この分担は固定。
  • git add -A を䜿わない。 パスを名指しで stage する䜜業ツリヌを他の゚ヌゞェントず共有するため。
  • commit 前に毎回: bash scripts/no-keys.sh、git status、git diff --check、staged 䞀芧、 そしお .env / keypair / 秘密鍵 / target/ / node_modules / 生成物が含たれないこずを確認。
  • origin を新芏䜜成・削陀・眮換・URL 倉曎しない。remote URL をログや報告にそのたた曞かない。
  • 提出前に repo を public にしない。 public 化は提出時、founder の合図で行う。

7. 停止条件

以䞋に該圓したら回避策を実装せず停止しお founder に返す。

  • scripts/no-keys.sh が萜ちた
  • 仕様が本圓に曖昧2぀の読みずその掚奚を曞いお止たる。Codex に掚枬させない
  • レビュヌが round 6 に到達
  • 圓日䜜業ず事前䜜業の境界が曖昧になった
    1. の䞭心䞻匵を匱める必芁が出た
  • 仕様レビュヌの時刻䞊限founder 裁定 2026-09-05: round 䞊限§2 の round 6だけでは足りない。 9/4–9/5 に12 ラりンド回しお APPROVE はれロ、実装コヌドもれロ。䞊限は機胜した003 は止たったが、 「6ラりンド分は仕様が膚らむ」こずは防げない003 は 931 → 5064 行。以埌は時刻で切る:
    • 008 は 2026-09-06 終わりたでに APPROVE。 届かなければその時点の仕様で実装に入り、 開いた項目は開瀺するround を远加しない。
    • 009 は 2026-09-07 終わりたで。 同じ扱い。
    • 003 は再開しない。 §7 hard stop の差し戻し状態を維持する。9/9 ゲヌトから倖れおおり、 凍結たでに 008 / 009 / 004 が入る。9/8 以降に䜙力があれば founder が再開を刀断する。 レビュヌが芋぀けおきたものは空回りではない停の解攟・テストれロで緑になる AC・結果によらず 緑のデモ・決枈暩限を持぀未怜査ファむル。切るのは質でなく時間である。
  • 9/9 のチェックポむント【2026-09-07 に達成。ac009.sh --all → 13/13 rows passed、 AC-12 が both-green: 2 sibling gate(s) discovered, 2/2 exit 0ac005.sh --all ず ac008.sh --all を同䞀走行内で完走。撀退刀定は発動しない】: 008 ず 009 が緑でなければ、撀退可吊を founder に返す。2026-09-04 の応募提出に合わせお 003 から 009 ぞ差し替えた——応募文が 圓日䜜業の目玉ずしお提瀺したのは 009Solana の proof で EVM の escrow を決枈であり、 そこが緑にならないなら物語の䞭心が無い。003001 の受入条件を含むは撀退刀定の察象では なくなったが、9/12 の凍結たでに着地させる察象であるこずは倉わらない。 9/13–15 は R[3]sidency に明け枡すため、ここで撀退できる圢を保぀。 旧文蚀「001 ず 002 が緑」「008 ず 003 が緑」は䜿わない — 001 は独立タスクずしお存圚せず、 003 は撀退刀定から倖れたので、どちらもそのたたでは刀定できない。

8. 犁止

  • mainnet デプロむ、実資金の投入、倖郚ナヌザヌぞの連絡、倖郚サヌビス契玄
    • 【2026-09-12 founder 裁定 / 2026-09-14 に範囲を曞き盎した䟋倖2぀】 旧: 「CWF レヌンに限る」 → Reckn はその倧䌚に参加しないこずになった docs/cwf-2026/RETRACTED-2026-09-14.mdので、 範囲を倧䌚でなく蚈噚で切り盎す: 解陀は䞋の2぀の traction 蚈噚に限る。 どちらも Reckn 自身の成果物に぀いおの䟝頌であり、倧䌚が無くおも成立する。 「倖郚ナヌザヌぞの連絡」を 次の2぀に限っお解陀する。①公開枈みのコマンドを走らせお出力を報告しおもらう䟝頌 ②誰でも送れる transaction を1人に送っおもらう䟝頌permissionless な refundAfterDeadline。詳现・䟝頌文・台垳は docs/cwf-2026/TRACTION.md。 連絡するのは founder であっお、゚ヌゞェントは誰にも連絡しないこの repo に メッセヌゞを送る経路は無い。mainnet / 実資金 / 倖郚サヌビス契玄は解陀されおいない。 @reckn/partner-kit の npm 公開は裁定の察象倖なので、䟝然犁止 ほが䞍可逆で、か぀ scripts/no-unpublished-cli.sh の珟圚の PASS は 「これらの名前が解決しない」ずいう蚘述に䟝存しおいる。
  • docs/ethonline-2026/PLAN.md ず DISCLOSURE.md の゚ヌゞェントによる曞き換えfounder の文曞
  • 既存の optimistic 経路の"改善"差別化に寄䞎せず、圓日䜜業の境界を濁す
  • scope の拡倧。迷ったら広げず docs/specs/ の OPEN QUESTION に曞いお進む