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.
Files changed (151) hide show
  1. package/README.md +89 -0
  2. package/content/docs/README.md +227 -0
  3. package/content/docs/index.md +352 -0
  4. package/content/docs/instructions/coding-conventions/.clang-format +65 -0
  5. package/content/docs/instructions/coding-conventions/cpp.md +132 -0
  6. package/content/docs/instructions/coding-conventions/frontend.md +612 -0
  7. package/content/docs/instructions/coding-conventions/team-wide.md +176 -0
  8. package/content/docs/instructions/workflows/assets/jira-1.png +0 -0
  9. package/content/docs/instructions/workflows/assets/jira-comment.png +0 -0
  10. package/content/docs/instructions/workflows/assets/jira-release-note.png +0 -0
  11. package/content/docs/instructions/workflows/assets/jira-tag.png +0 -0
  12. package/content/docs/instructions/workflows/code-review.md +451 -0
  13. package/content/docs/instructions/workflows/git-branch-convention.md +246 -0
  14. package/content/docs/instructions/workflows/git-commit.md +95 -0
  15. package/content/docs/instructions/workflows/jira-process.md +173 -0
  16. package/content/docs/instructions/workflows/jira-ticket-guide.md +105 -0
  17. package/content/docs/instructions/workflows/pull-request-generation.md +319 -0
  18. package/content/docs/instructions/workflows/scrum-process.md +104 -0
  19. package/content/docs/instructions/workflows/survey-project-setup.md +76 -0
  20. package/content/docs/knowledge/architecture/README.md +11 -0
  21. package/content/docs/knowledge/architecture/audio-plugin-architecture.md +213 -0
  22. package/content/docs/knowledge/architecture/cross-platform-design.md +176 -0
  23. package/content/docs/knowledge/architecture/frontend-native-bridge.md +193 -0
  24. package/content/docs/knowledge/architecture/native-command.md +189 -0
  25. package/content/docs/knowledge/architecture/state-management-architecture.md +105 -0
  26. package/content/docs/knowledge/component-library/ControlComponent/README.md +281 -0
  27. package/content/docs/knowledge/component-library/ControlComponent/accessibility/accessibility-implementation.md +503 -0
  28. package/content/docs/knowledge/component-library/ControlComponent/common-mechanisms.md +278 -0
  29. package/content/docs/knowledge/component-library/ControlComponent/core/error-handling.md +451 -0
  30. package/content/docs/knowledge/component-library/ControlComponent/core/native-interface.md +515 -0
  31. package/content/docs/knowledge/component-library/ControlComponent/core/state-management.md +509 -0
  32. package/content/docs/knowledge/component-library/ControlComponent/creating-new-controls.md +654 -0
  33. package/content/docs/knowledge/component-library/ControlComponent/design/api-design-reference.md +1142 -0
  34. package/content/docs/knowledge/component-library/ControlComponent/design/design-principles.md +336 -0
  35. package/content/docs/knowledge/component-library/ControlComponent/design/styling-architecture.md +595 -0
  36. package/content/docs/knowledge/component-library/ControlComponent/design/visual-feedback.md +456 -0
  37. package/content/docs/knowledge/component-library/ControlComponent/development-environment.md +213 -0
  38. package/content/docs/knowledge/component-library/ControlComponent/interaction/gesture-algorithms.md +705 -0
  39. package/content/docs/knowledge/component-library/ControlComponent/interaction/touch-support.md +525 -0
  40. package/content/docs/knowledge/component-library/ControlComponent/interaction/value-processing-patterns.md +801 -0
  41. package/content/docs/knowledge/component-library/ControlComponent/interaction/velocity-damping-systems.md +741 -0
  42. package/content/docs/knowledge/component-library/ControlComponent/knob/architecture.md +490 -0
  43. package/content/docs/knowledge/component-library/ControlComponent/knob/how-to-use.md +304 -0
  44. package/content/docs/knowledge/component-library/ControlComponent/knob/index.md +105 -0
  45. package/content/docs/knowledge/component-library/ControlComponent/optimization/performance-benchmarks.md +535 -0
  46. package/content/docs/knowledge/component-library/ControlComponent/optimization/performance-optimization.md +1092 -0
  47. package/content/docs/knowledge/component-library/ControlComponent/quick-start.md +345 -0
  48. package/content/docs/knowledge/component-library/ControlComponent/slider/architecture.md +444 -0
  49. package/content/docs/knowledge/component-library/ControlComponent/slider/how-to-use.md +470 -0
  50. package/content/docs/knowledge/component-library/ControlComponent/slider/index.md +107 -0
  51. package/content/docs/knowledge/component-library/ControlComponent/testing-guide.md +950 -0
  52. package/content/docs/knowledge/component-library/ControlComponent/troubleshooting.md +657 -0
  53. package/content/docs/knowledge/component-library/frontend-develop/LICENSE.txt +176 -0
  54. package/content/docs/knowledge/component-library/frontend-develop/SKILL.md +124 -0
  55. package/content/docs/knowledge/component-library/frontend-develop/references/code-organization.md +620 -0
  56. package/content/docs/knowledge/component-library/frontend-develop/references/coding-standards.md +275 -0
  57. package/content/docs/knowledge/component-library/frontend-develop/references/component-reusability.md +559 -0
  58. package/content/docs/knowledge/component-library/frontend-develop/references/examples.md +554 -0
  59. package/content/docs/knowledge/component-library/frontend-develop/references/layout-separation.md +638 -0
  60. package/content/docs/knowledge/component-library/frontend-develop/references/performance-optimization.md +678 -0
  61. package/content/docs/knowledge/component-library/frontend-develop/references/state-management.md +331 -0
  62. package/content/docs/knowledge/component-library/frontend-develop/references/styling-guidelines.md +349 -0
  63. package/content/docs/knowledge/component-library/frontend-develop/references/type-safety.md +493 -0
  64. package/content/docs/knowledge/development/assets/cyberduck-aws-credentials.png +0 -0
  65. package/content/docs/knowledge/development/assets/postman-environment-setup.png +0 -0
  66. package/content/docs/knowledge/development/aws-storage.md +95 -0
  67. package/content/docs/knowledge/development/crm-system.md +22 -0
  68. package/content/docs/knowledge/development/glossary.md +246 -0
  69. package/content/docs/knowledge/development/pg-api-guide.md +71 -0
  70. package/content/docs/knowledge/development/staging-license-management.md +44 -0
  71. package/content/docs/knowledge/development/tech-stack.md +240 -0
  72. package/content/docs/knowledge/domain/popup-system.md +106 -0
  73. package/content/docs/knowledge/domain/sigpath.md +264 -0
  74. package/content/docs/knowledge/environment-setup/aax-signing-update.md +149 -0
  75. package/content/docs/knowledge/environment-setup/assets/aax-1.png +0 -0
  76. package/content/docs/knowledge/environment-setup/assets/aax-2.png +0 -0
  77. package/content/docs/knowledge/environment-setup/assets/aax-3.png +0 -0
  78. package/content/docs/knowledge/environment-setup/assets/aax-4.png +0 -0
  79. package/content/docs/knowledge/environment-setup/assets/aax-5.png +0 -0
  80. package/content/docs/knowledge/environment-setup/assets/aax-6.png +0 -0
  81. package/content/docs/knowledge/environment-setup/assets/aax-7.png +0 -0
  82. package/content/docs/knowledge/environment-setup/assets/buildmachine-1.png +0 -0
  83. package/content/docs/knowledge/environment-setup/assets/buildmachine-10.png +0 -0
  84. package/content/docs/knowledge/environment-setup/assets/buildmachine-11.png +0 -0
  85. package/content/docs/knowledge/environment-setup/assets/buildmachine-12.png +0 -0
  86. package/content/docs/knowledge/environment-setup/assets/buildmachine-13.png +0 -0
  87. package/content/docs/knowledge/environment-setup/assets/buildmachine-14.png +0 -0
  88. package/content/docs/knowledge/environment-setup/assets/buildmachine-2.png +0 -0
  89. package/content/docs/knowledge/environment-setup/assets/buildmachine-3.png +0 -0
  90. package/content/docs/knowledge/environment-setup/assets/buildmachine-4.png +0 -0
  91. package/content/docs/knowledge/environment-setup/assets/buildmachine-5.png +0 -0
  92. package/content/docs/knowledge/environment-setup/assets/buildmachine-6.png +0 -0
  93. package/content/docs/knowledge/environment-setup/assets/buildmachine-7.png +0 -0
  94. package/content/docs/knowledge/environment-setup/assets/buildmachine-8.png +0 -0
  95. package/content/docs/knowledge/environment-setup/assets/buildmachine-9.png +0 -0
  96. package/content/docs/knowledge/environment-setup/build-machine-setup.md +224 -0
  97. package/content/docs/knowledge/environment-setup/build-machine-troubleshooting.md +193 -0
  98. package/content/docs/knowledge/implementation-guides/adding-amp.md +190 -0
  99. package/content/docs/knowledge/implementation-guides/adding-fx.md +111 -0
  100. package/content/docs/knowledge/implementation-guides/cab-integration.md +194 -0
  101. package/content/docs/knowledge/implementation-guides/custom-pedal-integration.md +309 -0
  102. package/content/docs/knowledge/projects/BIAS_ONE_GUI/README.md +17 -0
  103. package/content/manifest.json +122 -0
  104. package/content/rules/cpp.mdc +135 -0
  105. package/content/rules/frontend.mdc +615 -0
  106. package/content/rules/index.mdc +256 -0
  107. package/content/rules/knowledge.mdc +46 -0
  108. package/content/rules/team-wide.mdc +179 -0
  109. package/content/rules/workflows.mdc +43 -0
  110. package/content/tools/agents/context-compressor.md +357 -0
  111. package/content/tools/agents/context-writer.md +328 -0
  112. package/content/tools/agents/release-notes-generator.md +389 -0
  113. package/content/tools/agents/srs-writer-agent.md +63 -0
  114. package/content/tools/mcp/README.md +25 -0
  115. package/content/tools/mcp/mcp-desktop-team.example.json +13 -0
  116. package/content/tools/skills/frontend-develop/LICENSE.txt +176 -0
  117. package/content/tools/skills/frontend-develop/SKILL.md +124 -0
  118. package/content/tools/skills/frontend-develop/references/code-organization.md +620 -0
  119. package/content/tools/skills/frontend-develop/references/coding-standards.md +275 -0
  120. package/content/tools/skills/frontend-develop/references/component-reusability.md +559 -0
  121. package/content/tools/skills/frontend-develop/references/examples.md +554 -0
  122. package/content/tools/skills/frontend-develop/references/layout-separation.md +638 -0
  123. package/content/tools/skills/frontend-develop/references/performance-optimization.md +678 -0
  124. package/content/tools/skills/frontend-develop/references/state-management.md +331 -0
  125. package/content/tools/skills/frontend-develop/references/styling-guidelines.md +349 -0
  126. package/content/tools/skills/frontend-develop/references/type-safety.md +493 -0
  127. package/content/tools/slash-commands/commit.md +17 -0
  128. package/content/tools/slash-commands/context-compress.md +149 -0
  129. package/content/tools/slash-commands/context-write.md +92 -0
  130. package/content/tools/slash-commands/jira.md +12 -0
  131. package/content/tools/slash-commands/pr-gen.md +12 -0
  132. package/content/tools/slash-commands/pr-review.md +12 -0
  133. package/dist/commands/detect.d.ts +1 -0
  134. package/dist/commands/detect.js +33 -0
  135. package/dist/commands/install.d.ts +1 -0
  136. package/dist/commands/install.js +100 -0
  137. package/dist/commands/uninstall.d.ts +1 -0
  138. package/dist/commands/uninstall.js +132 -0
  139. package/dist/index.d.ts +2 -0
  140. package/dist/index.js +53 -0
  141. package/dist/lib/detect-env.d.ts +3 -0
  142. package/dist/lib/detect-env.js +52 -0
  143. package/dist/lib/prompt-env.d.ts +3 -0
  144. package/dist/lib/prompt-env.js +16 -0
  145. package/dist/lib/resolve-doc-repo.d.ts +14 -0
  146. package/dist/lib/resolve-doc-repo.js +61 -0
  147. package/dist/lib/symlink.d.ts +7 -0
  148. package/dist/lib/symlink.js +60 -0
  149. package/dist/lib/sync-from-manifest.d.ts +8 -0
  150. package/dist/lib/sync-from-manifest.js +64 -0
  151. 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
+ ![Release Note 範例](assets/jira-release-note.png)
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
+ ![Ticket 描述範例](assets/jira-1.png)
58
+
59
+ 問題透過回覆並 tag 相關人士來詢問:
60
+
61
+ ![Tag 相關人士範例](assets/jira-tag.png)
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
+ ![引言回覆範例](assets/jira-comment.png)
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