red64-cli 0.5.0 → 0.6.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 (62) hide show
  1. package/README.md +64 -58
  2. package/dist/components/screens/StartScreen.d.ts.map +1 -1
  3. package/dist/components/screens/StartScreen.js +2 -2
  4. package/dist/components/screens/StartScreen.js.map +1 -1
  5. package/dist/services/AgentInvoker.js +4 -4
  6. package/dist/services/AgentInvoker.js.map +1 -1
  7. package/dist/services/ClaudeHealthCheck.d.ts +5 -0
  8. package/dist/services/ClaudeHealthCheck.d.ts.map +1 -1
  9. package/dist/services/ClaudeHealthCheck.js +43 -5
  10. package/dist/services/ClaudeHealthCheck.js.map +1 -1
  11. package/dist/services/index.d.ts +1 -1
  12. package/dist/services/index.d.ts.map +1 -1
  13. package/dist/services/index.js +1 -1
  14. package/dist/services/index.js.map +1 -1
  15. package/framework/stacks/c/code-quality.md +326 -0
  16. package/framework/stacks/c/coding-style.md +347 -0
  17. package/framework/stacks/c/conventions.md +513 -0
  18. package/framework/stacks/c/error-handling.md +350 -0
  19. package/framework/stacks/c/feedback.md +158 -0
  20. package/framework/stacks/c/memory-safety.md +408 -0
  21. package/framework/stacks/c/tech.md +122 -0
  22. package/framework/stacks/c/testing.md +472 -0
  23. package/framework/stacks/cpp/code-quality.md +282 -0
  24. package/framework/stacks/cpp/coding-style.md +363 -0
  25. package/framework/stacks/cpp/conventions.md +420 -0
  26. package/framework/stacks/cpp/error-handling.md +264 -0
  27. package/framework/stacks/cpp/feedback.md +104 -0
  28. package/framework/stacks/cpp/memory-safety.md +351 -0
  29. package/framework/stacks/cpp/tech.md +160 -0
  30. package/framework/stacks/cpp/testing.md +323 -0
  31. package/framework/stacks/java/code-quality.md +357 -0
  32. package/framework/stacks/java/coding-style.md +400 -0
  33. package/framework/stacks/java/conventions.md +437 -0
  34. package/framework/stacks/java/error-handling.md +408 -0
  35. package/framework/stacks/java/feedback.md +180 -0
  36. package/framework/stacks/java/tech.md +126 -0
  37. package/framework/stacks/java/testing.md +485 -0
  38. package/framework/stacks/javascript/async-patterns.md +216 -0
  39. package/framework/stacks/javascript/code-quality.md +182 -0
  40. package/framework/stacks/javascript/coding-style.md +293 -0
  41. package/framework/stacks/javascript/conventions.md +268 -0
  42. package/framework/stacks/javascript/error-handling.md +216 -0
  43. package/framework/stacks/javascript/feedback.md +80 -0
  44. package/framework/stacks/javascript/tech.md +114 -0
  45. package/framework/stacks/javascript/testing.md +209 -0
  46. package/framework/stacks/loco/code-quality.md +156 -0
  47. package/framework/stacks/loco/coding-style.md +247 -0
  48. package/framework/stacks/loco/error-handling.md +225 -0
  49. package/framework/stacks/loco/feedback.md +35 -0
  50. package/framework/stacks/loco/loco.md +342 -0
  51. package/framework/stacks/loco/structure.md +193 -0
  52. package/framework/stacks/loco/tech.md +129 -0
  53. package/framework/stacks/loco/testing.md +211 -0
  54. package/framework/stacks/rust/code-quality.md +370 -0
  55. package/framework/stacks/rust/coding-style.md +475 -0
  56. package/framework/stacks/rust/conventions.md +430 -0
  57. package/framework/stacks/rust/error-handling.md +399 -0
  58. package/framework/stacks/rust/feedback.md +152 -0
  59. package/framework/stacks/rust/memory-safety.md +398 -0
  60. package/framework/stacks/rust/tech.md +121 -0
  61. package/framework/stacks/rust/testing.md +528 -0
  62. package/package.json +14 -2
@@ -7,6 +7,40 @@ import { readFileSync, existsSync } from 'node:fs';
7
7
  import { join } from 'node:path';
