用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/fazi-gondal/Vidsaver --skill flet-app-workflow命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | flet-app-workflow |
| description | Guided workflow for building a Flet declarative app from scratch (Flet 0.85.x+). |
You are guiding the user through building a Flet declarative app step by step. Follow these 5 phases in order.
Before starting, confirm the app's purpose and target platforms with the user.
Ask the user about:
Summarize the requirements before proceeding.
For non-trivial apps, use the Clean Architecture layout (mirrors Flutter's
lib/ convention, validated in production Flet apps). For 1–2-page prototypes,
use the flat fallback below.
my_app/
├── assets/ # fonts/, icons/, images/
├── config.py # Project-root config
├── pyproject.toml # [tool.flet.app] path = "src"
├── tests/ # conftest.py, unit/, widget/, integration/
└── src/
├── main.py # ft.run(create_app, assets_dir="assets")
├── app.py # create_app(page): theme, DI, page.render_views(...)
├── core/ # constants.py, enums.py, exceptions.py, logger.py
├── data/ # sources/, models/, repositories/
├── domain/ # entities/, repositories/, services/, usecases/
├── presentation/ # components/, pages/, navigation/, themes/, hooks/, state_management/
├── services/ # api_service.py, storage_service.py, ...
└── utils/ # validators.py, text_utils.py, ...
my_app/
├── pyproject.toml # [tool.flet.app] path = "src"
└── src/
├── main.py
├── config.py
├── state.py
├── context.py
├── components/
│ └── __init__.py
└── pages/
└── __init__.py
pyproject.toml with Flet dependency and [tool.flet.app] path = "src"state.py (or src/presentation/state_management/global_providers.py in the layered layout) with @ft.observable @dataclass AppState based on requirementscontext.py (or co-locate in state_management/) with AppContext and AppCtx = ft.create_context(None)config.py at project root (or src/core/constants.py for code-level constants) with app configuration and navigation defaultsFor each page identified in Phase 1:
@ft.component function in pages/<name>.pyft.use_context(AppCtx) to access state and servicesft.use_state() for local form fieldspages/__init__.py PAGE_BUILDERS dictCreate reusable components in components/:
main.py:
page.servicespage.render_views(App, state, ...services)App root component:
AppContext with state + servicesft.View with AppBar, drawer, and PageContentview_ref pattern for drawerAppCtx(ctx, build_view)PageContent component:
state.current_page from contextPAGE_BUILDERSflet run src or cd to project root and flet runpage.theme = ft.Theme(color_scheme_seed=ft.Colors.BLUE)ft.ResponsiveRow or breakpoint-based layoutsflet build web, flet build apk, etc.ft.run(main) — never ft.app()page.add() or page.update()@ft.observable BEFORE @dataclass (order matters)ft.use_state for form fields, @ft.observable for shared statecleanup= parameter in use_effect, not return value