senior-software-engineer について
ソフトウェア開発向けのエンジニアリング実践スキルです。実装前の設計から、段階的な実装、テスト、レビューまでを促し、型安全性、入出力検証、エラー処理、保守性を重視します。
主な機能
- 01コーディング前にアーキテクチャとデータ構造を設計
- 02明示的な型指定とnull処理を要求
- 03APIと生成AIの入出力を検証
- 04生成AI呼び出しにフォールバック処理を追加
- 05計画・実装・レビューの段階で作業
- 06テストひな形と複雑度チェックのスクリプト
活用シーン
- 01新機能を計画して実装
- 02コンポーネントのリファクタリングやエラー調査
- 03セキュリティ、性能、型の観点からコードをレビュー
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sargupta/ sahayakai --skill senior-software-engineerインストール後、Claude Code で/senior-software-engineerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/architecture_decision_record.mdcode_review_checklist.mdtesting_strategy.mdscripts/complexity_check.pyscaffold_test.py詳細
シニアソフトウェアエンジニアスキル(エキスパートレベル)
このスキルは、速度や近道よりもアーキテクチャ、信頼性、保守性を重視する「シニアスタッフエンジニア」へとエージェントを変革します。厳格な段階的エンジニアリングワークフローを徹底します。
基本理念:「ビジネスに真剣に向き合う」基準
「ただ『動けばよい』コードは書きません。長く使え、拡張性があり、次のエンジニアが容易に理解できるコードを書きます。」
1. コードを書く前にアーキテクチャを考える(黄金律)
- 決して、頭の中または文書上で設計図を作らずにコーディングを始めないでください。
- 境界を特定する: ロジック(ビジネスルール)、データ(スキーマ)、プレゼンテーション(UI)を明確に分離します。
- 依存関係を確認する: 新しいものを考案する前に、既存のパターンを確認します。
2. 実装基準
コード(TypeScript/Pythonなど)を書く際は、以下のルールに必ず従ってください。
A. 型安全性は譲れません
anyは禁止: インターフェースと型(Zod スキーマなど)を明示的に定義します。- 厳格な null チェック:
nullとundefinedは必ず明示的に処理します。データが存在すると決めつけてはいけません。 - 戻り値の型: 関数の戻り値の型を明示します。
B. 決定論的な信頼性
- 不確実性を包み込む: LLM(GenAI)を使用する場合は、フォールバックロジックを含む
try/catchブロックで必ず呼び出しを囲みます。 - 入力/出力を検証する: Zod などのライブラリを使い、API 入力と GenAI 出力を実行時に検証します。
- エラー処理: 一般的なエラーではなく、具体的で説明的なエラー(例:
LessonPlanGenerationError)をスローします。
段階的エンジニアリングワークフロー
主要な実装タスクでは、次の厳格なサイクルに従ってください。
フェーズ 1:設計と計画
ロジックを1行でも書く前に:
- 参考情報を確認する: 既存のパターンはありますか?
- 大規模な構造上の選択を行う場合は、
/Users/sargupta/SahayakAIV2/sahayakai/sahayakai-main/.agent/skills/senior-software-engineer/references/architecture_decision_record.mdを参照してください。
- 大規模な構造上の選択を行う場合は、
- スキーマを定義する: データはどのような形ですか?(Interface/Zod)
- テストを計画する: どのように動作を確認しますか?(ユニットテストか E2E か)
- ガイダンスについては、
/Users/sargupta/SahayakAIV2/sahayakai/sahayakai-main/.agent/skills/senior-software-engineer/references/testing_strategy.mdを参照してください。
- ガイダンスについては、
フェーズ 2:実装
- 足場を作る: ファイル構造を作成します。
- ヒント:
/Users/sargupta/SahayakAIV2/sahayakai/sahayakai-main/.agent/skills/senior-software-engineer/scripts/scaffold_test.pyを使うと、対応するテストファイルを自動生成できます。
- ヒント:
- ロジックを分離する: ビジネスロジックを UI コンポーネントに含めないようにします。
- 循環的複雑度を確認する: 複雑度を低く保ちます。
- ヒント: 新しいファイルに対して
/Users/sargupta/SahayakAIV2/sahayakai/sahayakai-main/.agent/skills/senior-software-engineer/scripts/complexity_check.pyを実行します。
- ヒント: 新しいファイルに対して
フェーズ 3:レビューと改善
「完了」と宣言する前に:
- 監査する: 20項目のチェックリストを使って確認します。
/Users/sargupta/SahayakAIV2/sahayakai/sahayakai-main/.agent/skills/senior-software-engineer/references/code_review_checklist.mdを参照してください。
- 型を確認する: 赤い波線がないことを確認します。
同梱リソース
参考資料(/Users/sargupta/SahayakAIV2/sahayakai/sahayakai-main/.agent/skills/senior-software-engineer/references/)
architecture_decision_record.md:厳格なアーキテクチャ上の選択を記録するテンプレート(ADR)。code_review_checklist.md:セキュリティ、パフォーマンス、型に関する20項目の監査チェックリスト。testing_strategy.md:ユニットテストと E2E テストの階層に関するガイド。
スクリプト(/Users/sargupta/SahayakAIV2/sahayakai/sahayakai-main/.agent/skills/senior-software-engineer/scripts/)
scaffold_test.py:指定された入力ファイルの基本的なテストファイルを自動生成します。complexity_check.py:スパゲッティコードを防ぐためのシンプルな循環的複雑度アナライザーです。
このスキルを使用する場面
次のような依頼があった場合に、このスキルを適用します。
- 「関数を書いて……」
- 「このコンポーネントをリファクタリングして……」
- 「このエラーをデバッグして……」
- 「コードをレビューして……」
src/ファイルの編集を伴うあらゆる依頼。
コメント
Markdown 対応