﻿<!--
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Bone Flow Official Document Header
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Document ID : 000-Development-Order
File        : 000-Development-Order.md
Version     : 1.0.3
Status      : Release Ready
Standard    : Bone Flow Documentation Standard v1.0
Description : Bone Flow の正式な開発順序、各レイヤーの責務、依存方向および作成対象を定義する。

Specification Version : 1.0.0
Specification Status  : Frozen
Project               : System R / Bone Flow
Last Update           : 2026-07-25
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-->

# Bone Flow Development Order

**Document ID** : 000-Development-Order  
**Project** : System R / Bone Flow  
**Version** : 1.0.0  
**Status** : Frozen  
**Standard** : Bone Flow Development Standard v1.0  
**Last Update** : 2026-07-25  

---

## 1. 目的

本書は、System R / Bone Flow の正式な開発順序、各レイヤーの責務、
依存方向および作成対象を固定するための開発基準書である。

Bone Flow は、以下の順序で開発する。

```text
1. Core
2. Joint
3. UI
4. Composite
5. Studio
6. Application
```

この順序は依存関係に基づく正式順序であり、変更しない。

---

## 2. 基本構造

```text
Core
    ↓
Joint
    ↓
UI
    ↓
Composite
    ↓
Studio
    ↓
Application
```

下位レイヤーは上位レイヤーを知らない。

```text
Application
    │
Studio
    │
Composite
    │
UI
    │
Joint
    │
Core
```

上位レイヤーのみが下位レイヤーを利用する。

---

## 3. 共通設計原則

### 3.1 Core

Core は情報を Bone として保持する。

Bone の最小構造は次の3項目とする。

```text
id
type
value
```

Core は TYPE の意味を判断しない。  
Core は表示方法を持たない。  
Core は接続方法を持たない。

### 3.2 Joint

Joint の本命は接続である。

```text
Source ───────── Target
```

正常状態は `CONNECTED` であり、断線はイレギュラー状態として扱う。

ただし、断線・未解決・不一致は重要な診断対象であるため、
Source・Target・互換性・接続状態を独立して記録する。

複数の事実を1つの曖昧なエラーへまとめない。

例：

```text
Source Field Exists     : true
Target Field Exists     : false
Connection Resolved     : false
Joint State             : TARGET_MISSING
```

これを単に `Connection Error` の1件へまとめてはならない。

Joint Line は判定処理ではない。  
Joint が保持する状態を視覚化する UI である。

### 3.3 UI

UI は TYPE を判断し、value を表示または編集する。

UI は Joint を通じてデータを受け取り、変更を伝達する。

### 3.4 Composite

Composite は複数の UI を構成する。

Composite の主な責務は次のとおり。

```text
composition
layout
routing
own configuration
```

Composite は、子 UI が処理すべき TYPE を横取りしない。

### 3.5 Studio

Studio は Core・Joint・UI・Composite を設計、編集、検証、
監視およびプレビューする正式 GUI である。

Studio は Composite の一種として構築する。

### 3.6 Application

Application は Studio と Composite を利用して構築する最上位層である。

---

# Phase 1 — Core

## 4. 目的

情報を Bone へ正規化し、保存・検証・実行状態を管理する。

Core は UI、Joint Line、Renderer、Perspective を持たない。

## 5. 作成対象

### 001 Bone Core

- id / type / value
- Bone 生成
- Bone 複製
- Bone 更新
- Bone 破棄
- Bone 正規化
- Bone シリアライズ
- Bone デシリアライズ

### 002 Bone Type Definition

- TYPE 名定義
- TYPE メタ情報
- Markdown 定義読込
- TYPE 参照
- TYPE 一覧
- TYPE 定義バージョン
- TYPE 廃止情報

Core は TYPE の意味を解釈しない。

### 003 Bone Property Definition

- TYPE ごとの正式フィールド名
- 必須フィールド
- 任意フィールド
- 値型
- 初期値
- 別名
- 廃止フィールド
- 移行情報

### 004 Bone Repository

- Bone 登録
- Bone 取得
- Bone 検索
- Bone 更新
- Bone 削除
- Bone 一覧
- 履歴
- スナップショット

### 005 Bone Validation

- Bone 構造検証
- id 検証
- type 検証
- value 検証
- 必須フィールド検証
- 未定義フィールド検出
- 値型検証
- 廃止フィールド検出
- Validation Result
- Error / Warning / Info
- 事実単位の診断結果

### 006 Bone Runtime

- Bone 実行状態
- ライフサイクル
- 変更通知
- 状態監視
- Runtime Context
- 依存先通知
- 処理履歴
- UI 非依存

