用途:当 Python 应用需要多个界面(如 PySide6 图形界面、typer 命令行、FastAPI 接口)共享同一套业务逻辑时,用此技能组织代码,把每个界面做成围绕可复用核心的薄适配器;新增界面不应改动业务逻辑。前提是先加载 myai 的 architecting-changes,此外 using-my-skills 与 engineering-principles 假定已由 myai bootstrap 加载。
主要能力:给出分层架构(展示层 Qt/typer/FastAPI → 领域层 Managers/Models/Services → 工具层 Helpers/Wrappers/Platform),依赖只向下流动,领域层不得导入展示层;入口点采用单一 Typer 多命令应用,图形界面命令与命令行命令混在同一列表中,刻意不设默认/根命令以避免脆弱的模式检测,可另导出直接开窗的 myapp-gui 脚本供桌面启动器使用;图形界面在命令体内惰性导入以保持命令行不加载 Qt;交互式长任务通过无框架的 ReplyFlowIO 协议(事件出、提问入)表达,CLI 用 asyncio.run 保持阻塞行为,Qt MVVM 仅作为该协议的实现方式而非核心形态;还讨论用 asyncio.Task 取消或协作式标志实现停止、以问题 id 为键管理并发提问、以及用 platformdirs 与 PlatformBackend 抽象类做跨平台目录与实例启动。
使用方式:典型结构为 main.py 中定义 typer.Typer 与 gui/run/version 命令,装配由组合根 create_services 完成,绝不在 main.py 中接线对象;pyproject.toml 中通过 [project.scripts] 注册 myapp 与 myapp-gui 两个控制台脚本。同步一次性命令返回 Result,交互式操作注入 …IO 接口。
限制:资料未提供该技能的收费、安装命令、版本或发布信息,暂未提供;文中示例为起始形态而非能力上限,平台专属项目属例外而非常态。