speccrew 0.7.9 → 0.7.10
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/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/templates/FEATURE-DETAIL-TEMPLATE-FASTAPI.md +23 -23
- package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/templates/FEATURE-DETAIL-TEMPLATE-JAVA.md +23 -23
- package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/templates/FEATURE-DETAIL-TEMPLATE-NET.md +23 -23
- package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/templates/FEATURE-DETAIL-TEMPLATE.md +23 -23
- package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/workflow.agentflow.xml +9 -5
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/templates/FEATURE-DETAIL-TEMPLATE-UI-DESKTOP.md +46 -46
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/templates/FEATURE-DETAIL-TEMPLATE-UI-ELECTRON.md +51 -51
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/templates/FEATURE-DETAIL-TEMPLATE-UI-MINIAPP.md +48 -48
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/templates/FEATURE-DETAIL-TEMPLATE-UI-MOBILE.md +42 -42
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/templates/FEATURE-DETAIL-TEMPLATE-UI.md +47 -47
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/workflow.agentflow.xml +10 -1
- package/package.json +1 -1
|
@@ -72,22 +72,22 @@ source-path: {sourcePath}
|
|
|
72
72
|
|
|
73
73
|
| Area | Element | Type | Description | Interaction | Source Link |
|
|
74
74
|
|------|---------|------|-------------|-------------|-------------|
|
|
75
|
-
| Title Bar | Window Controls | Button | {Minimize/Maximize/Close} | Click | [Source](
|
|
76
|
-
| Menu | App Menu | Menu | {Application menu} | Click | [Source](
|
|
77
|
-
| Toolbar | Action Buttons | Button | {Primary actions} | Click | [Source](
|
|
78
|
-
| Sidebar | Navigation | Nav | {Section navigation} | Click | [Source](
|
|
79
|
-
| Content | Cards/Tables | Component | {Display content} | Click/Right-click | [Source](
|
|
80
|
-
| Status Bar | Status Info | Status | {App status} | - | [Source](
|
|
75
|
+
| Title Bar | Window Controls | Button | {Minimize/Maximize/Close} | Click | [Source](../../../../../../{sourcePath}) |
|
|
76
|
+
| Menu | App Menu | Menu | {Application menu} | Click | [Source](../../../../../../{sourcePath}) |
|
|
77
|
+
| Toolbar | Action Buttons | Button | {Primary actions} | Click | [Source](../../../../../../{sourcePath}) |
|
|
78
|
+
| Sidebar | Navigation | Nav | {Section navigation} | Click | [Source](../../../../../../{sourcePath}) |
|
|
79
|
+
| Content | Cards/Tables | Component | {Display content} | Click/Right-click | [Source](../../../../../../{sourcePath}) |
|
|
80
|
+
| Status Bar | Status Info | Status | {App status} | - | [Source](../../../../../../{sourcePath}) |
|
|
81
81
|
|
|
82
82
|
**Electron-Specific Interactions:**
|
|
83
83
|
|
|
84
84
|
| Interaction | Action | Description | Source |
|
|
85
85
|
|-------------|--------|-------------|--------|
|
|
86
|
-
| Click | Select/Activate | Mouse click | [Source](
|
|
87
|
-
| RightClick | Context Menu | Show native/context menu | [Source](
|
|
88
|
-
| Drag | File Drop | Drag files into window | [Source](
|
|
89
|
-
| Keyboard | Shortcut | Cmd/Ctrl+ shortcuts | [Source](
|
|
90
|
-
| IPC | Main ↔ Renderer | Communication between processes | [Source](
|
|
86
|
+
| Click | Select/Activate | Mouse click | [Source](../../../../../../{sourcePath}) |
|
|
87
|
+
| RightClick | Context Menu | Show native/context menu | [Source](../../../../../../{sourcePath}) |
|
|
88
|
+
| Drag | File Drop | Drag files into window | [Source](../../../../../../{sourcePath}) |
|
|
89
|
+
| Keyboard | Shortcut | Cmd/Ctrl+ shortcuts | [Source](../../../../../../{sourcePath}) |
|
|
90
|
+
| IPC | Main ↔ Renderer | Communication between processes | [Source](../../../../../../{sourcePath}) |
|
|
91
91
|
|
|
92
92
|
---
|
|
93
93
|
|
|
@@ -121,12 +121,12 @@ graph TB
|
|
|
121
121
|
|
|
122
122
|
| Step | Business Operation | Process | Source |
|
|
123
123
|
|------|-------------------|---------|--------|
|
|
124
|
-
| 1 | Main process starts | Main | [Source](
|
|
125
|
-
| 2 | Create browser window | Main | [Source](
|
|
126
|
-
| 3 | Renderer process loads | Renderer | [Source](
|
|
127
|
-
| 4 | Initialize frontend framework | Renderer | [Source](
|
|
128
|
-
| 5 | Check for updates | Main → Renderer | [Source](
|
|
129
|
-
| 6 | Load user data via IPC | Renderer → Main | [Source](
|
|
124
|
+
| 1 | Main process starts | Main | [Source](../../../../../../{mainSourcePath}) |
|
|
125
|
+
| 2 | Create browser window | Main | [Source](../../../../../../{mainSourcePath}) |
|
|
126
|
+
| 3 | Renderer process loads | Renderer | [Source](../../../../../../{sourcePath}) |
|
|
127
|
+
| 4 | Initialize frontend framework | Renderer | [Source](../../../../../../{sourcePath}) |
|
|
128
|
+
| 5 | Check for updates | Main → Renderer | [Source](../../../../../../{sourcePath}) |
|
|
129
|
+
| 6 | Load user data via IPC | Renderer → Main | [Source](../../../../../../{sourcePath}) |
|
|
130
130
|
|
|
131
131
|
### 3.2 User Interaction Flows
|
|
132
132
|
|
|
@@ -152,12 +152,12 @@ graph TB
|
|
|
152
152
|
|
|
153
153
|
| Step | Business Operation | Process | Source |
|
|
154
154
|
|------|-------------------|---------|--------|
|
|
155
|
-
| 1 | Validate form data | Renderer | [Source](
|
|
156
|
-
| 2 | Send IPC message | Renderer | [Source](
|
|
157
|
-
| 3 | Handle IPC call | Main | [Source](
|
|
158
|
-
| 4 | Show native dialog | Main | [Source](
|
|
159
|
-
| 5 | Write file | Main | [Source](
|
|
160
|
-
| 6 | Return result | Main → Renderer | [Source](
|
|
155
|
+
| 1 | Validate form data | Renderer | [Source](../../../../../../{sourcePath}) |
|
|
156
|
+
| 2 | Send IPC message | Renderer | [Source](../../../../../../{sourcePath}) |
|
|
157
|
+
| 3 | Handle IPC call | Main | [Source](../../../../../../{mainSourcePath}) |
|
|
158
|
+
| 4 | Show native dialog | Main | [Source](../../../../../../{mainSourcePath}) |
|
|
159
|
+
| 5 | Write file | Main | [Source](../../../../../../{mainSourcePath}) |
|
|
160
|
+
| 6 | Return result | Main → Renderer | [Source](../../../../../../{sourcePath}) |
|
|
161
161
|
|
|
162
162
|
#### 3.2.2 {Event Name: e.g., File Drop}
|
|
163
163
|
|
|
@@ -200,9 +200,9 @@ graph TB
|
|
|
200
200
|
|
|
201
201
|
| Direction | Method | Use Case | Source |
|
|
202
202
|
|-----------|--------|----------|--------|
|
|
203
|
-
| Renderer → Main | ipcRenderer.send | Fire-and-forget | [Source](
|
|
204
|
-
| Renderer → Main | ipcRenderer.invoke | Request/Response | [Source](
|
|
205
|
-
| Main → Renderer | webContents.send | Push notification | [Source](
|
|
203
|
+
| Renderer → Main | ipcRenderer.send | Fire-and-forget | [Source](../../../../../../{sourcePath}) |
|
|
204
|
+
| Renderer → Main | ipcRenderer.invoke | Request/Response | [Source](../../../../../../{sourcePath}) |
|
|
205
|
+
| Main → Renderer | webContents.send | Push notification | [Source](../../../../../../{mainSourcePath}) |
|
|
206
206
|
|
|
207
207
|
---
|
|
208
208
|
|
|
@@ -212,17 +212,17 @@ graph TB
|
|
|
212
212
|
|
|
213
213
|
| Field Name | Type | Description | Framework | Source |
|
|
214
214
|
|------------|------|-------------|-----------|--------|
|
|
215
|
-
| {Field 1} | string/number/boolean | {Description} | React/Vue/Angular | [Source](
|
|
216
|
-
| {files} | Array | {Dropped files} | React/Vue/Angular | [Source](
|
|
217
|
-
| {isProcessing} | boolean | {Processing state} | React/Vue/Angular | [Source](
|
|
218
|
-
| {settings} | Object | {App settings} | React/Vue/Angular | [Source](
|
|
215
|
+
| {Field 1} | string/number/boolean | {Description} | React/Vue/Angular | [Source](../../../../../../{sourcePath}) |
|
|
216
|
+
| {files} | Array | {Dropped files} | React/Vue/Angular | [Source](../../../../../../{sourcePath}) |
|
|
217
|
+
| {isProcessing} | boolean | {Processing state} | React/Vue/Angular | [Source](../../../../../../{sourcePath}) |
|
|
218
|
+
| {settings} | Object | {App settings} | React/Vue/Angular | [Source](../../../../../../{sourcePath}) |
|
|
219
219
|
|
|
220
220
|
### 4.2 Form Fields (if applicable)
|
|
221
221
|
|
|
222
222
|
| Field Name | Type | Validation | Component | Source |
|
|
223
223
|
|------------|------|------------|-----------|--------|
|
|
224
|
-
| {Field 1} | string | {Required} | Input | [Source](
|
|
225
|
-
| {Field 2} | string | {File path} | Input + File picker | [Source](
|
|
224
|
+
| {Field 1} | string | {Required} | Input | [Source](../../../../../../{sourcePath}) |
|
|
225
|
+
| {Field 2} | string | {File path} | Input + File picker | [Source](../../../../../../{sourcePath}) |
|
|
226
226
|
|
|
227
227
|
---
|
|
228
228
|
|
|
@@ -232,36 +232,36 @@ graph TB
|
|
|
232
232
|
|
|
233
233
|
| API | Module | Purpose | Source | Document Path |
|
|
234
234
|
|-----|--------|---------|--------|---------------|
|
|
235
|
-
| {Handler Name} | ipcMain | {IPC handler description} | [Source](
|
|
235
|
+
| {Handler Name} | ipcMain | {IPC handler description} | [Source](../../../../../../{mainSourcePath}) | [Main Doc](../../../../../../main/{handler-name}.md) |
|
|
236
236
|
|
|
237
237
|
### 5.2 Electron APIs
|
|
238
238
|
|
|
239
239
|
| API | Process | Purpose | Usage | Source |
|
|
240
240
|
|-----|---------|---------|-------|--------|
|
|
241
|
-
| dialog | Main | Native dialogs | Open/Save dialogs | [Source](
|
|
242
|
-
| shell | Both | Open external | Open file manager/browser | [Source](
|
|
243
|
-
| clipboard | Renderer | Clipboard ops | Copy/paste | [Source](
|
|
244
|
-
| notification | Renderer | Native notifications | Show notification | [Source](
|
|
241
|
+
| dialog | Main | Native dialogs | Open/Save dialogs | [Source](../../../../../../{mainSourcePath}) |
|
|
242
|
+
| shell | Both | Open external | Open file manager/browser | [Source](../../../../../../{sourcePath}) |
|
|
243
|
+
| clipboard | Renderer | Clipboard ops | Copy/paste | [Source](../../../../../../{sourcePath}) |
|
|
244
|
+
| notification | Renderer | Native notifications | Show notification | [Source](../../../../../../{sourcePath}) |
|
|
245
245
|
|
|
246
246
|
### 5.3 Node.js Modules
|
|
247
247
|
|
|
248
248
|
| Module | Purpose | Usage | Source |
|
|
249
249
|
|--------|---------|-------|--------|
|
|
250
|
-
| fs | File system | Read/write files | [Source](
|
|
251
|
-
| path | Path operations | Handle file paths | [Source](
|
|
252
|
-
| os | System info | Get platform info | [Source](
|
|
250
|
+
| fs | File system | Read/write files | [Source](../../../../../../{mainSourcePath}) |
|
|
251
|
+
| path | Path operations | Handle file paths | [Source](../../../../../../{mainSourcePath}) |
|
|
252
|
+
| os | System info | Get platform info | [Source](../../../../../../{mainSourcePath}) |
|
|
253
253
|
|
|
254
254
|
### 5.4 Other Windows
|
|
255
255
|
|
|
256
256
|
| Window Name | Relation Type | Description | Source | Document Path |
|
|
257
257
|
|-------------|---------------|-------------|--------|---------------|
|
|
258
|
-
| {Window Name} | Modal/Child | {Relation description} | [Source](
|
|
258
|
+
| {Window Name} | Modal/Child | {Relation description} | [Source](../../../../../../{windowSourcePath}) | [Window Doc](../{window-path}.md) |
|
|
259
259
|
|
|
260
260
|
### 5.5 Referenced By
|
|
261
261
|
|
|
262
262
|
| Window Name | Function Description | Source Path | Document Path |
|
|
263
263
|
|-------------|---------------------|-------------|---------------|
|
|
264
|
-
| {Referencing Window} | {e.g., "Open from main menu"} | {source-path} | [Window Doc](
|
|
264
|
+
| {Referencing Window} | {e.g., "Open from main menu"} | {source-path} | [Window Doc](../../../../../../{window-path}.md) |
|
|
265
265
|
|
|
266
266
|
---
|
|
267
267
|
|
|
@@ -271,20 +271,20 @@ graph TB
|
|
|
271
271
|
|
|
272
272
|
| Operation | Permission | No Permission Handling | Source |
|
|
273
273
|
|-----------|------------|----------------------|--------|
|
|
274
|
-
| File system access | {User consent} | Show permission dialog | [Source](
|
|
275
|
-
| External links | {N/A} | Open in system browser | [Source](
|
|
274
|
+
| File system access | {User consent} | Show permission dialog | [Source](../../../../../../{sourcePath}) |
|
|
275
|
+
| External links | {N/A} | Open in system browser | [Source](../../../../../../{sourcePath}) |
|
|
276
276
|
|
|
277
277
|
### 6.2 Electron-Specific Rules
|
|
278
278
|
|
|
279
|
-
1. **Security**: {e.g., Enable contextIsolation, use IPC not remote} | [Source](
|
|
280
|
-
2. **Auto-update**: {e.g., Check updates on startup} | [Source](
|
|
281
|
-
3. **Window State**: {e.g., Restore window position/size} | [Source](
|
|
279
|
+
1. **Security**: {e.g., Enable contextIsolation, use IPC not remote} | [Source](../../../../../../{sourcePath})
|
|
280
|
+
2. **Auto-update**: {e.g., Check updates on startup} | [Source](../../../../../../{sourcePath})
|
|
281
|
+
3. **Window State**: {e.g., Restore window position/size} | [Source](../../../../../../{sourcePath})
|
|
282
282
|
|
|
283
283
|
### 6.3 Validation Rules
|
|
284
284
|
|
|
285
285
|
| Scenario | Rule | Error Handling | Source |
|
|
286
286
|
|----------|------|----------------|--------|
|
|
287
|
-
| File type | {Allowed extensions} | Show error dialog | [Source](
|
|
287
|
+
| File type | {Allowed extensions} | Show error dialog | [Source](../../../../../../{sourcePath}) |
|
|
288
288
|
|
|
289
289
|
---
|
|
290
290
|
|
|
@@ -322,6 +322,6 @@ graph TB
|
|
|
322
322
|
**Related Module Document:** [Module Overview Document](../{{module-name}}-overview.md)
|
|
323
323
|
|
|
324
324
|
**Section Source**
|
|
325
|
-
- [{Component}.jsx/.vue](
|
|
326
|
-
- [main.js/main.ts](
|
|
327
|
-
- [preload.js](
|
|
325
|
+
- [{Component}.jsx/.vue](../../../../../../{sourcePath})
|
|
326
|
+
- [main.js/main.ts](../../../../../../{mainSourcePath})
|
|
327
|
+
- [preload.js](../../../../../../{preloadSourcePath})
|
|
@@ -66,21 +66,21 @@ source-path: {sourcePath}
|
|
|
66
66
|
|
|
67
67
|
| Area | Element | Component | Description | Interaction | Source Link |
|
|
68
68
|
|------|---------|-----------|-------------|-------------|-------------|
|
|
69
|
-
| Nav | Title | NavigationBar | {Page title} | - | [Source](
|
|
70
|
-
| Search | Search Input | search | {Search input} | bind:input/bind:confirm | [Source](
|
|
71
|
-
| Content | Card | view + image + text | {Display item} | bind:tap | [Source](
|
|
72
|
-
| Action | FAB | button | {Primary action} | bind:tap | [Source](
|
|
69
|
+
| Nav | Title | NavigationBar | {Page title} | - | [Source](../../../../../../{sourcePath}) |
|
|
70
|
+
| Search | Search Input | search | {Search input} | bind:input/bind:confirm | [Source](../../../../../../{sourcePath}) |
|
|
71
|
+
| Content | Card | view + image + text | {Display item} | bind:tap | [Source](../../../../../../{sourcePath}) |
|
|
72
|
+
| Action | FAB | button | {Primary action} | bind:tap | [Source](../../../../../../{sourcePath}) |
|
|
73
73
|
|
|
74
74
|
**Mini Program Specific Interactions:**
|
|
75
75
|
|
|
76
76
|
| Event | Trigger | Description | Source |
|
|
77
77
|
|-------|---------|-------------|--------|
|
|
78
|
-
| bind:tap | Tap | Click element | [Source](
|
|
79
|
-
| bind:longpress | Long press | Long press element | [Source](
|
|
80
|
-
| bind:touchstart | Touch start | Start touch | [Source](
|
|
81
|
-
| bind:touchend | Touch end | End touch | [Source](
|
|
82
|
-
| bind:scrolltolower | Scroll to bottom | Load more | [Source](
|
|
83
|
-
| bind:pullDownRefresh | Pull down | Refresh page | [Source](
|
|
78
|
+
| bind:tap | Tap | Click element | [Source](../../../../../../{sourcePath}) |
|
|
79
|
+
| bind:longpress | Long press | Long press element | [Source](../../../../../../{sourcePath}) |
|
|
80
|
+
| bind:touchstart | Touch start | Start touch | [Source](../../../../../../{sourcePath}) |
|
|
81
|
+
| bind:touchend | Touch end | End touch | [Source](../../../../../../{sourcePath}) |
|
|
82
|
+
| bind:scrolltolower | Scroll to bottom | Load more | [Source](../../../../../../{sourcePath}) |
|
|
83
|
+
| bind:pullDownRefresh | Pull down | Refresh page | [Source](../../../../../../{sourcePath}) |
|
|
84
84
|
|
|
85
85
|
---
|
|
86
86
|
|
|
@@ -110,11 +110,11 @@ graph TB
|
|
|
110
110
|
|
|
111
111
|
| Step | Business Operation | Lifecycle | Source |
|
|
112
112
|
|------|-------------------|-----------|--------|
|
|
113
|
-
| 1 | Parse page options | onLoad | [Source](
|
|
114
|
-
| 2 | Page becomes visible | onShow | [Source](
|
|
115
|
-
| 3 | Check/get user info | onShow | [Source](
|
|
116
|
-
| 4 | Load page data | onShow | [Source](
|
|
117
|
-
| 5 | Page render complete | onReady | [Source](
|
|
113
|
+
| 1 | Parse page options | onLoad | [Source](../../../../../../{sourcePath}) |
|
|
114
|
+
| 2 | Page becomes visible | onShow | [Source](../../../../../../{sourcePath}) |
|
|
115
|
+
| 3 | Check/get user info | onShow | [Source](../../../../../../{sourcePath}) |
|
|
116
|
+
| 4 | Load page data | onShow | [Source](../../../../../../{sourcePath}) |
|
|
117
|
+
| 5 | Page render complete | onReady | [Source](../../../../../../{sourcePath}) |
|
|
118
118
|
|
|
119
119
|
### 3.2 User Interaction Flows
|
|
120
120
|
|
|
@@ -134,9 +134,9 @@ graph TB
|
|
|
134
134
|
|
|
135
135
|
| Step | Business Operation | Event | Source |
|
|
136
136
|
|------|-------------------|-------|--------|
|
|
137
|
-
| 1 | Get data from dataset | bind:tap | [Source](
|
|
138
|
-
| 2 | Navigate to detail | wx.navigateTo | [Source](
|
|
139
|
-
| 3 | Pass data via URL | query parameter | [Source](
|
|
137
|
+
| 1 | Get data from dataset | bind:tap | [Source](../../../../../../{sourcePath}) |
|
|
138
|
+
| 2 | Navigate to detail | wx.navigateTo | [Source](../../../../../../{sourcePath}) |
|
|
139
|
+
| 3 | Pass data via URL | query parameter | [Source](../../../../../../{sourcePath}) |
|
|
140
140
|
|
|
141
141
|
#### 3.2.2 {Event Name: e.g., Pull Down Refresh}
|
|
142
142
|
|
|
@@ -168,14 +168,14 @@ graph TB
|
|
|
168
168
|
|
|
169
169
|
| Function | Trigger | Purpose | Source |
|
|
170
170
|
|----------|---------|---------|--------|
|
|
171
|
-
| onLoad | Page created | Parse options, init | [Source](
|
|
172
|
-
| onShow | Page visible | Refresh data | [Source](
|
|
173
|
-
| onReady | Render done | DOM operations | [Source](
|
|
174
|
-
| onHide | Page hidden | Pause operations | [Source](
|
|
175
|
-
| onUnload | Page closed | Cleanup | [Source](
|
|
176
|
-
| onPullDownRefresh | Pull down | Refresh data | [Source](
|
|
177
|
-
| onReachBottom | Scroll bottom | Load more | [Source](
|
|
178
|
-
| onShareAppMessage | Share | Custom share | [Source](
|
|
171
|
+
| onLoad | Page created | Parse options, init | [Source](../../../../../../{sourcePath}) |
|
|
172
|
+
| onShow | Page visible | Refresh data | [Source](../../../../../../{sourcePath}) |
|
|
173
|
+
| onReady | Render done | DOM operations | [Source](../../../../../../{sourcePath}) |
|
|
174
|
+
| onHide | Page hidden | Pause operations | [Source](../../../../../../{sourcePath}) |
|
|
175
|
+
| onUnload | Page closed | Cleanup | [Source](../../../../../../{sourcePath}) |
|
|
176
|
+
| onPullDownRefresh | Pull down | Refresh data | [Source](../../../../../../{sourcePath}) |
|
|
177
|
+
| onReachBottom | Scroll bottom | Load more | [Source](../../../../../../{sourcePath}) |
|
|
178
|
+
| onShareAppMessage | Share | Custom share | [Source](../../../../../../{sourcePath}) |
|
|
179
179
|
|
|
180
180
|
---
|
|
181
181
|
|
|
@@ -185,17 +185,17 @@ graph TB
|
|
|
185
185
|
|
|
186
186
|
| Field Name | Type | Description | Source |
|
|
187
187
|
|------------|------|-------------|--------|
|
|
188
|
-
| {Field 1} | String/Number/Boolean/Array/Object | {Description} | [Source](
|
|
189
|
-
| {loading} | Boolean | {Loading state} | [Source](
|
|
190
|
-
| {list} | Array | {List data} | [Source](
|
|
191
|
-
| {hasMore} | Boolean | {Has more data} | [Source](
|
|
188
|
+
| {Field 1} | String/Number/Boolean/Array/Object | {Description} | [Source](../../../../../../{sourcePath}) |
|
|
189
|
+
| {loading} | Boolean | {Loading state} | [Source](../../../../../../{sourcePath}) |
|
|
190
|
+
| {list} | Array | {List data} | [Source](../../../../../../{sourcePath}) |
|
|
191
|
+
| {hasMore} | Boolean | {Has more data} | [Source](../../../../../../{sourcePath}) |
|
|
192
192
|
|
|
193
193
|
### 4.2 Form Fields (if applicable)
|
|
194
194
|
|
|
195
195
|
| Field Name | Type | Validation | Component | Source |
|
|
196
196
|
|------------|------|------------|-----------|--------|
|
|
197
|
-
| {Field 1} | String | {Required} | input | [Source](
|
|
198
|
-
| {Field 2} | String | {Phone format} | input type=digit | [Source](
|
|
197
|
+
| {Field 1} | String | {Required} | input | [Source](../../../../../../{sourcePath}) |
|
|
198
|
+
| {Field 2} | String | {Phone format} | input type=digit | [Source](../../../../../../{sourcePath}) |
|
|
199
199
|
|
|
200
200
|
---
|
|
201
201
|
|
|
@@ -205,34 +205,34 @@ graph TB
|
|
|
205
205
|
|
|
206
206
|
| API Name | Type | Main Function | Source | Document Path |
|
|
207
207
|
|----------|------|---------------|--------|---------------|
|
|
208
|
-
| {API Name} | Query/Mutation | {Brief description} | [Source](
|
|
208
|
+
| {API Name} | Query/Mutation | {Brief description} | [Source](../../../../../../{apiSourcePath}) | [API Doc](../../../../../../apis/{api-name}.md) |
|
|
209
209
|
|
|
210
210
|
### 5.2 Mini Program APIs
|
|
211
211
|
|
|
212
212
|
| API | Purpose | Usage | Source |
|
|
213
213
|
|-----|---------|-------|--------|
|
|
214
|
-
| wx.request | HTTP request | Call backend API | [Source](
|
|
215
|
-
| wx.navigateTo | Page navigation | Navigate to page | [Source](
|
|
216
|
-
| wx.showToast | Show toast | Display message | [Source](
|
|
217
|
-
| wx.getUserInfo | Get user info | Authentication | [Source](
|
|
214
|
+
| wx.request | HTTP request | Call backend API | [Source](../../../../../../{sourcePath}) |
|
|
215
|
+
| wx.navigateTo | Page navigation | Navigate to page | [Source](../../../../../../{sourcePath}) |
|
|
216
|
+
| wx.showToast | Show toast | Display message | [Source](../../../../../../{sourcePath}) |
|
|
217
|
+
| wx.getUserInfo | Get user info | Authentication | [Source](../../../../../../{sourcePath}) |
|
|
218
218
|
|
|
219
219
|
### 5.3 Components
|
|
220
220
|
|
|
221
221
|
| Component | Type | Main Function | Source | Document Path |
|
|
222
222
|
|-----------|------|---------------|--------|---------------|
|
|
223
|
-
| {Custom Component} | UI | {Description} | [Source](
|
|
223
|
+
| {Custom Component} | UI | {Description} | [Source](../../../../../../{componentSourcePath}) | [Component Doc](../../../../../../components/{component-name}.md) |
|
|
224
224
|
|
|
225
225
|
### 5.4 Other Pages
|
|
226
226
|
|
|
227
227
|
| Page Name | Relation Type | Description | Source | Document Path |
|
|
228
228
|
|-----------|---------------|-------------|--------|---------------|
|
|
229
|
-
| {Page Name} | navigateTo | {Navigation description} | [Source](
|
|
229
|
+
| {Page Name} | navigateTo | {Navigation description} | [Source](../../../../../../{pageSourcePath}) | [Page Doc](../{page-path}.md) |
|
|
230
230
|
|
|
231
231
|
### 5.5 Referenced By
|
|
232
232
|
|
|
233
233
|
| Page Name | Function Description | Source Path | Document Path |
|
|
234
234
|
|-------------|---------------------|-------------|---------------|
|
|
235
|
-
| {Referencing Page} | {e.g., "Navigate to this page"} | {source-path} | [Page Doc](
|
|
235
|
+
| {Referencing Page} | {e.g., "Navigate to this page"} | {source-path} | [Page Doc](../../../../../../{page-path}.md) |
|
|
236
236
|
|
|
237
237
|
---
|
|
238
238
|
|
|
@@ -242,20 +242,20 @@ graph TB
|
|
|
242
242
|
|
|
243
243
|
| Operation | Permission | No Permission Handling | Source |
|
|
244
244
|
|-----------|------------|----------------------|--------|
|
|
245
|
-
| View page | {None/Login} | Show login modal | [Source](
|
|
246
|
-
| Use feature | {Scope required} | Guide to authorize | [Source](
|
|
245
|
+
| View page | {None/Login} | Show login modal | [Source](../../../../../../{sourcePath}) |
|
|
246
|
+
| Use feature | {Scope required} | Guide to authorize | [Source](../../../../../../{sourcePath}) |
|
|
247
247
|
|
|
248
248
|
### 6.2 Mini Program Specific Rules
|
|
249
249
|
|
|
250
|
-
1. **Package Size**: {e.g., Main package ≤ 2MB} | [Source](
|
|
251
|
-
2. **API Limit**: {e.g., Concurrent request limit} | [Source](
|
|
252
|
-
3. **Storage**: {e.g., Use wx.setStorage for cache} | [Source](
|
|
250
|
+
1. **Package Size**: {e.g., Main package ≤ 2MB} | [Source](../../../../../../{sourcePath})
|
|
251
|
+
2. **API Limit**: {e.g., Concurrent request limit} | [Source](../../../../../../{sourcePath})
|
|
252
|
+
3. **Storage**: {e.g., Use wx.setStorage for cache} | [Source](../../../../../../{sourcePath})
|
|
253
253
|
|
|
254
254
|
### 6.3 Validation Rules
|
|
255
255
|
|
|
256
256
|
| Scenario | Rule | Handling | Source |
|
|
257
257
|
|----------|------|----------|--------|
|
|
258
|
-
| Form submit | {Validation} | wx.showToast / showModal | [Source](
|
|
258
|
+
| Form submit | {Validation} | wx.showToast / showModal | [Source](../../../../../../{sourcePath}) |
|
|
259
259
|
|
|
260
260
|
---
|
|
261
261
|
|
|
@@ -288,5 +288,5 @@ graph TB
|
|
|
288
288
|
**Related Module Document:** [Module Overview Document](../{{module-name}}-overview.md)
|
|
289
289
|
|
|
290
290
|
**Section Source**
|
|
291
|
-
- [{page}.js/{page}.wxml](
|
|
292
|
-
- [{page}.json](
|
|
291
|
+
- [{page}.js/{page}.wxml](../../../../../../{sourcePath})
|
|
292
|
+
- [{page}.json](../../../../../../{configPath})
|
|
@@ -68,22 +68,22 @@ source-path: {sourcePath}
|
|
|
68
68
|
|
|
69
69
|
| Area | Element | Type | Description | Interaction | Source Link |
|
|
70
70
|
|------|---------|------|-------------|-------------|-------------|
|
|
71
|
-
| Nav Bar | Back Button | Button | {Return to previous screen} | Tap to navigate back | [Source](
|
|
72
|
-
| Nav Bar | Title | Label | {Screen title} | - | [Source](
|
|
73
|
-
| Nav Bar | More Menu | Button | {Show action sheet} | Tap to show options | [Source](
|
|
74
|
-
| Content | List Item | Cell | {Display data item} | Tap to view detail | [Source](
|
|
75
|
-
| Content | Pull Refresh | Gesture | {Pull down to refresh} | Pull down gesture | [Source](
|
|
76
|
-
| FAB | Action Button | Button | {Primary action} | Tap to create/add | [Source](
|
|
71
|
+
| Nav Bar | Back Button | Button | {Return to previous screen} | Tap to navigate back | [Source](../../../../../../{sourcePath}) |
|
|
72
|
+
| Nav Bar | Title | Label | {Screen title} | - | [Source](../../../../../../{sourcePath}) |
|
|
73
|
+
| Nav Bar | More Menu | Button | {Show action sheet} | Tap to show options | [Source](../../../../../../{sourcePath}) |
|
|
74
|
+
| Content | List Item | Cell | {Display data item} | Tap to view detail | [Source](../../../../../../{sourcePath}) |
|
|
75
|
+
| Content | Pull Refresh | Gesture | {Pull down to refresh} | Pull down gesture | [Source](../../../../../../{sourcePath}) |
|
|
76
|
+
| FAB | Action Button | Button | {Primary action} | Tap to create/add | [Source](../../../../../../{sourcePath}) |
|
|
77
77
|
|
|
78
78
|
**Mobile-Specific Interactions:**
|
|
79
79
|
|
|
80
80
|
| Gesture | Action | Description | Source |
|
|
81
81
|
|---------|--------|-------------|--------|
|
|
82
|
-
| Tap | Select item | Navigate to detail | [Source](
|
|
83
|
-
| Long Press | Context menu | Show action sheet | [Source](
|
|
84
|
-
| Swipe Left | Delete/Reveal | Show delete/edit actions | [Source](
|
|
85
|
-
| Pull Down | Refresh | Reload data | [Source](
|
|
86
|
-
| Infinite Scroll | Load more | Pagination | [Source](
|
|
82
|
+
| Tap | Select item | Navigate to detail | [Source](../../../../../../{sourcePath}) |
|
|
83
|
+
| Long Press | Context menu | Show action sheet | [Source](../../../../../../{sourcePath}) |
|
|
84
|
+
| Swipe Left | Delete/Reveal | Show delete/edit actions | [Source](../../../../../../{sourcePath}) |
|
|
85
|
+
| Pull Down | Refresh | Reload data | [Source](../../../../../../{sourcePath}) |
|
|
86
|
+
| Infinite Scroll | Load more | Pagination | [Source](../../../../../../{sourcePath}) |
|
|
87
87
|
|
|
88
88
|
---
|
|
89
89
|
|
|
@@ -112,10 +112,10 @@ graph TB
|
|
|
112
112
|
|
|
113
113
|
| Step | Business Operation | Trigger | Source |
|
|
114
114
|
|------|-------------------|---------|--------|
|
|
115
|
-
| 1 | Initialize ViewModel | viewDidLoad/onCreate | [Source](
|
|
116
|
-
| 2 | Check authentication | After init | [Source](
|
|
117
|
-
| 3 | Load data | Auth passed | [Source](
|
|
118
|
-
| 4 | Render UI | Data loaded | [Source](
|
|
115
|
+
| 1 | Initialize ViewModel | viewDidLoad/onCreate | [Source](../../../../../../{sourcePath}) |
|
|
116
|
+
| 2 | Check authentication | After init | [Source](../../../../../../{sourcePath}) |
|
|
117
|
+
| 3 | Load data | Auth passed | [Source](../../../../../../{sourcePath}) |
|
|
118
|
+
| 4 | Render UI | Data loaded | [Source](../../../../../../{sourcePath}) |
|
|
119
119
|
|
|
120
120
|
### 3.2 User Interaction Flows
|
|
121
121
|
|
|
@@ -136,9 +136,9 @@ graph TB
|
|
|
136
136
|
|
|
137
137
|
| Step | Business Operation | Trigger | Source |
|
|
138
138
|
|------|-------------------|---------|--------|
|
|
139
|
-
| 1 | Detect tap | onTap | [Source](
|
|
140
|
-
| 2 | Check item type | Tap detected | [Source](
|
|
141
|
-
| 3 | Navigate or show actions | Based on type | [Source](
|
|
139
|
+
| 1 | Detect tap | onTap | [Source](../../../../../../{sourcePath}) |
|
|
140
|
+
| 2 | Check item type | Tap detected | [Source](../../../../../../{sourcePath}) |
|
|
141
|
+
| 3 | Navigate or show actions | Based on type | [Source](../../../../../../{sourcePath}) |
|
|
142
142
|
|
|
143
143
|
#### 3.2.2 {Event Name: e.g., Pull to Refresh}
|
|
144
144
|
|
|
@@ -170,12 +170,12 @@ graph TB
|
|
|
170
170
|
|
|
171
171
|
| Event | Platform | Handler | Purpose | Source |
|
|
172
172
|
|-------|----------|---------|---------|--------|
|
|
173
|
-
| Create | iOS | viewDidLoad | Initial setup | [Source](
|
|
174
|
-
| Create | Android | onCreate | Initial setup | [Source](
|
|
175
|
-
| Appear | iOS | viewWillAppear | Prepare data | [Source](
|
|
176
|
-
| Appear | Android | onStart | Prepare data | [Source](
|
|
177
|
-
| Destroy | iOS | deinit | Cleanup | [Source](
|
|
178
|
-
| Destroy | Android | onDestroy | Cleanup | [Source](
|
|
173
|
+
| Create | iOS | viewDidLoad | Initial setup | [Source](../../../../../../{sourcePath}) |
|
|
174
|
+
| Create | Android | onCreate | Initial setup | [Source](../../../../../../{sourcePath}) |
|
|
175
|
+
| Appear | iOS | viewWillAppear | Prepare data | [Source](../../../../../../{sourcePath}) |
|
|
176
|
+
| Appear | Android | onStart | Prepare data | [Source](../../../../../../{sourcePath}) |
|
|
177
|
+
| Destroy | iOS | deinit | Cleanup | [Source](../../../../../../{sourcePath}) |
|
|
178
|
+
| Destroy | Android | onDestroy | Cleanup | [Source](../../../../../../{sourcePath}) |
|
|
179
179
|
|
|
180
180
|
---
|
|
181
181
|
|
|
@@ -185,16 +185,16 @@ graph TB
|
|
|
185
185
|
|
|
186
186
|
| Field Name | Field Type | Description | Platform | Source |
|
|
187
187
|
|------------|------------|-------------|----------|--------|
|
|
188
|
-
| {Field 1} | String/Int/Boolean | {Description} | iOS/Android | [Source](
|
|
189
|
-
| {isLoading} | Boolean | {Loading state} | iOS/Android | [Source](
|
|
190
|
-
| {dataList} | Array | {List data source} | iOS/Android | [Source](
|
|
188
|
+
| {Field 1} | String/Int/Boolean | {Description} | iOS/Android | [Source](../../../../../../{sourcePath}) |
|
|
189
|
+
| {isLoading} | Boolean | {Loading state} | iOS/Android | [Source](../../../../../../{sourcePath}) |
|
|
190
|
+
| {dataList} | Array | {List data source} | iOS/Android | [Source](../../../../../../{sourcePath}) |
|
|
191
191
|
|
|
192
192
|
### 4.2 Form Fields (if applicable)
|
|
193
193
|
|
|
194
194
|
| Field Name | Field Type | Validation | Input Type | Source |
|
|
195
195
|
|------------|------------|------------|------------|--------|
|
|
196
|
-
| {Field 1} | String | {Required} | TextField/EditText | [Source](
|
|
197
|
-
| {Field 2} | String | {Email format} | Keyboard: Email | [Source](
|
|
196
|
+
| {Field 1} | String | {Required} | TextField/EditText | [Source](../../../../../../{sourcePath}) |
|
|
197
|
+
| {Field 2} | String | {Email format} | Keyboard: Email | [Source](../../../../../../{sourcePath}) |
|
|
198
198
|
|
|
199
199
|
---
|
|
200
200
|
|
|
@@ -204,26 +204,26 @@ graph TB
|
|
|
204
204
|
|
|
205
205
|
| API Name | Type | Main Function | Source | Document Path |
|
|
206
206
|
|----------|------|---------------|--------|---------------|
|
|
207
|
-
| {API Name} | Query/Mutation | {Brief description} | [Source](
|
|
207
|
+
| {API Name} | Query/Mutation | {Brief description} | [Source](../../../../../../{apiSourcePath}) | [API Doc](../../../../../../apis/{api-name}.md) |
|
|
208
208
|
|
|
209
209
|
### 5.2 Native Components/Views
|
|
210
210
|
|
|
211
211
|
| Component | Platform | Type | Main Function | Source | Document Path |
|
|
212
212
|
|-----------|----------|------|---------------|--------|---------------|
|
|
213
|
-
| {UITableView/RecyclerView} | iOS/Android | List | {Display scrollable list} | [Source](
|
|
214
|
-
| {UICollectionView} | iOS | Grid | {Display grid layout} | [Source](
|
|
213
|
+
| {UITableView/RecyclerView} | iOS/Android | List | {Display scrollable list} | [Source](../../../../../../{componentSourcePath}) | [Component Doc](../../../../../../components/{component-name}.md) |
|
|
214
|
+
| {UICollectionView} | iOS | Grid | {Display grid layout} | [Source](../../../../../../{componentSourcePath}) | [Component Doc](../../../../../../components/{component-name}.md) |
|
|
215
215
|
|
|
216
216
|
### 5.3 Other Screens
|
|
217
217
|
|
|
218
218
|
| Screen Name | Relation Type | Description | Source | Document Path |
|
|
219
219
|
|-------------|---------------|-------------|--------|---------------|
|
|
220
|
-
| {Screen Name} | Push/Modal | {Navigation description} | [Source](
|
|
220
|
+
| {Screen Name} | Push/Modal | {Navigation description} | [Source](../../../../../../{screenSourcePath}) | [Screen Doc](../{screen-path}.md) |
|
|
221
221
|
|
|
222
222
|
### 5.4 Referenced By
|
|
223
223
|
|
|
224
224
|
| Screen Name | Function Description | Source Path | Document Path |
|
|
225
225
|
|-------------|---------------------|-------------|---------------|
|
|
226
|
-
| {Referencing Screen} | {e.g., "Tap item to navigate to this screen"} | {source-path} | [Screen Doc](
|
|
226
|
+
| {Referencing Screen} | {e.g., "Tap item to navigate to this screen"} | {source-path} | [Screen Doc](../../../../../../{screen-path}.md) |
|
|
227
227
|
|
|
228
228
|
---
|
|
229
229
|
|
|
@@ -233,20 +233,20 @@ graph TB
|
|
|
233
233
|
|
|
234
234
|
| Operation | Permission Requirement | No Permission Handling | Source |
|
|
235
235
|
|-----------|----------------------|----------------------|--------|
|
|
236
|
-
| View screen | {Authentication required} | Navigate to login | [Source](
|
|
237
|
-
| Perform action | {Role/Permission required} | Hide button / Show alert | [Source](
|
|
236
|
+
| View screen | {Authentication required} | Navigate to login | [Source](../../../../../../{sourcePath}) |
|
|
237
|
+
| Perform action | {Role/Permission required} | Hide button / Show alert | [Source](../../../../../../{sourcePath}) |
|
|
238
238
|
|
|
239
239
|
### 6.2 Mobile-Specific Rules
|
|
240
240
|
|
|
241
|
-
1. **Offline Support**: {e.g., Cache data for offline viewing} | [Source](
|
|
242
|
-
2. **Network Detection**: {e.g., Show offline banner when no connection} | [Source](
|
|
243
|
-
3. **Loading States**: {e.g., Show skeleton screens during load} | [Source](
|
|
241
|
+
1. **Offline Support**: {e.g., Cache data for offline viewing} | [Source](../../../../../../{sourcePath})
|
|
242
|
+
2. **Network Detection**: {e.g., Show offline banner when no connection} | [Source](../../../../../../{sourcePath})
|
|
243
|
+
3. **Loading States**: {e.g., Show skeleton screens during load} | [Source](../../../../../../{sourcePath})
|
|
244
244
|
|
|
245
245
|
### 6.3 Validation Rules
|
|
246
246
|
|
|
247
247
|
| Scenario | Rule | Error Handling | Source |
|
|
248
248
|
|----------|------|----------------|--------|
|
|
249
|
-
| Form input | {Validation rule} | Show inline error / Toast | [Source](
|
|
249
|
+
| Form input | {Validation rule} | Show inline error / Toast | [Source](../../../../../../{sourcePath}) |
|
|
250
250
|
|
|
251
251
|
---
|
|
252
252
|
|
|
@@ -277,5 +277,5 @@ graph TB
|
|
|
277
277
|
**Related Module Document:** [Module Overview Document](../{{module-name}}-overview.md)
|
|
278
278
|
|
|
279
279
|
**Section Source**
|
|
280
|
-
- [{ViewController}.swift/{Activity}.kt](
|
|
281
|
-
- [{ViewModel}.swift/{ViewModel}.kt](
|
|
280
|
+
- [{ViewController}.swift/{Activity}.kt](../../../../../../{sourcePath})
|
|
281
|
+
- [{ViewModel}.swift/{ViewModel}.kt](../../../../../../{viewModelPath})
|