8
8
  import { createClaudeErrorDetector } from './ClaudeErrorDetector.js';
9
9
  const SANDBOX_IMAGE = 'red64-sandbox:latest';
10
+ /**
11
+ * Agent setup instructions per coding agent
12
+ * Returns step-by-step instructions for configuring each agent's API access
13
+ */
14
+ export function getAgentSetupInstructions(agent) {
15
+ switch (agent) {
16
+ case 'gemini':
17
+ return [
18
+ '1. Get an API key at https://aistudio.google.com/apikey',
19
+ '2. Set the environment variable: export GEMINI_API_KEY=<your-key>',
20
+ '3. Or run: gemini (first run will prompt for login)',
21
+ ];
22
+ case 'codex':
23
+ return [
24
+ '1. Get an API key at https://platform.openai.com/api-keys',
25
+ '2. Set the environment variable: export CODEX_API_KEY=<your-key>',
26
+ '3. Or set: export OPENAI_API_KEY=<your-key>',
27
+ ];
28
+ default: // claude
29
+ return [
30
+ '1. Run: claude (first run will prompt for authentication)',
31
+ '2. Or get an API key at https://console.anthropic.com/settings/keys',
32
+ '3. Then set: export ANTHROPIC_API_KEY=<your-key>',
33
+ ];
34
+ }
35
+ }
36
+ /**
37
+ * Get agent-specific suggestion for unknown errors
38
+ */
39
+ function getAgentErrorSuggestion(agent) {
40
+ const envVar = agent === 'gemini' ? 'GEMINI_API_KEY' : agent === 'codex' ? 'CODEX_API_KEY' : 'ANTHROPIC_API_KEY';
41
+ const name = agent === 'gemini' ? 'Gemini' : agent === 'codex' ? 'Codex' : 'Claude';
42
+ return `Verify ${name} CLI is installed and ${envVar} is set. Run "red64 help" for setup details.`;
43
+ }
10
44
  /**
11
45
  * Read API key from Claude config directory
12
46
  */
