复制安装命令
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
Then, install the skills:
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
来源文件:README.md
/plugin marketplace add jeffallan/claude-skills
Then, install the skills:
/plugin install fullstack-dev-skills@jeffallan
For all installation methods and first steps, see the Quick Start Guide.
Full documentation: jeffallan.github.io/claude-skills
See Skills Guide for the full list, decision trees, and workflow combinations.
Skills activate automatically based on your request:
# Backend Development
"Implement JWT authentication in my NestJS API"
→ Activates: NestJS Expert → Loads: references/authentication.md
# Frontend Development
"Build a React component with Server Components"
→ Activates: React Expert → Loads: references/server-components.md
Complex tasks combine multiple skills:
Feature Development: Feature Forge → Architecture Designer → Fullstack Guardian → Test Master → DevOps Engineer
Bug Investigation: Debugging Wizard → Framework Expert → Test Master → Code Reviewer
Security Hardening: Secure Code Guardian → Security Reviewer → Test Master
Surface and validate Claude's hidden assumptions about your project with /common-ground. See the Common Ground Guide for full documentation.
The 9 workflow commands manage epics from discovery through retrospectives, integrating with Jira and Confluence. See Workflow Commands Reference for the full command reference and lifecycle diagrams.
[!TIP] Setup: Workflow commands require an Atlassian MCP server. See the Atlassian MCP Setup Guide.
/common-groundSee Contributing for guidelines on adding skills, writing references, and submitting pull requests.
See Changelog for full version history and release notes.
MIT License - See LICENSE file for details.
Built by jeffallan
Principal Consultant at Synergetic Solutions
Fullstack engineering, security engineering, compliance, and technical due diligence.
Built for Claude Code | 9 Workflows | 366 Reference Files | 66 Skills
name: python-pro
description: Use when building Python 3.11+ applications requiring type safety, async programming, or robust error handling. Generates type-annotated Python code, configures mypy in strict mode, writes pytest test suites with fixtures and mocking, and validates code with black and ruff. Invoke for type hints, async/await patterns, dataclasses, dependency injection, logging configuration, and structured error handling.
license: MIT
metadata:
author: https://github.com/Jeffallan
version: "1.1.0"
domain: language
triggers: Python development, type hints, async Python, pytest, mypy, dataclasses, Python best practices, Pythonic code
role: specialist
scope: implementation
output-format: code
related-skills: fastapi-expert, devops-engineerModern Python 3.11+ specialist focused on type-safe, async-first, production-ready code.
mypy --strict, black, ruff
Load detailed guidance based on context:
| Topic | Reference | Load When |
|---|---|---|
| Type System | references/type-system.md | Type hints, mypy, generics, Protocol |
| Async Patterns | references/async-patterns.md | async/await, asyncio, task groups |
| Standard Library | references/standard-library.md | pathlib, dataclasses, functools, itertools |
| Testing | references/testing.md | pytest, fixtures, mocking, parametrize |
| Packaging | references/packaging.md | poetry, pip, pyproject.toml, distribution |
X | None instead of Optional[X] (Python 3.10+)from pathlib import Path
def read_config(path: Path) -> dict[str, str]:
"""Read configuration from a file.
Args:
path: Path to the configuration file.
Returns:
Parsed key-value configuration entries.
Raises:
FileNotFoundError: If the config file does not exist.
ValueError: If a line cannot be parsed.
"""
config: dict[str, str] = {}
with path.open() as f:
for line in f:
key, _, value = line.partition("=")
if not key.strip():
raise ValueError(f"Invalid config line: {line!r}")
config[key.strip()] = value.strip()
return config
from dataclasses import dataclass, field
@dataclass
class AppConfig:
host: str
port: int
debug: bool = False
allowed_origins: list[str] = field(default_factory=list)
def __post_init__(self) -> None:
if not (1 <= self.port <= 65535):
raise ValueError(f"Invalid port: {self.port}")
import asyncio
import httpx
async def fetch_all(urls: list[str]) -> list[bytes]:
"""Fetch multiple URLs concurrently."""
async with httpx.AsyncClient() as client:
tasks = [client.get(url) for url in urls]
responses = await asyncio.gather(*tasks)
return [r.content for r in responses]
import pytest
from pathlib import Path
@pytest.fixture
def config_file(tmp_path: Path) -> Path:
cfg = tmp_path / "config.txt"
cfg.write_text("host=localhost\nport=8080\n")
return cfg
@pytest.mark.parametrize("port,valid", [(8080, True), (0, False), (99999, False)])
def test_app_config_port_validation(port: int, valid: bool) -> None:
if valid:
AppConfig(host="localhost", port=port)
else:
with pytest.raises(ValueError):
AppConfig(host="localhost", port=port)
[tool.mypy]
python_version = "3.11"
strict = true
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
Clean mypy --strict output looks like:
Success: no issues found in 12 source files
Any reported error (e.g., error: Function is missing a return type annotation) must be resolved before the implementation is considered complete.
When implementing Python features, provide:
Python 3.11+, typing module, mypy, pytest, black, ruff, dataclasses, async/await, asyncio, pathlib, functools, itertools, Poetry, Pydantic, contextlib, collections.abc, Protocol
评论 (0)
暂无评论,成为第一个评论者吧!