FloatSoda: Skill for Claude Code

.agents/skills/floatsoda-device-test-gen/SKILL.md

floatsoda-device-test-gen is a skill for Claude Code, Codex from sumx21t-3310/FloatSoda. It costs 284 tokens per session (4,636 once invoked), scanned A, original, MIT.

A test generator for FloatSoda virtual-reality features and differences from its Flutter version. It finds behaviours that need a running SteamVR headset, then creates either headless xUnit tests or scenarios for a real HMD.

In plain words
What is it for?
Use it to list possible VR failures, compare FloatSoda with Flutter, decide which checks can run without hardware, and create the corresponding xUnit tests and headset harness scenarios.
Why use it?
Ordinary automated tests cannot cover some headset, controller, rendering, and dashboard behaviour. This skill turns those gaps and porting differences into specific tests or device scenarios.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: mentions subagents; mentions Claude Code; installed under .agents/ (shared by several agents).

This is sumx21t-3310/FloatSoda's own configuration. It tells Claude Code and Codex how to work on FloatSoda itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything FloatSoda configures →

Reuse

Borrowing it

Nothing to install: this file belongs to sumx21t-3310/FloatSoda. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/sumx21t-3310/FloatSoda/main/.agents/skills/floatsoda-device-test-gen/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/sumx21t-3310/FloatSoda

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for floatsoda-device-test-gen

