Files
novalon-website/docs/superpowers/plans/2026-04-12-project-reorganization-plan.md
T

17 KiB
Raw Blame History

Novalon Website 项目系统性整理实施计划

创建日期: 2026-04-12
基于设计: 2026-04-12-project-reorganization-design.md
执行方式: 内联执行(使用 executing-plans 技能)


执行概览

总预估时间: 3.5 天
执行策略: 混合方案(方案 B + 方案 C
验收标准: 参见设计文档第 1.3 节


阶段一:自动化预处理(方案 C

预估时间: 0.5 天
执行方式: 自动化工具 + 人工验证

任务 1.1:代码格式化统一

文件:

  • 创建: .prettierrc
  • 修改: config/lint/.eslintrc.json

职责: 统一代码风格和格式

测试: 运行 npm run lint 验证无错误

步骤:

  1. 创建 .prettierrc 配置文件
    {
      "semi": true,
      "trailingComma": "es5",
      "singleQuote": true,
      "printWidth": 100,
      "tabWidth": 2,
      "useTabs": false,
      "arrowParens": "always",
      "endOfLine": "lf"
    }
    
  2. 更新 config/lint/.eslintrc.json 强化规则
  3. 运行 npm run lint -- --fix 自动修复代码格式
  4. 运行 npm run lint 验证无错误

任务 1.2:安全漏洞自动修复

文件: package.json, package-lock.json

职责: 修复安全漏洞

测试: 运行 npm audit 验证无漏洞

步骤:

  1. 运行 npm audit fix 自动修复安全漏洞
  2. 如自动修复失败,手动更新依赖:
    npm update drizzle-kit @lhci/cli
    
  3. 运行 npm audit 验证漏洞已修复
  4. 运行 npm test 验证功能正常

任务 1.3:简单代码问题自动修复

文件: 多个源代码文件

职责: 自动修复简单的代码问题

测试: 运行 npm run lintnpm run type-check 验证

步骤:

  1. 运行 npm run lint -- --fix 自动修复代码问题
  2. 运行 npm run type-check 验证无类型错误
  3. 运行 npm test 验证功能正常

阶段二:项目结构重组(方案 B

预估时间: 0.5 天
执行方式: 人工处理 + 测试验证

任务 2.1:脚本文件分类整理

文件:

  • 创建: scripts/deployment/, scripts/monitoring/, scripts/diagnosis/, scripts/security/, scripts/maintenance/, scripts/tools/, scripts/README.md
  • 移动: 根目录的 36 个脚本文件

职责: 将根目录的 36 个脚本文件分类整理

测试:

  1. 检查 package.json 中的脚本路径是否已更新
  2. 运行 npm run build 验证构建成功
  3. 检查根目录脚本文件数量 ≤ 5

步骤:

  1. 创建 scripts/ 子目录结构
    mkdir -p scripts/deployment
    mkdir -p scripts/monitoring
    mkdir -p scripts/diagnosis
    mkdir -p scripts/security
    mkdir -p scripts/maintenance
    mkdir -p scripts/tools
    
  2. 移动部署脚本
    mv deploy.sh scripts/deployment/
    mv deploy-production.sh scripts/deployment/
    mv deploy-cdn.sh scripts/deployment/
    mv refresh-cdn.sh scripts/deployment/
    mv deploy-subdomain-ssl.sh scripts/deployment/
    mv deploy-wildcard-domain.sh scripts/deployment/
    
  3. 移动监控脚本
    mv monitor-pipeline.sh scripts/monitoring/
    mv monitor-pipeline-32.sh scripts/monitoring/
    mv monitor-pipeline-continuous.sh scripts/monitoring/
    mv cicd-monitor.sh scripts/monitoring/
    mv container-monitor.sh scripts/monitoring/
    
  4. 移动诊断脚本
    mv diagnose-docker-ci.sh scripts/diagnosis/
    mv diagnose-cicd-issues.sh scripts/diagnosis/
    mv diagnose-webhook-detail.sh scripts/diagnosis/
    mv diagnose-woodpecker.py scripts/diagnosis/
    mv diagnose-auto-trigger.py scripts/diagnosis/
    mv production-diagnosis.sh scripts/diagnosis/
    mv remote-server-diagnosis.sh scripts/diagnosis/
    mv network-diagnosis.sh scripts/diagnosis/
    
  5. 移动安全脚本
    mv security-audit.sh scripts/security/
    mv security-hardening.sh scripts/security/
    mv security-verification.sh scripts/security/
    
  6. 移动维护脚本
    mv auto-cleanup.sh scripts/maintenance/
    mv disk-cleanup-immediate.sh scripts/maintenance/
    mv disk-optimization-long-term.sh scripts/maintenance/
    mv git-cleanup.sh scripts/maintenance/
    mv git-filter-repo-cleanup.sh scripts/maintenance/
    mv production-docker-cleanup.sh scripts/maintenance/
    mv docker-cleanup.sh scripts/maintenance/
    
  7. 移动工具脚本
    mv optimize-font.py scripts/tools/
    mv analyze-test-coverage.ts scripts/tools/
    mv capture-webhook.sh scripts/tools/
    mv check-job-triggers.groovy scripts/tools/
    mv check-woodpecker-logs.sh scripts/tools/
    mv notify-wechat.sh scripts/tools/
    mv set-woodpecker-trusted.sh scripts/tools/
    mv setup-gitea-oauth2.sh scripts/tools/
    mv setup-gitea-oauth2-auto.sh scripts/tools/
    mv fix-service-restart.sh scripts/tools/
    mv fix-jenkins-nginx.sh scripts/tools/
    
  8. 更新 package.json 中的脚本路径引用
  9. 创建 scripts/README.md 说明脚本用途
  10. 运行测试验证路径正确

任务 2.2:Docker 文件整理

文件:

  • 创建: docker/, docker/nginx/
  • 移动: Docker 相关文件

职责: 整理 Docker 配置文件

测试:

  1. 运行 docker build -f docker/Dockerfile . 验证构建成功
  2. 检查 CI/CD 配置文件中的 Docker 路径引用是否已更新

步骤:

  1. 创建 docker/ 目录
    mkdir -p docker/nginx
    
  2. 移动 Dockerfile 文件
    mv Dockerfile docker/
    mv Dockerfile.prod docker/
    mv Dockerfile.tools docker/
    
  3. 移动 docker-compose 文件
    mv docker-compose.yml docker/
    mv docker-compose.prod.yml docker/
    mv docker-compose.high-perf.yml docker/
    mv docker-compose.server.yml docker/
    
  4. 移动 nginx 配置
    mv nginx-woodpecker.conf docker/nginx/
    mv nginx-woodpecker-fixed.conf docker/nginx/
    
  5. 更新 CI/CD 配置中的 Docker 文件路径引用
    • 检查 .woodpecker-test.yml 中的 Docker 路径
    • 检查 Jenkinsfile 中的 Docker 路径
    • 检查 config/ci/*.yml 中的 Docker 路径
  6. 运行 docker build -f docker/Dockerfile . 验证构建正常

任务 2.3:文档结构优化

文件:

  • 创建: docs/archive/, docs/README.md
  • 移动: 过时文档
  • 合并: 重复文档

职责: 优化文档结构,建立索引

测试:

  1. 使用 markdown-link-check 工具验证所有 Markdown 文件中的链接
  2. 检查 docs/README.md 文档索引是否完整

步骤:

  1. 创建 docs/archive/ 目录
    mkdir -p docs/archive
    
  2. 移动过时计划文档
    mv docs/plans/2026-03-*.md docs/archive/
    
  3. 合并重复文档
    • 合并 docs/MONITORING_SETUP.md, docs/MONITORING_QUICKSTART.md, docs/MONITORING_LIGHTWEIGHT.md, docs/LIGHTWEIGHT_MONITORING.mddocs/guides/monitoring.md
    • 合并 docs/PRODUCTION_DEPLOYMENT.md, docs/PRODUCTION_DEPLOYMENT_LIGHTWEIGHT.mddocs/deployment/production-deployment.md
  4. 创建 docs/README.md 文档索引
  5. 验证所有文档链接有效

任务 2.4:配置文件统一管理

文件: 检查 config/ 目录

职责: 确保配置文件集中管理

测试:

  1. 运行 npm run build 验证配置加载正确
  2. 检查 config/ 目录结构是否完整

步骤:

  1. 检查 config/ 目录结构
  2. 确保所有配置文件都在 config/ 目录下
  3. 验证配置文件加载正确

阶段三:代码质量深度优化(方案 B

预估时间: 1 天
执行方式: 人工处理 + 测试验证

任务 3.1:创建统一日志工具

文件:

  • 创建: src/lib/logger.ts
  • 创建: src/lib/logger.test.ts

职责: 提供统一的日志管理工具

测试: src/lib/logger.test.ts

步骤:

  1. 创建 src/lib/logger.ts 文件
    type LogLevel = 'debug' | 'info' | 'warn' | 'error';
    
    class Logger {
      private isDevelopment = process.env.NODE_ENV === 'development';
    
      debug(message: string, ...args: unknown[]) {
        if (this.isDevelopment) {
          console.debug(`[DEBUG] ${message}`, ...args);
        }
      }
    
      info(message: string, ...args: unknown[]) {
        console.info(`[INFO] ${message}`, ...args);
      }
    
      warn(message: string, ...args: unknown[]) {
        console.warn(`[WARN] ${message}`, ...args);
      }
    
      error(message: string, error?: Error, ...args: unknown[]) {
        console.error(`[ERROR] ${message}`, error, ...args);
      }
    }
    
    export const logger = new Logger();
    
  2. 编写单元测试验证日志功能
  3. 运行测试确保通过

任务 3.2:console.log 清理

文件: 修改所有包含 console.log 的生产代码文件

职责: 清理 72 处 console.log,改用统一日志工具

测试: 运行测试验证功能正常

步骤:

  1. 扫描所有 console.log 出现的位置
    grep -r "console\.(log|debug|warn|error)" src/ --include="*.ts,*.tsx" --exclude="*.test.*"
    
  2. 分类标记:
    • 调试日志(删除)
    • 错误日志(改用 logger.error
    • 信息日志(评估)
  3. 批量处理生产代码中的 console.log
    • API 路由:改用 logger.error
    • 页面组件:删除
    • 客户端组件:删除
    • 管理后台:改用 logger.info
  4. 保留测试文件和种子数据文件中的 console.log
  5. 运行测试验证功能正常

任务 3.3:TODO/FIXME 处理

文件: 修改包含 TODO/FIXME 的文件

职责: 处理 9 个 TODO/FIXME 注释

测试: 运行测试验证功能正常

步骤:

  1. 扫描所有 TODO/FIXME 出现的位置
    grep -r "TODO|FIXME|HACK|XXX" src/ --include="*.ts,*.tsx"
    
  2. 评估每个 TODO/FIXME 的优先级
  3. 实现或修复相关功能
  4. 删除已处理的 TODO/FIXME 注释
  5. 运行测试验证功能正常

任务 3.4:代码逻辑优化

文件: 优化代码结构和逻辑

职责: 提升代码可读性和可维护性

测试: 运行测试验证功能正常

步骤:

  1. 识别需要优化的代码模块
  2. 重构代码结构
  3. 优化代码逻辑
  4. 运行测试验证功能正常

阶段四:依赖管理与测试(混合)

预估时间: 1 天
执行方式: 自动化 + 人工评估 + 测试验证

任务 4.1:依赖更新评估

文件: package.json, package-lock.json

职责: 评估并更新依赖包

测试: 运行测试验证兼容性

步骤:

  1. 运行 npm outdated 查看过时依赖
  2. 评估每个依赖的更新影响
  3. 更新 Patch 和 Minor 版本依赖
    npm update @playwright/test
    npm update @sentry/nextjs
    npm update @tiptap/extension-image @tiptap/extension-link @tiptap/pm @tiptap/react @tiptap/starter-kit
    npm update drizzle-orm
    npm update @typescript-eslint/eslint-plugin @typescript-eslint/parser
    
  4. 运行测试验证兼容性

任务 4.2:API 路由测试补充

文件: 创建测试文件

职责: 补充 API 路由测试用例

测试: 运行测试验证覆盖率提升

步骤:

  1. src/app/api/admin/security/route.ts 创建测试文件
  2. src/app/api/config/route.ts 创建测试文件
  3. src/app/api/content/route.ts 创建测试文件
  4. src/app/api/docs/route.ts 创建测试文件
  5. src/app/api/v1/config/route.ts 创建测试文件
  6. 编写关键路径测试用例
  7. 运行测试验证覆盖率提升

任务 4.3:管理后台测试补充

文件: 创建/更新测试文件

职责: 补充管理后台测试用例

测试: 运行测试验证覆盖率提升

步骤:

  1. src/app/admin/settings/page.tsx 补充测试用例
  2. src/app/admin/users/page.tsx 补充测试用例
  3. src/app/admin/content/[id]/page.tsx 补充测试用例
  4. 编写用户交互测试用例
  5. 运行测试验证覆盖率提升

任务 4.4:页面组件测试补充

文件: 创建测试文件

职责: 补充页面组件测试用例

测试: 运行测试验证覆盖率提升

步骤:

  1. src/app/(marketing)/services/[id]/client.tsx 创建测试文件
  2. src/app/(marketing)/solutions/page.tsx 创建测试文件
  3. src/app/(marketing)/contact/actions.ts 创建测试文件
  4. 编写用户交互测试用例
  5. 运行测试验证覆盖率提升

任务 4.5:性能优化

文件:

  • 修改: next.config.ts
  • 修改: config/test/lighthouserc.json

职责: 优化构建和运行时性能

测试: 运行 Lighthouse CI 验证性能指标

步骤:

  1. 优化 next.config.ts 配置
    const nextConfig = {
      experimental: {
        optimizePackageImports: ['lucide-react', 'framer-motion'],
      },
      images: {
        formats: ['image/avif', 'image/webp'],
        deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
        imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
      },
      compress: true,
      poweredByHeader: false,
      productionBrowserSourceMaps: false,
    };
    
  2. 配置 Lighthouse CI
  3. 运行 Lighthouse CI 验证性能指标

阶段五:文档与验收(方案 B

预估时间: 0.5 天
执行方式: 人工处理 + 自动化验证

任务 5.1:README 更新

文件: README.md

职责: 更新项目主 README 文档

测试: 验证文档内容准确

步骤:

  1. 更新项目结构说明
  2. 更新技术栈版本信息
  3. 更新质量保障章节
  4. 更新文档导航链接
  5. 验证文档内容准确

任务 5.2:文档索引创建

文件: docs/README.md

职责: 创建文档中心索引

测试: 验证文档链接有效

步骤:

  1. 创建文档索引结构
  2. 添加快速导航链接
  3. 分类整理文档链接
  4. 验证所有链接有效

任务 5.3:全面回归测试

文件: 运行所有测试

职责: 确保所有功能正常

测试: 运行完整测试套件

步骤:

  1. 运行 npm run lint 验证代码质量
  2. 运行 npm run type-check 验证类型正确
  3. 运行 npm run test:coverage 验证测试覆盖率
  4. 运行 npm run build 验证构建成功
  5. 运行 npm audit 验证安全性
  6. 运行 npm run test:e2e 验证 E2E 测试

任务 5.4:验收报告生成

文件: docs/superpowers/reports/2026-04-12-project-reorganization-report.md

职责: 生成整理总结报告

测试: 验证报告内容完整

步骤:

  1. 收集测试覆盖率报告
  2. 收集 Lighthouse 报告
  3. 收集安全审计报告
  4. 生成整理总结报告
  5. 验证报告内容完整

验收标准

代码质量

  • ESLint 错误: 0
  • TypeScript 错误: 0
  • console.log(生产代码): 0
  • TODO/FIXME: 0

测试覆盖率

  • Lines: ≥ 70%
  • Functions: ≥ 65%
  • Branches: ≥ 60%
  • Statements: ≥ 70%

安全性

  • 高危漏洞: 0
  • 中危漏洞: 0
  • 低危漏洞: ≤ 2

性能

  • Lighthouse 性能评分: ≥ 90
  • Lighthouse 可访问性评分: ≥ 95
  • Lighthouse 最佳实践评分: ≥ 95
  • Lighthouse SEO 评分: ≥ 95

项目结构

  • 根目录脚本文件: ≤ 5
  • 文档索引已建立
  • 配置文件集中管理

风险应对

风险 1:文件迁移导致引用路径错误

  • 应对: 逐个验证引用路径,运行测试
  • 回滚: Git 分支策略,每个阶段完成后提交

风险 2:代码清理导致功能异常

  • 应对: 边改边测,保留回滚点
  • 回滚: 分阶段提交,便于回滚

风险 3:依赖更新导致兼容性问题

  • 应对: 逐个更新,充分测试
  • 回滚: 保留 package-lock.json 备份

风险 4:测试失败

  • 应对: 修复代码或调整测试
  • 回滚: 单独的测试分支

执行检查点

检查点 1:阶段一完成后

  • 运行 npm run lint 无错误
  • 运行 npm audit 漏洞已修复
  • 运行 npm test 测试通过

检查点 2:阶段二完成后

  • 验证所有脚本路径正确
  • 验证 Docker 构建正常
  • 验证文档链接有效

检查点 3:阶段三完成后

  • 验证 console.log 已清理
  • 验证 TODO/FIXME 已处理
  • 运行测试功能正常

检查点 4:阶段四完成后

  • 验证测试覆盖率达标
  • 验证性能指标达标
  • 验证依赖更新正常

检查点 5:阶段五完成后

  • 验证文档更新完整
  • 运行完整测试套件通过
  • 验收报告已生成

后续建议

短期(1-2 周)

  1. 监控整理后的项目运行状态
  2. 收集团队反馈,优化工作流程
  3. 补充遗漏的测试用例
  4. 完善文档细节

中期(1-3 月)

  1. 评估 Major 版本依赖更新的可行性
  2. 引入更严格的代码质量门禁
  3. 优化 CI/CD 流程
  4. 提升测试覆盖率至 80%+

长期(3-6 月)

  1. 建立持续的技术债务管理机制
  2. 定期进行代码审查和重构
  3. 引入更多自动化工具
  4. 建立知识库和最佳实践文档