@@ -142,6 +142,115 @@ class ProvisionalDigestFile(TypedDict):
142142| ` DigestTimesData ` | ` Dict[str, DigestTimeData] ` のエイリアス |
143143| ` ProvisionalDigestEntry ` | Provisional Digestの各エントリ |
144144
145+ ### 主要TypedDictスキーマ
146+
147+ JSONファイル構造を理解するためのスキーマ定義です(TypeScript形式で表現、` ? ` はオプショナル)。
148+
149+ #### ConfigData(config.json全体構造)
150+
151+ ``` typescript
152+ interface ConfigData {
153+ base_dir? : string ; // plugin_rootからの相対パス
154+ paths? : {
155+ loops_dir? : string ; // Loopファイル配置先
156+ digests_dir? : string ; // Digest出力先
157+ essences_dir? : string ; // GrandDigest配置先
158+ identity_file_path? : string | null ; // 外部Identity.mdパス
159+ };
160+ levels? : {
161+ weekly_threshold? : number ; // デフォルト: 5
162+ monthly_threshold? : number ; // デフォルト: 5
163+ quarterly_threshold? : number ; // デフォルト: 3
164+ annual_threshold? : number ; // デフォルト: 4
165+ triennial_threshold? : number ; // デフォルト: 3
166+ decadal_threshold? : number ; // デフォルト: 3
167+ multi_decadal_threshold? : number ; // デフォルト: 3
168+ centurial_threshold? : number ; // デフォルト: 4
169+ };
170+ }
171+ ```
172+
173+ #### ShadowDigestData(ShadowGrandDigest.txt全体構造)
174+
175+ ``` typescript
176+ interface ShadowDigestData {
177+ metadata: {
178+ version: string ; // "1.0"
179+ last_updated: string ; // ISO 8601形式
180+ digest_level? : string ;
181+ digest_number? : string ;
182+ };
183+ latest_digests: {
184+ [level : string ]: { // "weekly", "monthly" など
185+ overall_digest? : {
186+ timestamp? : string ;
187+ source_files? : string [];
188+ digest_type? : string ;
189+ keywords? : string [];
190+ abstract? : string ;
191+ impression? : string ;
192+ } | null ;
193+ individual_digests? : IndividualDigestData [];
194+ source_files? : string [];
195+ };
196+ };
197+ }
198+ ```
199+
200+ #### GrandDigestData(GrandDigest.txt全体構造)
201+
202+ ``` typescript
203+ interface GrandDigestData {
204+ metadata: {
205+ version: string ; // "1.0"
206+ last_updated: string ; // ISO 8601形式
207+ };
208+ major_digests: {
209+ [level : string ]: { // "weekly", "monthly" など
210+ overall_digest? : OverallDigestData | null ;
211+ };
212+ };
213+ }
214+ ```
215+
216+ #### RegularDigestData(確定済みDigestファイル)
217+
218+ ``` typescript
219+ interface RegularDigestData {
220+ metadata: {
221+ version: string ;
222+ last_updated: string ;
223+ digest_level: string ; // "weekly", "monthly" など
224+ digest_number: string ; // "W0001", "M001" など
225+ source_count? : number ;
226+ };
227+ overall_digest: {
228+ name? : string ; // タイトル
229+ timestamp: string ;
230+ source_files: string [];
231+ digest_type: string ;
232+ keywords: string [];
233+ abstract: string ; // 最大2400文字
234+ impression: string ; // 最大800文字
235+ };
236+ individual_digests: IndividualDigestData [];
237+ }
238+ ```
239+
240+ #### IndividualDigestData(個別ダイジェスト要素)
241+
242+ ``` typescript
243+ interface IndividualDigestData {
244+ source_file: string ; // "L00001_タイトル.txt"
245+ digest_type: string ; // "洞察", "問題解決" など
246+ keywords: string []; // 最大5個
247+ abstract: string ; // 最大1200文字
248+ impression: string ; // 最大400文字
249+ }
250+ ```
251+
252+ > 📖 完全な型定義は [ scripts/domain/types.py] ( ../../../scripts/domain/types.py ) を参照
253+
145254---
146255
147256## 関数(domain/file_naming.py)
0 commit comments