helm — 機能ロードマップ
docs/constitution.md, docs/design/*, docs/spec/*, docs/runbooks/*, system/*, git log, ~/.claude/skills(正典はそれぞれの原本。この HTML は使い捨て surface・再生成前提)docs/design/2026-07-02-helm-architecture.md)
アーキテクチャ — 2プレーン・1カーネル
正典は2つ(憲法§1): ~/helm git リポジトリ(知識 MD)と 状態DB(tasks/events/horizon、Mac mini・未構築)。事業側の顧客 PII は helm に置かない。
個人プレーン 稼働中
- 知識:
~/helmgit repo(memory/ MD 正典) - 状態: SQLite on Mac mini(tasks/events/horizon)未構築
- サーフェス: PWA(未構築)+ 生成 HTML(
surfaces/・稼働中) - PII: なし
事業プレーン 未着手
- トランザクショナル: hub DB(顧客・問合せ・書類・水質)
- 店舗: Postgres on mini が既定、Supabase は公開エンドポイント要件が出た時のみ(Δ8 未決)
- 顧客 PII はここにのみ存在
カーネルはサービスでなく契約 — 両プレーンが同じ Transaction 形状・イベントスキーマ・ラダー規則・Horizon フィードを実装する。クライアントに関する知識的文脈(プロフィール・履歴・決定)は vault に、トランザクショナル/PII データは hub store に、ID で連結。
ゾーン契約(リポジトリ内部)
memory/inbox/memory/work/<slug>.md| ゾーン | 役割 | 衛生規則 |
|---|---|---|
memory/ | 正典知識。現行 vault がそのまま移行済み | 全ルール対象(type/tags/categories/status/updated/summary/sources) |
projects/ | 作業場。誕生時に memory/work/<slug>.md へ登記 | project-close の蒸留を経ずアーカイブ不可 |
surfaces/ | 使い捨て生成物(この HTML 含む) | 生成日+出典スタンプ必須・gitignore・引用禁止(lint エラー) |
docs/ | 憲法・design・spec・runbooks・handoff | この文書自身の出典層 |
| 状態DB(外部・mini) | tasks/events/horizon | 単一ライター・git に置かない |
実行トポロジー — 2台 + GitHub
対話・外出
終了時 auto-commit/push
常時稼働・自律ジョブ
単一自律ライター
jukiyak/helm両機のハブ
mini 不達時のフォールバック
セッション開始: session-pull フックが git pull --ff-only(憲法も同時注入)。終了 (Stop): session-commit が dirty なら auto-commit + push。押し出し失敗は非致命的(次回再送)。外出時は Tailscale SSH で mini セッションに接続。
5つのプリミティブ
アーキテクチャ設計文書が定義する統治カーネルの構成要素。実装状況は「稼働中/部分実装/設計のみ」の3段階で示す。
1. Transaction 稼働中
動機: すべての正典書き込みが「なぜ・いつ・誰の承認で」を後から辿れること(来歴)と、間違えても戻せること(可逆性)を保証するため。個人プレーンでは git commit がこれを無料で提供する — 別立てのトランザクションログを作らない。
しくみ: 提案 → ゲート → 可逆な適用(git commit)→ 来歴(commit trailer)→ 記録(次の git log/digest から可視)の5段階。commit prefix(feat: fix: docs: chore(schema): chore(lint): chore(session):)が「どんな変更か」を、trailer(Helm-Actor: Helm-Txn: Helm-Source:)が「誰が・何のために」を分担して記録する。バッチ書き込みは全スキル共通の Batch Approval Plan テンプレート(CREATE/UPDATE/COUNT)で提示 — 1件ずつでなくバッチ単位で承認する。
ゲート: 削除・verified 上書き・risk:high・外部送信・金銭は永久 L0(自動化不可)。
詳細: docs/spec/transaction.md
2. Event Spine 部分実装
動機: 自律性を"証拠"に基づいて拡張するには、何が起きたかを AI の自己申告でなく機械的に記録する層が要る(進捗報告は自己批評でなく証拠と突合、が運用原則)。
しくみ: events テーブル1本(ts, type, actor, target, outcome, meta)+ system/spine/log-event.sh。SQLite はリポジトリ外(~/.helm/spine.sqlite)— 秘密でなく可変状態だから。fail-open 設計(sqlite3 が無ければ何もせず exit 0)、再帰ガード付き。
現状: スキーマとロガーのみ実装済み。フック(PostToolUse 等)への配線は未接続 — secrets runbook 完了とオートノミー・ラダーの解禁待ち。Mac mini への配備・Litestream 継続バックアップも未着手。
詳細: system/spine/README.md
3. Autonomy Ladder 設計完了・全クラス L0 運用中
詳細は 次章「Autonomy Ladder」を参照。
4. Hygiene Model 稼働中
動機: 手で管理するフィールドを最小限にし、新鮮さ(freshness)や孤立度(isolation)のような派生値は保存せず都度計算する — フロントマターの二重管理を避けるため。
しくみ: 手で持つのは status と、高リスクページのみ risk/confidence。updated は内容変更でのみ bump(スキーマ修正・改名・移動では bump しない)。system/lint がこの模型を17ルールで検査(後述)。
5. Horizon MD 暫定実装
動機: vault が過去・現在を記録するのに対し、期限・更新・カデンス・マイルストーンという「未来」を持つ一級のストアが要る。期日不明の項目は隠さず「要確認」として出続ける。
しくみ(現状): memory/system/horizon/(horizon.md + obligations.md + ログ)への暫定 MD 台帳。カレンダー・メール更新通知の harvest で更新。行の削除は禁止、完了は Archived セクションへ移動。
目標(未構築): 状態DBの horizon テーブルへ移行し、この MD フォルダは再生成可能なビューになる。専用スキルファイルは現状なく、dashboard/daily-log/weekly-review が読みに行く共有台帳という位置づけ。
Autonomy Ladder — 昇格は宣言でなく実績で
操作クラスごとに1段ずつ、Digest が示せる証拠の上で昇格し、失敗があれば自動で降格する。「AI が提案し人間が価値判断する」原則はどのレベルでも変わらない — 変わるのはゲートの位置だけ。
永久 L0(昇格不可): 家族外への外部送信(メール/LINE/投稿)、金銭移動・購入・契約、正典ファイルの削除、status: verified 上書き、risk: high ページの変更、helm 自身の統治(このラダー・憲法・permission 設定)の変更、逆操作が実証されていない操作。
現在地(2026-07-03 時点)
| 操作クラス | 現在 | 目標 | 昇格に必要な証拠 |
|---|---|---|---|
| Vault-first 参照・自動読み込み | L3 | L3 | 既存(grandfathered) |
| trivial lint 自動修正 | L0 | L2(夜間) | 監督付きバッチ 3回・誤修正ゼロ(現在 0/3) — 直近の解禁対象 |
| inbox キャプチャ構造化・daily-log 整形 | L0 | L2 | 連続20回・訂正1回以下 |
| 問合せ分類(事業) | L0 | L2 | 2週間・誤分類率2%未満 |
| 返信下書き生成(事業) | L0 | L1(下書きのみ) | 下書きは定義上不活性 — 人間が送信 |
| 週次/月次レビュー生成 | L0 | L3 | 無修正で連続4回受理 |
詳細: docs/design/2026-07-02-helm-autonomy-ladder.md
実装済み機能
カテゴリ別。各カードに目的・しくみ・実例を記載。稼働中 部分実装 未着手 で状態を示す。
同期・実行基盤
セッションフック4系統 稼働中
目的: 憲法をセッション開始時に強制注入し、2台のマシン間で正典を自動同期する — 人間が commit/push を意識しなくてよい状態にする。
しくみ: inject-constitution.sh(SessionStart で憲法注入)、session-pull.sh(ff-only pull、fail-open)、session-commit.sh(Stop で dirty なら auto-commit + push、fail-open)。すべて HELM_HOOK_GUARD で再帰防止。
実例: 本セッション冒頭の system-reminder に憲法全文が注入されているのがこの機構の直接の証拠。
知識管理(vault / memory)
headless lint engine(system/lint) 稼働中(自律適用は未解禁)
目的: Obsidian に依存せず、スキーマ違反(フロントマター不備・リンク切れ・構造問題)を機械的に検出・分類する。Autonomy Ladder のリング1のツール基盤。
しくみ: 4ファイル・17ルール(a-schema.js 必須項目/日付引用/廃止キー、b-links.js orphan/デッドリンク、c-structure.js ディレクトリ構造・命名、property-renames.js 旧キー統合)。すべての issue が tier(trivial/standard/review)を持ち、tier がレポート区分と自動適用可否を兼ねる唯一のモデル。_lint_skip: true が唯一のファイル単位オプトアウト。raw/** はスキーマ対象外。
実例: 2026-07-03、~/helm/memory 807ファイルの初回フルスキャンで trivial 681件・standard 2586件・review 1369件(計4636件)を検出。まだ --apply は未実行。
詳細: docs/spec/lint.md
wiki スキーマ・sub-wiki 再編ルール 稼働中
目的: フォルダが肥大化しても「いつ分割し、いつそのまま持つか」を毎回考え直さずに済む一貫した基準を持つ。
しくみ: 4+ ファイル & 独自語彙で sub-wiki 昇格候補(c1-subwiki-threshold が review tier で検出、自動分割はしない)。最大4階層(Directory Depth Rule)。分類は階層でなくフロントマター(taxonomy ≠ sub-domain)。アーカイブは status: archived が既定、5+件で物理移動。
詳細: docs/spec/reorganization.md, docs/spec/wiki-conventions.md
add-page / query-wiki / vault-lint スキル 稼働中
目的: 取り込み(ingest)・引用付き回答・lint 実行という3つの vault 操作を、Batch Approval の一貫した契約の上で提供する。
しくみ: add-page はインタビュー→ドラフト→Batch Approval Plan 提示→承認で page + 親 index + log を1回のトランザクションで書き込み+commit。query-wiki は index-first walk→grep フォールバック→[[Page]] 引用必須、3ページ以上を統合した回答は wiki への昇格を提案。vault-lint は headless engine の薄いラッパー。
日次・週次運用
daily-log / weekly-review / dashboard(+morning-briefing) 稼働中(interim)
目的: 「3行で終わる日報」「月曜の振り返り」「1画面の現在地」という3つの定期リズムを摩擦なく回す。
しくみ: daily-log は3行契約 + streak を Horizon に反映。weekly-review は daily logs + Horizon + lint 差分から生成し停滞プロジェクトを検出。dashboard は morning-briefing を統合済み(2026-07-03)— カレンダー・メール件数・Horizon を1枚に再生成し、同一 claude.ai Artifact URL に上書き(iPhone から閲覧可)。目標の「状態プレーン PWA v1(Tailscale)」はまだ無く、これは interim 実装。
Horizon 台帳 MD 暫定実装
「5つのプリミティブ」章を参照。専用スキルファイルは無く、dashboard/daily-log/weekly-review が読みに行く共有 MD 台帳(memory/system/horizon/)。
プロジェクト管理
project-init / project-close 契約 稼働中(会話契約・専用スキルファイルなし)
目的: 「vault が知らないプロジェクトは存在できない」— 登記なきプロジェクトを助長しない。誕生時登記と終了時蒸留をセットで強制する。
しくみ: スキルファイルでなく会話パターンとして実装(「プロジェクト立ち上げ: <名前>。ゴールは◯◯。経緯は…。期限は△△」と言うだけ)。不足質問≤4問→Batch Approval→承認で projects/<slug>/PROJECT.md(チャーター)+ memory/work/<slug>.md(登記)+ 期限があれば Horizon 行 を一括作成。close は蒸留(結果・決定・学びの書き戻し)を経るまでアーカイブ不可。
実例: 2026-07-03、進行中プロジェクトの棚卸し retrofit で traffic-accident-2026 / email-migration / household-finance-automation の3件を登記。helm 自身も同じ契約の第一適用例として自己登記済み。
詳細: docs/runbooks/project-playbook.md
キャプチャ
brain-dump パイプライン(Apple Reminders) 稼働中(launchd 登録は次の mini セッション待ち)
目的: 移動中・運転中・オフラインでも思いつきを取りこぼさず、単一ライター規律を保ったまま inbox に届ける。
しくみ: iPhone(Siri/ウィジェット/Watch/共有シート)→ Reminders リスト「helm Inbox」→ iCloud がオフラインキューを兼ねる → mini の launchd が30分毎に排水 → memory/inbox/brain-dump-YYYY-MM-DD.md(キャプチャ時刻を保持)→ 書き込み成功後にのみ Reminders 側を完了化(削除しない・可逆)→ chore(capture): commit。多重起動は lock dir でガード。
実例: 2026-07-03、dry-run で検証済み。launchd 本登録は TCC(オートメーション権限)の対話承認が必要なため次の mini セッションに持ち越し。
将来の合流先: Spine/PWA の自前 capture UI ができ次第、この経路と並走→置換判断。dashboard への排水件数タイル統合も予定。
詳細: docs/runbooks/capture-pipeline.md
メール自動化
email-automation(L0〜L3 レーン運用) v1 稼働・送信は永久ゲート
目的: 最長3ヶ月滞留していた未返信をゼロに近づける。送信は事業の対外行為であり永久に人間ゲート(Autonomy Ladder の pinned-L0)。
しくみ: 2026-07-03、送信済み58スレッド(2026-01-01〜07-03)を3並列エージェントでマイニングし、文体ガイド・分類taxonomy・取引先台帳を正典化。L0(機械的フィルタ)/ L1(トリアージ)/ L2(本人文体の下書き半自動)/ L3(要人間)のレーンに分離。email-triage / email-respond スキルが実装層(v2 改修対象)。承認サーフェスは Gmail 下書きフォルダ(モバイルファースト — iOS/iPad 移動中の処理が主要ユースケース)。Gmail API は drafts.send(gmail.compose 最小権限)を採用、無人化(mini 直 OAuth)は Spine 合流後の v2。
実例: 前セッションで `search_threads` がスレッド内メッセージを全部返さない不具合(9通中5通のみ)を発見 — トリアージは必ず get_thread で全文確認する設計に修正。
その他の個人スキル(helm 化済み・そのまま統合)
invoice-generator / quest-tracker / content-draft / research-note / learn / supplement-audit 稼働中
helm 誕生以前から存在した個人スキル群。統治カーネル(Transaction/Ladder)の対象ではあるが、独立に運用中。invoice-generator は請求書/領収書/見積書 PDF を会社プロフィール(Private/ 配下)から自動生成。quest-tracker は LifeQuest ゲーム状態(4層クエストアーキテクチャ)を追跡。learn はセッションの学びを memory/rule/skill/hook の適所へ格納 — このドキュメント自体の生成もこの学習ループの延長にある。
取り込みドクトリン
外部機能の再基礎づけ「5問チェック」 稼働中
目的: Hermes / OpenClaw のような外部エージェント基盤は「便利な常駐能力(capability convenience)」を最適化するが、helm は「証拠とともに拡大する信頼できる自律(trustworthy autonomy)」を最適化する。機能をそのまま輸入(ポート)すると前者の思想が混入するため、必ず5問で再基礎づけしてから採用する。
| # | 問い | 通らない場合 |
|---|---|---|
| 1 | 来歴を持てるか | Event として記録できる形に再設計 |
| 2 | 永久 L0 との交点は明示できるか | 提案制に落とす |
| 3 | 蒸留経路(正典への graduation)はあるか | 経路を付けるか surfaces 扱いに |
| 4 | 所有かビューか | ビューなら生成物化、正典にしない |
| 5 | 単一ライター(mini のみ)を壊さないか | mini 限定 or 提案制に変換 |
実例(初適用、Hermes、2026-07-03): bounded memory → 「正典の実体化ビュー(各行が正典に遡れる)」に再設計。cron→messaging 配信 → 「通知は使い捨て surface、送信事実だけ Spine に記録」に再設計。skill 自己昇格 → 「_pending/ に証拠付き起票し人間昇格」に再設計。
詳細: docs/design/2026-07-03-adoption-doctrine.md
ロードマップ(依存順・単一クリティカルパス)
並行する複数ロードマップを統合した唯一の依存順パス(design/roadmap 文書 I0)。各フェーズは「何を解禁するか」で読む。
Phase 0 — 基盤 完了
解禁対象: 構造的可逆性(恐れ#1)。repo scaffold・secrets 方針・backup・vault 移行(Obsidian 依存除去含む)・同期自動化(session-pull/commit)。すべて完了、2026-07-02〜03 の commit 群で実証。
Phase 1 — Spine と統治 完了
解禁対象: 信頼できるテレメトリ。State DB bootstrap(events テーブル+ロガー)、Transaction 規約(trailer + Batch Approval)、≤100行憲法 + オンデマンド spec、headless lint runner。すべて実装済み(Event Spine はフック未配線というスコープ内保留あり)。
Phase 2 — 状態プレーンとループ入口 部分実装
解禁対象: 5番目の恐れ(I5)+ モバイル生活。
- interim 状態DB(tasks/projects/horizon テーブル)・小規模API・dashboard PWA v1 → 現状は claude.ai Artifact ベースの dashboard スキルが代替
- 実装済み キャプチャ経路(Reminders→drain→inbox、オフラインキュー実証済み)
- 未着手 Horizon の DB テーブル移行(MD が正典のまま)
- 未決 家族アクセス(Δ10)
- 実装済み レビューカデンス生成器(daily/weekly)
- 初期段階 家計(household finance)が最初の個人トランザクショナルドメインとして状態プレーンに乗る — 2026-07-03 に household-finance-automation として登記済み、DB化は未
Phase 3 — 要石の可視化 未着手
解禁対象: 心理的に安全な自律性。Health Digest(4つの恐れ + Horizon「接近中」の5パネル)、派生的な新鮮さ/プロジェクト停滞度の可視化。
Phase 4 — 獲得された自律性・デュアルトラック 未着手(リング1昇格 0/3)
解禁対象: I2。個人リング1(夜間 trivial-lint 自動修正・L2)、個人リング2(inbox/daily-log 構造化・L2)、事業リング1(問合せ自動分類+返信下書き・L1下書きのみ)。昇格は Digest 提示のエビデンスによってのみ。
Phase 5 — 複利化 未着手
解禁対象: I0 完全解消・I4 終局。自己改善ループ(Spine フィード→改善提案→回帰ゲート)、事業AI昇格(テンプレ化可能な問合せクラスの自動送信)、coral-pipeline のカーネル合流、ネイティブアプリ go/no-go(PWA 摩擦の実測後)。
並行トラック — 事業静的削減 依存なし・いつでも開始可
FAQ ページ公開・LINE リッチメニュー・チャネル統合(LINE + support@ へ集約)・スパムフィルタ。AI 不要・helm 非依存。問合せ量の約70%(I4)に直接効く。
出典: docs/design/2026-07-02-helm-roadmap.md(この章はロードマップ文書と実際の git history/現状を突合した「現在地つき」版)
実際の運用事例
~/helm/memory 807ファイルに対する初回フルスキャンで trivial 681 / standard 2586 / review 1369、計4636件。どの1件もまだ自動適用されていない — リング1の3バッチ実績が貯まるまで L0 のまま。
search_threads がスレッド内メッセージを欠落させる不具合(9通中5通のみ返却)を発見し、トリアージ設計を get_thread 必須に修正 — ツール結果を鵜呑みにせず突合する運用原則の実例。
クイック索引 — 何をしたい時にどれを使うか
日々の操作の全文は surfaces/helm-cheatsheet.html(検索可能な早見表)を参照。ここでは「機能とその位置づけ」だけを一覧する。
| やりたいこと | 使うもの | 本文書の節 |
|---|---|---|
| 今日の予定・メール件数を1枚で見る | dashboard スキル | 日次・週次運用 |
| 思いつきをどこかに投げる | 「inbox に入れて」/ Siri → helm Inbox | キャプチャ |
| 新しいプロジェクトを始める | 「プロジェクト立ち上げ: …」(会話契約) | プロジェクト管理 |
| vault にページを追加・外部ソースを取り込む | add-page スキル | 知識管理 |
| vault に質問して引用付きで答えてほしい | query-wiki スキル | 知識管理 |
| vault の健全性をチェック・直す | vault-lint スキル(system/lint 経由) | 知識管理 |
| メールを仕分け・返信下書きしたい | email-triage / email-respond | メール自動化 |
| 請求書・見積書を作る | invoice-generator | その他の個人スキル |
| helm 全体がどこまで進んでいるか知りたい | 本文書の「ロードマップ」章 | ロードマップ |
| 外部ツールの機能を helm に取り込みたい | 取り込みドクトリン 5問チェック | 取り込みドクトリン |