📝 docs(project): 添加开源社区标准文档与 CI 工作流
CI / Lint (ruff) (push) Has been cancelled
CI / Import Check (push) Has been cancelled

- 新增 GitHub Issue 模板(Bug 报告、功能请求)和 Pull Request 模板
- 新增 Code of Conduct(贡献者行为准则)和 Security Policy(安全政策)
- 新增 CI 工作流(GitHub Actions),包含 ruff 代码检查和导入验证
- 新增开发依赖文件 requirements-dev.txt

📦 build(ci): 配置 GitHub Actions 持续集成

- 在 push 到 main 分支和 pull request 时自动触发 CI
- 添加 lint 任务执行 ruff 代码风格检查
- 添加 import-check 任务验证核心服务模块导入

♻️ refactor(structure): 重构项目目录结构

- 将根目录的 6 个服务模块迁移至 services/ 包
- 更新所有相关文件的导入语句(main.py、ui/、services/)
- 根目录仅保留 main.py 作为唯一 Python 入口文件

🔧 chore(config): 调整配置和资源文件路径

- 将 config.json 移至 config/ 目录,更新相关引用
- 将个人头像图片移至 assets/faces/ 目录,更新 .gitignore
- 更新 Dockerfile 和 docker-compose.yml 中的配置路径

📝 docs(readme): 完善 README 文档

- 添加项目状态徽章(Python 版本、License、CI)
- 更新项目结构图反映实际目录布局
- 修正使用指南中的 Tab 名称和操作路径
- 替换 your-username 占位符为格式提示

🗑️ chore(cleanup): 清理冗余文件

- 删除旧版备份文件、测试脚本、临时记录和运行日志
- 删除散落的个人图片文件(已归档至 assets/faces/)
This commit is contained in:
2026-02-27 22:12:39 +08:00
parent b5deafa2cc
commit 2ba87c8f6e
58 changed files with 1119 additions and 468 deletions
@@ -0,0 +1,34 @@
## ADDED Requirements
### Requirement: 服务层文件统一归入 services/ 包
所有业务服务模块 SHALL 位于 `services/` 目录下,根目录除 `main.py` 外 SHALL 不包含任何 `.py` 业务文件。
迁移文件清单:
- `config_manager.py` → `services/config_manager.py`
- `llm_service.py` → `services/llm_service.py`
- `sd_service.py` → `services/sd_service.py`
- `mcp_client.py` → `services/mcp_client.py`
- `analytics_service.py` → `services/analytics_service.py`
- `publish_queue.py` → `services/publish_queue.py`
#### Scenario: 根目录不存在游离服务文件
- **WHEN** 开发者查看项目根目录
- **THEN** 根目录 SHALL 仅含 `main.py` 作为唯一 Python 入口,其余 `.py` 文件均位于 `ui/` 或 `services/` 子目录
### Requirement: 外部模块使用绝对导入访问 services/
`main.py`、`ui/app.py`、`ui/tab_create.py` 等根目录/UI 层文件在导入服务模块时 SHALL 使用绝对导入格式 `from services.<module> import ...`。
#### Scenario: main.py 正常启动无 ImportError
- **WHEN** 在项目根目录执行 `python main.py`
- **THEN** 应用 SHALL 正常启动,不抛出任何 `ImportError` 或 `ModuleNotFoundError`
#### Scenario: UI 层导入路径正确
- **WHEN** 执行 `python -c "import ui.app"`
- **THEN** 不抛出导入错误,所有 `from services.*` 引用 SHALL 可正常解析
### Requirement: services/ 内部使用相对导入
`services/` 包内各模块之间的相互引用 SHALL 使用相对导入格式 `from .<module> import ...`,不依赖根目录在 `sys.path` 中的位置。
#### Scenario: services 内部导入独立于运行上下文
- **WHEN** 在任意工作目录执行 `python -m services.scheduler`(或类似模块测试)
- **THEN** 内部相对导入 SHALL 正常解析,不因工作目录不同而失败