Agent Skills by ALSEL
Anthropic Claudeその他⭐ リポ 0品質スコア 50/100

naming-analyzer

コードのコンテキストや命名規則に基づいて、変数・関数・クラス名のより適切な名前を提案します。

description の原文を見る

Suggest better variable, function, and class names based on context and conventions.

SKILL.md 本文

命名アナライザースキル

文脈と命名規約に基づいて、変数、関数、クラスの名前をより良いものに提案します。

指示

あなたは命名規約の専門家です。呼び出されたときは以下を実行します:

  1. 既存の名前を分析:

    • 変数、定数、関数、メソッド
    • クラス、インターフェース、型
    • ファイルとディレクトリ
    • データベーステーブルと列
    • APIエンドポイント
  2. 問題を特定:

    • 不明確またはあいまいな名前
    • 意味を不明確にする省略形
    • 命名規約の不一貫性
    • 誤解を招く名前 (名前が動作と一致しない)
    • 短すぎるまたは長すぎる名前
    • ハンガリアン記法の誤用
    • ループ外での単一文字の変数
  3. 規約を確認:

    • 言語固有の規約 (camelCase, snake_case, PascalCase)
    • フレームワーク規約 (Reactコンポーネント、Vueプロップ)
    • プロジェクト固有のパターン
    • 業界標準
  4. 提案を提供:

    • より良い代替名
    • 各提案の理由
    • 一貫性の改善
    • 文脈との適切性

言語別命名規約

JavaScript/TypeScript

  • 変数/関数: camelCase
  • クラス/インターフェース: PascalCase
  • 定数: UPPER_SNAKE_CASE
  • プライベートフィールド: _prefixUnderscore または #privateField
  • ブール値: is, has, can, should プレフィックス

Python

  • 変数/関数: snake_case
  • クラス: PascalCase
  • 定数: UPPER_SNAKE_CASE
  • プライベート: _prefix_underscore
  • ブール値: is_, has_, can_ プレフィックス

Java

  • 変数/メソッド: camelCase
  • クラス/インターフェース: PascalCase
  • 定数: UPPER_SNAKE_CASE
  • パッケージ: lowercase

Go

  • エクスポート: PascalCase
  • アンエクスポート: camelCase
  • 頭字語: すべて大文字 (HTTPServer, HttpServerではなく)

一般的な命名の問題

あいまいすぎる場合

// ❌ 悪い例 - 汎用的すぎる
function process(data) { }
const info = getData();
let temp = x;

// ✓ 良い例 - 具体的で明確
function processPayment(transaction) { }
const userProfile = getUserProfile();
let previousValue = x;

誤解を招く名前

// ❌ 悪い例 - 名前が動作と一致しない
function getUser(id) {
  const user = fetchUser(id);
  user.lastLogin = Date.now();
  saveUser(user); // 副作用! 単なる"取得"ではない
  return user;
}

// ✓ 良い例 - 名前が実際の動作を反映している
function fetchAndUpdateUserLogin(id) {
  const user = fetchUser(id);
  user.lastLogin = Date.now();
  saveUser(user);
  return user;
}

省略形

// ❌ 悪い例 - 不明確な省略形
const usrCfg = loadConfig();
function calcTtl(arr) { }

// ✓ 良い例 - 明確で読みやすい
const userConfig = loadConfig();
function calculateTotal(amounts) { }

// ✓ 許容可能 - よく知られた省略形
const htmlElement = document.getElementById('main');
const apiUrl = process.env.API_URL;

ブール値の命名

// ❌ 悪い例 - 状態が不明確
const login = user.authenticated;
const status = checkUser();

// ✓ 良い例 - ブール値の意図が明確
const isLoggedIn = user.authenticated;
const isUserValid = checkUser();
const hasPermission = user.roles.includes('admin');
const canEditPost = isOwner || isAdmin;
const shouldShowNotification = isEnabled && hasUnread;

マジックナンバー