---

# Phase 2 — Joint

## 6. 目的

Bone・Field・UI・Composite 間を接続し、
接続状態を監視しながら正常な接続を維持する。

## 7. Joint 正常系

```text
Source Resolve
    ↓
Target Resolve
    ↓
Compatibility Check
    ↓
Connect
    ↓
Watch
    ↓
Maintain Connection
```

## 8. Joint 異常系

```text
CONNECTED
    ↓
Change Detected
    ↓
Re-resolve
    ↓
Recover or Disconnect
```

断線は結果であり、目的ではない。

## 9. 作成対象

### 007 Joint Core

- Joint ID
- Source
- Target
- Direction
- Joint Definition
- Joint 生成
- Joint 登録
- Joint 解除
- Joint 破棄

### 008 Joint Endpoint

- Source Endpoint
- Target Endpoint
- Bone Reference
- Field Reference
- UI Reference
- Composite Reference
- Endpoint ID
- Endpoint Metadata

### 009 Joint Field Resolver

- Source Field 解決
- Target Field 解決
- 実在フィールド検出
- 未指定フィールド判定
- 実在しないフィールド検出
- Source / Target 独立評価
- 名前変更追跡
- 解決結果保持

### 010 Joint Compatibility

- TYPE 互換性
- 値型互換性
- 方向互換性
- 読取専用判定
- 書込可能判定
- 変換可能性
- Converter 適用可否
- Compatibility Result

### 011 Joint State

標準状態：

- IDLE
- CONNECTING
- WAITING_TARGET
- RESOLVING
- CONNECTED
- DISCONNECTED
- SOURCE_MISSING
- TARGET_MISSING
- TYPE_MISMATCH
- VALUE_TYPE_MISMATCH
- DISABLED
- MANUAL_DISCONNECT
- RECOVERING
- ERROR

### 012 Joint Watcher

- Source 変更監視
- Target 変更監視
- Bone 変更監視
- Field 追加監視
- Field 削除監視
- Field 名変更監視
- TYPE 変更監視
- 値型変更監視
- UI 生成監視
- UI 破棄監視
- Composite 生成監視
- Composite 破棄監視

### 013 Joint Propagation

- Source から Target への値伝達
- 一方向伝達
- 双方向伝達
- 差分伝達
- 初期値伝達
- 伝達順序
- 無限ループ防止
- 重複伝達防止
- 伝達履歴
- Propagation Event

### 014 Joint Recovery

- 断線検知
- 再解決
- 再接続
- 一時切断
- 接続維持
- 復旧待機
- 復旧回数
- 復旧履歴
- 自動復旧
- 手動復旧

### 015 Joint Diagnostic

独立して保持する診断項目：

- Source 指定有無
- Source 存在結果
- Source Field 存在結果
- Target 指定有無
- Target 存在結果
- Target Field 存在結果
- TYPE 互換性
- 値型互換性
- 接続可能性
- 接続結果
- 現在状態
- 断線理由
- 復旧可否

診断結果を1件の抽象的なエラーに潰さない。

### 016 Joint Line

- 正常接続線
- 接続開始線
- 接続先待機線
- Target 未指定表現
- Target 不存在表現
- Source 不存在表現
- 型不一致表現
- 断線表現
- 再接続中表現
- 方向矢印
- 線種
- 線幅
- Joint State 連動
- Diagnostic 連動

Joint Line は Joint 判定後に作成する。

---

# Phase 3 — UI

## 10. 目的

TYPE を判断し、value の表示・入力・編集・操作を提供する。

ここから表示層になる。

---

## 11. Primitive UI

### 017 Text
### 018 Icon
### 019 Image
### 020 Label
### 021 Line
### 022 Rectangle
### 023 Circle
### 024 Polygon
### 025 Path
### 026 Shape

---

## 12. Input UI

### 027 TextBox
### 028 TextArea
### 029 NumberBox
### 030 DateBox
### 031 TimeBox
### 032 DateTimeBox
### 033 Checkbox
### 034 Radio
### 035 Switch
### 036 Select
### 037 ComboBox
### 038 Slider
### 039 FilePicker
### 040 ColorPicker
### 041 IconPicker

---

## 13. Action UI

### 042 Button
### 043 Link
### 044 CommandButton
### 045 ToggleButton
### 046 SplitButton

---

## 14. Display UI

### 047 List
### 048 Table
### 049 Grid
### 050 Tree
### 051 Card
### 052 DetailView
### 053 PropertyView
### 054 Timeline
### 055 CalendarView
### 056 Chart
### 057 Progress
### 058 Status

