diff --git a/docs/advanced/configuration.mdx b/docs/advanced/configuration.mdx
index f1542b752..c538a5fd0 100644
--- a/docs/advanced/configuration.mdx
+++ b/docs/advanced/configuration.mdx
@@ -74,6 +74,51 @@ affecting the agents that do the actual testing.
baseline when unset.
+### Independent finding verification
+
+Finding verification runs a fresh, restricted agent against every candidate before
+the finding is persisted. The verifier independently creates and executes a PoC in
+the scan sandbox. If reproduction fails, it reviews the full CVSS vector using the
+remaining evidence instead of automatically discarding or downgrading the finding.
+Dependency CVEs without a safely exercisable affected path are retained as advisory
+findings with a `not_applicable` verification result.
+
+
+ Independent verification: {vulnerability.verification.status.replaceAll("_", " ")} +
+ {vulnerability.verification.reason && ( +{vulnerability.verification.reason}
+ )} + {vulnerability.verification.rescored && ( ++ Rescored from {vulnerability.verification.original_cvss ?? "unknown"} ({vulnerability.verification.original_severity}) to {vulnerability.verification.final_cvss ?? vulnerability.cvss} ({vulnerability.verification.final_severity ?? vulnerability.severity}). +
+ )} +f?h-f:void 0;return dy(o,b,y,_)};if(t){const s=t+uy,o=a;a=c=>c.startsWith(s)?o(c.slice(s.length)):dy(rA,!1,c,void 0,!0)}if(r){const s=a;a=o=>r({className:o,parseClassName:s})}return a},aA=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((r,a)=>{t.set(r,1e6+a)}),r=>{const a=[];let s=[];for(let o=0;o f?h-f:void 0;return fy(o,y,b,_)};if(t){const s=t+dy,o=a;a=c=>c.startsWith(s)?o(c.slice(s.length)):fy(nA,!1,c,void 0,!0)}if(r){const s=a;a=o=>r({className:o,parseClassName:s})}return a},iA=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((r,a)=>{t.set(r,1e6+a)}),r=>{const a=[];let s=[];for(let o=0;oc))return;const U=t.events.length;let I=U,X,j;for(;I--;)if(t.events[I][0]==="exit"&&t.events[I][1].type==="chunkFlow"){if(X){j=t.events[I][1].end;break}X=!0}for(w(a),R=U;R{if(typeof e=="string"){QT(e,t,r);return}if(typeof e=="function"){WT(e,t,r,a);return}JT(e,t,r,a)},QT=(e,t,r)=>{const a=e===""?t:J_(t,e);a.classGroupId=r},WT=(e,t,r,a)=>{if(eA(e)){Ap(e(a),t,r,a);return}t.validators===null&&(t.validators=[]),t.validators.push(FT(r,e))},JT=(e,t,r,a)=>{const s=Object.entries(e),o=s.length;for(let c=0;c"isThemeGetter"in e&&e.isThemeGetter===!0,tA=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=Object.create(null),a=Object.create(null);const s=(o,c)=>{r[o]=c,t++,t>e&&(t=0,a=r,r=Object.create(null))};return{get(o){let c=r[o];if(c!==void 0)return c;if((c=a[o])!==void 0)return s(o,c),c},set(o,c){o in r?r[o]=c:s(o,c)}}},Gm="!",dy=":",nA=[],fy=(e,t,r,a,s)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:a,isExternal:s}),rA=e=>{const{prefix:t,experimentalParseClassName:r}=e;let a=s=>{const o=[];let c=0,d=0,f=0,h;const p=s.length;for(let N=0;Nc))return;const U=t.events.length;let I=U,X,j;for(;I--;)if(t.events[I][0]==="exit"&&t.events[I][1].type==="chunkFlow"){if(X){j=t.events[I][1].end;break}X=!0}for(w(a),R=U;R