jpskill.com
📦 その他 コミュニティ

test-scaffolding

ソースコードを解析し、プログラミング言語に合ったテストファイルの雛形を自動生成することで、テストコード作成の効率化と品質向上を支援するSkill。

📜 元の英語説明(参考)

Generate test file scaffolds from source analysis with language-appropriate templates.

🇯🇵 日本人クリエイター向け解説

一言でいうと

ソースコードを解析し、プログラミング言語に合ったテストファイルの雛形を自動生成することで、テストコード作成の効率化と品質向上を支援するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o test-scaffolding.zip https://jpskill.com/download/18058.zip && unzip -o test-scaffolding.zip && rm test-scaffolding.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/18058.zip -OutFile "$d\test-scaffolding.zip"; Expand-Archive "$d\test-scaffolding.zip" -DestinationPath $d -Force; ri "$d\test-scaffolding.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して test-scaffolding.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → test-scaffolding フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

テストスキャフォールディング Skill

ソースファイル用のテストファイルのスキャフォールドを生成し、TDDワークフローを可能にします。スキャフォールドには、レーン実行中にテストエンジニアエージェントが埋める TODO スタブが含まれています。

変数

変数 デフォルト 説明
SOURCE_FILES [] テストのスキャフォールドを作成するソースファイルのリスト
TEST_FRAMEWORK auto 使用するフレームワーク (マニフェストから自動検出)
OUTPUT_DIR tests/ 生成されたテストファイルの配置場所
NAMING_CONVENTION language-default テストファイルの命名パターン
INCLUDE_FIXTURES true フィクスチャスタブを生成するかどうか
STUB_STYLE todo todo (TODO コメント) または skip (スキップマーカー)

ワークフロー (必須)

  1. スタックの検出: パッケージマニフェスト (pyproject.toml, package.json, go.mod, Cargo.toml) を読み込みます。
  2. フレームワークの識別: テスト依存関係 (pytest, vitest, jest, testing, cargo test) を照合します。
  3. ソースの分析: 各ソースファイルからパブリック関数、クラス、メソッドを抽出します。
  4. テストへのマッピング: 命名規則を適用して、テストファイルのパスを決定します。
  5. スキャフォールドの生成: 言語テンプレートを使用し、テスト可能なユニットごとに TODO スタブを挿入します。
  6. マニフェストの返却: 生成されたファイル、スキップされたファイル、およびユニット数を含む JSON を返します。

サポートされているフレームワーク

言語 フレームワーク 検出
Python pytest, unittest pyproject.toml[tool.pytest] または deps に pytest が存在
TypeScript vitest, jest package.json → devDeps に vitest または jest が存在
JavaScript vitest, jest package.json → devDeps に vitest または jest が存在
Go testing go.mod → 組み込みの testing パッケージ
Rust cargo test Cargo.toml → 組み込みのテストハーネス
Dart flutter_test, test pubspec.yaml → dev_deps に flutter_test または test が存在

命名規則

言語 ソース テストファイル
Python src/auth/login.py tests/auth/test_login.py
TypeScript src/auth/login.ts src/auth/login.test.ts または tests/auth/login.test.ts
Go pkg/auth/login.go pkg/auth/login_test.go
Rust src/auth/login.rs インライン #[cfg(test)] モジュール
Dart lib/auth/login.dart test/auth/login_test.dart

ソース分析のヒューリスティクス

