5.8 KiB
5.8 KiB
Task: Implement youth-facing AI Design experience
Identity
- Task ID: 20260902-design-youth-client-7c5e3a82
- Mode: Feature
- Branch: codex/20260902-design-youth-client-7c5e3a82-design-youth-client
- Worktree: D:\Datas\OthersProjects\makelore-design-youth-client-7c5e3a82
- Base commit:
841273b433 - Owner: codex-root
- Status: Ready for integration
Scope
- Replace the default comprehensive AI Design form with conversation plus a compact “我的创作” Creation Card projected from the canonical Current Specification.
- Add a reviewed A/B/C field-presentation catalog, pure youth projection, contextual “精细调整” controls, responsive desktop/mobile composition, and youth-facing conversation/Quote/Task/result copy.
- Reuse the existing V2 typed reducer, Quote confirmation, Task/Asset reconciliation, upload and local-draft behavior; do not add another state store or API contract.
Intent And Constraints
- One understandable default serves creators aged 8-16; there are no age or expert modes. Advanced control is contextual progressive disclosure.
- Conversation is the default mobile surface. Desktop gives conversation visual priority and keeps the concise Creation Card visible.
- Direct choices use existing typed semantic commands and never synthesize chat turns. Readiness is derived from concrete blockers/questions, not field counts.
- Preserve Main ownership of Works credentials and V2 transport, Chinese-only UI, existing light visual language, 44 px targets, keyboard focus and reduced motion.
- No database/DTO change, second brief/store, compatibility layer, broad redesign, package, deployment, publication, push or paid generation is in scope.
Concurrent Task Gate
- Task ID:
20260902-design-youth-client-7c5e3a82 - Mode: Feature
- Branch/worktree:
codex/20260902-design-youth-client-7c5e3a82-design-youth-client/D:\Datas\OthersProjects\makelore-design-youth-client-7c5e3a82 - Base commit:
841273b43354b2237a52a7081a9fceb647ef4e3f - Ownership result: Isolated and claimed by
codex-root. - Other active work: Model Tools owns a separate integration worktree and Plugin/Pi files; it does not own the ImageCanvas Design surface.
- Gate result: Passed.
Project Context Loaded
- Read the startup memory set, current state, architecture, business rules, success criteria, ADR-007, commitments, peer task scope, and the accepted youth experience/implementation specifications.
- The Current Specification remains the single semantic authority; Renderer drafts, Task events and assistant deltas cannot become Creation Card truth.
- The UI reference library reinforced progressive disclosure and accessibility; its parallax/dark-mode direction was rejected as inconsistent with MakeLore.
- Planning Gate result: Passed.
Outcome
- Replaced the default professional field matrix with a conversation-first AI Design surface and one compact “我的创作” card. The card is a pure projection of the canonical Workspace Specification, Quote, Task and Asset state; the existing V2 reducer and typed commands remain the only write path.
- Added an exhaustive A/B/C presentation catalog for every current Specification field, one active creative choice with an additional “你帮我选” option, contextual “精细调整”, and a responsive single-mounted card that becomes a mobile bottom sheet at narrow widths.
- Reworded conversation, Quote, Task, recovery and result states for creators aged 8–16. Compiler and Provider issue messages now cross a code-based youth-copy boundary with safe unknown fallbacks, so raw English or technical messages are not rendered in the youth UI.
- Kept video story editing on stable canonical Shot identities. The drawer supports the server contract of up to 24 Shots and preserves timing, camera, framing, motion, focus and transition data while a creator edits only a story beat.
- Bound transient Quote blockers to the canonical Specification revision: same-
revision refreshes preserve useful feedback, while a successful semantic change
clears stale blockers and enables a fresh Quote check. A terminal
design_quote_blockedresponse or event also settles its pending operation, so an old Quote request cannot remain as a misleading “unknown” recovery action. - No database migration, public DTO/API change, compatibility layer, second semantic store, Provider activation or paid generation was added.
Verification
pnpm exec vitest run tests/unit/youth-form-projection.test.ts tests/unit/youth-creation-card.test.tsx tests/unit/youth-issue-copy.test.ts tests/unit/fine-tune-drawer.test.tsx tests/unit/image-workspace-store.test.ts tests/unit/image-canvas-page.test.tsx— 40 passed, including terminal Quote-blocked settlement, blocked-event recovery into a revised Quote, 24-Shot preservation, and explicit deletion of a cleared Shot.- Broad client suite — 1802 passed and 2 skipped; two Electron binary-preparation
cases initially reported transient Windows
spawn EBUSY, then their focused rerun passed 3/3. The separate pressure suite passed 1/1. pnpm exec tsc --noEmit— passed.- Scoped ESLint over every changed/new source and test file — passed.
pnpm run build:vite— passed; only pre-existing chunk-size and mixed static/ dynamic import warnings were reported.pnpm exec playwright test tests/e2e/image-workspace-v2.spec.ts— 2 passed, covering 375 px, 768 px and desktop composition plus direct edit, chat, Quote, confirmation and Task flow.
Follow-ups
- Run moderated usability sessions with creators aged 8–16 after integration.
- Paid Provider activation and live paid-generation acceptance remain a separate release gate.
Promotion Candidates
- None. This task implements the already accepted youth Design experience and does not introduce a new canonical architecture or product decision.