mcpField
T
ty-skills

ty-skills

github.com/jiatastic開発10123 回インストール40 週間前に更新
リポジトリ

ty-skills について

Python の型チェック、診断、ルール設定、mypy や pyright からの移行を扱う ty のスキルガイドです。Python 開発者向けに、高度な型パターンとエディター設定も説明します。

主な機能

  1. 01ty のインストールとチェック方法
  2. 02ルールと重大度の設定
  3. 03交差型と高度なパターンの解説
  4. 04mypy または pyright からの移行ガイド
  5. 05エディター設定の参考情報

活用シーン

  1. 01Python コードへの型注釈の追加
  2. 02ty の診断内容の調査と修正
  3. 03型チェックルールの調整
  4. 04既存の mypy または pyright 設定の移行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jiatastic/open-python-skills --skill ty-skills

インストール後、Claude Code で/ty-skillsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
advanced_patterns.md
common_errors.md
migration_guide.md
ty_rules_reference.md
typing_cheatsheet.md
references/editor_setup/
cursor.md
neovim.md
vscode.md

詳細

ty-skills

ty を使って Python の型チェックを習得しましょう。uv と Ruff の開発元である Astral が Rust で開発した、非常に高速な型チェッカーです。

このスキルを使用する場面

  • Python コードに型アノテーションを追加するとき
  • ty の型エラーや診断結果を修正するとき
  • ty のルールと重大度を設定するとき
  • mypy または pyright から ty に移行するとき
  • 高度な型パターン(交差型、プロトコル、ジェネリクス)を理解するとき
  • エディターで ty 言語サーバーを設定するとき

クイックスタート

# Install
uv tool install ty
# or: pip install ty

# Check current directory
ty check

# Check specific files
ty check src/

# Full diagnostics
ty check --output-format full

設定

pyproject.toml で設定します。

[tool.ty.environment]
python-version = "3.12"
python = "./.venv"
python-platform = "linux"
root = ["./src"]
extra-paths = ["./typings"]

[tool.ty.rules]
# error: fail CI, warn: report, ignore: disable
possibly-unresolved-reference = "error"
invalid-argument-type = "error"
division-by-zero = "warn"
unused-ignore-comment = "warn"

[tool.ty.src]
include = ["src", "tests"]
exclude = ["src/migrations/"]

# Per-file overrides
[[tool.ty.overrides]]
include = ["tests/**"]

[tool.ty.overrides.rules]
possibly-unresolved-reference = "warn"

ルールのクイックリファレンス

ルールデフォルト説明
possibly-unresolved-referenceerror変数が定義されていない可能性があります
invalid-argument-typeerror引数の型が一致しません
incompatible-assignmenterror代入された値に互換性がありません
missing-argumenterror必須の引数がありません
unsupported-operatorerrorこの型では演算子がサポートされていません
invalid-return-typeerror戻り値の型が一致しません
division-by-zerowarnゼロ除算の可能性があります
unused-ignore-commentwarn抑制コメントが不要です
redundant-castwarnキャストしても効果がありません
possibly-unbound-attributewarn属性が存在しない可能性があります
index-out-of-boundswarnインデックスが範囲外になる可能性があります

交差型(ty 独自)

ty は交差型をファーストクラスでサポートしています。

def output_as_json(obj: Serializable) -> str:
    if isinstance(obj, Versioned):
        reveal_type(obj)  # reveals: Serializable & Versioned
        return str({
            "data": obj.serialize_json(),  # From Serializable
            "version": obj.version          # From Versioned
        })
    return obj.serialize_json()

抑制コメント

# Suppress single rule
x: int = "hello"  # type: ignore[incompatible-assignment]

# Suppress multiple
y = risky()  # type: ignore[possibly-unresolved-reference, invalid-argument-type]

リファレンスドキュメント

詳しくは、以下を参照してください。

ドキュメント内容
references/ty_rules_reference.mdすべてのルールと例、修正方法
references/typing_cheatsheet.mdPython の typing モジュールのクイックリファレンス
references/advanced_patterns.mdプロトコル、ジェネリクス、型ガード、分散
references/migration_guide.mdmypy/pyright から ty への移行
references/common_errors.md例を含むエラーの解決方法
references/editor_setup/VS Code、Cursor、Neovim の設定

リソース

コメント