Skip to content

Latest commit

 

History

History
47 lines (35 loc) · 3.09 KB

File metadata and controls

47 lines (35 loc) · 3.09 KB

CLAUDE.md: gv

Windows用画像ビューアー(Rust製)。多形式対応と高速切り替えを軸にした単一ユーザー向けGUIアプリ。 本プロジェクトは人間による開発作業がほぼ発生しないため、 コーディング規約・設計判断・実装上の注意点はCLAUDE.mdおよび.claude/rules/配下に集約する。

開発手順

  • rust, node, pnpmなどはmise経由で実行する
  • 普段使うのはmise run format(フォーマット + 軽量lint)とmise run test(全チェック実行)
  • リリースはgh workflow run release.yaml --field="bump=PATCH"で実行する
  • コミット前の検証方法: uvx pyfltr run-for-agent
    • テストコードの単体実行なども極力pyfltr run-for-agent <path>を使う(直接呼び出さない)
    • 修正後の再実行時は--commands=cargo-clippy,cargo-test等で限定して実行する(最終検証はCIに委ねる前提)

アーキテクチャの参照先

アーキテクチャ概要・モジュール構成・設計判断の根拠は docs/development/architecture.mdを参照する。

コーディング規約

Rust実装の規約(ロックpoison・TOML SSOT・自然順比較・エラーハンドリング)は .claude/rules/coding-standards.mdに集約する。 .claude/rules/coding-standards.mdsrc/**/*.rs編集時に自動ロードされる。 Windowsバッチファイル生成の規約(CP932・UTF-8 BOM・chcp・goto構文)は src/updater.rsgenerate_update_batch関数のdocコメントに記載する。

サブエージェント・スキル連携

unsafeブロックを新規追加・変更した直後は、必ずTaskツールで subagent_type=unsafe-reviewerを呼び出し、対象ファイルの絶対パスを与えてレビューを依頼する。 既存のunsafeを含むファイルを編集しても、unsafe部分そのものに変更がなければ対象外。

SAFETYコメントの粒度判定基準は.claude/agents/unsafe-reviewer.mdをSSOTとする。

注意点

  • Windows用プロジェクトのため、Linux環境での検証はlint系(textlint / markdownlint / prettier)のみ確認可能。 cargo-clippy / cargo-test / cargo-denyはWindowsターゲットのためLinuxでは失敗する
  • Makefileではなくmise.tomlのタスクを使用する。pre-commitフレームワークはuvx pre-commitで呼び出す
  • taiki-e/install-action@cargo-denyはツール名タグ形式のためpinactでハッシュピン不可(.pinact.yamlで除外済み)
  • Linux環境での検証コマンド実行時はLOCALAPPDATA=/tmp/dummy環境変数を付与する。 mise.tomlがWindows前提でLOCALAPPDATAを参照しているため
  • Linux環境からドキュメント等のcargo無関係な変更をコミットする際は、 SKIP=cargo-clippy,cargo-test,cargo-deny LOCALAPPDATA=/tmp/dummy git commit ...形式で cargo系pre-commit hookをskipする。--no-verifyは全hookを無効化するため使わない