forgecraft-mcp 1.2.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +525 -525
- package/dist/cli/help.js +44 -44
- package/dist/registry/renderer-skeletons.js +92 -92
- package/dist/shared/gs-score-logger.js +6 -6
- package/dist/tools/add-module.js +123 -123
- package/dist/tools/advice-registry.js +18 -18
- package/dist/tools/check-cascade-report.js +64 -64
- package/dist/tools/configure-mcp.d.ts +3 -0
- package/dist/tools/configure-mcp.d.ts.map +1 -1
- package/dist/tools/configure-mcp.js +10 -0
- package/dist/tools/configure-mcp.js.map +1 -1
- package/dist/tools/forgecraft-dispatch.d.ts.map +1 -1
- package/dist/tools/forgecraft-dispatch.js +3 -0
- package/dist/tools/forgecraft-dispatch.js.map +1 -1
- package/dist/tools/forgecraft-schema-params.d.ts +9 -0
- package/dist/tools/forgecraft-schema-params.d.ts.map +1 -1
- package/dist/tools/forgecraft-schema-params.js +21 -0
- package/dist/tools/forgecraft-schema-params.js.map +1 -1
- package/dist/tools/forgecraft-schema.d.ts +9 -0
- package/dist/tools/forgecraft-schema.d.ts.map +1 -1
- package/dist/tools/refresh-output.js +14 -14
- package/dist/tools/scaffold-spec-stubs.js +115 -115
- package/dist/tools/scaffold-templates.js +62 -62
- package/dist/tools/setup-artifact-writers.d.ts +30 -0
- package/dist/tools/setup-artifact-writers.d.ts.map +1 -1
- package/dist/tools/setup-artifact-writers.js +120 -8
- package/dist/tools/setup-artifact-writers.js.map +1 -1
- package/dist/tools/setup-phase1.d.ts +3 -0
- package/dist/tools/setup-phase1.d.ts.map +1 -1
- package/dist/tools/setup-phase1.js +79 -35
- package/dist/tools/setup-phase1.js.map +1 -1
- package/dist/tools/setup-phase2.d.ts +2 -0
- package/dist/tools/setup-phase2.d.ts.map +1 -1
- package/dist/tools/setup-phase2.js +10 -1
- package/dist/tools/setup-phase2.js.map +1 -1
- package/dist/tools/setup-project.d.ts +18 -0
- package/dist/tools/setup-project.d.ts.map +1 -1
- package/dist/tools/setup-project.js +77 -1
- package/dist/tools/setup-project.js.map +1 -1
- package/dist/tools/spec-parser-tags.d.ts +9 -0
- package/dist/tools/spec-parser-tags.d.ts.map +1 -1
- package/dist/tools/spec-parser-tags.js +92 -0
- package/dist/tools/spec-parser-tags.js.map +1 -1
- package/package.json +89 -86
- package/templates/analytics/instructions.yaml +37 -37
- package/templates/analytics/mcp-servers.yaml +11 -11
- package/templates/analytics/structure.yaml +25 -25
- package/templates/api/instructions.yaml +231 -231
- package/templates/api/mcp-servers.yaml +22 -13
- package/templates/api/nfr.yaml +23 -23
- package/templates/api/review.yaml +103 -103
- package/templates/api/structure.yaml +34 -34
- package/templates/api/verification.yaml +132 -132
- package/templates/cli/instructions.yaml +31 -31
- package/templates/cli/mcp-servers.yaml +11 -11
- package/templates/cli/review.yaml +53 -53
- package/templates/cli/structure.yaml +16 -16
- package/templates/data-lineage/instructions.yaml +28 -28
- package/templates/data-lineage/mcp-servers.yaml +22 -22
- package/templates/data-pipeline/instructions.yaml +84 -84
- package/templates/data-pipeline/mcp-servers.yaml +13 -13
- package/templates/data-pipeline/nfr.yaml +39 -39
- package/templates/data-pipeline/structure.yaml +23 -23
- package/templates/fintech/hooks.yaml +55 -55
- package/templates/fintech/instructions.yaml +112 -112
- package/templates/fintech/mcp-servers.yaml +13 -13
- package/templates/fintech/nfr.yaml +46 -46
- package/templates/fintech/playbook.yaml +210 -210
- package/templates/fintech/verification.yaml +239 -239
- package/templates/game/instructions.yaml +289 -289
- package/templates/game/mcp-servers.yaml +38 -38
- package/templates/game/nfr.yaml +64 -64
- package/templates/game/playbook.yaml +214 -214
- package/templates/game/review.yaml +97 -97
- package/templates/game/structure.yaml +67 -67
- package/templates/game/verification.yaml +174 -174
- package/templates/healthcare/instructions.yaml +42 -42
- package/templates/healthcare/mcp-servers.yaml +13 -13
- package/templates/healthcare/nfr.yaml +47 -47
- package/templates/hipaa/instructions.yaml +41 -41
- package/templates/hipaa/mcp-servers.yaml +13 -13
- package/templates/infra/instructions.yaml +104 -104
- package/templates/infra/mcp-servers.yaml +20 -20
- package/templates/infra/nfr.yaml +46 -46
- package/templates/infra/review.yaml +65 -65
- package/templates/infra/structure.yaml +25 -25
- package/templates/library/instructions.yaml +36 -36
- package/templates/library/mcp-servers.yaml +20 -20
- package/templates/library/review.yaml +56 -56
- package/templates/library/structure.yaml +19 -19
- package/templates/medallion-architecture/instructions.yaml +41 -41
- package/templates/medallion-architecture/mcp-servers.yaml +22 -22
- package/templates/ml/instructions.yaml +85 -85
- package/templates/ml/mcp-servers.yaml +11 -11
- package/templates/ml/nfr.yaml +39 -39
- package/templates/ml/structure.yaml +25 -25
- package/templates/ml/verification.yaml +156 -156
- package/templates/mobile/instructions.yaml +44 -44
- package/templates/mobile/mcp-servers.yaml +11 -11
- package/templates/mobile/nfr.yaml +49 -49
- package/templates/mobile/structure.yaml +27 -27
- package/templates/mobile/verification.yaml +121 -121
- package/templates/observability-xray/instructions.yaml +40 -40
- package/templates/observability-xray/mcp-servers.yaml +15 -15
- package/templates/realtime/instructions.yaml +42 -42
- package/templates/realtime/mcp-servers.yaml +13 -13
- package/templates/soc2/instructions.yaml +41 -41
- package/templates/soc2/mcp-servers.yaml +24 -24
- package/templates/social/instructions.yaml +43 -43
- package/templates/social/mcp-servers.yaml +24 -24
- package/templates/state-machine/instructions.yaml +42 -42
- package/templates/state-machine/mcp-servers.yaml +11 -11
- package/templates/tools-registry.yaml +164 -164
- package/templates/universal/hooks.yaml +531 -531
- package/templates/universal/instructions.yaml +1692 -1692
- package/templates/universal/mcp-servers.yaml +50 -50
- package/templates/universal/nfr.yaml +197 -197
- package/templates/universal/reference.yaml +326 -326
- package/templates/universal/review.yaml +204 -204
- package/templates/universal/skills.yaml +262 -262
- package/templates/universal/structure.yaml +67 -67
- package/templates/universal/verification.yaml +416 -416
- package/templates/web-react/hooks.yaml +44 -44
- package/templates/web-react/instructions.yaml +207 -207
- package/templates/web-react/mcp-servers.yaml +20 -20
- package/templates/web-react/nfr.yaml +27 -27
- package/templates/web-react/review.yaml +94 -94
- package/templates/web-react/structure.yaml +46 -46
- package/templates/web-react/verification.yaml +126 -126
- package/templates/web-static/instructions.yaml +115 -115
- package/templates/web-static/mcp-servers.yaml +20 -20
- package/templates/web3/instructions.yaml +44 -44
- package/templates/web3/mcp-servers.yaml +11 -11
- package/templates/web3/verification.yaml +159 -159
- package/templates/zero-trust/instructions.yaml +41 -41
- package/templates/zero-trust/mcp-servers.yaml +15 -15
|
@@ -1,164 +1,164 @@
|
|
|
1
|
-
# Tools Registry — Recommended tools by process + language/tag
|
|
2
|
-
# Gates reference process IDs. This registry says what tool to use for each process
|
|
3
|
-
# given the project's tech stack. Language-agnostic gates + stack-specific tool recommendations.
|
|
4
|
-
# This is a RECOMMENDATION, not a requirement. Teams choose their own tools.
|
|
5
|
-
version: "1"
|
|
6
|
-
|
|
7
|
-
processes:
|
|
8
|
-
- id: mutation-testing
|
|
9
|
-
description: "Verify test quality by injecting synthetic bugs and checking that tests catch them"
|
|
10
|
-
gsProperty: verifiable
|
|
11
|
-
phase: pre-release
|
|
12
|
-
recommended:
|
|
13
|
-
- stack: ["TYPESCRIPT", "JAVASCRIPT"]
|
|
14
|
-
tool: stryker
|
|
15
|
-
package: "@stryker-mutator/core"
|
|
16
|
-
config: stryker.config.json
|
|
17
|
-
install: "npm install --save-dev @stryker-mutator/core @stryker-mutator/vitest-runner"
|
|
18
|
-
run: "npx stryker run"
|
|
19
|
-
threshold: "MSI ≥ 80% on changed files"
|
|
20
|
-
- stack: ["PYTHON"]
|
|
21
|
-
tool: mutmut
|
|
22
|
-
package: mutmut
|
|
23
|
-
config: "setup.cfg [mutmut] section"
|
|
24
|
-
install: "pip install mutmut"
|
|
25
|
-
run: "mutmut run && mutmut results"
|
|
26
|
-
threshold: "MSI ≥ 80% on changed files"
|
|
27
|
-
- stack: ["JAVA", "KOTLIN"]
|
|
28
|
-
tool: pitest
|
|
29
|
-
package: "org.pitest:pitest-maven"
|
|
30
|
-
config: pom.xml
|
|
31
|
-
install: "Add pitest-maven plugin"
|
|
32
|
-
run: "mvn test-compile org.pitest:pitest-maven:mutationCoverage"
|
|
33
|
-
threshold: "mutation coverage ≥ 80%"
|
|
34
|
-
- stack: ["RUST"]
|
|
35
|
-
tool: cargo-mutants
|
|
36
|
-
package: cargo-mutants
|
|
37
|
-
install: "cargo install cargo-mutants"
|
|
38
|
-
run: "cargo mutants"
|
|
39
|
-
threshold: "All mutants caught or documented as equivalent"
|
|
40
|
-
- stack: ["GO"]
|
|
41
|
-
tool: gremlins
|
|
42
|
-
package: gremlins
|
|
43
|
-
install: "go install github.com/go-gremlins/gremlins/cmd/gremlins@latest"
|
|
44
|
-
run: "gremlins unleash"
|
|
45
|
-
threshold: "MSI ≥ 80%"
|
|
46
|
-
|
|
47
|
-
- id: dast-scanning
|
|
48
|
-
description: "Dynamic application security testing against a running service"
|
|
49
|
-
gsProperty: defended
|
|
50
|
-
phase: pre-release
|
|
51
|
-
owasp_asvs_level: 2
|
|
52
|
-
recommended:
|
|
53
|
-
- stack: ["API", "WEB-REACT", "UNIVERSAL"]
|
|
54
|
-
tool: owasp-zap
|
|
55
|
-
package: "owasp/zap2docker-stable (Docker)"
|
|
56
|
-
install: "docker pull owasp/zap2docker-stable"
|
|
57
|
-
run: "docker run -t owasp/zap2docker-stable zap-api-scan.py -t <openapi-url> -f openapi"
|
|
58
|
-
threshold: "Zero HIGH findings; all MEDIUM triaged"
|
|
59
|
-
- stack: ["API"]
|
|
60
|
-
tool: nuclei
|
|
61
|
-
package: nuclei
|
|
62
|
-
install: "go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest"
|
|
63
|
-
run: "nuclei -u <target-url> -severity high,critical"
|
|
64
|
-
threshold: "Zero HIGH/CRITICAL findings"
|
|
65
|
-
|
|
66
|
-
- id: static-analysis
|
|
67
|
-
description: "OWASP ASVS Level 1 static security checks run at commit time"
|
|
68
|
-
gsProperty: defended
|
|
69
|
-
phase: development
|
|
70
|
-
owasp_asvs_level: 1
|
|
71
|
-
recommended:
|
|
72
|
-
- stack: ["TYPESCRIPT", "JAVASCRIPT"]
|
|
73
|
-
tool: semgrep
|
|
74
|
-
install: "pip install semgrep"
|
|
75
|
-
run: "semgrep --config=p/owasp-top-ten ."
|
|
76
|
-
threshold: "Zero HIGH findings"
|
|
77
|
-
- stack: ["PYTHON"]
|
|
78
|
-
tool: bandit
|
|
79
|
-
install: "pip install bandit"
|
|
80
|
-
run: "bandit -r src/ -ll"
|
|
81
|
-
threshold: "Zero HIGH/CRITICAL findings"
|
|
82
|
-
- stack: ["JAVA"]
|
|
83
|
-
tool: spotbugs
|
|
84
|
-
install: "Add spotbugs-maven-plugin"
|
|
85
|
-
run: "mvn spotbugs:check"
|
|
86
|
-
threshold: "Zero HIGH findings"
|
|
87
|
-
- stack: ["GO"]
|
|
88
|
-
tool: gosec
|
|
89
|
-
install: "go install github.com/securecodewarrior/gosec/v2/cmd/gosec@latest"
|
|
90
|
-
run: "gosec ./..."
|
|
91
|
-
threshold: "Zero HIGH findings"
|
|
92
|
-
|
|
93
|
-
- id: load-testing
|
|
94
|
-
description: "Verify system behavior under stated load parameters"
|
|
95
|
-
gsProperty: verifiable
|
|
96
|
-
phase: pre-release
|
|
97
|
-
recommended:
|
|
98
|
-
- stack: ["UNIVERSAL"]
|
|
99
|
-
tool: k6
|
|
100
|
-
install: "brew install k6 / choco install k6 / apt install k6"
|
|
101
|
-
run: "k6 run load-test.js"
|
|
102
|
-
threshold: "p95 ≤ SLA; error rate < 1%"
|
|
103
|
-
- stack: ["PYTHON"]
|
|
104
|
-
tool: locust
|
|
105
|
-
install: "pip install locust"
|
|
106
|
-
run: "locust -f locustfile.py --headless -u <users> -r <spawn-rate>"
|
|
107
|
-
threshold: "p95 ≤ SLA; error rate < 1%"
|
|
108
|
-
- stack: ["API"]
|
|
109
|
-
tool: artillery
|
|
110
|
-
install: "npm install -g artillery"
|
|
111
|
-
run: "artillery run load-test.yml"
|
|
112
|
-
threshold: "p95 ≤ SLA; error rate < 1%"
|
|
113
|
-
|
|
114
|
-
- id: dependency-audit
|
|
115
|
-
description: "Check direct and transitive dependencies for known CVEs"
|
|
116
|
-
gsProperty: defended
|
|
117
|
-
phase: development
|
|
118
|
-
owasp_asvs_level: 1
|
|
119
|
-
recommended:
|
|
120
|
-
- stack: ["TYPESCRIPT", "JAVASCRIPT"]
|
|
121
|
-
tool: npm-audit
|
|
122
|
-
run: "npm audit --audit-level=high"
|
|
123
|
-
threshold: "Zero HIGH/CRITICAL"
|
|
124
|
-
- stack: ["PYTHON"]
|
|
125
|
-
tool: pip-audit
|
|
126
|
-
install: "pip install pip-audit"
|
|
127
|
-
run: "pip-audit --fail-on-severity high"
|
|
128
|
-
threshold: "Zero HIGH/CRITICAL"
|
|
129
|
-
- stack: ["RUST"]
|
|
130
|
-
tool: cargo-audit
|
|
131
|
-
install: "cargo install cargo-audit"
|
|
132
|
-
run: "cargo audit"
|
|
133
|
-
threshold: "Zero HIGH/CRITICAL"
|
|
134
|
-
- stack: ["GO"]
|
|
135
|
-
tool: govulncheck
|
|
136
|
-
install: "go install golang.org/x/vuln/cmd/govulncheck@latest"
|
|
137
|
-
run: "govulncheck ./..."
|
|
138
|
-
threshold: "Zero directly-imported vulnerabilities"
|
|
139
|
-
- stack: ["JAVA"]
|
|
140
|
-
tool: owasp-dependency-check
|
|
141
|
-
install: "Add dependency-check-maven plugin"
|
|
142
|
-
run: "mvn dependency-check:check -DfailBuildOnCVSS=7"
|
|
143
|
-
threshold: "Zero CVSS ≥ 7"
|
|
144
|
-
|
|
145
|
-
- id: smoke-testing
|
|
146
|
-
description: "Fast verification that critical paths work in a live environment"
|
|
147
|
-
gsProperty: executable
|
|
148
|
-
phase: deployment
|
|
149
|
-
recommended:
|
|
150
|
-
- stack: ["API"]
|
|
151
|
-
tool: hurl
|
|
152
|
-
install: "curl -LO https://github.com/Orange-OpenSource/hurl/releases/latest"
|
|
153
|
-
run: "hurl tests/smoke/*.hurl --test"
|
|
154
|
-
threshold: "All requests return expected status codes in < 60s total"
|
|
155
|
-
- stack: ["API"]
|
|
156
|
-
tool: newman
|
|
157
|
-
install: "npm install -g newman"
|
|
158
|
-
run: "newman run tests/smoke/collection.json"
|
|
159
|
-
threshold: "Zero failed requests in < 60s total"
|
|
160
|
-
- stack: ["WEB-REACT", "WEB-STATIC"]
|
|
161
|
-
tool: playwright
|
|
162
|
-
install: "npm install -D @playwright/test && npx playwright install"
|
|
163
|
-
run: "npx playwright test tests/smoke/"
|
|
164
|
-
threshold: "All smoke scenarios pass in < 60s"
|
|
1
|
+
# Tools Registry — Recommended tools by process + language/tag
|
|
2
|
+
# Gates reference process IDs. This registry says what tool to use for each process
|
|
3
|
+
# given the project's tech stack. Language-agnostic gates + stack-specific tool recommendations.
|
|
4
|
+
# This is a RECOMMENDATION, not a requirement. Teams choose their own tools.
|
|
5
|
+
version: "1"
|
|
6
|
+
|
|
7
|
+
processes:
|
|
8
|
+
- id: mutation-testing
|
|
9
|
+
description: "Verify test quality by injecting synthetic bugs and checking that tests catch them"
|
|
10
|
+
gsProperty: verifiable
|
|
11
|
+
phase: pre-release
|
|
12
|
+
recommended:
|
|
13
|
+
- stack: ["TYPESCRIPT", "JAVASCRIPT"]
|
|
14
|
+
tool: stryker
|
|
15
|
+
package: "@stryker-mutator/core"
|
|
16
|
+
config: stryker.config.json
|
|
17
|
+
install: "npm install --save-dev @stryker-mutator/core @stryker-mutator/vitest-runner"
|
|
18
|
+
run: "npx stryker run"
|
|
19
|
+
threshold: "MSI ≥ 80% on changed files"
|
|
20
|
+
- stack: ["PYTHON"]
|
|
21
|
+
tool: mutmut
|
|
22
|
+
package: mutmut
|
|
23
|
+
config: "setup.cfg [mutmut] section"
|
|
24
|
+
install: "pip install mutmut"
|
|
25
|
+
run: "mutmut run && mutmut results"
|
|
26
|
+
threshold: "MSI ≥ 80% on changed files"
|
|
27
|
+
- stack: ["JAVA", "KOTLIN"]
|
|
28
|
+
tool: pitest
|
|
29
|
+
package: "org.pitest:pitest-maven"
|
|
30
|
+
config: pom.xml
|
|
31
|
+
install: "Add pitest-maven plugin"
|
|
32
|
+
run: "mvn test-compile org.pitest:pitest-maven:mutationCoverage"
|
|
33
|
+
threshold: "mutation coverage ≥ 80%"
|
|
34
|
+
- stack: ["RUST"]
|
|
35
|
+
tool: cargo-mutants
|
|
36
|
+
package: cargo-mutants
|
|
37
|
+
install: "cargo install cargo-mutants"
|
|
38
|
+
run: "cargo mutants"
|
|
39
|
+
threshold: "All mutants caught or documented as equivalent"
|
|
40
|
+
- stack: ["GO"]
|
|
41
|
+
tool: gremlins
|
|
42
|
+
package: gremlins
|
|
43
|
+
install: "go install github.com/go-gremlins/gremlins/cmd/gremlins@latest"
|
|
44
|
+
run: "gremlins unleash"
|
|
45
|
+
threshold: "MSI ≥ 80%"
|
|
46
|
+
|
|
47
|
+
- id: dast-scanning
|
|
48
|
+
description: "Dynamic application security testing against a running service"
|
|
49
|
+
gsProperty: defended
|
|
50
|
+
phase: pre-release
|
|
51
|
+
owasp_asvs_level: 2
|
|
52
|
+
recommended:
|
|
53
|
+
- stack: ["API", "WEB-REACT", "UNIVERSAL"]
|
|
54
|
+
tool: owasp-zap
|
|
55
|
+
package: "owasp/zap2docker-stable (Docker)"
|
|
56
|
+
install: "docker pull owasp/zap2docker-stable"
|
|
57
|
+
run: "docker run -t owasp/zap2docker-stable zap-api-scan.py -t <openapi-url> -f openapi"
|
|
58
|
+
threshold: "Zero HIGH findings; all MEDIUM triaged"
|
|
59
|
+
- stack: ["API"]
|
|
60
|
+
tool: nuclei
|
|
61
|
+
package: nuclei
|
|
62
|
+
install: "go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest"
|
|
63
|
+
run: "nuclei -u <target-url> -severity high,critical"
|
|
64
|
+
threshold: "Zero HIGH/CRITICAL findings"
|
|
65
|
+
|
|
66
|
+
- id: static-analysis
|
|
67
|
+
description: "OWASP ASVS Level 1 static security checks run at commit time"
|
|
68
|
+
gsProperty: defended
|
|
69
|
+
phase: development
|
|
70
|
+
owasp_asvs_level: 1
|
|
71
|
+
recommended:
|
|
72
|
+
- stack: ["TYPESCRIPT", "JAVASCRIPT"]
|
|
73
|
+
tool: semgrep
|
|
74
|
+
install: "pip install semgrep"
|
|
75
|
+
run: "semgrep --config=p/owasp-top-ten ."
|
|
76
|
+
threshold: "Zero HIGH findings"
|
|
77
|
+
- stack: ["PYTHON"]
|
|
78
|
+
tool: bandit
|
|
79
|
+
install: "pip install bandit"
|
|
80
|
+
run: "bandit -r src/ -ll"
|
|
81
|
+
threshold: "Zero HIGH/CRITICAL findings"
|
|
82
|
+
- stack: ["JAVA"]
|
|
83
|
+
tool: spotbugs
|
|
84
|
+
install: "Add spotbugs-maven-plugin"
|
|
85
|
+
run: "mvn spotbugs:check"
|
|
86
|
+
threshold: "Zero HIGH findings"
|
|
87
|
+
- stack: ["GO"]
|
|
88
|
+
tool: gosec
|
|
89
|
+
install: "go install github.com/securecodewarrior/gosec/v2/cmd/gosec@latest"
|
|
90
|
+
run: "gosec ./..."
|
|
91
|
+
threshold: "Zero HIGH findings"
|
|
92
|
+
|
|
93
|
+
- id: load-testing
|
|
94
|
+
description: "Verify system behavior under stated load parameters"
|
|
95
|
+
gsProperty: verifiable
|
|
96
|
+
phase: pre-release
|
|
97
|
+
recommended:
|
|
98
|
+
- stack: ["UNIVERSAL"]
|
|
99
|
+
tool: k6
|
|
100
|
+
install: "brew install k6 / choco install k6 / apt install k6"
|
|
101
|
+
run: "k6 run load-test.js"
|
|
102
|
+
threshold: "p95 ≤ SLA; error rate < 1%"
|
|
103
|
+
- stack: ["PYTHON"]
|
|
104
|
+
tool: locust
|
|
105
|
+
install: "pip install locust"
|
|
106
|
+
run: "locust -f locustfile.py --headless -u <users> -r <spawn-rate>"
|
|
107
|
+
threshold: "p95 ≤ SLA; error rate < 1%"
|
|
108
|
+
- stack: ["API"]
|
|
109
|
+
tool: artillery
|
|
110
|
+
install: "npm install -g artillery"
|
|
111
|
+
run: "artillery run load-test.yml"
|
|
112
|
+
threshold: "p95 ≤ SLA; error rate < 1%"
|
|
113
|
+
|
|
114
|
+
- id: dependency-audit
|
|
115
|
+
description: "Check direct and transitive dependencies for known CVEs"
|
|
116
|
+
gsProperty: defended
|
|
117
|
+
phase: development
|
|
118
|
+
owasp_asvs_level: 1
|
|
119
|
+
recommended:
|
|
120
|
+
- stack: ["TYPESCRIPT", "JAVASCRIPT"]
|
|
121
|
+
tool: npm-audit
|
|
122
|
+
run: "npm audit --audit-level=high"
|
|
123
|
+
threshold: "Zero HIGH/CRITICAL"
|
|
124
|
+
- stack: ["PYTHON"]
|
|
125
|
+
tool: pip-audit
|
|
126
|
+
install: "pip install pip-audit"
|
|
127
|
+
run: "pip-audit --fail-on-severity high"
|
|
128
|
+
threshold: "Zero HIGH/CRITICAL"
|
|
129
|
+
- stack: ["RUST"]
|
|
130
|
+
tool: cargo-audit
|
|
131
|
+
install: "cargo install cargo-audit"
|
|
132
|
+
run: "cargo audit"
|
|
133
|
+
threshold: "Zero HIGH/CRITICAL"
|
|
134
|
+
- stack: ["GO"]
|
|
135
|
+
tool: govulncheck
|
|
136
|
+
install: "go install golang.org/x/vuln/cmd/govulncheck@latest"
|
|
137
|
+
run: "govulncheck ./..."
|
|
138
|
+
threshold: "Zero directly-imported vulnerabilities"
|
|
139
|
+
- stack: ["JAVA"]
|
|
140
|
+
tool: owasp-dependency-check
|
|
141
|
+
install: "Add dependency-check-maven plugin"
|
|
142
|
+
run: "mvn dependency-check:check -DfailBuildOnCVSS=7"
|
|
143
|
+
threshold: "Zero CVSS ≥ 7"
|
|
144
|
+
|
|
145
|
+
- id: smoke-testing
|
|
146
|
+
description: "Fast verification that critical paths work in a live environment"
|
|
147
|
+
gsProperty: executable
|
|
148
|
+
phase: deployment
|
|
149
|
+
recommended:
|
|
150
|
+
- stack: ["API"]
|
|
151
|
+
tool: hurl
|
|
152
|
+
install: "curl -LO https://github.com/Orange-OpenSource/hurl/releases/latest"
|
|
153
|
+
run: "hurl tests/smoke/*.hurl --test"
|
|
154
|
+
threshold: "All requests return expected status codes in < 60s total"
|
|
155
|
+
- stack: ["API"]
|
|
156
|
+
tool: newman
|
|
157
|
+
install: "npm install -g newman"
|
|
158
|
+
run: "newman run tests/smoke/collection.json"
|
|
159
|
+
threshold: "Zero failed requests in < 60s total"
|
|
160
|
+
- stack: ["WEB-REACT", "WEB-STATIC"]
|
|
161
|
+
tool: playwright
|
|
162
|
+
install: "npm install -D @playwright/test && npx playwright install"
|
|
163
|
+
run: "npx playwright test tests/smoke/"
|
|
164
|
+
threshold: "All smoke scenarios pass in < 60s"
|