software-architecture

Standardize Python module layouts, Docker patterns, and testing guidelines for SAPPHIRE forecast tools.

1|Updated Dec 8, 2023
One-click install
npx skills add https://github.com/hydrosolutions/SAPPHIRE_Forecast_Tools --skill software-architecture-hydrosolutions
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: software-architecture
Source: https://github.com/hydrosolutions/SAPPHIRE_Forecast_Tools/tree/main/.claude/skills/software-architecture
Command: npx skills add https://github.com/hydrosolutions/SAPPHIRE_Forecast_Tools --skill software-architecture-hydrosolutions

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provides project-specific conventions for Python software architecture in the SAPPHIRE forecast tools project, helping teams maintain consistency, readability, and scalability across modules, Docker configurations, and testing practices.

Core Features & Use Cases

  • Module structure conventions for apps/* modules: standard layout for entry, source, tests, and configuration.
  • Python style and documentation guidelines: naming, type hints, docstrings, and logging practices.
  • Code patterns and separation of concerns: keep data fetching separate from processing, and I/O separate from business logic.
  • Docker patterns and testing guidelines: base image usage, multi-stage builds, and pytest-based testing strategies.

Quick Start

Follow these conventions when scaffolding a new module under apps/ to ensure consistency and maintainability.

Frequently Asked Questions about software-architecture

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What's the best way to structure Python modules for maintainability across multiple teams?

Python architecture guidelines enforce a standard layout separating entry points, source, tests, and configuration. This separation of concerns keeps data fetching distinct from processing and I/O separate from business logic to ensure cross-team maintainability.

How do I scaffold a new Python app module to ensure consistent architecture?

Scaffold new Python app modules by following standard layout conventions for entry, source, tests, and configuration. Apply project-specific guidelines for naming, type hints, docstrings, and logging to ensure consistent module integration.

What Docker patterns should I use for Python application containerization?

Recommended Docker patterns for Python applications include using standard base images and multi-stage builds. These architecture practices streamline containerization and align with project-specific standards for consistent deployments.

How does pytest fit into Python testing guidelines for structured modules?

Pytest-based testing strategies integrate directly into structured Python module architectures. Testing guidelines mandate placing tests in standard layouts, ensuring quality-focused patterns that validate business logic independently from I/O operations.

Why does separating business logic from I/O matter in software design?

Separating business logic from I/O in software design enforces a strict separation of concerns. This architectural pattern keeps data fetching independent from processing, improving code testability, readability, and scalability.

Do I need specific Python style and documentation guidelines for multi-team projects?

Yes, multi-team Python projects require specific style and documentation guidelines. Standardizing naming conventions, type hints, docstrings, and logging practices ensures readability and architectural consistency across all modules.