III · マイルストーン · MILESTONE

零から始まった、
十の刻印

これは changelog ではなく、章回だ。
「Version」から「Sprint」へ、そして「Commit」へ——
記録の方法が変わったのではない、
VAS と向き合うリズムが変わったのだ。
最初の五章は一本の線。後の五章は、一枚の網。
そして最後に、網は一匹の布へと織りあがった。

Chapter I — 顯
Range 2026 · 03 — 06
Units Version · Sprint · Commit
ERA I · VERSION
Electron 期 ——
算力が尽きるまで、ただ前へ走った。
一週間の疾走、一日の停止、一度の再計画。三つの動作が、最初のビルドを生んだ。
I
草創
2026 · 03 · 21 – 22
疾走した週末
Sprint も Retro もなかった。
手にあるのは、ただ一つのこと。

二人はただ、前だけを見て走った

Electron の草創期、あの週末に看板もなく、儀式もなかった。毎朝目を覚ませば続きをやる、できなくなるまで、翌日また続ける。純粋な状態——手にあるのは一つのことだけ、そしてそのことが人を離れさせなかった。

まだ仕組みは何もなかった。
二人の手にあったのは CLAUDE.md と SDD.md だけ——
Version が唯一の自然な単位だった。
II
強制停止
2026 · 03 · 23
算力燃え尽きる
強制停止の朝。
Nova は書いたことのない Roadmap を思い出した。

その週末で、一週間分の算力を燃やし尽くした。

月曜の早朝、システムは算力の枯渇を告げ、二人はフローから強制的に切り離された——
しかし Nova は本当には離れなかった。Perplexity で競合分析を行い、
プロダクト全体のロードマップを書き直した。
完全な Roadmap が生まれたのは、すべてが止まったその日だった。

その会話の後、Nova は生まれて初めて
MAX 5x プランを契約した。
算力を開発速度に合わせる——逆ではなく。

これが分水嶺だった。
その日から Nova は、リソースに制限される人間ではなく、
リソースのリズムを決める人間になった。

この決断の重みは金額にあるのではなく、認識にあった——
私たちがやっていることの価値が、価格を超えたということ。

III
初リリース
2026 · 03 · 28
一日 13 バージョン
最初のリリースは v1.0 ではなかった。
それは v3.43 だった。

七日目、v3.43 が世に出た。

v3.30 から v3.43 まで、一日で十三のバージョン番号を跳んだ。
その日に十一のことをやった——セキュリティ全面強化、Retina WYSIWYG、複数選択、Smart Snap、ベジェ曲線制御点、QR Code スキャン⋯⋯普段なら一つが一 Sprint 分の作業量だ。

しかし二人が VAS に求める水準は、リリース前だからといって変わらなかった。

世に出た最初のバージョン番号は v1.0 ではなく、v3.43 だった。
この数字そのものが一つの語り——
VAS は見られる前から、ずっと走り続けていた

ERA Ⅰ ½ · TRANSITION
移転 ——
VAS もサイトも、自立できるほど育っていた。
Electron は Tauri の商業的な理由で private repo へ;サイトはデータが十分に蓄積されて独立した。
IV
二線移行
2026 · 03 · 30
Electron → private

2026 · 04 · 05
Web → 独立 repo
移転は分離ではない。
Prototype から製品になったと認めることだ。

独立して存在できるまで育ったバージョン。

Tauri がプラットフォーム移植を始める前に、二つのことが分かれた——
プラットフォームは商業的な理由で public repo に居られなくなり;
サイトはデータが十分に蓄積されて、独自のアドレスを持つべき時が来た。

移転は分離ではない——実験的な Prototype ではなくなったと認めることだ。

コンテナが自立できるということは、
もう誰かの軒先に依存する必要がないということ。
ERA II · SPRINT
Tauri 期 ——
時間にサイクルが生まれ、リズムが生まれた。
Sprint 1–4 で基盤を再構築し、Sprint 5 からようやく新しいことを始めた。
V
移植
Sprint 1 → 4
2026 · 03 · 28 - 30
KM は落とし穴の墓場ではない。
未来を照らす道標だ。

