scaffold-module

Generate new modules following pplx-sdk's layered architecture and conventions.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "scaffold-module" with this command: npx skills add pv-udpv/pplx-sdk/pv-udpv-pplx-sdk-scaffold-module

scaffold-module

Generate new modules following pplx-sdk's layered architecture and conventions.

When to use

Use this skill when creating a new transport backend, domain service, or shared utility for the SDK.

Instructions

  • Identify the target layer (core, shared, transport, domain, or client).

  • Create the source file with proper imports, type annotations, and docstrings.

  • Create the test file in tests/test_<module>.py .

  • Update init.py exports in the target package.

  • Verify with pytest tests/test_<module>.py -v and mypy pplx_sdk/ .

Layer Rules

Layer Directory May Import From Purpose

Core pplx_sdk/core/

Nothing Protocols, types, exceptions

Shared pplx_sdk/shared/

core/

Auth, logging, retry utilities

Transport pplx_sdk/transport/

core/ , shared/

HTTP/SSE backends

Domain pplx_sdk/domain/

core/ , shared/ , transport/

Business logic services

Client pplx_sdk/client.py

All layers High-level API

Source File Template

"""Module description."""

from future import annotations

from typing import Any, Dict, Optional

from pplx_sdk.core.exceptions import TransportError

class NewComponent: """Component description.

Example:
    >>> component = NewComponent(base_url="https://api.example.com")
    >>> result = component.execute()
"""

def __init__(
    self,
    base_url: str,
    auth_token: Optional[str] = None,
    timeout: float = 30.0,
) -> None:
    """Initialize component.

    Args:
        base_url: Base URL for API requests
        auth_token: Authentication token
        timeout: Request timeout in seconds
    """
    self.base_url = base_url
    self.auth_token = auth_token
    self.timeout = timeout

Test File Template

"""Tests for new_component module."""

import pytest from pplx_sdk.core.exceptions import TransportError

def test_new_component_initialization(): component = NewComponent(base_url="https://api.test.com") assert component.base_url == "https://api.test.com" assert component.timeout == 30.0

def test_new_component_error_handling(): component = NewComponent(base_url="https://invalid.test") with pytest.raises(TransportError): component.execute()

Checklist

  • from future import annotations at top

  • Complete type annotations on all functions

  • Google-style docstrings on public APIs

  • Custom exceptions from pplx_sdk.core.exceptions

  • Tests with Arrange-Act-Assert pattern

  • init.py exports updated

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

spa-reverse-engineer

No summary provided by upstream source.

Repository SourceNeeds Review
General

sse-streaming

No summary provided by upstream source.

Repository SourceNeeds Review
General

reverse-engineer

No summary provided by upstream source.

Repository SourceNeeds Review