{"record":{"id":"d8f882642fa6ac38","repo":"ruvnet/ruflo","slug":"invalid-digest","errorCode":"INVALID_DIGEST","errorMessage":"Digest must match \"sha256:<64 hex chars>\" format (got \"${manifest.cell.codeRef.digest}\")","messagePattern":"Digest must match \"sha256:<64 hex chars>\" format \\(got \"(.+?)\"\\)","errorType":"validation","errorClass":"ValidationError","httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/guidance/src/manifest-validator.ts","lineNumber":734,"sourceCode":"    if (!manifest.apiVersion) return []; // caught by requiredFields\n\n    if (manifest.apiVersion !== SUPPORTED_API_VERSION) {\n      return [{\n        code: 'UNSUPPORTED_API_VERSION',\n        field: 'apiVersion',\n        message: `API version \"${manifest.apiVersion}\" is not supported (expected \"${SUPPORTED_API_VERSION}\")`,\n        severity: 'error',\n      }];\n    }\n    return [];\n  }\n\n  private validateDigest(manifest: AgentCellManifest): ValidationError[] {\n    if (!manifest.cell?.codeRef?.digest) return []; // caught by requiredFields\n\n    if (!SHA256_DIGEST_RE.test(manifest.cell.codeRef.digest)) {\n      return [{\n        code: 'INVALID_DIGEST',\n        field: 'cell.codeRef.digest',\n        message: `Digest must match \"sha256:<64 hex chars>\" format (got \"${manifest.cell.codeRef.digest}\")`,\n        severity: 'error',\n      }];\n    }\n    return [];\n  }\n\n  private validateWarnings(manifest: AgentCellManifest): ValidationWarning[] {\n    const warnings: ValidationWarning[] = [];\n\n    // Warn about unknown tools\n    if (manifest.toolPolicy?.toolsAllowed) {\n      for (const tool of manifest.toolPolicy.toolsAllowed) {\n        if (!KNOWN_TOOLS.has(tool)) {\n          warnings.push({\n            code: 'UNKNOWN_TOOL',\n            field: 'toolPolicy.toolsAllowed',","sourceCodeStart":716,"sourceCodeEnd":752,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/guidance/src/manifest-validator.ts#L716-L752","documentation":"validateDigest() found cell.codeRef.digest fails the sha256 digest regex (must be 'sha256:' followed by exactly 64 hex characters). The code-integrity reference is malformed — wrong hash length, bad prefix, or non-hex characters — so the cell's code binding cannot be trusted or verified.","triggerScenarios":"Thrown at v3/@claude-flow/guidance/src/manifest-validator.ts:734 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Format the digest as 'sha256:' followed by 64 lowercase hex characters.","Compute the digest with a known-good SHA-256 implementation rather than hand-assembling the string."],"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"}