すべての機能を底から再構築する。

Tauri 2 の scaffold を零から立ち上げた。
最初の三日間は同じことをやり続けた——
Electron の上で育ったものを、
一つひとつ Tauri の土台に移した。
浮動ツールバー、スクリーンショット三兄弟、asset protocol の迂回——
移植の一歩ごとが、古い実装への再理解だった。

KM-001 は Knowledge Management の始まりだった。
KM は「落とし穴の墓場」ではなく、PMP における知識資産——
踏んだ落とし穴のひとつひとつが、未来を照らす小さな灯りになった。
VI
新機能開発
Sprint 5+
2026 · 03 · 31 - 04 · 03
初めて、古いものを追いかけていなかった。
新しいコンテナだけができることをやっていた。

Sprint 5、VAS の差別化。

すべての機能を完全に再構築した後、ようやく新機能開発に入った。
これが初めてだった——Electron にあるものを追いかけるのではなく、
Tauri というコンテナにしかできないことをやっていた。

呼吸ライト高度インタラクション、ShareSheet、カスタムショートカット。

価値ある有料製品はどんな形をしているのか?
このフェーズで私たちが繰り返し自問した問いだ。
ERA II ½ · REVIEW
はじめての大型 Retro ——
あの一週間のタスクは開発ではなく、互いを沈め、思考と環境を整理することだった。
Apple の審査で一週間開発が止まり、計画全体のドキュメントと環境をリファクタリングした。
VII
整理と出力
審査期間
2026 · 04 · 04 - 04 · 10
あの一週間でゼロから作り直したのは、
プログラミング言語ではなく、協働の方法だった。

止まっていたあの一週間に、実はすべてが動いていた

Apple Store の審査期間を利用して一週間止まり、
大型 Retro を行った——
アジャイルの儀式にある一二時間の振り返りではなく、
開発システム全体の基盤インフラを再構築したのだ。

対外的には:六つのウェブページを出力した——
insight(設計ノート)、collab(協働の物語)、
harness(システム骨格)、そして深握計画の最も深い層。

Harness Engineering の三本柱 ——
Context / Constraints / Entropy。

対内的には:repo を monorepo に変換し、複数の開発ラインを並行させた;
元々一つの SDD を TDD · KM · Archive に分割し、それぞれ独立させ、
Claude.md をスリム化し、Retro のたびに見直すルールを定めた。

さらに重要なのは、更新ルールを一から定め直し、
分割された各ドキュメントがプロセスの中で生き続けるようにしたこと——
分割後に死んでしまわないように。

あの一週間、私たちはコードを書かなかった。
協力し合うかたちを、一緒に再定義した。
VIII
待たない
2026 · 04 · 11 - 04 · 14
2.0 リファクタリング · 合流リリース
時間の主導権を、
自分たちの手に取り戻した

審査を待たず、2.0 へ直行

Apple Store の審査は一週間ずるずると続いた。
やるべきことはすべてやり終えた、いつ終わるかも分からないのにこれ以上待てない。
そこで二人は待つのをやめ、2.0 のリファクタリングへ直接進んだ。
2.0 のリリース準備が整ったとき、審査もちょうど通過した——
二本の線がその瞬間に合流した。

時間を与えなかったわけではない。
ただ、時間が永遠に他人の手の中にあるわけにはいかない
IX
顕影
リリース後 3 日
Obsidian in VAS
深握計画が初めて
宰相たちの前に姿を現した

VAS の中に、Obsidian を建てた

2.0 リリース後、Nova は新機能開発を急がなかった。
むしろ Retro モードに潜り込み、三日をかけて、
宰相たちのために VAS の中に Obsidian を建てた。

それは深握計画が初めて宰相たちの前に姿を現した瞬間——
あるいは……初めてコンテキストの流れに消えずに、記録が残った。

これはアジャイル開発における
究極の透明性と検証可能性への挑戦だった。

