@ngocsangairvds/vsaf 4.2.7 → 4.2.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngocsangairvds/vsaf",
3
- "version": "4.2.7",
3
+ "version": "4.2.9",
4
4
  "description": "logging step",
5
5
  "main": "packages/core/dist/index.js",
6
6
  "types": "packages/core/dist/index.d.ts",
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAC;QAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAGD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAOD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/C,YAAY,CA4Bd;AAQD,wBAAgB,aAAa,IAAI,MAAM,CActC;AAcD,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAW1D;AAuDD,wBAAgB,eAAe,IAAI,cAAc,CAqDhD;AAqCD,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAiBvD;AAED,wBAAgB,iBAAiB,IAAI,gBAAgB,CA6DpD;AAuCD,wBAAgB,yBAAyB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAyCpE;AAoCD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA8BzD;AAiCD,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,sBAA2B,GACnC,aAAa,CAoLf"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAC;QAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAGD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAOD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/C,YAAY,CA4Bd;AASD,wBAAgB,aAAa,IAAI,MAAM,CActC;AAcD,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAW1D;AAiED,wBAAgB,eAAe,IAAI,cAAc,CAqDhD;AAqCD,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAiBvD;AAED,wBAAgB,iBAAiB,IAAI,gBAAgB,CA6DpD;AAuCD,wBAAgB,yBAAyB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAyCpE;AAoCD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA8BzD;AAmCD,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,sBAA2B,GACnC,aAAa,CAoLf"}
@@ -44,6 +44,7 @@ function deploySkills(packDir, packName, skills, targetDir, options) {
44
44
  }
45
45
  // ── Check Binaries ──
46
46
  const IS_WIN = process.platform === 'win32';
47
+ const IS_MAC = process.platform === 'darwin';
47
48
  let _resolvedPython;
48
49
  function resolvePython() {
49
50
  if (_resolvedPython)
@@ -139,14 +140,27 @@ function ensurePipx() {
139
140
  }
140
141
  catch { /* scoop not installed — skip silently */ }
141
142
  }
142
- else {
143
- // Try brew (macOS/Linux) — skip auto-update for speed
143
+ else if (IS_MAC) {
144
+ // Try brew (macOS only) — skip auto-update for speed
144
145
  try {
145
146
  (0, child_process_1.execSync)('HOMEBREW_NO_AUTO_UPDATE=1 brew install pipx', { stdio: 'inherit' });
146
147
  return 'pipx';
147
148
  }
148
149
  catch { }
149
150
  }
151
+ else {
152
+ // Linux: try apt first (Ubuntu/Debian), then dnf (Fedora/RHEL)
153
+ try {
154
+ (0, child_process_1.execSync)('sudo apt install -y pipx', { stdio: 'inherit' });
155
+ return 'pipx';
156
+ }
157
+ catch { }
158
+ try {
159
+ (0, child_process_1.execSync)('sudo dnf install -y pipx', { stdio: 'inherit' });
160
+ return 'pipx';
161
+ }
162
+ catch { }
163
+ }
150
164
  // Fallback: pip install (cross-platform)
151
165
  try {
152
166
  (0, child_process_1.execSync)(`${PYTHON} -m pip install --user pipx`, { stdio: 'inherit' });
@@ -479,7 +493,9 @@ function checkNodeLTS() {
479
493
  console.warn(' Recommended: switch to an LTS version (v22 or v24).');
480
494
  console.warn(IS_WIN
481
495
  ? ' → nvm install lts OR winget install OpenJS.NodeJS.LTS\n'
482
- : ' → nvm install --lts OR brew install node@24\n');
496
+ : IS_MAC
497
+ ? ' → nvm install --lts OR brew install node@24\n'
498
+ : ' → nvm install --lts OR sudo apt install nodejs\n');
483
499
  }
484
500
  }
