chore: rebuild release package

This commit is contained in:
shiyue
2026-07-18 10:14:38 +08:00
parent fa15b54469
commit a76de06c47
112 changed files with 8858 additions and 399 deletions

View File

@@ -0,0 +1,70 @@
# Findings & Decisions
## Requirements
- 把本次主题创作的经验、教训和方法写成一个本地 Skill。
- Skill 放在项目的 `.codex/skills/` 下。
- 后续创建其他主题时能够直接触发和复用。
- 保留现有主题概念图、素材板、切片和研究产物,不做资产清理。
## Research Findings
- `skill-creator` 要求从零创建 Skill 时必须使用 `init_skill.py`,完成后运行 `quick_validate.py`
- Skill frontmatter 只允许 `name``description`;触发条件必须完整写进 description。
- `agents/openai.yaml` 应包含 `display_name`、2564 字符的 `short_description`,以及显式提到 `$create-cc-web-theme``default_prompt`
- Skill 应采用渐进披露SKILL.md 保留核心流程,案例教训与细节放进一层 `references/`,避免重复。
- 当前仓库存在大量主题相关未提交改动;本任务只能新增 Skill 和任务记录,不能覆盖其他改动。
- 现有主题资料已经形成完整证据链:归档源图、切片研究、提取脚本、输出 manifest、CSS 实现、专项回归和浏览器实测记录。未来主题应复用这条链,而不是只保留最终 PNG/CSS。
- 最初“源码和回归通过即完成”的判断导致视觉验收失败。主题任务的完成门槛必须包含与参考图逐项对照的真实浏览器截图/计算样式/几何测量。
- 参考图是构图契约,不只是配色灵感。背景主角安全区、侧栏宽度、内容中心、边框轻重、图标视觉主体和层级关系都需要先量化。
- 可伸缩输入框不能把固定比例完整边框图放在 `::before` 上随容器拉伸;内容增高会导致框体偏移。最终有效方案是九宫格思路的 `border-image`,让角、边和底部装饰分别承担职责。
- “CSS 数值已更透明”不代表视觉上真的透明。嵌套工具层、旧高优先级选择器与高 blur 都可能让气泡仍像实心块;必须检查 computed style、逐层背景和实际透景。
- `:is()` 使用最高参数 specificity后追加的低特异性规则可能只覆盖 `backdrop-filter`、覆盖不了背景色。遇到“改了没变化”时先查规则来源与 computed style不要继续盲调数值。
- 图标需要区分容器尺寸、源图规格、alpha 主体边界和光学中心。把所有 64px 原色 PNG 一刀切缩成 22px 会产生灰边、糊边和比例失衡;主交互控件更适合清理后的 mask多色状态/头像保留原色切图。
- 欢迎页同时存在静态首屏与动态 `buildWelcomeMarkup`,任何结构或文案修改必须双路径同步,并用回归断言防止静态写死动态数据。
- 浏览器几何验收能快速识别“看着不正”:欢迎卡曾偏左约 147px加入 `margin: 0 auto` 后中心误差降至约 2px图标也应以 alpha 重心而不是画布边界衡量。
- 主题资产必须保留源概念图、素材板、切片坐标和提取脚本;最终资产只是派生物,后续新增功能往往需要回到源板重新切片。
- 当前 cc-web 主题架构以 `THEME_OPTIONS``html[data-theme]`、首屏 bootstrap、语义变量、共享暗色 completion selector 和后置主题专属层组成;未来主题应沿用这条单源链路,不再造第二套设置列表或 body class。
- Wasteland 专项回归最终覆盖了主题注册、可见性、迁移策略、动态/静态 welcome、共享 selector、本地资产格式/尺寸/hash、manifest、响应式、reduced-motion、对比度、cache bust 和防远程 URL。Skill 的验收清单应保留这些类别,但不能硬编码 Wasteland 数值。
- 隔离前向测试使用完全不同的“海底生物机械”主题请求,子代理只依赖新 Skill 即识别出主题隔离、源资产归档、动态输入框、透明嵌套层、welcome 双路径和真实浏览器门禁,证明流程能够泛化。
- 当前提取脚本证明可复现资产流程应记录:源文件、裁剪框、源规格、检测框、输出画布和派生关系。阈值与坐标属于主题案例,不应固化为跨主题常量。
- 对非对称图标,按 alpha 加权重心校正比按画布中心更可靠;对可伸缩装饰框,应优先采用九宫格/border-image 或拆分稳定区域,禁止直接横纵拉伸整张构图。
## Technical Decisions
| Decision | Rationale |
|----------|-----------|
| 项目级 Skill 路径使用 `.codex/skills/create-cc-web-theme/` | 用户明确指定,且便于随仓库复用 |
| 核心流程与案例参考分离 | 降低常驻上下文体积,同时保留本次主题的完整教训 |
| 将视觉验收作为强制门禁 | 本次多轮返工证明仅靠源码断言和回归通过无法保证与设计图一致 |
| 将“主题隔离、素材保留、动态内容、真实浏览器验证”写成硬约束 | 这些是本次最反复、代价最高的问题 |
| Skill references 至少拆分为“经验教训”和“验收清单” | 前者解释判断依据,后者为后续任务提供可执行门禁 |
| 复用现有提取脚本的方法,不把 Wasteland 坐标硬编码成通用脚本 | 不同主题素材板结构不同,错误自动化比手工确认成本更高 |
| Skill 不新增通用切片脚本 | 现有源板差异大;改为要求每个主题保存可重放的专用提取脚本和 manifest |
| Skill 使用 4 个单层 reference | 分别承载经验教训、资产方法、cc-web 架构和验收清单,避免 SKILL.md 膨胀 |
| Skill 结构验证已通过 | quick_validate、引用存在性、frontmatter 键和 openai.yaml mention 均符合规范 |
## Issues Encountered
| Issue | Resolution |
|-------|------------|
| 初始把项目级 Skill 路径说成 `.agents/skills` | 用户纠正后立即切换到 `.codex/skills`,且未创建错误目录 |
| planning-with-files 检测到根级旧计划和其他活跃计划 | 使用 `.planning/cc-web-theme-creation-skill/` 独立作用域,避免覆盖 |
## Resources
- `.trellis/tasks/07-17-gilded-wasteland-theme/`
- `.trellis/tasks/07-17-gilded-wasteland-theme/research/extract_reference_chrome.py`
- `public/assets/themes/wasteland/`
- `public/style.css`
- `public/app.js`
- `public/index.html`
- `scripts/regression.js`
- `.codex/skills/planning-with-files/`
- `/home/hdzx/.codex/skills/.system/skill-creator/`
## Visual/Browser Findings
- 视觉层的高频失败模式集中在:整体过暗、厚金边、全组件切角、图标缩放糊、边框重复、伪元素随内容错位、按钮光学不居中、气泡被嵌套层锁成实心、欢迎卡按参考构图左对齐而非画布居中。
- 有效验收至少覆盖桌面参考尺寸、常规桌面、窄屏三个视口,并记录横向溢出、主容器中心差、图标 alpha 重心、动态高度和 computed style。
- 参考图中的“磨砂”应通过真实背景细节是否可见判断;仅看 `rgba()``blur()` 数值会误判。

