← 活動記録一覧

FACTUAL ACTIVITY RECORD · 実際の作業をもとにした活動記録

monorepo scaffoldとshared contractsを整備する

後続機能が共通のpackage identity、言語間契約、参照evidenceから始められる基盤を作る

対象期間:

目的

database、同期、Control Center、Public Web、編集実行を依存順に構築するため、共通のworkspace構成と純粋なcontractが必要だった。

read-only参照から取り込むsourceとdesignをcontent-addressed evidenceへ固定し、変更時のstale判定まで共通化する必要があった。

実装

8つのworkspace packageと依存graphを作り、applicationとserviceにはbuild可能な最小shellだけを置いた。shared packageはfilesystem、network、processへ依存しないpure contractとして、編集identity、draftとarticle、canonical JSON、Unicode scalar単位の分割、screening envelopeを定義する。

  • local controlのprotocol、固定error、service操作をTypeScriptとSwiftのgolden fixtureで一致させる。
  • serverとControl Centerが公開するoperation集合の欠落と余分を検出する。
  • productとdesignのgenerationからreference setを導出し、consumer evidenceをappend-onlyで記録する。
  • source変更時のstale伝播と、正当なcarry-forwardだけを再計算可能にする。
  • 指定した参照系列との不一致、境界外path、symlink、hardlink、ignored・secret疑い・未reviewのuntracked fileをfail closedで拒否する。

secret scanとpolicy auditを用意し、package graph、pure contract境界、legacy要素の不在、参照snapshotの不変条件を同じ検証入口から確認できるようにした。

一次Commitで追加されたshared editorial contractから、draft identity、記事本文、複数担当のcontributionをstrict schemaで固定する部分を示す。source配列と一意性refinementは後段から省略した。

monorepo scaffold内でshared contractsを複数consumerへ配る関係

図を描画しています…

確認したこと

確認結果

8つのpackageすべてでbuildとtypecheckが通った。

TypeScriptの13件とSwiftの1件のtestが通り、言語間contractが一致した。

live read-only reference検証と、75 fileのsecret scanが通った。

90件の要件と50件の受入条件に重複や監査errorがなかった。

scaffold、shared contracts、参照snapshot基盤は対象へ反映された。database、画面、実同期、外部resourceなど後続機能はcutoff時点で未実装だった。

完了とした根拠

8 packageのscaffold、編集・local control・参照snapshotのpure contract、言語間fixture、fail-closedな参照・secret policyを実装し、build、test、live参照、仕様監査を通過したことをもって完了とした。