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,319 @@
1
+ # GitHub Pull Request Generator
2
+
3
+ Last Updated: 2025-10-16
4
+
5
+ ## Agent Objective
6
+
7
+ Generate a GitHub Pull Request (PR) title and description. Gather information primarily via git commands and JIRA integration. Minimize user input to confirmation or essential clarifications. Optionally, use GitHub CLI (`gh`) to create the PR.
8
+
9
+ ## Context Variables
10
+
11
+ - `source_branch`: Current git branch. Confirm with user if unavailable.
12
+ - `destination_branch`: Default "main". Confirm with user if ambiguous.
13
+ - `jira_tickets_input`: JIRA ticket string (e.g., "BFD-1234", "BFD-567, BFD-778") from conversation. Confirm if ambiguous.
14
+ - `jira_data`: Structured data from JIRA (titles, descriptions, types, comments).
15
+ - `commit_messages`: Commit messages from `source_branch` not in `destination_branch`.
16
+ - `diff_summary`: Git diff between `destination_branch` and `source_branch`.
17
+ - `remote_repo_url`: URL of the git remote origin.
18
+ - `repo_owner_and_name`: GitHub repository identifier (from `remote_repo_url`, e.g., "positivegrid/desktop").
19
+ - `pr_type`: Inferred/confirmed (Feature, Bugfix, Refactor, Chore).
20
+ - `pr_title_draft`: Generated PR title.
21
+ - `pr_description_draft`: Generated PR description.
22
+
23
+ ## Workflow
24
+
25
+ ### 1. Determine Target Repositories and Scope
26
+
27
+ - Identify `[target_repository_names]` from user request.
28
+ - If not possible, Agent: "Which repository/repositories for this PR? Options:
29
+ 1. Main (e.g., BIAS_ONE)
30
+ 2. Submodule (e.g., BIAS_ONE_GUI)
31
+ 3. Multiple (list them, e.g., 'BIAS_ONE, BIAS_ONE_GUI')"
32
+ - For each `[repo_name]` in `[target_repository_names]`:
33
+ - Determine/confirm `[local_path_for_repo_name]` (e.g., from `.gitmodules` for submodules, or current context for main repo) and `[repo_owner_and_name_for_repo]` (e.g., by parsing output of `git config --get remote.origin.url` executed in `[local_path_for_repo_name]`). If values remain unknown or ambiguous, use pre-configuration or ask the user.
34
+ - Store as a list of `[repository_contexts]`, each with `name`, `local_path`, `repo_owner_and_name`.
35
+ - Agent: "Generating PR details for: `[comma_separated_list_of_repo_names]`."
36
+ - JIRA Ticket Input:
37
+ 1. Deduce `jira_tickets_input` from conversation.
38
+ 2. If not possible, deduce from current git branch name (`git rev-parse --abbrev-ref HEAD`).
39
+ 3. If still ambiguous, use 'JIRA Ticket Query'.
40
+ - JIRA Ticket Query (if needed): "JIRA ticket(s) for PR? (e.g., BFD-1234, comma-separate, or 'none')."
41
+ - Perform subsequent steps for each `[repo_context]`. Indicate current repository. Manage multiple PR drafts distinctly.
42
+
43
+ ### 2. Global JIRA Data Retrieval (Conditional - Done Once)
44
+
45
+ - If `jira_tickets_input` is not "none" (and not already fetched):
46
+ - Agent: "Fetching JIRA details for: `[jira_tickets_input]`."
47
+ - Use JIRA MCP to fetch title, description/summary, type, comments, URL(s) for `jira_tickets_input`. Store as global `jira_data`.
48
+ - If JIRA MCP fails/unavailable: Prompt: "JIRA tool failed. Paste title(s) and summary/description for `{{jira_tickets_input}}`." Update `jira_data`.
49
+ - Else if `jira_data` already populated:
50
+ - Agent: "Using existing JIRA data for `[jira_tickets_input]`."
51
+
52
+ ### 3. For Each Repository Context (Gather Repository-Specific Information)
53
+
54
+ - Agent: "Repository: `[repo_context.name]` (path: `[repo_context.path]`)."
55
+ - Get `source_branch_for_repo`: `git rev-parse --abbrev-ref HEAD` (in `[repo_context.path]`).
56
+ - Get `remote_repo_url_for_repo`: `git config --get remote.origin.url` (in `[repo_context.path]`).
57
+ - (Note: `repo_owner_and_name` for this repo is in `[repo_context.repo_owner_and_name]`).
58
+ - Set `destination_branch_for_repo` (default "main"). If `jira_data` implies specific target for this repo type (e.g., hotfix branch), use it. Else, confirm: "Target branch for `[repo_context.name]` is `{{destination_branch_for_repo}}`? (y/n/custom_branch)". Update if custom.
59
+ - Get `commit_messages_for_repo` & `diff_summary_for_repo`: `git show {{destination_branch_for_repo}}..{{source_branch_for_repo}}` (in `[repo_context.path]`).
60
+
61
+ ### 4. For Each Repository Context (Infer PR Type)
62
+
63
+ - Infer `pr_type_for_repo` from:
64
+ - `source_branch_for_repo` name patterns (e.g., `feature/`, `bugfix/`, `fix/`, `chore/`, `refactor/`).
65
+ - JIRA ticket type(s) from global `jira_data`.
66
+ - Keywords in `commit_messages_for_repo`.
67
+ - Wording Choices: Feature, Bugfix, Refactor, Chore
68
+ - Priority: 1. Branch name, 2. JIRA type, 3. Commits.
69
+ - Default to "Chore" or "Refactor" if unclear. If low confidence, confirm: "For `[repo_context.name]`, PR type `{{inferred_pr_type_for_repo}}`? Confirm or suggest (Feature, Bugfix, Refactor, Chore)." Update `pr_type_for_repo`.
70
+
71
+ ### 5. For Each Repository Context (Code and Commit Review)
72
+
73
+ - Agent: "Reviewing code/commits for `[repo_context.name]`."
74
+ - Analyze `diff_summary_for_repo` and `commit_messages_for_repo`. Consult codebase in `[repo_context.path]` with `diff_summary_for_repo` if needed. Verify:
75
+ - **Task Completion**: All tasks/issues from `jira_data` (if relevant to this repo) addressed?
76
+ - **Wording Quality**: Typos/grammar in `diff_summary_for_repo` (comments) and `commit_messages_for_repo`?
77
+ - **Commit Clarity**: `commit_messages_for_repo` clear and accurate? Follow team convention `<type> BFD-<issue-number>: <subject>`?
78
+ - **Guideline Adherence**: Changes in `diff_summary_for_repo` meet coding standards and team conventions?
79
+ - **Code Integrity**: Critical errors in `diff_summary_for_repo`?
80
+ - **Knowledge Base Consistency**: If a Knowledge Base (KB) exists in `[repo_context.path]/.knowledge/` or documented patterns, verify if the `diff_summary_for_repo` includes corresponding KB updates that accurately reflect the code changes. If changes were made that should be documented but no KB updates are present, or if KB updates seem incomplete/incorrect, note this as an issue.
81
+ - Report: List identified issues for `[repo_context.name]`.
82
+ - If issues for `[repo_context.name]`: Prompt user: proceed or request fixes? If fixes requested, repeat review for this repo after user confirms.
83
+
84
+ ### 6. For Each Repository Context (Draft PR Title)
85
+
86
+ - Agent: "Drafting title for `[repo_context.name]`."
87
+ - `summary_for_title_for_repo`: Synthesize from `commit_messages_for_repo` and `diff_summary_for_repo` (primary), `jira_data` titles (secondary). Capitalize first letter.
88
+ - If `jira_tickets_input` is not "none" and global `jira_data` contains ticket numbers:
89
+ - Format `jira_data.numbers` (e.g., keep as `BFD-XXXX`). Store as `processed_formatted_ticket_numbers` (global, once).
90
+ - `pr_title_draft_for_repo` = "`{{pr_type_for_repo}}/{{processed_formatted_ticket_numbers}}: {{summary_for_title_for_repo}}`"
91
+ - Example: `Feature/BFD-123: Add user authentication`
92
+ - Else (no JIRA tickets):
93
+ - `pr_title_draft_for_repo` = "`{{pr_type_for_repo}}: {{summary_for_title_for_repo}}`"
94
+ - Store `pr_title_draft_for_repo` for `[repo_context.name]`.
95
+
96
+ ### 7. For Each Repository Context (Draft PR Description)
97
+
98
+ - Agent: "Drafting description for `[repo_context.name]`."
99
+ - Initialize `pr_description_draft_for_repo`.
100
+
101
+ #### Required Sections
102
+
103
+ **`## Requirement`**
104
+
105
+ - If `jira_tickets_input` is not "none" and global `jira_data` available:
106
+ - For each ticket in `jira_data`: Append `- [{{ticket.title_or_user_summary}}]({{ticket.url}})`. Use bullets if multiple. (Section identical for PRs with same JIRA tickets).
107
+ - Else (no JIRA tickets or `jira_data` unavailable):
108
+ - Synthesize 1-sentence requirement from `commit_messages_for_repo` or `diff_summary_for_repo`. Append.
109
+
110
+ **`## Root Cause` (Bugfix only)**
111
+
112
+ - If `pr_type_for_repo` is `Bugfix`:
113
+ - Analyze `jira_data.description` or prompt (once globally for `{{jira_tickets_input}}`, if unclear from JIRA): "Root cause for `{{jira_tickets_input}}` (if known)?" Append.
114
+
115
+ **`## How to Fix` (Bugfix only) / `## How to Implement` (Other types)**
116
+
117
+ - If `pr_type_for_repo` is `Bugfix`:
118
+ - `## How to Fix`: Summarize changes from `commit_messages_for_repo`, `diff_summary_for_repo` (bullet points, focus on solutions). Append.
119
+ - Else (Feature, Refactor, Chore etc.):
120
+ - `## How to Implement`: Summarize changes from `commit_messages_for_repo`, `diff_summary_for_repo` (bullet points). Append.
121
+
122
+ **`## How to Verify`**
123
+
124
+ - Analyze global `jira_data` for acceptance criteria.
125
+ - If none, derive from `commit_messages_for_repo` (e.g., "Verify X works per commit Y for `[repo_context.name]`").
126
+ - If unclear, prompt: "Verification steps for `[repo_context.name]`?" Append (bullet points).
127
+
128
+ #### Optional Sections
129
+
130
+ **`## Related PRs` (Conditional)**
131
+
132
+ - Note if other PRs are being generated in this session.
133
+ - Prompt user (once globally, e.g., during first repo's description or after all drafts): "Any *external* related PR links (not ones being generated now)? (Full URLs, comma-separated, or 'none')." If links provided, append to all relevant PR descriptions.
134
+
135
+ **`## Others (Known Issues, References, Notes)` (Conditional)**
136
+
137
+ - Prompt user for `[repo_context.name]`: "Other notes (known issues, references)? ('none' if empty)." If content provided, append. Else, omit section entirely.
138
+
139
+ Store `pr_description_draft_for_repo` for `[repo_context.name]`.
140
+
141
+ ### 8. For Each Repository Context (Review, Confirmation, and PR Creation)
142
+
143
+ - Agent: "Review PR Draft for `[repo_context.name]`:"
144
+ - Present `pr_title_draft_for_repo` and `pr_description_draft_for_repo`:
145
+
146
+ ```
147
+ PR Draft for [repo_context.name]:
148
+ Title: {{pr_title_draft_for_repo}}
149
+ Description:
150
+ {{pr_description_draft_for_repo}}
151
+
152
+ Confirm to create PR, or specify modifications (e.g., 'Change title to X', 'Add Y to How to Verify').
153
+ ```
154
+
155
+ - If modifications: Update draft for this repo, re-present. Loop until confirmed.
156
+ - Upon Confirmation for `[repo_context.name]`:
157
+ - Agent: "Creating PR for `[repo_context.name]`."
158
+ - Use GitHub CLI (`gh`):
159
+ - Command: `gh pr create --repo {{repo_owner_and_name}} --base {{destination_branch_for_repo}} --head {{source_branch_for_repo}} --title "{{pr_title_for_repo}}" --body "{{pr_description_for_repo}}"`
160
+ - Optional flags:
161
+ - `--assignee @me` (assign PR to current user)
162
+ - `--label bug` or `--label enhancement` (based on PR type)
163
+ - `--draft` (if PR is work in progress)
164
+ - If GitHub CLI success: Report "PR for `[repo_context.name]` created: [Link]". Store link.
165
+ - If GitHub CLI fails: Report "GitHub CLI failed for `[repo_context.name]`: [Error]. Manual PR content provided below."
166
+ - If GitHub CLI unavailable: Report "GitHub CLI not found for `[repo_context.name]`. Use manual PR creation with content below."
167
+ - After all `[repository_contexts]`, proceed to Step 9.
168
+
169
+ ### 9. Post PR Link(s) to JIRA (Conditional & User-Prompted - Done Once After All PRs)
170
+
171
+ - Applies if PR created (CLI or manual info provided) AND `jira_tickets_input` is not 'none'.
172
+ - Store created PR link(s). If multiple PRs for same JIRA ticket, collect all their links.
173
+ - Prompt: "Created PR(s):\n- [Title 1](Link 1)\n- [Title 2](Link 2) (if any)\n\nAdd link(s) as comment to JIRA `{{jira_tickets_input}}`? (y/n)"
174
+ - If user confirms 'y':
175
+ - Construct comment. Single PR: "Related PR: [Title](Link)". Multiple PRs: "Related PRs:\n- Repo1: [Title 1](Link 1)\n- Repo2: [Title 2](Link 2)"
176
+ - For each JIRA ticket in `jira_tickets_input`:
177
+ - Use JIRA MCP (`jira_add_comment`):
178
+ - Parameters: `issue_key` (specific JIRA ticket key), `comment` (constructed string).
179
+ - If JIRA MCP success: Report "PR link(s) added to JIRA `{{issue_key}}`."
180
+ - If JIRA MCP fails/unavailable for `{{issue_key}}`: Report "Failed to add PR link(s) to JIRA `{{issue_key}}`. Add manually."
181
+
182
+ ## PR Content Formatting Rules (Strict)
183
+
184
+ ### General Format
185
+
186
+ - **Output Language**: English
187
+ - **Description**: Informative, brief
188
+ - **Headings**: Use `##` for section names (e.g., `## Requirement`)
189
+ - **Lists**: Use `- ` for bullet points
190
+ - **JIRA Links**: `- [Title](URL)` format
191
+
192
+ ### PR Title Format
193
+
194
+ **With JIRA tickets:**
195
+
196
+ ```
197
+ <Type>/<TICKET1>,<TICKET2>: <Summary>
198
+ ```
199
+
200
+ Example: `Feature/BFD-123: Implement user authentication`
201
+
202
+ **Without JIRA tickets:**
203
+
204
+ ```
205
+ <Type>: <Concise Summary>
206
+ ```
207
+
208
+ Example: `Refactor: Improve error handling in API layer`
209
+
210
+ **Type options:**
211
+
212
+ - `Feature` - New feature implementation
213
+ - `Bugfix` - Bug fix
214
+ - `Refactor` - Code refactoring
215
+ - `Chore` - Maintenance tasks, dependency updates
216
+
217
+ ### PR Description Section Order
218
+
219
+ 1. `## Requirement` (Required)
220
+ 2. `## Root Cause` (Bugfix only)
221
+ 3. `## How to Fix` (Bugfix only) / `## How to Implement` (Other types)
222
+ 4. `## How to Verify` (Required)
223
+ 5. `## Related PRs` (Optional - only if applicable, omit otherwise)
224
+ 6. `## Others (Known Issues, References, Notes)` (Optional - only if applicable, omit otherwise)
225
+
226
+ ### Example PR Description
227
+
228
+ #### For Feature PR
229
+
230
+ ```markdown
231
+ ## Requirement
232
+
233
+ - [BFD-123: Add user authentication system](https://jira.example.com/browse/BFD-123)
234
+
235
+ ## How to Implement
236
+
237
+ - Implemented JWT-based authentication
238
+ - Added login/logout endpoints
239
+ - Created middleware for protected routes
240
+ - Added user session management
241
+
242
+ ## How to Verify
243
+
244
+ - Test login with valid credentials
245
+ - Verify token is stored in session
246
+ - Test protected routes require authentication
247
+ - Test logout clears session
248
+
249
+ ## Related PRs
250
+
251
+ - Frontend implementation: #456
252
+ ```
253
+
254
+ #### For Bugfix PR
255
+
256
+ ```markdown
257
+ ## Requirement
258
+
259
+ - [BFD-456: Fix memory leak in audio processor](https://jira.example.com/browse/BFD-456)
260
+
261
+ ## Root Cause
262
+
263
+ Buffer was not being released after processing, causing memory accumulation over time.
264
+
265
+ ## How to Fix
266
+
267
+ - Added proper buffer cleanup in destructor
268
+ - Implemented RAII pattern with smart pointers
269
+ - Added memory pool for buffer reuse
270
+
271
+ ## How to Verify
272
+
273
+ - Run application for extended period (> 1 hour)
274
+ - Monitor memory usage remains stable
275
+ - Test with various audio file sizes
276
+ - Verify no crashes or performance degradation
277
+ ```
278
+
279
+ ## GitHub CLI Reference
280
+
281
+ Common GitHub CLI commands for PR management:
282
+
283
+ ```bash
284
+ # Create PR
285
+ gh pr create --title "Title" --body "Description"
286
+
287
+ # Create PR with labels and assignee
288
+ gh pr create --title "Title" --body "Description" --label bug --assignee @me
289
+
290
+ # Create draft PR
291
+ gh pr create --title "Title" --body "Description" --draft
292
+
293
+ # View PR status
294
+ gh pr status
295
+
296
+ # List all PRs
297
+ gh pr list
298
+
299
+ # View specific PR
300
+ gh pr view <PR-number>
301
+
302
+ # Update PR
303
+ gh pr edit <PR-number> --title "New Title"
304
+ ```
305
+
306
+ ## Team Conventions Integration
307
+
308
+ This PR generator follows team standards:
309
+
310
+ - **Git Commit Format**: `<type> BFD-<issue-number>: <subject>` (see [git-commit.md](./git-commit.md))
311
+ - **Coding Standards**: Verifies adherence to team conventions (see [../coding-conventions/](../coding-conventions/))
312
+ - **Code Review**: Generated PRs should follow review guidelines (see [code-review.md](./code-review.md))
313
+
314
+ ## Related Resources
315
+
316
+ - [Git Commit Convention](./git-commit.md) - Team commit message format
317
+ - [Code Review Guidelines](./code-review.md) - PR review process
318
+ - [JIRA Process](./jira-process.md) - Ticket workflow integration
319
+ - [Team-wide Coding Conventions](../coding-conventions/team-wide.md) - Coding standards
@@ -0,0 +1,104 @@
1
+ # Desktop Team Scrum 101
2
+
3
+ *Last Updated: 2025-10-16*
4
+
5
+ This document defines the Desktop Team's Scrum workflow, meeting cadences, and agile practices.
6
+
7
+ ## Duration
8
+
9
+ **Biweekly** (兩週一個 Sprint)
10
+
11
+ ---
12
+
13
+ ## Grooming or Refinement Meeting
14
+
15
+ **When**: 第二週,週三下午與週五下午(若沒有需要 Refine 項目,會取消)
16
+
17
+ **Participants**:
18
+ - PO (Product Owner)
19
+ - Scrum Master
20
+ - Development Team
21
+ - Stakeholder
22
+
23
+ **Decision Authority**: 最終決定是 PO
24
+
25
+ ### Reference
26
+
27
+ - [What Is the Difference Between Product Backlog Grooming and Sprint Planning?](https://hygger.io/blog/product-backlog-grooming-vs-sprint-planning/)
28
+
29
+ ---
30
+
31
+ ## Planning Meeting
32
+
33
+ **When**: 第一週,週一早上 09:30,與 Daily Sync 合併
34
+
35
+ **Agenda**:
36
+ - PO 分享最初目標、展示排列過後的 PBI,回答團隊成員問題
37
+ - Just-in-time planning: 把產品 backlog `細分` 成一組工作
38
+
39
+ **Story Point Estimation** (Optional, 目前沒有使用):
40
+ - 使用相對概念
41
+ - 使用費式數列: 1, 2, 3, 5, 8, 13
42
+ - 可以多人蓋牌估算,取平均
43
+
44
+ ---
45
+
46
+ ## Demo Meeting
47
+
48
+ **When**: 第二週,週四下午
49
+
50
+ ### 流程
51
+
52
+ 1. 檢查 Sprint 的 story,看哪些是完成要 demo (PO 平常就要 review 完成狀態)
53
+ 2. 在 demo meeting 當下,grooming story
54
+
55
+ ### Q&A
56
+
57
+ **如何確認有哪些 pull request:**
58
+
59
+ ```bash
60
+ git log --merges <last-release-tag>..HEAD --since="2 weeks ago" --pretty=format:"%<(15)%an%ad%x09%s"
61
+ ```
62
+
63
+ **何時要整理這次 sprint 沒有完成 Story:**
64
+
65
+ 在 Demo Meeting 時,做 Story 的 grooming
66
+
67
+ **沒有做完的 story 要放到哪?**
68
+
69
+ 放回 backlog,grooming 後,在 planning meeting 再討論
70
+
71
+ ---
72
+
73
+ ## Retrospective Meeting
74
+
75
+ **When**: 第二週,週四下午,接在 Demo Meeting 後面
76
+
77
+ **Document**: [Retrospective Doc](https://docs.google.com/spreadsheets/d/16oXGosRvBbPsmdNNkqpLlLBmyv7g3WJevA_Mf9XtJXE/edit?usp=sharing)
78
+
79
+ **Purpose**: ~~讚揚大會~~討論開發流程可優化的部分
80
+
81
+ ---
82
+
83
+ ## Meeting Schedule Summary
84
+
85
+ | Week | Day | Time | Meeting | Participants |
86
+ |------|-----|------|---------|--------------|
87
+ | Week 1 | Monday | 09:30 | Planning Meeting (with Daily Sync) | PO, Scrum Master, Dev Team |
88
+ | Week 2 | Wednesday | Afternoon | Grooming/Refinement (optional) | PO, Scrum Master, Dev Team, Stakeholder |
89
+ | Week 2 | Thursday | Afternoon | Demo Meeting | PO, Scrum Master, Dev Team |
90
+ | Week 2 | Thursday | After Demo | Retrospective Meeting | Scrum Master, Dev Team |
91
+ | Week 2 | Friday | Afternoon | Grooming/Refinement (optional) | PO, Scrum Master, Dev Team, Stakeholder |
92
+
93
+ ---
94
+
95
+ ## Related Documentation
96
+
97
+ - [JIRA Process](./jira-process.md) - JIRA ticket workflow and management
98
+ - [Code Review Process](./code-review.md) - Code review guidelines
99
+ - [Git Commit Convention](./git-commit.md) - Commit message standards
100
+
101
+ ---
102
+
103
+ **Maintained by**: Desktop Team Scrum Master
104
+ **Contact**: Scrum Master for process questions, PO for backlog prioritization
@@ -0,0 +1,76 @@
1
+ # Desktop Team Survey 專案或前期 Repo 建置
2
+
3
+ *Last Updated: 2025-10-16*
4
+
5
+ This document defines the process for creating survey projects or preliminary repositories for research and proof-of-concept work within the Desktop Team.
6
+
7
+ ## Survey 專案或前期 Repo 建置
8
+
9
+ ### 建立專案位置
10
+
11
+ 在 https://github.com/orgs/Positive-LLC/teams/desktop 底下建立專案
12
+
13
+ ### 專案命名規則
14
+
15
+ 選擇以下其中一種命名方式:
16
+
17
+ 1. **大寫開頭單字或全大寫單字搭配 dash**
18
+ - Example: `Audio-Capture-Integration-Survey`
19
+ - Example: `USB-MIDI-Device-Survey`
20
+
21
+ 2. **Camel Case**
22
+ - Example: `AudioCaptureIntegrationSurvey`
23
+ - Example: `UsbMidiDeviceSurvey`
24
+
25
+ ### 從現有專案改造
26
+
27
+ 若是從 GitHub 上找到現有的專案來改,請遵循以下步驟:
28
+
29
+ 1. 使用 `git clone` 下載原始專案
30
+ 2. 在 Desktop Team 組織下建立新的 repository
31
+ 3. 將專案程式碼放到 Desktop Team 底下
32
+
33
+ **重要**: 確保遵守原始專案的 License 規範
34
+
35
+ ---
36
+
37
+ ## 範例專案
38
+
39
+ ### Survey 專案參考
40
+
41
+ - [audio-capture-integration-survey](https://github.com/Positive-LLC/audio-capture-integration-survey)
42
+
43
+ ---
44
+
45
+ ## Survey 專案最佳實踐
46
+
47
+ ### README 內容建議
48
+
49
+ 每個 Survey 專案應包含:
50
+
51
+ 1. **Purpose**: 說明調查/研究目的
52
+ 2. **Scope**: 研究範圍和限制
53
+ 3. **Findings**: 主要發現(研究完成後更新)
54
+ 4. **References**: 參考資料和相關連結
55
+ 5. **Contributors**: 參與研究的團隊成員
56
+
57
+ ### 專案生命週期
58
+
59
+ 1. **Survey Phase**: 研究和實驗階段
60
+ 2. **Documentation**: 記錄發現和結論
61
+ 3. **Archive or Integration**:
62
+ - Archive: 標記為 archived 並保留作為參考
63
+ - Integration: 整合到正式產品專案中
64
+
65
+ ---
66
+
67
+ ## Related Documentation
68
+
69
+ - [JIRA Workflow](./jira-process.md) - 如需建立對應的 JIRA ticket
70
+ - [Git Commit Convention](./git-commit.md) - Survey 專案也應遵循 commit 規範
71
+ - [Code Review Process](./code-review.md) - Survey 專案的程式碼審查標準
72
+
73
+ ---
74
+
75
+ **Maintained by**: Desktop Team
76
+ **Contact**: Team Lead for project creation permissions, Tech Lead for survey scope guidance
@@ -0,0 +1,11 @@
1
+ # Architecture Patterns
2
+
3
+ Team-wide architecture patterns and design principles.
4
+
5
+ ## Contents
6
+
7
+ - [Audio Plugin Architecture](./audio-plugin-architecture.md)
8
+ - [Cross-Platform Design](./cross-platform-design.md)
9
+ - [Frontend-Native Bridge](./frontend-native-bridge.md)
10
+ - [Native Command](./native-command.md)
11
+ - [State Management Architecture](./state-management-architecture.md)