View File

@@ -0,0 +1,83 @@
# Progress Log
## Session: 2026-07-18
### Phase 1: 梳理现有主题实现与反馈教训
- **Status:** in_progress
- **Started:** 2026-07-18
- Actions taken:
- 读取 `planning-with-files``skill-creator``todo-list-csv` 完整规范。
- 运行 session catchup确认仓库存在其他任务的根级与 scoped 计划。
- 检查 Git 差异和项目 Skill 目录,确认目标 Skill 尚不存在。
- 按用户纠正将目标目录从 `.agents/skills` 改为 `.codex/skills`
- 使用 codebase-memory 定位主题注册、欢迎渲染、资产提取和 Wasteland 回归入口。
- 扫描主题任务、研究报告、归档源资产、切片结果和多轮视觉修正记录。
- 将输入框边框、气泡透明度、选择器优先级、图标规格和几何居中等教训写入 findings.md。
- 完整阅读主题计划、调研、视觉审计、架构说明、资产切片方法和当前提取脚本。
- 核对当前 Wasteland CSS 关键层与专项回归覆盖面。
- 独立计划审查通过,无严重缺口。
- Phase 1 完成,进入 Skill 结构与触发边界设计。
- 确定 Skill 采用 7 阶段核心工作流和四份单层 reference不新增 assets 或伪通用切片脚本。
- Phase 2 完成,进入标准初始化。
- 使用 skill-creator 的 init_skill.py 在 `.codex/skills/create-cc-web-theme/` 初始化 Skill。
- 初始化时生成 references 目录和符合 openai.yaml 规范的 UI 元数据。
- Phase 3 完成,进入核心内容与参考资料编写。
- 完整替换初始化模板SKILL.md 收敛为 139 行的 7 阶段主题执行主线。
- 新增架构、资产、经验教训和完成验收四份单层 references共 642 行。
- 检查无 TODO/占位模板残留,四份 reference 均由 SKILL.md 直接引用。
- Phase 4 完成,进入规范验证和隔离前向测试。
- quick_validate.py 返回 `Skill is valid!`
- 自定义检查确认 frontmatter 仅含 name/description、四份 reference 均存在、openai.yaml 包含显式 Skill mention且无模板占位。
- `git diff --check` 通过。
- 已启动隔离只读前向测试,模拟另一套“海底生物机械”主题,不向子代理泄露 Wasteland 复盘结论。
- 前向测试独立读取 Skill 与四份 references提出独立主题 ID、资产归档、九宫格输入框、透明气泡逐层检查、welcome 双路径和多视口门禁。
- 子代理未读取被禁止的 Wasteland 历史复盘目录且未修改文件Skill 的迁移性验证通过,无需返修。
- Phase 5 完成,进入最终差异检查和任务清理。
- 最终 `git diff --check` 通过Skill 清单包含 SKILL.md、openai.yaml 和四份 references。
- scoped Git 状态只新增本 Skill、独立 planning 记录和待清理 TODO CSV未修改当前主题视觉文件。
- Phase 6 完成;准备删除临时 TODO CSV 并交付。
- Files created/modified:
- `.codex/skills/create-cc-web-theme/SKILL.md`
- `.codex/skills/create-cc-web-theme/agents/openai.yaml`
- `.codex/skills/create-cc-web-theme/references/`
- `.codex/skills/create-cc-web-theme/references/cc-web-theme-architecture.md`
- `.codex/skills/create-cc-web-theme/references/asset-workflow.md`
- `.codex/skills/create-cc-web-theme/references/lessons-learned.md`
- `.codex/skills/create-cc-web-theme/references/acceptance-checklist.md`
- Files created/modified:
- `.planning/cc-web-theme-creation-skill/task_plan.md`
- `.planning/cc-web-theme-creation-skill/findings.md`
- `.planning/cc-web-theme-creation-skill/progress.md`
## Test Results
| Test | Input | Expected | Actual | Status |
|------|-------|----------|--------|--------|
| 目标目录预检 | `.codex/skills/create-cc-web-theme` | 尚不存在,可安全初始化 | 尚不存在 | ✓ |
| Skill 标准验证 | `quick_validate.py` | 合法 Skill | Skill is valid | ✓ |
| 结构与引用检查 | frontmatter / references / openai.yaml | 结构完整、引用有效 | 全部通过 | ✓ |
| 补丁空白检查 | `git diff --check` | 无错误 | 通过 | ✓ |
| 隔离前向测试 | 海底生物机械新主题只读规划 | Skill 能独立泛化且不泄露历史答案 | 输出完整实施/资产/验收方案 | ✓ |
| 最终差异检查 | `git diff --check` + scoped status | 无空白错误、无主题视觉文件改动 | 通过 | ✓ |
## Error Log
| Timestamp | Error | Attempt | Resolution |
|-----------|-------|---------|------------|
| 2026-07-18T09:03:13+08:00 | 验证记录补丁合并多个文件,因 findings 行顺序不匹配而失败 | 1 | 恢复逐文件最小补丁并先检索精确上下文 |
| 2026-07-18T09:03:13+08:00 | 错误日志补丁误把当前时间当成已有上下文 | 2 | 改为锚定稳定表头插入,不再匹配动态时间 |
| 2026-07-18 | 初始误判 Skill 目录为 `.agents/skills` | 1 | 用户纠正后改为 `.codex/skills`;未创建错误目录 |
| 2026-07-18T08:53:10+08:00 | planning 状态补丁的 JavaScript 模板字符串被反引号截断 | 1 | 改用字符串拼接并移除嵌套反引号 |
| 2026-07-18T08:59:49+08:00 | Phase 4 状态补丁再次误用含反引号的模板字符串 | 2 | 停止使用模板字符串,改用字符串数组构造 |
| 2026-07-18T08:59:49+08:00 | 合并状态补丁依赖了变化中的精确时间戳上下文 | 3 | 拆成逐文件、小上下文补丁后成功同步 |
## 5-Question Reboot Check
| Question | Answer |
|----------|--------|
| Where am I? | 全部阶段完成 |
| Where am I going? | 交付项目级 Skill 并在未来主题任务中复用 |
| What's the goal? | 创建 `.codex/skills/create-cc-web-theme/` 可复用主题创作 Skill |
| What have I learned? | 见 findings.md |
| What have I done? | 已完成 Skill 创建、规范验证、前向测试和最终差异检查 |

