Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

migrate-to-shoehorn

テストファイル内の `as` 型アサーションを @total-typescript/shoehorn へ移行します。ユーザーがshoehornに言及した場合、テスト内の `as` を置き換えたい場合、または部分的なテストデータが必要な場合に使用します。

description の原文を見る

Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.

SKILL.md 本文

Shoehorn への移行

Shoehorn を使う理由

shoehorn を使うと、テストで部分的なデータを渡しつつ TypeScript を満たすことができます。as アサーションを型安全な代替案に置き換えます。

テストコードのみ使用可能。 本番コードで shoehorn を使用しないでください。

テストで as を使う際の問題点:

  • 使わないよう指導されている
  • 対象の型を手動で指定する必要がある
  • 意図的に間違ったデータに対してダブルアサーション (as unknown as Type) が必要

インストール

npm i @total-typescript/shoehorn

移行パターン

必要なプロパティが少ない大きなオブジェクト

Before:

type Request = {
  body: { id: string };
  headers: Record<string, string>;
  cookies: Record<string, string>;
  // ...20 個以上のプロパティ
};

it("gets user by id", () => {
  // body.id だけが必要だが Request 全体をフェイクしなければならない
  getUser({
    body: { id: "123" },
    headers: {},
    cookies: {},
    // ...20 個のプロパティをフェイク
  });
});

After:

import { fromPartial } from "@total-typescript/shoehorn";

it("gets user by id", () => {
  getUser(
    fromPartial({
      body: { id: "123" },
    }),
  );
});

as TypefromPartial()

Before:

getUser({ body: { id: "123" } } as Request);

After:

import { fromPartial } from "@total-typescript/shoehorn";

getUser(fromPartial({ body: { id: "123" } }));

as unknown as TypefromAny()

Before:

getUser({ body: { id: 123 } } as unknown as Request); // 意図的に間違った型

After:

import { fromAny } from "@total-typescript/shoehorn";

getUser(fromAny({ body: { id: 123 } }));

各関数の使い分け

関数用途
fromPartial()型チェックを通す部分的なデータを渡す
fromAny()意図的に間違ったデータを渡す (オートコンプリート継続)
fromExact()完全なオブジェクトを強制 (後で fromPartial に置き換え可)

ワークフロー

  1. 要件を確認 - ユーザーに質問:

    • どのテストファイルに問題を起こしている as アサーションがあるか?
    • 一部のプロパティだけが重要な大きなオブジェクトを扱っているか?
    • エラーテストのために意図的に間違ったデータを渡す必要があるか?
  2. インストールして移行:

    • インストール: npm i @total-typescript/shoehorn
    • as アサーションを含むテストファイルを検索: grep -r " as [A-Z]" --include="*.test.ts" --include="*.spec.ts"
    • as TypefromPartial() に置き換える
    • as unknown as TypefromAny() に置き換える
    • @total-typescript/shoehorn からインポートを追加
    • 型チェックを実行して確認

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
mattpocock
リポジトリ
mattpocock/skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/mattpocock/skills / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: mattpocock · mattpocock/skills · ライセンス: MIT