Python

  • def function_name( を検出し、name が _ で始まらない場合
  • パブリッククラスの class ClassName: を検出
  • クラス内のメソッドシグネチャを抽出
  • __init__, __str__ など (dunder メソッド) をスキップ

TypeScript/JavaScript

  • export function, export const, export class を検出
  • export default function/class を検出
  • JSDoc/TSDoc を解析してパラメータ型を取得

Go

  • エクスポートされた関数 (大文字の名前) を検出
  • 構造体でエクスポートされたメソッドを検出
  • エクスポートされた型を検出

Rust

  • pub fn, pub struct, pub enum を検出
  • パブリックメソッドを持つ impl ブロックを検出

出力スキーマ

{
  "format": "scaffold-manifest/v1",
  "generated_at": "<ISO-8601 UTC>",
  "framework": "pytest",
  "generated": [
    {
      "source": "src/auth/login.py",
      "test": "tests/auth/test_login.py",
      "units": ["login", "logout", "refresh_token"],
      "unit_count": 3
    }
  ],
  "skipped": [
    {
      "source": "src/auth/utils.py",
      "reason": "test file exists"
    }
  ],
  "total_units": 12
}

危険信号 (停止して確認)

  • パッケージマニフェストが見つからない → フレームワークについてユーザーにプロンプトを表示
  • ソースファイルにパブリック関数がない → 警告付きでスキップ
  • テストファイルが既に存在する → --force が指定されていない限りスキップ
  • ソースファイルを解析できない → 警告をログに記録し、他のファイルで続行

統合ポイント

/ai-dev-kit:plan-phase との連携

  • Tests Owned Files 列を自動的に入力するために呼び出されます。
  • 実装タスクからの Owned Artifacts をソースファイルとして使用します。

/ai-dev-kit:execute-lane との連携

  • テストエンジニアエージェントの実行前に呼び出されます。
  • chore(P{n}-{lane}): scaffold test files でスキャフォールドをコミットします。

test-engineer エージェントとの連携

  • エージェントはスキャフォールド内の TODO マーカーを検出します。
  • テスト実装を埋めます。
  • 完了したら TODO マーカーを削除します。

プロバイダーノート

  • /ai-dev-kit:scaffold-tests が呼び出されたときにこの skill を使用します。
  • 可視性のために、スキップマーカーよりも TODO スタイルのスタブを優先します。
  • テスト構成でソースファイル構造を保持します。
  • 検出されたフレームワークに基づいて適切なインポートを含めます。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Test Scaffolding Skill

Generate test file scaffolds for source files, enabling TDD workflows. Scaffolds contain TODO stubs that the test-engineer agent fills during lane execution.

Variables

Variable Default Description
SOURCE_FILES [] List of source files to scaffold tests for
TEST_FRAMEWORK auto Framework to use (auto-detects from manifest)
OUTPUT_DIR tests/ Where to place generated test files
NAMING_CONVENTION language-default Test file naming pattern
INCLUDE_FIXTURES true Generate fixture stubs
STUB_STYLE todo todo (TODO comments) or skip (skip markers)

Workflow (Mandatory)

  1. Detect stack: Read package manifest (pyproject.toml, package.json, go.mod, Cargo.toml)
  2. Identify framework: Match test dependencies (pytest, vitest, jest, testing, cargo test)
  3. Analyze sources: Extract public functions, classes, methods from each source file
  4. Map to tests: Apply naming convention to determine test file paths
  5. Generate scaffolds: Use language template, insert TODO stubs for each testable unit
  6. Return manifest: JSON with generated files, skipped files, and unit counts

Supported Frameworks

Language Frameworks Detection
Python pytest, unittest pyproject.toml[tool.pytest] or pytest in deps
TypeScript vitest, jest package.jsonvitest or jest in devDeps
JavaScript vitest, jest package.jsonvitest or jest in devDeps
Go testing go.mod → built-in testing package
Rust cargo test Cargo.toml → built-in test harness
Dart flutter_test, test pubspec.yamlflutter_test or test in dev_deps

Naming Conventions

Language Source Test File
Python src/auth/login.py tests/auth/test_login.py
TypeScript src/auth/login.ts src/auth/login.test.ts or tests/auth/login.test.ts
Go pkg/auth/login.go pkg/auth/login_test.go
Rust src/auth/login.rs inline #[cfg(test)] module
Dart lib/auth/login.dart test/auth/login_test.dart

Source Analysis Heuristics

Python

  • Detect def function_name( where name doesn't start with _
  • Detect class ClassName: for public classes
  • Extract method signatures within classes
  • Skip __init__, __str__, etc. (dunder methods)

TypeScript/JavaScript

  • Detect export function, export const, export class
  • Detect export default function/class
  • Parse JSDoc/TSDoc for parameter types

Go

  • Detect exported functions (capitalized names)
  • Detect exported methods on structs
  • Detect exported types

Rust

  • Detect pub fn, pub struct, pub enum
  • Detect impl blocks with public methods

Output Schema

{
  "format": "scaffold-manifest/v1",
  "generated_at": "<ISO-8601 UTC>",
  "framework": "pytest",
  "generated": [
    {
      "source": "src/auth/login.py",
      "test": "tests/auth/test_login.py",
      "units": ["login", "logout", "refresh_token"],
      "unit_count": 3
    }
  ],
  "skipped": [
    {
      "source": "src/auth/utils.py",
      "reason": "test file exists"
    }
  ],
  "total_units": 12
}

Red Flags (Stop & Verify)

  • No package manifest found → prompt user for framework
  • Source file has no public functions → skip with warning
  • Test file already exists → skip unless --force specified
  • Unable to parse source file → log warning, continue with others

Integration Points

With /ai-dev-kit:plan-phase

  • Called to auto-populate Tests Owned Files column
  • Uses Owned Artifacts from impl tasks as source files

With /ai-dev-kit:execute-lane

  • Called before test-engineer agent runs
  • Scaffolds committed with chore(P{n}-{lane}): scaffold test files

With test-engineer agent

  • Agent detects TODO markers in scaffolds
  • Fills in test implementations
  • Removes TODO markers when complete

Provider Notes

  • Use this skill when /ai-dev-kit:scaffold-tests is invoked
  • Prefer TODO-style stubs over skip markers for visibility
  • Preserve source file structure in test organization
  • Include proper imports based on detected framework