# 问题 修复 文件 1 前端构建失败(引号错误) size="small type=" → size="small" type=" PosterHistoryPage.vue 2 migrate_014 ORM vs 缺失列 全部改为原始 SQL,不再引用 ORM 模型 migrate_014.py 3 cleanup 字段名错误 output_path → ppt_path cleanup.py 4 文案生成 case 越权 添加 case.user_id != user_id 校验 poster/service.py 5 存储路径未接通持久化卷 全部改用 get_storage_root()(默认 /app/api/storage/insurance) config.py, ppt/routes.py, poster/service.py, poster/tasks.py 高风险问题修复 # 问题 修复 文件 6 migrate_019 rollback 撤销成功字段 每个 ALTER 后立即 commit,失败只回滚当前语句 migrate_019.py 7 迁移锁 Windows 不兼容 + 句柄未持久化 全局变量保存锁句柄,支持 Windows msvcrt api/insurance/db/__init__.py 8 PDF 校验异常时放行 异常返回 False(文件损坏) security.py 9 健康检查始终返回成功 缺少关键资源时返回 503 + missing 列表 poster/routes.py 10 短密钥掩码泄露原值 ≤4 字符返回 **** ppt_admin_service.py 11 设置无键名白名单 添加 _ALLOWED_SETTING_KEYS 白名单 ppt_admin_service.py 12 容器重启任务永久 stuck 添加 recover_stale_tasks() 启动恢复函数 poster/tasks.py, ppt/parse_worker.py
71 lines
3.6 KiB
Markdown
71 lines
3.6 KiB
Markdown
> **Additional context needed**: the brand's emotional range.
|
|
|
|
Make the experience memorable at moments that earn it. Delight is not a layer of generic whimsy; it is product character revealed through a useful interaction, a humane response, or an unexpectedly considered detail.
|
|
|
|
---
|
|
|
|
## Visitor mode
|
|
|
|
- **Persuade + Experience:** personality may run through voice, composition, motion, and discovery, provided the artifact remains the focus.
|
|
- **Operate + Read:** concentrate delight at meaningful moments such as first use, completion, recovery, or mastery. Reliability carries everything else.
|
|
|
|
## Find the opportunity
|
|
|
|
Inspect the target, DESIGN.md, product voice, repeated-use frequency, and emotional context. Look for:
|
|
|
|
- effort worth acknowledging;
|
|
- waiting that can become informative;
|
|
- an empty or first-use state that can orient;
|
|
- an error or recovery moment that needs empathy;
|
|
- an interaction whose physical or verbal response could express the brand;
|
|
- a useful capability people might enjoy discovering.
|
|
|
|
Do not manufacture a celebration for an ordinary click. Ask only when the brand's emotional range or the stakes cannot be inferred.
|
|
|
|
## Define one delight thesis
|
|
|
|
State in one sentence what the user should feel and why that feeling belongs to this product. Then choose the smallest system that can deliver it:
|
|
|
|
- a distinctive response to a meaningful action;
|
|
- product-specific language that clarifies while carrying voice;
|
|
- an interaction or transition with a recognizable material behavior;
|
|
- an illustration, sound, haptic, or environmental detail grounded in the product world;
|
|
- a discovery reward that reveals real utility.
|
|
|
|
Derive the treatment from product mechanism and visual world, not a stock catalog.
|
|
|
|
## Build for the emotional moment
|
|
|
|
- **Success:** match the response to the effort and consequence. Major milestones can expand; routine saves should simply feel certain.
|
|
- **Waiting:** show truthful progress, useful context, or product-specific activity. Never fake work or delay completion to stage a flourish.
|
|
- **Empty and first use:** make the next action clear before adding personality.
|
|
- **Error and recovery:** lead with the problem and recovery. Warmth may reduce stress; jokes must not trivialize loss, money, privacy, or blocked work.
|
|
- **Repeated interaction:** keep the response satisfying after the hundredth use. Variation is useful only when it remains coherent and predictable enough to trust.
|
|
- **Discovery:** reward curiosity without hiding required functionality.
|
|
|
|
Copy must use the product's language. Generic whimsy is worse than neutral clarity.
|
|
|
|
## Protect the experience
|
|
|
|
Delight must not:
|
|
|
|
- delay, block, or obscure the primary task;
|
|
- override platform conventions or accessibility;
|
|
- add unrequested factual claims;
|
|
- play sound without consent or ignore mute settings;
|
|
- become mandatory, unskippable, or exhausting on repeat;
|
|
- add a dependency or asset cost disproportionate to the moment.
|
|
|
|
For authored motion, load [animate.md](animate.md). Respect screen readers, keyboard use, touch, localization, and cultural context. Nonessential loops stop when hidden. Make celebration intensity proportional to frequency and consequence.
|
|
|
|
## Verify
|
|
|
|
- The moment is specific enough that a neighboring product could not use it unchanged.
|
|
- It improves comprehension, confidence, motivation, or emotional recovery.
|
|
- The interface remains fast and obvious without the flourish.
|
|
- Repetition does not turn charm into friction.
|
|
- Muted, keyboard, touch, and localized paths work.
|
|
- The result feels like the selected world, not a generic “delight” treatment.
|
|
|
|
When the personality feels earned, hand off to `/impeccable polish` for the final pass.
|