diff --git a/.claude/scheduled_tasks.lock b/.claude/scheduled_tasks.lock new file mode 100644 index 0000000..b48d926 --- /dev/null +++ b/.claude/scheduled_tasks.lock @@ -0,0 +1 @@ +{"sessionId":"cb6653d0-d0d2-40a9-bc89-ccc8ee725b84","pid":28632,"procStart":"134369499067035150","acquiredAt":1792601355495} \ No newline at end of file diff --git a/docs/superpowers/plans/2026-10-21-slice-build-preview-phase4.md b/docs/superpowers/plans/2026-10-21-slice-build-preview-phase4.md index b484931..db3a72f 100644 --- a/docs/superpowers/plans/2026-10-21-slice-build-preview-phase4.md +++ b/docs/superpowers/plans/2026-10-21-slice-build-preview-phase4.md @@ -40,7 +40,7 @@ scripts/sf.ts # + content:publish / build:create / preview:star --- -### Task 1: content:publish 命令(显式发布) +### Task 1: content:publish 命令(显式发布)✅ 完成(c35f108 + rider 6a1d9a3,双审通过;340 测试;dry-run/confirm 单事务/审计首写入方/config v1/anchors helper 三处合并逐字保真。审查移交:brand 容忍契约已入 Task 3;audit 第二写入方时抽共享 helper) **Files:** `apps/api/src/modules/publish/{publish.service.ts,publish.module.ts}`;sf.ts + `content:publish`;Test `tests/integration/publish.test.ts` @@ -61,7 +61,7 @@ scripts/sf.ts # + content:publish / build:create / preview:star **Files:** `themes/pilot-minimal/`(package.json/tsconfig/theme.manifest.ts/src/{layouts,components,lib});根 workspace 已含 themes/*;Test `themes/pilot-minimal/test/manifest.test.ts` - [ ] 失败测试:theme.manifest 满足 contracts 的 isThemeManifest(key='pilot-minimal'/version/renderContractVersion='1'/supportedContentTypes 三类/requiredSiteConfig/六模板条目:home/page/product-list/product-detail/news-list/news-detail+404);渲染数据 loader 对六文件夹具的加载形状 -- [ ] 实现:Astro 5 项目(dependencies 仅 astro);BaseLayout(html 骨架/SeoHead:title/desc/canonical/og 从 page data)/SiteHeader(site.name+简导航:首页/Products/News)/SiteFooter(©+name)/基础样式(design tokens 极简 CSS 变量——快线 §8.5 视觉优先级:宽度/字体/颜色/间距先对,不动像素级还原);组件:RichText(set:html 净化输出——输入已被 Plan 2 清洗+Plan 4 重写,信任链完整但组件仍加一层 sanitize-html 复检?**不加**——输入已清洗,重复清洗违反 YAGNI,JSDoc 记录信任链)/ResponsiveMedia(alt/尺寸/懒加载)/Breadcrumbs/ProductCard/NewsCard/Pagination/NotFound +- [ ] 实现:Astro 5 项目(dependencies 仅 astro);BaseLayout(html 骨架/SeoHead:title/desc/canonical/og 从 page data)/SiteHeader(site.name+简导航:首页/Products/News)/SiteFooter(©+name)/基础样式(design tokens 极简 CSS 变量——快线 §8.5 视觉优先级:宽度/字体/颜色/间距先对,不动像素级还原);**brand 恒可能为 {} 且 name 可能是 siteKey 派生占位(Task 1 审查移交)——主题必须对空 brand/占位 name 缺省容忍,禁止直接读 brand.xxx 落空**;组件:RichText(set:html——输入已清洗+重写,信任链 JSDoc 记录,不二次清洗)/ResponsiveMedia(alt/尺寸/懒加载)/Breadcrumbs/ProductCard/NewsCard/Pagination/NotFound - [ ] 绿 → commit `feat(theme): pilot-minimal 骨架与布局组件` ### Task 4: 六类页面路由与渲染