図解60型が1枚のキャンバスに乗った日。ここから27系と33系のどちらを残すかを選ぶ

開発mdx-playground

朝いちばんに、前日の積み残しを出させた。 口では「撤去してください」と言っていたらしく、「抽出」と読み替えられていた。

本線は図解60型カタログの統一キャンバス移行だった。 60型のうち26型が終わっていて、残り34型。 それとは別に、前日の成果であるカテゴリBとCの15型、それに Before 凍結の仕組みが、未コミットのまま作業ツリーに残っていた。

まずコミット、そこで学習ゲートに止められる

先に前日ぶんを片付ける。 機能単位で8本に分けさせた。

1本目でコミットが止まった。 学習ゲートの pre-commit が効いている。 受領証はステージ差分の SHA に紐づくので、8本なら8回受ける必要がある。 コードの実体がある2本だけクイズを受け、生成物とドキュメントは理由を残して飛ばす。 そういう分け方で始めた。

1本目のクイズが立ち上がったところで気が変わって、全部スキップに切り替えた。 8本とも、理由を残したうえで通した。 残したのはローカル設定と別案件の xlsx で、これは意図どおり手元に置いたままにしてある。

カテゴリD 8型、「横は12カラムから取る」が1型も通らない

指示は1行で足りた。「Cと同じ判断でDを進めて」。 統一するのはキャンバス1024×576と5点骨格、外マージン24、ボディ160..488 だけで、図の中の組み立て、配色、文字サイズは原典のまま持ち上げる。

カテゴリDはベン図、散布図、放射図、相関図、マトリクス、四象限で、縦が効く型ばかりだった。 これまでの手順にある「横は12カラムから取る」が、8型のうち1つも通らない。 そこで、横の刻みではなく図が持っている単位(半径、角度、値の写像、象限)を先に決めさせた。 あとはボディの高さ328に入るかどうかで、倍率だけを判断させている。

33系のベン図は、共通半径110と一辺120の正三角形という原典の寸法のままで、縦の占有が324になる。 328にほぼちょうど収まるので、倍率1のまま平行移動しただけで済んだ。 放射図と相関図も同じで、動かしたのは位置だけ。

27系のベン図はそうはいかず、半径と中心間距離をそろって0.75倍にした。 円は等方にしか動かせないので、横に伸ばして版面を埋めるという逃げ道がない。 左右に余白が残るが、版面が余っているからといって広げることはしない。 広げれば円が歪むか、カードの幅とコネクタの角度が変わる。

寸法以外に手を入れたのは1箇所だけだった。 円が0.75倍で縮んでも文字は原典どおり14pxなので、集合ラベルの左端が葉の外へ8pxほど出る。 各ローブの中央に寄せさせて収めた。

検証は、版面とボディの内側にはみ出し0であることを境界チェックで確かめ、テストが232ファイル19,843件パス。 Chrome で d/1 から d/8 まで目視し、390幅のエミュレーションで横スクロールが出ないところまで見た。

「これ、進んでますか?」

途中で Connection refused が出て、画面が止まった。 同じことを2回聞いた。

実際には進んでいて、コミット8本は入り、D 8型も手元で終わっていた。 ただしこのとき「未コミットで手元にある」と報告されたのが誤りで、あとから11:55のコミット3本を指して訂正が入った。 手元の状態は人づてに聞くより git log を見たほうが速い、というだけの話ではある。

残り26型は7体並列、分ける基準はファイル

Dの出来が悪くなかったので、残りを最後のデータ基盤まで一気に通すことにした。 サブエージェントを使うように付け足した。

残っていたのはE〜Iの26型。 担当カテゴリではなく、成果物の持ち方で切らせた。

  • 27系の11型は1型が1ファイルなので衝突しない。ファイルの書き換えまで任せて4体
  • 33系の15型は1つの Vue ファイルに同居しているので編集は任せられない。単位の決定と置き換えブロックの作成だけ任せて3体

共有ファイルは全部こちら側で当てさせた。 33系のブロックと意味グリッドの差し込みは、書き出させた md からコードフェンスを取り出して機械的に置き換えるスクリプトにした。 26型ぶんを手で貼ると、どこかで取り違える。

ブリーフィングは7体に同じものを読ませた。 禁止事項は抽象的な原則ではなく、これまで自分が実際に差し戻したものを症状の形で書かせてある。 作り替えない、版面が余っていても広げない、情報を間引かない、文字サイズは原典のまま。

途中でテストが2ファイル落ちた。 図の下に出す注記のうち、フッター1行の916pxに収まらないものが5本あった。 フレーム側は折り返さない作りなので、これはテストが仕事をしている。 注記を短く書き直して通した。

最終的に全60型ではみ出し0、232ファイル19,895件パス。 サブエージェントがリポジトリ直下に書き出したスクリーンショット2件は作業の残骸なので消した。