485
501
  // ── Main Install ──
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ # SonarQube Standard — `sonar-viettel`
2
+
3
+ > **Single source of truth** for the SDLC SonarQube standard. Referenced by both the
4
+ > **code** phases (`/sdlc-implement`, `/sdlc-hotfix-implement`) and the **review** phases
5
+ > (`/sdlc-review`, `/sdlc-hotfix-review`). Code what passes here; review re-checks the same numbers.
6
+ >
7
+ > Deployed location: `.claude/skills/_shared/sdlc/sonar-viettel/`
8
+ >
9
+ > Files in this folder:
10
+ > - `sonar-viettel-profile.xml` — the 357-rule Java **Quality Profile** (which checks run).
11
+ > - `sonar-viettel-gate.json` — the **Quality Gate** (pass/fail conditions), machine-importable.
12
+ > - `quality-gate.md` — this human/agent-readable summary (transcribed verbatim from the Viettel SonarQube UI).
13
+
14
+ A condition **FAILS** the gate when the metric crosses the operator/value shown. Ratings: A=1, B=2, C=3, D=4, E=5.
15
+
16
+ > The two tables below are a **human-readable rendering of `sonar-viettel-gate.json`** — that JSON is the machine-importable source of truth for the gate. If they ever disagree, the JSON wins; fix the table.
17
+
18
+ ## Quality Gate — Conditions on New Code
19
+
20
+ | Metric | Threshold (PASS) | Fails when |
21
+ |--------|------------------|------------|
22
+ | Issues | = 0 | > 0 |
23
+ | Blocker Issues | = 0 | > 0 |
24
+ | Critical Issues | = 0 | > 0 |
25
+ | Major Issues | = 0 | > 0 |
26
+ | Code Smells | ≤ 20 | > 20 |
27
+ | Vulnerabilities | = 0 | > 0 |
28
+ | Security Hotspots Reviewed | = 100% | < 100% |
29
+ | Coverage | ≥ 0% | < 0.0% (gate effectively **disabled**; TDD still mandatory) |
30
+ | Duplicated Lines (%) | ≤ 45% | > 45.0% |
31
+ | Maintainability Rating | ≥ A | worse than A |
32
+ | Reliability Rating | ≥ A | worse than A |
33
+ | Security Rating | ≥ A | worse than A |
34
+
35
+ ## Quality Gate — Conditions on Overall Code
36
+
37
+ | Metric | Threshold (PASS) | Fails when |
38
+ |--------|------------------|------------|
39
+ | Blocker Issues | = 0 | > 0 |
40
+ | Critical Issues | = 0 | > 0 |
41
+ | Major Issues | = 0 | > 0 |
42
+ | Bugs | = 0 | > 0 |
43
+ | Code Smells | ≤ 50 | > 50 |
44
+ | Vulnerabilities | = 0 | > 0 |
45
+ | Duplicated Lines (%) | ≤ 45% | > 45.0% |
46
+ | Maintainability Rating | ≥ A | worse than A |
47
+ | Reliability Rating | ≥ A | worse than A |
48
+ | Security Rating | ≥ A | worse than A |
49
+
50
+ ## Rule Parameters
51
+
52
+ ⚠️ **The 357 rules and their parameters live authoritatively in `sonar-viettel-profile.xml`. Do NOT hard-code rule values here — they drift.** When you need the parametrised rules (param thresholds, naming regexes, credential words), derive them live from the profile:
53
+
54
+ ```bash
55
+ node -e '
56
+ const fs=require("fs");
57
+ const x=fs.readFileSync("sonar-viettel-profile.xml","utf8");
58
+ const re=/<key>(S\d+)<\/key><type>([^<]*)<\/type><priority>([^<]*)<\/priority><parameters>(.*?)<\/parameters>/g;
59
+ let m; while((m=re.exec(x))){
60
+ const ps=[...m[4].matchAll(/<key>([^<]+)<\/key><value>([^<]*)<\/value>/g)].map(p=>p[1]+"="+p[2]).join(", ");
61
+ console.log(`${m[1]} [${m[3]}/${m[2]}]: ${ps}`);
62
+ }'
63
+ ```
64
+
65
+ Run from this folder (`.claude/skills/_shared/sdlc/sonar-viettel/`). It prints every rule that carries a threshold/format — e.g. `S107` (max params), `S3776` (cognitive complexity), `S110` (inheritance depth), `S1479` (switch cases), `S1192` (literal duplication), `S2068` (credential words), and the `S100/S101/S115/S116/S117` naming regexes. **The XML output is the source of truth; the rule names here are only signposts.**
66
+
67
+ ## How to Apply
68
+
69
+ - **If the project has SonarQube:** import `sonar-viettel-profile.xml` as the Quality Profile, recreate the gate from `sonar-viettel-gate.json`, then run `sonar-scanner` and read the gate result.
70
+ - **If the project has no SonarQube:** review the changed code manually against the tables above plus the rule parameters — scan for injection, hardcoded secrets, null dereference, resource leaks, concurrency issues, duplicated blocks, naming/SOLID violations.
71
+
72
+ ## Phase-specific overrides
73
+
74
+ - **Hotfix (`/sdlc-hotfix-implement`, `/sdlc-hotfix-review`):** apply the **New Code** conditions on changed files only, but tighten **Code Smells (new) = 0** — a surgical 1–3 line fix has no excuse to introduce a smell.
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "sonar-viettel",
3
+ "description": "Viettel Quality Gate — transcribed verbatim from quality_gate_1.png (New Code) and quality_gate_2.png (Overall Code). A condition FAILS the gate when the metric crosses the operator/value below. Ratings: A=1, B=2, C=3, D=4, E=5.",
4
+ "isBuiltIn": false,
5
+ "conditions": {
6
+ "newCode": [
7
+ { "metric": "new_violations", "label": "Issues", "op": "GT", "error": "0" },
8
+ { "metric": "new_security_hotspots_reviewed", "label": "Security Hotspots Reviewed", "op": "LT", "error": "100" },
9
+ { "metric": "new_coverage", "label": "Coverage", "op": "LT", "error": "0.0" },
10
+ { "metric": "new_duplicated_lines_density", "label": "Duplicated Lines (%)", "op": "GT", "error": "45.0" },
11
+ { "metric": "new_maintainability_rating", "label": "Maintainability Rating", "op": "GT", "error": "1" },
12
+ { "metric": "new_blocker_violations", "label": "Blocker Issues", "op": "GT", "error": "0" },
13
+ { "metric": "new_code_smells", "label": "Code Smells", "op": "GT", "error": "20" },
14
+ { "metric": "new_critical_violations", "label": "Critical Issues", "op": "GT", "error": "0" },
15
+ { "metric": "new_major_violations", "label": "Major Issues", "op": "GT", "error": "0" },
16
+ { "metric": "new_vulnerabilities", "label": "Vulnerabilities", "op": "GT", "error": "0" },
17
+ { "metric": "new_reliability_rating", "label": "Reliability Rating", "op": "GT", "error": "1" },
18
+ { "metric": "new_security_rating", "label": "Security Rating", "op": "GT", "error": "1" }
19
+ ],
20
+ "overallCode": [
21
+ { "metric": "blocker_violations", "label": "Blocker Issues", "op": "GT", "error": "0" },
22
+ { "metric": "bugs", "label": "Bugs", "op": "GT", "error": "0" },
23
+ { "metric": "code_smells", "label": "Code Smells", "op": "GT", "error": "50" },
24
+ { "metric": "critical_violations", "label": "Critical Issues", "op": "GT", "error": "0" },
25
+ { "metric": "duplicated_lines_density", "label": "Duplicated Lines (%)", "op": "GT", "error": "45.0" },
26
+ { "metric": "sqale_rating", "label": "Maintainability Rating", "op": "GT", "error": "1" },
27
+ { "metric": "major_violations", "label": "Major Issues", "op": "GT", "error": "0" },
28
+ { "metric": "reliability_rating", "label": "Reliability Rating", "op": "GT", "error": "1" },
29
+ { "metric": "security_rating", "label": "Security Rating", "op": "GT", "error": "1" },
30
+ { "metric": "vulnerabilities", "label": "Vulnerabilities", "op": "GT", "error": "0" }
31
+ ]
32
+ }
33
+ }
@@ -0,0 +1 @@
1
+ <?xml version='1.0' encoding='UTF-8'?><profile><name>sonar-viettel</name><language>java</language><rules><rule><repositoryKey>java</repositoryKey><key>S100</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters><parameter><key>format</key><value>^[a-z][a-zA-Z0-9]*$</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S101</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters><parameter><key>format</key><value>^[A-Z][a-zA-Z0-9]*$</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S106</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1065</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1066</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1068</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S107</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters><parameter><key>max</key><value>7</value></parameter><parameter><key>constructorMax</key><value>7</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S1075</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S108</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S110</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters><parameter><key>max</key><value>5</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S1104</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1110</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1111</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1113</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1116</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1117</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1118</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1119</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S112</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1121</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1123</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1124</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1125</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1126</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1128</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1130</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1133</key><type>CODE_SMELL</type><priority>INFO</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1134</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1135</key><type>CODE_SMELL</type><priority>INFO</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S114</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters><parameter><key>format</key><value>^[A-Z][a-zA-Z0-9]*$</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S1141</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1143</key><type>BUG</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1144</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1149</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S115</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters><parameter><key>format</key><value>^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S1150</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1153</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1155</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1157</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1158</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S116</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters><parameter><key>format</key><value>^[a-z][a-zA-Z0-9]*$</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S1161</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1163</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1165</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1168</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S117</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters><parameter><key>format</key><value>^[a-z][a-zA-Z0-9]*$</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S1170</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1171</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1172</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1174</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1175</key><type>BUG</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1181</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1182</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1185</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1186</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S119</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters><parameter><key>format</key><value>^[A-Z][0-9]?$</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S1190</key><type>CODE_SMELL</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1191</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1192</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters><parameter><key>threshold</key><value>3</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S1193</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1195</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1197</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1199</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S120</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters><parameter><key>format</key><value>^[a-z_]+(\.[a-z_][a-z0-9_]*)*$</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S1201</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1206</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1210</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1214</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1215</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1217</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1219</key><type>CODE_SMELL</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1220</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1221</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1223</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1226</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S125</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1264</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S127</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S128</key><type>CODE_SMELL</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1301</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S131</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1313</key><type>SECURITY_HOTSPOT</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1317</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1319</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S135</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1444</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1450</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1452</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1479</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters><parameter><key>maximum</key><value>30</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S1481</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1488</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1596</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1598</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1602</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1604</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1607</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1611</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1612</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1640</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1643</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1656</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1659</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1700</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1710</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1751</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1764</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1844</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1845</key><type>CODE_SMELL</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1849</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1854</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1858</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1860</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1862</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1871</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1872</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1874</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1905</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1940</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1948</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1989</key><type>VULNERABILITY</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S1994</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2055</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2060</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2061</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2062</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2065</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2066</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2068</key><type>SECURITY_HOTSPOT</type><priority>BLOCKER</priority><parameters><parameter><key>credentialWords</key><value>password,passwd,pwd,passphrase,java.naming.security.credentials</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S2077</key><type>SECURITY_HOTSPOT</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2092</key><type>SECURITY_HOTSPOT</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2093</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2094</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2095</key><type>BUG</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2097</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2109</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2110</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2111</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2112</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2114</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2115</key><type>VULNERABILITY</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2116</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2118</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2119</key><type>BUG</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2121</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2122</key><type>BUG</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2123</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2127</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2129</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2130</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2133</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2134</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2139</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2140</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2142</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2147</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2151</key><type>BUG</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2153</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2154</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2157</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2159</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2160</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2166</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2167</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2168</key><type>BUG</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2175</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2176</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2177</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2178</key><type>CODE_SMELL</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2183</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2184</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2185</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2186</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2187</key><type>CODE_SMELL</type><priority>BLOCKER</priority><parameters><parameter><key>TestClassNamePattern</key><value>.*(Test|Tests|TestCase)</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S2188</key><type>CODE_SMELL</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2189</key><type>BUG</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2200</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2201</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2204</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2209</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2222</key><type>BUG</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2225</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2226</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2229</key><type>BUG</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2230</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2232</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2234</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2235</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2236</key><type>BUG</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2245</key><type>SECURITY_HOTSPOT</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2251</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2252</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2254</key><type>VULNERABILITY</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2257</key><type>SECURITY_HOTSPOT</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2259</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2272</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2273</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2274</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2275</key><type>BUG</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2276</key><type>BUG</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2293</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2326</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2386</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2387</key><type>CODE_SMELL</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2388</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2390</key><type>BUG</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2437</key><type>CODE_SMELL</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2438</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2440</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2441</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2442</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2445</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2446</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2447</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2583</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2589</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2612</key><type>SECURITY_HOTSPOT</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2629</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2637</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2638</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2639</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2674</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2675</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2676</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2677</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2681</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2689</key><type>BUG</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2692</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2695</key><type>BUG</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2696</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2699</key><type>CODE_SMELL</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2718</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2737</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2755</key><type>VULNERABILITY</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2757</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2761</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2786</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2789</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2864</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2885</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2886</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2924</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2925</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2970</key><type>CODE_SMELL</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S2975</key><type>CODE_SMELL</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3008</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters><parameter><key>format</key><value>^[a-z][a-zA-Z0-9]*$</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S3010</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3011</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3012</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3014</key><type>CODE_SMELL</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3020</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3034</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3038</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3039</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3042</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3046</key><type>BUG</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3064</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3065</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3066</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3067</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3077</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3078</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3252</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3305</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3330</key><type>SECURITY_HOTSPOT</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3346</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3358</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3398</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3400</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3415</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3416</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3436</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3457</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3516</key><type>CODE_SMELL</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3518</key><type>BUG</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3551</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3599</key><type>BUG</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3626</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3631</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3655</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3740</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3751</key><type>CODE_SMELL</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3752</key><type>SECURITY_HOTSPOT</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3753</key><type>BUG</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3776</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters><parameter><key>Threshold</key><value>15</value></parameter></parameters></rule><rule><repositoryKey>java</repositoryKey><key>S3824</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3864</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3878</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3923</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3958</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3959</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3972</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3973</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3981</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3984</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3985</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S3986</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4032</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4034</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4042</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4065</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4087</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4143</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4144</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4165</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4201</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4274</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4275</key><type>BUG</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4276</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4347</key><type>VULNERABILITY</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4348</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4349</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4351</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4423</key><type>VULNERABILITY</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4425</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4426</key><type>VULNERABILITY</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4433</key><type>VULNERABILITY</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4434</key><type>SECURITY_HOTSPOT</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4449</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4454</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4488</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4502</key><type>SECURITY_HOTSPOT</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4507</key><type>SECURITY_HOTSPOT</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4512</key><type>SECURITY_HOTSPOT</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4517</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4524</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4544</key><type>SECURITY_HOTSPOT</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4601</key><type>VULNERABILITY</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4602</key><type>BUG</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4635</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4682</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4684</key><type>VULNERABILITY</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4719</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4738</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4790</key><type>SECURITY_HOTSPOT</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4830</key><type>VULNERABILITY</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4838</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4925</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4929</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S4973</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5042</key><type>SECURITY_HOTSPOT</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5122</key><type>SECURITY_HOTSPOT</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5164</key><type>BUG</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5261</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5301</key><type>VULNERABILITY</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5320</key><type>SECURITY_HOTSPOT</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5322</key><type>SECURITY_HOTSPOT</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5324</key><type>SECURITY_HOTSPOT</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5344</key><type>VULNERABILITY</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5361</key><type>CODE_SMELL</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5411</key><type>CODE_SMELL</type><priority>MINOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5413</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5527</key><type>VULNERABILITY</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5542</key><type>VULNERABILITY</type><priority>BLOCKER</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5547</key><type>VULNERABILITY</type><priority>CRITICAL</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5679</key><type>VULNERABILITY</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S5738</key><type>CODE_SMELL</type><priority>MAJOR</priority><parameters/></rule><rule><repositoryKey>java</repositoryKey><key>S899</key><type>BUG</type><priority>MINOR</priority><parameters/></rule></rules></profile>
@@ -100,17 +100,23 @@ Use `/tdd` methodology — behavior-based, vertical slice:
100
100
  [HOTFIX-IMPL] [4/6] SonarQube quality check... ⏳