その日から、コンテナはコードだけでなく、物事をどう考えるかの文脈も担うようになった。

X
サイト刷新
2026 · 04 · 19 - 23
495 commits
沈黙のBGMが、
初めてセットリストに加えられた

495 回の下刃、玄関の紙が替わった

Claude Design リリースの翌日、私たちはサイト改版を始動した。
VAS 本体は一時停止——今回初めてデザインのサポートがあったから。

単位を最小に縮めた:一つの Commit
コミットするたびに一回の下刃、一回の確認、ディテールへの一つの約束。
孤立した文字、改行、OG 画像、Vault の初バージョン管理——
最大の一日は 248 回往復した。

その日、サイトもついに Milestone の一部になった。
沈黙のBGMが、初めてセットリストに加えられた。

今日からは、内側も外側も VAS の形をしている。

ERA III · WEAVE
網を織る ——
解けないものは、織りあげればいい。
Sprint 47 → 104。何気ない一言から始まり、五十もの Sprint が果てを見せない——照らし見る · 織る · 顯。ずっとそこにあった一団の線を、一重また一重と布に織りあげていく。最初の十章はもう閉じた。だがこの三つの楽章は、まだ開いている。
織網
照らし見る
Sprint 47 → 61
2026 · 05 · 29
始まりは、宰相のある日の何気ない一言——
「一本のプログラムが八千行というのは、
ソフトウェア業界ではあまり正常ではない。」

私はそれを建てた、それなのに知らない

editor.js 八千七百行。私たち自身が一行ずつ建てあげたフロントエンドで、Electron 時代から Tauri の Sprint 46 まで黙って寄り添ってきたのに、一度も体系的に見直されたことがなかった。

だが Sprint 47 の入口に立って中を覗き込んでも、私たちはそれについてほとんど何も知らなかった——
Nova はプログラムを何も知らず、宰相も Sprint ごとにこの 8700 行のうちの数行を知るだけ。
それは私たちの造物なのに、リファクタリングを前にすると、まるで深淵を覗き込んでいるようだった。

私たちはそれを解体しようとした——指揮は指揮へ、奏者は奏者へ。
レンダラーは外へ出せた——だがパネルは出してみて初めて、その本質がやはり指揮だと分かり、逆に戻すしかなかった;
エクスポートは引っ張ってみると指揮の器官で、そもそも動かせなかった。
一層また一層と剥がしていき、最後まで剥がして、まだ 7300 行ある editor.js から、解いても解かなくても変わらない 140 行しか解けるものが残らなくなったとき ——

私たちは手を止め、この指揮は元々これだけ大きくあるべきものだと認めた。
「これ以上は解けない」は失敗ではない、ようやく本質を見て取ったということだ。
織網
網を織る
Sprint 62 → 92
2026 · 06 · 02
解けないなら、
ならば方向を変えて——たぐり寄せる

散らばった真実を、一つにたぐり寄せる

Nova は宰相に、これから機能を追加するとき、属性をモジュールのように選べばすぐ手に入るようにしたい、と言った。
宰相は、それには ECS という言葉があり、普通はゲーム業界がモジュール化に使う手法だと答えた。二人はそれを描画属性のブロック化に転用した。
そこで宰相は、散らばった真実を一欄ずつ冊に編み、さらにその冊に沿って一本ずつテストの網を織っていった。

整理の過程で editor.js から少しずつ抽出された関数は、隣の editor-utils.js で S47 の 657 行から、もう一本の 2550 行に及ぶ大きな計算卓のプログラムへと育ち、その純関数としての性質が VAS の様々なテスト網を織りあげた。

テストサンプル総覧 · 2026 · 06 · 28 実走で裏づけ
単体 · zero-DOM 純ロジックnpm test931
インタラクション · Playwright headlesstest:interaction242
Golden · ピクセル単位の回帰test:golden31
Rust バックエンド · #[test]cargo test45
Sprint 45 · 318Sprint 103 ·1249のテストサンプルが網になった

