feat(vibe-coding): validate project asset hierarchy (do not merge) - #113
feat(vibe-coding): validate project asset hierarchy (do not merge)#113huyanxius wants to merge 5 commits into
Conversation
The project workspace needs a reviewable definition before backend and workflow editor work proceeds. Document the project, character, outfit, action, and frame hierarchy while excluding wearable UI and direct template reuse. Establish the scope and acceptance criteria for the vibe coding validation in issue 1024XEngineer#112.
The hierarchy prototype must use the same entity and API shapes that production pages will consume. Add project and character fixtures, local action template state, and the confirmed character naming and template fields. Keep all writes in browser memory while preserving the workflow editor template lookup boundary.
The hierarchy validation needs offline character masters, frame sequences, and animated previews. Add transparent role artwork plus idle and walk frames reused from the livedemo asset set. Keep the prototype self-contained without external image URLs or runtime downloads.
The placeholder project routes cannot validate how users move from a project into characters, outfits, actions, and frames. Add the searchable project center, persistent project workspace, character library, stacked action previews, and local template saving flow. Provide a browser-reviewable vibe coding surface for issue 1024XEngineer#112 without backend writes or wearable UI.
The vibe coding surface needs regression coverage for the hierarchy decisions under review. Exercise project search and local lifecycle actions, nested project context, character cards, action expansion, and template saving. Guard the explicit absence of wearable controls and direct action template reuse in character details.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
| <p className="mt-2 text-sm text-slate-500">本次只提交模块划分与接口,页面实现进后续 PR。</p> | ||
| </section> | ||
| </PageContainer> | ||
| <ExtractedAssetsProvider> |
There was a problem hiding this comment.
High: ExtractedAssetsProvider is mounted once for the whole page component and is not keyed by projectId. Navigating from one project to another in the same session will keep the previous project's extracted templates alive, so the next project can show stale action-template counts and entries from the prior project.
| function ActionList({ character, outfit }: { character: Character; outfit: Outfit }) { | ||
| const { add: addExtractedAsset } = useExtractedAssets() | ||
| const [pickerOpen, setPickerOpen] = useState(false) | ||
| const [selectedActionId, setSelectedActionId] = useState<string | null>(null) |
There was a problem hiding this comment.
Medium: selectedActionId is tracked only by action.id, but action ids are only unique within an outfit. If two outfits reuse the same id, switching outfits can leave the wrong card expanded or reopen a different action than the one the user had selected. Reset the selection on outfit change or key it by both outfit and action.
Closes nothing. Refs #112。
验证了什么
main 已有 Project、Character、Outfit、Action 与 Frame 类型,但项目中心、项目详情和资产库仍以占位页面为主,无法判断用户是否理解资产归属,也无法验证角色详情中的动作浏览粒度。
本 PR 把入口组织为 Project → Character → Outfit → Action → Frame:项目是资产和生成规格的隔离边界,角色是资产库卡片粒度,造型层继续保留,动作以带 GIF 预览的堆叠卡片展示,点击后展开完整帧。
当前不向用户暴露 Wearable。ActionTemplate 是唯一可复用资产:角色动作可以保存为模板,但不会在角色详情中直接复用;未来 WorkflowEditor 的「增加节点」通过
ActionTemplateApis.listAvailable(projectId)读取可选模板。怎么试
/projects,搜索项目;点击「新建项目」填写项目级约束,再演示删除确认。落到哪些文件
pages/projects/pages/project-detail/pages/asset-library/pages/character-detail/entities/public/livedemo/已知边界
listAvailable(projectId)接口。自查
npm run format:check、npm run lint、npm run typecheck、npm test、npm run build全过。当前共有 6 个测试文件、11 个用例,覆盖项目搜索与本地生命周期、项目外框、角色卡、空态、造型层、动作卡展开、动作模板保存,以及 Wearable 和详情页模板复用入口不存在。AI 参与说明
项目层级、造型与人物的关系、Wearable 排除范围、ActionTemplate 的 WorkflowEditor 归属均由用户逐轮 Review 确定;实现、测试与工程自查由 Codex 完成。该 PR 只承载 Vibe Coding 验证,不作为正式产品实现合并。