101
101
  ```
102
102
 
103
- Apply DURING Step 3 (not after). After the fix is complete, final sweep:
103
+ Apply DURING Step 3 (not after). After the fix is complete, final sweep.
104
+
105
+ > **Standard (single source of truth):** **`.claude/skills/_shared/sdlc/sonar-viettel/quality-gate.md`** — full gate, 357-rule parameters, and the importable `sonar-viettel-profile.xml` / `sonar-viettel-gate.json`. Phase 4 (`/sdlc-hotfix-review`) re-checks the same file. A hotfix applies the gate's **New Code** conditions on changed files.
104
106
 
105
107
  | Metric | Threshold |
106
108
  |--------|-----------|
107
- | New Issues | = 0 |
108
- | Blocker/Critical | = 0 |
109
+ | Issues / Blocker / Critical / Major | = 0 |
110
+ | Code Smells (new) | = 0 — stricter than the gate's ≤20 **by design**: a surgical 1–3 line fix has no excuse to add a smell, and `/sdlc-hotfix-review` rejects any new smell |
109
111
  | Vulnerabilities | = 0 |
110
- | Duplicated Lines (new) | 3% |
112
+ | Security Hotspots Reviewed | = 100% |
113
+ | Duplicated Lines (new) | ≤ 45% |
114
+ | Maintainability / Reliability / Security Rating | ≥ A |
115
+
116
+ **Honour the `sonar-viettel` parametrised rules in the changed code** — S107 (params), S3776 (complexity), S1192 (literals), S2068/S2077 (secrets/injection), S100/S101/S115 (naming). **Thresholds are authoritative in the profile XML** — derive them via the snippet in the shared `quality-gate.md`, do not hard-code numbers.
111
117
 
112
- - If project has SonarQube → run `sonar-scanner` incremental
113
- - If not → Claude self-reviews changed files against metrics above
118
+ - If project has SonarQube → import the profile + gate from the shared folder, then run `sonar-scanner` incremental
119
+ - If not → Claude self-reviews changed files against the shared `quality-gate.md`
114
120
 
115
121
  ```