---

## 15. Container UI

### 059 Panel
### 060 Group
### 061 FieldSet
### 062 Stack
### 063 Flex
### 064 GridLayout
### 065 ScrollView
### 066 Splitter
### 067 Tabs
### 068 Accordion

---

## 16. Navigation UI

### 069 Menu
### 070 Toolbar
### 071 ContextMenu
### 072 Breadcrumb
### 073 Pagination
### 074 Sidebar
### 075 NavigationTree

---

## 17. Presentation UI

### 076 Tooltip
### 077 Callout
### 078 Popover
### 079 Popup
### 080 Notification
### 081 Dialog
### 082 Window
### 083 Drawer
### 084 DetailPanel

同じ Bone を、Perspective によって異なる表示形式で提示できる。

---

## 18. Graphic UI

### 085 Canvas
### 086 SVGSurface
### 087 Layer
### 088 GraphicGroup
### 089 Marker
### 090 Anchor
### 091 Port
### 092 Connector
### 093 Edge
### 094 Arrow
### 095 LeaderLine

---

## 19. Editing UI

### 096 Selection
### 097 Drag
### 098 Resize
### 099 Rotate
### 100 Handle
### 101 Snap
### 102 Guide
### 103 Ruler
### 104 GridGuide
### 105 MiniMap
### 106 Zoom
### 107 Pan

---

## 20. Diagram UI

### 108 StartNode
### 109 EndNode
### 110 ProcessNode
### 111 DecisionNode
### 112 DatabaseNode
### 113 DocumentNode
### 114 CommentNode
### 115 JunctionNode

Flowchart 全体は Composite とし、
ノードや接続要素は再利用可能な UI とする。

---

# Phase 4 — Composite

## 21. 目的

複数 UI を構成・配置・ルーティングし、1つの業務機能を構築する。

Composite は子 UI に Bone を受け渡す。

## 22. Composite 共通責務

- composition
- layout
- child routing
- Joint routing
- width
- height
- columns
- rows
- visibleRows
- spacing
- header
- footer
- scroll
- responsive
- Composite 固有設定

## 23. 作成対象

### 116 Form Composite
### 117 Voucher Composite
### 118 Calendar Composite
### 119 Journal Composite
### 120 Attendance Composite
### 121 Finance Composite
### 122 Recurring Expense Composite
### 123 Customer Composite
### 124 Inventory Composite
### 125 Workflow Composite
### 126 Flowchart Composite
### 127 Diagram Composite
### 128 Dashboard Composite
### 129 File Manager Composite
### 130 Property Editor Composite

---

# Phase 5 — Studio

## 24. 目的

Core・Joint・UI・Composite の設計、編集、検証、監視、
プレビューおよび正式データ出力を行う。

## 25. 作成対象

### 131 Bone Studio
### 132 Type Studio
### 133 Property Studio
### 134 Validation Studio
### 135 Joint Studio
### 136 Joint Monitor
### 137 Joint Diagnostic Studio
### 138 UI Catalog Studio
### 139 UI Property Studio
### 140 Composite Studio
### 141 Flow Studio
### 142 Perspective Studio
### 143 Renderer Studio
### 144 Diagram Studio
### 145 Application Studio

---

# Phase 6 — Application

## 26. 目的

Studio と Composite を利用して正式アプリケーションを構築する。

## 27. 作成対象

### 146 BoneFlow Demo
### 147 SRApplication
### 148 Calendar Application
### 149 Journal Application
### 150 Attendance Application
### 151 Finance Application
### 152 Voucher Application
### 153 Workflow Application
### 154 Diagram Application

---

## 28. 正式開発ルール

- Core 完了前に Joint を正式実装しない
- Joint 完了前に UI を正式実装しない
- UI 完了前に Composite を正式実装しない
- Composite 完了前に Studio を正式実装しない
- Studio 完了前に Application を正式実装しない
- 下位レイヤーは上位レイヤーへ依存しない
- UI 固有処理を Core へ入れない
- Joint の判定処理を Joint Line へ入れない
- Composite が子 UI の TYPE 処理を横取りしない
- Source と Target の事実を独立して診断する
- 正常接続を本命とし、断線理由を正確に保持する
- 未指定・不存在・不一致・手動解除を区別する
- 省略されたエラー名だけで診断を終わらせない

---

## 29. 正式採用

本書を System R / Bone Flow の正式開発順序として採用する。

```text
Version : 1.0.0
Status  : Frozen
```
