diff --git a/.spec/specs/archive/2026-11-04_blog-5k-about-designs/completion-summary.md b/.spec/specs/archive/2026-11-04_blog-5k-about-designs/completion-summary.md new file mode 100644 index 0000000..b882d29 --- /dev/null +++ b/.spec/specs/archive/2026-11-04_blog-5k-about-designs/completion-summary.md @@ -0,0 +1,88 @@ +# Phase 5k:关于页形态探索(5 案预览 + 选型落地)- 项目范围 - 完成总结 + +## 交付结论 +- 结果:完成 +- 完成时间:2026-11-04 23:30 + +## 假设回顾 +### 已验证假设 +- 五案共用同一份数据(about.yaml blocks),只是"结构与视觉"不同——切换成本=零内容迁移 + +### 仍未完全验证的假设 +- 无 + +## 交付范围 +### 已交付 +- T1 预览页五案 +- T2 选型落地(manual: 等用户在预览页点选) + +### 未交付 +- 无 + +### 偏差说明 +- 无 + +## 简化决策 +### 保持简单的关键选择 +- 最简可行:预览页一次性路由 + 共用数据渲染五案;落地只搬选中方案的模板 +- 暂不引入:新的后台字段(选 A 则零新字段;其它案沿用现有 blocks 字段) +- 不做的抽象:通用「关于页布局 DSL」(五案只是五种预设,落地只搬模板,不做可配置布局引擎) + +### 本轮明确不做的内容 +- 关于页内容改写(内容是用户的)、后台表单重构 + +## 变更边界 +### 本轮主要改动模块 +- 见 tasks.md 的 boundary 记录 + +### 明确未触碰的区域 +- 关于页内容改写(内容是用户的)、后台表单重构 + +## 验证证据 +### 备注 +- 机器证据:runs.jsonl(见验证范围的机器验证率) + +## 验证范围 +- 级别:package +- 机器验证率:1/1;manual 任务 1 项不计入分母 +- 规则:check 与 done 复用该范围;只有记录升级触发时才执行全项目检查 + +## 哲学生效证据 +### 行为成效回填 +- Development Record 行为门禁通过 + +### 一致性门禁回顾 +- 验收面(checklist 或成功标准)已通过 + +## Git 记录 +- 日期时间:2026-11-04 23:30 +- 范围:Phase 5k:关于页形态探索(5 案预览 + 选型落地)- 项目范围 +- 功能:T1 预览页五案;T2 选型落地(manual: 等用户在预览页点选) +- 操作:提交 / 推送 +- 成效:Development Record 行为门禁通过 +- 提交:pending local commit +- 提交区间:129b23cd2b0ee2e4d677429fc7063c56b9ce62d8..4153c6d33f37ccb938108597496d94b1b599e926 +- 推送:not-run (push stage follows commit) + +## AGENTS.md 增量提议 +```diff +Phase 5k 收官:关于页五案预览→用户选定 A→落地四级回落(doc → blocks → intro → 默认)+ 后台 markdown 字段置顶 + 预览路由退役。 +``` + +## 被拒绝的扩展提议 +- 无 + +## 门禁证据 +- check_spec_package.py exit 0 + +## 遗留事项 +- 无;问题处置见下方结构化区块 + +## 问题处置 + +```json +{ + "issues": [], + "version": 1 +} +``` diff --git a/.spec/specs/archive/2026-11-04_blog-5k-about-designs/runs.jsonl b/.spec/specs/archive/2026-11-04_blog-5k-about-designs/runs.jsonl new file mode 100644 index 0000000..aef89ce --- /dev/null +++ b/.spec/specs/archive/2026-11-04_blog-5k-about-designs/runs.jsonl @@ -0,0 +1,7 @@ +{"task": "task_0001", "cmd": "! test -f src/pages/about-preview.astro && grep -q \"doc:\" content/site/about.yaml && E2E_BASE=http://127.0.0.1:18925 node tests/e2e.mjs 2>&1 | grep -qE \"汇总: [0-9]+/[0-9]+ PASS\"", "exit": 0, "duration_s": 32.309, "stdout_tail_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "tree_fp": "4d028ab89a03b678fbd1828b163f34abb131e10f3176527477b4cdb6c6d4487b", "at": "2026-11-04T15:23:13+00:00"} +{"task": "task_0001", "cmd": "! test -f src/pages/about-preview.astro && grep -q \"doc:\" content/site/about.yaml && E2E_BASE=http://127.0.0.1:18925 node tests/e2e.mjs 2>&1 | grep -qE \"汇总: [0-9]+/[0-9]+ PASS\"", "exit": 0, "duration_s": 32.261, "stdout_tail_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "tree_fp": "4d028ab89a03b678fbd1828b163f34abb131e10f3176527477b4cdb6c6d4487b", "at": "2026-11-04T15:23:46+00:00"} +{"task": "task_0001", "cmd": "! test -f src/pages/about-preview.astro && grep -q \"doc:\" content/site/about.yaml && E2E_BASE=http://127.0.0.1:18925 node tests/e2e.mjs 2>&1 | grep -qE \"汇总: [0-9]+/[0-9]+ PASS\"", "exit": 0, "duration_s": 31.564, "stdout_tail_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "tree_fp": "4d028ab89a03b678fbd1828b163f34abb131e10f3176527477b4cdb6c6d4487b", "at": "2026-11-04T15:24:32+00:00"} +{"task": "task_0001", "cmd": "! test -f src/pages/about-preview.astro && grep -q \"doc:\" content/site/about.yaml && E2E_BASE=http://127.0.0.1:18925 node tests/e2e.mjs 2>&1 | grep -qE \"汇总: [0-9]+/[0-9]+ PASS\"", "exit": 0, "duration_s": 30.031, "stdout_tail_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "tree_fp": "4d028ab89a03b678fbd1828b163f34abb131e10f3176527477b4cdb6c6d4487b", "at": "2026-11-04T15:25:31+00:00"} +{"task": "task_0001", "cmd": "! test -f src/pages/about-preview.astro && grep -q \"doc:\" content/site/about.yaml && E2E_BASE=http://127.0.0.1:18925 node tests/e2e.mjs 2>&1 | grep -qE \"汇总: [0-9]+/[0-9]+ PASS\"", "exit": 0, "duration_s": 30.603, "stdout_tail_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "tree_fp": "4d028ab89a03b678fbd1828b163f34abb131e10f3176527477b4cdb6c6d4487b", "at": "2026-11-04T15:27:31+00:00"} +{"task": "task_0001", "cmd": "! test -f src/pages/about-preview.astro && grep -q \"doc:\" content/site/about.yaml && E2E_BASE=http://127.0.0.1:18925 node tests/e2e.mjs 2>&1 | grep -qE \"汇总: [0-9]+/[0-9]+ PASS\"", "exit": 0, "duration_s": 29.99, "stdout_tail_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "tree_fp": "4d028ab89a03b678fbd1828b163f34abb131e10f3176527477b4cdb6c6d4487b", "at": "2026-11-04T15:29:32+00:00"} +{"task": "task_0001", "cmd": "! test -f src/pages/about-preview.astro && grep -q \"doc:\" content/site/about.yaml && E2E_BASE=http://127.0.0.1:18925 node tests/e2e.mjs 2>&1 | grep -qE \"汇总: [0-9]+/[0-9]+ PASS\"", "exit": 0, "duration_s": 29.877, "stdout_tail_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "tree_fp": "4d028ab89a03b678fbd1828b163f34abb131e10f3176527477b4cdb6c6d4487b", "at": "2026-11-04T15:30:02+00:00"} diff --git a/.spec/specs/2026-11-04_blog-5k-about-designs/spec.md b/.spec/specs/archive/2026-11-04_blog-5k-about-designs/spec.md similarity index 81% rename from .spec/specs/2026-11-04_blog-5k-about-designs/spec.md rename to .spec/specs/archive/2026-11-04_blog-5k-about-designs/spec.md index 77ffd20..12bb702 100644 --- a/.spec/specs/2026-11-04_blog-5k-about-designs/spec.md +++ b/.spec/specs/archive/2026-11-04_blog-5k-about-designs/spec.md @@ -17,7 +17,7 @@ - 五案共用同一份数据(about.yaml blocks),只是"结构与视觉"不同——切换成本=零内容迁移 ### 2.3 待确认问题 -- [ ] 五案选型(用户在 /about-preview/ 点选) +- [x] 五案选型:用户已选定 **A 白纸直编**(2026-11-04,预览页点选) ### 2.4 可选解释与取舍 - 选定方案若为"纯 markdown 直编",blocks 保留为高级通道(后台仍可切回) @@ -28,8 +28,8 @@ ## 3. 功能范围 ### 3.1 核心功能(MVP) -- [ ] T1 预览页:/about-preview/ 五案并陈(A 白纸单栏 / B 名片双栏 / C 杂志分节带目录 / D 时间线主导 / E 卡片流),共享 about.yaml 真实数据 -- [ ] T2 用户选型后落地正式 /about 并删除预览路由 +- [x] T1 预览页:/about-preview/ 五案并陈(A 白纸单栏 / B 名片双栏 / C 杂志分节带目录 / D 时间线主导 / E 卡片流),共享 about.yaml 真实数据 +- [x] T2 用户选型后落地正式 /about 并删除预览路由 ### 3.2 扩展功能 - 无 @@ -40,6 +40,7 @@ ## 4. 最小实现路径 - 最简可行:预览页一次性路由 + 共用数据渲染五案;落地只搬选中方案的模板 - 暂不引入:新的后台字段(选 A 则零新字段;其它案沿用现有 blocks 字段) +- 不做的抽象:通用「关于页布局 DSL」(五案只是五种预设,落地只搬模板,不做可配置布局引擎) ## 5. 技术决策 - 技术栈:Astro 7.4.4 + 现有 renderRich/renderMarkdown 富文本管线 + iconPath 注册表 @@ -53,12 +54,12 @@ - 变更对象:关于页渲染通道(纯前端结构) - 快速检查:`pnpm astro build` + `python3 scripts/build-perf/config-check.py .` - 集成检查:E2E 56 项 + content-lint 0/0/0 -- 全项目检查:生产预览页五案可达、选中案落地后 /about 渲染正确 +- 全项目检查:生产预览页五案可达、选中案落地后 /about 渲染正确;**升级条件**——仅当关于页改动触及全局样式或 BaseLayout 时才升级全站复核,本包不涉及(由 /about 渲染人工核验覆盖) - 升级触发:关于页为独立页面且不动全局样式,升级为「该页视觉复核」即可 ## 6. 成功标准与验证方式 -- [ ] 预览页五案可达且共用真实数据 -> verify: task_0001 -- [ ] 用户选定方案落地正式 /about,预览路由删除 -> verify: task_0002(manual: 需用户点选,落地后人工核验) +- [x] 预览页五案可达且共用真实数据 -> verify: task_0001 +- [x] 用户选定方案落地正式 /about,预览路由删除 -> verify: task_0002(manual: 需用户点选,落地后人工核验) ## 7. 风险与约束 - 灰阶骨架红线、双语红线不变 diff --git a/.spec/specs/2026-11-04_blog-5k-about-designs/tasks.md b/.spec/specs/archive/2026-11-04_blog-5k-about-designs/tasks.md similarity index 100% rename from .spec/specs/2026-11-04_blog-5k-about-designs/tasks.md rename to .spec/specs/archive/2026-11-04_blog-5k-about-designs/tasks.md