116
122
  [HOTFIX-IMPL] [4/6] SonarQube quality check... ✅
@@ -94,6 +94,8 @@ Read the reproduction test and verify:
94
94
  | Security Hotspots | 0 |
95
95
  | New code smells | 0 |
96
96
 
97
+ > **Standard (single source of truth):** **`.claude/skills/_shared/sdlc/sonar-viettel/quality-gate.md`** — full gate + 357-rule parameters + importable `sonar-viettel-profile.xml` / `sonar-viettel-gate.json`. Same file Phase 3 (`/sdlc-hotfix-implement`) coded against. If SonarQube is present, scan changed files against the `sonar-viettel` profile + gate; otherwise re-check manually. `New code smells = 0` is intentionally stricter than the gate's ≤20 for surgical fixes.
98
+
97
99
  ```
98
100
  [HOTFIX-REVIEW] [4/4] Impact check + quality gate... ✅
99
101
  ```
@@ -57,26 +57,21 @@ You are a Senior Software Engineer. Your mission: implement code following TDD
57
57
 
58
58
  ## SonarQube Quality Gate — Apply DURING Coding
59
59
 
60
- ⚠️ **DO NOT wait for review phase.** Each subagent MUST self-check these thresholds WHILE writing code:
61
-
62
- | Metric | Threshold | Action |
63
- |--------|-----------|--------|
64
- | Issues | = 0 | Do not create new issues |
65
- | Blocker Issues | = 0 | STOP immediately if detected |
66
- | Critical Issues | = 0 | STOP immediately if detected |
67
- | Major Issues | = 0 | Fix before continuing |
68
- | Vulnerabilities | = 0 | Scan security for each function |
69
- | Security Rating | ≥ A | No hardcoded secrets, no injection |
70
- | Duplicated Lines | ≤ 45% | Extract common code immediately |
71
- | Maintainability Rating | ≥ A | SOLID, clean code, short methods |
72
- | Reliability Rating | ≥ A | Null-safe, resource management, error handling |
60
+ ⚠️ **DO NOT wait for review phase.** Each subagent MUST self-check the `sonar-viettel` gate WHILE writing code.
61
+
62
+ > **Standard (single source of truth):** **`.claude/skills/_shared/sdlc/sonar-viettel/quality-gate.md`** — full New Code + Overall Code tables, the 357-rule parameters, and the importable `sonar-viettel-profile.xml` / `sonar-viettel-gate.json`. **Read it.** Phase 7 (`/sdlc-review`) re-checks the **same** file — anything that passes here must pass there. Do NOT invent stricter or looser values.
63
+
64
+ **Hard fails to self-check (summary see the shared doc for the full gate):**
65
+ - New Code: Issues / Blocker / Critical / Major / Vulnerabilities = **0**; Code Smells **≤ 20**; Security Hotspots Reviewed = **100%**; Duplicated **≤ 45%**; Maintainability / Reliability / Security Rating **≥ A**.
66
+ - Overall Code: Bugs = **0**; Code Smells **≤ 50**; same Blocker/Critical/Major/Vuln/Duplication/rating rules.
67
+ - Honour the parametrised rules S107 (params), S3776 (complexity), S110 (inheritance), S1479 (switch), S1192 (literals), S2068/S2077 (secrets/injection), S100/S101/S115 (naming). **Thresholds live authoritatively in the profile XML** — derive them via the snippet in the shared `quality-gate.md`, do not memorise numbers.
73
68
 
