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,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
alwaysApply: true
|
|
3
|
+
---
|
|
4
|
+
# C++ Coding Standards
|
|
5
|
+
|
|
6
|
+
*Last Updated: 2025-10-14*
|
|
7
|
+
|
|
8
|
+
This document outlines the C++ coding standards for the Desktop Team, specifically for BIAS_ONE and related C++ projects.
|
|
9
|
+
|
|
10
|
+
## Formatting
|
|
11
|
+
|
|
12
|
+
* All C++ code formatting MUST strictly adhere to the `.clang-format` configuration file located in the project root.
|
|
13
|
+
* Ensure any generated or modified code would pass checks using this `.clang-format` file.
|
|
14
|
+
* A reference `.clang-format` configuration is available at [`.clang-format`](./.clang-format) in this directory.
|
|
15
|
+
|
|
16
|
+
### Key Formatting Rules (from `.clang-format`)
|
|
17
|
+
|
|
18
|
+
* **Indentation**: 4 spaces (not tabs)
|
|
19
|
+
* **Line Length**: Maximum 100 characters
|
|
20
|
+
* **Brace Placement**:
|
|
21
|
+
* Functions, classes, structs, enums, unions: Opening brace on separate line
|
|
22
|
+
* Control statements (if, for, while, etc.): Opening brace on same line
|
|
23
|
+
* Lambda bodies: Opening brace on separate line
|
|
24
|
+
* **Trailing Whitespace**: None allowed
|
|
25
|
+
* **Empty Lines**: No indentation on empty lines; max 2 consecutive empty lines
|
|
26
|
+
* **Pointer Alignment**: Right-aligned (e.g., `int *ptr`, not `int* ptr`)
|
|
27
|
+
|
|
28
|
+
**Note**: These C++ formatting rules differ from team-wide defaults. When conflicts arise, `.clang-format` is the source of truth for C++ code.
|
|
29
|
+
|
|
30
|
+
## Naming Rules
|
|
31
|
+
|
|
32
|
+
### General Naming
|
|
33
|
+
|
|
34
|
+
* Names must be descriptive and clear; avoid unclear abbreviations.
|
|
35
|
+
* Commonly recognized abbreviations (e.g., `i`, `T`, `DNS`, `LSTM`) are acceptable.
|
|
36
|
+
* Use full capitalization for acronyms within camelCase names (e.g., `startRPC`, `dnsEntryCount`, not `startRpc`).
|
|
37
|
+
* Template parameter names follow type naming (UpperCamelCase) if they are types, or variable naming (lowerCamelCase) if they are non-types.
|
|
38
|
+
* Namespace names are lowercase with underscores as separators (e.g., `util_embedded_store`).
|
|
39
|
+
|
|
40
|
+
### File Names
|
|
41
|
+
|
|
42
|
+
* Use UpperCamelCase (e.g., `PresetManager`).
|
|
43
|
+
* Header files use `.hpp`, source files use `.cpp`.
|
|
44
|
+
|
|
45
|
+
### Type Names
|
|
46
|
+
|
|
47
|
+
* Use UpperCamelCase without underscores for classes, structs, type aliases (`using`/`typedef`), enums, and type template parameters (e.g., `UrlTable`, `PropertiesMap`, `UrlTableErrors`).
|
|
48
|
+
|
|
49
|
+
### Variable Names
|
|
50
|
+
|
|
51
|
+
* Use lowerCamelCase.
|
|
52
|
+
* Class member non-static variables MUST end with an underscore (`_`) (e.g., `dataMember_`, `pool_`).
|
|
53
|
+
* Struct member variables MUST NOT end with an underscore (e.g., `dataMember`).
|
|
54
|
+
* Do not encode type in variable names (e.g., avoid `strDeviceName`, `pStr`).
|
|
55
|
+
|
|
56
|
+
### Constant Names
|
|
57
|
+
|
|
58
|
+
* Prefix with `k` and use CamelCase (e.g., `kDaysInAWeek`, `kAndroid8_0_0`). Underscores only if needed for readability within the name itself.
|
|
59
|
+
|
|
60
|
+
### Enum Names
|
|
61
|
+
|
|
62
|
+
* Use scoped enums: `enum class EnumName { ... };`.
|
|
63
|
+
* Enum type name (`EnumName`): UpperCamelCase.
|
|
64
|
+
* Enum values: lowerCamelCase (like variables) (e.g., `errorOutOfMemory`).
|
|
65
|
+
|
|
66
|
+
## Functions and Methods
|
|
67
|
+
|
|
68
|
+
* Names use lowerCamelCase (e.g., `doFunc`).
|
|
69
|
+
* Opening `{` and closing `}` braces must be on separate lines (enforced by `.clang-format`).
|
|
70
|
+
* Each function should perform a single, clearly defined task. Refactor if the name isn't descriptive.
|
|
71
|
+
* Parameter Order: Input (`const &`) first, then modification (`&`), then output (`&`).
|
|
72
|
+
* Prefer returning values (using `std::tuple`, structs, etc.) over output parameters.
|
|
73
|
+
|
|
74
|
+
**Example**:
|
|
75
|
+
|
|
76
|
+
```cpp
|
|
77
|
+
auto processData(const std::string &input, int &counter) -> std::vector<int>
|
|
78
|
+
{
|
|
79
|
+
// Function body
|
|
80
|
+
counter++;
|
|
81
|
+
return result;
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Lambda Functions
|
|
86
|
+
|
|
87
|
+
* Prefer explicit capture lists (e.g., `[x, &y, z]`) over default capture (`[=]`, `[&]`).
|
|
88
|
+
* Use `[=]` capture only when necessary.
|
|
89
|
+
* Declare lambdas locally within the function if used only there. Consider making them private class methods if reused.
|
|
90
|
+
|
|
91
|
+
## `auto` Usage
|
|
92
|
+
|
|
93
|
+
### Variables
|
|
94
|
+
|
|
95
|
+
* Prefer `auto` for declarations, especially with complex/long types (e.g., `auto message = std::string{};`, `constexpr auto kEnable...`).
|
|
96
|
+
* Exception for C-style API init: Declare with explicit type first (`int value; initValue(&value);`), or use an immediately-invoked lambda for const-correct initialization: `auto const value = []{ int v; initValue(&v); return v; }();`.
|
|
97
|
+
|
|
98
|
+
### Function Return Types
|
|
99
|
+
|
|
100
|
+
* Use `auto -> TrailingReturnType;` (e.g., `auto doFunction() -> std::string;`).
|
|
101
|
+
* Exception for Return Types: Short `inline`, `constexpr`, or `consteval` functions can use plain `auto` deduction if the return type is obvious (e.g., `constexpr auto plusOne(int value)`).
|
|
102
|
+
* Use `decltype(auto)` sparingly, primarily for perfect forwarding or preserving reference types in getters (e.g., `auto& getProperty() { return property_; }`).
|
|
103
|
+
|
|
104
|
+
## Class Structure
|
|
105
|
+
|
|
106
|
+
### Order of declarations
|
|
107
|
+
|
|
108
|
+
1. `public:` types (enums, structs), static methods, constructors/destructor/operators, public methods.
|
|
109
|
+
2. `public:` member variables (use sparingly).
|
|
110
|
+
3. `protected:` (use minimally).
|
|
111
|
+
4. `private:` methods.
|
|
112
|
+
5. `private:` member variables.
|
|
113
|
+
|
|
114
|
+
* Use separate `public:` and `private:` sections for methods vs. member variables for clarity.
|
|
115
|
+
|
|
116
|
+
## Pointers and References
|
|
117
|
+
|
|
118
|
+
* Use smart pointers (`std::unique_ptr`, `std::shared_ptr`) to manage ownership instead of raw pointers.
|
|
119
|
+
* Prefer references (`const T&`, `T&`) over raw pointers (`T*`).
|
|
120
|
+
* Use raw pointers only when:
|
|
121
|
+
* Rebinding (pointing to different objects) is needed.
|
|
122
|
+
* `nullptr` representation is needed.
|
|
123
|
+
* Interfacing with C APIs or legacy code requires them.
|
|
124
|
+
|
|
125
|
+
## Miscellaneous
|
|
126
|
+
|
|
127
|
+
* **Header Guards**: Use `#pragma once`.
|
|
128
|
+
|
|
129
|
+
## Commenting Policy
|
|
130
|
+
|
|
131
|
+
See [Team-wide Coding Conventions](./team-wide.md#commenting-policy) for the team's commenting policy which applies to all languages including C++.
|
|
132
|
+
|
|
133
|
+
## Related Resources
|
|
134
|
+
|
|
135
|
+
* [Team-wide Coding Conventions](./team-wide.md) - Universal coding standards across all languages
|