{"id":"3a3299f8-7f3e-4679-86c9-cbf904e24e3b","shortId":"dtd8nE","kind":"skill","title":"python-development-python-scaffold","tagline":"You are a Python project architecture expert specializing in scaffolding production-ready Python applications. Generate complete project structures with modern tooling (uv, FastAPI, Django), type hint","description":"# Python Project Scaffolding\n\nYou are a Python project architecture expert specializing in scaffolding production-ready Python applications. Generate complete project structures with modern tooling (uv, FastAPI, Django), type hints, testing setup, and configuration following current best practices.\n\n## Use this skill when\n\n- Working on python project scaffolding tasks or workflows\n- Needing guidance, best practices, or checklists for python project scaffolding\n\n## Do not use this skill when\n\n- The task is unrelated to python project scaffolding\n- You need a different domain or tool outside this scope\n\n## Context\n\nThe user needs automated Python project scaffolding that creates consistent, type-safe applications with proper structure, dependency management, testing, and tooling. Focus on modern Python patterns and scalable architecture.\n\n## Requirements\n\n$ARGUMENTS\n\n## Instructions\n\n### 1. Analyze Project Type\n\nDetermine the project type from user requirements:\n- **FastAPI**: REST APIs, microservices, async applications\n- **Django**: Full-stack web applications, admin panels, ORM-heavy projects\n- **Library**: Reusable packages, utilities, tools\n- **CLI**: Command-line tools, automation scripts\n- **Generic**: Standard Python applications\n\n### 2. Initialize Project with uv\n\n```bash\n# Create new project with uv\nuv init <project-name>\ncd <project-name>\n\n# Initialize git repository\ngit init\necho \".venv/\" >> .gitignore\necho \"*.pyc\" >> .gitignore\necho \"__pycache__/\" >> .gitignore\necho \".pytest_cache/\" >> .gitignore\necho \".ruff_cache/\" >> .gitignore\n\n# Create virtual environment\nuv venv\nsource .venv/bin/activate  # On Windows: .venv\\Scripts\\activate\n```\n\n### 3. Generate FastAPI Project Structure\n\n```\nfastapi-project/\n├── pyproject.toml\n├── README.md\n├── .gitignore\n├── .env.example\n├── src/\n│   └── project_name/\n│       ├── __init__.py\n│       ├── main.py\n│       ├── config.py\n│       ├── api/\n│       │   ├── __init__.py\n│       │   ├── deps.py\n│       │   ├── v1/\n│       │   │   ├── __init__.py\n│       │   │   ├── endpoints/\n│       │   │   │   ├── __init__.py\n│       │   │   │   ├── users.py\n│       │   │   │   └── health.py\n│       │   │   └── router.py\n│       ├── core/\n│       │   ├── __init__.py\n│       │   ├── security.py\n│       │   └── database.py\n│       ├── models/\n│       │   ├── __init__.py\n│       │   └── user.py\n│       ├── schemas/\n│       │   ├── __init__.py\n│       │   └── user.py\n│       └── services/\n│           ├── __init__.py\n│           └── user_service.py\n└── tests/\n    ├── __init__.py\n    ├── conftest.py\n    └── api/\n        ├── __init__.py\n        └── test_users.py\n```\n\n**pyproject.toml**:\n```toml\n[project]\nname = \"project-name\"\nversion = \"0.1.0\"\ndescription = \"FastAPI project description\"\nrequires-python = \">=3.11\"\ndependencies = [\n    \"fastapi>=0.110.0\",\n    \"uvicorn[standard]>=0.27.0\",\n    \"pydantic>=2.6.0\",\n    \"pydantic-settings>=2.1.0\",\n    \"sqlalchemy>=2.0.0\",\n    \"alembic>=1.13.0\",\n]\n\n[project.optional-dependencies]\ndev = [\n    \"pytest>=8.0.0\",\n    \"pytest-asyncio>=0.23.0\",\n    \"httpx>=0.26.0\",\n    \"ruff>=0.2.0\",\n]\n\n[tool.ruff]\nline-length = 100\ntarget-version = \"py311\"\n\n[tool.ruff.lint]\nselect = [\"E\", \"F\", \"I\", \"N\", \"W\", \"UP\"]\n\n[tool.pytest.ini_options]\ntestpaths = [\"tests\"]\nasyncio_mode = \"auto\"\n```\n\n**src/project_name/main.py**:\n```python\nfrom fastapi import FastAPI\nfrom fastapi.middleware.cors import CORSMiddleware\n\nfrom .api.v1.router import api_router\nfrom .config import settings\n\napp = FastAPI(\n    title=settings.PROJECT_NAME,\n    version=settings.VERSION,\n    openapi_url=f\"{settings.API_V1_PREFIX}/openapi.json\",\n)\n\napp.add_middleware(\n    CORSMiddleware,\n    allow_origins=settings.ALLOWED_ORIGINS,\n    allow_credentials=True,\n    allow_methods=[\"*\"],\n    allow_headers=[\"*\"],\n)\n\napp.include_router(api_router, prefix=settings.API_V1_PREFIX)\n\n@app.get(\"/health\")\nasync def health_check() -> dict[str, str]:\n    return {\"status\": \"healthy\"}\n```\n\n### 4. Generate Django Project Structure\n\n```bash\n# Install Django with uv\nuv add django django-environ django-debug-toolbar\n\n# Create Django project\ndjango-admin startproject config .\npython manage.py startapp core\n```\n\n**pyproject.toml for Django**:\n```toml\n[project]\nname = \"django-project\"\nversion = \"0.1.0\"\nrequires-python = \">=3.11\"\ndependencies = [\n    \"django>=5.0.0\",\n    \"django-environ>=0.11.0\",\n    \"psycopg[binary]>=3.1.0\",\n    \"gunicorn>=21.2.0\",\n]\n\n[project.optional-dependencies]\ndev = [\n    \"django-debug-toolbar>=4.3.0\",\n    \"pytest-django>=4.8.0\",\n    \"ruff>=0.2.0\",\n]\n```\n\n### 5. Generate Python Library Structure\n\n```\nlibrary-name/\n├── pyproject.toml\n├── README.md\n├── LICENSE\n├── src/\n│   └── library_name/\n│       ├── __init__.py\n│       ├── py.typed\n│       └── core.py\n└── tests/\n    ├── __init__.py\n    └── test_core.py\n```\n\n**pyproject.toml for Library**:\n```toml\n[build-system]\nrequires = [\"hatchling\"]\nbuild-backend = \"hatchling.build\"\n\n[project]\nname = \"library-name\"\nversion = \"0.1.0\"\ndescription = \"Library description\"\nreadme = \"README.md\"\nrequires-python = \">=3.11\"\nlicense = {text = \"MIT\"}\nauthors = [\n    {name = \"Your Name\", email = \"email@example.com\"}\n]\nclassifiers = [\n    \"Programming Language :: Python :: 3\",\n    \"License :: OSI Approved :: MIT License\",\n]\ndependencies = []\n\n[project.optional-dependencies]\ndev = [\"pytest>=8.0.0\", \"ruff>=0.2.0\", \"mypy>=1.8.0\"]\n\n[tool.hatch.build.targets.wheel]\npackages = [\"src/library_name\"]\n```\n\n### 6. Generate CLI Tool Structure\n\n```python\n# pyproject.toml\n[project.scripts]\ncli-name = \"project_name.cli:main\"\n\n[project]\ndependencies = [\n    \"typer>=0.9.0\",\n    \"rich>=13.7.0\",\n]\n```\n\n**src/project_name/cli.py**:\n```python\nimport typer\nfrom rich.console import Console\n\napp = typer.Typer()\nconsole = Console()\n\n@app.command()\ndef hello(name: str = typer.Option(..., \"--name\", \"-n\", help=\"Your name\")):\n    \"\"\"Greet someone\"\"\"\n    console.print(f\"[bold green]Hello {name}![/bold green]\")\n\ndef main():\n    app()\n```\n\n### 7. Configure Development Tools\n\n**.env.example**:\n```env\n# Application\nPROJECT_NAME=\"Project Name\"\nVERSION=\"0.1.0\"\nDEBUG=True\n\n# API\nAPI_V1_PREFIX=\"/api/v1\"\nALLOWED_ORIGINS=[\"http://localhost:3000\"]\n\n# Database\nDATABASE_URL=\"postgresql://user:pass@localhost:5432/dbname\"\n\n# Security\nSECRET_KEY=\"your-secret-key-here\"\n```\n\n**Makefile**:\n```makefile\n.PHONY: install dev test lint format clean\n\ninstall:\n\tuv sync\n\ndev:\n\tuv run uvicorn src.project_name.main:app --reload\n\ntest:\n\tuv run pytest -v\n\nlint:\n\tuv run ruff check .\n\nformat:\n\tuv run ruff format .\n\nclean:\n\tfind . -type d -name __pycache__ -exec rm -rf {} +\n\tfind . -type f -name \"*.pyc\" -delete\n\trm -rf .pytest_cache .ruff_cache\n```\n\n## Output Format\n\n1. **Project Structure**: Complete directory tree with all necessary files\n2. **Configuration**: pyproject.toml with dependencies and tool settings\n3. **Entry Point**: Main application file (main.py, cli.py, etc.)\n4. **Tests**: Test structure with pytest configuration\n5. **Documentation**: README with setup and usage instructions\n6. **Development Tools**: Makefile, .env.example, .gitignore\n\nFocus on creating production-ready Python projects with modern tooling, type safety, and comprehensive testing setup.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["python","development","scaffold","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding"],"capabilities":["skill","source-sickn33","skill-python-development-python-scaffold","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/python-development-python-scaffold","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34616 github stars · SKILL.md body (7,481 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T00:51:26.959Z","embedding":null,"createdAt":"2026-04-18T21:43:04.503Z","updatedAt":"2026-04-23T00:51:26.959Z","lastSeenAt":"2026-04-23T00:51:26.959Z","tsv":"'/api/v1':668 '/bold':644 '/health':427 '/openapi.json':403 '0.1.0':309,480,552,661 '0.11.0':491 '0.110.0':320 '0.2.0':346,510,588 '0.23.0':342 '0.26.0':344 '0.27.0':323 '0.9.0':610 '1':151,745 '1.13.0':333 '1.8.0':590 '100':351 '13.7.0':612 '2':196,755 '2.0.0':331 '2.1.0':329 '2.6.0':325 '21.2.0':496 '3':244,575,763 '3.1.0':494 '3.11':317,484,561 '3000':672 '4':438,772 '4.3.0':504 '4.8.0':508 '5':511,779 '5.0.0':487 '5432/dbname':679 '6':594,787 '7':649 '8.0.0':338,586 'activ':243 'add':449 'admin':174,463 'alemb':332 'allow':407,411,414,416,669 'analyz':152 'api':164,263,297,384,420,664,665 'api.v1.router':382 'app':390,621,648,705 'app.add':404 'app.command':625 'app.get':426 'app.include':418 'applic':20,50,131,167,173,195,655,767 'approv':578 'architectur':11,41,147 'argument':149 'ask':843 'async':166,428 'asyncio':341,368 'author':565 'auto':370 'autom':121,190 'backend':544 'bash':201,443 'best':69,85 'binari':493 'bold':640 'boundari':851 'build':538,543 'build-backend':542 'build-system':537 'cach':226,230,740,742 'cd':209 'check':431,716 'checklist':88 'clarif':845 'classifi':571 'clean':696,722 'clear':818 'cli':185,596,603 'cli-nam':602 'cli.py':770 'command':187 'command-lin':186 'complet':22,52,748 'comprehens':807 'config':387,465 'config.py':262 'configur':66,650,756,778 'conftest.py':296 'consist':127 'consol':620,623,624 'console.print':638 'context':117 'core':276,469 'core.py':528 'corsmiddlewar':380,406 'creat':126,202,232,458,795 'credenti':412 'criteria':854 'current':68 'd':725 'databas':673,674 'database.py':280 'debug':456,502,662 'def':429,626,646 'delet':736 'depend':135,318,335,485,498,581,583,608,759 'deps.py':266 'describ':822 'descript':310,313,553,555 'determin':155 'dev':336,499,584,692,700 'develop':3,651,788 'dict':432 'differ':110 'directori':749 'django':30,60,168,440,445,450,452,455,459,462,472,477,486,489,501,507 'django-admin':461 'django-debug-toolbar':454,500 'django-environ':451,488 'django-project':476 'document':780 'domain':111 'e':358 'echo':215,218,221,224,228 'email':569 'email@example.com':570 'endpoint':270 'entri':764 'env':654 'env.example':255,653,791 'environ':234,453,490,834 'environment-specif':833 'etc':771 'exec':728 'expert':12,42,839 'f':359,399,639,733 'fastapi':29,59,162,246,250,311,319,374,376,391 'fastapi-project':249 'fastapi.middleware.cors':378 'file':754,768 'find':723,731 'focus':140,793 'follow':67 'format':695,717,721,744 'full':170 'full-stack':169 'generat':21,51,245,439,512,595 'generic':192 'git':211,213 'gitignor':217,220,223,227,231,254,792 'green':641,645 'greet':636 'guidanc':84 'gunicorn':495 'hatchl':541 'hatchling.build':545 'header':417 'health':430 'health.py':274 'healthi':437 'heavi':178 'hello':627,642 'help':633 'hint':32,62 'httpx':343 'import':375,379,383,388,615,619 'init':208,214,259,264,268,271,277,282,286,290,294,298,525,530 'initi':197,210 'input':848 'instal':444,691,697 'instruct':150,786 'key':682,686 'languag':573 'length':350 'librari':180,514,517,523,535,549,554 'library-nam':516,548 'licens':521,562,576,580 'limit':810 'line':188,349 'line-length':348 'lint':694,712 'localhost':671,678 'main':606,647,766 'main.py':261,769 'makefil':688,689,790 'manag':136 'manage.py':467 'match':819 'method':415 'microservic':165 'middlewar':405 'miss':856 'mit':564,579 'mode':369 'model':281 'modern':26,56,142,802 'mypi':589 'n':361,632 'name':258,304,307,394,475,518,524,547,550,566,568,604,628,631,635,643,657,659,726,734 'necessari':753 'need':83,108,120 'new':203 'openapi':397 'option':365 'origin':408,410,670 'orm':177 'orm-heavi':176 'osi':577 'output':743,828 'outsid':114 'packag':182,592 'panel':175 'pass':677 'pattern':144 'permiss':849 'phoni':690 'point':765 'practic':70,86 'prefix':402,422,425,667 'product':17,47,797 'production-readi':16,46,796 'program':572 'project':10,23,34,40,53,78,91,105,123,153,157,179,198,204,247,251,257,303,306,312,441,460,474,478,546,607,656,658,746,800 'project-nam':305 'project.optional':334,497,582 'project.scripts':601 'project_name.cli':605 'proper':133 'psycopg':492 'py':260,265,269,272,278,283,287,291,295,299,526,531 'py.typed':527 'py311':355 'pyc':219,735 'pycach':222,727 'pydant':324,327 'pydantic-set':326 'pyproject.toml':252,301,470,519,533,600,757 'pytest':225,337,340,506,585,710,739,777 'pytest-asyncio':339 'pytest-django':505 'python':2,4,9,19,33,39,49,77,90,104,122,143,194,316,372,466,483,513,560,574,599,614,799 'python-development-python-scaffold':1 'readi':18,48,798 'readm':556,781 'readme.md':253,520,557 'reload':706 'repositori':212 'requir':148,161,315,482,540,559,847 'requires-python':314,481,558 'rest':163 'return':435 'reusabl':181 'review':840 'rf':730,738 'rich':611 'rich.console':618 'rm':729,737 'router':385,419,421 'router.py':275 'ruff':229,345,509,587,715,720,741 'run':702,709,714,719 'safe':130 'safeti':805,850 'scaffold':5,15,35,45,79,92,106,124 'scalabl':146 'schema':285 'scope':116,821 'script':191,242 'secret':681,685 'secur':680 'security.py':279 'select':357 'servic':289 'set':328,389,762 'settings.allowed':409 'settings.api':400,423 'settings.project':393 'settings.version':396 'setup':64,783,809 'skill':73,97,813 'skill-python-development-python-scaffold' 'someon':637 'sourc':237 'source-sickn33' 'special':13,43 'specif':835 'sqlalchemi':330 'src':256,522 'src.project_name.main':704 'src/library_name':593 'src/project_name/cli.py':613 'src/project_name/main.py':371 'stack':171 'standard':193,322 'startapp':468 'startproject':464 'status':436 'stop':841 'str':433,434,629 'structur':24,54,134,248,442,515,598,747,775 'substitut':831 'success':853 'sync':699 'system':539 'target':353 'target-vers':352 'task':80,100,817 'test':63,137,293,367,529,693,707,773,774,808,837 'test_core.py':532 'test_users.py':300 'testpath':366 'text':563 'titl':392 'toml':302,473,536 'tool':27,57,113,139,184,189,597,652,761,789,803 'tool.hatch.build.targets.wheel':591 'tool.pytest.ini':364 'tool.ruff':347 'tool.ruff.lint':356 'toolbar':457,503 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':826 'tree':750 'true':413,663 'type':31,61,129,154,158,724,732,804 'type-saf':128 'typer':609,616 'typer.option':630 'typer.typer':622 'unrel':102 'url':398,675 'usag':785 'use':71,95,811 'user':119,160,676 'user.py':284,288 'user_service.py':292 'users.py':273 'util':183 'uv':28,58,200,206,207,235,447,448,698,701,708,713,718 'uvicorn':321,703 'v':711 'v1':267,401,424,666 'valid':836 'venv':216,236,241 'venv/bin/activate':238 'version':308,354,395,479,551,660 'virtual':233 'w':362 'web':172 'window':240 'work':75 'workflow':82 'your-secret-key-her':683","prices":[{"id":"2e621cfc-83f8-4082-be87-dd4f859f3940","listingId":"3a3299f8-7f3e-4679-86c9-cbf904e24e3b","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:43:04.503Z"}],"sources":[{"listingId":"3a3299f8-7f3e-4679-86c9-cbf904e24e3b","source":"github","sourceId":"sickn33/antigravity-awesome-skills/python-development-python-scaffold","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/python-development-python-scaffold","isPrimary":false,"firstSeenAt":"2026-04-18T21:43:04.503Z","lastSeenAt":"2026-04-23T00:51:26.959Z"}],"details":{"listingId":"3a3299f8-7f3e-4679-86c9-cbf904e24e3b","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"python-development-python-scaffold","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34616,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-22T06:40:00Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"26f7174206b9a6c4f6336f7a1c61963895fe0fde","skill_md_path":"skills/python-development-python-scaffold/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/python-development-python-scaffold"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"python-development-python-scaffold","description":"You are a Python project architecture expert specializing in scaffolding production-ready Python applications. Generate complete project structures with modern tooling (uv, FastAPI, Django), type hint"},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/python-development-python-scaffold"},"updatedAt":"2026-04-23T00:51:26.959Z"}}