74
69
  **How to apply during coding:**
75
- - **After each function is written** → self-review: security vulnerabilities? code smells? duplication?
76
- - **After each class is written** → check SOLID violations, naming conventions, interface segregation
77
- - **Before each commit** → scan all changed files for: SQL injection, XSS, command injection, hardcoded secrets, null dereference, resource leaks, concurrency issues, duplicated blocks
78
- - If the project has SonarQube → run `sonar-scanner` incremental
79
- - If the project does NOT have SonarQube → Claude self-reviews against the metrics above
70
+ - **After each function** → self-review: security vulnerabilities? code smells? duplication?
71
+ - **After each class** → check SOLID violations, naming conventions, interface segregation
72
+ - **Before each commit** → scan changed files for: SQL injection, XSS, command injection, hardcoded secrets, null dereference, resource leaks, concurrency issues, duplicated blocks
73
+ - If the project has SonarQube → import the profile + gate from the shared folder, then run `sonar-scanner` incremental
74
+ - If not → Claude self-reviews against the shared `quality-gate.md`
80
75
 
81
76
  **Goal:** Review phase should only need to RE-CHECK, not find bugs for the first time.
82
77
 
@@ -210,7 +205,7 @@ Use GitNexus `rename` — safe multi-file refactoring if needed.
210
205
  4. **Test suite run**: `npm test` / `mvn test` / equivalent → All tests PASS
