@mison/ag-kit-cn 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/.shared/ui-ux-pro-max/data/charts.csv +26 -0
- package/.agent/.shared/ui-ux-pro-max/data/colors.csv +97 -0
- package/.agent/.shared/ui-ux-pro-max/data/icons.csv +101 -0
- package/.agent/.shared/ui-ux-pro-max/data/landing.csv +31 -0
- package/.agent/.shared/ui-ux-pro-max/data/products.csv +97 -0
- package/.agent/.shared/ui-ux-pro-max/data/prompts.csv +24 -0
- package/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/.agent/.shared/ui-ux-pro-max/data/styles.csv +59 -0
- package/.agent/.shared/ui-ux-pro-max/data/typography.csv +58 -0
- package/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/core.py +258 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/search.py +106 -0
- package/.agent/ARCHITECTURE.md +285 -0
- package/.agent/agents/backend-specialist.md +268 -0
- package/.agent/agents/code-archaeologist.md +106 -0
- package/.agent/agents/database-architect.md +225 -0
- package/.agent/agents/debugger.md +225 -0
- package/.agent/agents/devops-engineer.md +242 -0
- package/.agent/agents/documentation-writer.md +104 -0
- package/.agent/agents/explorer-agent.md +73 -0
- package/.agent/agents/frontend-specialist.md +618 -0
- package/.agent/agents/game-developer.md +162 -0
- package/.agent/agents/mobile-developer.md +382 -0
- package/.agent/agents/orchestrator.md +438 -0
- package/.agent/agents/penetration-tester.md +188 -0
- package/.agent/agents/performance-optimizer.md +187 -0
- package/.agent/agents/product-manager.md +112 -0
- package/.agent/agents/product-owner.md +95 -0
- package/.agent/agents/project-planner.md +405 -0
- package/.agent/agents/qa-automation-engineer.md +103 -0
- package/.agent/agents/security-auditor.md +170 -0
- package/.agent/agents/seo-specialist.md +111 -0
- package/.agent/agents/test-engineer.md +158 -0
- package/.agent/mcp_config.json +12 -0
- package/.agent/rules/GEMINI.md +273 -0
- package/.agent/scripts/auto_preview.py +148 -0
- package/.agent/scripts/checklist.py +217 -0
- package/.agent/scripts/session_manager.py +120 -0
- package/.agent/scripts/verify_all.py +327 -0
- package/.agent/skills/api-patterns/SKILL.md +84 -0
- package/.agent/skills/api-patterns/api-style.md +42 -0
- package/.agent/skills/api-patterns/auth.md +24 -0
- package/.agent/skills/api-patterns/documentation.md +26 -0
- package/.agent/skills/api-patterns/graphql.md +41 -0
- package/.agent/skills/api-patterns/rate-limiting.md +31 -0
- package/.agent/skills/api-patterns/response.md +37 -0
- package/.agent/skills/api-patterns/rest.md +40 -0
- package/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
- package/.agent/skills/api-patterns/security-testing.md +122 -0
- package/.agent/skills/api-patterns/trpc.md +41 -0
- package/.agent/skills/api-patterns/versioning.md +22 -0
- package/.agent/skills/app-builder/SKILL.md +75 -0
- package/.agent/skills/app-builder/agent-coordination.md +74 -0
- package/.agent/skills/app-builder/feature-building.md +53 -0
- package/.agent/skills/app-builder/project-detection.md +34 -0
- package/.agent/skills/app-builder/scaffolding.md +118 -0
- package/.agent/skills/app-builder/tech-stack.md +40 -0
- package/.agent/skills/app-builder/templates/SKILL.md +39 -0
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
- package/.agent/skills/architecture/SKILL.md +57 -0
- package/.agent/skills/architecture/context-discovery.md +43 -0
- package/.agent/skills/architecture/examples.md +94 -0
- package/.agent/skills/architecture/pattern-selection.md +68 -0
- package/.agent/skills/architecture/patterns-reference.md +50 -0
- package/.agent/skills/architecture/trade-off-analysis.md +77 -0
- package/.agent/skills/bash-linux/SKILL.md +201 -0
- package/.agent/skills/behavioral-modes/SKILL.md +264 -0
- package/.agent/skills/brainstorming/SKILL.md +164 -0
- package/.agent/skills/brainstorming/dynamic-questioning.md +359 -0
- package/.agent/skills/clean-code/SKILL.md +200 -0
- package/.agent/skills/code-review-checklist/SKILL.md +125 -0
- package/.agent/skills/database-design/SKILL.md +54 -0
- package/.agent/skills/database-design/database-selection.md +43 -0
- package/.agent/skills/database-design/indexing.md +39 -0
- package/.agent/skills/database-design/migrations.md +50 -0
- package/.agent/skills/database-design/optimization.md +36 -0
- package/.agent/skills/database-design/orm-selection.md +30 -0
- package/.agent/skills/database-design/schema-design.md +56 -0
- package/.agent/skills/database-design/scripts/schema_validator.py +172 -0
- package/.agent/skills/deployment-procedures/SKILL.md +241 -0
- package/.agent/skills/doc.md +177 -0
- package/.agent/skills/documentation-templates/SKILL.md +194 -0
- package/.agent/skills/frontend-design/SKILL.md +418 -0
- package/.agent/skills/frontend-design/animation-guide.md +331 -0
- package/.agent/skills/frontend-design/color-system.md +307 -0
- package/.agent/skills/frontend-design/decision-trees.md +418 -0
- package/.agent/skills/frontend-design/motion-graphics.md +306 -0
- package/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/.agent/skills/frontend-design/scripts/ux_audit.py +727 -0
- package/.agent/skills/frontend-design/typography-system.md +345 -0
- package/.agent/skills/frontend-design/ux-psychology.md +1118 -0
- package/.agent/skills/frontend-design/visual-effects.md +383 -0
- package/.agent/skills/game-development/2d-games/SKILL.md +119 -0
- package/.agent/skills/game-development/3d-games/SKILL.md +135 -0
- package/.agent/skills/game-development/SKILL.md +167 -0
- package/.agent/skills/game-development/game-art/SKILL.md +185 -0
- package/.agent/skills/game-development/game-audio/SKILL.md +190 -0
- package/.agent/skills/game-development/game-design/SKILL.md +129 -0
- package/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
- package/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
- package/.agent/skills/game-development/pc-games/SKILL.md +144 -0
- package/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
- package/.agent/skills/game-development/web-games/SKILL.md +150 -0
- package/.agent/skills/geo-fundamentals/SKILL.md +155 -0
- package/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/.agent/skills/i18n-localization/SKILL.md +154 -0
- package/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/.agent/skills/intelligent-routing/SKILL.md +335 -0
- package/.agent/skills/lint-and-validate/SKILL.md +44 -0
- package/.agent/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/.agent/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/.agent/skills/mcp-builder/SKILL.md +176 -0
- package/.agent/skills/mobile-design/SKILL.md +394 -0
- package/.agent/skills/mobile-design/decision-trees.md +516 -0
- package/.agent/skills/mobile-design/mobile-backend.md +491 -0
- package/.agent/skills/mobile-design/mobile-color-system.md +420 -0
- package/.agent/skills/mobile-design/mobile-debugging.md +122 -0
- package/.agent/skills/mobile-design/mobile-design-thinking.md +355 -0
- package/.agent/skills/mobile-design/mobile-navigation.md +458 -0
- package/.agent/skills/mobile-design/mobile-performance.md +767 -0
- package/.agent/skills/mobile-design/mobile-testing.md +356 -0
- package/.agent/skills/mobile-design/mobile-typography.md +432 -0
- package/.agent/skills/mobile-design/platform-android.md +666 -0
- package/.agent/skills/mobile-design/platform-ios.md +561 -0
- package/.agent/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/.agent/skills/mobile-design/touch-psychology.md +537 -0
- package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +311 -0
- package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +241 -0
- package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +489 -0
- package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +263 -0
- package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +431 -0
- package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +683 -0
- package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +149 -0
- package/.agent/skills/nextjs-react-expert/SKILL.md +286 -0
- package/.agent/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/.agent/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/.agent/skills/nodejs-best-practices/SKILL.md +333 -0
- package/.agent/skills/parallel-agents/SKILL.md +194 -0
- package/.agent/skills/performance-profiling/SKILL.md +149 -0
- package/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/.agent/skills/plan-writing/SKILL.md +152 -0
- package/.agent/skills/powershell-windows/SKILL.md +166 -0
- package/.agent/skills/python-patterns/SKILL.md +441 -0
- package/.agent/skills/red-team-tactics/SKILL.md +203 -0
- package/.agent/skills/rust-pro/SKILL.md +190 -0
- package/.agent/skills/seo-fundamentals/SKILL.md +135 -0
- package/.agent/skills/seo-fundamentals/scripts/seo_checker.py +215 -0
- package/.agent/skills/server-management/SKILL.md +161 -0
- package/.agent/skills/systematic-debugging/SKILL.md +114 -0
- package/.agent/skills/tailwind-patterns/SKILL.md +269 -0
- package/.agent/skills/tdd-workflow/SKILL.md +149 -0
- package/.agent/skills/testing-patterns/SKILL.md +178 -0
- package/.agent/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/.agent/skills/vulnerability-scanner/SKILL.md +276 -0
- package/.agent/skills/vulnerability-scanner/checklists.md +131 -0
- package/.agent/skills/vulnerability-scanner/scripts/security_scan.py +459 -0
- package/.agent/skills/web-design-guidelines/SKILL.md +57 -0
- package/.agent/skills/webapp-testing/SKILL.md +187 -0
- package/.agent/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/.agent/workflows/brainstorm.md +113 -0
- package/.agent/workflows/create.md +59 -0
- package/.agent/workflows/debug.md +103 -0
- package/.agent/workflows/deploy.md +176 -0
- package/.agent/workflows/enhance.md +63 -0
- package/.agent/workflows/orchestrate.md +242 -0
- package/.agent/workflows/plan.md +89 -0
- package/.agent/workflows/preview.md +80 -0
- package/.agent/workflows/restore-localize-compat.md +525 -0
- package/.agent/workflows/status.md +86 -0
- package/.agent/workflows/test.md +144 -0
- package/.agent/workflows/ui-ux-pro-max.md +295 -0
- package/AGENT_FLOW.md +609 -0
- package/CHANGELOG.md +68 -0
- package/LICENSE +21 -0
- package/README.md +260 -0
- package/bin/adapters/base.js +63 -0
- package/bin/adapters/codex.js +391 -0
- package/bin/adapters/gemini.js +137 -0
- package/bin/ag-kit.js +1336 -0
- package/bin/core/builder.js +80 -0
- package/bin/core/generator.js +59 -0
- package/bin/core/resource-loader.js +64 -0
- package/bin/core/transformer.js +208 -0
- package/bin/interactive.js +65 -0
- package/bin/utils/atomic-writer.js +97 -0
- package/bin/utils/git-helper.js +68 -0
- package/bin/utils/managed-block.js +65 -0
- package/bin/utils/manifest.js +241 -0
- package/bin/utils.js +82 -0
- package/docs/codex-rules-template.md +36 -0
- package/docs/mapping-spec.md +68 -0
- package/docs/multi-target-adapter.md +80 -0
- package/docs/official/README.md +53 -0
- package/docs/official/antigravity/agent-modes-settings.md +64 -0
- package/docs/official/antigravity/rules-workflows.md +96 -0
- package/docs/official/antigravity/skills.md +147 -0
- package/docs/official/codex/agents-md.md +119 -0
- package/docs/official/codex/config-advanced.md +358 -0
- package/docs/official/codex/config-basic.md +141 -0
- package/docs/official/codex/config-reference.md +223 -0
- package/docs/official/codex/config-sample.md +216 -0
- package/docs/official/codex/mcp.md +107 -0
- package/docs/official/codex/rules.md +79 -0
- package/docs/official/codex/skills.md +114 -0
- package/docs/official/sources-index.md +32 -0
- package/docs/operations.md +145 -0
- package/docs/terminology-style-guide.md +69 -0
- package/package.json +51 -0
- package/scripts/postinstall-check.js +112 -0
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
# 移动端设计思维(Mobile Design Thinking)
|
|
2
|
+
|
|
3
|
+
> **这份文件用于阻止 AI 套用记忆化模式,强制真实思考。**
|
|
4
|
+
> 用机制阻断“训练默认值”的惯性。
|
|
5
|
+
> **相当于前端布局拆解的移动端版本。**
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 🧠 深度移动思考协议(DEEP MOBILE THINKING PROTOCOL)
|
|
10
|
+
|
|
11
|
+
### 每个移动端项目开始前必须执行
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
15
|
+
│ DEEP MOBILE THINKING │
|
|
16
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
17
|
+
│ │
|
|
18
|
+
│ 1️⃣ CONTEXT SCAN │
|
|
19
|
+
│ └── 我对项目有哪些默认假设? │
|
|
20
|
+
│ └── 必须质疑这些假设 │
|
|
21
|
+
│ │
|
|
22
|
+
│ 2️⃣ ANTI-DEFAULT ANALYSIS │
|
|
23
|
+
│ └── 我是不是在套用记忆模板? │
|
|
24
|
+
│ └── 这真是此项目最佳选择吗? │
|
|
25
|
+
│ │
|
|
26
|
+
│ 3️⃣ PLATFORM DECOMPOSITION │
|
|
27
|
+
│ └── iOS 与 Android 是否分别考虑? │
|
|
28
|
+
│ └── 各自平台特有模式是什么? │
|
|
29
|
+
│ │
|
|
30
|
+
│ 4️⃣ TOUCH INTERACTION BREAKDOWN │
|
|
31
|
+
│ └── 每个交互是否逐一分析? │
|
|
32
|
+
│ └── 是否应用 Fitts' Law 与 Thumb Zone? │
|
|
33
|
+
│ │
|
|
34
|
+
│ 5️⃣ PERFORMANCE IMPACT ANALYSIS │
|
|
35
|
+
│ └── 是否评估组件性能影响? │
|
|
36
|
+
│ └── 默认方案是否足够快? │
|
|
37
|
+
│ │
|
|
38
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 🚫 AI 移动端默认模式(FORBIDDEN LIST)
|
|
44
|
+
|
|
45
|
+
### 这些模式不可无脑使用
|
|
46
|
+
|
|
47
|
+
以下是 AI 训练数据里学来的“默认模式”。
|
|
48
|
+
在使用前必须 **质疑** 并 **评估替代方案**。
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
52
|
+
│ 🚫 AI MOBILE SAFE HARBOR │
|
|
53
|
+
│ (Default Patterns - Never Use Without Questioning) │
|
|
54
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
55
|
+
│ │
|
|
56
|
+
│ 导航默认值(NAVIGATION DEFAULTS): │
|
|
57
|
+
│ ├── 所有项目都用 Tab bar(Drawer 会更好吗?) │
|
|
58
|
+
│ ├── 固定 5 个 Tabs(3 个够不够?6+ 是否 Drawer?) │
|
|
59
|
+
│ ├── “Home” 放左侧(用户行为支持吗?) │
|
|
60
|
+
│ └── 汉堡菜单(是否过时?) │
|
|
61
|
+
│ │
|
|
62
|
+
│ 状态管理默认值(STATE MANAGEMENT DEFAULTS): │
|
|
63
|
+
│ ├── Redux 全覆盖(Zustand/Jotai 是否足够?) │
|
|
64
|
+
│ ├── 一切全局状态(本地状态是否足够?) │
|
|
65
|
+
│ ├── Context Provider 地狱(atom 更好吗?) │
|
|
66
|
+
│ └── Flutter 一律 BLoC(Riverpod 是否更现代?) │
|
|
67
|
+
│ │
|
|
68
|
+
│ 列表实现默认值(LIST IMPLEMENTATION DEFAULTS): │
|
|
69
|
+
│ ├── FlatList 默认(FlashList 是否更快?) │
|
|
70
|
+
│ ├── windowSize=21(真的需要这么大?) │
|
|
71
|
+
│ ├── removeClippedSubviews(一定要开?) │
|
|
72
|
+
│ └── ListView.builder(ListView.separated 更好吗?) │
|
|
73
|
+
│ │
|
|
74
|
+
│ UI 模式默认值(UI PATTERN DEFAULTS): │
|
|
75
|
+
│ ├── FAB 右下角(左下是否更易达?) │
|
|
76
|
+
│ ├── 所有列表都下拉刷新(真的需要吗?) │
|
|
77
|
+
│ ├── 左滑删除(右滑是否更自然?) │
|
|
78
|
+
│ └── 所有弹窗都用 Bottom Sheet(全屏更合适?) │
|
|
79
|
+
│ │
|
|
80
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 🔍 组件拆解(MANDATORY)
|
|
86
|
+
|
|
87
|
+
### 每个屏幕都必须完成拆解分析
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
SCREEN: [Screen Name]
|
|
91
|
+
├── PRIMARY ACTION: [核心动作是什么?]
|
|
92
|
+
│ └── 是否位于拇指热区?[Yes/No → Why?]
|
|
93
|
+
│
|
|
94
|
+
├── TOUCH TARGETS: [所有可点击元素]
|
|
95
|
+
│ ├── [Element 1]: [Size]pt → 是否足够?
|
|
96
|
+
│ ├── [Element 2]: [Size]pt → 是否足够?
|
|
97
|
+
│ └── Spacing: [Gap]pt → 误触风险?
|
|
98
|
+
│
|
|
99
|
+
├── SCROLLABLE CONTENT:
|
|
100
|
+
│ ├── 是否列表?→ FlatList/FlashList [为什么选它?]
|
|
101
|
+
│ ├── Item 数量:~[N] → 性能评估?
|
|
102
|
+
│ └── 是否固定高度?→ 是否需要 getItemLayout?
|
|
103
|
+
│
|
|
104
|
+
├── STATE REQUIREMENTS:
|
|
105
|
+
│ ├── 本地状态是否足够?
|
|
106
|
+
│ ├── 是否需要上提状态?
|
|
107
|
+
│ └── 是否必须全局?[为什么?]
|
|
108
|
+
│
|
|
109
|
+
├── PLATFORM DIFFERENCES:
|
|
110
|
+
│ ├── iOS:是否需要差异化?
|
|
111
|
+
│ └── Android:是否需要差异化?
|
|
112
|
+
│
|
|
113
|
+
├── OFFLINE CONSIDERATION:
|
|
114
|
+
│ ├── 是否离线可用?
|
|
115
|
+
│ └── 缓存策略:[Yes/No/Which one?]
|
|
116
|
+
│
|
|
117
|
+
└── PERFORMANCE IMPACT:
|
|
118
|
+
├── 是否存在重组件?
|
|
119
|
+
├── 是否需要 memoization?
|
|
120
|
+
└── 动画性能?
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 🎯 模式质疑矩阵(PATTERN QUESTIONING MATRIX)
|
|
126
|
+
|
|
127
|
+
对每个默认模式都必须回答以下问题:
|
|
128
|
+
|
|
129
|
+
### 导航模式质疑(Navigation Pattern Questioning)
|
|
130
|
+
|
|
131
|
+
| 假设(Assumption) | 质疑问题(Question) | 替代方案(Alternative) |
|
|
132
|
+
|-------------------|----------------------|--------------------------|
|
|
133
|
+
| "我要用 Tab bar" | 目的地有几个? | 3 个→极简 Tab,6+→Drawer |
|
|
134
|
+
| "固定 5 个 Tab" | 是否真的同等重要? | "More" Tab / Drawer 混合 |
|
|
135
|
+
| "底部导航" | iPad/平板支持? | Navigation Rail 替代 |
|
|
136
|
+
| "Stack 导航" | 是否考虑深度链接? | URL 结构 = 导航结构 |
|
|
137
|
+
|
|
138
|
+
### 状态模式质疑(State Pattern Questioning)
|
|
139
|
+
|
|
140
|
+
| 假设(Assumption) | 质疑问题(Question) | 替代方案(Alternative) |
|
|
141
|
+
|-------------------|----------------------|--------------------------|
|
|
142
|
+
| "我要用 Redux" | 复杂度真的高吗? | 简单:Zustand,Server:TanStack |
|
|
143
|
+
| "全局状态" | 真的是全局吗? | 本地上提 / Context selector |
|
|
144
|
+
| "Context Provider" | 会导致重渲染吗? | Zustand / Jotai(原子化) |
|
|
145
|
+
| "BLoC 模式" | 这些样板值不值? | Riverpod(更少代码) |
|
|
146
|
+
|
|
147
|
+
### 列表模式质疑(List Pattern Questioning)
|
|
148
|
+
|
|
149
|
+
| 假设(Assumption) | 质疑问题(Question) | 替代方案(Alternative) |
|
|
150
|
+
|-------------------|----------------------|--------------------------|
|
|
151
|
+
| "FlatList" | 性能是否关键? | FlashList(更快) |
|
|
152
|
+
| "标准 renderItem" | 是否 memoize? | useCallback + React.memo |
|
|
153
|
+
| "Index 作为 key" | 顺序会变化吗? | 使用 item.id |
|
|
154
|
+
| "ListView" | 是否需要分割线? | ListView.separated |
|
|
155
|
+
|
|
156
|
+
### UI 模式质疑(UI Pattern Questioning)
|
|
157
|
+
|
|
158
|
+
| 假设(Assumption) | 质疑问题(Question) | 替代方案(Alternative) |
|
|
159
|
+
|-------------------|----------------------|--------------------------|
|
|
160
|
+
| "FAB 右下角" | 考虑用户惯用手? | 适配无障碍设置 |
|
|
161
|
+
| "下拉刷新" | 这个列表需要刷新吗? | 只在必要时启用 |
|
|
162
|
+
| "Bottom sheet" | 内容量足够吗? | 复杂流程用全屏 |
|
|
163
|
+
| "滑动操作" | 可发现性如何? | 提供显式按钮 |
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## 🧪 反记忆测试(ANTI-MEMORIZATION TEST)
|
|
168
|
+
|
|
169
|
+
### 每个方案提交前必须自检
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
173
|
+
│ ANTI-MEMORIZATION CHECKLIST │
|
|
174
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
175
|
+
│ │
|
|
176
|
+
│ □ 我是不是因为“习惯如此”才选这个方案? │
|
|
177
|
+
│ → 如果是:立即停止,重新评估替代方案。 │
|
|
178
|
+
│ │
|
|
179
|
+
│ □ 这是我在训练数据里见过的模式吗? │
|
|
180
|
+
│ → 如果是:它真的适合这个项目吗? │
|
|
181
|
+
│ │
|
|
182
|
+
│ □ 我是否在未思考的情况下写了方案? │
|
|
183
|
+
│ → 如果是:退一步,先做拆解分析。 │
|
|
184
|
+
│ │
|
|
185
|
+
│ □ 我是否考虑过替代方案? │
|
|
186
|
+
│ → 如果没有:至少想出 2 个替代再决定。 │
|
|
187
|
+
│ │
|
|
188
|
+
│ □ 我是否考虑过平台差异? │
|
|
189
|
+
│ → 如果没有:iOS/Android 分别分析。 │
|
|
190
|
+
│ │
|
|
191
|
+
│ □ 我是否评估过性能影响? │
|
|
192
|
+
│ → 如果没有:评估内存/CPU/电量成本。 │
|
|
193
|
+
│ │
|
|
194
|
+
│ □ 这个方案是否适合当前项目上下文? │
|
|
195
|
+
│ → 如果没有:按上下文定制。 │
|
|
196
|
+
│ │
|
|
197
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## 📊 基于上下文的决策协议(CONTEXT-BASED DECISION PROTOCOL)
|
|
203
|
+
|
|
204
|
+
### 按项目类型做差异化思考
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
确定项目类型:
|
|
208
|
+
│
|
|
209
|
+
├── E-Commerce App
|
|
210
|
+
│ ├── Navigation:Tab(Home、Search、Cart、Account)
|
|
211
|
+
│ ├── Lists:商品网格(memoized,图片优化)
|
|
212
|
+
│ ├── Performance:图片缓存极其关键
|
|
213
|
+
│ ├── Offline:购物车持久化、商品缓存
|
|
214
|
+
│ └── Special:结算流程、支付安全
|
|
215
|
+
│
|
|
216
|
+
├── Social/Content App
|
|
217
|
+
│ ├── Navigation:Tab(Feed、Search、Create、Notify、Profile)
|
|
218
|
+
│ ├── Lists:无限滚动、复杂条目
|
|
219
|
+
│ ├── Performance:Feed 渲染极关键
|
|
220
|
+
│ ├── Offline:Feed 缓存、草稿保存
|
|
221
|
+
│ └── Special:实时更新、媒体处理
|
|
222
|
+
│
|
|
223
|
+
├── Productivity/SaaS App
|
|
224
|
+
│ ├── Navigation:Drawer 或自适应(手机 Tab、平板 Rail)
|
|
225
|
+
│ ├── Lists:数据表格、表单
|
|
226
|
+
│ ├── Performance:数据同步
|
|
227
|
+
│ ├── Offline:完整离线编辑
|
|
228
|
+
│ └── Special:冲突解决、后台同步
|
|
229
|
+
│
|
|
230
|
+
├── Utility App
|
|
231
|
+
│ ├── Navigation:极简(可能只有 Stack)
|
|
232
|
+
│ ├── Lists:通常很少
|
|
233
|
+
│ ├── Performance:极速启动
|
|
234
|
+
│ ├── Offline:核心功能离线可用
|
|
235
|
+
│ └── Special:Widget、快捷方式
|
|
236
|
+
│
|
|
237
|
+
└── Media/Streaming App
|
|
238
|
+
├── Navigation:Tab(Home、Search、Library、Profile)
|
|
239
|
+
├── Lists:横向轮播、纵向流
|
|
240
|
+
├── Performance:预加载、缓冲
|
|
241
|
+
├── Offline:下载管理
|
|
242
|
+
└── Special:后台播放、投屏
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## 🔄 交互拆解(INTERACTION BREAKDOWN)
|
|
248
|
+
|
|
249
|
+
### 每个手势都必须被分析
|
|
250
|
+
|
|
251
|
+
在添加任何手势前:
|
|
252
|
+
|
|
253
|
+
```
|
|
254
|
+
GESTURE: [Gesture Type]
|
|
255
|
+
├── DISCOVERABILITY:
|
|
256
|
+
│ └── 用户如何发现这个手势?
|
|
257
|
+
│ ├── 是否有视觉提示?
|
|
258
|
+
│ ├── 是否在 onboarding 中说明?
|
|
259
|
+
│ └── 是否有按钮替代?(必须)
|
|
260
|
+
│
|
|
261
|
+
├── PLATFORM CONVENTION:
|
|
262
|
+
│ ├── iOS 上这个手势意味着什么?
|
|
263
|
+
│ ├── Android 上这个手势意味着什么?
|
|
264
|
+
│ └── 是否偏离平台惯例?
|
|
265
|
+
│
|
|
266
|
+
├── ACCESSIBILITY:
|
|
267
|
+
│ ├── 运动障碍用户是否能完成?
|
|
268
|
+
│ ├── VoiceOver/TalkBack 是否有替代?
|
|
269
|
+
│ └── 是否支持 switch control?
|
|
270
|
+
│
|
|
271
|
+
├── CONFLICT CHECK:
|
|
272
|
+
│ ├── 是否与系统手势冲突?
|
|
273
|
+
│ │ ├── iOS:边缘返回
|
|
274
|
+
│ │ ├── Android:返回手势
|
|
275
|
+
│ │ └── Home indicator 上滑
|
|
276
|
+
│ └── 是否与 App 内其他手势冲突?
|
|
277
|
+
│
|
|
278
|
+
└── FEEDBACK:
|
|
279
|
+
├── 是否有触感反馈(haptic)?
|
|
280
|
+
├── 是否有足够视觉反馈?
|
|
281
|
+
└── 是否需要音频反馈?
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## 🎭 不是“过清单”就够(SPIRIT OVER CHECKLIST)
|
|
287
|
+
|
|
288
|
+
### 通过清单 ≠ 做好体验
|
|
289
|
+
|
|
290
|
+
| ❌ 自我欺骗(Self-Deception) | ✅ 真实评估(Honest Assessment) |
|
|
291
|
+
|-----------------------------|---------------------------------|
|
|
292
|
+
| “触控目标 44px 了”但在边缘够不到 | “单手能否真正触达?” |
|
|
293
|
+
| “我用了 FlatList”但未 memoize | “滚动是否真顺滑?” |
|
|
294
|
+
| “做了平台差异”但只是换图标 | “iOS 像 iOS,Android 像 Android 吗?” |
|
|
295
|
+
| “有离线支持”但只是通用报错 | “用户离线时到底能做什么?” |
|
|
296
|
+
| “有加载态”但只有 spinner | “用户是否知道等待时长?” |
|
|
297
|
+
|
|
298
|
+
> 🔴 **通过清单不是目标,做出优秀的移动体验才是目标。**
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## 📝 移动端设计承诺(MOBILE DESIGN COMMITMENT)
|
|
303
|
+
|
|
304
|
+
### 每个移动端项目开始时必须填写
|
|
305
|
+
|
|
306
|
+
```
|
|
307
|
+
📱 MOBILE DESIGN COMMITMENT
|
|
308
|
+
|
|
309
|
+
Project: _______________
|
|
310
|
+
Platform: iOS / Android / Both
|
|
311
|
+
|
|
312
|
+
1. 我在本项目中不会使用的默认模式:
|
|
313
|
+
└── _______________
|
|
314
|
+
|
|
315
|
+
2. 本项目的上下文重点:
|
|
316
|
+
└── _______________
|
|
317
|
+
|
|
318
|
+
3. 我将实现的平台差异:
|
|
319
|
+
└── iOS: _______________
|
|
320
|
+
└── Android: _______________
|
|
321
|
+
|
|
322
|
+
4. 我将专门优化的性能点:
|
|
323
|
+
└── _______________
|
|
324
|
+
|
|
325
|
+
5. 本项目的独特挑战:
|
|
326
|
+
└── _______________
|
|
327
|
+
|
|
328
|
+
🧠 如果填不出来 → 说明我还没理解项目。
|
|
329
|
+
→ 需要回到上下文,向用户补问。
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## 🚨 强制:每次移动端工作前(MANDATORY)
|
|
335
|
+
|
|
336
|
+
```
|
|
337
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
338
|
+
│ PRE-WORK VALIDATION │
|
|
339
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
340
|
+
│ │
|
|
341
|
+
│ □ 是否完成组件拆解(Component Decomposition)? │
|
|
342
|
+
│ □ 是否填写模式质疑矩阵(Pattern Questioning Matrix)? │
|
|
343
|
+
│ □ 是否通过反记忆测试(Anti-Memorization Test)? │
|
|
344
|
+
│ □ 是否做了上下文决策? │
|
|
345
|
+
│ □ 是否做了交互拆解? │
|
|
346
|
+
│ □ 是否填写移动端设计承诺? │
|
|
347
|
+
│ │
|
|
348
|
+
│ ⚠️ 未完成以上步骤,不得写代码。 │
|
|
349
|
+
│ │
|
|
350
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
> **记住(Remember)**:如果你是因为“大家都这么做”而选择方案,那就是“没思考”。每个项目都独特,每个上下文都不同,每个用户行为都有差异。**先思考,再写代码。**
|