#9997: [2026-06-26]: CC2/CC3 復活 — 会話と実行の物理分離
- 決定: 2026-06-01 end-to-end 単一実行を部分撤回。CC1=戦略/人間会話/判断のみ(自分で実行しない)/CC2=実行(実装+SNS/コンテンツ生成、clean context で一気に消化)/CC3=検証(cold-read・バイアスなし)。roster=CC1/2/3/5/8。
- 根拠: 単一実行は「会話CCが喋って実行を放置」を構造的に生んだ。証拠=サムネ被覆が2026-04-18〜06-23で10回以上指摘されながら未解決(DEC#386量産GO未実行/upload無サムネ素通り/検知ゲート皆無)。subagent代替は親がfire忘れる=規律無し。軸=注意の分離(放置防止、判断軸の1つ。sibuketu「これだけで決めるな」→他軸勘案の上GO「じゃあ復活する」)。
- enforce: ccn-detect.sh 改訂(各role+reads注入、cc2/cc3発火test済)+ memory feedback_collapse_cc_dispatch_single_executor point8 + MEMORY.md CC体制。
- 下流: CC1_INBOXのSNS生成系→CC2移管(順次)。git自律=RED-ONLY GATE確認済、main分岐reconcile(code193file)はCC2初仕事。PR#244(thumbnail gate)merged。
- last_reverify: 2026-07-26
## DEC-[withheld: provisional decision] [provisional] 2026-06-27: Withings 統合を cut(DEC #267 を reverse)
- 決定: PR#217 merge で Withings + steps/心拍/active-min 削除。
- 根拠: HealthKit/Health Connect と完全重複・独自 metric は栄養計算未使用。sibuketu 2026-06-27「よくわからん 無視同意」(reverse を明示の上で同意、DEC#552 準拠)。
- reverses: #267
- 信頼度: 🟢80%
- last_reverify: 2026-09-27
## DEC-[withheld: provisional decision] [provisional] 2026-06-27: 人間作業カテゴリ registry + gate(場当たり質問の機械化)
- 決定: 人間判断を surface する前にカテゴリを registry(7種)照合。registry外=誤分類疑い(AI-doable)、新カテゴリは standing policy 同時決定。機械化=hook で「人間カテゴリ: N」tag を必須化。SSOT=memory feedback_human_work_category_registry。
- 根拠: sibuketu 2026-06-27「人間作業のカテゴリをまず確定、新カテゴリは今後どうするかも一緒に決める、機械で」。harness engineering / recursive self-improvement の action-point poka-yoke。
- framework: §0.7 + §2.5 4-axis + feedback_ai_human_division_decidable
- 信頼度: 🟢
- last_reverify: 2026-09-27
- commit: 27d56cb5 (2026-06-27)
## DEC-[withheld: provisional decision] [provisional] 2026-06-27: CC2/CC3 自律run の time-box hook 強制(present30分/away60分・離籍トリガ・CC1ノーキャップ)
- 決定: CC2/CC3 の無人走行を「最後の人間発言からの経過時間」で計測し、present 30分 / away 60分 超で graceful 停止指示(区切ってcommit→直近handoff永続化→停止)を毎tool callに注入。away は人間が「離籍」と言うと ON、それ以外の人間発言で present に自動復帰。CC1 および非CC2/3 はノーキャップ。
- 機構: RULESの文章でなく hook で強制(モデルの自己時計=直前2hループで壊れた当の機構、文章では再発する)。UserPromptSubmit=timebox-stamp.sh(時刻+CC番号stamp、役割は起動patternのprompt先頭ccN限定で誤検出回避)/ PostToolUse(.*)=timebox-check.sh(超過判定+注入)。非ブロック設計(denyせず注入のみ=hook自体が暴走しない安全版)。jq非依存(環境にjq無し→grep/sedでJSON parse)。state= ~/.claude/hooks/.timebox/。
- 根拠: sibuketu 2026-06-27「上限30分・離籍で1時間・cc23だけ・cc1は上限なし・いいかんじに」。直前に過去CC2が2hループ→週次上限(6/30)逼迫→「自動検知で止まれないの」。
- framework: §2.5 engineering自律 + feedback_autonomous_run_visibility + feedback_systematize_gates_upfront
- 検証: stamp/check/role-anchor 3経路test済、実セッションstamp稼働確認。
- 下流: (1)100%保証要なら PreToolUse deny の hard版を grace後に追加可(在席時に切替推奨)。(2)発見=既存jq依存hook(CC3投入/handoffマーカー等)もjq無しで無音失敗の公算→別件要確認。(3)本命=週次上限直接ガード(全CC共有token残量)は次段。
- 信頼度: 🟢
- last_reverify: 2026-09-27
## DEC-[withheld: provisional decision] [provisional] 2026-06-27: time-box をソフト可視化チェックインに格下げ + 暴走"検知"(ループ検出)追加 + CC2/3可視化緩和(#9996 精緻化)
- 経緯: sibuketu 2026-06-27「30分は切り悪いなら超過OK / cc23も普通に報告 / 理想は暴走検知して時間無制限 / 無視同意」。過去CC2は削除済。
- 決定:
- (1) time-box(30/60)をハード停止から外し「区切り良ければcommit+進捗一言報告(無人走行の可視化)/切り悪ければ続行可=目安」に変更(timebox-check.sh 文面差替)。
- (2) ループ検出器 runaway-detect.sh 新設(PostToolUse全tool): 同一 tool+input 署名が 1run(最後の人間発言以降)の直近35操作中10回以上=空回りと判定し soft nudge。時間非依存=前進してる長時間runは無制限(理想に接近)。CC2/3限定・非ブロック・jq非依存。run境界は timebox-stamp.sh が .sig を毎prompt リセット。
- (3) CC2/3 の沈黙を緩和し「無人走行中は進捗を可視化」を default 化(過走行を気付かれず放置しない)。全面 always-chatty でなく checkpoint 可視化と解釈(verbose 嫌い prefs と両立)。
- 機構/検証: hooks 3本(stamp/check/runaway)+settings配線。loop発火/非発火/CC1除外/softened/sig-reset 全test green。
- 下流(残): RULES §2.4沈黙プロトコル/§11.6a/§4.5 の文面同期(master多箇所・全CC影響ゆえ本turnは behavioral実装に留め、文面propagationは要scope確認)。hard-block版は不要化(理想=検知ベース)。jq無し既存hook無音失敗は別件で未対応。
- meta標準方針: sibuketu の散発的な好み発言を「法則化→system最適化」する再帰的自己改善を default 運用化。
- framework: §2.5 engineering自律 + feedback_autonomous_run_visibility + feedback_framing_invariant_judgment
- 信頼度: 🟢
- last_reverify: 2026-09-27
- commit: 2b710e56 (2026-07-19)
- commit: cf1f8bcb (2026-07-24)
---
## DEC #623 (2026-07-02) — profiles entitlement 列を server-write 専用にロック(収益バイパス修正)
- 決定:
public.profilesのsubscription_status/subscription_id/subscription_start_date/subscription_end_dateの INSERT・UPDATE 権限をauthenticated・anonから REVOKE(service_roleは保持)。 - 背景: profiles の RLS UPDATE ポリシーが行スコープのみ(
auth.uid=user_id・列制限なし)=認証ユーザーが PostgREST 直叩きで自分の行のsubscription_status='active'を自己付与可能。クライアントはApp.tsx:1631 canAccessApp(profile?.subscription_status)+useVerifySession.ts:150の profiles realtime 監視で解禁判定=自己付与で premium/Founding500 を無償解禁できる収益バイパス。 - 安全性:
saveUserProfile(storage.ts:918) の profileRow はこの4列を送らない=正規のプロフィール保存は無傷。Stripe webhook はservice_role=書込保持。SELECT保持でクライアント読取(判定)は継続。 - 可逆:
GRANT INSERT/UPDATE (...) ON public.profiles TO authenticatedで復元可。 - framework: §0.2 honest precision / RLS 多層防御 / §2.5① 高impact(収益直撃)。
- 実適用: Supabase project msvonymnpyeofznaopre に execute_sql で適用・列権限で検証済(authenticated/anon=SELECTのみ)。
- downstream: 次セッションで実ユーザートークンでの UPDATE 拒否 + Stripe購入→unlock 無傷 を1度実挙動確認。
- last_reverify: 2026-08-01
## DEC #624 (2026-07-02) — Fable 分担は暫定・実使用で精度を上げる(機構=実使用ログ)
- 決定: 現行モデル分担(Sonnet 大半 → Opus 判断/手強い → Fable 最深×高stakes)を 暫定として運用し、実際に Fable を呼んだ実績で精度を更新する。分担表を今“固定”しない。
- 機構: Fable を実使用した回だけ
feedback_subagent_model_routing.mdの「Fable 実使用ログ」に1行追記(日付/タスク/Fableを選んだ理由/Opusと答えが違ったか/一言)。5-10回で CC1 が keep/drop/expand を判断。Opus と答えが変わらない回が続く→drop 寄り、Opus で床割れ→expand 寄り。hook 等の過剰機構は作らない(Fable ほぼゼロ運用=低頻度、false-positive の方が高くつく)。 - 根拠: sibuketu 2026-07-02「fable は…今のままでもいいけど やってくうちにイランかもとももっといるかもともなるだろうから」=暫定ラティファイ+実証で精度向上。継続語付き(DEC #553 自動ルール化)。
- framework: §0.3 status-quo bias 禁止(“存在するから固定”しない)/ feedback_systemize_solutions(最小コスト機構化)/ feedback_subagent_model_routing。
- 信頼度: 🟢
- last_reverify: 2026-08-02(ログ 5 件到達時に前倒し review)
## DEC #572 (2026-07-02) — Veritas = N-of-1 症状実験エンジン 条件付きGO + "かかりつけ医"看板 撤去確定
- 決定: Veritas を「N-of-1 症状実験エンジン」に舵を切る(条件付きGO、sibuketu「やってしまおう」)。3週間🔵 stale だった VERITAS-DOCTOR-NOF1-2026-06-09 を確定化。
- 確定(議論の余地なし・sibuketu 明言): "かかりつけ医/医師"の看板はユーザー向け・マーケから一切使わない。医者ポジションは社内の品質基準としてのみ持つ。 ユーザー向けは「構造化セルフ実験コーチ/自分専用の実験ラボ」表現。理由=診断/医療機器と解釈される線を自分から踏むのは存亡リスク(FDA/FTC・Apple 5.1.1)+ 過去の引用誤帰属で信頼毀損が跳ねる。
- 可逆な範囲は先行: build #1 = 実験レコードのデータ保存形式(スキーマ)設計=外部露出も医療 claim も無い=先行してよい。
- ship 時まで留保する不可逆論点: 医療 claim 境界+red-flag 停止ライン / iOS 審査の出し順 / 電解質 g 指示の可否 / 課金位置 / 日次トークン上限(§2.5、DECISIONS_PENDING VERITAS-NOF1 に集約)。
- 要件本体: docs/CC1_VERITAS_NOF1_REQUIREMENTS_2026-07-02.md
- framework: §2.5①④ / project_usda_replacement_north_star / §0.3 status-quo bias 禁止。
- 信頼度: 方向=🟢(sibuketu 確定)/ 全体 ship 可否=🟡(不可逆論点 未 sign)
- last_reverify: 2026-08-02
## DEC [withheld: provisional decision] (2026-07-02) — アプリ審査の2状態で着手タスクを切替(審査中 vs 審査準備中)
- 決定: 全CCが「審査中(提出済・verdict待ち)」と「審査準備中(未提出/reject後)」で着手タスクを切り替える(sibuketu「審査中の時と審査準備中の2つの状況で手を出すタスク変えてね」継続語→standing)。
- 審査準備中(現状 2026-07-02)= launch-critical fix / reject-fix / 提出prep に全振り(本体積極介入OK)。
- 審査中 = submittedビルドを揺らさない(health計算/risky refactor 回避)+ 非アプリ作業(SNS/助成金/戦略/次reject先読み/iOS審査中はAndroid並行/監視)に寄せ、待機窓で post-launch作業を前倒し。
- enforcement: memory
feedback_review_state_task_switch(auto-recall・条件発火reminder強度)。機械化候補=起動時に現状態+対応task-setをsurfaceするhook(未実装・advisory止まり、誇大表示しない)。 - 既存との関係: DEC #570(再提出準備モード)を2状態モデルに一般化。関連 feedback_apple_review_roundtrip_top_priority / feedback_forced_wait_pull_deferred_forward。
- 採番: local #624止まり・origin先行ゆえ provisional。reversible。last_reverify: 2026-10-02。
## DEC [withheld: provisional decision] (2026-07-02) — 定価確定: 月$30フラット / 年$200(44%off)維持 / Lifetime$99 / 初回割引撤去
- 決定(§2.5④ sibuketu sign 2026-07-02): 月額 $30 フラット(初月$9.99の初回割引は 2026-06-30 撤去方針どおり削除済)/年額 $200/年(「44%お得」)維持(sibuketu「年間の金額それでいいよ」=現行維持と解釈。年払い割引は初回割引と別レバー)/Founding500 Lifetime $99 維持/標準トライアルは launch で付けない(flag OFF・コード残置で post-launch A/B 可)。
- AI 所見(sibuketu「この金額も同意してくれてますか」への回答): 年額$200/lifetime$99 の premium 位置取りは妥当(差別化=個別化/N-of-1 が効けば正当化)。月額$30ノートライアルは cold launch で摩擦が高い(社会的証明ゼロで月額固定は転換低下)=launch後 A/B #1 候補(trial flag 復活で検証)。相対化: 栄養アプリ市場上位(Cronometer/Macrofactor ~$50-120/年)に対し年$200は最上位帯=価値訴求が刺さらないと転換難、が唯一のリスク。
- enforcement: 実装=PR#275 finalize(CC2、annual "unclear" blocker 解除)。
- 既存関係: DECISIONS_PENDING「価格・購入リスク反転再設計」(#611①) の残 sign を消化。関連 DEC #571(カロリー opt-in)。
- 採番: origin先行ゆえ provisional。reversible(価格/flag変更可)。last_reverify: launch後 conversion 実測時。
- 2026-07-02 追記: 月額$30フラット($9.99初月撤去)を sibuketu 明示同意(「$30だけで$9なしのやつ、AIも推奨、なら同意」)=価格 完全クローズ、pending なし。
## DEC [withheld: provisional decision] (2026-07-02) — アプリレビュー誘導 = 公式API×好機タイミングのみ、sentiment-gate は不採用(Appleリスク)
- 決定(sibuketu 「Grok の "楽しんでる?→はい=評価/いいえ=feedback" せこプレイ、俺らもやる?」への CC1 判断): やらない(露骨な sentiment-gate 部分)。代わりに 公式 In-App Review API(iOS
SKStoreReviewController/ Google Play In-App Review)を positive な瞬間(streak達成・記録成功直後)に出す。post-launch 成長機能(未launchゆえ今は作らない)。 - 根拠: (1) sentiment で負レビューを私的feedbackに逃がす gating は Apple ガイドライン(1.1.7 レビュー操作 / SKStoreReviewController 必須)で咎められうる=reject リスク。現在 iOS reject #12 の最中でリスク許容度ゼロ。(2) 露骨ゲート無しでも「好機タイミング出し」で満足ユーザーを自然に多く捕捉=うまみの大半を合法に取れる。(3) 負を隠す設計は信頼毀損(§0.2 誠実性)とも整合しない。
- evidence/policy-decidable(Apple 規約+自社リスク状況で決まる=sibuketu の taste でなく CC1 判断領域、[[feedback_decompose_decision_taste_sliver]])。reversible。last_reverify: launch後・成長機能着手時。
- framework: [[feedback_apple_review_roundtrip_top_priority]](Appleリスク最小化)/ §0.2 誠実な精密さ。