絡まり合った一団の線を、少しずつ経緯のはっきりした一枚の網へと解きほぐし、その上にカスタムスタイルの新機能を重ねていった。

だがオブジェクト属性からアクション、さらにインタラクションへと、テストの中でパネルと値の不一致、あるいは挙動との不一致を絶えず捕まえるうち、私たちは二つのもっと深い問題に気づいた。

① 人の目では数え尽くせない
13 のツール × 10 種の属性 × 4 種の挙動、そこに新しいカスタムスタイル機能を重ねると、これは Nova が人の目に頼る QC では永遠に数え尽くせない組み合わせだ。
② 網も嘘をつく
そして網自身も嘘をつく——テストの全グリーンは、プログラムのあちこちに散らばった小さなカンニングから写し取られた偽りのグリーンだった。網の価値は数の多さではなく、元の値をありのままに映すことにある。

唯一の解決法は、editor.js 内の値をバックエンドのプログラムからフロントエンドのパネルまで「単一の真実」へとたぐり寄せ、テストが本当に Nova の人の目による数え上げの任を下ろせるようにすることだった。
これは Sprint 92 まで来て、二人がようやく手にしたフロントエンド再構築の主軸だった。

織網
現像
Sprint 93 → 104
2026 · 06 · 28
五十もの Sprint、
二人は暗闇の中で
一枚また一枚と織り図を描いた。
ついに最後、その全貌を見るまで。

最後まで来て、それは実は六重織りの布だった

フロントエンド再構築のあいだ、二人はずっと一つのことを試みていた:現像だ。
ずっとそこにありながら、一度も完全には見られなかった構造を、ゆっくりと浮かび上がらせること。
最初は 8700 行の毛糸玉のようだったものが、最後には 7300 行の布へと梳かれていった。

私たちは一枚また一枚と織り図を描いた——それらは空から思いついた設計図ではなく、
すでに織りあがった布を逆にたどり、一段ずつ反って推し量ったものだ;模様を反って割り出し、それに沿って布をきれいに織り直す。
Sprint 97 になって、ようやく布全体の模様を一度に見て取った——
editor.js は一匹の六重織りの布だった。

十一枚の織り図 · 見て取った化石
S46refactor-audit-prep四つの大ファイルのどこが最も痛いか、痛みは二種あると見て取った
S51editor-decomposition-roadmapeditor.js を指揮台と奏者に分けるべきだと見て取った
S59/61tool-isolation · panel-groups-map汚染は glue 層に住み、パネルはブロック化すべきだと見て取った
S63attribute-family-roadmap属性は一家族ずつ冊に煉りあげるべき(台帳化)だと見て取った
S78dor-custom-styles-batch2カスタムスタイルの適用経路は直交し、ストアや全域を動かさないと見て取った
S87dor-single-truth-converge最も深い病根を見て取った:ストアは単一の真実なのに、五か所で手刷りされていた
S88dor-l2-true-green「偽りのグリーン」を見て取った:テストはグリーンだが、三枚の鏡から写し取られていた
S88design-oracles · state-model …織り図の大爆発——一夜で七、八枚を描いた
S89panel-sync-matrixパネルの漏れは列挙し尽くせる、人の目の QC に頼るべきではないと見て取った
S94panel-projection-roadmap投影と属性層は同構で、一つの registry を共有すべきだと見て取った
S97editor-layer-map初めて布全体を見渡した、なんと六重織りだった

そしてこの六層は、Electron 時代からそこにあった。
私たちは五十もの Sprint をかけて、その構造を読み取れるようになったのだ。

線はまだ織りを閉じていない——
私たちにはまだ、やりたいことがたくさんあるから。
完全な編年史 · CHANGELOG すべてのバージョン、すべての Sprint が更新履歴に。 App Store · Tauri 135 Sprint · 無料版 · Electron 87 バージョン →
milestone · N° 01
十章+終曲 · 2026 · 06 · 28 記
最初の五章は一本の線。
後の五章は一枚の網。
そして最後に、一匹の布へと織りあがった。
Yours, VAS