README.md
[![agentmods](https://agentmods.dev/badge/skills/sumx21t-3310/floatsoda/floatsoda-device-test-gen/github.svg)](https://agentmods.dev/skills/sumx21t-3310/floatsoda/floatsoda-device-test-gen)
Your own site
<a href="https://agentmods.dev/skills/sumx21t-3310/floatsoda/floatsoda-device-test-gen"><img src="https://agentmods.dev/badge/skills/sumx21t-3310/floatsoda/floatsoda-device-test-gen/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for floatsoda-device-test-gen

Your own site · 80×15
<a href="https://agentmods.dev/skills/sumx21t-3310/floatsoda/floatsoda-device-test-gen"><img src="https://agentmods.dev/badge/skills/sumx21t-3310/floatsoda/floatsoda-device-test-gen.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 284 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,636 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00284 $0.04636
Opus 5.5 $0.00114 $0.01854
Sonnet 5.5 $0.00057 $0.00927
Haiku 4.5 $0.00028 $0.00464

Measured 1mo ago against content hash 74655eb3fda1, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

floatsoda-device-test-gen scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.agents/skills/floatsoda-device-test-gen/SKILL.md · 220 lines

How it starts

The opening of the file, as written. The whole thing — 220 lines — stays where its author put it; the contents beside it link to each section on GitHub.

FloatSoda デバイステスト — 生成(gen)

このスキルが存在する理由

FloatSoda には 84 のテストファイルがあるが、WidgetBinding を一気通貫で駆動しているのは そのうち 2つ(tests/FloatSoda.Test/Core/PointerInputIntegrationTest.cs と tests/FloatSoda.Test/Core/WidgetBindingTest.cs)だけ。src/FloatSoda.OVR と src/FloatSoda.Engine は事実上テストされていない。SteamVR が稼働しているときにしか存在しない もの — オーバーレイハンドル、コントローラーレイの座標、レンダースレッド上の GL コンテキスト、 ダッシュボードの開閉イベント — にはカバレッジが一切なく、dotnet test から得る手段もない。

それとは別に、FloatSoda は Flutter の三層ツリーモデルを鏡写しにしており、docs も Flutter の 語彙で概念を教えている。そのため利用者(と、利用者のために書く LLM)は Flutter の挙動を期待して やって来る。移植が乖離している箇所では、乖離がバグでも意図的な設計判断でも、利用者が払う コストは同じ。 だから移植差異は、VR 専用の欠陥クラスと並べて列挙する価値のある、それ自体 独立した欠陥クラスになる。

このスキルは、この両方を場当たりな VR セッションではなく反復可能なプロセスにする。担当するのは 生成(producer)側: 列挙 → 検証 → 振り分け → テストとハーネスシナリオの作成。 実行(runner)側 — ハーネスの各シナリオを HMD で起動し、オーナーの判定を取り、落ちたものを トリアージする — は floatsoda-device-test-run で、カタログサンプルとハーネスシナリオを同じ ループで回す。

以下のすべてを規定する経済性

デバイス実行はこのプロジェクトで最も高価なテスト。HMD を被り、SteamVR を起動し、手で操作し、 目で判定する。だから:

網羅性は列挙の段階で達成する。実行は意図的に絞る。

この2つを同じサイズにしないこと。40 シナリオを列挙して 34 をヘッドレス xunit に、6 を HMD に 振り分けられたら、それは不足ではなく成功。

オーケストレーションとハードストップ

Claude Code が主導する: Codex への brief の作成、Codex の報告内容の検証、振り分け、 ヘッドレステストの作成、ハーネスシナリオの構築。

次の2つはオーナーだけのもの:

  1. 最終的な設計判断 — 軸B の暫定ラベルは、オーナーが確定するまで暫定のまま(確定は floatsoda-device-test-run のトリアージで行う)。
  2. コミット / push / タグ — 必ず確認を取る。

VR での実行もオーナーだけのものだが、このスキルの範囲ではない。構築したシナリオを floatsoda-device-test-run へ引き渡す。

ワークフロー

1. 列挙する — Codex に委任、2つの軸で

brief には references/codex-enumeration-prompt.md を使う。task-codex-subagent スキル (subagent_type: "codex-runner")でバックグラウンド起動し、読み取り専用の意図で実行する: Codex が書くのはちょうど1ファイル(スクラッチパッド内のシナリオリスト)だけで、リポジトリには 何も触れない。コードもテストも書かせない。

brief には必ず次を含める:

  • 軸A — VR 専用: オーバーレイのライフサイクル、コントローラーポインタの座標、デバイス トラッキング、SteamVR イベント、アクションマニフェスト、GL コンテキスト / レンダースレッド / フレームペーシング。
  • 軸B — Flutter 移植差異: Elements/、RenderObjects/RenderObject.cs、Core/WidgetBinding.cs、 Gesture/ を、~/code_reading/flutter_reference の Flutter クローンと突き合わせる。 references/known-divergences.md を渡し、再発見ではなくリストの拡張をさせる。
  • 既知 Issue の除外リスト(後述)。起票済みバグの再発見に列挙の労力を使わせないため。
  • シナリオごとの必須フィールド: 識別子(--scenario 引数に使える形)/ 壊れる理由の仮説 / file:line / HEADLESS か VR かとその根拠 / 再現手順 / 期待結果。軸B のエントリには 対応する Flutter 本家実装のファイルパスも併記する。
  • ハルシネーション対策の条項: すべての file:line は実際にファイルを読んだ結果であること。 未確認のものはその旨を明記させる。

Read the full file on GitHub · 220 lines

Files

What ships with it

2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago First seen · 220 lines · 284 tokens per session scan A 74655eb3fda1

Subscribe to this mod's changes

floatsoda-device-test-gen is a skill published in the GitHub repository sumx21t-3310/FloatSoda (12 stars, last pushed yesterday), licensed MIT. It adds 284 tokens to every session and 4,636 once invoked, about $0.0011 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-16.

Related

Other skills, from other repositories

author-test

Generate a test given sample. Parameters: C# SDK repository root; Package name: one of Azure.AI.Projects, Azure.AI.Projects.Agents or Azure.AI.Extensions.OpenAI; the sample to use as a starting point for the test.

Azure/azure-sdk-for-net · 68 tokens

migrate-xunit-to-xunit-v3

Migrate .NET test projects from xUnit.net v2 to xunit.v3 and fix v3 breaks. Use for package/CPM conversion, OutputType=Exe, preserving the VSTest or MTP runner (including projects currently using YTest.MTP.XUnit2), incompatible TFMs, async void tests, string-to-Type attributes, custom Fact/Theory/BeforeAfterTest…

managedcode/dotnet-skills · 149 tokens

dotnet-testing-advanced-tunit-advanced

A guide for advanced TUnit testing in .NET. TUnit is a testing framework; the guide covers tests driven by data, dependency injection, integration tests, retries, time limits, and filtering.

kevintsengtw/dotnet-testing-agent-skills · 156 tokens

dotnet-testing-autodata-xunit-integration

A guide for using AutoFixture, a .NET library that creates test data, with xUnit, a .NET testing framework. It explains attributes such as AutoData, InlineAutoData, and MemberAutoData for supplying values to parameterized tests.

kevintsengtw/dotnet-testing-agent-skills · 136 tokens

dotnet-testing-autofixture-nsubstitute-integration

A .NET testing guide for using AutoFixture and NSubstitute to automatically create test data and substitute versions of dependencies.

kevintsengtw/dotnet-testing-agent-skills · 169 tokens

dotnet-testing-bogus-fake-data

A guide to Bogus, a .NET library for generating realistic fake data such as names, addresses, phone numbers, emails, and product records. It shows how to define generation rules and create one or many records.

kevintsengtw/dotnet-testing-agent-skills · 131 tokens