diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..15c3194 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,6 @@ +# 标准开发环境为 WSL2/Linux(见 AGENTS.md),统一按 LF 提交,避免 CRLF/LF 反复造成全文件假差异 +* text=auto eol=lf +*.png binary +*.jpg binary +*.ico binary +*.pem binary diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e9af1a6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +# 部署凭证与私有环境信息,绝不提交(含 SSH 私钥) +deploy/ +*.pem +.env +.env.* + +# Python +__pycache__/ +*.py[cod] +.venv/ +venv/ + +# Django / Wagtail +db.sqlite3 +db.sqlite3-journal +db.sqlite3-wal +db.sqlite3-shm +media/ +staticfiles/ + +# 系统与编辑器 +.DS_Store +Thumbs.db diff --git a/AGENTS.md b/AGENTS.md index e9b958c..b412b9d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -16,7 +16,7 @@ Skelet 是一个介绍、分类、评测开源项目骨架的网站。目标用 ## 开发环境 -- 标准开发环境是 WSL2 / Linux,仓库根目录为 `/mnt/d/OPC/skelet`。 +- 标准开发环境是 WSL2 / Linux,仓库根目录为 `/mnt/d/opc_project/skelet`。 - 所有文档命令统一使用 bash 形态。 - `init.sh` 是标准启动与验证入口;`init.ps1` 仅作为 Windows 下的可选辅助,允许滞后。 diff --git a/docs/00-ai-start-here.md b/docs/00-ai-start-here.md index c28730d..c0bd8ae 100644 --- a/docs/00-ai-start-here.md +++ b/docs/00-ai-start-here.md @@ -4,7 +4,7 @@ ## 固定开工流程 -1. `pwd`:确认在仓库根目录(标准开发环境为 WSL/Linux,路径 `/mnt/d/OPC/skelet`)。 +1. `pwd`:确认在仓库根目录(标准开发环境为 WSL/Linux,路径 `/mnt/d/opc_project/skelet`)。 2. 读 [`../progress.md`](../progress.md) 和 [`current-state.md`](current-state.md)。 3. 运行 `git log --oneline -5`,了解最近提交。 4. 如果 `init.sh` 已配置真实命令,运行标准验证;如果脚本仍是占位,先完成 `T-001`。 diff --git a/docs/03-tech-stack.md b/docs/03-tech-stack.md index 90c0406..041d7ae 100644 --- a/docs/03-tech-stack.md +++ b/docs/03-tech-stack.md @@ -17,7 +17,7 @@ | 媒体存储 | 本地 media 目录 | 已定 | 2 核 2G VPS 第一版足够;后续可迁移 S3/R2/OSS。 | | 部署方式 | 单 VPS,Gunicorn + Nginx | 待实现 | 面向 2 核 2G VPS;先不引入 Docker 作为必需项。 | | 测试 | Django test / pytest 待定 | 待定 | T-001 初始化后以项目实际生成结构为准。 | -| 开发环境 | WSL2 / Linux + bash | 已定 | 仓库根目录 `/mnt/d/OPC/skelet`;`init.sh` 为标准入口,`init.ps1` 可选。 | +| 开发环境 | WSL2 / Linux + bash | 已定 | 仓库根目录 `/mnt/d/opc_project/skelet`;`init.sh` 为标准入口,`init.ps1` 可选。 | | 访问统计 | Plausible / Umami 或等价轻量方案 | 待实现 | 上线前接入(任务 T-305);自然搜索和外链点击是 M3/M4 商业验证的前置数据。 | ## 二、决策记录与演进 diff --git a/docs/90-harness-reference.md b/docs/90-harness-reference.md index a348071..dfb4044 100644 --- a/docs/90-harness-reference.md +++ b/docs/90-harness-reference.md @@ -90,7 +90,7 @@ 恢复步骤: -1. 确认在仓库根目录(WSL 下为 `/mnt/d/OPC/skelet`)。 +1. 确认在仓库根目录(WSL 下为 `/mnt/d/opc_project/skelet`)。 2. 读取 `AGENTS.md`、`docs/00-ai-start-here.md`、`docs/current-state.md`。 3. 查看 `docs/06-tasks.md`,领取第一个 `TODO` 且依赖均为 `DONE` 的任务。 4. 生产代码尚未初始化时先做 `T-001`,不要提前实现业务页面。 diff --git a/docs/current-state.md b/docs/current-state.md index bf4462a..fc6f0c4 100644 --- a/docs/current-state.md +++ b/docs/current-state.md @@ -12,8 +12,8 @@ - 日期:2026-07-06 - 阶段:MVP 起步前,harness 文档已初始化并完成瘦身(元文档合并为 `90-harness-reference.md`,入口统一为 `AGENTS.md`) -- 开发环境:WSL2 / Linux,仓库根目录 `/mnt/d/OPC/skelet`,bash 为标准命令形态 -- git:已初始化,主分支 `main` +- 开发环境:WSL2 / Linux,仓库根目录 `/mnt/d/opc_project/skelet`,bash 为标准命令形态 +- git:已初始化,主分支 `main`;`.gitignore` 已生效(`deploy/` 及凭证类文件不入库),`.gitattributes` 统一 LF 行尾 - 技术栈:目标为 Wagtail + Django + Python 3.12 + SQLite;第一版英文单语言站点 - 生产代码:尚未初始化 - 测试:尚未初始化 @@ -30,6 +30,9 @@ | `AGENTS.md` | 已有 | AI agent 仓库入口。 | | `CLAUDE.md` | 已有 | Claude Code 薄入口。 | | `progress.md` | 已有 | 只追加执行流水。 | +| `business/` | 已有 | 商业计划、内容策略、变现、竞品分析。 | +| `deploy/` | 已有,不入库 | 本机部署凭证(SSH 私钥等),被 `.gitignore` 整目录忽略。 | +| `.gitignore` / `.gitattributes` | 已有 | 忽略凭证与运行产物;统一 LF 行尾。 | | `init.ps1` / `init.sh` | 已有,占位 | T-001 初始化生产代码后替换真实命令。 | | `manage.py` | 待建 | Wagtail/Django 入口。 | | `requirements.txt` | 待建 | Python 依赖。 | diff --git a/progress.md b/progress.md index b0d7737..beb75e8 100644 --- a/progress.md +++ b/progress.md @@ -52,3 +52,16 @@ - 决策:第一版英文单语言站点;首批只做 SaaS 和内容站/CMS 两个场景;评分维度以 `docs/04-architecture.md` 为唯一权威;M3 闸门不过不扩内容。 - 下一步:T-001 初始化 Wagtail 项目骨架。 +## 2026-07-06 仓库卫生维护(.gitignore 修复 + 行尾统一 + 路径纠错) + +- 状态:DONE +- 变更: + - 修复忽略文件:原文件名拼写为 `.gittignore`,git 不识别,`deploy/`(含 SSH 私钥 `tokyo.pem`)处于可被提交状态;现为标准 `.gitignore`,并补齐凭证类(`*.pem`、`.env*`)和 Python / Django / Wagtail 运行产物(`__pycache__/`、`.venv/`、`db.sqlite3*`、`media/`、`staticfiles/`)忽略项。 + - 新增 `.gitattributes`(`* text=auto eol=lf`):此前仓库以 CRLF 提交、工作区为 LF,导致 26 个文件出现全量假差异;统一按 LF 提交,本轮一次性归一化,之后 diff 只反映真实内容变化。 + - 路径纠错:`AGENTS.md`、`docs/00-ai-start-here.md`、`docs/03-tech-stack.md`、`docs/90-harness-reference.md`、`docs/current-state.md` 中仓库根目录由 `/mnt/d/OPC/skelet` 修正为实际路径 `/mnt/d/opc_project/skelet`(本文历史记录按只追加规则不改写)。 + - `docs/current-state.md`:目录要点补登 `business/`、`deploy/`(不入库)、`.gitignore` / `.gitattributes`。 +- 验证:`git check-ignore -v deploy/tokyo.pem` 确认私钥被忽略;`git diff --ignore-cr-at-eol --stat` 确认既有 26 文件差异全部为行尾、无内容变化;`grep -rn "OPC/skelet"` 确认除本文历史记录外无残留旧路径。 +- 阻塞:无。 +- 决策:`deploy/` 整目录不入库,部署凭证只保留在本机;行尾规范定为 LF(与 WSL2/Linux 标准开发环境一致)。 +- 下一步:T-001 初始化 Wagtail 项目骨架。 +