Agent skill

test-scaffolding

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

Stars 232
Forks 15

Install this agent skill to your Project

npx add-skill https://github.com/aiskillstore/marketplace/tree/main/skills/consiliency/test-scaffolding

SKILL.md

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

json
{
  "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

Expand your agent's capabilities with these related and highly-rated skills.

aiskillstore/marketplace

perigon-backend

Perigon ASP.NET Core + EF Core + Aspire conventions

232 15
Explore
aiskillstore/marketplace

perigon-agent

Pointers for Copilot/agents to apply Perigon conventions

232 15
Explore
aiskillstore/marketplace

perigon-angular

Angular 21+ standalone/Material/signal conventions for Perigon WebApp

232 15
Explore
aiskillstore/marketplace

fastapi-mastery

Comprehensive FastAPI development skill covering REST API creation, routing, request/response handling, validation, authentication, database integration, middleware, and deployment. Use when working with FastAPI projects, building APIs, implementing CRUD operations, setting up authentication/authorization, integrating databases (SQL/NoSQL), adding middleware, handling WebSockets, or deploying FastAPI applications. Triggered by requests involving .py files with FastAPI code, API endpoint creation, Pydantic models, or FastAPI-specific features.

232 15
Explore
aiskillstore/marketplace

context7-efficient

Token-efficient library documentation fetcher using Context7 MCP with 86.8% token savings through intelligent shell pipeline filtering. Fetches code examples, API references, and best practices for JavaScript, Python, Go, Rust, and other libraries. Use when users ask about library documentation, need code examples, want API usage patterns, are learning a new framework, need syntax reference, or troubleshooting with library-specific information. Triggers include questions like "Show me React hooks", "How do I use Prisma", "What's the Next.js routing syntax", or any request for library/framework documentation.

232 15
Explore
aiskillstore/marketplace

browser-use

Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction.

232 15
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results