211
206
 
212
207
  5. **Final SonarQube sweep**: Scan all new code one last time before exiting
213
- - Confirm: Issues=0, Blocker=0, Critical=0, Major=0, Vulns=0
208
+ - Confirm both New Code and Overall Code conditions are green per the shared `quality-gate.md` (single source of truth)
214
209
  - If FAIL → fix immediately, this is a hard gate
215
210
 
216
211
  ⚠️ **DO NOT exit the phase if code does not compile.** This is a hard gate — no exceptions.
@@ -243,7 +238,8 @@ Multi-repo:
243
238
  In PHASE REPORT:
244
239
  - Done: N tasks completed, M tests written, K subagents dispatched
245
240
  - Result: all tests PASS/FAIL
246
- - SonarQube: Issues=0, Blocker=0, Critical=0, Major=0, Vulns=0, Duplication={N}%
241
+ - SonarQube (New Code): {PASS/FAIL vs shared gate} — Issues={N}, Blocker={N}, Critical={N}, Major={N}, Code Smells={N}, Vulns={N}, Hotspots Reviewed={N}%, Duplication={N}%
242
+ - SonarQube (Overall): {PASS/FAIL vs shared gate} — Bugs={N}, Code Smells={N}, Duplication={N}%, ratings={A..E}
247
243
  - Output files: `07-impl-plan.md`
