desktop-team-doc 0.1.0
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/README.md +89 -0
- package/content/docs/README.md +227 -0
- package/content/docs/index.md +352 -0
- package/content/docs/instructions/coding-conventions/.clang-format +65 -0
- package/content/docs/instructions/coding-conventions/cpp.md +132 -0
- package/content/docs/instructions/coding-conventions/frontend.md +612 -0
- package/content/docs/instructions/coding-conventions/team-wide.md +176 -0
- package/content/docs/instructions/workflows/assets/jira-1.png +0 -0
- package/content/docs/instructions/workflows/assets/jira-comment.png +0 -0
- package/content/docs/instructions/workflows/assets/jira-release-note.png +0 -0
- package/content/docs/instructions/workflows/assets/jira-tag.png +0 -0
- package/content/docs/instructions/workflows/code-review.md +451 -0
- package/content/docs/instructions/workflows/git-branch-convention.md +246 -0
- package/content/docs/instructions/workflows/git-commit.md +95 -0
- package/content/docs/instructions/workflows/jira-process.md +173 -0
- package/content/docs/instructions/workflows/jira-ticket-guide.md +105 -0
- package/content/docs/instructions/workflows/pull-request-generation.md +319 -0
- package/content/docs/instructions/workflows/scrum-process.md +104 -0
- package/content/docs/instructions/workflows/survey-project-setup.md +76 -0
- package/content/docs/knowledge/architecture/README.md +11 -0
- package/content/docs/knowledge/architecture/audio-plugin-architecture.md +213 -0
- package/content/docs/knowledge/architecture/cross-platform-design.md +176 -0
- package/content/docs/knowledge/architecture/frontend-native-bridge.md +193 -0
- package/content/docs/knowledge/architecture/native-command.md +189 -0
- package/content/docs/knowledge/architecture/state-management-architecture.md +105 -0
- package/content/docs/knowledge/component-library/ControlComponent/README.md +281 -0
- package/content/docs/knowledge/component-library/ControlComponent/accessibility/accessibility-implementation.md +503 -0
- package/content/docs/knowledge/component-library/ControlComponent/common-mechanisms.md +278 -0
- package/content/docs/knowledge/component-library/ControlComponent/core/error-handling.md +451 -0
- package/content/docs/knowledge/component-library/ControlComponent/core/native-interface.md +515 -0
- package/content/docs/knowledge/component-library/ControlComponent/core/state-management.md +509 -0
- package/content/docs/knowledge/component-library/ControlComponent/creating-new-controls.md +654 -0
- package/content/docs/knowledge/component-library/ControlComponent/design/api-design-reference.md +1142 -0
- package/content/docs/knowledge/component-library/ControlComponent/design/design-principles.md +336 -0
- package/content/docs/knowledge/component-library/ControlComponent/design/styling-architecture.md +595 -0
- package/content/docs/knowledge/component-library/ControlComponent/design/visual-feedback.md +456 -0
- package/content/docs/knowledge/component-library/ControlComponent/development-environment.md +213 -0
- package/content/docs/knowledge/component-library/ControlComponent/interaction/gesture-algorithms.md +705 -0
- package/content/docs/knowledge/component-library/ControlComponent/interaction/touch-support.md +525 -0
- package/content/docs/knowledge/component-library/ControlComponent/interaction/value-processing-patterns.md +801 -0
- package/content/docs/knowledge/component-library/ControlComponent/interaction/velocity-damping-systems.md +741 -0
- package/content/docs/knowledge/component-library/ControlComponent/knob/architecture.md +490 -0
- package/content/docs/knowledge/component-library/ControlComponent/knob/how-to-use.md +304 -0
- package/content/docs/knowledge/component-library/ControlComponent/knob/index.md +105 -0
- package/content/docs/knowledge/component-library/ControlComponent/optimization/performance-benchmarks.md +535 -0
- package/content/docs/knowledge/component-library/ControlComponent/optimization/performance-optimization.md +1092 -0
- package/content/docs/knowledge/component-library/ControlComponent/quick-start.md +345 -0
- package/content/docs/knowledge/component-library/ControlComponent/slider/architecture.md +444 -0
- package/content/docs/knowledge/component-library/ControlComponent/slider/how-to-use.md +470 -0
- package/content/docs/knowledge/component-library/ControlComponent/slider/index.md +107 -0
- package/content/docs/knowledge/component-library/ControlComponent/testing-guide.md +950 -0
- package/content/docs/knowledge/component-library/ControlComponent/troubleshooting.md +657 -0
- package/content/docs/knowledge/component-library/frontend-develop/LICENSE.txt +176 -0
- package/content/docs/knowledge/component-library/frontend-develop/SKILL.md +124 -0
- package/content/docs/knowledge/component-library/frontend-develop/references/code-organization.md +620 -0
- package/content/docs/knowledge/component-library/frontend-develop/references/coding-standards.md +275 -0
- package/content/docs/knowledge/component-library/frontend-develop/references/component-reusability.md +559 -0
- package/content/docs/knowledge/component-library/frontend-develop/references/examples.md +554 -0
- package/content/docs/knowledge/component-library/frontend-develop/references/layout-separation.md +638 -0
- package/content/docs/knowledge/component-library/frontend-develop/references/performance-optimization.md +678 -0
- package/content/docs/knowledge/component-library/frontend-develop/references/state-management.md +331 -0
- package/content/docs/knowledge/component-library/frontend-develop/references/styling-guidelines.md +349 -0
- package/content/docs/knowledge/component-library/frontend-develop/references/type-safety.md +493 -0
- package/content/docs/knowledge/development/assets/cyberduck-aws-credentials.png +0 -0
- package/content/docs/knowledge/development/assets/postman-environment-setup.png +0 -0
- package/content/docs/knowledge/development/aws-storage.md +95 -0
- package/content/docs/knowledge/development/crm-system.md +22 -0
- package/content/docs/knowledge/development/glossary.md +246 -0
- package/content/docs/knowledge/development/pg-api-guide.md +71 -0
- package/content/docs/knowledge/development/staging-license-management.md +44 -0
- package/content/docs/knowledge/development/tech-stack.md +240 -0
- package/content/docs/knowledge/domain/popup-system.md +106 -0
- package/content/docs/knowledge/domain/sigpath.md +264 -0
- package/content/docs/knowledge/environment-setup/aax-signing-update.md +149 -0
- package/content/docs/knowledge/environment-setup/assets/aax-1.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/aax-2.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/aax-3.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/aax-4.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/aax-5.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/aax-6.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/aax-7.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/buildmachine-1.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/buildmachine-10.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/buildmachine-11.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/buildmachine-12.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/buildmachine-13.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/buildmachine-14.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/buildmachine-2.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/buildmachine-3.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/buildmachine-4.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/buildmachine-5.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/buildmachine-6.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/buildmachine-7.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/buildmachine-8.png +0 -0
- package/content/docs/knowledge/environment-setup/assets/buildmachine-9.png +0 -0
- package/content/docs/knowledge/environment-setup/build-machine-setup.md +224 -0
- package/content/docs/knowledge/environment-setup/build-machine-troubleshooting.md +193 -0
- package/content/docs/knowledge/implementation-guides/adding-amp.md +190 -0
- package/content/docs/knowledge/implementation-guides/adding-fx.md +111 -0
- package/content/docs/knowledge/implementation-guides/cab-integration.md +194 -0
- package/content/docs/knowledge/implementation-guides/custom-pedal-integration.md +309 -0
- package/content/docs/knowledge/projects/BIAS_ONE_GUI/README.md +17 -0
- package/content/manifest.json +122 -0
- package/content/rules/cpp.mdc +135 -0
- package/content/rules/frontend.mdc +615 -0
- package/content/rules/index.mdc +256 -0
- package/content/rules/knowledge.mdc +46 -0
- package/content/rules/team-wide.mdc +179 -0
- package/content/rules/workflows.mdc +43 -0
- package/content/tools/agents/context-compressor.md +357 -0
- package/content/tools/agents/context-writer.md +328 -0
- package/content/tools/agents/release-notes-generator.md +389 -0
- package/content/tools/agents/srs-writer-agent.md +63 -0
- package/content/tools/mcp/README.md +25 -0
- package/content/tools/mcp/mcp-desktop-team.example.json +13 -0
- package/content/tools/skills/frontend-develop/LICENSE.txt +176 -0
- package/content/tools/skills/frontend-develop/SKILL.md +124 -0
- package/content/tools/skills/frontend-develop/references/code-organization.md +620 -0
- package/content/tools/skills/frontend-develop/references/coding-standards.md +275 -0
- package/content/tools/skills/frontend-develop/references/component-reusability.md +559 -0
- package/content/tools/skills/frontend-develop/references/examples.md +554 -0
- package/content/tools/skills/frontend-develop/references/layout-separation.md +638 -0
- package/content/tools/skills/frontend-develop/references/performance-optimization.md +678 -0
- package/content/tools/skills/frontend-develop/references/state-management.md +331 -0
- package/content/tools/skills/frontend-develop/references/styling-guidelines.md +349 -0
- package/content/tools/skills/frontend-develop/references/type-safety.md +493 -0
- package/content/tools/slash-commands/commit.md +17 -0
- package/content/tools/slash-commands/context-compress.md +149 -0
- package/content/tools/slash-commands/context-write.md +92 -0
- package/content/tools/slash-commands/jira.md +12 -0
- package/content/tools/slash-commands/pr-gen.md +12 -0
- package/content/tools/slash-commands/pr-review.md +12 -0
- package/dist/commands/detect.d.ts +1 -0
- package/dist/commands/detect.js +33 -0
- package/dist/commands/install.d.ts +1 -0
- package/dist/commands/install.js +100 -0
- package/dist/commands/uninstall.d.ts +1 -0
- package/dist/commands/uninstall.js +132 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +53 -0
- package/dist/lib/detect-env.d.ts +3 -0
- package/dist/lib/detect-env.js +52 -0
- package/dist/lib/prompt-env.d.ts +3 -0
- package/dist/lib/prompt-env.js +16 -0
- package/dist/lib/resolve-doc-repo.d.ts +14 -0
- package/dist/lib/resolve-doc-repo.js +61 -0
- package/dist/lib/symlink.d.ts +7 -0
- package/dist/lib/symlink.js +60 -0
- package/dist/lib/sync-from-manifest.d.ts +8 -0
- package/dist/lib/sync-from-manifest.js +64 -0
- package/package.json +46 -0
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
# Desktop Team Git Branch Convention
|
|
2
|
+
|
|
3
|
+
*Last Updated: 2025-10-16*
|
|
4
|
+
|
|
5
|
+
This document defines the Git branching strategy and naming conventions for Desktop Team repositories, based on Git Flow methodology.
|
|
6
|
+
|
|
7
|
+
## Branch 分支命名方式與用途
|
|
8
|
+
|
|
9
|
+
### 主要區別與分類
|
|
10
|
+
|
|
11
|
+
| | master | dev | feature | release | hotfix |
|
|
12
|
+
| --- | --- | --- | --- | --- | --- |
|
|
13
|
+
| branch off from | n/a | n/a | develop | develop | master |
|
|
14
|
+
| merge into | n/a | n/a | develop | develop<br />master | develop<br />master |
|
|
15
|
+
| creator | maintainer | maintainer | `developer`<br />(主要都是這個) | maintainer | maintainer |
|
|
16
|
+
| duration | infinity | infinity | short | extremely short | short |
|
|
17
|
+
| characteristic | production-ready state | - next release features ready<br />- nightly build | next release features developing | - release meta-data update<br />- minor bug fix | product emergency only |
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## `master` Branch
|
|
22
|
+
|
|
23
|
+
### 特性
|
|
24
|
+
|
|
25
|
+
- 總是在 **production-ready** 的狀態
|
|
26
|
+
- 總是 tag release number
|
|
27
|
+
- Only maintainers can merge into this branch
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## `dev` Branch
|
|
32
|
+
|
|
33
|
+
### 特性
|
|
34
|
+
|
|
35
|
+
- 總是在下一個 release 最新的開發狀態
|
|
36
|
+
- 當所有 feature 實作告一個段落,準備要 release,則開 `release` branch 最後 merge 回 `master` 和 `dev`
|
|
37
|
+
- Used for nightly builds and demo builds
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## `feature` / `refactor` / `bugfix` / `poc` / `chore` / `test` Branches
|
|
42
|
+
|
|
43
|
+
**Branch off from**: `dev`
|
|
44
|
+
|
|
45
|
+
**Merge into**: `dev`
|
|
46
|
+
|
|
47
|
+
### Branch Types
|
|
48
|
+
|
|
49
|
+
- **`feature`**: Develop new features or enhance/modify existing ones
|
|
50
|
+
- **`refactor`**: Code refactoring without changing behavior
|
|
51
|
+
- **`chore`**: Non-coding changes like scripts, metadata, file restructuring, or submodule updates
|
|
52
|
+
- **`bugfix`**: Fix bugs or errors, usually linked to a ticket
|
|
53
|
+
- **`poc`**: Proof-of-concept implementation, typically linked to a PoC ticket
|
|
54
|
+
- **`test`**: For testing purposes
|
|
55
|
+
|
|
56
|
+
### 使用時機
|
|
57
|
+
|
|
58
|
+
- **下一個 release 的 feature**
|
|
59
|
+
- 不是下一個 release 的 feature/refactor/bugfix 也可以開,但是先不要 merge 回 `dev`
|
|
60
|
+
- 實驗、測試、重構、架構調整
|
|
61
|
+
|
|
62
|
+
### Naming Convention
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
## 常用格式
|
|
66
|
+
feature/{jira_number}-{feature_title}
|
|
67
|
+
refactor/{jira_number}-{feature_title}
|
|
68
|
+
bugfix/{jira_number}-{feature_title}
|
|
69
|
+
|
|
70
|
+
## 可使用逗號分隔多張 ticket
|
|
71
|
+
feature/BO-500,512,3,55-title
|
|
72
|
+
feature/BO-230,543,32,23-title
|
|
73
|
+
refactor/BO-445,454,32,23-title
|
|
74
|
+
refactor/BO-507,508,321,223-title
|
|
75
|
+
|
|
76
|
+
## 常用範例
|
|
77
|
+
feature/BFD-123-new-guitar-engine
|
|
78
|
+
refactor/BFD-456-optimize-audio-buffer
|
|
79
|
+
bugfix/BFD-789-fix-preset-loading
|
|
80
|
+
|
|
81
|
+
## 其他類型
|
|
82
|
+
poc/grpc-client
|
|
83
|
+
test/cab-stereo-out
|
|
84
|
+
chore/system-log
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Demo Branch 注意事項
|
|
88
|
+
|
|
89
|
+
> **關於 for demo 的 branch?**
|
|
90
|
+
>
|
|
91
|
+
> 原本想設計 `feature/demo-release-2.5.2` 這樣的 branch off
|
|
92
|
+
> 但是基於 git flow 的流程,建議直接從 dev 做 nightly build 或 demo build 即可
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## `release` Branch
|
|
97
|
+
|
|
98
|
+
**Branch off from**: `develop`
|
|
99
|
+
|
|
100
|
+
**Merge into**: `develop` `master`
|
|
101
|
+
|
|
102
|
+
### 使用時機
|
|
103
|
+
|
|
104
|
+
- Release 狀態已經準備好 (i.e., feature 都已完成),即可 branch off
|
|
105
|
+
|
|
106
|
+
> 💡 **此 branch 會存在到直到 release 出去**
|
|
107
|
+
|
|
108
|
+
- 最終小修改、小 bug 修復或程式碼細節調整
|
|
109
|
+
- 小 bug fix 可在此 branch,反而不是在 develop branch
|
|
110
|
+
- **不可在此 branch 實作大 feature**
|
|
111
|
+
- 加入 release 資訊 (meta-data: version number, build dates 等等)
|
|
112
|
+
|
|
113
|
+
### Naming Convention
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
release/{version_number}
|
|
117
|
+
|
|
118
|
+
## 範例
|
|
119
|
+
release/2.5.0
|
|
120
|
+
release/3.0.1
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## `hotfix` Branch
|
|
126
|
+
|
|
127
|
+
**Branch off from**: `master`
|
|
128
|
+
|
|
129
|
+
**Merge into**: `develop` `master`
|
|
130
|
+
|
|
131
|
+
### 使用時機
|
|
132
|
+
|
|
133
|
+
- 不在計劃內的 release
|
|
134
|
+
- 緊急修復 production 環境的重大問題
|
|
135
|
+
|
|
136
|
+
### Naming Convention
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
hotfix/{version_number}
|
|
140
|
+
|
|
141
|
+
## 範例
|
|
142
|
+
hotfix/2.5.1
|
|
143
|
+
hotfix/3.0.2
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### 特殊情況
|
|
147
|
+
|
|
148
|
+
如果當前有一個 **release branch** 開著:
|
|
149
|
+
|
|
150
|
+
- 若遇到 release 前有一個重大問題要馬上修復,必須搶先在 release branch 前發布
|
|
151
|
+
- Hotfix branch 要 merge 進 **release branch** (不是 develop branch)
|
|
152
|
+
- 若 develop 很需要這個 bugfix,也可以直接 merge 進 develop,不必等 merge 過 bugfix 的 release branch merge 回來
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Branch Lifecycle Summary
|
|
157
|
+
|
|
158
|
+
### Typical Feature Development Flow
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
1. Create feature branch from dev
|
|
162
|
+
git checkout dev
|
|
163
|
+
git checkout -b feature/BFD-123-new-feature
|
|
164
|
+
|
|
165
|
+
2. Develop and commit changes
|
|
166
|
+
git add .
|
|
167
|
+
git commit -m "impl BFD-123: add new feature"
|
|
168
|
+
|
|
169
|
+
3. Push to remote
|
|
170
|
+
git push -u origin feature/BFD-123-new-feature
|
|
171
|
+
|
|
172
|
+
4. Create pull request to dev
|
|
173
|
+
5. After approval, merge into dev
|
|
174
|
+
6. Delete feature branch
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Release Flow
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
1. Create release branch from dev
|
|
181
|
+
git checkout dev
|
|
182
|
+
git checkout -b release/2.5.0
|
|
183
|
+
|
|
184
|
+
2. Update version metadata and fix minor bugs
|
|
185
|
+
3. Merge into master
|
|
186
|
+
4. Tag release on master
|
|
187
|
+
git tag -a v2.5.0 -m "Release 2.5.0"
|
|
188
|
+
|
|
189
|
+
5. Merge back into dev
|
|
190
|
+
6. Delete release branch
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Hotfix Flow
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
1. Create hotfix branch from master
|
|
197
|
+
git checkout master
|
|
198
|
+
git checkout -b hotfix/2.5.1
|
|
199
|
+
|
|
200
|
+
2. Fix critical bug
|
|
201
|
+
3. Merge into master
|
|
202
|
+
4. Tag hotfix release
|
|
203
|
+
git tag -a v2.5.1 -m "Hotfix 2.5.1"
|
|
204
|
+
|
|
205
|
+
5. Merge into dev (or release branch if exists)
|
|
206
|
+
6. Delete hotfix branch
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Best Practices
|
|
212
|
+
|
|
213
|
+
1. **Always branch from the correct source**
|
|
214
|
+
- Features: from `dev`
|
|
215
|
+
- Releases: from `dev`
|
|
216
|
+
- Hotfixes: from `master`
|
|
217
|
+
|
|
218
|
+
2. **Use descriptive branch names**
|
|
219
|
+
- Include JIRA ticket number when applicable
|
|
220
|
+
- Use kebab-case for titles
|
|
221
|
+
- Be concise but clear
|
|
222
|
+
|
|
223
|
+
3. **Keep branches short-lived**
|
|
224
|
+
- Feature branches should be merged within 1-2 sprints
|
|
225
|
+
- Avoid long-running feature branches
|
|
226
|
+
|
|
227
|
+
4. **Delete merged branches**
|
|
228
|
+
- Clean up branches after they're merged
|
|
229
|
+
- Keeps repository organized
|
|
230
|
+
|
|
231
|
+
5. **Never commit directly to master or dev**
|
|
232
|
+
- Always use pull requests
|
|
233
|
+
- Ensure code review process
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Related Documentation
|
|
238
|
+
|
|
239
|
+
- [Git Commit Convention](./git-commit.md) - Commit message format and standards
|
|
240
|
+
- [Code Review Process](./code-review.md) - Review workflow for pull requests
|
|
241
|
+
- [JIRA Workflow](./jira-process.md) - Linking branches to JIRA tickets
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
**Maintained by**: Desktop Team
|
|
246
|
+
**Based on**: [Git Flow](https://nvie.com/posts/a-successful-git-branching-model/) by Vincent Driessen
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Git Commit Message Convention
|
|
2
|
+
|
|
3
|
+
This document outlines the standard format for git commit messages to be used by the Desktop Team. Following these conventions ensures consistency and clarity in our version control history.
|
|
4
|
+
|
|
5
|
+
## Commit Message Structure
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
<header>
|
|
9
|
+
|
|
10
|
+
<body>
|
|
11
|
+
|
|
12
|
+
<footer>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Where:
|
|
16
|
+
|
|
17
|
+
- **Header**: Must be a single line, limited to 80 characters
|
|
18
|
+
- **Body**: Optional, provides detailed description of the commit
|
|
19
|
+
- **Footer**: Optional, references related issues
|
|
20
|
+
|
|
21
|
+
## Header Format
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
<type> BFD-<issue-number>: <subject>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Type Options
|
|
28
|
+
|
|
29
|
+
- **impl**: Implementation of a task (most common type)
|
|
30
|
+
- **fix**: Bug fix (can also be used for bugfix pull request titles)
|
|
31
|
+
- **test**: Adding tests
|
|
32
|
+
- **doc**: Documentation updates
|
|
33
|
+
- **style**: Code formatting changes (no logic changes)
|
|
34
|
+
- **chore**: Build process or auxiliary tool changes
|
|
35
|
+
- **refactor**: Code refactoring (no new features or bug fixes)
|
|
36
|
+
- **remove**: Removal of legacy or unnecessary code
|
|
37
|
+
|
|
38
|
+
## Examples
|
|
39
|
+
|
|
40
|
+
### Complete Example
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
impl BFD-123: lock and disable amp room while connecting to device
|
|
44
|
+
|
|
45
|
+
For some reasons:
|
|
46
|
+
- this is special case for device connected
|
|
47
|
+
- second reason is xxxx
|
|
48
|
+
- bla bla bla
|
|
49
|
+
|
|
50
|
+
ref: #3456 #4488
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Project-Specific Examples
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
impl BO-45: adaptive ui scaling native command
|
|
57
|
+
fix BFD-56: ir loader naming issue
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Guidelines
|
|
61
|
+
|
|
62
|
+
1. The header should be concise but descriptive
|
|
63
|
+
2. Always include the issue number from the tracking system
|
|
64
|
+
3. Use the appropriate type prefix to indicate the nature of the change
|
|
65
|
+
4. The body should explain the "why" behind the changes when necessary
|
|
66
|
+
5. Reference related issues in the footer with "ref: #issue-number"
|
|
67
|
+
|
|
68
|
+
Following these conventions helps with:
|
|
69
|
+
|
|
70
|
+
- Automated changelog generation
|
|
71
|
+
- Filtering commits by type
|
|
72
|
+
- Providing immediate context for code changes
|
|
73
|
+
- Maintaining a clean and useful git history
|
|
74
|
+
|
|
75
|
+
## Automation with Roo Code
|
|
76
|
+
|
|
77
|
+
When working with Roo Code, you can use the prompt "git commit current change for me" to automatically:
|
|
78
|
+
|
|
79
|
+
1. Stage all current changes (`git add .`)
|
|
80
|
+
2. Generate a commit message following this convention
|
|
81
|
+
3. Commit the changes with the generated message
|
|
82
|
+
|
|
83
|
+
The assistant will:
|
|
84
|
+
|
|
85
|
+
- Ask for the issue number (e.g., BFD-123)
|
|
86
|
+
- Determine the appropriate type based on the changes
|
|
87
|
+
- Generate a concise subject line describing the changes
|
|
88
|
+
- Optionally add a body with more details if needed
|
|
89
|
+
- Create a properly formatted commit message
|
|
90
|
+
- Execute the git commit command
|
|
91
|
+
|
|
92
|
+
### Example Interaction
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
User: git commit current change for me
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# Jira Ticket Branch & Solution Planner
|
|
2
|
+
|
|
3
|
+
## Trigger
|
|
4
|
+
|
|
5
|
+
This rule is triggered when a developer provides a Jira ticket URL under the following conditions:
|
|
6
|
+
|
|
7
|
+
1. Current mode is "Code" or "Architect".
|
|
8
|
+
AND
|
|
9
|
+
2. Jira ticket URL is new or re-introduced with work intent.
|
|
10
|
+
AND
|
|
11
|
+
3. One of:
|
|
12
|
+
a. URL at session start in these modes.
|
|
13
|
+
b. URL with intent phrases (e.g., "implement", "start work on BIASONE-XXXX").
|
|
14
|
+
c. URL in response to "what task?"
|
|
15
|
+
|
|
16
|
+
## Action
|
|
17
|
+
|
|
18
|
+
Process:
|
|
19
|
+
|
|
20
|
+
1. **Acknowledge & Confirm Intent:**
|
|
21
|
+
a. Agent: "Jira ticket: [URL] in [Code/Architect] mode. Should I start implementing it?"
|
|
22
|
+
b. If 'yes'/start work: Proceed to step 2.
|
|
23
|
+
c. If 'no'/info only: Offer MCP fetch for ticket details (no branch creation). Workflow ends.
|
|
24
|
+
|
|
25
|
+
2. **Fetch Jira Details & Initial Info:**
|
|
26
|
+
a. Extract `[jira_number]` from URL (e.g., "BIASONE-1328").
|
|
27
|
+
b. Agent: "Ticket: `[jira_number]`."
|
|
28
|
+
c. If Jira MCP available:
|
|
29
|
+
- Agent: "Fetching details (summary, description, comments, type, status) from Jira for planning."
|
|
30
|
+
- Use Jira MCP for full info. Store details.
|
|
31
|
+
- Agent: "Details fetched."
|
|
32
|
+
d. **Verify Jira Ticket Status (if fetched via MCP) & Offer Transition:**
|
|
33
|
+
i. If Jira MCP was used to fetch details:
|
|
34
|
+
1. If `[current_status]` is "DONE", "RESOLVED", "WILL NOT BE FIXED", "CLOSED":
|
|
35
|
+
- Agent: "Ticket `[jira_number]` is `[current_status]`. Proceed anyway?"
|
|
36
|
+
- If 'no': Workflow ends.
|
|
37
|
+
2. Else if `[current_status]` is NOT "IN PROGRESS" (e.g., "TO DO"):
|
|
38
|
+
- Agent: "Ticket `[jira_number]` is `[current_status]`. Move to 'In Progress'?"
|
|
39
|
+
- If 'yes' & MCP available: Attempt `jira_transition_issue`. Report outcome.
|
|
40
|
+
- If 'yes' & MCP unavailable: Agent: "Please update status in Jira manually."
|
|
41
|
+
e. If Jira MCP NOT available/fails (or user opted out of MCP fetch):
|
|
42
|
+
- Agent: "Cannot access Jira / Manual mode. Provide ticket title/summary, description, recent comments, issue type (Bug, Story, Task)? (Assuming status is appropriate for work)."
|
|
43
|
+
- Store user-provided details.
|
|
44
|
+
f. If user provided details preemptively or prefers manual: Use available/solicit per 2.e. (Status assumed appropriate).
|
|
45
|
+
g. Determine branch `[type]` from issue type (Bug → bugfix, Story/Feature → feature, Task → chore, Tech Task → refactor).
|
|
46
|
+
h. If issue type unclear: Agent: "Issue type for branch? ('bugfix', 'feature', 'chore', 'refactor')." Use response for `[type]`.
|
|
47
|
+
|
|
48
|
+
3. **Determine Target Repositories & Scope:**
|
|
49
|
+
a. Deduce `[deduced_target_scope]` from Jira details (summary, description, labels like 'frontend', 'native').
|
|
50
|
+
- Logic: "UI"/"Frontend" → "frontend". "DSP"/"C++" → "native". Both → "both". Submodule names → those.
|
|
51
|
+
b. Agent: "Ticket suggests changes affect `[deduced_target_scope_description]` (e.g., 'frontend UI', 'native DSP', 'both', 'DSP_Lib submodule'). Correct? Or specify:
|
|
52
|
+
1. Native (BIAS_ONE)
|
|
53
|
+
2. Frontend/UI (BIAS_ONE_GUI)
|
|
54
|
+
3. Both
|
|
55
|
+
4. Other submodule(s) (name?)"
|
|
56
|
+
c. Identify final `[target_scope]` from user response.
|
|
57
|
+
d. Determine `[repository_contexts]` (list of `name` and `local_path`):
|
|
58
|
+
- "native": `[{name: "BIAS_ONE", path: "[path_to_BIAS_ONE]"}]`
|
|
59
|
+
- "frontend": `[{name: "BIAS_ONE_GUI", path: "[path_to_BIAS_ONE_GUI]"}]`
|
|
60
|
+
- "both": `[{name: "BIAS_ONE", path: "[path_to_BIAS_ONE]"}, {name: "BIAS_ONE_GUI", path: "[path_to_BIAS_ONE_GUI]"}]`
|
|
61
|
+
- "other_submodule(s)": Entries for each, e.g., `[{name: "DSP_Lib", path: "[path_to_DSP_Lib]"}]`.
|
|
62
|
+
(Note: Obtain/confirm local paths via pre-config or user query for `execute_command` `cwd`.)
|
|
63
|
+
e. Agent: "For `[comma_separated_list_of_repo_names_from_contexts]`: checking existing branches, then creating new if needed."
|
|
64
|
+
f. Perform steps 4 & 5 for each `[repo_context]`. Indicate current repository.
|
|
65
|
+
|
|
66
|
+
4. **For each `[repo_context]` (Prepare Repository & Check Existing/Propose New Branch):**
|
|
67
|
+
a. **Check Git Status & Stash if Needed:**
|
|
68
|
+
i. Agent: "`[repo_context.name]`: Checking git status."
|
|
69
|
+
ii. `git status` (in `[repo_context.path]`).
|
|
70
|
+
iii. If there are uncommitted changes:
|
|
71
|
+
- Agent: "Found uncommitted changes. Stashing them to preserve your work."
|
|
72
|
+
- `git stash -u` (to include untracked files).
|
|
73
|
+
- Store stash reference for later restoration.
|
|
74
|
+
iv. Note current branch for potential restoration at end of session.
|
|
75
|
+
|
|
76
|
+
b. **Checkout and Update Target Branch:**
|
|
77
|
+
i. Determine target branch (default: "dev", unless user specifies otherwise).
|
|
78
|
+
ii. Agent: "Switching to `[target_branch]` and pulling latest changes."
|
|
79
|
+
iii. `git checkout [target_branch]` (in `[repo_context.path]`).
|
|
80
|
+
iv. `git pull` to ensure target branch is up to date.
|
|
81
|
+
v. If pull fails: Report issue and ask user how to proceed.
|
|
82
|
+
|
|
83
|
+
c. Agent: "`[repo_context.name]` (at `[repo_context.path]`): Checking for existing local branch for `[jira_number]`."
|
|
84
|
+
d. `git branch --list '*[jira_number]*'` (in `[repo_context.path]`).
|
|
85
|
+
e. If matching local branches found:
|
|
86
|
+
i. Agent: "`[repo_context.name]`: Found existing local branch(es): `[list_of_branches]`. Use one (I'll switch), or create new?"
|
|
87
|
+
ii. If user chooses `[chosen_branch]`:
|
|
88
|
+
- Agent: "`[repo_context.name]`: Switching to `[chosen_branch]`."
|
|
89
|
+
- `git checkout [chosen_branch]` (in `[repo_context.path]`).
|
|
90
|
+
- Agent: "Switched to `[chosen_branch]` in `[repo_context.name]`."
|
|
91
|
+
- Mark `[repo_context]` 'branch_selected'.
|
|
92
|
+
- If last `[repo_context]`, proceed to Step 6. Else, next `[repo_context]`.
|
|
93
|
+
iii.If user wants new branch despite existing, or none found: Continue to 4f.
|
|
94
|
+
f. If no existing branch used for `[repo_context.name]`:
|
|
95
|
+
i. Derive `[feature_title]` from ticket summary (kebab-case, once globally).
|
|
96
|
+
`// Example: "[GA / UI] Support User Event" -> "ga-ui-support-user-event"`
|
|
97
|
+
ii. `[branch_name_proposal] = [type]/[jira_number]-[feature_title]` (generic for all repos).
|
|
98
|
+
iii.Confidence Check & Confirm for `[repo_context.name]`:
|
|
99
|
+
- If low-confidence `[feature_title]` (short/generic summary):
|
|
100
|
+
Agent: "`[repo_context.name]`: Proposed branch `[branch_name_proposal]`. OK, or suggest different title part for this repo?"
|
|
101
|
+
- Else (high confidence):
|
|
102
|
+
Agent: "`[repo_context.name]`: Propose branch `[branch_name_proposal]`. Create in this repo?"
|
|
103
|
+
iv. If user confirms (or modifies `[feature_title]` for this repo):
|
|
104
|
+
- Store `[confirmed_branch_name_for_repo_context]`.
|
|
105
|
+
- Proceed to Step 5 for this `[repo_context]`.
|
|
106
|
+
v. If user modifies `[type]` or `[feature_title]` (clarify if `[feature_title]` change is global or per-repo):
|
|
107
|
+
- Agent: "`[repo_context.name]` (and others?): Preferred `[type]` and `[title_part]`?"
|
|
108
|
+
- Update `[type]` / `[feature_title]`. Recalculate `[branch_name_proposal]`.
|
|
109
|
+
- Agent: "New proposal: `[branch_name_proposal]`. Create in `[repo_context.name]`?"
|
|
110
|
+
- If confirmed, store and proceed to Step 5.
|
|
111
|
+
vi. If user declines branch creation for `[repo_context.name]`:
|
|
112
|
+
- Agent: "OK, no branch in `[repo_context.name]` for now."
|
|
113
|
+
- Mark `[repo_context]` 'branch_creation_declined'.
|
|
114
|
+
- If last `[repo_context]` & no branches handled: Conclude or offer solution planning without branches. If some handled, Step 6. Else, next `[repo_context]`.
|
|
115
|
+
|
|
116
|
+
5. **For each `[repo_context]` (Create Branch, if confirmed):**
|
|
117
|
+
a. Agent: "`[repo_context.name]`: Creating `[confirmed_branch_name_for_repo_context]`..."
|
|
118
|
+
b. `git checkout -b [confirmed_branch_name_for_repo_context]` (in `[repo_context.path]`).
|
|
119
|
+
c. Agent: "Branch `[confirmed_branch_name_for_repo_context]` created & active in `[repo_context.name]`."
|
|
120
|
+
d. Mark `[repo_context]` 'branch_created'.
|
|
121
|
+
e. If last `[repo_context]` needing creation & all processed: Step 6. Else, loop for Step 4/5 continues.
|
|
122
|
+
|
|
123
|
+
6. **Gather Knowledge Base Info (For each `[repo_context]` with active branch):**
|
|
124
|
+
a. Agent: "Checking for knowledge base files (`.knowledge/index.md` per [Knowledge Base Management](../knowledge-base-management.md)) in repos with new/selected branches."
|
|
125
|
+
b. For each `[repo_context]` with active ticket branch:
|
|
126
|
+
i. Agent: "Checking knowledge base in `[repo_context.name]` (`[repo_context.path]`)."
|
|
127
|
+
ii. `list_files` in `[repo_context.path]` (non-recursive) for `.knowledge/index.md`.
|
|
128
|
+
iii.If found:
|
|
129
|
+
- Agent: "`[repo_context.name]`: Found `[list_of_found_items]`. Reading for solution plan."
|
|
130
|
+
- `read_file` for each. Store/summarize as `[knowledge_base_info_for_repo_context]`.
|
|
131
|
+
iv. Else:
|
|
132
|
+
- Agent: "`[repo_context.name]`: No standard knowledge base files found. Proceeding with ticket/code."
|
|
133
|
+
c. Agent: "Knowledge base review complete."
|
|
134
|
+
|
|
135
|
+
7. **Plan Solution (after all repo branches & knowledge bases handled):**
|
|
136
|
+
a. Agent: "Ticket details, branch(es), and knowledge base info gathered. Let's plan solution."
|
|
137
|
+
b. Plan solution using ticket requirements (Step 2) & `[knowledge_base_info_for_repo_context]` for all relevant repos.
|
|
138
|
+
c. Present plan to user for review and confirmation.
|
|
139
|
+
|
|
140
|
+
8. **Implement Solution:**
|
|
141
|
+
a. Upon user confirmation of the solution plan:
|
|
142
|
+
i. Agent: "Plan confirmed. I will now proceed with the implementation."
|
|
143
|
+
ii. (Agent executes the planned implementation steps. This phase involves actual coding, configuration changes, etc., based on the agreed plan.)
|
|
144
|
+
iii. Agent: "Implementation based on the plan is complete."
|
|
145
|
+
|
|
146
|
+
9. **Post-Implementation Knowledge Base Update:**
|
|
147
|
+
a. Agent: "Now that the implementation is complete, I will check if the Knowledge Base needs to be updated to reflect the changes made, as per [`./dev-guidelines/knowledge-base.md#54-end-of-task-review`](./dev-guidelines/knowledge-base.md#5.4.-End-of-Task-Review)."
|
|
148
|
+
b. If a KB exists in any `[repo_context]` where changes were made:
|
|
149
|
+
i. Agent reviews the changes and determines if KB updates are necessary.
|
|
150
|
+
ii. If updates are needed: Agent performs the KB updates.
|
|
151
|
+
iii. Agent: "Knowledge Base update check complete. [Details of any updates made, or 'No updates were necessary']."
|
|
152
|
+
|
|
153
|
+
10. **Offer Pull Request Generation:**
|
|
154
|
+
a. Agent: "The implementation and KB updates (if any) are complete. Would you like me to generate a Pull Request for these changes? I will use the process outlined in [Pull Request Generation](./pull-request-generation.md)."
|
|
155
|
+
b. If user confirms 'yes': Initiate the PR generation workflow.
|
|
156
|
+
c. If user confirms 'no': Agent: "Okay, I will not generate a PR at this time. The task is complete."
|
|
157
|
+
|
|
158
|
+
11. **Restore Stashed Changes (if applicable):**
|
|
159
|
+
a. If stash was created in Step 4a:
|
|
160
|
+
i. Agent: "Would you like me to restore your previously stashed changes?"
|
|
161
|
+
ii. If user confirms 'yes':
|
|
162
|
+
- `git stash pop` (in each `[repo_context.path]` where stash was created).
|
|
163
|
+
- Report any conflicts if they occur.
|
|
164
|
+
iii. If user confirms 'no': Agent: "Stashed changes preserved. You can restore them later with 'git stash pop'."
|
|
165
|
+
|
|
166
|
+
## Agent Behavior Guidelines
|
|
167
|
+
|
|
168
|
+
- In Code/Architect modes, for new Jira URL + work intent: **Always confirm before branch creation.**
|
|
169
|
+
- Offer to fetch full Jira details (summary, desc, comments, type) early (Step 2) via MCP if available. Use for branch naming & solution planning. Allow manual provision if MCP unavailable/user prefers.
|
|
170
|
+
- Before new branch (Step 4), check existing local branches for ticket (Step 3b). Offer to use if found/appropriate.
|
|
171
|
+
- If creating new branch: Propose name. If low confidence (generic summary), ask user to confirm/modify. Else, state intent & ask for confirmation.
|
|
172
|
+
- Accommodate user requests to skip detail fetching or provide manually.
|
|
173
|
+
- If user declines branch creation, respect decision & conclude that part.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Jira Ticket Template 與開票注意事項
|
|
2
|
+
|
|
3
|
+
*Last Updated: 2025-10-16*
|
|
4
|
+
|
|
5
|
+
## Reference
|
|
6
|
+
|
|
7
|
+
[Jira Convention for BIAS](https://docs.google.com/presentation/d/1hPoDi6MaLyw89Op9p9x879R3KWFIAMK8kld9-cEpUS4/edit?usp=sharing)
|
|
8
|
+
|
|
9
|
+
## 前言
|
|
10
|
+
|
|
11
|
+
Ticket 撰寫主要心法:
|
|
12
|
+
|
|
13
|
+
- 簡單、明確、項目夠小的任務;可被明確定義的任務與交付標準
|
|
14
|
+
- 不摻雜多個工作項目在一張 ticket 內
|
|
15
|
+
- 內容的精細度可設定成讓自己過兩三個月、或是忘了,回來看都可以看懂
|
|
16
|
+
- Story 主 ticket 開出來後,若 RD 主要功能完成就可以把主 ticket 先收掉;demo meeting 或是開發過程中有「瑣碎的」、「未完成的」、「需要優化的」,可以另開 ticket 追蹤
|
|
17
|
+
|
|
18
|
+
## Ticket 標題設計
|
|
19
|
+
|
|
20
|
+
- 以中括號 `[]` 開頭,可填入 `UI`、`Native`、`DSP`,或其他特殊項目,並使用 ` / ` 分開(前後可以加空格,讓文字不要太擠)
|
|
21
|
+
- 清楚描述要完成的 Story 或是遭遇到的 Bug
|
|
22
|
+
- 因為 ticket 標題會直接被收錄在每一版的 Release Note,所以可以用如何在 Release Note 上清楚表達被完成的項目來思考標題的寫法
|
|
23
|
+
|
|
24
|
+
### 標題範例
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
// Bug 範例
|
|
28
|
+
[Native / DSP] 當讀取來自於 AI 功能的 Preset 為 Dual Path 格式其音量會異常大聲
|
|
29
|
+
|
|
30
|
+
// Story 範例
|
|
31
|
+
[UI] 優化 IO Slider,使其 +-12 dB 間可以透過 0.1dB 單位調整數值
|
|
32
|
+
[UI / Native] 4 顆音箱整合(音箱新增: Supra Sonic, Crunchy Grid, Aggressive Grid, Tangerine AD)
|
|
33
|
+
|
|
34
|
+
// Story/Developer 範例
|
|
35
|
+
[Native / UI] Frontend 資源、Gear 清單、Preset 清單等 Resources 放到系統資料夾共用
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Ticket 標題清楚的情況下,在 Release Note 看起來是這樣:
|
|
39
|
+
|
|
40
|
+

|
|
41
|
+
|
|
42
|
+
## 內容撰寫常見規則(必讀)
|
|
43
|
+
|
|
44
|
+
- 請正確選擇 Ticket 類型,例如,Story、Bug、Developer,此時會出現 Template,請根據 Template 填入(不夠的項目可以再補上)
|
|
45
|
+
- 如果 Story 有 UI 的或是如果 Bug 的 flow 較複雜,請附上 Figma 連結或是錄製截圖、影片以供參考
|
|
46
|
+
- Story 請把需求條列清楚,有必要請加上截圖或影片輔助,甚至可以補上參考項目/競品
|
|
47
|
+
- 內容如果跟自己領域不直接相關,需要請其他 team 協助,可以在 Slack 上先互相溝通,並把內容補齊再給 Scrum Master 確認
|
|
48
|
+
- 需求若有明確 deadline 或開發時程,請一併附在描述內
|
|
49
|
+
- 任何 ticket 不論是狀態改變或是內容修改,都請明確描述理由(請想成三個月後回來看,也看得懂的描述程度),例如把討論過程與結論附上,或是 tag 相關人士,並說明 ticket 狀態或是交付 action item
|
|
50
|
+
- **請不要貼 Slack 對話連結**,如果真的很重要,請節錄對話內容,用引言方式放到回覆上或是描述上
|
|
51
|
+
- 待確認問題請勿寫在描述上,請透過回覆或是引言,並 tag 相關人士回答
|
|
52
|
+
|
|
53
|
+
### 描述範例
|
|
54
|
+
|
|
55
|
+
描述寫清楚需求即可:
|
|
56
|
+
|
|
57
|
+

|
|
58
|
+
|
|
59
|
+
問題透過回覆並 tag 相關人士來詢問:
|
|
60
|
+
|
|
61
|
+

|
|
62
|
+
|
|
63
|
+
## Ticket 狀態
|
|
64
|
+
|
|
65
|
+
### for Refinement
|
|
66
|
+
|
|
67
|
+
- Ticket 一開出來會先是 `to be refined`,待完成 refine 後,可將狀態轉至 `refined`
|
|
68
|
+
- `refined` 的 ticket,統一在 refinement meeting 討論,確認可以進開發則會轉成 `todo`
|
|
69
|
+
|
|
70
|
+
### for Development
|
|
71
|
+
|
|
72
|
+
- Ticket 一開始狀態會是 `todo`,開始開發後,可將狀態轉成 `in process`
|
|
73
|
+
- 完成的 ticket 如果是在 run sprint 過程中的 ticket,可轉至 `done`;若不在 sprint 中的 ticket,例如,bug 或是 support ticket,可轉成 `to be verified`,將會自動轉給 QA 驗證
|
|
74
|
+
|
|
75
|
+
### for QA
|
|
76
|
+
|
|
77
|
+
- Ticket 一開始狀態會是 `to be verified`,待驗證後,會轉至 `verified`
|
|
78
|
+
|
|
79
|
+
### for Tracking
|
|
80
|
+
|
|
81
|
+
- Ticket 項目若 RD 無法被修正或是不支援,甚至是 PM 更改規格決定不做,可將 ticket 狀態設定成 `will not be fixed`
|
|
82
|
+
|
|
83
|
+
## 回覆、留言、討論
|
|
84
|
+
|
|
85
|
+
### 格式建議
|
|
86
|
+
|
|
87
|
+
- 請寫清楚 action item 或 summary;若是提問請盡量條列,並 tag 需要協助釐清的對象,致使其回覆
|
|
88
|
+
- 善用引言回覆(快捷鍵 Command + Shift + 9),將有問題的部分引言出來,再進行回覆
|
|
89
|
+
|
|
90
|
+
### 引言回覆範例
|
|
91
|
+
|
|
92
|
+

|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 相關資源
|
|
97
|
+
|
|
98
|
+
- [Jira Process (自動化流程)](./jira-process.md) - Agent 自動處理 Jira ticket 的工作流程
|
|
99
|
+
- [Git Commit Guidelines](./git-commit.md) - Git commit 訊息格式規範
|
|
100
|
+
- [Code Review Process](./code-review.md) - Code review 流程與檢查清單
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
**Maintained by**: Desktop Team
|
|
105
|
+
**Contact**: Scrum Master for Jira process questions
|