{"record":{"id":"35c50567ec47b594","repo":"ruvnet/ruflo","slug":"invalid-value","errorCode":"INVALID_VALUE","errorMessage":"retentionDays must be a non-negative number","messagePattern":"retentionDays must be a non-negative number","errorType":"validation","errorClass":"ValidationError","httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/guidance/src/manifest-validator.ts","lineNumber":550,"sourceCode":"        field: 'dataPolicy',\n        message: 'Data policy is required',\n        severity: 'error',\n      });\n      return errors;\n    }\n\n    if (!DATA_SENSITIVITY_LEVELS.includes(dataPolicy.dataSensitivity as DataSensitivity)) {\n      errors.push({\n        code: 'INVALID_ENUM',\n        field: 'dataPolicy.dataSensitivity',\n        message: `dataSensitivity must be one of: ${DATA_SENSITIVITY_LEVELS.join(', ')} (got \"${dataPolicy.dataSensitivity}\")`,\n        severity: 'error',\n      });\n    }\n\n    if (typeof dataPolicy.retentionDays !== 'number' || dataPolicy.retentionDays < 0) {\n      errors.push({\n        code: 'INVALID_VALUE',\n        field: 'dataPolicy.retentionDays',\n        message: 'retentionDays must be a non-negative number',\n        severity: 'error',\n      });\n    }\n\n    if (!dataPolicy.exportControls) {\n      errors.push({\n        code: 'MISSING_FIELD',\n        field: 'dataPolicy.exportControls',\n        message: 'exportControls is required in data policy',\n        severity: 'error',\n      });\n    } else {\n      if (!Array.isArray(dataPolicy.exportControls.allowedRegions)) {\n        errors.push({\n          code: 'INVALID_TYPE',\n          field: 'dataPolicy.exportControls.allowedRegions',","sourceCodeStart":532,"sourceCodeEnd":568,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/guidance/src/manifest-validator.ts#L532-L568","documentation":"validateDataPolicy() found retentionDays is either not a number or is negative. Retention windows must be a non-negative numeric day count; this manifest field drives data-expiry enforcement and cannot be missing, negative, or non-numeric.","triggerScenarios":"Thrown at v3/@claude-flow/guidance/src/manifest-validator.ts:550 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set retentionDays to a non-negative number."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}