レッドストーン回路の自動テストが失敗した際の切り分け・局所修正手順。get_blocks, interact_block, place_blocks を使ったデバッグ方法を定義する。
The English summary is being prepared. Showing the original description.
過去の成功知見から抽出したレッドストーン回路設計の普遍トラップ集。回路設計・テストコード記述前に必ず読むこと。フレームワーク/DSLの誤用で試行回数を枯渇させるのを防ぐ。
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
このスキルは、過去の成功・失敗知見(knowledges/ 配下)から抽出した、環境・ツール・DSLに起因する再現性のあるトラップ集です。回路設計・テストコード記述の前に必ず読み、これらのトラップで5回の試行上限を枯渇させないようにしてください。
「フレームワーク/DSLの誤用で試行回数を消費する」のは最も無駄な失敗パターンです。 本質的な回路デバッグに試行を全振りできるよう、以下のトラップを事前に排除してください。
place-blocks のフェーズ配列(list渡し)の取り扱いmc-cli place-blocks にJSONのフェーズ配列([PlaceRequest, PlaceRequest])を渡す場合、JSON配列として正しく渡していないと、Invalid JSON 等のエラーで試行を消費する。
--blocks 引数には単一 PlaceRequest オブジェクト、または PlaceRequest の配列をJSON文字列として渡す。@file.json)を使う場合も、トップレベルが単一オブジェクトまたは配列であることを確認する。PlaceRequest 形式(blocks, attaches, connects, fills 等を持つオブジェクト)であること。// OK: フェーズ配列
[
{ "blocks": [...] },
{ "attaches": [...] }
]
// NG: トップレベルが配列ではない、または要素がPlaceRequest形式でない
{ "blocks": [...] }, { "attaches": [...] }
place-blocks の blocks や attaches の state に powered, lit, power 等の 動的状態 を明示的に書き込むと、Minecraft 側のブロック更新ループが阻害され、リピーターがOFFのままロックされたり、ランプが点灯しなかったりする異常動作を引き起こす。
state には 静的なプロパティのみ を指定する(facing, delay, mode, face 等)。powered, lit, power, extended, enabled 等の動的状態は 絶対に書き込まない。interact-block で操作する(次項参照)。// OK: 静的プロパティのみ
{ "x": 10, "y": 64, "z": 10, "block": "minecraft:repeater", "state": { "delay": "2" } }
// NG: 動的状態を明示
{ "x": 10, "y": 64, "z": 10, "block": "minecraft:repeater", "state": { "delay": "2", "powered": "true" } }
{ "x": 10, "y": 64, "z": 10, "block": "minecraft:redstone_lamp", "state": { "lit": "true" } }
重要: これは正規のプレイでは不可能な操作であり、本サーバー環境でも異常動作を引き起こすことが確認されています。過去の成功知見で一時的に有効に見えたケースもありますが、再現性がなく推奨されません。絶対に実施しないでください。
レッドストーンソースブロック(レバー、RSブロック、トーチ等)を、レッドストーンデバイス(リピーター、コンパレーター等)と 同じTickで配置 すると、ブロック更新がスキップされ、リピーターがOFFのままロックされる(BUD-lock)。
[
{
"blocks": [{ "x": 10, "y": 64, "z": 10, "block": "minecraft:stone" }],
"connects": [{ "src": [10,64,10], "dst": [12,64,10], "component": "minecraft:repeater" }]
},
{
"attaches": [{ "component": "minecraft:lever", "pos": [10,65,10], "base": [10,64,10] }]
}
]
attaches は土台フェーズの後にレバーやボタンを土台ブロックと 同じフェーズ で配置すると、土台がまだ存在しない空中に attaches が置かれ minecraft:air のままになってレバーが設置されない。空中にレバーが浮く想定で設計しても、attaches は土台ブロックの存在を前提とするため、土台が未配置だと失敗する。
attaches はフェーズ2以降に分離する。attaches の base 座標が、前のフェーズで配置された土台ブロックの座標と一致することを確認する。interact-block の同期ズレ対策mc-cli interact-block でレバー/ボタンを操作した直後に get-blocks やテストで状態を観測すると、Minecraft側のブロック更新が完了しておらず、古い状態を観測してしまう(同期ズレ)。これで「操作が効いていない」と誤診し、無駄な修正試行を消費する。
interact-block の後は 必ず --delay を指定するか、別途 wait を挟む。delay × 1tick + 余裕 の待機を入れる。# OK: 操作後に待機を入れてから観測
mc-cli interact-block --pos 10,65,10 --delay 4
注意:
interact-blockは FakePlayer パターンでバニラのonUseを呼び出す正規の実装です。place-blocksでpoweredを直接書き換えるのは正規のプレイでは不可能であり、異常動作を引き起こすため絶対に使用しないでください。
アナログ(0-15)信号を扱う回路で、入力からロジック端子(コンパレーター等)までの配線距離が長すぎると、信号強度が減衰して論理判定が壊れる。アナログ経路にリピーターを置くと強度15に二値化され、アナログ情報が完全に失われる。
repeater / comparator / observer の facing は、バニラの感覚(出力方向)とは逆で、主入力が侵入する方向(入力面) を指す。これを間違えると信号が逆流し、回路が繋がらない。
connects を使用 して配置する。connects が facing を自動計算するため、手動で facing を指定する必要はない。connects では src(入力元)→ dst(出力先)の順で指定。信号は src → dst に流れる。blocks に手動 facing 指定で置くことは禁止(--allow-direct-facing を指定しない限りエラーになる)。// OK: connects 使用
{ "src": [10,64,10], "dst": [12,64,10], "component": "minecraft:repeater" }
// 中間 [11,64,10] にリピーターが配置され、facing=west(東から入力、西へ出力)になる
// NG: 直接 blocks に手動 facing
{ "x": 11, "y": 64, "z": 10, "block": "minecraft:repeater", "state": { "facing": "west" } }
テスト失敗時に、まず「フレームワーク/DSL/配置順序のトラップ」か「本質的な回路バグ」かを切り分ける。トラップなら設定を直すだけで解決し、本質バグなら回路構造を見直す。
get-blocks で全体確認: レバーが存在しない / 空中に浮いている → フェーズ順序トラップ(トラップ3, 4)。--delay を増やして再確認。connects の src/dst を確認。circuit_debugging スキルに従い段階的にデバッグ。レッドストーンダストは、配置されているブロックの真下にしか動力を与えられない。水平方向や直上のブロックに直接給電しようとしても動力が伝わらず、NOT回路の入力やランプの点灯が期待通りに動作しない。
.d.
dbt
(d: レッドストーンダスト、b: ブロック、t: レッドストーントーチ。横から見た図)
// OK: 土台ブロックの真上にダストを配置
{ "x": 10, "y": 64, "z": 10, "block": "minecraft:redstone_wire" }
// NG: 土台ブロックの横にダストを配置して入力を与えようとする
{ "x": 11, "y": 64, "z": 10, "block": "minecraft:redstone_wire" }
設計開始前に以下を確認し、トラップを事前排除する。
place-blocks の --blocks に渡すJSONが、単一オブジェクトまたは配列として正しい形になっているstate に動的状態(powered/lit/power/extended/enabled)を書き込んでいないattaches は土台ブロックのフェーズより後に配置しているinteract-block の後に --delay または別途待機を入れているconnects で配置しているfill 等で air クリアしているNo reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
レッドストーン回路の自動テストが失敗した際の切り分け・局所修正手順。get_blocks, interact_block, place_blocks を使ったデバッグ方法を定義する。
The English summary is being prepared. Showing the original description.
レッドストーン回路の自動テストが失敗した際の切り分け・局所修正手順。CLI版の mc-cli get-blocks, interact-block, place-blocks を使ったデバッグ方法を定義する。
The English summary is being prepared. Showing the original description.
agent 向けテキスト指示(skill / slash command / task プロンプト / CLAUDE.md 節 / コード生成プロンプト)を、バイアスを排した実行者に動かしてもらい、両面(実行者の自己申告 + 指示側メトリクス)で評価して反復改善する手法。改善が頭打ちになるまで回す。プロンプトや skill を新規作成・大幅改訂した直後、またはエージェントの挙動が期待通りにならない原因を指示側の曖昧さに求めたいときに使う。
The English summary is being prepared. Showing the original description.
Minecraft のレッドストーン回路や構造物を設計するための、JSON データモデルの仕様と設計ガイドラインです。
The English summary is being prepared. Showing the original description.
CLI版 mc-cli drop-items コマンドの使い方。ホッパーやコンテナに投入するアイテムを世界にドロップする時に読む。
The English summary is being prepared. Showing the original description.
CLI版 mc-cli fill コマンドの使い方。土台作成や範囲消去(air)を行う前に読む。
The English summary is being prepared. Showing the original description.