用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ababup1192/frogger_new --skill compile-fix命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | compile-fix |
| description | Flixコンパイルエラーを診断し、既知の落とし穴と照合して修正を提案する |
| allowed-tools | Read, Grep, Glob, Bash |
コンパイルエラーが発生した場合、このスキルで原因を特定し修正する。
devbox run -- java -jar bin/flix.jar test を実行)症状: Unexpected token / Parse error が変数名や import 文で発生
原因: Flix の予約語を識別子として使っている
予約語一覧(特にハマりやすいもの):
handler — エフェクトハンドラで使用do — エフェクト呼び出しで使用resume — エフェクトハンドラで使用spawn — 並行処理で使用region — リージョンで使用inject / project / solve — Datalog で使用修正: 別の単語を使うか、2単語以上で命名する(例: handler → actionHandler, eventAction)
症状: Java クラスが見つからない / Unresolved type
原因: Java の import がモジュールのトップレベルにない
修正: import 文をモジュール直下(関数の外)に移動する
mod MyModule {
import java.util.ArrayList // ← ここに書く
pub def foo(): ... =
// import をここに書くとエラー
...
}
症状: Channel.buffered で型が合わない / Region 関連エラー
原因: 0.71.0 では Channel.buffered(size) は Region を受け取らない
修正: Channel.buffered(rc) → Channel.buffered(size) に変更。戻り値は (Sender[t], Receiver[t])。
症状: ##java.io.IOException が見つからない
原因: 0.71.0 では ## プレフィックスは不要。import してからクラス名で使う。
修正:
import java.io.IOException
try { ... } catch {
case _: IOException => ...
}
症状: レコードのフィールド更新で型が合わない
原因: Flix のレコード更新は {field = newValue | record} だが、型が異なると動かない
修正: レコード更新構文のパイプ右側がレコード変数であること、型が一致することを確認。
症状: 関数の戻り値型でエフェクトが合わない
原因: 呼び出し先のエフェクトを関数シグネチャに含めていない
修正: 関数の型注釈にエフェクトを追加する(\ IO + ef など)。不明なら型注釈を外して推論に任せる。
症状: Non-exhaustive match
原因: enum の全ケースを網羅していない
修正: 不足している case を追加するか、case _ => を追加。
症状: Unable to unify / 空リテラルで型が決まらない
原因: Nil や Set.empty() だけでは型が推論できないことがある
修正: 型注釈を付ける(例: (Nil: List[Int32]))、または要素付きで初期化。
症状: CanvasItem[GameNode] 等の instance 実装で型エラー
原因: match の分岐で内部型(Area2D, Sprite2D)への委譲が正しくない
修正: SpriteNode と Area2D 系で分岐し、ヘルパー関数(getArea, mapArea)で内部型に委譲する。CollisionObject2D では SpriteNode に None / false を返す。
症状: Expected Float32 but got Float64
原因: 1.0 は Float64。Float32 が必要な箇所では 1.0f32 と書く必要がある。
修正: 全ての浮動小数点リテラルに f32 サフィックスを付ける。
上記に該当しない場合:
Read で確認Grep で探すGlob + Grep で定義箇所を探す/verify で確認する