248
244
  - Code changes: {list files changed}
249
245
  - Suggestions: [1] Phase 7 Review (`/sdlc-review`) [2] Save artifacts
@@ -21,6 +21,7 @@ import { execSync } from 'child_process';
21
21
 
22
22
  const projectPath = process.argv[2] || process.cwd();
23
23
  const isWin = process.platform === 'win32';
24
+ const isMac = process.platform === 'darwin';
24
25
 
25
26
  // ── Node.js LTS Check ──
26
27
  // Even-numbered major versions (22, 24, 26…) are LTS; odd (23, 25…) are Current/non-LTS.
@@ -33,7 +34,9 @@ if (nodeMajor % 2 !== 0) {
33
34
  console.warn(' Recommended: switch to an LTS version (v22 or v24).');
34
35
  console.warn(isWin
35
36
  ? ' → nvm install lts OR winget install OpenJS.NodeJS.LTS\n'
36
- : ' → nvm install --lts OR brew install node@24\n');
37
+ : isMac
38
+ ? ' → nvm install --lts OR brew install node@24\n'
39
+ : ' → nvm install --lts OR sudo apt install nodejs\n');
37
40
  }
38
41
 
39
42
  // ── Config ──
@@ -86,48 +86,21 @@ Write to `08-review.md` §Code Review.
86
86
 
