AIに波形の眼を開眼させるMCPブリッジ
シビュラシステムは人の魂を測定した。
PSYCHO-Py800MCPは電気信号の魂を測定する。
Mac/Winメニューバー常駐のPythonアプリ。
オシロスコープ・ロジアナ・WebCam・顕微鏡をMCPで統合し、
AIがスケマティックを読んで波形の眼を持つ。
現在地: AI HELP専用MCPは実装・オフライン検証済み。計測器I/Oはゲート閉鎖中で、実機制御は未着手。
「設計済み」「実装済み」「実機確認済み」は別々に記録し、計画を動作実績として扱わない。
This repository distinguishes designed, implemented, and verified on physical hardware. Those labels are not interchangeable. Current hardware observations apply only to the recorded instrument, firmware, connection, commands, artifacts, and test conditions. The MCP surface does not authorize an AI client to bypass the local approval session or operate an instrument directly.
プローブを当てる
GNDクリップを取る
オシレーターを繋ぐ
最初のStartを押す
物理接触・装備選択・最初のトリガー判断は人間の領域。
ゲシュタルト係数が装備選択を補助するが、引き金を引くのは人間。
測定環境が回り出したら全部やる。
パラメータスイープの自動実行
周波数スキャン・共振点探索
ngspiceシミュとの自動照合
スケマティック信頼度の反復更新
次の測定点の決定
補正テーブルの自動生成
異常検出・アラート発火
証拠保全ログの記録
「プローブ当てたら寝ていい」はSeason 3へ向けた設計目標であり、現在の実装状態ではない。
PSYCHO-PASSの犯罪係数風に、現在の現場状態を技術非専門の管理者、人事、出資者にも一目で伝える メタGUI表示。目的は安全判定の自動化ではなく、「いまは観測・数値ログ支援だけ」「次は自動検査なので 計画監査が必要」「ここからは高リスクなので増員」という運用状況の圧縮プレゼンテーションである。
Devや現場エンジニアへ電気の危険を教える画面ではない。彼らが定格、波形、GND、接続を見て察知した 「香ばしさ」を、停止影響、品質価値、schedule、project optionの言葉へ翻訳し、技術詳細を追わない 決裁者へ届かせる。Engineer viewは根拠正本、Executive viewは決裁言語へ変換した要約である。
責任追及だけを前面に出すと「面倒ならやるな」「賠償能力のある権威者へ投げろ」という権力倒れを招く。 そこでDashboardは、機材・停止・再試験等のRiskSignalと、欠陥発見、手戻り削減、学習価値、schedule、 再利用可能な証拠等のBenefitSignalを同じ強さで並べる。高リスク・高ベネフィットは自動却下せず、 必要な人員、予算、確認を足して進めるdecision packetへ変換する。
係数は円、損害確率、事故率、ROI、企業価値へ換算できないordinal_metaphorである。何円失う、時価総額へ
いくら寄与する、といった定量財務エビデンスを本GUIは生成しない。犯罪係数風の「なんか香ばしい/
割に合いそう」を共有する会話用メタ表記であり、理由カテゴリとUNKNOWNを併記する。
表示核は産業機器のステータスランプ感覚へ寄せる。本プロジェクト固有の青は観測、黄は追加確認員を 呼ぶ、赤は停止・復旧対応能力を持つ体制が必要、灰黒は不明で執行不可を表す。色だけでなく状態語、 アイコン、音声を併記する。これは特定の産業規格へ準拠した色定義ではない。
その枯れた制御核へ、走査線、係数、オーラ、無機質音声等のSF外皮を被せる。SF演出の目的は、金勘定側が
現場状態へ興味を持ち、黄色で人を足し、赤になる前に消火体制を用意すること。係数の対象は人間ではなく
operation_id + snapshot_idであり、個人別犯罪係数、担当者ランキング、エンジニアへの責任転嫁は禁止する。
本GUIの特徴は、測定後の故障表示ではなく測定前に出ることにある。time_scope=PROSPECTIVEを明示し、
まだ観測していないRiskとBenefitをPROJECTED / INFERRED / UNKNOWNとして並べる。AIが計画、回路、
過去成果物から未来の作業を先に可視化し、決裁側へ人員、装備、時間、停止・復旧能力の配備を促す。
安全は責任の押し付け先ではなく、事前に組織能力を組み上げる工学対象として扱う。技術側は必要controlを
定義し、金勘定側は金で防げる事故へ人員・装備・時間を供給し、実行側は承認済み条件で操作する。
詳細は docs/architecture/prospective-meta-safety.mdを参照。
上位のLayer B哲学正本はZeroRoomLab-manifestの
ちくわ砲 — 幻想化によるProspective Meta-Safetyに置く。
安全を成立させる二つの半分として、原初の神話・夢・ロマン・哲学を矮小化しないことと、それを十分な
安全率で執行する人員・時間・設備・停止復旧余裕を別々に扱う。目的だけが強く資源が不足する状態は
やりがい搾取警報、資源があって目的が消えた状態は目的関数ドリフトとして表示する。個人の忠誠心や
熱意はscore化しない。Layer A契約は
docs/architecture/purpose-function-ledger.md、Layer B正本は
神話的士気管理と目的関数矮小化連鎖を参照。
主画面は「何が得られるか」「何を失い得るか」「何を足せば進めるか」「誰の決定が必要か」を短く示す。
法的賠償責任は詳細画面へ分離し、契約、保険、法域、組織決裁が未入力ならUNDETERMINEDとする。
二つの数値から定型ガイダンスも表示する。たとえば「執行対象リスク200、取得エビデンス価値250。
プロジェクト継続判断へ強く寄与する可能性がある一方、危険性があります。必要な人員とcheckを揃えて
計画監査してください」のように、数字の意味を一文へ戻す。必要なら同じ文を音声合成で読み上げる。
詳細と暫定スコアは docs/architecture/risk-benefit-guidance.ja.mdを参照。
ユーザーがすでにプローブしている画面や値をAIが読む行為は、人間の目視・転記を補助する
OBSERVINGとして表示し、それ自体へ作業リスクを加算しない。自動検査、測定開始、入力経路変更では、
計画責任者、監査者、Dev Check、Engineer Check、必要人員、未確認事項を係数と同じ画面へ出す。
旧版の係数閾値と「即時執行可」という対応表は廃止予定で、実装権限へ使用しない。絶対スコアの
高低ではなく、人間が成立させた現在状態から次の操作が破壊方向へ倒れるかをhazard_deltaとして判定する。
AIによる測定開始または破壊方向・影響不明の入力経路変更には、設計想定範囲を確認するDev Checkと、
実際のプロービング対象を確認するEngineer Checkの両方を必要とする。
係数はプレゼンテーション用の派生値であり、低い値が操作を許可せず、高い値が自動的に操作を禁止する
わけでもない。実行可否は独立した技術ゲートが決める。係数表示には必ず状態語、根拠、必要な次の人員を
併記し、UNKNOWNを平均値へ埋めない。
[POEM]数式を読まない偉い猫にも、青なら観測、黄なら計画を見ろ、赤なら人を呼べ、と一秒で 伝えるための計器盤。ただし猫の肉球で安全ゲートは開かない。
en-US guardrail: The Gestalt score is a stakeholder communication display, not a safety decision or authorization mechanism. It summarizes the current work mode, unresolved checks, responsible roles, staffing needs, and reason-coded risk/benefit signals. Technical gates remain authoritative, and the dashboard does not determine legal liability. Risk and benefit are shown together so that high-value work can be staffed and reviewed instead of being rejected merely because it is complex. The primary audience is the nontechnical budget and decision layer; the engineering view remains the evidence source, not a tutorial for engineers. Scores are ordinal metaphors. They are not money, probability, ROI, damages, or company valuation. Color and science-fiction styling describe an operation and its current context, never a person's worth or liability. The underlying status-light semantics remain usable without the theme. Prospective colors describe a proposed future operation, not an accident already in progress. Safety is treated as an engineered organizational capability assembled before measurement.
Claude(自動開発ループの主体)
↓ 係数計算・パラメータ決定・解析・次手
MCP(PSYCHO-Py800MCP)
↓ SCPI / sigrok / OpenCV
SIGLENT SDS1204X-E・実機ハード
↓ 波形データ / "device_not_responding"
NumPy解析 → Claude(次のループへ)
| ロール | 担当 |
|---|---|
| 監視官(デベロッパー) | Claude Codeでロジック・MCPからリモート操作・自動ループ監視 |
| 執行官(ハードエンジニア) | 実機にプローブ当て・初期Startを押す・「ハードあかん」時の現場確認 |
フォワードモード — KiCadスケマティック読み込み済み、係数が確定的
リバースモード — 基板写真→Vision推定→信頼度スコア付き暫定スケマティック→測定で反復収束
┌─────────────────────────────────────────┐
│ PSYCHO-Py800MCP 常駐GUI │
│ Mac: メニューバー / Win: タスクトレイ │
├──────────────────────────────────────────┤
│ MCPサーバー層(fastmcp) │
│ 計測器(SCPI/sigrok) │ 映像(WebCam/顕微鏡)│
│ スケマティック(KiCad)│ 校正(Mac lineout) │
├──────────────────────────────────────────┤
│ ゲシュタルト係数エンジン │
├──────────────────────────────────────────┤
│ 音声合成(eSpeak NG) │
│ sibyla / enforcer / EN / silent │
├──────────────────────────────────────────┤
│ 証拠保全レイヤー(SQLite + HDF5) │
└──────────────────────────────────────────┘
基準波形確立(人間がセットアップ)
↓
Claude「100Hzで取得」→ SCPI自動設定 → 波形取得
↓
NumPy FFT解析 → 「共振点が見えた、前後スキャン」
↓
自動パラメータスイープ
↓
ngspiceシミュと照合 → 「C3の値が実機と違う」
↓
スケマティック更新提案 → 人間承認
↓
次の測定点へ(ループ)
Python → 既知サイン波出力(全周波数帯)
↓ SCPI自動取得
NumPy → 補正カーブフィッティング
↓
correction_table.json 生成・以降の測定に自動適用
Macラインアウトの歪みを差し引いた真の測定値が得られる。
Phaseは責任境界・検証契約の成熟度、Seasonは手持ち実機から始める探索と製品化の進行を表す。
両者を同じ進捗軸として扱わない。正本は docs/implementation_plan.md。
| 区分 | 状態 | 内容 |
|---|---|---|
| Phase 0 | 監査対応中 | 文書、責任境界、参照正本、実験ログの床張り |
| Season 0 | 実験準備中 | SDS1204X-EのmDNS観測、識別、ペアリング台帳、原本取得、再表示の縦切り |
| Season 1 | 設計予定 | 実測成果物からAdapter・Artifact・Capability等の抽象を固定 |
| Season 2 | 未着手 | 承認付き設定変更、連続測定、証拠保全の強化 |
| Season 3 | 構想 | KiCad、Vision、ngspice、自律スイープ |
現在の実機検証環境は、Hackintosh上のSDS1204X-Eおよび手持ちの小型USBオシロスコープ。 他社・他機種は寄贈または検証機材の提供を受けた範囲で順次対応する。対応表では 「設計済み」「実装済み」「実機確認済み」を別々に記録する。
./scripts/bootstrap_runtime_envs.sh
./scripts/verify_pre_experiment.shPython 3.11のネゴシエーション層とプレゼンテーション層を別venvへ作る。Phase 0では ネゴシエーション層にlock固定したFastMCPだけを導入し、プレゼンテーション層の描画依存、SCPI通信、 instrument transportは起動しない。実機用experiment gateが閉じていることを引き続き検証する。
実機MCPより先に、接続AIへ
MAD巫女サイエンティストふさもふのAIのためのオシロ虎の巻.proton.md
とFAM探索flowを返すdocs-only MCPを実装する。このserverは
SCPI、instrument IP、ApprovalSession token、socket、実機write capabilityを持たない。
CLIでの確認:
.venv-negotiation/bin/python main.py help --format bundle
.venv-negotiation/bin/python main.py help --format fam_jsonMCP host用stdio entrypoint:
.venv-negotiation/bin/python main.py serve-help-mcp公開面:
| 種別 | 名前/URI | 内容 |
|---|---|---|
| tool | list_help_topics |
allowlist済みHELP topic一覧 |
| tool | get_help |
Markdown、FAM JSON、またはbundleを返す |
| resource | psycho://help/oscilloscope-field-guide |
オシロ虎の巻全文 |
| resource | psycho://help/oscilloscope-fam-flow |
ψ/∇φ/λ/Q探索profile |
このMCP面の成功は、FastMCP protocolと文書配布が動いたことだけを示す。SDS1204X-Eへの接続、SCPI、波形取得、
ApprovalSessionの実装済み事実にはならない。実機用serve-mcpは引き続き閉じたexperiment gateで拒否する。
承認機構は危険度に合わせて段階導入する。最初の固定IP・query-only識別実験は、まだ存在しない ApprovalSessionを前提にせず、人間が送信先、送信byte、回数、timeout、中止条件を固定したrunbookを 明示起動し、その記録を残す。AIによるプローブ位置の指示、DUT接続、入力レンジ・probe倍率・結合・ 入力インピーダンスの決定、出力や装置状態の変更へ進む前には、機械的なApprovalSessionを必須にする。 現在の閉じた実験ゲートは、そのbootstrap実験実装が入るまで維持する。
ユーザーがすでにプローブと初回取得を成立させている場合、保存済み成果物の再生・描画・数理解析に 測定計画承認は要求しない。計測器から「すでに存在する取得結果」を読む操作も、取得開始、再arm、 設定変更を暗黙に伴わないことが機種契約で確認できればread-existingとして扱う。時間軸の変更は 物理破壊よりデータ品質へ影響する操作として記録付きで許可できるが、暗黙に測定開始するコマンドなら start-measurementへ分類し直す。垂直レンジ、probe倍率、入力インピーダンス、結合、offset等は ADC保護境界として時間軸と分離する。
hazard_deltaはnone、neutral、may_increase_exposure、unknownを持つ。unknownを低スコアへ
丸めず、may_increase_exposureと同じ承認側へ倒す。高いV/divへ変更する等、一見保護方向に見える操作も、
入力インピーダンスや結合、内部attenuatorの副作用を機種契約で確認できなければ安全側とは断定しない。
これは都度承認する読取ではない。ユーザーが観測対象を選んだObservationContextの内側では、オシロの
画面表示、既存buffer、カメラframe、KiCad/netlist/設計資料をAIが反復してread-only参照できる。
人間が目視している情報をAIが読むこと自体はhazard_delta=noneである。将来のカメラ移動も、設定済みの
非接触可動範囲内でDUT、probe、接地、入力経路を動かさないなら観測操作として扱う。観測履歴は出自と
再現性のため記録するが、測定計画の承認記録へ偽装しない。
en-US guardrail: The first known-target, query-only identification run may use a human-started, immutable bootstrap runbook before ApprovalSession exists. This exception never permits AI-directed probing, DUT connection, input-range decisions, state changes, or autonomous retries. Analysis of stored artifacts requires no measurement-plan approval. A time-axis-only change is a recorded data-quality operation; AI-initiated acquisition and vertical/input-path changes require both design-envelope and physical-probe checks plus an approved plan.
将来のGUIでは、企画原本・規格原本・要求項目をユーザーがローカル環境へ投入する。システムは 規格本文を自動取得せず、公式メタデータで版・状態・発行者・更新有無を照合し、利用を許可された 要求項目から数理層とMeasurementPlanを構築する。本プロジェクト自体の規格認証を目的にせず、 適用規格と正式な適合性判断はユーザーまたは必要な専門家へ返す。
GUIにはユーザー環境内の「測量規格書投入フォルダー」を用意する。投入原本は外部送信せず、 read-onlyでhash固定し、ネットワークとscript実行を持たないローカルパーサーで読む。フォルダーへの 投入は測定承認ではない。抽出された要求項目とMeasurementPlanを別画面で承認するまで実機操作しない。
投入できるのはPayToGete型の公的規格だけではない。本番規格測量前のDev段階では、 オープンサイエンスの実験手順、オープンハードウェア開発基準、ZeroRoomLab-manifest、各ラボのSOP、 各現場の指示書、メーカー手順、実験固有プロトコルもMeasurementBasisBundleとして扱う。 重要なのは肩書きの強さではなく、どの版の、どのルールで、どのstepを測ったかを残すこと。
複数ルールが衝突した場合、AIは勝手に混ぜない。GUIへ差分と適用範囲を返し、ユーザーが優先順位と 逸脱を承認する。Dev試験やpre-compliance結果を正式認証へ自動昇格させない。
plan hashへのユーザー承認がなければ測定を開始しない。途中中止時は新規操作を止め、事前承認済みの 安全停止、取得済みデータの部分確定、MCPホスト向けread-only成果物面へ縮退する。規格の新版を 検出しても承認済み計画を黙って変更せず、新しい計画として再承認を要求する。
en-US guardrail: User-supplied source material, verified standards metadata, and user-authorized requirements may inform a measurement plan, but this project does not issue certification. A standards update requires a new plan and new approval. User cancellation blocks new instrument actions and finalizes only the data already obtained.
Open-science protocols, open-hardware development profiles, project manifests, lab SOPs, site instructions, and manufacturer procedures are also valid planning inputs. Every run records exactly which versioned rules were selected, where they applied, and which deviations the user approved.
必要規格をシステムが自動取得する案は、規格本文の購入・利用許諾・AI利用条件が参入ゲートに なっていたため変更した。ニートの財布に優しくないゲートを無理に破らず、権利を持つユーザーが 原本をローカル投入し、システムはその机の上で読む。
「安全はみんなのため」――ただし本文は決済後。
PayToGeteは、ゼロトラストより先にカード番号を信じる。
だからAIは規格を盗りに行かない。人が置いた原本を外へ出さず、測る前に計画を人へ返す。
en-US guardrail:
PayToGeteis satire about access cost, not permission to bypass copyright, licensing, or formal conformity assessment.
/src
/gui - PyQt6常駐アプリ(メニューバー/タスクトレイ・メインウィンドウ)
/mcp - fastmcp MCPサーバー(計測器・映像・スケマティック・校正ツール)
/engine - ゲシュタルト係数エンジン
/audio - eSpeak NG音声統合・SEパック
/evidence - 証拠保全レイヤー(SQLite・HDF5)
/docs
interface_spec.md - MCPツール定義・レイヤー間仕様
gestalt_spec.md - ゲシュタルト係数仕様
safety_design.md - 安全設計思想・責任構造
/notes - 実験ノート・作業ログ(AIエージェント/人間共通)
/design - UI設計・スクリーンショット
/tests
| 型番 | 役割 |
|---|---|
| OND800 | Pi5 NDIマルチカメラ(映像の眼) |
| SAO800 | Mac OBSプラグイン(映像の橋) |
| FAN800 | ESP32 BLEメッシュ(空間の神経) |
| PSYCHO-Py800MCP | 計測器MCP(波形の眼) |
saitoomituru/OND800— NDIカメラシステムsaitoomituru/SAO800— Mac OBSプラグインHIPSTAR-IScompany/SphereOS-synthesizer— エンベロープエンジン転用元
- ソフトウェア: Apache License 2.0
- 将来的なハードウェア設計(OSH): CERN-OHL-P v2(追加時に明記)
ZeroRoomLab / 齋藤みつる
設計思想: Sphere Architecture / FAM / IEC 61508の考え方を参照