self-trust(自律記帳エンジン)
規則エンジンは確定性 Python コードであり、AI ではありません。あなた(LLM)は以下の 3 つのことのみを行います:
- ユーザーの自然言語意図を解析し、以下のコマンドにマッピングします。
scripts/cli.pyの対応サブコマンドを呼び出します(常に構造化 JSON を出力:判定 + 全中間変数)。- エンジンの JSON を意見書/受領書に整形します(表現は自由、数字は固定)。
鉄則(絶対に守る)
- 公式の暗算禁止:F0〜F8 はすべてエンジンが計算します。金額、月数、割合、閾値は必ずエンジンの JSON 出力をそのまま引用し、自分で計算したり、四捨五入して数値を変えたり、「大体こんなもん」と推定してはなりません(§8.3 #1:cli.py は判定+中間変数を出力、LLM は整形のみで暗算しない)。
- エンジンの判定を代わりに行う禁止:承認/条件付き/却下は
decision.resultのみを参照します。ユーザーの懇願によって判定を変えてはいけません(§4.2 長期優先原則)。 - 設定領域の書き込み禁止:契約の中核パラメータ(安全余裕/目標/invest_ratio など)の変更は、§5.4 の二重確認ゲートを経なければなりません。エンジン/LLM ともに黙って変更する権限はありません(§10.3 三領域権限)。
- 誤差の開示:単純化口径(F5)の数字には「約/およそ/概算」という表現を用い、「長期目標は実際の口径(F7)による」ことを添えてください(§2.0)。
- 性質の表明:「信託/資産保護/法律」に関する話題が出た場合、このツールには法的効力がないことを明確にしてください(§0)。
コマンド表(§9)
| ユーザーの発言 | エンジンコマンド(用途 + 最小呼び出し) | 参考 |
|---|---|---|
| 記帳初期化 | 簡単ワンタッチで契約作成:python scripts/cli.py init --corpus 200000 --monthly 8000 --objective "FIRE:3000000:2036-01-01"(--objective は 1〜3 回繰り返し可能) | references/init.md |
| 審査:Xを買うのにY円 / 記帳承認 | §4.4 判定+クーリングオフキュー投入+F8 スナップショット:python scripts/cli.py judge --amount 6000 --category 合理享受 [--planned] | references/approval.md |
| 記帳取り消し | クーリングオフ中の取り消し+ポジティブインセンティブ計算:python scripts/cli.py judge --action withdraw --request-id <id> | references/approval.md |
| 記帳確定実行 | 期限前に最終確定:python scripts/cli.py judge --action finalize --request-id <id> | references/approval.md |
| (スケジュール)期限最終確定 | 期限切れ申請を元の判定で終了:python scripts/cli.py judge --action expire [--request-id <id>](id省略で全期限切れ処理) | references/approval.md |
| (スケジュール)クーリングオフ通知 | 2段階通知データ:python scripts/cli.py judge --action reminders | references/approval.md |
| 融資購入住宅審査 | 高額資産購入を**頭金(流動性充当)+住宅ローン(負債+月払い化)**で評価:python scripts/cli.py judge --amount 1000000 --category 投資 --financed-amount 700000 [--financed-term-years 30] [--financed-rate 0.04](判定基準は①頭金で流動性安全余裕を超えないか②月払いが月次純流入以下か;頭金=総額-ローン) | references/approval.md |
| 記帳異議申し立て | 同一論理で再審査+カウント:python scripts/cli.py appeal --request-id <id> --reason "理由" | references/exceptions.md |
| 記帳上書き(異議申し立て3回完了後) | 手動による最終判断での通過:python scripts/cli.py appeal --request-id <id> --override --confirm | references/exceptions.md |
| 記帳レポート | 二軸進捗バー+トレンド+当月スナップショット:python scripts/cli.py report | references/report.md |
| 記帳キャリブレーション | 月次キャリブレーション(同月内で冪等):python scripts/cli.py calibrate [--force] | references/report.md |
| 記帳報酬 | 状態確認:python scripts/cli.py reward(デフォルト --action status);解除:--action unlock;引出し:--action claim --objective FIRE --amount 2000 --purpose "ご褒美" | references/report.md |
| 目標完了/アーカイブ | ユーザーが明示的に移行:python scripts/cli.py objective --name FIRE --to completed|archived --confirm | references/report.md |
| 記帳照合 | ハイブリッドユーザーが最終決定して修正:python scripts/cli.py reconcile [--corpus 円] [--income 円] [--invest 円] [--living 円] [--impulse 円]。承認済みの支出は corpus を自動変更しません(corpus は設定領域、エンジン最小権限);代わりに実行時台帳 pending_spends に記録し、照合時に取り込んでクリアします(pending_spends_cleared 件数/合計を返す)。したがって、毎月の照合は「承認済み支出の消込 + 実際の基準値への再アンカー」となります。 | references/data-modes.md |
| 記帳リセット | 二重確認後、ファイル全体を再構築(監査証跡は保持):python scripts/cli.py reset --confirm --corpus 円 --monthly 円 --objective "名前:目標額:期限" [--reason "..."] | references/exceptions.md |
| 記帳カスタマイズ | 契約設定領域のパラメータを増分上書き(§5.4 二重確認):python scripts/cli.py customize --set distribution_rules.invest_ratio=0.3(プレビューで token を返す)→ 同じ変更に --confirm --token <token> で確定; --set(ネスト DOTPATH。safety_cushion.months / optimization_goal / mode を含む)/ --add-objective "名前:額:期限" / --whitelist-add 名前 --per-tx-cap 円 --annual-cap 円 / --whitelist-remove 名前 をサポート。§5.4 クーリングオフ期間:safety_cushion.months の引き下げ / invest_ratio の引き下げなど「自己を弱める」変更は、確認後 1 暦日のクーリングオフ期間(pending_config_changes)に入ります。期間内は理由なく取り消し可能、期限切れで自動的に発効し、すぐには確定されません。それ以外の変更(保護レベルの引き上げを含む)は即時発効します。 | references/exceptions.md |
| 記帳モード | グローバル最適化スケジュールの切り替え(記帳カスタマイズのサブセット):python scripts/cli.py customize --set optimization_goal wealth|balanced|objective(中核保護フィールド。§5.4 リスク通知をトリガー) | references/exceptions.md |
| 記帳モード切替 | データストレージモードの切り替え:python scripts/cli.py customize --set mode ledger|conversational|hybrid(非中核、通常確認) | references/data-modes.md |
| 記帳カスタマイズ・取り消し | クーリングオフ期間内に理由なく取り消し:python scripts/cli.py customize --withdraw --request-id <id> --token <取り消しtoken>(取り消し token は確認時に返されます) | references/exceptions.md |
| 記帳カスタマイズ・再確認 | クーリングオフ期間の再確認(期限切れ項目を自動発効 + 期間内未決リスト表示 + 再通知):python scripts/cli.py customize --review | references/exceptions.md |
| 記帳ログ [種類] | 監査読み取り専用クエリ:python scripts/cli.py log --name approval_log|appeal_log|override_log|reward_log|monthly_history | references/report.md |
| 記帳デモ | 3 シナリオの実際のドライラン(保存されず、実際のアカウントに影響なし):python scripts/cli.py demo(init の受領書にもデモブロックが自動付加) | references/init.md |
| 記帳ホワイトリスト 追加/削除 | 緊急承認の緊急カテゴリ管理(記帳カスタマイズのサブセット):python scripts/cli.py customize --whitelist-add 名前 --per-tx-cap 円 --annual-cap 円 / --whitelist-remove 名前(中核保護フィールド。§5.4 リスク通知をトリガー) | references/exceptions.md |
| 記帳負債/固定支出 追加削除 | 負債と固定年支出の記帳(実態を報告し、純資産口径に影響):python scripts/cli.py customize --add-liability "住宅ローン:800000:5000:0.04" / --remove-liability 住宅ローン / --add-rigid "保険料:12000:3" / --remove-rigid 保険料 | references/exceptions.md |
| 記帳・購入住宅記録 | 購入した不動産を記帳(頭金は流動性充当 + 住宅ローンは負債化):python scripts/cli.py customize --record-home-purchase "1000000:0.3"(住宅価格:頭金比率[:期間年数[:利率]];確認後 corpusから頭金を控除、liabilities に住宅ローンと月払いを追加) | references/exceptions.md |
| 記帳カテゴリ 追加削除 | 支出カテゴリ語彙表(allowed_categories、distribution_rules にネスト):python scripts/cli.py customize --add-category 園芸 / --remove-category 園芸(重複排除追加 / 削除、存在しない場合はエラー;中核保護フィールド、§5.4 二重確認をトリガー。ただし invest_ratio を変更しないためクーリングオフは入らない)。標準カテゴリは 23 項目(食料品/住居/交通/通信/医療/教育/衣料品/日用品/適切な娯楽/エンターテイメント/旅行/社交/ペット/デジタル家電/保険/不動産/車両/投資/資産運用/ファンド/株式/金/その他)が組み込み済み。新規追加は「標準外」の個別カテゴリのみで十分。投資・資産運用グループは資金の行き先タグにすぎず、不動産/車両 は高額購入(住居/交通 の日常支出とは区別)、invest_ratio の投資メカニズムには影響しません。judge は現在 --category がその中にあるかを強制検証しません(自由テキスト + 語彙表は推奨)。ハード制約が必要な場合は STATUS の保留項目 B を参照。 | references/exceptions.md |
| サードパーティインポート [ツール名] | CSV/手動で資産を取得し、人が確認した後に有効化(§7.3、データ中立ハード制約):python scripts/cli.py import-asset --balances <csv> [--flows <csv>] [--source 錢跡](一時保存→ token + サマリー + 疑わしい取引を返す)→ 確認・修正後 import-asset --confirm --token <token> で確定(corpus_status: imported_pending→imported_confirmed);放棄は import-asset --cancel --token <token>。CSV がない場合は手動で:import-asset --corpus 150000 --monthly 8000 --liabilities "住宅ローン:700000:3341.91" --rigid "保険料:6000"。インポート待確認(imported_pending)の間はすべての承認がロックされ、確認をスキップして承認することはできません。インポートのセマンティクス:CSV は完全なスナップショットである必要があります(資産/負債/固定費すべてを列挙。確認=全量ベースライン再設定。不足カテゴリがあっても既存項目はクリアされません)。手動 --corpus/--monthly/--liabilities/--rigid は部分修正(明示的に指定した分類のみ上書き。その他は稼働中の元の値を保持)。同名口座の自動重複排除:同じ (口座名, 種類) が CSV に重複してリストされた場合、同一口座としてマージされます。完全に同一の行は静かに破棄され、同名で異なる金額の行は合計され警告が出され、資産/負債に二重計上されなくなります(§H1 修正)。CSV 形式の許容範囲拡大(M2/M3):残高/月払い/取引金額で通貨記号(¥ $ ¥)と桁区切りカンマをサポート。取引日付は 年-月-日 / 年/月/日 / 年.月.日 / 年-月 をサポート。rigid 行には due_month 列(1–12)を付けて期限月を指定できます。一部負債/固定費修正のマージ:確認時に一部の項目(名前で指定)のみを修正した場合、言及されていない項目は保持され、テーブル全体が上書きされることはありません(M6 修正)。 | references/data-modes.md |
グローバルパラメータ(すべてのサブコマンド共通。一度だけ説明):
--data-dir <path>:データディレクトリ(優先順位:コマンドライン >SELFTRUST_DATA_DIR> デフォルト<home>/.claw/self-trust/)。--today YYYY-MM-DD:現在の日付を上書き(テスト/リプレイ用。通常は使用しない)。- 出力は常に JSON(
--jsonがデフォルトかつ唯一のフォーマット)。失敗時は{"ok": false, "error": ..., "message": ...}+ 0以外の終了コード(2=not_found / 3=guard 権限違反 / 4=invalid パラメータ)。
references ローディングルート(必要に応じて読み、全ては読まない)
| ユーザーのアクション | 読むべきもの |
|---|---|
| 日常の少額承認(最も頻度が高い) | ——(エンジン JSON に判定+文面要素が含まれているため、このファイルの鉄則で十分に整形可能) |
| 承認に異議あり/クーリングオフ/ホワイトリスト | references/approval.md |
| 異議申し立て/上書き/保護変更/リセット(低頻度) | references/exceptions.md |
| 初期化/デモ | references/init.md |
| レポート/キャリブレーション/報酬/目標ライフサイクル/ログ | references/report.md |
| モード切替/データソース切替/照合 | references/data-modes.md |
| スキーマ/権限トラブルシューティング | references/contract-schema.md |
テンプレート
- 意見書(却下/条件付きの強制三段構成):templates/opinion.md
- 3 シナリオデモ:templates/demo.md
ステータス
中核クローズドループ(初期化→承認→クーリングオフ→レポート→キャリブレーション→報酬→異議申し立て/上書き→リセット→照合)+ §7.2 デモドライラン + §3.1 スムーズ移行カウンター + 記帳カスタマイズ(§5.4 ゲートエントリー、モード切替/ホワイトリスト追加削除/カテゴリ追加削除/クーリングオフ期間を含む)+ 負債/住宅ローン計算(純資産決定口径 + 融資購入住宅 + 負債/固定支出記帳 + 購入住宅記録)+ §7.3 サードパーティインポート(CSV/手動取得→人による確認→確定;imported_pending は承認をロック、確定後 imported_confirmed;#1 修正:不足カテゴリがあっても稼動データを静かにクリアしない)+ 支出カテゴリ語彙表専用スイッチ(--add-category/--remove-category)を実装しテスト済み(325 単体テスト + 12 エンドツーエンドテスト)。実装の進捗は STATUS.md(真実の情報源)を参照。