@@ -40,7 +74,7 @@ function readApiKeyFromConfig(configDir) {
40
74
  function getApiKey(tier, agent) {
41
75
  // Check agent-specific env vars first
42
76
  if (agent === 'gemini') {
43
- return process.env.GOOGLE_API_KEY ?? process.env.GEMINI_API_KEY ?? null;
77
+ return process.env.GEMINI_API_KEY ?? process.env.GOOGLE_API_KEY ?? null;
44
78
  }
45
79
  if (agent === 'codex') {
46
80
  return process.env.CODEX_API_KEY ?? process.env.OPENAI_API_KEY ?? null;
@@ -83,7 +117,7 @@ export function createClaudeHealthCheck() {
83
117
  const getHealthArgs = () => {
84
118
  switch (agent) {
85
119
  case 'gemini':
86
- return { binary: 'gemini', args: [healthPrompt] };
120
+ return { binary: 'gemini', args: ['-p', healthPrompt] };
87
121
  case 'codex':
88
122
  return { binary: 'codex', args: ['exec', healthPrompt] };
89
123
  case 'claude':
@@ -106,7 +140,7 @@ export function createClaudeHealthCheck() {
106
140
  '-v', `${process.cwd()}:/workspace`,
107
141
  ];
108
142
  if (apiKey) {
109
- const envKey = agent === 'gemini' ? 'GOOGLE_API_KEY'
143
+ const envKey = agent === 'gemini' ? 'GEMINI_API_KEY'
110
144
  : agent === 'codex' ? 'CODEX_API_KEY'
111
145
  : 'ANTHROPIC_API_KEY';
112
146
  dockerArgs.push('-e', `${envKey}=${apiKey}`);
@@ -170,7 +204,7 @@ export function createClaudeHealthCheck() {
170
204
  code: 'UNKNOWN',
171
205
  message: errorLine,
172
206
  recoverable: false,
173
- suggestion: `Check ${agent === 'gemini' ? 'Gemini' : agent === 'codex' ? 'Codex' : 'Claude'} CLI configuration and try again`
207
+ suggestion: getAgentErrorSuggestion(agent)
174
208
  },
175
209
  message: errorLine,
176
210
  durationMs
@@ -197,7 +231,11 @@ export function createClaudeHealthCheck() {
197
231
  code: 'CLI_NOT_FOUND',
198
232
  message: `${cliName} not found`,
199
233
  recoverable: false,
200
- suggestion: `Install ${cliName} and ensure it is on your PATH`
234
+ suggestion: agent === 'gemini'
235
+ ? 'Install Gemini CLI: npm install -g @google/gemini-cli'
236
+ : agent === 'codex'
237
+ ? 'Install Codex CLI: npm install -g @openai/codex'
238
+ : 'Install Claude CLI: see https://docs.anthropic.com/en/docs/claude-code/overview'
201
239
  },
202
240
  message: `${cliName} is not installed`,
203
241
  durationMs
@@ -1 +1 @@
1
- {"version":3,"file":"ClaudeHealthCheck.js","sourceRoot":"","sources":["../../src/services/ClaudeHealthCheck.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClaudeHealthCheck.js","sourceRoot":"","sources":["../../src/services/ClaudeHealthCheck.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export { createConfigService, type ConfigService, type InitConfig, type ProjectT
21
21
  export { createGitHubService, GitHubFetchError, type GitHubService, type GitHubServiceConfig, type FetchOptions, type FetchProgress, type FetchResult, type GitHubErrorCode } from './GitHubService.js';
22
22
  export { createSpecInitService, type SpecInitService, type SpecInitResult } from './SpecInitService.js';
23
23
  export { createClaudeErrorDetector, type ClaudeErrorDetectorService, type ClaudeError, type ClaudeErrorCode } from './ClaudeErrorDetector.js';
24
- export { createClaudeHealthCheck, type ClaudeHealthCheckService, type HealthCheckResult, type HealthCheckOptions } from './ClaudeHealthCheck.js';
24
+ export { createClaudeHealthCheck, getAgentSetupInstructions, type ClaudeHealthCheckService, type HealthCheckResult, type HealthCheckOptions } from './ClaudeHealthCheck.js';
25
25
  export { createProjectDetector, type ProjectDetectorService, type DetectionResult } from './ProjectDetector.js';
26
26
  export { createTestRunner, type TestRunnerService, type TestResult, type TestRunnerOptions } from './TestRunner.js';
27
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export { createConfigService } from './ConfigService.js';
21
21
  export { createGitHubService, GitHubFetchError } from './GitHubService.js';
22
22
  export { createSpecInitService } from './SpecInitService.js';
23
23
  export { createClaudeErrorDetector } from './ClaudeErrorDetector.js';
24
- export { createClaudeHealthCheck } from './ClaudeHealthCheck.js';
24
+ export { createClaudeHealthCheck, getAgentSetupInstructions } from './ClaudeHealthCheck.js';
25
25
  export { createProjectDetector } from './ProjectDetector.js';
26
26
  export { createTestRunner } from './TestRunner.js';
27
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,iBAAiB,EACjB,UAAU,EAEX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,kBAAkB,EAEnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,sBAAsB,EAGvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EAIpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAEnB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAGjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,gBAAgB,EAKjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EAMvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,sBAAsB,EAGvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,EAItB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,kBAAkB,EAInB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,qBAAqB,EAKtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EAIpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAOjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,EAGtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,yBAAyB,EAI1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,uBAAuB,EAIxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,qBAAqB,EAGtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,gBAAgB,EAIjB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,iBAAiB,EACjB,UAAU,EAEX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,kBAAkB,EAEnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,sBAAsB,EAGvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EAIpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAEnB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAGjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,gBAAgB,EAKjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EAMvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,sBAAsB,EAGvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,EAItB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,kBAAkB,EAInB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,qBAAqB,EAKtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EAIpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAOjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,EAGtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,yBAAyB,EAI1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EAI1B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,qBAAqB,EAGtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,gBAAgB,EAIjB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,326 @@
1
+ # Code Quality Standards
2
+
3
+ Project memory for code quality conventions: formatting, static analysis, sanitizers, and compiler warnings in modern C.
4
+
5
+ ---
6
+
7
+ ## Philosophy
8
+
9
+ - **Shift left**: Catch bugs at compile time, not runtime
10
+ - **Automate enforcement**: clang-format and clang-tidy in CI, not code review
11
+ - **Warnings are errors**: `-Werror` in CI ensures nothing slips through
12
+ - **Sanitizers in test**: Run ASan/UBSan on every test run in CI
13
+
14
+ ---
15
+
16
+ ## clang-format Configuration
17
+
18
+ ### `.clang-format`
19
+
20
+ ```yaml
21
+ BasedOnStyle: LLVM
22
+ Language: Cpp
23
+ Standard: c17
24
+ ColumnLimit: 100
25
+ IndentWidth: 4
26
+ UseTab: Never
27
+ BreakBeforeBraces: Attach
28
+ AllowShortFunctionsOnASingleLine: Empty
29
+ AllowShortIfStatementsOnASingleLine: Never
30
+ AllowShortLoopsOnASingleLine: false
31
+ PointerAlignment: Right
32
+ SpaceBeforeParens: ControlStatements
33
+ SortIncludes: CaseSensitive
34
+ IncludeBlocks: Regroup
35
+ IncludeCategories:
36
+ - Regex: '^".*"' # Project headers (corresponding header first)
37
+ Priority: 1
38
+ - Regex: '^<(assert|ctype|errno|float|limits|locale|math|setjmp|signal|stdarg|stddef|stdio|stdlib|string|time|stdbool|stdint|inttypes|stdalign|stdatomic|stdnoreturn|threads|uchar)\.h>'
39
+ Priority: 2 # C standard library
40
+ - Regex: '^<(sys|unistd|fcntl|pthread|netinet|arpa|dlfcn).*>'
41
+ Priority: 3 # POSIX / system
42
+ - Regex: '^<.+>' # Third-party
43
+ Priority: 4
44
+ ```
45
+
46
+ ```bash
47
+ # Format all source files
48
+ clang-format -i $(find src include -name '*.c' -o -name '*.h')
49
+
50
+ # Check formatting (CI)
51
+ clang-format --dry-run --Werror $(find src include -name '*.c' -o -name '*.h')
52
+ ```
53
+
54
+ ---
55
+
56
+ ## clang-tidy Configuration
57
+
58
+ ### `.clang-tidy`
59
+
60
+ ```yaml
61
+ Checks: >
62
+ -*,
63
+ bugprone-*,
64
+ cert-*,
65
+ misc-*,
66
+ readability-*,
67
+ performance-*,
68
+ clang-analyzer-*,
69
+ -readability-identifier-length,
70
+ -readability-magic-numbers,
71
+ -bugprone-easily-swappable-parameters,
72
+ -cert-err33-c
73
+
74
+ WarningsAsErrors: >
75
+ bugprone-*,
76
+ cert-str34-c,
77
+ cert-mem57-c,
78
+ clang-analyzer-security.*,
79
+ clang-analyzer-deadcode.*
80
+
81
+ CheckOptions:
82
+ - key: readability-identifier-naming.FunctionCase
83
+ value: lower_case
84
+ - key: readability-identifier-naming.VariableCase
85
+ value: lower_case
86
+ - key: readability-identifier-naming.MacroDefinitionCase
87
+ value: UPPER_CASE
88
+ - key: readability-identifier-naming.TypedefCase
89
+ value: lower_case
90
+ - key: readability-identifier-naming.TypedefSuffix
91
+ value: _t
92
+ ```
93
+
94
+ ### Key Check Categories
95
+
96
+ | Category | Purpose | Example Checks |
97
+ |---|---|---|
98
+ | `bugprone-*` | Common bug patterns | `sizeof-expression`, `narrowing-conversions`, `string-literal-with-embedded-nul` |
99
+ | `cert-*` | CERT C secure coding | `err34-c` (check return of `atoi`), `str34-c` (sign of `char`), `mem57-c` |
100
+ | `clang-analyzer-*` | Static analysis (deep) | `security.insecureAPI.strcpy`, `deadcode.DeadStores` |
101
+ | `performance-*` | Performance improvements | `type-promotion-in-math-fn` |
102
+ | `readability-*` | Code clarity | `identifier-naming`, `implicit-bool-conversion` |
103
+ | `misc-*` | Miscellaneous | `unused-parameters`, `redundant-expression` |
104
+
105
+ ```bash
106
+ # Run clang-tidy (requires compile_commands.json)
107
+ run-clang-tidy -p build
108
+
109
+ # Single file
110
+ clang-tidy -p build src/main.c
111
+
112
+ # With auto-fix
113
+ run-clang-tidy -p build -fix
114
+ ```
115
+
116
+ ---
117
+
118
+ ## cppcheck (Supplementary)
119
+
120
+ ```bash
121
+ # Run with compile database
122
+ cppcheck --project=build/compile_commands.json \
123
+ --std=c17 \
124
+ --enable=all \
125
+ --suppress=missingIncludeSystem \
126
+ --error-exitcode=1 \
127
+ --inline-suppr
128
+
129
+ # Without compile database
130
+ cppcheck --enable=all --std=c17 \
131
+ --suppress=missingInclude \
132
+ -I include/ \
133
+ src/
134
+ ```
135
+
136
+ ### cppcheck Key Checks
137
+
138
+ | Check | What It Finds |
139
+ |---|---|
140
+ | `nullPointer` | Null pointer dereference |
141
+ | `memleak` | Memory not freed on all paths |
142
+ | `bufferAccessOutOfBounds` | Array out-of-bounds access |
143
+ | `uninitvar` | Use of uninitialized variable |
144
+ | `resourceLeak` | File handle or socket not closed |
145
+ | `redundantAssignment` | Variable assigned then overwritten |
146
+
147
+ ---
148
+
149
+ ## Compiler Warnings
150
+
151
+ ### Recommended Flags
152
+
153
+ ```cmake
154
+ # CMakeLists.txt
155
+ target_compile_options(myapp PRIVATE
156
+ $<$<C_COMPILER_ID:GNU,Clang,AppleClang>:
157
+ -Wall
158
+ -Wextra
159
+ -Wpedantic
160
+ -Werror
161
+ -Wshadow
162
+ -Wconversion
163
+ -Wsign-conversion
164
+ -Wdouble-promotion
165
+ -Wformat=2
166
+ -Wformat-overflow=2
167
+ -Wformat-truncation=2
168
+ -Wimplicit-fallthrough
169
+ -Wnull-dereference
170
+ -Wunused
171
+ -Wstrict-prototypes
172
+ -Wold-style-definition
173
+ -Wmissing-prototypes
174
+ -Wmissing-declarations
175
+ -Wcast-align
176
+ -Wwrite-strings
177
+ -Wvla
178
+ >
179
+ $<$<C_COMPILER_ID:GNU>:
180
+ -Wlogical-op
181
+ -Wduplicated-cond
182
+ -Wduplicated-branches
183
+ -Wjump-misses-init
184
+ >
185
+ )
186
+ ```
187
+
188
+ | Flag | Purpose |
189
+ |---|---|
190
+ | `-Wall -Wextra` | Enable most warnings |
191
+ | `-Wpedantic` | Enforce strict ISO C compliance |
192
+ | `-Werror` | Treat warnings as errors (CI) |
193
+ | `-Wshadow` | Warn on variable shadowing |
194
+ | `-Wconversion` | Warn on implicit narrowing conversions |
195
+ | `-Wstrict-prototypes` | Require full prototypes (not empty parens) |
196
+ | `-Wmissing-prototypes` | Warn if global function has no prior prototype |
197
+ | `-Wvla` | Forbid variable-length arrays (stack overflow risk) |
198
+ | `-Wformat=2` | Extra format string checks |
199
+ | `-Wold-style-definition` | Forbid K&R style function definitions |
200
+
201
+ ---
202
+
203
+ ## Sanitizers
204
+
205
+ ### AddressSanitizer (ASan)
206
+
207
+ Detects: buffer overflows, use-after-free, use-after-scope, double-free, memory leaks.
208
+
209
+ ```cmake
210
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
211
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
212
+ ```
213
+
214
+ ### UndefinedBehaviorSanitizer (UBSan)
215
+
216
+ Detects: signed integer overflow, null pointer dereference, misaligned access, out-of-bounds shifts, type punning.
217
+
218
+ ```cmake
219
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined -fno-sanitize-recover=all")
220
+ ```
221
+
222
+ ### MemorySanitizer (MSan) -- Clang Only
223
+
224
+ Detects: reads of uninitialized memory.
225
+
226
+ ```cmake
227
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=memory -fno-omit-frame-pointer")
228
+ ```
229
+
230
+ ### ThreadSanitizer (TSan)
231
+
232
+ Detects: data races, deadlocks.
233
+
234
+ ```cmake
235
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread")
236
+ ```
237
+
238
+ ### Sanitizer CMake Preset Pattern
239
+
240
+ ```json
241
+ {
242
+ "name": "asan",
243
+ "inherits": "debug",
244
+ "cacheVariables": {
245
+ "CMAKE_C_FLAGS": "-fsanitize=address,undefined -fno-omit-frame-pointer -fno-sanitize-recover=all"
246
+ }
247
+ }
248
+ ```
249
+
250
+ **Note**: ASan and TSan cannot be combined. Run them as separate CI jobs.
251
+
252
+ ---
253
+
254
+ ## CERT C Coding Standard References
255
+
256
+ Key CERT C rules to enforce via tooling and review:
257
+
258
+ | Rule | Description | Enforcement |
259
+ |---|---|---|
260
+ | **ERR33-C** | Detect and handle standard library errors | clang-tidy `cert-err33-c` |
261
+ | **STR31-C** | Guarantee null-terminated strings have sufficient space | Manual review, ASan |
262
+ | **MEM30-C** | Do not access freed memory | ASan, Valgrind |
263
+ | **MEM35-C** | Allocate sufficient memory for an object | ASan, cppcheck |
264
+ | **ARR38-C** | Guarantee array indices are within valid range | UBSan, ASan |
265
+ | **INT32-C** | Ensure signed integer operations do not overflow | UBSan |
266
+ | **FIO42-C** | Close files when they are no longer needed | cppcheck `resourceLeak` |
267
+ | **MSC24-C** | Do not use deprecated or obsolescent functions | clang-tidy, `-Wdeprecated` |
268
+
269
+ ---
270
+
271
+ ## Code Coverage
272
+
273
+ ### gcov / lcov
274
+
275
+ ```cmake
276
+ # Coverage build
277
+ target_compile_options(myapp_tests PRIVATE --coverage)
278
+ target_link_options(myapp_tests PRIVATE --coverage)
279
+ ```
280
+
281
+ ```bash
282
+ # Generate coverage report
283
+ cmake --build build-coverage
284
+ ctest --test-dir build-coverage
285
+ lcov --capture --directory build-coverage --output-file coverage.info
286
+ lcov --remove coverage.info '/usr/*' '*/test/*' --output-file coverage.info
287
+ genhtml coverage.info --output-directory coverage-report/
288
+
289
+ # Alternative: gcovr
290
+ gcovr --root . --html --html-details -o coverage/index.html
291
+ ```
292
+
293
+ ---
294
+
295
+ ## Quality Commands Summary
296
+
297
+ ```bash
298
+ # Full quality check (CI pipeline)
299
+ clang-format --dry-run --Werror $(find src include -name '*.c' -o -name '*.h')
300
+ run-clang-tidy -p build
301
+ cppcheck --project=build/compile_commands.json --error-exitcode=1
302
+ cmake --build build-asan && ctest --test-dir build-asan --output-on-failure
303
+ cmake --build build-coverage && ctest --test-dir build-coverage
304
+
305
+ # Development workflow
306
+ clang-format -i src/**/*.c include/**/*.h # Quick format
307
+ cmake --build build && ctest --test-dir build # Fast feedback
308
+ clang-tidy -p build src/my_file.c # Focused analysis
309
+ ```
310
+
311
+ ---
312
+
313
+ ## Anti-Patterns
314
+
315
+ | Anti-Pattern | Problem | Correct Approach |
316
+ |---|---|---|
317
+ | No `-Werror` in CI | Warnings accumulate silently | `-Werror` in CI builds |
318
+ | Suppressing warnings globally | Hides real bugs | Suppress per-line with comments only when justified |
319
+ | No sanitizers in test | Memory bugs hide until production | ASan + UBSan on every CI test run |
320
+ | Manual code review for style | Inconsistent, wastes reviewer time | clang-format enforces automatically |
321
+ | No `compile_commands.json` | clang-tidy cannot find headers | `set(CMAKE_EXPORT_COMPILE_COMMANDS ON)` |
322
+ | Ignoring cppcheck findings | Misses bugs clang-tidy does not catch | Run both tools; they complement each other |
323
+
324
+ ---
325
+
326
+ _Focus on patterns over exhaustive rules. Code should be formatted, analyzed, and tested under sanitizers before it reaches review._