From ce73ae0c8cc03d73baebc91a04deabbf2321faa5 Mon Sep 17 00:00:00 2001
From: linshen <32978552+linshenkx@users.noreply.github.com>
Date: Sun, 17 May 2026 15:36:52 +0800
Subject: [PATCH] chore: tidy root project files
---
.husky/pre-commit | 30 -------------------
.husky/pre-commit.ps1 | 29 ------------------
.pnpmrc | 5 ----
README.md | 12 ++++----
README.zh-CN.md | 12 ++++----
.../docker-compose.dev.yml | 4 +--
.../docker-compose.yml | 2 +-
docs/deployment/docker-mcp-integration.md | 24 +++++++--------
docs/developer/README.md | 2 +-
dev.md => docs/developer/development.md | 0
docs/developer/project-structure.md | 7 +++--
docs/testing/README.md | 4 +--
docs/testing/test-commands.md | 2 +-
docs/user/multi-custom-models.md | 2 +-
docs/user/multi-custom-models_en.md | 2 +-
mkdocs/docs/zh/deployment/docker-advanced.md | 2 +-
mkdocs/docs/zh/deployment/docker-basic.md | 10 +++----
.../zh/deployment/docker-troubleshooting.md | 18 +++++------
18 files changed, 52 insertions(+), 115 deletions(-)
delete mode 100644 .husky/pre-commit
delete mode 100644 .husky/pre-commit.ps1
delete mode 100644 .pnpmrc
rename docker-compose.dev.yml => docker/docker-compose.dev.yml (92%)
rename docker-compose.yml => docker/docker-compose.yml (98%)
rename dev.md => docs/developer/development.md (100%)
diff --git a/.husky/pre-commit b/.husky/pre-commit
deleted file mode 100644
index 73f345c7..00000000
--- a/.husky/pre-commit
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-. "$(dirname "$0")/_/husky.sh"
-
-# 检查是否存在package-lock.json或yarn.lock文件
-if [ -f "package-lock.json" ]; then
- echo "错误: 检测到package-lock.json文件。"
- echo "本项目强制使用pnpm作为包管理器,请删除package-lock.json并使用pnpm install安装依赖。"
- exit 1
-fi
-
-if [ -f "yarn.lock" ]; then
- echo "错误: 检测到yarn.lock文件。"
- echo "本项目强制使用pnpm作为包管理器,请删除yarn.lock并使用pnpm install安装依赖。"
- exit 1
-fi
-
-# 确保pnpm-lock.yaml存在
-if [ ! -f "pnpm-lock.yaml" ]; then
- echo "警告: 未检测到pnpm-lock.yaml文件。"
- echo "请确保使用pnpm install安装依赖。"
-fi
-
-# 测试门禁(可用 SKIP_TEST_GATE=1 跳过,仅用于紧急情况)
-if [ "$SKIP_TEST_GATE" = "1" ]; then
- echo "跳过测试门禁:检测到 SKIP_TEST_GATE=1"
- exit 0
-fi
-
-echo "运行测试门禁(fast):pnpm test:gate"
-pnpm test:gate
diff --git a/.husky/pre-commit.ps1 b/.husky/pre-commit.ps1
deleted file mode 100644
index 9fd75d32..00000000
--- a/.husky/pre-commit.ps1
+++ /dev/null
@@ -1,29 +0,0 @@
-# PowerShell版本的pre-commit钩子
-
-# 检查是否存在package-lock.json或yarn.lock文件
-if (Test-Path "package-lock.json") {
- Write-Host "错误: 检测到package-lock.json文件。" -ForegroundColor Red
- Write-Host "本项目强制使用pnpm作为包管理器,请删除package-lock.json并使用pnpm install安装依赖。" -ForegroundColor Red
- exit 1
-}
-
-if (Test-Path "yarn.lock") {
- Write-Host "错误: 检测到yarn.lock文件。" -ForegroundColor Red
- Write-Host "本项目强制使用pnpm作为包管理器,请删除yarn.lock并使用pnpm install安装依赖。" -ForegroundColor Red
- exit 1
-}
-
-# 确保pnpm-lock.yaml存在
-if (-not (Test-Path "pnpm-lock.yaml")) {
- Write-Host "警告: 未检测到pnpm-lock.yaml文件。" -ForegroundColor Yellow
- Write-Host "请确保使用pnpm install安装依赖。" -ForegroundColor Yellow
-}
-
-# 测试门禁(可用 SKIP_TEST_GATE=1 跳过,仅用于紧急情况)
-if ($env:SKIP_TEST_GATE -eq "1") {
- Write-Host "跳过测试门禁:检测到 SKIP_TEST_GATE=1" -ForegroundColor Yellow
- exit 0
-}
-
-Write-Host "运行测试门禁(fast):pnpm test:gate" -ForegroundColor Cyan
-pnpm test:gate
diff --git a/.pnpmrc b/.pnpmrc
deleted file mode 100644
index be16790b..00000000
--- a/.pnpmrc
+++ /dev/null
@@ -1,5 +0,0 @@
-save-workspace-protocol=false
-save-prefix='~'
-strict-peer-dependencies=false
-auto-install-peers=true
-resolution-mode=highest
\ No newline at end of file
diff --git a/README.md b/README.md
index dec9f198..c9f5b6b1 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@
[Website](https://always200.com) | [Online Optimizer](https://prompt.always200.com) | [Prompt Garden](https://garden.always200.com) | [Docs](https://docs.always200.com) | [Quick Start](#quick-start) | [Chrome Extension](https://chromewebstore.google.com/detail/prompt-optimizer/cakkkhboolfnadechdlgdcnjammejlna) | [💖 Support](https://ko-fi.com/linshenkx)
-[Development Docs](dev.md) | [Vercel Deployment Guide](docs/user/deployment/vercel_en.md) | [Cloudflare Pages Deployment Guide](docs/user/deployment/cloudflare-pages_en.md) | [MCP Deployment Guide](docs/user/mcp-server_en.md) | [DeepWiki Docs](https://deepwiki.com/linshenkx/prompt-optimizer) | [ZRead Docs](https://zread.ai/linshenkx/prompt-optimizer)
+[Development Docs](docs/developer/development.md) | [Vercel Deployment Guide](docs/user/deployment/vercel_en.md) | [Cloudflare Pages Deployment Guide](docs/user/deployment/cloudflare-pages_en.md) | [MCP Deployment Guide](docs/user/mcp-server_en.md) | [DeepWiki Docs](https://deepwiki.com/linshenkx/prompt-optimizer) | [ZRead Docs](https://zread.ai/linshenkx/prompt-optimizer)
@@ -172,10 +172,10 @@ ACCESS_PASSWORD=your_password # Set access password
EOF
# 3. Start the service
-docker compose up -d
+docker compose -f docker/docker-compose.yml up -d
# 4. View logs
-docker compose logs -f
+docker compose -f docker/docker-compose.yml logs -f
# 5. Access the service
Web Interface: http://localhost:8081
@@ -183,9 +183,9 @@ MCP Server: http://localhost:8081/mcp
```
-You can also directly edit the docker-compose.yml file to customize your configuration:
+You can also directly edit the docker/docker-compose.yml file to customize your configuration:
-Click to view docker-compose.yml example
+Click to view docker/docker-compose.yml example
```yaml
services:
@@ -317,7 +317,7 @@ Configure environment variables through the `-e` parameter when deploying with D
## Local Development
-For detailed documentation, see [Development Documentation](dev.md)
+For detailed documentation, see [Development Documentation](docs/developer/development.md)
Click to view local development commands
diff --git a/README.zh-CN.md b/README.zh-CN.md
index 8d24509b..87656cf1 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -16,7 +16,7 @@
[官网](https://always200.com) | [在线优化器](https://prompt.always200.com) | [提示词库](https://garden.always200.com) | [文档站](https://docs.always200.com) | [快速开始](#快速开始) | [Chrome插件](https://chromewebstore.google.com/detail/prompt-optimizer/cakkkhboolfnadechdlgdcnjammejlna) | [💖赞助支持](images/other/sponsor_wx.jpg)
-[开发文档](dev.md) | [Vercel部署指南](docs/user/deployment/vercel.md) | [Cloudflare Pages部署指南](docs/user/deployment/cloudflare-pages.md) | [MCP部署使用说明](docs/user/mcp-server.md) | [DeepWiki文档](https://deepwiki.com/linshenkx/prompt-optimizer) | [ZRead文档](https://zread.ai/linshenkx/prompt-optimizer)
+[开发文档](docs/developer/development.md) | [Vercel部署指南](docs/user/deployment/vercel.md) | [Cloudflare Pages部署指南](docs/user/deployment/cloudflare-pages.md) | [MCP部署使用说明](docs/user/mcp-server.md) | [DeepWiki文档](https://deepwiki.com/linshenkx/prompt-optimizer) | [ZRead文档](https://zread.ai/linshenkx/prompt-optimizer)
@@ -165,10 +165,10 @@ cp env.local.example .env
# 编辑 .env 文件,填入实际的 API 密钥和配置
# 3. 启动服务
-docker compose up -d
+docker compose -f docker/docker-compose.yml up -d
# 4. 查看日志
-docker compose logs -f
+docker compose -f docker/docker-compose.yml logs -f
# 5. 访问服务
Web 界面:http://localhost:8081
@@ -176,9 +176,9 @@ MCP 服务器:http://localhost:8081/mcp
```
-你还可以直接编辑docker-compose.yml文件,自定义配置:
+你还可以直接编辑 docker/docker-compose.yml 文件,自定义配置:
-点击查看 docker-compose.yml 示例
+点击查看 docker/docker-compose.yml 示例
```yaml
services:
@@ -313,7 +313,7 @@ Docker部署时通过 `-e` 参数配置环境变量:
## 本地开发
-详细文档可查看 [开发文档](dev.md)
+详细文档可查看 [开发文档](docs/developer/development.md)
点击查看本地开发命令
diff --git a/docker-compose.dev.yml b/docker/docker-compose.dev.yml
similarity index 92%
rename from docker-compose.dev.yml
rename to docker/docker-compose.dev.yml
index e928be26..8dda7e0d 100644
--- a/docker-compose.dev.yml
+++ b/docker/docker-compose.dev.yml
@@ -2,7 +2,7 @@ services:
prompt-optimizer:
# 开发模式:从源码构建
build:
- context: .
+ context: ..
dockerfile: Dockerfile
image: linshen/prompt-optimizer:dev
container_name: prompt-optimizer-dev
@@ -12,7 +12,7 @@ services:
extra_hosts:
- "host.docker.internal:host-gateway" # 允许容器访问宿主机
env_file:
- - .env.local # 读取本地环境变量文件
+ - ../.env.local # 读取仓库根目录的本地环境变量文件
healthcheck:
test: ["CMD", "sh", "-c", "curl -f http://localhost:${NGINX_PORT:-80}/ && curl -f http://localhost:${NGINX_PORT:-80}/mcp"]
interval: 30s
diff --git a/docker-compose.yml b/docker/docker-compose.yml
similarity index 98%
rename from docker-compose.yml
rename to docker/docker-compose.yml
index 92bbb6d6..07506c57 100644
--- a/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -3,7 +3,7 @@ services:
image: linshen/prompt-optimizer:latest
# Alternatively, you can build from source:
# build:
-# context: .
+# context: ..
# dockerfile: Dockerfile
container_name: prompt-optimizer
restart: unless-stopped
diff --git a/docs/deployment/docker-mcp-integration.md b/docs/deployment/docker-mcp-integration.md
index 7e6e9ee5..6e089da5 100644
--- a/docs/deployment/docker-mcp-integration.md
+++ b/docs/deployment/docker-mcp-integration.md
@@ -53,13 +53,13 @@ MCP_DEFAULT_MODEL_BASE_URL=
### 1. 配置环境变量
```bash
-cp .env.docker.example .env
+cp env.local.example .env
# 编辑.env文件,填入实际的API密钥
```
### 2. 启动服务
```bash
-docker-compose up -d
+docker compose -f docker/docker-compose.yml up -d
```
### 3. 访问服务
@@ -71,13 +71,13 @@ docker-compose up -d
### 4. 健康检查
```bash
# 检查容器状态
-docker-compose ps
+docker compose -f docker/docker-compose.yml ps
# 查看日志
-docker-compose logs -f
+docker compose -f docker/docker-compose.yml logs -f
# 查看MCP服务器日志
-docker-compose exec prompt-optimizer supervisorctl tail -f mcp-server
+docker compose -f docker/docker-compose.yml exec prompt-optimizer supervisorctl tail -f mcp-server
```
## MCP服务器API
@@ -111,37 +111,37 @@ curl -X POST http://localhost:8081/mcp \
### 查看服务状态
```bash
-docker-compose exec prompt-optimizer supervisorctl status
+docker compose -f docker/docker-compose.yml exec prompt-optimizer supervisorctl status
```
### 重启MCP服务器
```bash
-docker-compose exec prompt-optimizer supervisorctl restart mcp-server
+docker compose -f docker/docker-compose.yml exec prompt-optimizer supervisorctl restart mcp-server
```
### 查看详细日志
```bash
# Nginx日志
-docker-compose exec prompt-optimizer tail -f /var/log/nginx/error.log
+docker compose -f docker/docker-compose.yml exec prompt-optimizer tail -f /var/log/nginx/error.log
# MCP服务器日志
-docker-compose exec prompt-optimizer tail -f /var/log/supervisor/mcp-server.out.log
+docker compose -f docker/docker-compose.yml exec prompt-optimizer tail -f /var/log/supervisor/mcp-server.out.log
```
## 开发模式
-如果需要在开发模式下运行,可以修改docker-compose.yml:
+如果需要在开发模式下运行,可以使用 `docker/docker-compose.dev.yml`:
```yaml
services:
prompt-optimizer:
build:
- context: .
+ context: ..
dockerfile: Dockerfile
# ... 其他配置
```
然后重新构建:
```bash
-docker-compose up --build -d
+docker compose -f docker/docker-compose.dev.yml up --build -d
```
diff --git a/docs/developer/README.md b/docs/developer/README.md
index f0789cf5..5f495959 100644
--- a/docs/developer/README.md
+++ b/docs/developer/README.md
@@ -4,7 +4,7 @@
## 🚀 快速开始
-- 快速开始指南(待创建) - 开发环境搭建和项目启动
+- [开发指南](./development.md) - 开发环境搭建、Docker 开发和常用工作流
- [技术开发指南](./technical-development-guide.md) - 完整的技术栈和开发规范
- [项目结构](./project-structure.md) - 项目文件和目录组织说明
- [AI开发流程规范](./ai-development-workflow.md) - AI辅助开发的标准化流程
diff --git a/dev.md b/docs/developer/development.md
similarity index 100%
rename from dev.md
rename to docs/developer/development.md
diff --git a/docs/developer/project-structure.md b/docs/developer/project-structure.md
index 5f596525..d2e63b6f 100644
--- a/docs/developer/project-structure.md
+++ b/docs/developer/project-structure.md
@@ -18,13 +18,14 @@ prompt-optimizer/
│ │ └── package.json # Web包配置
│ └── extension/ # Chrome插件
├── docs/ # 项目文档
-├── tools/ # 工具脚本
+├── docker/ # Docker 配置和服务脚本
+├── scripts/ # 工具脚本
└── ...配置文件
```
### 1.2 配置文件
- `pnpm-workspace.yaml` - 工作区配置
-- `.env.example` - 环境变量示例
+- `env.local.example` - 环境变量示例
- `package.json` - 项目配置
- `.vscode/` - VSCode配置目录
- `.gitignore` - Git忽略配置
@@ -36,7 +37,7 @@ prompt-optimizer/
### 1.4 文档目录 (docs/)
- `README.md` - 文档索引
-- `development-guidelines.md` - 开发指南
+- `developer/development.md` - 开发指南
- `project-status.md` - 项目状态
- `project-structure.md` - 项目结构
- `technical-documentation.md` - 技术文档
diff --git a/docs/testing/README.md b/docs/testing/README.md
index cfe1dd52..5fb34d00 100644
--- a/docs/testing/README.md
+++ b/docs/testing/README.md
@@ -5,7 +5,7 @@
- `pnpm test`
只跑单元测试,适合日常开发的快速反馈。
- `pnpm test:gate`
- 运行 core/ui 的门禁测试,不含 Playwright E2E,适合 pre-commit。
+ 运行 core/ui 的门禁测试,不含 Playwright E2E,适合提交前快速检查。
- `pnpm test:gate:full`
在 `test:gate` 基础上追加关键 E2E 白名单,适合提交前或 CI。
@@ -15,7 +15,7 @@
# 日常开发:快速反馈
pnpm test
-# pre-commit:core/ui 门禁,不含 E2E
+# 提交前快速门禁:core/ui,不含 E2E
pnpm test:gate
# 提交前 / CI:门禁 + 关键 E2E
diff --git a/docs/testing/test-commands.md b/docs/testing/test-commands.md
index f06747e1..4d45970e 100644
--- a/docs/testing/test-commands.md
+++ b/docs/testing/test-commands.md
@@ -10,7 +10,7 @@ pnpm test
pnpm test:unit
pnpm test:fast
-# pre-commit 门禁:core/ui,不含 Playwright
+# 提交前快速门禁:core/ui,不含 Playwright
pnpm test:gate
# 提交前 / CI:门禁 + 关键 E2E 白名单
diff --git a/docs/user/multi-custom-models.md b/docs/user/multi-custom-models.md
index d59e69a2..158ae008 100644
--- a/docs/user/multi-custom-models.md
+++ b/docs/user/multi-custom-models.md
@@ -227,7 +227,7 @@ docker run -d -p 8081:80 --env-file .env \
#### 方式3:Docker Compose
-修改 `docker-compose.yml` 添加 `env_file` 配置:
+修改 `docker/docker-compose.yml` 添加 `env_file` 配置:
```yaml
services:
diff --git a/docs/user/multi-custom-models_en.md b/docs/user/multi-custom-models_en.md
index 23868242..6d415bb2 100644
--- a/docs/user/multi-custom-models_en.md
+++ b/docs/user/multi-custom-models_en.md
@@ -189,7 +189,7 @@ docker run -d -p 8081:80 --env-file .env \
#### Method 3: Docker Compose
-Modify `docker-compose.yml` to add `env_file` configuration:
+Modify `docker/docker-compose.yml` to add `env_file` configuration:
```yaml
services:
diff --git a/mkdocs/docs/zh/deployment/docker-advanced.md b/mkdocs/docs/zh/deployment/docker-advanced.md
index 3d3335af..705a06ea 100644
--- a/mkdocs/docs/zh/deployment/docker-advanced.md
+++ b/mkdocs/docs/zh/deployment/docker-advanced.md
@@ -123,7 +123,7 @@ docker run -d -p 8081:80 --name prompt-optimizer-local prompt-optimizer:local
## 更适合放进 `.env.local` 的内容
-如果你长期在本地开发,建议把这类变量放进 `.env.local`,再配合 `docker-compose.dev.yml`:
+如果你长期在本地开发,建议把这类变量放进 `.env.local`,再配合 `docker/docker-compose.dev.yml`:
- 各种 `VITE_*` 模型配置
- `ACCESS_USERNAME`
diff --git a/mkdocs/docs/zh/deployment/docker-basic.md b/mkdocs/docs/zh/deployment/docker-basic.md
index 6dd3f6f0..08286594 100644
--- a/mkdocs/docs/zh/deployment/docker-basic.md
+++ b/mkdocs/docs/zh/deployment/docker-basic.md
@@ -49,10 +49,10 @@ docker run -d -p 8081:80 --restart unless-stopped --name prompt-optimizer \
## 使用仓库自带的 Docker Compose
-仓库根目录已经带了 `docker-compose.yml`,可以直接使用:
+仓库 `docker/` 目录已经带了 `docker-compose.yml`,可以直接使用:
```bash
-docker compose up -d
+docker compose -f docker/docker-compose.yml up -d
```
默认端口映射是:
@@ -69,8 +69,8 @@ docker compose up -d
常用命令:
```bash
-docker compose logs -f
-docker compose down
+docker compose -f docker/docker-compose.yml logs -f
+docker compose -f docker/docker-compose.yml down
```
## 开发用 Compose
@@ -78,7 +78,7 @@ docker compose down
如果你要基于本地源码构建,可以使用:
```bash
-docker compose -f docker-compose.dev.yml up -d --build
+docker compose -f docker/docker-compose.dev.yml up -d --build
```
这个文件的特点是:
diff --git a/mkdocs/docs/zh/deployment/docker-troubleshooting.md b/mkdocs/docs/zh/deployment/docker-troubleshooting.md
index a54b5e57..1a7d4380 100644
--- a/mkdocs/docs/zh/deployment/docker-troubleshooting.md
+++ b/mkdocs/docs/zh/deployment/docker-troubleshooting.md
@@ -12,8 +12,8 @@
排查前先分清:
- `docker run -p 8081:80 ...`
-- `docker compose up -d` 使用仓库自带 `docker-compose.yml`
-- `docker compose -f docker-compose.dev.yml up -d --build`
+- `docker compose -f docker/docker-compose.yml up -d` 使用仓库自带 Compose 配置
+- `docker compose -f docker/docker-compose.dev.yml up -d --build`
因为三种方式默认端口不一样,很多“服务打不开”其实只是看错了端口。
@@ -41,8 +41,8 @@ docker logs prompt-optimizer
如果你用的是仓库自带 compose,再看:
```bash
-docker compose ps
-docker compose logs -f
+docker compose -f docker/docker-compose.yml ps
+docker compose -f docker/docker-compose.yml logs -f
```
常见原因:
@@ -54,8 +54,8 @@ docker compose logs -f
端口对应关系:
- `docker run -p 8081:80` 对外一般是 `8081`
-- `docker-compose.yml` 默认是 `28081`
-- `docker-compose.dev.yml` 默认是 `28082`
+- `docker/docker-compose.yml` 默认是 `28081`
+- `docker/docker-compose.dev.yml` 默认是 `28082`
## 常见问题 2:`/mcp` 访问失败
@@ -138,7 +138,7 @@ http://localhost:11434/v1
http://host.docker.internal:11434/v1
```
-如果你使用 `docker-compose.dev.yml`,仓库已经帮你加了:
+如果你使用 `docker/docker-compose.dev.yml`,仓库已经帮你加了:
```yaml
extra_hosts:
@@ -156,8 +156,8 @@ extra_hosts:
可以按这个顺序试:
```bash
-docker compose down
-docker compose up -d
+docker compose -f docker/docker-compose.yml down
+docker compose -f docker/docker-compose.yml up -d
```
或者: