Goal
smalruby は upstream scratch-editor v13.7.2 + scratch-blocks v2.1.19(modern Blockly) を基盤とする。
しかし Issue #270 / commit 84f87e9152("restore upstream source files to pre-spork state (scratch-blocks v1.3.0)")が
22 ソースファイルを pre-spork(classic Blockly v1.3.0)状態へ巻き戻し、その後の v13.7.2 マージで
scratch-blocks を v2.1.19 へ再アップグレードした際にこれらを modern 状態へ再移行しなかった。
結果、modern Blockly エンジン (v2.1.19) の上で pre-spork のソースが band-aid で糊付けされて動いている
状態になっている。拡張機能の HAT/EVENT ブロックが帽子型に描画されない不具合(旧 PR #748)はこの取り残しの一症状。
当初は 監査専任 Issue として起票したが、実作業の中で監査 → 段階的な再整合の実装・検証まで実施した(下記「実装状況」「当初計画外の追加作業」参照)。
経緯(git 履歴・.upstream-merge-history.json から確定)
| 日付 |
出来事 |
| 2026-03-08 |
upstream マージで scratch-blocks v2.0.0(spork)導入 → 「定義」ブロック引数ドラッグが壊れる |
| 2026-03-11 |
Issue #270 / 84f87e9152 で v1.3.0 へダウングレードし 22 ソースファイルを pre-spork 状態へ巻き戻し |
| 2026-05-03 |
v13.7.2 マージ(352a334b)で scratch-blocks を v2.1.19 へ再アップグレード。だが巻き戻した 22 ファイルは modern へ再移行されず、band-aid で糊付け |
実装状況(topic ブランチ topic/upstream-realign-v13.7.2 に集約)
| PR |
内容 |
状態 |
| #751 |
Step 1: colour→style / shape_hat / monitor_block / setBlockStyle 復元 + develop-trap ガード + doc 整理 |
✅ topic にマージ |
| #753 |
Step 2: コメントイベント modern 化 + ${block.id}_comment 契約(blocks.js / adapter.js / comment.js / sb3 周辺) |
✅ topic にマージ |
| #754 |
Step 3: band-aid auto-style-patch.js 撤去 |
✅ topic にマージ |
| #756 |
chore: mesh リグレッションスクリプト headless 化 + tools/playwright-verify を rules に明記 |
✅ topic にマージ |
| #755 |
topic → develop(リリース取り込み) |
⏳ オープン・最終マージ待ち |
Implementation Steps(調査フェーズ)
Definition of Done
当初計画外の追加作業(実装中に発生)
監査専任の当初スコープを超えて実施した作業:
残作業(敵対的観点での洗い出し)
Test Plan(実績)
| Type |
実績 |
| unit / integration |
scratch-vm/gui の関連テスト + mesh(unit 391 / integration 34)green。各 PR で CI 9/9 green |
| ブラウザ検証 (Playwright + ホスト Chrome) |
hat/色/monitor/screenshot/palette/zoom/定義モーダル/コメント往復/Ruby コメント/mesh shadow ドロップダウン |
| mesh リグレッション |
tools/playwright-verify/mesh-v2-classroom-binding.mjs 全 PASS |
関連
Goal
smalruby は upstream scratch-editor v13.7.2 + scratch-blocks v2.1.19(modern Blockly) を基盤とする。
しかし Issue #270 / commit
84f87e9152("restore upstream source files to pre-spork state (scratch-blocks v1.3.0)")が22 ソースファイルを pre-spork(classic Blockly v1.3.0)状態へ巻き戻し、その後の v13.7.2 マージで
scratch-blocks を v2.1.19 へ再アップグレードした際にこれらを modern 状態へ再移行しなかった。
結果、modern Blockly エンジン (v2.1.19) の上で pre-spork のソースが band-aid で糊付けされて動いている
状態になっている。拡張機能の HAT/EVENT ブロックが帽子型に描画されない不具合(旧 PR #748)はこの取り残しの一症状。
経緯(git 履歴・
.upstream-merge-history.jsonから確定)84f87e9152で v1.3.0 へダウングレードし 22 ソースファイルを pre-spork 状態へ巻き戻し352a334b)で scratch-blocks を v2.1.19 へ再アップグレード。だが巻き戻した 22 ファイルは modern へ再移行されず、band-aid で糊付け実装状況(topic ブランチ
topic/upstream-realign-v13.7.2に集約)shape_hat/monitor_block/setBlockStyle復元 + develop-trap ガード + doc 整理${block.id}_comment契約(blocks.js / adapter.js / comment.js / sb3 周辺)auto-style-patch.js撤去tools/playwright-verifyを rules に明記Implementation Steps(調査フェーズ)
.claude/rules/upstream-tracking.mdに baseline(v13.7.2 / scratch-blocks v2.1.19)+ develop-trap を恒久ルール化。.upstream-merge-history.jsonのpostMergeReverts・upstream-merge skill・bin/upstream-divergence-auditにも反映auto-style-patch.js・colour 復元・v1 field API・v2-bridge guard 等を列挙し、再整合後の要否を明記Definition of Done
docs/upstream-tracking/ではなく、ユーザー指示により git 管理外notes/upstream-tracking/に退避(一度きりの作業成果物のため)。今後参照する forward-looking 情報のみ.claude/rules/upstream-tracking.mdに残したnotes/配下)— ただし下記は after-state での確認(before ではなく):connect_game・micro:bitwhen ...)が帽子型で描画される(修正後)style名前付きスタイル経由)monitor_block、koshien_mapAllで確認)当初計画外の追加作業(実装中に発生)
監査専任の当初スコープを超えて実施した作業:
bin/upstream-divergence-audit/postMergeReverts/.claude/rules/upstream-tracking.mdに反映)notes/へ、forward-looking を.claude/rulesへ分離auto-style-patch.jsの実削除(当初は「棚卸し」のみの予定。Step 1 の named style 復元で不要化を実証し Step 3 で削除)mesh-v2-classroom-binding.mjs全 pass。スクリプトを headless 対応化、tools/playwright-verifyを rules に明記 = chore(test): headless-capable mesh verify script + document playwright-verify in rules #756)--host 0.0.0.0、--disable-blink-features=AutomationControlled警告をignoreDefaultArgsconfig で除去)— memory に記録残作業(敵対的観点での洗い出し)
make-toolbox-xml.jsカテゴリ名%{BKY_CATEGORY_*}→ScratchMsgs.translate(cosmetic・v2.1.19 で動作はする)runtime.jsのEXTENSION_DATA_LOADING再追加 /BEFORE_STEP(mesh 依存・要マーカー化)の小整合blocks.jsコメントイベント / adapter・sb3・comment の id 契約(fix(scratch-vm): re-align comment handling to upstream v13.7.2 (Step 2, #752) #753)Test Plan(実績)
tools/playwright-verify/mesh-v2-classroom-binding.mjs全 PASS関連
.upstream-merge-history.json(lastMerge: v13.7.2 /352a334b)/.claude/rules/upstream-tracking.md