@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 +1 -1
- package/packages/cli/dist/commands/install.d.ts.map +1 -1
- package/packages/cli/dist/commands/install.js +19 -3
- package/packages/cli/dist/commands/install.js.map +1 -1
- package/skills/sdlc/_shared/sonar-viettel/quality-gate.md +74 -0
- package/skills/sdlc/_shared/sonar-viettel/sonar-viettel-gate.json +33 -0
- package/skills/sdlc/_shared/sonar-viettel/sonar-viettel-profile.xml +1 -0
- package/skills/sdlc/hotfix-implement/SKILL.md +12 -6
- package/skills/sdlc/hotfix-review/SKILL.md +2 -0
- package/skills/sdlc/implement/SKILL.md +16 -20
- package/skills/sdlc/install-deps.mjs +4 -1
- package/skills/sdlc/review/SKILL.md +10 -37
package/package.json
CHANGED
|
@@ -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;
|
|
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
|
|
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
|
-
:
|
|
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
|
-
|
|
|
108
|
-
|
|
|
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
|
-
|
|
|
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
|
|
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
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
|
76
|
-
- **After each class
|
|
77
|
-
- **Before each commit** → scan
|
|
78
|
-
- If the project has SonarQube → run `sonar-scanner` incremental
|
|
79
|
-
- If
|
|
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
|
|
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=
|
|
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
|
-
:
|
|
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
|
|
90
|
-
|
|
91
|
-
**
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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
|
|
125
|
-
- If there is NO SonarQube → Claude performs a manual re-check against the
|
|
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.
|