From 074ddeedde32c39e69cc7ac51ceefbe7d65a6a13 Mon Sep 17 00:00:00 2001 From: baozaotumao Date: Mon, 1 Jun 2026 21:59:54 -0700 Subject: [PATCH] =?UTF-8?q?docs:=20README=20=E8=A1=A5=E5=9B=9B=E5=B1=82?= =?UTF-8?q?=E6=8A=A4=E6=A0=8F=E8=AF=B4=E6=98=8E=20+=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增「四层质量护栏」章节:LSP/watch/pre-commit/CI + .vscode 行为说明 - 文件树补 .copier-answers.yml.jinja / .vscode/ / pnpm-workspace.yaml - pre-commit 标注含 gitleaks --- README.md | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4fb451f..bd982e9 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,25 @@ include_frontend=false → 所有 frontend*.md 排除 --- +## 四层质量护栏(左移,编码即查错) + +同一套规则(ruff/mypy 读 `pyproject.toml`,eslint/prettier 读各自配置)贯穿四层,越靠前越早发现,到 commit 时基本只是确认: + +| 层 | 时机 | 机制 | 是否默认生成 | +|----|------|------|------| +| **1 编辑器 LSP** | 边打字 | `.vscode/settings.json` + `extensions.json`:保存自动格式化/修复、实时标红 | ✅ 始终 | +| **2 watch 监听** | 一保存 | `.vscode/tasks.json`:打开项目自动起 `tsc --watch` / `ruff --watch` | 开关 `vscode_auto_watch` | +| **3 pre-commit** | git commit | `.pre-commit-config.yaml`:ruff/mypy/eslint/tsc/gitleaks | ✅ 始终 | +| **4 CI** | push / PR | `.github/workflows/ci.yml` | ✅ 始终 | + +关于 `.vscode/`: + +- **只影响当前项目**(工作区级),不碰你的 VSCode 全局配置;个人偏好(主题/字号)仍走全局。 +- 是**团队级规则**,随 scaffold 演进——`copier update` 走 3-way 合并推送改进,仅改了同一行才提示冲突。 +- 首次用 watch 需在命令面板执行一次 **"Tasks: Allow Automatic Tasks"** 授权。 + +--- + ## 脚手架内容 ``` @@ -78,8 +97,13 @@ scaffold/ │ ├── install-skill.sh ← 把 skill 安装到 ~/.claude/skills/ │ └── retrofit.sh ← 补装工具链到已有项目 └── template/ - ├── .pre-commit-config.yaml.jinja ← 按服务条件生成 hooks + ├── .copier-answers.yml.jinja ← 记录模板版本+答案,供 copier update + ├── .pre-commit-config.yaml.jinja ← 按服务条件生成 hooks(含 gitleaks) ├── .github/workflows/ci.yml.jinja ← 按服务条件生成 CI jobs + ├── .vscode/ ← 编辑器实时护栏(始终生成) + │ ├── settings.json.jinja ← 保存自动格式化/修复(按服务裁剪) + │ ├── extensions.json.jinja ← 推荐扩展(ruff/eslint/mypy…) + │ └── tasks.json.jinja ← 自动 watch(仅 vscode_auto_watch=true) ├── docker-compose.yml.jinja ├── CLAUDE.md.jinja ← 项目说明参数化 ├── .claude/rules/ @@ -101,7 +125,7 @@ scaffold/ │ └── backend-db.md.jinja ← SQLite 配置 vs PostgreSQL 配置 ├── backend/ pyproject.toml / Dockerfile / .env.example / src/ ├── agent/ 同上 - └── frontend/ package.json / tsconfig / eslint / prettier / vitest / vite + └── frontend/ package.json / pnpm-workspace.yaml / tsconfig / eslint / prettier / vitest / vite ``` ---