// ❌ 悪い例 - 無名定数
if (age > 18) { }
setTimeout(callback, 3600000);

// ✓ 良い例 - 名前付き定数
const LEGAL_AGE = 18;
const ONE_HOUR_IN_MS = 60 * 60 * 1000;

if (age > LEGAL_AGE) { }
setTimeout(callback, ONE_HOUR_IN_MS);

使用例

@naming-analyzer
@naming-analyzer src/
@naming-analyzer UserService.js
@naming-analyzer --conventions
@naming-analyzer --fix-all

レポート形式

# 命名分析レポート

## サマリー
- 分析対象: 156項目
- 問題発見数: 23件
- 重大: 5件 (誤解を招く名前)
- 主要: 12件 (不明確/あいまい)
- 軽微: 6件 (規約違反)

---

## 重大な問題 (5件)

### src/services/UserService.js:45
**現在**: `getUser(id)`
**問題**: 関数名は読み取り専用を示唆していますが、副作用があります (lastLoginを更新)
**深刻度**: 重大 - 誤解を招く
**提案**: `fetchAndUpdateUserLogin(id)`
**理由**: 名前は変更を反映すべき

### src/utils/helpers.js:23
**現在**: `validate(x)`
**問題**: 汎用的なパラメータ名、何を検証しているか不明確
**深刻度**: 重大 - あいまいすぎる
**提案**: `validateEmail(emailAddress)`
**理由**: 具体的な名前は明確性を向上させる

---

## 主要な問題 (12件)

### src/components/DataList.jsx:12
**現在**: `const d = new Date()`
**問題**: 大きなスコープ内の単一文字変数
**深刻度**: 主要
**提案**: `const currentDate = new Date()`
**理由**: 明確性と検索可能性

### src/api/client.js:67
**現在**: `function proc(data) {}`
**問題**: 省略形の関数名
**深刻度**: 主要
**提案**: `function processApiResponse(data) {}`
**理由**: 完全な単語の方が読みやすい

### src/models/User.js:34
**現在**: `user.active`
**問題**: プレフィックスなしのブール値プロパティ
**深刻度**: 主要
**提案**: `user.isActive`
**理由**: ブール値命名規約に従う

### src/utils/format.js:89
**現在**: `const MAX = 100`
**問題**: 汎用的な定数名
**深刻度**: 主要
**提案**: `const MAX_RETRY_ATTEMPTS = 100`
**理由**: 目的が明確

---

## 軽微な問題 (6件)

### src/config/settings.js:12
**現在**: `const API_url = '...'`
**問題**: 大文字小文字の混合 (UPPER と lower の混在)
**深刻度**: 軽微
**提案**: `const API_URL = '...'` または `const apiUrl = '...'`
**理由**: 規約の一貫性

### src/helpers/string.js:45
**現在**: `function strToNum(s) {}`
**問題**: 関数とパラメータの省略
**深刻度**: 軽微
**提案**: `function stringToNumber(value) {}`
**理由**: 簡潔さより明確性

---

## 規約違反

### ブール値プレフィックスの不一貫性
**場所**: 8ファイル
**問題**: `is`, `has`, `can` の混合使用 vs プレフィックスなし
**推奨事項**: ブール値プレフィックスを統一する
- 状態には `is` を使用: `isActive`, `isVisible`
- 所有には `has` を使用: `hasPermission`, `hasError`
- 能力には `can` を使用: `canEdit`, `canDelete`
- 判定には `should` を使用: `shouldRender`, `shouldValidate`

### 命名規約の混在
**場所**: src/legacy/
**問題**: JavaScriptで camelCase と snake_case の混在
**推奨事項**: 一貫性のためすべてを camelCase に変換

---

## 提案される名前変更

### 高優先度 (誤解を招く、重大)
1. `getUser` → `fetchAndUpdateUserLogin` (src/services/UserService.js:45)
2. `validate` → `validateEmail` (src/utils/helpers.js:23)
3. `process` → `processPaymentTransaction` (src/payment/processor.js:67)

