|
|
---
|
|
|
name: {{ project_slug | lower | replace('_', '-') }}-project
|
|
|
description: "{{ project_name }} 业务项目 skill。用于当前由 iTi-Flask Copier 模板生成的业务后端项目,包括 main.py、config.py、pyproject.toml、migrations、tests、modules、models、服务客户端、iTi-Flask 集成{% if include_system %}、iTi-System 注册{% endif %}和项目本地文档。不要写入具体业务域知识。"
|
|
|
---
|
|
|
|
|
|
# {{ project_name }} 业务项目
|
|
|
|
|
|
用于当前业务项目。
|
|
|
本项目由 iTi-Flask Copier 模板生成。
|
|
|
|
|
|
这个 skill 只描述当前项目的通用工程结构。
|
|
|
具体业务知识写在项目 README/docs 或对应业务模块文档里。
|
|
|
|
|
|
## 边界
|
|
|
|
|
|
- 保持为当前业务后端项目的工程规则。
|
|
|
- 不加入具体业务域或客户专属业务知识。
|
|
|
- 框架行为看 iTi-Flask 依赖和项目当前代码。
|
|
|
{% if include_system -%}
|
|
|
- 系统域能力来自 iTi-System,当前项目已注册系统包。
|
|
|
{% else -%}
|
|
|
- 当前项目未默认注册 iTi-System。需要系统域能力时再显式引入。
|
|
|
{% endif -%}
|
|
|
- 修改代码、架构、目录结构、脚本命令或测试方式后,同步更新这个 skill。
|
|
|
- 同步框架依赖用 `iticli update framework`。
|
|
|
- 检查和同步框架模板用 `iticli template check`、`iticli template update`。
|
|
|
|
|
|
## 项目结构
|
|
|
|
|
|
- `main.py`:ASGI 入口,导出 `app`。
|
|
|
- `app/app_factory.py`:导入 `config`,注册模块,创建 FastAPI app。
|
|
|
- `config.py`:项目本地配置映射。
|
|
|
- `app/modules/`:业务模块。
|
|
|
- `app/models/`:项目 SQLAlchemy 模型。
|
|
|
- `migrations/`:项目自己的 Alembic migration 流。
|
|
|
- `tests/`:pytest 路由和行为测试。
|
|
|
- `Dockerfile`:容器镜像构建入口。
|
|
|
- `docker-compose.yml`:本地 Compose 部署入口。
|
|
|
- `docker-compose.with-db.yml`:本地数据库叠加部署入口。
|
|
|
- `.env.example`:本地和 Compose 环境变量样例。
|
|
|
- `.vscode/launch.json`:VSCode FastAPI 调试配置。
|
|
|
- `.dockerignore`:Docker 构建排除规则。
|
|
|
- `pyproject.toml`:包信息和依赖。
|
|
|
- `.copier-answers.yml`:Copier 模板更新锚点。
|
|
|
|
|
|
## 模块模式
|
|
|
|
|
|
业务模块通过 iTi 模块协议注册:
|
|
|
|
|
|
- `register_routes(app)`:挂载 FastAPI router。
|
|
|
- `register_permissions(app)`:用 `ModulePermission` 声明权限元数据。
|
|
|
- `register_menu_seed(app)`:用 `ModuleMenuSeed` 声明后台菜单 seed 元数据。
|
|
|
- `register_tasks(app)`:按需注册本地任务。
|
|
|
- `init_app(app)`:按需接入配置或服务客户端。
|
|
|
|
|
|
业务模块优先放在 `app/modules/<module_name>/`。
|
|
|
|
|
|
## 运行规则
|
|
|
|
|
|
- 业务路由放在项目模块内。
|
|
|
- 项目表和 migration 留在当前项目。
|
|
|
- 默认使用框架 envelope,除非路由明确 raw。
|
|
|
- 服务间内部 API 使用 service token。
|
|
|
- 项目级测试使用 `fastapi.testclient.TestClient`。
|
|
|
- 请求体使用 Pydantic schema。
|
|
|
{{ "- seed 前先同步 iTi-System migration。\n" if include_system else "" }}
|
|
|
|
|
|
## 命令
|
|
|
|
|
|
- 安装开发依赖:`iticli install`
|
|
|
- 同步框架依赖:`iticli update framework`
|
|
|
- 检查模板更新:`iticli template check`
|
|
|
- 同步模板骨架:`iticli template update`
|
|
|
- 运行测试:`iticli test`
|
|
|
- 本地启动:`iticli run dev 8000`
|
|
|
- 构建 Docker 镜像:`iticli docker build`
|
|
|
- 启动 Docker Compose:`iticli docker up`
|
|
|
- 启动 Docker Compose 和数据库:`iticli docker up --db`
|
|
|
- 停止 Docker Compose:`iticli docker down`
|
|
|
- 停止 Docker Compose 和数据库:`iticli docker down --db`
|
|
|
- 查看应用容器日志:`iticli docker logs`
|
|
|
- 创建 migration:`iticli migrate revision "alice add order table"`
|
|
|
- 执行 migration:`iticli migrate`
|
|
|
- 查看 Alembic heads:`iticli migrate heads`
|
|
|
- 查看当前 Alembic 版本:`iticli migrate current`
|
|
|
- 初始化项目:`iticli init`
|
|
|
|
|
|
{{ "系统包相关命令:\n\n- 更新系统依赖:`iticli update system`\n- 初始化系统项目:`iticli init system`\n\n" if include_system else "" -}}
|