scaffold-module
Original:🇺🇸 English
Translated
Scaffold new modules and components for pplx-sdk following the layered architecture and established code patterns.
2installs
Sourcepv-udpv/pplx-sdk
Added on
NPX Install
npx skill4agent add pv-udpv/pplx-sdk scaffold-moduleTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →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 exports in the target package.
__init__.py - Verify with and
pytest tests/test_<module>.py -v.mypy pplx_sdk/
Layer Rules
| Layer | Directory | May Import From | Purpose |
|---|---|---|---|
| Core | | Nothing | Protocols, types, exceptions |
| Shared | | | Auth, logging, retry utilities |
| Transport | | | HTTP/SSE backends |
| Domain | | | Business logic services |
| Client | | All layers | High-level API |
Source File Template
python
"""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 = timeoutTest File Template
python
"""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
- at top
from __future__ import annotations - 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
- exports updated
__init__.py