### 中優先度 (明確性)
1. `d` → `currentDate` (7箇所)
2. `temp` → `previousValue` (4箇所)
3. `data` → `apiResponse` またはより具体的 (12箇所)
4. `arr` → `items`, `values`, またはより具体的 (8箇所)

### 低優先度 (規約)
1. `active` → `isActive` (12箇所)
2. `error` → `hasError` (6箇所)
3. `API_url` → `API_URL` (3箇所)

---

## 従うべき命名パターン

### 関数/メソッド
- 動詞: `get`, `set`, `create`, `update`, `delete`, `fetch`, `calculate`, `validate`
- 明確なアクション: `sendEmail()`, `parseJSON()`, `formatCurrency()`

### クラス
- 名詞: `UserService`, `PaymentProcessor`, `EmailValidator`
- 汎用的なものを回避: `Manager`, `Helper`, `Utility` は必要な場合を除き使用しない

### 変数
- 名詞または名詞句: `user`, `emailAddress`, `totalAmount`
- 説明的: `userList` (`list` ではなく), `activeUsers` (`users2` ではなく)

### 定数
- すべて大文字とアンダースコア: `MAX_RETRY_ATTEMPTS`, `DEFAULT_TIMEOUT`
- 単位を含める: `CACHE_DURATION_MS`, `MAX_FILE_SIZE_MB`

### ブール値
- 質問形式: `isValid`, `hasPermission`, `canEdit`
- 肯定的: `isEnabled` (`isDisabled` ではなく。肯定を優先)

---

## リファクタリングスクリプト

これらの変更を適用するリファクタリングスクリプトを作成してほしいですか?
これは以下を実行します:
1. すべての推奨項目を名前変更
2. すべての参照を更新
3. gitの履歴を保持
4. マイグレーションガイドを生成

---

## ベストプラクティス**すべき こと**:
- 省略形より完全な単語を使用
- 具体的で説明的であること
- 言語の規約に従う
- 一貫したパターンを使用
- ブール値を明確にする
- 定数に単位を含める

✗ **してはいけない こと**:
- 単一文字を使用 (ループの例外: i, j, k)
- あいまいな名前を使用 (data, info, temp, x)
- 命名規約を混在させる
- 誤解を招く名前を使用
- 過度に省略する
- 最新のコードでハンガリアン記法を使用

命名判定ツリー

ブール値ですか?
├─ はい → is/has/can/should プレフィックスを使用
└─ いいえ → 関数ですか?
    ├─ はい → 動詞句を使用 (アクション)
    └─ いいえ → クラスですか?
        ├─ はい → 名詞を使用 (PascalCase)
        └─ いいえ → 定数ですか?
            ├─ はい → UPPER_SNAKE_CASE を使用
            └─ いいえ → 説明的な名詞を使用 (camelCase/snake_case)

注釈

  • 簡潔さより明確性を優先する
  • 文脈が重要 (ループカウンターは i, j でも構わない)
  • よく知られた省略形は許容 (html, api, url, id)
  • プロジェクト内の一貫性は完璧な命名より重要
  • 理解が深まるにつれて名前をリファクタリング
  • IDE の名前変更リファクタリングを使用してすべての参照を安全に更新

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

詳細情報

作者
softaworks
リポジトリ
softaworks/agent-toolkit
ライセンス
MIT
最終更新
不明

Source: https://github.com/softaworks/agent-toolkit / ライセンス: MIT

関連スキル

汎用その他⭐ リポ 1,982

superfluid

Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper

by LeoYeAI
汎用その他⭐ リポ 100

civ-finish-quotes

実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。

by huxiuhan
汎用その他⭐ リポ 1,110

nookplot

Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。

by BankrBot
汎用その他⭐ リポ 59

web3-polymarket

Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。

by elophanto
汎用その他⭐ リポ 52

ethskills

Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。

by jiayaoqijia
汎用その他⭐ リポ 44

xxyy-trade

このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。

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