View File

@@ -0,0 +1,88 @@
# Task Plan: 沉淀 cc-web 主题创作 Skill
## Goal
`.codex/skills/create-cc-web-theme/` 创建可复用的项目级 Skill沉淀暗金荒野主题的设计方法、切图流程、实现边界、失败教训与视觉验收标准供后续其他主题直接复用。
## Current Phase
Complete
## Phases
### Phase 1: 梳理现有主题实现与反馈教训
- [x] 审阅主题任务资料、切图脚本、关键 CSS/JS 与回归测试
- [x] 提炼反复返工的根因和有效修正方法
- [x] 将发现写入 findings.md
- **Status:** complete
### Phase 2: 设计可复用 Skill 结构和触发边界
- [x] 明确触发语句与适用范围
- [x] 区分核心工作流、详细参考和确定性脚本
- [x] 完成计划独立审查
- **Status:** complete
### Phase 3: 初始化项目级本地 Skill
- [x] 使用 skill-creator 初始化脚本创建目录
- [x] 生成符合规范的 agents/openai.yaml
- [x] 确认模板占位内容待 Phase 4 全量替换
- **Status:** complete
### Phase 4: 编写核心工作流与经验参考
- [x] 编写 SKILL.md 核心执行流程
- [x] 编写经验教训、资产切分和视觉验收参考
- [x] 保持资源单层引用与内容不重复
- **Status:** complete
### Phase 5: 验证 Skill 规范并进行前向测试
- [x] 运行 quick_validate.py
- [x] 检查文件引用、触发描述和脚本可执行性
- [x] 使用隔离子代理执行只读前向测试并吸收反馈
- **Status:** complete
### Phase 6: 汇总交付并清理任务清单
- [x] 完成最终差异检查
- [x] 更新 planning-with-files 记录
- [x] 清理临时 TODO CSV 并交付路径与用法
- **Status:** complete
## Key Questions
1. 哪些经验属于所有主题都适用的强约束,哪些只属于暗金荒野案例?
2. 哪些步骤值得固化为脚本,哪些应保留为可判断的工作流?
3. 如何确保未来主题不会覆盖现有主题、误删参考素材或只凭回归测试代替视觉验收?
## Decisions Made
| Decision | Rationale |
|----------|-----------|
| Skill 放在 `.codex/skills/create-cc-web-theme/` | 用户明确指定项目级 `.codex/skills`,可随仓库复用 |
| 使用 `create-cc-web-theme` 作为名称 | 符合小写连字符和动词优先的命名规范,触发意图清晰 |
| 使用 SKILL.md + references按需要再增加 scripts | 保持核心上下文精简,把案例细节按需加载 |
| 不复制或移动现有主题素材 | 用户要求保留概念图、素材板和切片Skill 只引用其方法与位置约定 |
| 计划审查已通过 | 计划覆盖目标路径、触发边界、references、openai.yaml、验证和只读前向测试 |
| SKILL.md 只保留 7 阶段核心流程 | 保证触发后能立即执行,又不把案例细节全部加载进上下文 |
| references 拆为 architecture、asset-workflow、lessons-learned、acceptance-checklist | 四类信息使用时机不同,保持一层引用和渐进披露 |
| 不创建 assets 或通用切片脚本 | Skill 复用现有主题源资产;各主题的切片算法需按素材板专门编写并保留 |
## Errors Encountered
| Error | Attempt | Resolution |
|-------|---------|------------|
| 验证记录补丁合并多个文件且依赖非稳定上下文 | 2 | 恢复逐文件最小补丁并改用稳定表头/固定文本锚点 |
| 初始误判为 `.agents/skills` | 1 | 用户纠正后改用 `.codex/skills`;错误目录尚未创建 |
| planning 状态补丁的 JavaScript 模板字符串被反引号截断 | 1 | 改用字符串拼接并移除嵌套反引号后重试 |
| Phase 4 状态补丁再次误用含反引号的模板字符串 | 2 | 停止使用模板字符串,改用字符串数组构造 |
| 合并状态补丁依赖了变化中的精确时间戳上下文 | 3 | 拆成逐文件、小上下文补丁后成功同步 |
## Notes
- 不修改当前 Wasteland/Gilded 主题视觉实现。
- 不删除任何概念图、素材板、切片或提取脚本。
- Skill 内容必须能泛化到未来不同美术方向的主题。