@odavl/guardian 2.0.0 → 2.0.1
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/CHANGELOG.md +210 -210
- package/LICENSE +21 -21
- package/README.md +297 -184
- package/bin/guardian.js +2242 -2221
- package/config/README.md +59 -59
- package/config/guardian.config.json +54 -54
- package/config/guardian.policy.json +12 -12
- package/config/profiles/docs.yaml +18 -18
- package/config/profiles/ecommerce.yaml +17 -17
- package/config/profiles/landing-demo.yaml +16 -16
- package/config/profiles/marketing.yaml +18 -18
- package/config/profiles/saas.yaml +21 -21
- package/flows/example-login-flow.json +36 -36
- package/flows/example-signup-flow.json +44 -44
- package/package.json +124 -116
- package/policies/enterprise.json +12 -12
- package/policies/landing-demo.json +22 -22
- package/policies/saas.json +12 -12
- package/policies/startup.json +12 -12
- package/src/enterprise/audit-logger.js +166 -166
- package/src/enterprise/pdf-exporter.js +267 -267
- package/src/enterprise/rbac-gate.js +142 -142
- package/src/enterprise/rbac.js +239 -239
- package/src/enterprise/site-manager.js +180 -180
- package/src/founder/feedback-system.js +156 -156
- package/src/founder/founder-tracker.js +213 -213
- package/src/founder/usage-signals.js +141 -141
- package/src/guardian/action-hints.js +439 -439
- package/src/guardian/alert-ledger.js +121 -121
- package/src/guardian/artifact-sanitizer.js +56 -56
- package/src/guardian/attempt-engine.js +1069 -1029
- package/src/guardian/attempt-registry.js +267 -267
- package/src/guardian/attempt-relevance.js +106 -106
- package/src/guardian/attempt-reporter.js +513 -507
- package/src/guardian/attempt.js +274 -273
- package/src/guardian/attempts-filter.js +63 -63
- package/src/guardian/auto-attempt-builder.js +283 -283
- package/src/guardian/baseline-registry.js +177 -177
- package/src/guardian/baseline-reporter.js +143 -143
- package/src/guardian/baseline-storage.js +285 -285
- package/src/guardian/baseline.js +535 -534
- package/src/guardian/behavioral-signals.js +261 -261
- package/src/guardian/breakage-intelligence.js +224 -224
- package/src/guardian/browser-pool.js +131 -131
- package/src/guardian/browser.js +119 -119
- package/src/guardian/canonical-truth.js +308 -308
- package/src/guardian/ci-cli.js +121 -121
- package/src/guardian/ci-gate.js +96 -96
- package/src/guardian/ci-mode.js +15 -15
- package/src/guardian/ci-output.js +55 -38
- package/src/guardian/cli-summary.js +102 -102
- package/src/guardian/confidence-signals.js +251 -251
- package/src/guardian/config-loader.js +161 -161
- package/src/guardian/config-validator.js +285 -283
- package/src/guardian/coverage-model.js +239 -239
- package/src/guardian/coverage-packs.js +58 -58
- package/src/guardian/crawler.js +142 -142
- package/src/guardian/data-guardian-detector.js +189 -189
- package/src/guardian/decision-authority.js +746 -725
- package/src/guardian/detection-layers.js +271 -271
- package/src/guardian/determinism.js +146 -146
- package/src/guardian/discovery-engine.js +661 -661
- package/src/guardian/drift-detector.js +100 -100
- package/src/guardian/enhanced-html-reporter.js +522 -522
- package/src/guardian/env-guard.js +128 -127
- package/src/guardian/error-clarity.js +399 -399
- package/src/guardian/export-contract.js +196 -196
- package/src/guardian/fail-safe.js +212 -212
- package/src/guardian/failure-intelligence.js +173 -173
- package/src/guardian/failure-taxonomy.js +169 -169
- package/src/guardian/final-outcome.js +206 -206
- package/src/guardian/first-run-profile.js +89 -89
- package/src/guardian/first-run.js +65 -67
- package/src/guardian/flag-validator.js +111 -111
- package/src/guardian/flow-executor.js +641 -639
- package/src/guardian/flow-registry.js +67 -67
- package/src/guardian/honesty.js +394 -394
- package/src/guardian/html-reporter.js +416 -416
- package/src/guardian/human-intent-resolver.js +296 -296
- package/src/guardian/human-interaction-model.js +351 -351
- package/src/guardian/human-journey-context.js +184 -184
- package/src/guardian/human-navigator.js +544 -544
- package/src/guardian/human-reporter.js +435 -431
- package/src/guardian/index.js +226 -221
- package/src/guardian/init-command.js +143 -143
- package/src/guardian/intent-detector.js +148 -146
- package/src/guardian/journey-definitions.js +132 -132
- package/src/guardian/journey-scan-cli.js +142 -145
- package/src/guardian/journey-scanner.js +583 -583
- package/src/guardian/junit-reporter.js +281 -281
- package/src/guardian/language-detection.js +99 -99
- package/src/guardian/live-alert.js +56 -56
- package/src/guardian/live-baseline-compare.js +146 -146
- package/src/guardian/live-cli.js +95 -95
- package/src/guardian/live-guardian.js +210 -210
- package/src/guardian/live-scheduler-runner.js +137 -137
- package/src/guardian/live-scheduler-state.js +167 -168
- package/src/guardian/live-scheduler.js +146 -146
- package/src/guardian/live-state.js +110 -110
- package/src/guardian/market-criticality.js +335 -335
- package/src/guardian/market-reporter.js +577 -577
- package/src/guardian/network-trace.js +178 -178
- package/src/guardian/obs-logger.js +110 -110
- package/src/guardian/observed-capabilities.js +427 -427
- package/src/guardian/output-contract.js +154 -0
- package/src/guardian/output-readability.js +264 -264
- package/src/guardian/parallel-executor.js +116 -116
- package/src/guardian/path-safety.js +56 -56
- package/src/guardian/pattern-analyzer.js +348 -348
- package/src/guardian/policy.js +432 -434
- package/src/guardian/prelaunch-gate.js +193 -193
- package/src/guardian/prerequisite-checker.js +101 -101
- package/src/guardian/preset-loader.js +152 -157
- package/src/guardian/profile-loader.js +96 -96
- package/src/guardian/reality.js +3025 -2826
- package/src/guardian/realworld-scenarios.js +94 -94
- package/src/guardian/reporter.js +167 -167
- package/src/guardian/retry-policy.js +123 -123
- package/src/guardian/root-cause-analysis.js +171 -171
- package/src/guardian/rules-engine.js +558 -558
- package/src/guardian/run-artifacts.js +212 -212
- package/src/guardian/run-cleanup.js +207 -207
- package/src/guardian/run-export.js +522 -522
- package/src/guardian/run-latest.js +90 -90
- package/src/guardian/run-list.js +211 -211
- package/src/guardian/run-summary.js +20 -20
- package/src/guardian/runtime-root.js +246 -246
- package/src/guardian/safety.js +248 -248
- package/src/guardian/scan-presets.js +133 -149
- package/src/guardian/screenshot.js +152 -152
- package/src/guardian/secret-hygiene.js +44 -44
- package/src/guardian/selector-fallbacks.js +394 -394
- package/src/guardian/semantic-contact-detection.js +255 -255
- package/src/guardian/semantic-contact-finder.js +201 -201
- package/src/guardian/semantic-targets.js +234 -234
- package/src/guardian/site-intelligence.js +588 -588
- package/src/guardian/site-introspection.js +257 -257
- package/src/guardian/sitemap.js +225 -225
- package/src/guardian/smoke.js +283 -258
- package/src/guardian/snapshot-schema.js +177 -290
- package/src/guardian/snapshot.js +430 -397
- package/src/guardian/stability-scorer.js +169 -169
- package/src/guardian/success-evaluator.js +214 -214
- package/src/guardian/template-command.js +184 -184
- package/src/guardian/text-formatters.js +426 -426
- package/src/guardian/timeout-profiles.js +57 -57
- package/src/guardian/truth/attempt.contract.js +158 -0
- package/src/guardian/truth/decision.contract.js +275 -0
- package/src/guardian/truth/snapshot.contract.js +363 -0
- package/src/guardian/validators.js +323 -323
- package/src/guardian/verdict-card.js +474 -474
- package/src/guardian/verdict-clarity.js +298 -298
- package/src/guardian/verdict-policy.js +363 -363
- package/src/guardian/verdict.js +333 -333
- package/src/guardian/verdicts.js +79 -74
- package/src/guardian/visual-diff.js +247 -247
- package/src/guardian/wait-for-outcome.js +119 -119
- package/src/guardian/watch-runner.js +181 -181
- package/src/guardian/watchdog-diff.js +167 -167
- package/src/guardian/webhook.js +206 -206
- package/src/payments/stripe-checkout.js +169 -169
- package/src/plans/plan-definitions.js +148 -148
- package/src/plans/plan-manager.js +211 -211
- package/src/plans/usage-tracker.js +210 -210
- package/src/recipes/recipe-engine.js +188 -188
- package/src/recipes/recipe-failure-analysis.js +159 -159
- package/src/recipes/recipe-registry.js +134 -134
- package/src/recipes/recipe-runtime.js +507 -507
- package/src/recipes/recipe-store.js +410 -410
- package/SECURITY.md +0 -77
- package/VERSIONING.md +0 -100
- package/guardian-contract-v1.md +0 -502
package/package.json
CHANGED
|
@@ -1,116 +1,124 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@odavl/guardian",
|
|
3
|
-
"version": "2.0.
|
|
4
|
-
"releaseState": "stable",
|
|
5
|
-
"description": "The final decision authority before launch. Observes your website as real users experience it, decides whether launch is safe, and continues watching after deployment to detect when reality breaks.",
|
|
6
|
-
"license": "MIT",
|
|
7
|
-
"author": "ODAVL",
|
|
8
|
-
"repository": {
|
|
9
|
-
"type": "git",
|
|
10
|
-
"url": "git+https://github.com/odavlstudio/odavlguardian.git"
|
|
11
|
-
},
|
|
12
|
-
"keywords": [
|
|
13
|
-
"decision-gate",
|
|
14
|
-
"deployment-gate",
|
|
15
|
-
"launch-decision",
|
|
16
|
-
"production-safety",
|
|
17
|
-
"website-reliability",
|
|
18
|
-
"reality-check",
|
|
19
|
-
"deployment-blocker",
|
|
20
|
-
"launch-authority"
|
|
21
|
-
],
|
|
22
|
-
"engines": {
|
|
23
|
-
"node": ">=18.0.0"
|
|
24
|
-
},
|
|
25
|
-
"bin": {
|
|
26
|
-
"guardian": "bin/guardian.js"
|
|
27
|
-
},
|
|
28
|
-
"main": "src/guardian/index.js",
|
|
29
|
-
"files": [
|
|
30
|
-
"bin/",
|
|
31
|
-
"src/",
|
|
32
|
-
"flows/",
|
|
33
|
-
"policies/",
|
|
34
|
-
"config/",
|
|
35
|
-
"guardian-contract-v1.md",
|
|
36
|
-
"README.md",
|
|
37
|
-
"LICENSE",
|
|
38
|
-
"CHANGELOG.md",
|
|
39
|
-
"SECURITY.md",
|
|
40
|
-
"SUPPORT.md",
|
|
41
|
-
"MAINTAINERS.md",
|
|
42
|
-
"VERSIONING.md"
|
|
43
|
-
],
|
|
44
|
-
"scripts": {
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"test:
|
|
52
|
-
"test
|
|
53
|
-
"test:
|
|
54
|
-
"test:
|
|
55
|
-
"test:
|
|
56
|
-
"test:
|
|
57
|
-
"test:
|
|
58
|
-
"test:
|
|
59
|
-
"test:
|
|
60
|
-
"test:
|
|
61
|
-
"test:
|
|
62
|
-
"test:
|
|
63
|
-
"test:
|
|
64
|
-
"test:
|
|
65
|
-
"test:
|
|
66
|
-
"test:
|
|
67
|
-
"test:
|
|
68
|
-
"test:
|
|
69
|
-
"test:
|
|
70
|
-
"test:
|
|
71
|
-
"test:
|
|
72
|
-
"test:
|
|
73
|
-
"test:
|
|
74
|
-
"test:
|
|
75
|
-
"test:
|
|
76
|
-
"test:
|
|
77
|
-
"test:
|
|
78
|
-
"test:
|
|
79
|
-
"test:
|
|
80
|
-
"test:
|
|
81
|
-
"test:
|
|
82
|
-
"test:
|
|
83
|
-
"test:
|
|
84
|
-
"test:
|
|
85
|
-
"test:
|
|
86
|
-
"test:
|
|
87
|
-
"test:
|
|
88
|
-
"test:
|
|
89
|
-
"test:
|
|
90
|
-
"test:
|
|
91
|
-
"test:
|
|
92
|
-
"test:
|
|
93
|
-
"test:
|
|
94
|
-
"test:
|
|
95
|
-
"
|
|
96
|
-
"test:
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
"
|
|
112
|
-
"
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@odavl/guardian",
|
|
3
|
+
"version": "2.0.1",
|
|
4
|
+
"releaseState": "stable",
|
|
5
|
+
"description": "The final decision authority before launch. Observes your website as real users experience it, decides whether launch is safe, and continues watching after deployment to detect when reality breaks.",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": "ODAVL",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/odavlstudio/odavlguardian.git"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"decision-gate",
|
|
14
|
+
"deployment-gate",
|
|
15
|
+
"launch-decision",
|
|
16
|
+
"production-safety",
|
|
17
|
+
"website-reliability",
|
|
18
|
+
"reality-check",
|
|
19
|
+
"deployment-blocker",
|
|
20
|
+
"launch-authority"
|
|
21
|
+
],
|
|
22
|
+
"engines": {
|
|
23
|
+
"node": ">=18.0.0"
|
|
24
|
+
},
|
|
25
|
+
"bin": {
|
|
26
|
+
"guardian": "bin/guardian.js"
|
|
27
|
+
},
|
|
28
|
+
"main": "src/guardian/index.js",
|
|
29
|
+
"files": [
|
|
30
|
+
"bin/",
|
|
31
|
+
"src/",
|
|
32
|
+
"flows/",
|
|
33
|
+
"policies/",
|
|
34
|
+
"config/",
|
|
35
|
+
"guardian-contract-v1.md",
|
|
36
|
+
"README.md",
|
|
37
|
+
"LICENSE",
|
|
38
|
+
"CHANGELOG.md",
|
|
39
|
+
"SECURITY.md",
|
|
40
|
+
"SUPPORT.md",
|
|
41
|
+
"MAINTAINERS.md",
|
|
42
|
+
"VERSIONING.md"
|
|
43
|
+
],
|
|
44
|
+
"scripts": {
|
|
45
|
+
"lint": "eslint bin/ src/",
|
|
46
|
+
"lint:fix": "eslint bin/ src/ --fix",
|
|
47
|
+
"typecheck": "tsc --noEmit",
|
|
48
|
+
"quality": "npm run lint && npm run typecheck && npm test",
|
|
49
|
+
"quality:guard": "node scripts/quality-guard.js",
|
|
50
|
+
"quality:baseline": "node scripts/generate-quality-baseline.js",
|
|
51
|
+
"test:freeze": "node scripts/freeze-gate.js",
|
|
52
|
+
"test": "node test/mvp.test.js && node test/snapshot-humanintent.test.js",
|
|
53
|
+
"test:full": "node test/mvp.test.js && node test/stage4-security.test.js && node test/stage5-ci-gate.test.js && node test/stage5-error-handling.test.js && node test/stage6-verdict-card.test.js && node test/stage7-watchdog-simple.test.js",
|
|
54
|
+
"test:stage5:determinism": "node test/stage5-determinism.test.js",
|
|
55
|
+
"test:stage7:watchdog": "node test/stage7-watchdog-simple.test.js",
|
|
56
|
+
"test:stage6:verdict": "node test/stage6-verdict-card.test.js",
|
|
57
|
+
"test:stage6:integration": "node test/stage6-verdict-card-integration.test.js",
|
|
58
|
+
"test:journey:unit": "node test/journey-scanner.unit.test.js",
|
|
59
|
+
"test:journey:integration": "node test/journey-scanner.integration.test.js",
|
|
60
|
+
"test:journey:all": "node test/journey-scanner.unit.test.js && node test/journey-scanner.integration.test.js",
|
|
61
|
+
"test:phase0": "node test/phase0-reality-lock.test.js",
|
|
62
|
+
"test:phase1": "node test/phase1-baseline-expansion.test.js",
|
|
63
|
+
"test:phase2": "node test/phase2-auto-attempts.test.js",
|
|
64
|
+
"test:phase2-old": "node test/phase2.test.js",
|
|
65
|
+
"test:attempt": "node test/attempt.test.js",
|
|
66
|
+
"test:reality": "node test/reality.test.js",
|
|
67
|
+
"test:baseline": "node test/baseline.test.js",
|
|
68
|
+
"test:baseline:junit": "node test/baseline-junit.test.js",
|
|
69
|
+
"test:snapshot": "node test/snapshot.test.js",
|
|
70
|
+
"test:soft-failures": "node test/soft-failures.test.js",
|
|
71
|
+
"test:criticality": "node test/market-criticality.test.js",
|
|
72
|
+
"test:discovery": "node test/discovery.test.js",
|
|
73
|
+
"test:phase5": "node test/phase5.test.js",
|
|
74
|
+
"test:phase5:visual": "node test/phase5-visual.test.js",
|
|
75
|
+
"test:phase5:evidence": "node test/phase5-evidence-run.test.js",
|
|
76
|
+
"test:phase5:all": "node test/phase5-visual.test.js && node test/phase5-evidence-run.test.js",
|
|
77
|
+
"test:phase6": "node test/phase6.test.js && node test/phase6-product.test.js",
|
|
78
|
+
"test:phase10b": "node test/site-intelligence.unit.test.js && node test/site-intelligence.flow.test.js && node test/site-intelligence.verdict.test.js && node test/site-intelligence.integration.test.js",
|
|
79
|
+
"test:final-lockdown": "node test/final-lockdown.test.js",
|
|
80
|
+
"test:trust-seal": "node test/trust-seal.test.js",
|
|
81
|
+
"test:narrative-run": "node test/narrative-run.test.js",
|
|
82
|
+
"test:hardening": "node test/trust-seal.test.js && node test/narrative-run.test.js",
|
|
83
|
+
"test:wave1-3": "npx mocha test/success-evaluator.unit.test.js test/wave1-3-success-e2e.test.js --timeout 30000",
|
|
84
|
+
"test:export": "node test/export.test.js",
|
|
85
|
+
"test:export-api": "node test/export-api.test.js",
|
|
86
|
+
"test:export-contract": "node test/export-contract.test.js",
|
|
87
|
+
"test:export-equivalence": "node test/export-equivalence.test.js",
|
|
88
|
+
"test:export-freeze": "node test/export-equivalence.freeze.test.js",
|
|
89
|
+
"test:export-guards": "node test/export-negative-guards.test.js",
|
|
90
|
+
"test:first-run": "node test/first-run.test.js",
|
|
91
|
+
"test:verdict-clarity": "node test/verdict-clarity.test.js",
|
|
92
|
+
"test:verdict-clarity-integration": "node test/verdict-clarity-integration.test.js",
|
|
93
|
+
"test:error-clarity": "node test/error-clarity.test.js",
|
|
94
|
+
"test:output-readability": "node test/output-readability.test.js",
|
|
95
|
+
"test:confidence-signals": "node test/confidence-signals.test.js",
|
|
96
|
+
"test:realworld-harness": "node test/realworld-harness.test.js",
|
|
97
|
+
"test:proof-narrative": "node test/proof-narrative.test.js",
|
|
98
|
+
"test:examples-usage": "node test/examples-usage.test.js",
|
|
99
|
+
"test:trust-closure": "node test/trust-closure.test.js",
|
|
100
|
+
"test:surface-freeze": "node test/surface-freeze.test.js",
|
|
101
|
+
"test:export:all": "node test/export.test.js && node test/export-api.test.js && node test/export-contract.test.js && node test/export-equivalence.test.js && node test/export-equivalence.freeze.test.js && node test/export-negative-guards.test.js",
|
|
102
|
+
"release:dry": "npm test && node bin/guardian.js --help && node bin/guardian.js --version",
|
|
103
|
+
"start": "node bin/guardian.js",
|
|
104
|
+
"sample:generate": "node scripts/generate-sample.js",
|
|
105
|
+
"template:verify": "node scripts/verify-templates.js",
|
|
106
|
+
"verify:baseline": "node scripts/verify-live-guardian.js",
|
|
107
|
+
"verify:verdicts": "node scripts/verify-unknown-elimination.js"
|
|
108
|
+
},
|
|
109
|
+
"dependencies": {
|
|
110
|
+
"archiver": "^6.0.1",
|
|
111
|
+
"express": "^5.2.1",
|
|
112
|
+
"playwright": "^1.48.2"
|
|
113
|
+
},
|
|
114
|
+
"devDependencies": {
|
|
115
|
+
"@types/node": "^25.0.3",
|
|
116
|
+
"ajv": "^8.17.1",
|
|
117
|
+
"ajv-formats": "^3.0.1",
|
|
118
|
+
"eslint": "^9.39.2",
|
|
119
|
+
"glob": "^13.0.0",
|
|
120
|
+
"globals": "^17.0.0",
|
|
121
|
+
"mocha": "^11.7.5",
|
|
122
|
+
"typescript": "^5.9.3"
|
|
123
|
+
}
|
|
124
|
+
}
|
package/policies/enterprise.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Enterprise Policy",
|
|
3
|
-
"description": "Strict policy for enterprise deployments. Zero tolerance for CRITICAL or WARNING issues.",
|
|
4
|
-
"failOnSeverity": "WARNING",
|
|
5
|
-
"maxWarnings": 0,
|
|
6
|
-
"maxInfo": 0,
|
|
7
|
-
"maxTotalRisk": 0,
|
|
8
|
-
"failOnNewRegression": true,
|
|
9
|
-
"failOnSoftFailures": true,
|
|
10
|
-
"softFailureThreshold": 0,
|
|
11
|
-
"requireBaseline": true
|
|
12
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "Enterprise Policy",
|
|
3
|
+
"description": "Strict policy for enterprise deployments. Zero tolerance for CRITICAL or WARNING issues.",
|
|
4
|
+
"failOnSeverity": "WARNING",
|
|
5
|
+
"maxWarnings": 0,
|
|
6
|
+
"maxInfo": 0,
|
|
7
|
+
"maxTotalRisk": 0,
|
|
8
|
+
"failOnNewRegression": true,
|
|
9
|
+
"failOnSoftFailures": true,
|
|
10
|
+
"softFailureThreshold": 0,
|
|
11
|
+
"requireBaseline": true
|
|
12
|
+
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Landing/Demo Policy",
|
|
3
|
-
"description": "Focused policy for landing pages, demo sites, and pre-launch products. Disables account and revenue flows, emphasizes navigation and CTA integrity.",
|
|
4
|
-
"failOnSeverity": "CRITICAL",
|
|
5
|
-
"maxWarnings": 5,
|
|
6
|
-
"maxInfo": 999,
|
|
7
|
-
"maxTotalRisk": 999,
|
|
8
|
-
"failOnNewRegression": false,
|
|
9
|
-
"failOnSoftFailures": false,
|
|
10
|
-
"softFailureThreshold": 999,
|
|
11
|
-
"requireBaseline": false,
|
|
12
|
-
"disabledAttempts": ["signup", "login", "checkout", "newsletter_signup"],
|
|
13
|
-
"focusAreas": {
|
|
14
|
-
"broken_pages": "CRITICAL",
|
|
15
|
-
"dead_links": "CRITICAL",
|
|
16
|
-
"seo_fundamentals": "WARNING",
|
|
17
|
-
"trust_signals": "WARNING",
|
|
18
|
-
"cta_integrity": "CRITICAL",
|
|
19
|
-
"performance": "WARNING"
|
|
20
|
-
},
|
|
21
|
-
"notes": "Landing/Demo sites should emphasize navigation integrity and CTA validity. Revenue-related issues are deprioritized. Account signup/login and checkout are marked NOT_APPLICABLE."
|
|
22
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "Landing/Demo Policy",
|
|
3
|
+
"description": "Focused policy for landing pages, demo sites, and pre-launch products. Disables account and revenue flows, emphasizes navigation and CTA integrity.",
|
|
4
|
+
"failOnSeverity": "CRITICAL",
|
|
5
|
+
"maxWarnings": 5,
|
|
6
|
+
"maxInfo": 999,
|
|
7
|
+
"maxTotalRisk": 999,
|
|
8
|
+
"failOnNewRegression": false,
|
|
9
|
+
"failOnSoftFailures": false,
|
|
10
|
+
"softFailureThreshold": 999,
|
|
11
|
+
"requireBaseline": false,
|
|
12
|
+
"disabledAttempts": ["signup", "login", "checkout", "newsletter_signup"],
|
|
13
|
+
"focusAreas": {
|
|
14
|
+
"broken_pages": "CRITICAL",
|
|
15
|
+
"dead_links": "CRITICAL",
|
|
16
|
+
"seo_fundamentals": "WARNING",
|
|
17
|
+
"trust_signals": "WARNING",
|
|
18
|
+
"cta_integrity": "CRITICAL",
|
|
19
|
+
"performance": "WARNING"
|
|
20
|
+
},
|
|
21
|
+
"notes": "Landing/Demo sites should emphasize navigation integrity and CTA validity. Revenue-related issues are deprioritized. Account signup/login and checkout are marked NOT_APPLICABLE."
|
|
22
|
+
}
|
package/policies/saas.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "SaaS Policy",
|
|
3
|
-
"description": "Balanced policy for SaaS products. Fail on CRITICAL and detect regressions.",
|
|
4
|
-
"failOnSeverity": "CRITICAL",
|
|
5
|
-
"maxWarnings": 1,
|
|
6
|
-
"maxInfo": 999,
|
|
7
|
-
"maxTotalRisk": 999,
|
|
8
|
-
"failOnNewRegression": true,
|
|
9
|
-
"failOnSoftFailures": false,
|
|
10
|
-
"softFailureThreshold": 5,
|
|
11
|
-
"requireBaseline": false
|
|
12
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "SaaS Policy",
|
|
3
|
+
"description": "Balanced policy for SaaS products. Fail on CRITICAL and detect regressions.",
|
|
4
|
+
"failOnSeverity": "CRITICAL",
|
|
5
|
+
"maxWarnings": 1,
|
|
6
|
+
"maxInfo": 999,
|
|
7
|
+
"maxTotalRisk": 999,
|
|
8
|
+
"failOnNewRegression": true,
|
|
9
|
+
"failOnSoftFailures": false,
|
|
10
|
+
"softFailureThreshold": 5,
|
|
11
|
+
"requireBaseline": false
|
|
12
|
+
}
|
package/policies/startup.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Startup Policy",
|
|
3
|
-
"description": "Permissive policy for fast-moving startups. Fail only on CRITICAL issues.",
|
|
4
|
-
"failOnSeverity": "CRITICAL",
|
|
5
|
-
"maxWarnings": 999,
|
|
6
|
-
"maxInfo": 999,
|
|
7
|
-
"maxTotalRisk": 999,
|
|
8
|
-
"failOnNewRegression": false,
|
|
9
|
-
"failOnSoftFailures": false,
|
|
10
|
-
"softFailureThreshold": 999,
|
|
11
|
-
"requireBaseline": false
|
|
12
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "Startup Policy",
|
|
3
|
+
"description": "Permissive policy for fast-moving startups. Fail only on CRITICAL issues.",
|
|
4
|
+
"failOnSeverity": "CRITICAL",
|
|
5
|
+
"maxWarnings": 999,
|
|
6
|
+
"maxInfo": 999,
|
|
7
|
+
"maxTotalRisk": 999,
|
|
8
|
+
"failOnNewRegression": false,
|
|
9
|
+
"failOnSoftFailures": false,
|
|
10
|
+
"softFailureThreshold": 999,
|
|
11
|
+
"requireBaseline": false
|
|
12
|
+
}
|