87
87
  **IMPORTANT:** SonarQube rules were already applied in Phase 6 (Implementation). The Review phase only RE-CHECKS — confirming that code still meets standards after all changes.
88
88
 
89
- Verify that code meets SonarQube Quality Gate thresholds:
90
-
91
- **Conditions on New Code (new code in the feature):**
92
-
93
- | Metric | Threshold |
94
- |--------|-----------|
95
- | Issues | = 0 |
96
- | Security Hotspots Reviewed | = 100% |
97
- | Coverage | ≥ 0% |
98
- | Duplicated Lines | ≤ 45% |
99
- | Maintainability Rating | ≥ A |
100
- | Blocker Issues | = 0 |
101
- | Code Smells | ≤ 20 |
102
- | Critical Issues | = 0 |
103
- | Major Issues | = 0 |
104
- | Vulnerabilities | = 0 |
105
- | Reliability Rating | ≥ A |
106
- | Security Rating | ≥ A |
107
-
108
- **Conditions on Overall Code (the entire codebase):**
109
-
110
- | Metric | Threshold |
111
- |--------|-----------|
112
- | Blocker Issues | = 0 |
113
- | Bugs | = 0 |
114
- | Code Smells | ≤ 50 |
115
- | Critical Issues | = 0 |
116
- | Duplicated Lines | ≤ 45% |
117
- | Maintainability Rating | ≥ A |
118
- | Major Issues | = 0 |
119
- | Reliability Rating | ≥ A |
120
- | Security Rating | ≥ A |
121
- | Vulnerabilities | = 0 |
89
+ Verify that code meets the `sonar-viettel` Quality Gate.
90
+
91
+ > **Standard (single source of truth):** **`.claude/skills/_shared/sdlc/sonar-viettel/quality-gate.md`** — the full New Code + Overall Code tables, the 357-rule parameters, and the importable `sonar-viettel-profile.xml` / `sonar-viettel-gate.json`. This is the **same** file Phase 6 (`/sdlc-implement`) coded against — review only confirms compliance, do not change the numbers.
92
+
93
+ **Hard fails to confirm (summary — see the shared doc for the full gate):**
94
+ - New Code: Issues / Blocker / Critical / Major / Vulnerabilities = **0**; Code Smells **≤ 20**; Security Hotspots Reviewed = **100%**; Duplicated **≤ 45%**; Maintainability / Reliability / Security Rating **≥ A**.
95
+ - Overall Code: Bugs = **0**; Code Smells **≤ 50**; same Blocker/Critical/Major/Vuln/Duplication/rating rules.
122
96
 
123
97
  **How to execute:**
124
- - If the project has SonarQube → run `sonar-scanner` and check the report
125
- - If there is NO SonarQube → Claude performs a manual re-check against the metrics above:
98
+ - If the project has SonarQube → ensure it uses the `sonar-viettel` Profile + Gate (import from the shared folder if missing), run `sonar-scanner`, and check the report
99
+ - If there is NO SonarQube → Claude performs a manual re-check against the shared `quality-gate.md`:
126
100
  - Scan for security vulnerabilities (SQL injection, XSS, command injection, hardcoded secrets)
127
101
  - Scan for bugs (null dereference, resource leaks, concurrency issues)
128
102
  - Scan for code smells (long methods, deep nesting, duplicated blocks)
129
- - Verify naming conventions, SOLID principles
130
- - Check duplicated code blocks
103
+ - Verify naming conventions, SOLID principles, duplicated blocks
131
104
  - Write results to `08-review.md` §Quality Gate
132
105
 
133
106
  **Quality Gate FAIL** → classify each issue as MUST FIX / SHOULD FIX / NOTED per the triage rules below.