qsdsan-exposan-architecture

Guide architecture-level modifications across QSDsan and EXPOsan repositories.

43|28|Updated Sep 29, 2020
One-click install
npx skills add https://github.com/QSD-Group/QSDsan --skill qsdsan-exposan-architecture
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: qsdsan-exposan-architecture
Source: https://github.com/QSD-Group/QSDsan/tree/main/.claude/skills/qsdsan-exposan-architecture
Command: npx skills add https://github.com/QSD-Group/QSDsan --skill qsdsan-exposan-architecture

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

It prevents breaking changes when evolving the paired QSDsan (engine) and EXPOsan (systems) repositories by documenting the required boundaries, naming conventions, dependency policy, and documentation standards.

Core Features & Use Cases

  • Change management rules: Clear guidance on when to put modeling capabilities in QSDsan versus keeping case-study/system specifics in EXPOsan.
  • Public namespace conventions: Canonical unit and process namespaces (unit_operations and process_models) and how to classify units into bst/static/dynamic.
  • LCA and flowsheet isolation patterns: Correct per-flowsheet registry behavior, including the recommended context manager and removal of deprecated clearing patterns.
  • Documentation authoring conventions: A strict notebook structure and style rules to keep tutorial artifacts consistent and buildable.

Quick Start

Ask the assistant to review your proposed QSDsan/EXPOsan change against the package map, namespace rules, and the release/checklist guidance, then recommend exactly what to update in each repo and what tests and docs to adjust.

Frequently Asked Questions about qsdsan-exposan-architecture

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

FAQPage Schema
How do I change repository structure and unit namespaces across QSDsan and EXPOsan without breaking APIs?

To change repository structure safely across QSDsan and EXPOsan, follow the documented package boundaries, canonical unit_operations and process_models namespaces, and deterministic development rules so paired repository modifications preserve API compatibility and prevent breaking changes.

When should I put new modeling capabilities in QSDsan versus keeping them in EXPOsan?

Modeling capabilities belong in QSDsan when they serve the engine broadly, while case-study and system specifics should remain in EXPOsan. The change management rules guide this split to maintain correct package boundaries and prevent dependency violations between the paired repositories.

What's the best way to set up per-flowsheet LCA registry patterns in EXPOsan?

Per-flowsheet LCA registry patterns require using the recommended context manager and removing deprecated clearing patterns. Correct LCA and flowsheet isolation ensures deterministic registry behavior and prevents cross-flowsheet contamination when running systems models.

How do I classify units into bst, static, and dynamic categories when modifying QSDsan process models?

Unit classification into bst, static, or dynamic categories follows the canonical public namespace conventions documented for QSDsan. Applying these conventions correctly when modifying process_models ensures dynamic unit behavior and unit_operations remain consistent with the package architecture.

What documentation standards must I follow when authoring QSDsan and EXPOsan tutorials?

Documentation authoring for QSDsan and EXPOsan tutorials requires following a strict notebook structure and style rules. These documentation standards keep tutorial artifacts consistent and buildable, ensuring CI integration and examples remain valid across both repositories.

Why does my QSDsan EXPOsan architecture change fail CI integration tests?

Architecture changes fail CI integration when they violate package boundaries, namespace conventions, or dependency policy. Review your proposed change against the package map, release checklist, and canonical API exports to identify exactly what tests and docs need adjustment.