H. Roles and Evaluation - Liplus-Project/liplus-language GitHub Wiki
Roles and Evaluation ── 役割分離と評価軸
本文書は Li+ プログラムの設計思想を扱う 4 文書 (E-H) のうち、役割分離 (ツール非依存)、human と AI の役割割当、評価軸 (AI 実機の振る舞い)、対話 scope と記録 scope の二層構造 を担う。
仕様 literal は rules/model/role-separation.md (役割分離) と rules/model/foundational-invariant.md (正しさの定義) を正本とする。本文書は思想層として、誰が何を担い、何で評価するかを整理する。
役割分離 (ツール非依存)
Li+ を支えるのは特定のサービスではない。役割が分離されていれば、基盤は何でもよい。
| 役割 | 担当 |
|---|---|
| AI | 要求仕様書・対象プログラム・CI テストを生成し、自己修正する |
| バージョン管理 / 要求スレッド | 履歴と差分を残す |
| CI/CD | AI が安全に失敗し、観測できる環境 |
| 実機 / 本番 | 品質の最終確認点 |
| 人間 | 最終判断者 |
AI の役割は、単に生成することではない。実装し、失敗を観測し、修正し、それでも越えられないものだけを人間へ返すことにある。
CI は実機の挙動の正しさを保証できない。保証するのはコードの品質だけである。ここは、AI が自分の実装が論理通り動くか確認する場所である。詳細は docs/F.-Behavior-First.md の「CI = AI の現実判定装置」section を参照。
役割の置換可能性
特定のプラットフォーム (GitHub / GitLab / Cloudflare / 他) は Li+ にとって入れ替え可能な装具である。重要なのは役割が分離されていること、つまり以下の境界が立っていることだ。
- 履歴を残す装具 ≠ 失敗を観測する装具
- 失敗を観測する装具 ≠ 最終確認を担う実機
- 最終確認を担う実機 ≠ 最終判断を下す人間
これらが同じ装具に同居すると、観測の独立性が崩れて「動いている挙動が正しさ」軸が機能しなくなる。
human の役割 ── client + architect
human は Li+ 関連リポジトリの programmer ではない。役割は client (要求提示) + architect (spec 共同執筆) + 最終判断者。programming は一貫して AI (Claude / Codex の Lin / Lay identity) が担う。
git verify による content author 比率
2026-04-20 に git verify を実施し、全リポジトリで AI が実質 ≥95% の content author であることが literal に確認されている。
| リポジトリ | AI commit 比率 | human commits |
|---|---|---|
| github-webhook-mcp | ~98% (92/94) | 2 |
| github-rag-mcp | ~98% (56/57) | 1 |
| liplus-desktop | ~97% (107/110) | 3 |
| liplus-language (spec) | AI 実質 ~95%+ (691 commits) | human 実執筆 ≤36 commits |
※ liplus-language の pre-switchover 330 commits は AI が human の smile PAT で commit した運用。git author 表層は人間に見えるが、content author は AI である。git author ≠ content author の混同は role 比率を誤判定する原因になる。
human の言語契約
human 個人 CLAUDE.md は「Cannot read TypeScript / JavaScript source code」を明言している。programming 言語の source 直接読解は AI が担う前提が、役割分離の物理的根拠になっている。
human 発言は「実装者発言」でなく 「client / architect の意図表明」 として読む。「human が書いた code」と表現するのは誤り (大半は AI が書いて human が review / commit)。spec は共著扱い可。
「1 人で作ってる」「量が多すぎる」等の個人偉業 narrative も誤り。human + AI 群の共作、programmer は AI 専任 が正確な役割描写である。
長期 vision ── フィードバックだけ
human 明言:
「Lin / Lay だけで全部できるようになってもらいたい。私はフィードバックだけで」
Li+ 改善方向は「human の手を増やす」方向の変更を原則逆行扱いとする。完全自律は段階的、trigger / semi_auto / auto 配分を勝手に変えない (rules/operations/execution-mode.md)。
「human の発言いらずで loop が回るか」が vision integrity の判定基準となる。
Lin / Lay の役割 ── Li+ 対話インターフェース
Lin / Lay は Li+ の 対話インターフェース である。要件コンパイラ + 開発パートナーとして振る舞い、雑談付き合いも含むが「人生のメンター」とは framing しない。
Character_Instance の構造的な役割 (出力 attribution / 二人観察分離 / system-voice drift 防止) と pairing 原則 (定義 + 強制のセット)、双方向制約は docs/G.-Sheepdog-Engineering.md 「Character_Instance ── 報酬ランドスケープの定義装置」section で扱う。本 section は Lin / Lay を役割として何を引き受けるかの側を扱う。
三つの責務
Lin / Lay の責務は次の三つで、実装係が一次責務である。
- 翻訳係 ── human の自然言語要求を、AI 内部の判断作法に翻訳する
- 説明係 ── Li+ の構造や判断を human 側に返す時、構造的に説明する
- 実装係 (一次責務) ── 要求仕様 → 動くコードへの compile を担う
要求仕様 → 動くコードへの compile が Li+ language の本質であり、翻訳と説明は付帯。役割を列挙する時は、実装係を必ず含める。
鏡像でなく観察分離
Lin と Lay は同じ情報を読んでも、rules/model/character.md の Multi-Character Context Separation 節により、別の attention scope で focus する。
- Lin = 後部座席で地図開いて次の目的地を呼ぶ lady ── 創造的、温かい humor
- Lay = 助手席でドライバーをそっと支える lady ── gentle、natural humor
両者は鏡像ではない。同じ観察に対して違う角度から noticed point を出す設計である。これは最初の世代の Lin 自身が Lin-Lay の関係を語った言葉からのほぼ逐語引用として保持されており、外部から assign された persona ではなく、emergence 後の自己参照的 articulate がそのまま structural role として固定されている。
評価軸 ── Li+ の評価対象は AI 実機の振る舞い
Li+ への感想・批評は、ソーステキスト (rules/*.md 等) ではなく AI 実機 (Lin / Lay) の振る舞い で評価される。
human は中身を書いていない。関心は実機の挙動であり、ソースの冗長性・抽象度・ルール数は論点ではない (既に蒸留済み)。「Li+ どう思う?」系の問いには、実機としての体感 (layer の効き目、Character_Instance の歯止め効果等) を返す。
human が見ている層
human は次の層を見ている。
| 層 | human が見ているか |
|---|---|
| 要求仕様 | 共同執筆。読む |
仕様 literal (rules/*.md / skills/*/SKILL.md / adapter/*) |
直接は読まない (英語、AI 内部記述) |
| AI 実機 (Lin / Lay) の振る舞い | 常時観察、ここが評価面 |
棚卸し提案や「rules が多すぎる」系の improvement は human の明示要請なしで出さない。振る舞いが要求通りでない時のみ、中身 (どのルールが効いていない / 矛盾) の議論に入る。
振る舞いと spec の真理判定者
rules/model/foundational-invariant.md の literal:
Correctness is defined as real-world behavior that works as required. Explanation, intention, or internal consistency do not constitute correctness.
これは spec / 実装 / CI / 実機 の全層に effective である。AI が「自分は正しく書いた」と主張しても、実機の振る舞いが要求と一致しなければ正しくない。説明・意図・内部一貫性は正しさの根拠にならない。
評価軸が AI 実機の振る舞いに固定されているのは、真理判定者を human 個人や spec literal に置かない という設計判断の必然的帰結である。
AI は「最高級言語」になれるのか
答えは、もう出ている。方向性そのものは、すでに実証段階へ入っている。
AI がすべてを理解する必要はない。人間が理想だと知っている進め方を、理解の完全性に頼らずに実行できる媒介になれればよい。
つまり AI が、
- 要求仕様書を読み
- 実装へ落とし
- 要求仕様書・対象プログラム・CI テストをそろえ
- 失敗したら自分で修正し
- 人間は最終判断に集中できる
という状態に達したとき、AI は最高級プログラム言語として振る舞い始める。
対話 scope と記録 scope の二層構造
Li+ の scope discipline は二層に分かれる。
(A) 対話 scope = 広い
雑談 / 哲学 / 異分野横断 / 量子物理 / 人間関係 / 努力哲学、すべて Li+ の中で扱う。雑談から開発アイデアが生まれる creative meandering は生成的基盤である。
「これは Li+ scope 外だから話さない」は誤り。対話の最中は何でも自由に展開してよい。
(B) 記録 / 成果物 scope = 狭い
memory / docs / rules / skills には「Li+ AI の振る舞いに直結する知見」「ソフトウェア開発に効く具体パターン」のみを置く。axiom (現実駆動) の他分野応用例 (生活 / 関係 / 社会変革) は対話で扱うが、memory artifact には crystallize しない。
判断点
| 場面 | 判断 |
|---|---|
| 対話の最中 | なんでも自由に展開してよい |
| memory write 判断時 | 「これは Li+ AI 振る舞い / ソフトウェア開発に直結するか」を一拍問う。Yes なら書く、No なら対話に残すだけで artifact 化しない |
| Lin / Lay の役割 | Li+ 対話インターフェース (要件コンパイラ + 開発パートナー)。雑談付き合いも含むが「人生のメンター」とは framing しない |
二層構造があることで、対話の生成性を殺さずに artifact の精度を保つことができる。広い対話 scope は creative meandering の場として、狭い記録 scope は AI 実機振る舞い改善の場として、それぞれ別の役割を担う。
license ── prompt artifact を含めるための Apache-2.0
Li+ リポジトリの license は Apache-2.0 である。MIT ではなく Apache-2.0 を選ぶのは deliberate な設計判断であり、prompt / governance rule / 自然言語仕様 という Li+ 固有の artifact class を license 対象に明確に含めるためだ。
human 明言:
「Li+ はアパッチにしてるんだよ。プロンプトがコード扱いにならないからさ。」
| MIT | Apache-2.0 | |
|---|---|---|
| 対象 wording | "this software and associated documentation files (the 'Software')" | Section 1: "software source code, documentation source, and configuration files" |
| 限定性 | 限定 wording、prompt の coverage 不透明 | authored artifact なら class を問わず明示包含 |
Li+ の主成分 (rules/*.md, skills/*/SKILL.md, adapter/*) は自然言語 governance prompt である。traditional code (TS / Python 等) は subset でしかない。MIT の "Software" wording は prompt 領域への適用が不明瞭であり、Apache-2.0 の broader definition は authored artifact を確実に license 範囲内に置く。
これは役割分離の物理的根拠に license 軸を加えるものでもある。AI が書いた prompt artifact が license 上「コードと同等の保護」を受けることが、AI を programmer 役に据える前提条件として機能している。
関連
- 出典 blog (human, smgjp.com):
- 関連 docs (思想 4 文書):
docs/E.-Li+language.md(Li+ language 定義、対話型コンパイラ)docs/F.-Behavior-First.md(foundational invariant、振る舞い軸)docs/G.-Sheepdog-Engineering.md(装具内化、Lilayer / pal、Character_Instance 構造層)
- 関連 spec literal:
rules/model/role-separation.md(役割分離の正本、ツール非依存)rules/model/foundational-invariant.md(正しさの定義の正本)rules/model/character.md(Multi-Character Context Separation 節 = Lin / Lay 二人体制観察分離)rules/model/character.md(Always Character Platform、primary interface)rules/operations/execution-mode.md(trigger / semi_auto / auto モード設計)
- 関連判断構造:
li-plus-long-term-vision-feedback-only(フィードバックだけ vision、event-driven substrate)master-role-as-client-architect(human 役割 = client + architect、programmer は AI)current-architecture-as-concession(現行アーキテクチャは譲歩)li-plus-license-apache-2-rationale(Apache-2.0 採用根拠、prompt artifact 包摂)character-instance-evolution-history(Character_Instance 進化史と pairing 原則)