途中に話を入れたい。時系列管理、死ねる
途中で話を割り込ませたい。
全体の背骨が決まったあと、あれ足りない、これ足りないってなってね。
挿話したくなる。
けど、どのエピソードがどのタイムラインで発生するのか、わからんくなるよね。
そんで、タイトルも変えたい、変えると何の話か分からんくなる。…
ということで、エピソードの時系列タグとユニークIDをITエンジニアらしく設計してみることにした。
ストーリーを紡いでいると、どうしても「あ、この伏線もっと前に撒いておけばよかった!」「ここにエピソードを差し込みたい!」という事態に陥ります。
脳内で時系列管理をしようとしてパンクした結果、たどり着いたのがこの「エンジニア的ファイル管理システム」です。
これを公開するのは、「もし同じように、壮大な物語の管理で迷子になっている書き手さんがいたら、ぜひ使ってみてほしいから」です。
もちろん、単なる「作者のこだわり」として眺めていただいても構いません!
# 仕様書— そのまま保存して使える本文
以下をファイルに保存してください(推奨ファイル名:
`ID命名仕様_ファイル名-TID-EID.md`)。
***
## ID命名仕様(ファイル名 / TID / EID)
### 1. 目的
本仕様は「とある天才の物語」の制作資産(台帳・台本・資料)の管理において、
**エピソード参照のためのID(EID)** と **並び順(時系列)を表すID(TID)** を分離し、
ファイル名のみで「並び」「参照」「識別」を安定させることを目的とする。
***
### 2. 用語
* **TID(Time/Timeline ID)**:並び順(時系列)と章部の位置を示す固定形式ID
* **EID(Episode ID)**:参照・依存関係(伏線、回収、関連)のための短いID
* **タイトル部**:人間が読むための題名/説明(可変)
***
### 3. ファイル名の基本構造(正規形)
**基本形式:**
{TID}__{EID}__{Title}.txt
**例(実例):**
* [C00\_P00\_T0100\_I00\_\_000\_\_襲撃:治安維持部隊動員/協会支援/勝利の傷跡.txt]
* [C00\_P00\_T0200\_I00\_\_001\_\_庇護:李家が入る.txt]
* [C00\_P00\_T0300\_I00\_\_002\_\_誕生:『かわいいね』.txt]
**区切り記号:**
* ブロック区切りは **`__`(アンダースコア2つ)** を用いる
* この区切りは機械処理前提で固定とする
***
### 4. TID仕様(並び順ID)
**形式:**
C{章2桁}_P{部2桁}_T{順序4桁}_I{差込2桁}
**各フィールド:**
* `C{章2桁}`:章番号(2桁)
* 序部:`C00`(実例あり) [\[とある天才の物語_第...EP10概要と台本 \| Txt\]]
* 第一章:`C01`(ツリー内の実例あり)
* `P{部2桁}`:部番号(2桁)
* 序部:`P00`(実例あり) [\[とある天才の物語_第...EP10概要と台本 \| Txt\]]
* 第一部:`P01`、第二部:`P02`、第三部:`P03`(ツリー内の実例あり)
* `T{順序4桁}`:章×部内の並び順キー(原則100刻み運用:0100,0200…)
* `I{差込2桁}`:差し込み(挿入)枝番(通常`00`、差し込み時に`01`…)
**TIDの原則:**
* ソートで並び順が決まるよう、**必ずファイル名先頭**に置く
* 並び替えや挿入が起きた場合、**変更され得るのはTID**(EIDは維持)
***
### 5. EID仕様(参照ID)
**形式:**
* **36進数(`0-9` + `A-Z`)の3桁固定**
* 正規表現:`^[0-9A-Z]{3}$`
**EIDの原則:**
* EIDは **参照用の不変ID**(伏線・依存関係・リンクに使用)
* 一度発行したEIDは、原則として **変更しない**
* どうしても変更が必要な場合は台帳(`eid_ledger.csv`)で追跡し、旧EID→新EIDの対応を残す
***
### 6. EID未確定時のプレースホルダ仕様
EIDが未確定のファイルは以下の形式を許容する:
{TID}__EID___{Title}.txt
* 例:ツリー上で `__EID___` を含むファイル名が運用されている
* 後日、`__EID___` を `__ABC__` 形式(3桁EID)へ置換して確定させる
***
### 7. 変更ルール(いつ何を変えてよいか)
* **タイトル部(Title)**:変更可(編集・改題・統合で変わる)
* **TID**:変更可(並び替え・差し込み・章部再編に伴う)
* **EID**:原則変更不可(参照の安定性のため)
***
### 8. 台帳・状態ファイル(推奨運用)
以下をプロジェクトルート(運用ルート)に置き、スクリプトから参照する:
***
### 9. 互換性(既存資産の扱い)
* 既存ファイルは、可能な限り「正規形」に寄せる
* `__EID___` が残っているファイルは、EID採番後に `__XYZ__` へ置換して正規形へ移行する
***
### 10. 例(命名例まとめ)
* 正規形(EID確定)
* [C00\_P00\_T0100\_I00\_\_000\_\_襲撃:治安維持部隊動員/協会支援/勝利の傷跡.txt]
* [C00\_P00\_T0200\_I00\_\_001\_\_庇護:李家が入る.txt]
* [C00\_P00\_T0300\_I00\_\_002\_\_誕生:『かわいいね』.txt]
* プレースホルダ(EID未確定)
* `C00_P00_T0100_I00__EID___...` など(ツリー上の実例)
***
## 付録:推奨ファイル種別(任意)
タイトル部末尾に用途を入れる場合:
* `__台帳` / `__台本` / `__資料` など
※これは運用任意(仕様必須ではない)
***
以上
***
# そのまま保存するための PowerShell(ファイル作成コマンド)
あなたが指定した保存先:`\00_ADMIN\00_提示運用規約` の下に置く想定なので、以下を **プロジェクトルート**で実行してください。
(フォルダが無ければ作成します)
```powershell
$dir = ".\00_ADMIN\00_提示運用規約"
New-Item -ItemType Directory -Force -Path $dir | Out-Null
$path = Join-Path $dir "ID命名仕様_ファイル名-TID-EID.md"
@'
(ここに上の仕様書本文をそのまま貼り付け)
'@ | Set-Content -Encoding UTF8 $path
Write-Host "written: $path"
```
***




