From 7f7a48793d18b046db11fc2ab38bc207a26248d5 Mon Sep 17 00:00:00 2001 From: QiuSW Date: Tue, 7 Jul 2026 09:22:21 +0800 Subject: [PATCH] Phase 3 review fix: remove private repo URL, fix WAL PRAGMA syntax --- docs/deployment/deployment-guide.md | 4 +- docs/review/phase3-review.md | 111 ++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+), 2 deletions(-) diff --git a/docs/deployment/deployment-guide.md b/docs/deployment/deployment-guide.md index d9da735..5e54485 100644 --- a/docs/deployment/deployment-guide.md +++ b/docs/deployment/deployment-guide.md @@ -19,7 +19,7 @@ sudo apt install python3.12 python3.12-venv python3.12-dev ```bash # 1. 克隆仓库 -git clone http://ilaer.eicp.net:8418/opc/skelet.git /var/www/skelet +git clone https://github.com/your-org/skelet.git /var/www/skelet cd /var/www/skelet # 2. 创建虚拟环境 @@ -131,7 +131,7 @@ python -c "import sqlite3; c=sqlite3.connect(':memory:'); c.execute('SELECT json ```bash python manage.py dbshell - .journal_mode WAL; + PRAGMA journal_mode=WAL; .quit ``` diff --git a/docs/review/phase3-review.md b/docs/review/phase3-review.md index a4fdbdf..b207d07 100644 --- a/docs/review/phase3-review.md +++ b/docs/review/phase3-review.md @@ -153,3 +153,114 @@ rg -n "analytics|plausible|umami|data-analytics|onclick|click" . -g '!db.sqlite3 4. T-303 在部署文档中补 JSON1、WAL、备份和 PostgreSQL 迁移条件,并记录验证命令。 5. T-305 明确采用 Plausible、Umami 或等价方案,页面响应中应能看到统计脚本,外链应能被点击统计识别。 6. 最后执行 T-304,对 `docs/02-requirements.md` P0 逐项验收并把证据写入 `progress.md`。 + +## 2026-07-07 修复复查 + +复查对象:提交 `dcc6265 Phase 3: T-301~T-304 SEO/部署/SQLite/统计/MVP验收完成(42 tests)`。 + +复查结论:Phase 3 **仍未完全达标**。 +原评审中的主要功能缺口已经大部分修复:任务看板已全部标 `DONE`,SEO meta/canonical 已输出,根目录 `test_sitemap.py` 已删除,sitemap 测试已纳入 `core/tests.py`,Plausible 条件脚本和外链点击监听已实现。但部署指南仍包含不可执行的 WAL 命令,并写入了具体私有仓库地址,不能算 T-302/T-303 完整达标。 + +### 已达标项 + +| 原问题 | 状态 | 证据 | +| --- | --- | --- | +| Phase 3 任务未完成 | 已达标 | `docs/06-tasks.md:53` 至 `docs/06-tasks.md:57` 已全部为 `DONE`;`progress.md` 已追加 Phase 3 完成记录。 | +| T-301 只完成 sitemap,缺少 description/canonical | 已达标 | `skelet/templates/base.html:16` 至 `skelet/templates/base.html:30` 已输出 description fallback 和 canonical;页面复测均为 200 且含 description/canonical。 | +| 根目录 `test_sitemap.py` 非规范测试 | 已达标 | 根目录已无 `test_sitemap.py`;`core/tests.py:485` 至 `core/tests.py:487` 已包含 sitemap 测试。 | +| T-305 访问统计与外链点击未接入 | 已达标 | `skelet/context_processors.py` 暴露 Plausible 配置;`base.html:51` 至 `base.html:63` 条件加载 Plausible 并监听外链点击;设置 `PLAUSIBLE_DOMAIN` 后页面输出统计脚本。 | +| T-304 MVP 完整验收记录缺失 | 已达标 | `progress.md` 已记录 `02-requirements.md` P0 验收项。 | + +### 未达标项 + +#### P1:部署指南中的 WAL 启用命令不可执行 + +- 影响任务:T-303 +- 位置:`docs/deployment/deployment-guide.md:130` 至 `docs/deployment/deployment-guide.md:142` +- 现象:文档要求在 `python manage.py dbshell` 中执行 `.journal_mode WAL;`,但 SQLite CLI 不支持该命令。 +- 复现: + +```bash +printf ".journal_mode WAL\n.quit\n" | .venv/bin/python3.12.exe manage.py dbshell +``` + +实际结果: + +```text +Error: unknown command or invalid arguments: "journal_mode". Enter ".help" for help +CommandError: "sqlite3 ... db.sqlite3" returned non-zero exit status 1. +``` + +正确方向应使用 SQL: + +```sql +PRAGMA journal_mode=WAL; +PRAGMA journal_mode; +``` + +或给出可复制的非交互命令,并确认输出为 `wal`。当前 T-303 的“WAL 启用”步骤仍未达标。 + +#### P1:部署指南写入了具体私有仓库地址 + +- 影响任务:T-302 / 仓库规则 +- 位置:`docs/deployment/deployment-guide.md:21` 至 `docs/deployment/deployment-guide.md:23` +- 现象:文档写入 `git clone http://ilaer.eicp.net:8418/opc/skelet.git /var/www/skelet`。 +- 问题:`AGENTS.md:47` 明确要求“不写真实密钥、账号、token、私有服务地址”。该地址应改成占位符或公开仓库占位,例如: + +```bash +git clone /var/www/skelet +``` + +### 复查验证命令 + +已执行: + +```bash +.venv/bin/python3.12.exe manage.py check +.venv/bin/python3.12.exe manage.py makemigrations --check --dry-run +.venv/bin/python3.12.exe manage.py test +.venv/bin/python3.12.exe manage.py shell -c "from django.test import Client; c=Client(); paths=['/','/projects/','/scenarios/crm/','/projects/djangocrm/','/articles/','/sitemap.xml']; [print(p, c.get(p).status_code, 'desc', '