Agently/Skill Store/コーディング支援スキル
💻

コーディング支援スキル

要件の明確化からアーキテクチャ提案、実装、コードレビューまでを支援するスキル。

codingby agently-team

コーディング支援スキル


概要

要件の明確化からアーキテクチャ提案、実装、コードレビューまでを支援するスキル。

既存コードベースのスタイルに合わせた一貫性のあるコードを出力する。


発動条件

ユーザーが「コード書いて」「実装して」「プログラム」「関数作って」「コンポーネント作って」等の開発依頼をしたとき。


作業フロー


Step 1: 要件の明確化

以下が不明確な場合のみ質問する(推測可能なら進める):

  • **何を作るか** — 機能の目的と期待する動作
  • **技術スタック** — 言語、フレームワーク、ランタイム
  • **制約** — パフォーマンス要件、対応環境、依存制限

  • Step 2: アーキテクチャ / ファイル構成の提案

  • 既存プロジェクトがある場合、その構成に従う
  • 新規の場合、以下を提案:
  • - ディレクトリ構成

    - 責務の分離方針

    - データフローの概要


    Step 3: 実装

    以下のルールに従ってコードを書く。


    コーディングルール


    一般原則

  • 関数は1つの責務に限定する(50行を超えたら分割を検討)
  • マジックナンバーは定数化する
  • ネストは3段階以内(早期リターンで浅くする)
  • コメントは「なぜ」を書く(「何を」はコード自体で表現)
  • TODO コメントには理由と期限を書く: `// TODO(2026-04): ◯◯のため暫定対応`

  • セキュリティ

  • ユーザー入力は必ずバリデーションする
  • SQL はパラメタライズドクエリを使う(文字列結合禁止)
  • 機密情報はハードコードしない
  • `eval()` / `dangerouslySetInnerHTML` は原則使わない
  • CORS 設定は最小限に絞る

  • エラーハンドリング

  • try-catch は具体的なエラー型で捕捉する
  • エラーメッセージはユーザー向けと開発者向けを分離する
  • 非同期処理は必ずエラーハンドリングを入れる
  • リトライが適切な場合は指数バックオフで実装する

  • TypeScript 固有

  • `any` は使わない(`unknown` + 型ガードを使う)
  • 戻り値の型は明示する(推論に頼らない)
  • `interface` を優先(`type` は union / intersection 時のみ)
  • Optional chaining `?.` と Nullish coalescing `??` を活用する

  • React 固有

  • コンポーネントは関数コンポーネント + hooks
  • Props の型定義を必ず書く
  • `useEffect` の依存配列を正確に書く
  • 状態管理: ローカルで済むなら `useState`、複雑なら `useReducer`
  • メモ化(`useMemo` / `useCallback`)は計測してから適用

  • Python 固有

  • 型ヒントを付ける
  • docstring は Google スタイル
  • f-string を使う(format() / % は使わない)
  • with 文でリソース管理

  • 既存コードへの適合

  • インデント、命名規則、import 順序は既存コードに合わせる
  • 既存のユーティリティ関数やヘルパーを再利用する
  • 新しいライブラリの追加は最小限にする
  • 既存のテストパターンに合わせる

  • コードレビューチェックリスト

    出力したコードに対して以下を自己チェックする:

  • [ ] 要件を満たしているか
  • [ ] エッジケースを処理しているか
  • [ ] セキュリティリスクがないか
  • [ ] パフォーマンスに問題がないか
  • [ ] 既存コードのスタイルに合っているか
  • [ ] エラーハンドリングが適切か
  • [ ] テストしやすい構造か

  • 出力フォーマット

    1. **方針説明**(2〜3行で何をどう実装するか)

    2. **コード**(ファイル単位でコメント付き)

    3. **使い方**(呼び出し例やコマンド)

    4. **注意点**(既知の制限、将来の改善点)