workbuddy.xpcool.com/.workbuddy/memory/MEMORY.md
夏犀麟 621acf12ef docs: xpcool.com 改版为随机壁纸站,同步索引/部署手册/日志
- MEMORY.md 索引:xpcool.com 的描述由「主域名(品牌首页)」改为
  「随机壁纸站(浏览器实时生成,可导出 4K;中英日韩 + 日夜主题)」。
- DEPLOY.md 站点表:同步 xpcool.com 一行的定位与产物体积,
  并记上部署脚本改为 pack-xpcool.ps1 + deploy-xpcool.ps1 两步走。
- 2026-09-14 日志:追加本次改版的完整记录,含三处根因分析
  (画面和泥、strata 层交叉、遮罩浓度过激)与两处真 bug。

顺带记录本次部署踩到的两个坑(已修进脚本,值得复用):
1. 新写的 .ps1 必须带 UTF-8 BOM,否则本机 PowerShell 5.1 按 GBK 解码,
   中文被截断导致解析失败 —— 用字节级前置 EF BB BF 修,不能用
   Get-Content -Raw + Out-File(会不可逆地破坏中文)。
2. deploy-xpcool.ps1 在 $ErrorActionPreference='Stop' 下,ssh 回传的
   nginx -t / openssl 正常输出走 stderr,被 PowerShell 当成终止性错误抛出,
   于是「远端其实跑通了、本地却中途退出」,表现为配置已装但没 reload 的
   半个部署。原生调用前后临时切回 Continue,成败只认 $LASTEXITCODE。
2026-09-14 01:01:32 +08:00

39 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# xpcool.com 工作空间 · 统一规则与项目索引
> 随会话自动加载。本文件只放**规则与索引**;生产部署、服务器/容器/站点清单、nginx 与证书约定、安全加固与告警去重、本机工具链坑位,全部见同目录 **`DEPLOY.md`**。
## 三条铁律(全项目通用)
1. **中文注释**:写/改代码时,在应有处(函数、复杂逻辑、配置项、非显然分支)加中文注释。
2. **做记录**:每次请求/变更/修复/文档动作,在对应项目 `CHANGELOG.md` 顶部追加一条 `YYYY-MM-DD | 类型 | 一句话摘要`REQ/CHG/FIX/DOC/CFG/DEP
3. **中文优先**:思考、输出、交流能中文就中文。
## 接口设计规范2026-08-27 起 · 强制)
- 新建 HTTP 接口**一律 POST****URL 不带任何参数**(查询参数、路径参数 `{id}` 都禁止);**入参全部走 body(JSON)**。
- 路由用静态 path`/recruitment/info/update``id` 等也放 body。
- 同时约束 service 后端g.Meta `method:"post"`)与 admin 前端(`requestClient.post(url, data)`url 无参)。
- 范本模块service.xpcool.com `recruitment`;存量接口逐步迁移。
## 界面开发约定2026-08-26 起)
- admin.xpcool.com 写 TDesign 组件前**先用 TDesign MCP 查官方文档**`tdesign-mcp-server`,配在 `~/.workbuddy/mcp.json`),用官方封装属性,避免自造轮子。
- 树形表格必须用 `t-enhanced-table`;异步数据后需 `await nextTick()` + `tableRef.value.expandAll()``defaultExpandAll` 只在首次渲染生效)。
## 工作空间与项目索引
- 本仓库 `workbuddy.xpcool.com`(规则+索引+每日日志),远程 `https://git.xpcool.com/xpcool/workbuddy.xpcool.com.git`
- **布局约定**:所有项目与工作空间位于同一父目录下(`workbuddy.xpcool.com`、`admin.xpcool.com`、`service.xpcool.com`、`tool.xpcool.com`、`home.xpcool.com`、`xpcool.com`),换设备按此布局 clone索引即生效。
| 项目 | 类型 | 变更记录 | 远程仓库 |
|------|------|---------|---------|
| admin.xpcool.com | Vue 管理后台前端 | `../admin.xpcool.com/.workbuddy/memory/CHANGELOG.md` | git.xpcool.com/xpcool/admin.xpcool.com.git |
| service.xpcool.com | Go 后端服务 | `../service.xpcool.com/.workbuddy/memory/CHANGELOG.md` | git.xpcool.com/xpcool/service.xpcool.com.git |
| tool.xpcool.com | 前端工具站 | `../tool.xpcool.com/.workbuddy/memory/CHANGELOG.md` | git.xpcool.com/xpcool/tool.xpcool.com.git |
| home.xpcool.com | 前端服务台(公开服务入口) | `../home.xpcool.com/.workbuddy/memory/CHANGELOG.md` | 本地 git init/commit远程待建 |
| xpcool.com | 主域名:随机壁纸站(浏览器实时生成,可导出 4K中英日韩 + 日夜主题) | `../xpcool.com/.workbuddy/memory/CHANGELOG.md` | 2026-09-13 上线;本地 git init/commit远程待建 |
## 命中流程
判断涉及哪个项目 → 读该项目 CHANGELOG 头部 1015 条 → 处理后于顶部追加本次记录 → 新增项目时同步更新上方索引表。
## 协作约定
- **只 commit、不要 push**(推送由用户自行完成,避免凭据交互失败)。换设备开工前先 `git pull` 各仓库。
- **验证分工**AI 能做的(类型检查、构建、冒烟测试)照做;浏览器交互体验、视觉效果交给用户手动验证,不反复折腾自动化。
- 服务器操作走 SSH`193.112.118.168:22025`,用户 `xxcool`,密钥 `~/.ssh/xpcool_ed25519`。**尽量把多个操作合并成一次 SSH 调用**,减少权限弹窗。