feat: simplify AI design for young creators

This commit is contained in:
2026-09-02 17:48:03 +08:00
parent 7552cf5952
commit 756638a28a
17 changed files with 3595 additions and 297 deletions

View File

@@ -0,0 +1,107 @@
# 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: 841273b43354b2237a52a7081a9fceb647ef4e3f
- 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_blocked` response 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.