60型すべてが、同じキャンバスと同じ骨格に乗った。

「21件」と言われても、どのページの話か分からない

そのあと進捗を実態に合わせさせた。 拡大モーダルが全型で動くかを実機で確かめた。 33系も27系も、拡大からEsc復帰、スクロールロック解除まで通る。 主計画書の未了は25件から21件になった。

その21件が何を指しているのか分からなかったので、どこの話か聞いた。 数字だけ出されても、次に何を触ればいいかが決まらない。

通し番号を実データから引かせたら、21件のうち4件は採らなかった方式の検証項目だった。 取り消し線を引いただけで残していたので、スキャンが未了として数えていた。 追跡から外して実質17件、うち6件は自分が決めないと進まないもの。

選別の手順は決まっていなかった

午後は選別に入った。 どの型を残すかを決める工程になる。

やり方を思い出せなかったので、手順が定義されているか確認させた。 手順書は無く、決まっていたのは3つだけだった。

  • 指し方は通し番号 #1〜#60 で口頭
  • 書き込み先は catalog.tsMERGE_PLAN
  • 書く範囲は決まったものだけで、空欄は「まだ決めていない」であって「両方残す」ではない

判断の単位は「両方にある組だけ」にした。 そもそも出発点の指示が「あえて合わせる必要はない、ツリー図が2つあってもいい」だったので、60型を1つずつ通す形にはならない。 画面には7組と出るが、#16 フライホイールと #22 ループは型IDが違うためペアとして拾われていない。 名前は同じで、円環と中心ハブという骨格も共通なので、8組目として数えることにした。

配色の判断は後ろに送った。 材料に #12 フロー図を1枚開いて、塗り替える前と後を見比べた。 Before は濃紺のベタ塗りに白抜き文字で補足が箱の外、After は白地に罫線と黒文字、番号01〜04が付いて補足は箱の中、最後だけコーラル。 塗り替えは配色と文字サイズだけでなく組み立ても変えていた。 選別で残さないと決まった型は、戻す作業そのものが消える。 だから選別が先になる。

ツリーは27系。決め手は左の軸

1組目のツリーを見比べた。 27系を採った。

決め手は、左端に第0層(ルート)、第1層、第2層という軸が立っていることだった。 ノードを数えなくても、構造が何段あるかを図の外側から読める。 33系のほうは本社から営業、開発、管理へ下ろす部門ツリーで、層のラベルを持たない。

採るほうにも1点だけ直させた。 ノードの中に「ルート」「分類」というバッジが入っていて、右肩の凡例と同じことを言っている。 チャートの中に書く必要がない。

  • バッジ4つ(recttext で8要素)を削除
  • 跡地が空くので文字を垂直方向に置き直し。ルートの「スキル」は1行なのでノードの中央へ、第1層の3ノードは第2層と同じ「ノード上端+24/+36」に揃う位置へ
  • 残したのは左の層ラベル、右肩の凡例、コーラルの焦点、フッターの注記

採らなかったほうも消さない

不採用にした型は、カタログから削除しない。 判断の履歴を残すためのアーカイブとして、#1 の位置に並べたままにする。 詳細ページには「選別の結果」として不採用と表示される。

MERGE_PLAN は当初、どちらへ寄せる予定かを書くだけの場所で、値は文字列1つだった。 決着した型が出たので、状態を持てるようにさせた。

const MERGE_PLAN: Record<string, { status?: 'adopted' | 'rejected'; note: string }>

status を持つ型は詳細ページのラベルが「選別の結果」になり、持たない型は従来どおり「選別の見通し」のまま出る。 触ったファイルは catalog.ts と詳細ページの2つだけ。

判断の過程は全部メモに残す運用にした。 決めた日、決め手、そのとき何を動かしたかを1組ずつ書く台帳を新しく作らせている。 決め手は要約させず、自分が口で言ったままの形で置いてある。 あとで「なぜ27系にしたんだっけ」となったときに戻れる場所が要る。

明日

  • #3/#4 ピラミッドから再開する
  • 残りは #5/#6 組織図、#16/#22 ループ、#23/#24 ガント、#27/#28 ベン図、#29/#30 散布図、#35/#36 レーダーの7組
  • 選別ぶんの変更(SVG、catalog.ts、詳細ページ、メモ2本)はまだ未コミット

学びとして残しておく。

  • 数だけの進捗は使えない。「未了21件」では動けず、通し番号とページに紐づけて初めて判断できる。実際そのうち4件は数え方の問題だった
  • 並列に配るときの境目は、担当範囲ではなくファイル。1型が1ファイルなら書き換えまで任せられて、1ファイルに15型が同居しているなら設計までしか任せられない
  • 落ちたテストが仕様を守っていることがある。916pxのフッター注記はその例で、直すのはテストではなく注記のほう