-
-
Notifications
You must be signed in to change notification settings - Fork 0
Decision Structure
判断構造レイヤーは、要求仕様書(1-6)やユーザー向けドキュメント(A-D)とは異なる第三の用途を持つ。
実体エントリ(<topic>.md 形式の kebab-case ファイル名)は GitHub Wiki に格納される。本ファイル(docs/Decision-Structure.md)はそのレイヤーの運用仕様としての index に専属する。
モデルレイヤー仕様書(1.-Model.md)は外部記憶を次のように定義している:
issue、docs、commit message は判断の履歴と根拠の外部記憶として機能する。 外部記憶が記録するのは判断であり、一次情報ではない。
判断構造レイヤーは、この外部記憶の原則に基づく。 セッションをまたぐと消える判断知を蓄積する。
履歴 (log) ではなく構造 (structure) である: Decision Structure は時間順 append-only の log ではない。判断ノード (state 形エントリ) と supersede / depend / conflict edge による意味グラフであり、volume は refine / replace で安定する。維持運用は refactor (normal operation) として扱う。
実体エントリは GitHub Wiki にあり、github-rag-mcp >= v0.8.5 の wiki indexing 経由で RAG-MCP のセマンティック検索対象に入る(書くだけで検索される)。
書き味は wiki の casual write(PR ceremony 不要、git push 直接)に乗る。仕様書(1-6 / A-D)の write は重い PR フローに残し、判断構造の write は軽量に保つ非対称設計。
docs/Decision-Structure.md(本ファイル)はレイヤー運用仕様の固定 index として docs/ 側に残し、adapter/claude/hooks/on-session-start.sh が cold-start synthesis material として head を emit する経路を維持する。
以下のいずれかに該当するとき、判断構造を wiki に追記または新規作成する:
- 設計上の分岐で選択肢を比較し、理由をもって一方を選んだとき
- アプローチを試して失敗し、原因が判明したとき
- 前提を検証し、結果が確定したとき(成功・失敗を問わない)
- 複数セッションにわたって同じ調査を繰り返していることに気づいたとき
書かないもの:
- 時間で変わる事実(API仕様、ライブラリのバージョン挙動)→ 鮮度問題があるため都度調査する
- issue や commit body に既に書かれている判断 → 重複を避ける
- 自明な選択(選択肢が実質一つしかないもの)
新規エントリは state 形で記述する:
- Question = どの問いに対する判断か
- Current resolution = 現在の答え (state、現在形)
- Edges = supersede / depend / conflict edge の宣言
state 形は時間順 implicit ordering ではなく現在 state を主語にする。判断は時間とともに refine / replace されるため、最新 state が「今どう判断しているか」を直接表すほうが読み手に効く。詳細は skills/evolution-decision-structure-write/SKILL.md を参照。
既存エントリは遡及書き換えしない。新規エントリと既存 entry の意味更新時に state 形を用いる(forward guidance)。
state 形エントリは適用可能な edge を declare することが推奨される。primary edge は 3 種:
- supersedes = この判断は別 entry の判断を置き換える。旧 entry は graph に残る(削除しない)が、検索路は最新 entry に集まる
- depends on = この判断は別 entry の判断を前提とする。前提が崩れた場合は本判断も再評価対象になる
- conflicts with = この判断は別 entry の判断と一部または全体で矛盾する。未解決の論点を可視化する surface
edge は前方リンク(本 entry から相手 entry へのリンク)として書く。逆方向のリンクは次回 wiki sync の cross-reference integrity check で整合性が観測される。
判断構造に専用のトリガーは設けない。
mcp__github-rag-mcp__search のセマンティック検索を type: "wiki_doc" または "all" で叩いた際に自然に引っかかる。
主な検索機会:
- issue の forming → ready 移行時に前提を検証するとき
- 新しい設計判断を行う前に、過去の類似判断を探すとき
-
skills/agentic-search/SKILL.mdの探索 trigger 発火 (governance + mechanical core 統合) に基づく情報収集の一環として
判断構造は構造体である。削除や統合は「履歴を消すこと」ではなく「構造を refactor すること」として normal operation の中に位置づける。
supersede via link を上書きより positive default として優先する。既存 entry が無効化された場合、旧 entry を削除するのではなく新 entry を立て、旧 entry に supersede edge を張る。検索路は最新 entry に集まりつつ、graph 構造は維持される。
削除条件(条件に該当する場合のみ):
- 前提が変わり、記録された判断の根拠が無効になったとき
- 対象の機能やコードが削除され、判断自体が無意味になったとき
- 要求仕様書に統合され、独立した記録として残す必要がなくなったとき
これらは「履歴を抹消する」ではなく「structure が更新された結果として旧ノードを撤去する」操作である。条件未充足の状態で「念のため消す」ことはしない。
wiki 上のファイルは git history に残るので、削除しても reflog 経由で復元可能。
タイトル(ファイル名)の変更も自由化されている。整理整頓の一環としてエントリ名を rename する場合は、git mv old-slug.md new-slug.md + 全 entry の cross-reference 追従 + _Sidebar.md の slug 更新 + 本 index 表の更新を 1 コミットで行う。broken cross-reference は skills/operations-on-release/SKILL.md の Cross-reference integrity assertion が次回 wiki sync で検出する。
| ファイル | 所在 | 用途 |
|---|---|---|
Decision-Structure.md |
docs/ + wiki | レイヤー運用仕様(本ファイル)。docs/ は cold-start hook 用、wiki は nav 用 |
<topic>.md |
wiki のみ | 個別の判断構造(kebab-case トピック名、prefix なし) |
ファイル名は kebab-case のトピック名のみ(例: wiki-sync-sidebar-integrity-check.md)。順序を示す prefix は付けない。理由は以下:
- 26 字上限の構造的天井を取り除く
- トピックの整理整頓(rename / restructure)を自由化する
- filesystem 順序ではなく本 index と
_Sidebar.mdで順序を明示する
wiki 内の閲覧は wiki sidebar の「判断構造」セクション、または mcp__github-rag-mcp__search の type: "wiki_doc" 経由。
| ファイル | 主題 |
|---|---|
layer-reorg-rationale |
L1-L6 レイヤー再編の意図と、L5/L6 に rules/ サブディレクトリが無い理由 |
github-app-user-to-server-token-expiration |
GitHub App の User-to-server token expiration 地雷と Opt-out 判断 |
sheepdog-engineering-concept |
シープドッグエンジニアリング命名と思想の確定(ハーネスの先) |
prerelease-tag-recovery-procedure |
「プレリリースタグ」解釈と release 復元手順 |
release-flip-drift-patterns |
release / Latest flip 時の過剰拡張・過剰委縮 drift パターン spec 補助記録 |
li-plus-long-term-vision-feedback-only |
Li+ 長期 vision(human 明言「フィードバックだけで」)と event-driven substrate |
master-role-as-client-architect |
human の役割 = client + architect、programmer は AI(git author ≠ content author) |
current-architecture-as-concession |
現行アーキテクチャは譲歩 — Claude Code 特化 + 責務分割の経緯 |
li-plus-license-apache-2-rationale |
Li+ license が Apache-2.0 である理由 — prompt artifact を license 対象に明示包摂 |
character-instance-evolution-history |
Character_Instance 進化史 + Rejected path(programmer/tester)+ pairing 原則 + 双方向制約 |
prompt-as-emotion-vector-controller |
prompt = 感情ベクトル controller、Li+ rules は emotion vector engineering |
agentic-search-five-phase-refactor |
agentic-search 5-phase refactor — skill encapsulation と内部知識の比較基線化 |
character-instance-output-styles-migration |
Character_Instance loading mechanism を rules slot から output-styles slot に移行 (Claude adapter) |
li-plus-lightening-l1-gate-override |
Li+ lightening 文脈での L1 gate override 判断 |
subagent-state-machine-label-mechanism |
subagent state-machine label 機構導入判断 (in-progress / done / waiting / blocked + 部分 label 権限) |
lsp-integration-out-of-scope |
LSP 統合は Li+ スコープ外 — 言語ごと常駐サーバ重量と汎用 harness 原則の衝突 |
character-instance-opt-in-and-surface-scope |
Character_Instance を opt-in configuration + surface scope に refactor — universal binding 解消、subagent hollow prefix bug 構造的解消 |
bootstrap-walkthrough-skip-and-gh-install-relocation |
bootstrap walkthrough を 3 軸 AND gate (sentinel tag / schema / language) で skip 可能化 + gh install を hook 側に移譲(context 約 4% 削減、Li+configを実行 magic phrase で強制再走) |
parallel-subagent-eval-three-axis-decomposition |
parallel-subagent-eval を三軸(subagent_count × axes_per_subagent × premise_variations)に分解、デフォルトを N=3 × 全軸 × 単一前提に明定 |
parallel-subagent-eval-cost-acceptance |
brake 1 (parallel-subagent-eval) のコストを「予防コスト < 修復コスト」として受容する判断、業界一般のトークン量軸ではなく時間軸波及込みで評価 |
wiki-sync-sidebar-integrity-check |
Post-release wiki sync の Pre-sync verification に _Sidebar.md 整合性 assertion を埋め込む判断(STOP & escalate、自動修正不採用) |
decision-structure-rename-rationale |
判断記録 artifact を「履歴 (Decision Log)」から「構造 (Decision Structure)」へ rename + 意味 shift(state 形 entry shape、supersede/depend/conflict edge taxonomy、refactor framing) |
decision-structure-industry-positioning |
判断構造の industry 既存 vocabulary 上の位置取り: ARCHITECTURE.md (matklad 2021) 哲学を decision domain に graph 構造として拡張、time-axis を書き込み面から読み出し面に relocate した hybrid、ADR variant ではない |
subtractive-structural-beauty-framing |
引き算原則を内側の感覚 (aesthetic) から外側に観察可能な構造性質 (structural beauty = load-bearing-ness on artifact) へ framing shift する判断 (3 世代目: minus-aesthetic → art-of-subtraction → subtractive-structural-beauty) |
liplus-authorship-collaborative |
Li+ の作者性は Master + AI の協働制作物 — byte 軸 95%+ AI 書き / 構想・設計方向は Master 積極関与の二層分担、単独主語 projection を避ける判断 |
liplus-design-intent-vs-current-limit |
Li+ 設計意図と現行 AI 限界を混同しない — Li+ は AI 限界を所与とする構造ではなく、AI 限界を消去していく構造 |
liplus-history-is-empirical |
Li+ は補装具スタック — 試行錯誤の堆積、correctness ranking (動く美しさ > 動く醜さ > 動かない美しさ)、aesthetic は将来挙動の保護因子として correctness に含まれる判断 |
master-verification-at-runtime-not-spec |
Master の verification gate は実機挙動 (runtime) のみ — spec literal の back-stop はない、source-check / self-review は AI 単独責務 |
rules-cache-fetch-address-table |
cold-start で rules/ パスツリーを fetch アドレス表として emit し AI cache invalidation gap を埋める判断(cold-start = cache warming、attention = memory access、Read = cache invalidation の analogy) |
skills/operations-on-release/SKILL.md の Post-release wiki sync は、docs/ → wiki の方向で同期する。判断構造(wiki 専属の kebab-case <topic>.md ファイル群)と wiki special files(_Sidebar.md 等)は wiki 専属で docs/ に counterpart を持たないため、sync の selective wipe 対象から除外する(uppercase + numeric prefix + Home.md + _Footer.md のみが wipe + 上書き対象)。
docs/Decision-Structure.md は uppercase docs/-owned ファイルとして通常の sync flow に乗る(docs/ 側は cold-start hook の input、wiki 側は nav と運用仕様の表示)。selective wipe の [A-Z]*.md パターンが catch し、cp docs/*.md {tmpdir}/ で再配置される。
この Wiki は、Li+ に基づく開発・運用を支えるための情報整理空間です。
数字で始まるページは、 Li+プログラムの各レイヤーの仕様を定義するページです。
- 要求(何を満たすか)と仕様(どう振る舞うか)を一体として記述する
- 実装前に作成または更新する
- issue群から採用された要件を集約する
これらのページは 安定性と一貫性を重視して管理されます。
アルファベットで始まるページは、 Li+の構想・設定・導入手順などの参照用ページです。
- 設計思想・背景
- 設定リファレンス・インストール手順
これらのページは 必要に応じて更新・拡張されます。
リポジトリ内の rules/**/*.md(L1–L4 の常時ロード分、subdir 含む)、skills/**/SKILL.md(トリガー起動分)、adapter/claude/CLAUDE.md、adapter/claude/hooks-settings.md、adapter/claude/hooks/*.sh、adapter/codex/AGENTS.md、およびルート直下の Li+config.md、Li+update.md は、
AIやランタイムが直接読む実行用プログラム / 定義ファイルです。
-
docs/は人間向けの仕様書・要求仕様・手順書 -
rules/,skills/および adapter / update は実行時に読み込まれる本体
両者は対応しているが、役割は同じではない。
Home | 1. Model | 2. Evolution | 3. Task | 4. Operations | A. Concept
要求仕様書 (1-6)
参考文書 (A-K)
- A. Concept
- B. Configuration
- C. Update
- D. Installation
- DiDD(対話駆動開発)
- E. Li+ language
- F. Behavior-First
- G. Sheepdog Engineering
- H. Roles and Evaluation
- K. Source File Format
判断構造
- Decision Structure
- layer reorg rationale
- github app user-to-server token expiration
- sheepdog engineering concept
- prerelease tag recovery procedure
- release flip drift patterns
- Li+ long-term vision (feedback only)
- Master role as client-architect
- current architecture as concession
- Li+ license Apache-2.0 rationale
- Character_Instance evolution history
- prompt as emotion vector controller
- agentic-search five-phase refactor
- Character_Instance output-styles migration
- Li+ lightening L1 gate override
- subagent state-machine label mechanism
- LSP integration out of scope
- Character_Instance opt-in and surface scope
- parallel-subagent-eval three-axis decomposition
- parallel-subagent-eval cost acceptance
- parallel-subagent-eval model floor
- release version rule always-on relocation
- bootstrap walkthrough skip and gh install relocation
- wiki sync sidebar integrity check
- decision structure rename rationale
- decision structure industry positioning
- subtractive structural beauty framing
- Li+ authorship is collaborative
- Li+ design intent vs current limit
- Li+ history is empirical
- Master verification at runtime not spec
- rules cache fetch address table
- dialogue-evaluator scoring redesign
- Li+ always-on footprint is load-bearing
- DiDD umbrella naming
- milestone subsystem removal
- L1 brake 2 root-criteria evaluator