python-project-scaffold
Scaffold a multi-repo Python workspace with models library, core library, Flask backend, and optional sub-projects. Creates directory structure and root CLAUDE.md describing each sub-project and which skills to use next. Use when starting a new Python project, setting up a multi-repo workspace, or scaffolding a project skeleton.
What this skill does
# Python Project Scaffold
This skill creates a multi-repo workspace skeleton for a new Python project. It sets up the directory structure and a root `CLAUDE.md` that describes each sub-project's purpose, how they connect, and which existing skills to run next. No application code is generated — actual code generation is deferred to existing skills.
## When to Use This Skill
Use this skill when:
- Starting a brand-new Python project from scratch
- You want the standard multi-repo workspace layout (models lib, core lib, Flask backend)
- You want a root CLAUDE.md that guides future development with existing skills
## What This Skill Creates
1. **Directory skeleton** — empty sub-project directories under `{project}/`
2. **`{project}/CLAUDE.md`** — root development guide describing each sub-project and which skills to use
3. **`{project}/.gitignore`** — workspace-level gitignore for Python projects
4. **Next-steps documentation** — tells the user which skills to run in each sub-project
## Step 1: Gather Project Information
**IMPORTANT**: Before creating anything, ask the user these questions using AskUserQuestion:
1. **"What is your project name?"** (e.g., "arcana", "trading-bot", "my-app")
- Derive naming variants:
- `{project}` — kebab-case (e.g., `arcana`, `trading-bot`)
- `{project_name}` — snake_case (e.g., `arcana`, `trading_bot`)
- `{ProjectName}` — PascalCase (e.g., `Arcana`, `TradingBot`)
- `{PROJECT_NAME}` — UPPER_SNAKE (e.g., `ARCANA`, `TRADING_BOT`)
2. **"Brief project description?"** (one or two sentences for the CLAUDE.md header)
3. **"What is the GitHub org or owner?"** (e.g., `jmazzahacks`)
4. **"Which optional sub-projects do you need?"** (multi-select)
- `python-scripts` — standalone utility scripts
- `{project}-api-python` — Python API client library
- `{project}-api-js` — TypeScript API client library
- `{project}-frontend` — Next.js frontend
5. **"Does the backend need Celery + Redis for background tasks?"** (yes/no)
6. **"Which license?"**
- Proprietary
- MIT
- O'Saasy (https://osaasy.dev/)
## Step 2: Create Directory Structure
Create empty directories under `{project}/`. Use `mkdir -p` to create each directory with a `.gitkeep` file so they are tracked by git.
**Always created:**
```
{project}/
├── {project}-models/
├── {project}-core/
└── {project}-backend/
```
**Conditionally created based on Step 1 answers:**
```
├── python-scripts/ # if "python-scripts" selected
├── {project}-api-python/ # if Python API client selected
├── {project}-api-js/ # if TypeScript API client selected
└── {project}-frontend/ # if Next.js frontend selected
```
## Step 3: Create Root CLAUDE.md
Create `{project}/CLAUDE.md` with the following structure. Replace all `{project}`, `{project_name}`, `{ProjectName}`, and `{PROJECT_NAME}` placeholders with actual values.
```markdown
# {ProjectName} — Development Guide
{description}
## Project Structure
This is a multi-repo workspace. Each sub-directory is an independent project with its own virtual environment, git history, and dependencies.
| Directory | Purpose | Type |
|-----------|---------|------|
| `{project}-models/` | Shared data models and schemas | pip package (library) |
| `{project}-core/` | Business logic and service layer | pip package (library) |
| `{project}-backend/` | Flask REST API server | Docker service |
{# Include rows for optional sub-projects only if selected: }
{# | `python-scripts/` | Standalone utility scripts | Scripts | }
{# | `{project}-api-python/` | Python API client library | pip package (library) | }
{# | `{project}-api-js/` | TypeScript API client library | npm package | }
{# | `{project}-frontend/` | Next.js frontend application | Docker service | }
## Dependency Chain
```
{project}-models → {project}-core → {project}-backend
```
- **{project}-models** has no internal dependencies. It defines shared data models.
- **{project}-core** depends on `{project}-models`. It contains business logic.
- **{project}-backend** depends on both `{project}-models` and `{project}-core`.
## Setting Up Each Sub-Project
### {project}-models (shared models library)
Use the `python-lib-setup` skill to initialize this as a pip package:
```
cd {project}-models
# Invoke python-lib-setup skill
```
### {project}-core (business logic library)
Use the `python-lib-setup` skill to initialize this as a pip package:
```
cd {project}-core
# Invoke python-lib-setup skill
```
Add `{project}-models` as a GitHub dependency in `pyproject.toml`:
```toml
dependencies = [
# Public repo:
"{project}-models @ git+https://github.com/{github_org}/{project}-models.git",
# Private repo (requires CR_PAT environment variable):
# "{project}-models @ git+https://{env:CR_PAT}@github.com/{github_org}/{project}-models.git",
]
```
### {project}-backend (Flask API server)
Set up in this order:
1. **`flask-smorest-api`** — Flask app factory, blueprints, Marshmallow schemas
2. **`postgres-setup`** — Database schema and setup script
3. **`flask-docker-deployment`** — Dockerfile, build script, versioning
4. **`byteforge-loki-logging`** — Structured logging to Grafana Loki
Add model and core libraries as GitHub dependencies in `requirements.txt`:
```
# Public repos:
{project}-models @ git+https://github.com/{github_org}/{project}-models.git
{project}-core @ git+https://github.com/{github_org}/{project}-core.git
# Private repos (requires CR_PAT environment variable):
# {project}-models @ git+https://${CR_PAT}@github.com/{github_org}/{project}-models.git
# {project}-core @ git+https://${CR_PAT}@github.com/{github_org}/{project}-core.git
```
{# Include this section only if Celery + Redis was selected: }
#### Celery + Redis
This backend uses Celery for background task processing with Redis as the broker. Environment variables:
- `{PROJECT_NAME}_REDIS_URL` — Redis connection URL (e.g., `redis://localhost:6379/0`)
{# Include this section only if {project}-frontend was selected: }
### {project}-frontend (Next.js frontend)
Use the `aegis-nextjs-frontend` skill to scaffold the frontend:
```
cd {project}-frontend
# Invoke aegis-nextjs-frontend skill
```
{# Include this section only if python-scripts was selected: }
### python-scripts (utility scripts)
Standalone scripts for development, data migration, or maintenance tasks. Each script should:
- Have its own `#!/usr/bin/env python` shebang
- Use `python-dotenv` to load `.env`
- Import from `{project}-models` and `{project}-core` as needed
{# Include this section only if {project}-api-python was selected: }
### {project}-api-python (Python API client)
Use the `python-lib-setup` skill to initialize this as a pip package:
```
cd {project}-api-python
# Invoke python-lib-setup skill
```
{# Include this section only if {project}-api-js was selected: }
### {project}-api-js (TypeScript API client)
Initialize as a TypeScript npm package. Publish to GitHub Packages or npm.
## Development Commands
Each sub-project with Python uses its own virtual environment:
```bash
cd {project}-models/
python -m venv bin
source bin/activate
pip install -r dev-requirements.txt
```
Run tests:
```bash
source bin/activate && pytest
```
Start the backend locally:
```bash
cd {project}-backend/
source bin/activate && python {project_name}.py
```
## Conventions
- **Unix timestamps only** — All date/time fields use `BIGINT` (epoch seconds), never `TIMESTAMP` or `DATETIME`
- **UUID primary keys** — Use `gen_random_uuid()` in PostgreSQL
- **RealDictCursor** — Always use `psycopg2.extras.RealDictCursor` for queries
- **Environment variables** — Project-specific prefix: `{PROJECT_NAME}_` (e.g., `{PROJECT_NAME}_DB_HOST`)
- **Type hints** — All function parameters and return types must have type annotations
- **No lambdas** — Use named functions or loops instead
- **Virtual environments** — Always `source bin/activate` before running Python
- **No local path dependencies** — NEVER use `pip instalRelated in Backend & APIs
jfrog
IncludedInteract with the JFrog Platform via the JFrog CLI and REST/GraphQL APIs. Use this skill when the user wants to manage Artifactory repositories, upload or download artifacts, manage builds, configure permissions, manage users and groups, work with access tokens, configure JFrog CLI servers, search artifacts, manage properties, set up replication, manage JFrog Projects, run security audits or scans, look up CVE details, query exposures scan results from JFrog Advanced Security, manage release bundles and lifecycle operations, aggregate or export platform data, or perform any JFrog Platform administration task. Also use when the user mentions jf, jfrog, artifactory, xray, distribution, evidence, apptrust, onemodel, graphql, workers, mission control, curation, advanced security, exposures, or any JFrog product name.
cupynumeric-migration-readiness
IncludedPre-migration readiness assessor for porting NumPy to cuPyNumeric. Use BEFORE substantial porting work begins when the user asks whether code will scale on GPU, whether they should migrate to cuPyNumeric, which NumPy patterns transfer cleanly, what must be refactored before porting, or mentions pre-port assessment, scaling analysis, or refactor planning. Inspect the user's source code, look up NumPy usage, cross-reference the cuPyNumeric API support manifest, and distinguish distributed-scaling-friendly patterns from blockers such as unsupported APIs, scalar synchronization, host round-trips, Python/object-heavy control flow, shape/data-dependent branching, and in-place mutation hazards. Produce a verdict of READY, LIGHT REFACTOR, SIGNIFICANT REFACTOR, or NOT RECOMMENDED, with concrete refactor pointers.
alibabacloud-data-agent-skill
IncludedInvoke Alibaba Cloud Apsara Data Agent for Analytics via CLI to perform natural language-driven data analysis on enterprise databases. Data Agent for Analytics is an intelligent data analysis agent developed by Alibaba Cloud Database team for enterprise users. It automatically completes requirement analysis, data understanding, analysis insights, and report generation based on natural language descriptions. This tool supports: discovering data resources (instances/databases/tables) managed in DMS, initiating query or deep analysis sessions, real-time progress tracking, and retrieving analysis conclusions and generated reports. Use this Skill when users need to query databases, analyze data trends, generate data reports, ask questions in natural language, or mention "Data Agent", "data analysis", "database query", "SQL analysis", "data insights".
token-optimizer
IncludedReduce OpenClaw token usage and API costs through smart model routing, heartbeat optimization, budget tracking, and native 2026.2.15 features (session pruning, bootstrap size limits, cache TTL alignment). Use when token costs are high, API rate limits are being hit, or hosting multiple agents at scale. The 4 executable scripts (context_optimizer, model_router, heartbeat_optimizer, token_tracker) are local-only — no network requests, no subprocess calls, no system modifications. Reference files (PROVIDERS.md, config-patches.json) document optional multi-provider strategies that require external API keys and network access if you choose to use them. See SECURITY.md for full breakdown.
resend-cli
IncludedUse this skill when the task is specifically about operating Resend from an AI agent, terminal session, or CI job via the official resend CLI: installing/authenticating the CLI, sending/listing/updating/cancelling emails, batch sends, domains and DNS, webhooks and local listeners, inbound receiving, contacts, topics, segments, broadcasts, templates, API keys, profiles, or debugging Resend CLI/API failures. Trigger on mentions of Resend CLI, `resend`, `resend doctor`, `resend emails send`, `resend domains`, `resend webhooks listen`, `resend emails receiving`, or agent-friendly terminal automation.
alibabacloud-odps-maxframe-coding
IncludedUse this skill for MaxFrame SDK development and documentation navigation on Alibaba Cloud MaxCompute (ODPS). Helps answer MaxFrame API, concept, official example, and supported pandas API questions; create data processing programs; read/write MaxCompute tables; debug jobs (remote or local); and build custom DPE runtime images. Trigger when users mention MaxFrame, MaxCompute with MaxFrame, ODPS table processing, DPE runtime, MaxFrame docs/examples, DataFrame/Tensor operations, or GPU runtime setup. Works for both English and Chinese queries about Alibaba Cloud data processing with MaxFrame.