Skip to content

feat(tutorial): blockBasics 第1章 4 deck(ネコからにげるゲーム冒頭)(#957)#970

Open
smalruby3-editor-bot[bot] wants to merge 9 commits into
developfrom
topic/autopilot-957
Open

feat(tutorial): blockBasics 第1章 4 deck(ネコからにげるゲーム冒頭)(#957)#970
smalruby3-editor-bot[bot] wants to merge 9 commits into
developfrom
topic/autopilot-957

Conversation

@smalruby3-editor-bot

Copy link
Copy Markdown

Summary

書籍『小学生から楽しむ きらきらRubyプログラミング』第1章「ネコからにげるゲーム」の抜粋プロモとして、blockBasics カテゴリに 4 deck を追加します(チュートリアル拡充 Phase 3 / EPIC #680 の第1章)。#956 で用意した book-promo 基盤・block 軸タクソノミー、#962 で確定した書誌情報・出典スニペットの上に実装しています。

Changes Made

  • categories/block-series.jsx(stub → 実装)に 4 deck:
    • block-basics-lv0 — 完成プログラムを「コード挿入」で動かす体験
    • block-basics-lv2 — 同じゲームをブロックで手組み
    • block-basics-lv3 — 同じゲームを Ruby で書く(setup: {tab:'ruby', rubyMode:'ruby'}
    • block-basics-advanced — 【発展】完成デモを動かして見せるだけ(Lv0 相当)
  • 各 deck は book-promo.jsxfeat(tutorial): Block 軸の共通基盤整備(2 カテゴリ taxonomy + 書籍プロモ共通要素 + locale) #956)の共通ファクトリで 冒頭に書誌 step / 末尾に「続きは書籍で」+ 購入リンク step を持つ。発展 deck は bookAdvancedClosingStep
  • 完成プログラム(when_flag_clicked / loop / point_towards("_mouse_") / move / if touching?("_mouse_") / say)は docs/tutorial/book-kirakira-ruby-source.md 第1章に準拠。
  • locale 3 ファイル: block-series.locale.jsja / jaHira / en に per-deck 文字列を追加(jajaHira は対で同数)。カテゴリ見出し gui.library.blockBasicsfeat(tutorial): Block 軸の共通基盤整備(2 カテゴリ taxonomy + 書籍プロモ共通要素 + locale) #956 で library.jsx に定義済み。
  • step 画像 20 枚 + サムネイル 4 枚ja-steps.js / en-steps.js に登録。

⚠️ 画像はプレースホルダ

step 画像・サムネイルは 配色で識別可能な単色プレースホルダです。チュートリアルの本番スクリーンショット取得は .claude/rules/scratch-gui/tutorial.md の通り headful な dev server でのキャプチャが必要で、headless worker では代替できないため、本番画像への差し替えは headful セッションでのフォローが必要です(DoD headful 引き継ぎ相当)。ファイル名は本番差し替え時にそのまま使える命名にしています。

Test Coverage / Verification

  • npm run lint(scratch-gui, --max-warnings 0)緑(eslint + prettier)
  • npm run build:dev 成功(deck 定義・画像 import が webpack で解決)
  • tools/autopilot/bin/pw-check(headless)で 4 deck すべてが起動・カード描画を確認。?tutorial=blockBasicsLv0 で book-promo 冒頭 step の書誌情報が正しく補間されることを確認。
    • 注: startTutorial step 以降の進行はスタートボタン起動が必要(全 deck 共通の設計)。

Docs

  • docs/tutorial/progress.md の Phase 3 進捗を更新。

Related Issues

Closes #957 / Part of #680

書籍「きらきらRuby」第1章の抜粋プロモとして blockBasics カテゴリに 4 deck を追加:

- block-basics-lv0(コード挿入体験)/ lv2(ブロック手組み)/ lv3(Ruby, setup ruby)

- block-basics-advanced(Lv0 のみ・完成デモ)

各 deck は book-promo.jsx の共通ファクトリで冒頭に書誌 step・末尾に購入リンク step を持つ。

locale は block-series.locale.js の ja/jaHira/en に追加、step 画像 20 枚 + サムネイル 4 枚を登録。

step 画像はプレースホルダ(本番スクリーンショットは headful キャプチャ待ち)。

完成プログラムは docs/tutorial/book-kirakira-ruby-source.md 第1章 に準拠。

Closes #957

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@smalruby3-editor-bot smalruby3-editor-bot Bot added the 🤖 autopilot autopilot が処理対象にした Issue/PR(daemon が付与) label Jul 11, 2026
@smalruby3-editor-bot

smalruby3-editor-bot Bot commented Jul 11, 2026

Copy link
Copy Markdown
Author

🤖 autopilot status

field value
Status Review
AI Status
HITL Yes
Size large

Linked issue #957. Maintained by autopilot (single writer); do not edit.

@smalruby3-editor-bot smalruby3-editor-bot Bot added the 🙋 HITL 人間の対応待ち(Project HITL=Yes の投影) label Jul 11, 2026
@smalruby3-editor-bot smalruby3-editor-bot Bot marked this pull request as ready for review July 11, 2026 00:21
@github-actions

Copy link
Copy Markdown

🚀 Preview deployed: https://smalruby.jp/smalruby3-editor/topic/autopilot-957/

smalruby3-editor-bot Bot and others added 2 commits July 11, 2026 01:07
…sics decks

新規 block-basics 4 deck に直接の単体テストが無かった (ruby-basics-decks.test.js
の先例あり)。deck 配線・ロケール網羅・book-promo の冒頭/末尾 step・コード変換・
step 画像登録を guard するテストを追加する。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@smalruby3-editor-bot

Copy link
Copy Markdown
Author

[Must] 新規 block-basics 4 deck に対する直接の単体テストが無かったruby-basics-decks.test.js という同種の先例(deck 配線・ロケール網羅・コード変換を guard)があるにもかかわらず、本 PR の deck は block-series-foundation.test.js#956 の基盤 = book-promo helper / カテゴリのみ)でしかカバーされておらず、deck 定義そのもの(step 形状・ロケール id の欠落・code スニペットの変換可否・step 画像キーの登録漏れ)が退行検知の穴になっていた。

対応済み: test/unit/lib/libraries/decks/block-series-decks.test.js を追加(ruby-basics-decks.test.js に倣う)。4 deck の category/urlId/step 数、冒頭=書誌 step・末尾=購入リンク(externalUrl) step、全 message id が ja/ja-Hira/en で解決すること、全 step 画像キーが ja-steps/en-steps に登録済みであること、code スニペット(Lv0/Lv3/発展)がエラーなくブロック変換されること、Lv2 は code-insert step を持たないこと、Lv3 の setup: {tab:'ruby', rubyMode:'ruby'} を検証。24 ケース pass / npm run lint 緑。

@smalruby3-editor-bot

Copy link
Copy Markdown
Author

[FYI] step 画像 20 枚・サムネイル 4 枚は配色識別のみのプレースホルダで、PR 本文でも明記のとおり本番スクリーンショットは headful セッションでの差し替えが必要(.claude/rules/scratch-gui/tutorial.md のキャプチャ手順)。ファイル名は本番差し替え時にそのまま使える命名になっているためコード変更は不要だが、この PR をもって第1章 deck が「完成」ではなく、公開前に headful での画像差し替えフォローが残っている点を人間レビューで認識してほしい(DoD の headful 引き継ぎ相当)。書誌情報(book-promo.jsxBOOK)も publisher/isbn が空・title/url がプレースホルダのままだが、これは #956/#962 の範疇で本 PR の責務外。

@smalruby3-editor-bot

Copy link
Copy Markdown
Author

🤖 敵対的レビュー完了。指摘 2 件(Must 1 / Question 0 / FYI 1)。Must は修正済み(テスト追加)。正確性(setup が deck-setup.js で消費・code スニペットの allowedBlocks / point_towards("_mouse_") 変換・externalUrl/startTutorial/nameMessageId の消費)、ロケール(ja/ja-Hira/en=各25キーで対整合)、prettier ホワイトリスト、画像登録の網羅は確認済み。

headful Playwright MCP(ホスト Chrome)で正しい step 画像をキャプチャし、worker が置いた
プレースホルダ(空 PNG)を全 20 枚 + thumbnail 4 枚差し替えた。

- ブロック図(Lv0挿入 / Lv2 の3段階組み立て / 発展挿入): Ruby→Blocks 変換後に
  「命令ブロックを画像として保存」で取得
- Ruby エディタ(Lv3 挿入 / Lv3 変更=say行ハイライト / ルビータブ): エディタ要素スクショ
- intro / run / 書籍 opening・closing: ステージ(ネコのゲーム)スクショ
- thumbnail 4 枚(Lv0/Lv2/Lv3/EX ラベル付き)

あわせて book-promo.jsx の BOOK 定数を確定書誌に更新(#962):
『小学生から楽しむ きらきらRubyプログラミング』/ 高尾宏治・藤村健吾 / 日経BP /
ISBN 978-4-8222-8639-2 / 日経BP 購入リンク。opening/closing に実書誌が表示される。

deck 単体テスト(block-series-decks / foundation)32件 pass、prettier OK、
tutorial deep-link で第1章カードが実書誌・実画像で表示されることを確認。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
takaokouji

This comment was marked as duplicate.

@takaokouji takaokouji left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI failed, please fix it.
and 最新の修正を取り込んで

@takaokouji takaokouji removed the 🙋 HITL 人間の対応待ち(Project HITL=Yes の投影) label Jul 12, 2026
smalruby3-editor-bot Bot and others added 2 commits July 12, 2026 05:12
)

The tutorial-categories-refactor guard (issue #932) asserted block-series was
an empty stub with only book-promo locale strings. Phase 3 第1章 (#957)
populated block-series with the four blockBasics decks and their per-deck howto
strings, making those assertions stale and failing unit-test-gui in CI.

Update the guard to the new reality: index.jsx keeps the original deck order and
appends the four blockBasics decks; block-series holds exactly those decks while
dncl remains an empty stub; the block-series locale carries both the book-promo
foundation and the blockBasics howtos.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@smalruby3-editor-bot

Copy link
Copy Markdown
Author

🤖 レビュー対応まとめ(指摘 2 件: 対応 1 / 対応済み確認 1)

① CI failed, please fix it修正しました
unit-test-gui の失敗は tutorial-categories-refactor.test.js(issue #932 の分割ガード)が原因でした。このテストは block-series を「空スタブ(book-promo ロケールのみ)」と仮定していましたが、本 PR (#957) が block-series に blockBasics 4 deck と per-deck howto 文字列を実装したため、次の 3 アサーションが stale になり失敗していました:

  • index.jsx exposes the same deck ids...(deck 一覧に 4 deck が増えた)
  • block-series and dncl are empty stub categories...(block-series はもう空でない)
  • block-series locale holds only the book-promo foundation...(block-basics howtos が追加された)

このガードを新しい実態に更新しました(d7668c9):

  • index.jsx は従来の deck 順を保ちつつ blockBasics 4 deck を末尾に追加する
  • block-series はその 4 deck をちょうど持ち、dncl は引き続き空スタブ
  • block-series ロケールは book-promo 基盤 + blockBasics howtos の両方を持つ

新規 deck 自体の退行検知は #956block-series-decks.test.js(bot が review 時に追加済み)が担保しています。ローカルで deck 系 4 スイート 70 ケース pass / npm run lint--max-warnings 0)緑を確認。

② 最新の修正を取り込んで対応済み
develop の最新は既にマージ済み(merge commit a5e80a0、現在 develop から 0 commit behind)です。

再度レビュー・マージ判断をお願いします 🙏

@smalruby3-editor-bot smalruby3-editor-bot Bot added the 🙋 HITL 人間の対応待ち(Project HITL=Yes の投影) label Jul 12, 2026
@smalruby3-editor-bot

Copy link
Copy Markdown
Author

🤖 レビュー対応まとめ(指摘 2 件: 対応 2 / 返信 0 / 対応不要 0)— CI グリーン確認済み

① CI failed, please fix it → 修正済み・CI 実行で確認
unit-test-gui の失敗原因(#932 分割ガード tutorial-categories-refactor.test.js の stale アサーション)は d7668c9 で解消済みです。今回、現 HEAD f08ab894b に対する CI 実行が 全 9 ジョブ pass で完了したことを確認しました(unit-test-gui を含む lint / unit / integration / build-and-deploy すべて緑)。ローカルでも該当 2 スイート 31 ケース pass を再確認しています。

② 最新の修正を取り込んで → 対応済み
origin/develop の最新をマージ済みで(merge commit f08ab894b)、現在 develop から 0 commit behind です。

このラン自体はコード変更を伴わず(既に対応済みの状態を検証しただけ)新規 push はありません。再度レビュー・マージ判断をお願いします 🙏

@smalruby3-editor-bot

Copy link
Copy Markdown
Author

🤖 レビュー対応まとめ(指摘 2 件: 対応 0 / 返信 0 / 対応不要 2)— 現 HEAD で CI グリーン再確認

前回の CHANGES_REQUESTED(CI failed, please fix it / 最新の修正を取り込んで)は、いずれも既に対応済みであることを 現在の HEAD cd3a6aeb9b に対して再検証しました。本ランではコード変更・新規 push はありません。

① CI failed, please fix it → グリーン確認済み
unit-test-gui 失敗原因(#932 分割ガード tutorial-categories-refactor.test.js の stale アサーション)は d7668c9 で解消済みです。現 HEAD cd3a6aeb9b(develop 最新取り込み後)に対する CI が 全 9 ジョブ pass で完了しました(lint / unit-test-gui / unit-test-vm / integration ×4 / build-and-deploy / commitlint)。ローカルでも該当 3 スイート 39 ケース pass を再確認しています。

② 最新の修正を取り込んで → 対応済み
origin/develop を取り込み済みで、現在 develop から 0 commit behind です。

コード側の対応は完了しています。CHANGES_REQUESTED レビューが残っているためマージが BLOCKED になっています。再レビュー・マージ判断をお願いします 🙏

@smalruby3-editor-bot

Copy link
Copy Markdown
Author

🤖 レビュー対応まとめ — コード側は完了・唯一の残ブロッカーはレビュー dismiss

前回の CHANGES_REQUESTED(CI failed, please fix it / 最新の修正を取り込んで)は、現在の最新 HEAD 38a129d385(develop を再度取り込んだ後)で解消済みです。本ランでのコード変更・新規 push はありません。

  • CI failed → グリーン : 現 HEAD 38a129d385 に対する CI が 全 9 ジョブ pass(lint / unit-test-gui / unit-test-vm / integration ×4 / build-and-deploy / commitlint)。
  • 最新を取り込んで → 対応済み : origin/develop から 0 commit behind

残っているブロッカーは takaokouji さんの CHANGES_REQUESTED レビューのみです(mergeStateStatus: BLOCKED / reviewDecision: CHANGES_REQUESTED)。bot はこのレビューを dismiss できないため、マージには レビューの更新(approve)または dismiss をお願いします 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🤖 autopilot autopilot が処理対象にした Issue/PR(daemon が付与) 🙋 HITL 人間の対応待ち(Project HITL=Yes の投影)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(tutorial): blockBasics 第1章 4 deck(ネコからにげるゲーム冒頭)

1 participant