{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"codehealth","informationUri":"https://codehealth.canine.dev","rules":[{"id":"D1","name":"Cyclomatic Complexity","shortDescription":{"text":"Cyclomatic Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D1"},{"id":"D2","name":"Cognitive Complexity","shortDescription":{"text":"Cognitive Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D2"},{"id":"D3","name":"God Classes","shortDescription":{"text":"God Classes"},"helpUri":"https://codehealth.canine.dev/dimensions/D3"},{"id":"D4","name":"Code Duplication","shortDescription":{"text":"Code Duplication"},"helpUri":"https://codehealth.canine.dev/dimensions/D4"},{"id":"D5","name":"Coupling","shortDescription":{"text":"Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D5"},{"id":"D6","name":"Cohesion (LCOM4)","shortDescription":{"text":"Cohesion (LCOM4)"},"helpUri":"https://codehealth.canine.dev/dimensions/D6"},{"id":"D7","name":"Architectural Integrity","shortDescription":{"text":"Architectural Integrity"},"helpUri":"https://codehealth.canine.dev/dimensions/D7"},{"id":"D8","name":"Code Coverage","shortDescription":{"text":"Code Coverage"},"helpUri":"https://codehealth.canine.dev/dimensions/D8"},{"id":"D9","name":"Test Distribution","shortDescription":{"text":"Test Distribution"},"helpUri":"https://codehealth.canine.dev/dimensions/D9"},{"id":"D10","name":"Test Quality","shortDescription":{"text":"Test Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D10"},{"id":"D11","name":"Test Reliability","shortDescription":{"text":"Test Reliability"},"helpUri":"https://codehealth.canine.dev/dimensions/D11"},{"id":"D12","name":"Dependency Hygiene","shortDescription":{"text":"Dependency Hygiene"},"helpUri":"https://codehealth.canine.dev/dimensions/D12"},{"id":"D13","name":"Secret Scanning","shortDescription":{"text":"Secret Scanning"},"helpUri":"https://codehealth.canine.dev/dimensions/D13"},{"id":"D14","name":"License Compliance","shortDescription":{"text":"License Compliance"},"helpUri":"https://codehealth.canine.dev/dimensions/D14"},{"id":"D15","name":"Churn \u00D7 Complexity Hotspots","shortDescription":{"text":"Churn \u00D7 Complexity Hotspots"},"helpUri":"https://codehealth.canine.dev/dimensions/D15"},{"id":"D16","name":"Bus Factor","shortDescription":{"text":"Bus Factor"},"helpUri":"https://codehealth.canine.dev/dimensions/D16"},{"id":"D17","name":"Explicit Debt","shortDescription":{"text":"Explicit Debt"},"helpUri":"https://codehealth.canine.dev/dimensions/D17"},{"id":"D18","name":"Solution Shape","shortDescription":{"text":"Solution Shape"},"helpUri":"https://codehealth.canine.dev/dimensions/D18"},{"id":"D19","name":"Documentation Quality","shortDescription":{"text":"Documentation Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D19"},{"id":"D20","name":"ADR Quality","shortDescription":{"text":"ADR Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D20"},{"id":"D21","name":"Naming Consistency","shortDescription":{"text":"Naming Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D21"},{"id":"D22","name":"Internal API Consistency","shortDescription":{"text":"Internal API Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D22"},{"id":"D23","name":"Boundary Type-Coupling","shortDescription":{"text":"Boundary Type-Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D23"},{"id":"D24","name":"Comment Value","shortDescription":{"text":"Comment Value"},"helpUri":"https://codehealth.canine.dev/dimensions/D24"},{"id":"D25","name":"ADR Conformance","shortDescription":{"text":"ADR Conformance"},"helpUri":"https://codehealth.canine.dev/dimensions/D25"},{"id":"D26","name":"Project Cohesion","shortDescription":{"text":"Project Cohesion"},"helpUri":"https://codehealth.canine.dev/dimensions/D26"},{"id":"D27","name":"Navigability","shortDescription":{"text":"Navigability"},"helpUri":"https://codehealth.canine.dev/dimensions/D27"},{"id":"D28","name":"Secrets (history)","shortDescription":{"text":"Secrets (history)"},"helpUri":"https://codehealth.canine.dev/dimensions/D28"},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29"},{"id":"D30","name":"Dependency Vulnerabilities","shortDescription":{"text":"Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D30"},{"id":"D31","name":"IaC \u0026 Container Security","shortDescription":{"text":"IaC \u0026 Container Security"},"helpUri":"https://codehealth.canine.dev/dimensions/D31"},{"id":"D32","name":"Data Compliance (PII/GDPR)","shortDescription":{"text":"Data Compliance (PII/GDPR)"},"helpUri":"https://codehealth.canine.dev/dimensions/D32"},{"id":"D33","name":"JS/npm Dependency Vulnerabilities","shortDescription":{"text":"JS/npm Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D33"},{"id":"D34","name":"Knowledge Freshness","shortDescription":{"text":"Knowledge Freshness"},"helpUri":"https://codehealth.canine.dev/dimensions/D34"},{"id":"D35","name":"Change Coupling","shortDescription":{"text":"Change Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D35"},{"id":"D36","name":"Supply-chain Provenance \u0026 Signing","shortDescription":{"text":"Supply-chain Provenance \u0026 Signing"},"helpUri":"https://codehealth.canine.dev/dimensions/D36"},{"id":"D37","name":"Vulnerability-disclosure Policy","shortDescription":{"text":"Vulnerability-disclosure Policy"},"helpUri":"https://codehealth.canine.dev/dimensions/D37"},{"id":"D38","name":"OSV Dependency Vulnerabilities","shortDescription":{"text":"OSV Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D38"}]}},"results":[{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): SoonMonoCleanStore/Persistance/GenericRepository.cs:79-83 | SoonMonoCleanStore/Persistance/GenericRepository.cs:88-93"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/Persistance/GenericRepository.cs"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"c47cc698bcbfe833a2fa85c11d84b6ec54fafe17be23ba6e0ab8a3236bece64c"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: InventoryMgmtSlices: InventoryMgmtSlices: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"acd5fcc5e9e43dd6f22bc23884dbb7e4c3fac5d883d467ea43b119af34c358c9"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: OrderProcessingSlices: OrderProcessingSlices: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9976561df9a2ca124cdffcbdd39fb63612ec914ec010e29b5a230df66987398d"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: ShippingSlices: ShippingSlices: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"308e0af73d2effb9ade31a568b15b7f475adf1e5b817a731c229f45fed84acf3"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: CRMSlices: CRMSlices: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"191b2e87d55e957814fc4134be598c480855c91f0d9bfa2f8763e2902030e745"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: PromotionsSlices: PromotionsSlices: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"61be280367360b541bf447fc66f86c09a5c20e59c254a3a3a0f8c7c885797893"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: ReportSlices: ReportSlices: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"53dd83b35865bee327288ca98b49e17aad009fd73ccdd045f6936c74e837203e"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: WishListSlices: WishListSlices: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"318f5d655d7fd64a497258759161be9009f9195d7319bc2932540187633d066b"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: ShoppingCartSlices: ShoppingCartSlices: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"eda08f2b64a57962f95c3ac62c2a46cf8209860965963af34bcc86d1311ed483"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Document: Document: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"438c3228b742c9917fcab95e1ed82c6360c5f9d6b5cfe46d971e163ced10befd"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: SharedKernel: SharedKernel: abstractness 0.19, instability 0.00, distance 0.81 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"8385bee9386adfb7fdd12b05ea0ac72eef686f168a2f04a5424c6e8e99c8fac5"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: DbSqlExecutor (LCOM4 4): DbSqlExecutor\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/Persistance/DatabaseQueryExecutor/DbSqlExecutor.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"71398f5206bb5239a92b8b7ee061c8762fe0718c2dab340219d72b6fc087a84b"}},{"ruleId":"D7","level":"note","message":{"text":"No checkable ADRs to assess: No architecture decision records were found and the project graph is acyclic, so architectural integrity could not be assessed. Add ADRs (with \u0060enforcement: analyzer|test\u0060) to make the architecture\u0027s rules checkable."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9bfa095522c5f2e53a7c1c0405fd8830d318409a6fb74f4288bab05aaf716e52"}},{"ruleId":"D9","level":"note","message":{"text":"Unit tests: 5 unit test method(s)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3067d72f6515925eded797ae6deb86f74d157d3bd0b8e2d3a80edaa12ea95d24"}},{"ruleId":"D9","level":"note","message":{"text":"Integration tests: 0 integration test method(s)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b8ce5913e7f0487c282aa29038cefc209006d3bfe4e8418292f03d5a2d9bc5b9"}},{"ruleId":"D9","level":"note","message":{"text":"BDD tests: 0 BDD test method(s)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2335ff4716b8a3faefb3014515ddf9f836e46276f415e6cd56462b6bf7742991"}},{"ruleId":"D9","level":"note","message":{"text":"E2E tests: 0 end-to-end test method(s)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9a982d279a9674eceb951bedcbe3f8d344879045f8bee5f9f6f059139e0ed590"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: Test1: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/TestProject1/UnitTest1.cs"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a1e62eaaa4420a8283fb102ece1e8b84d33d62e4a18f2ca43016901198b497a"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: CleanStoreTest references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D11","level":"note","message":{"text":"No tests discovered: Test reliability not scored \u2014 the test tier(s) built and ran but no tests were discovered, so reliability couldn\u0027t be exercised."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6e4c0ab67b9e87c02498c138fb50373fdab655734b894db638fb9443a28b824b"}},{"ruleId":"D14","level":"note","message":{"text":"Licenses scanned: 20 packages scanned; 5 distinct SPDX licenses."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1d29d66daec20840f6831f63c1b66b87c40390635ef3e9f728002964c77e88d4"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: MySql.Data: MySql.Data 8.2.0 is licensed GPL-2.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2fec91cb4b6a7dff508f29bfbf94cea9c8f4ddf3e91586b2f2505bab571a2547"}},{"ruleId":"D16","level":"warning","message":{"text":"single-maintainer \u2014 knowledge-concentration (bus factor) risk: single-maintainer \u2014 knowledge-concentration (bus factor) risk (1 author(s) across 59 commit(s) sampled)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b4b49d961df742f0e507f4cc5c8094fb077ba0391a27fd015d18320865187719"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS8765 // Nullability of type of parameter doesn\u0027t match overridden member (possibly because of nullability attributes)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/SharedKernal/Domain/ValueObject/Address.cs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"826952534ae9e4935e82e596497e011fe3ed0d7d04f816ac64ecc4cda5bb01b7"}},{"ruleId":"D17","level":"warning","message":{"text":"Dead code: AddOrderItem: Method AddOrderItem \u2014 no references found in solution."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/SharedKernal/Domain/DomainModel/OrderModel/Order.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c2998857f9a6abb61e649709aa9e9201c35a033f78d970a96915e15d2dd887a"}},{"ruleId":"D17","level":"warning","message":{"text":"Dead code: Class1: NamedType Class1 \u2014 no references found in solution."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/SharedKernal/Domain/RepoInterface/Class1.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e59aae9e33dc1cd574670fe462bcd9f4d8e55ff79a026f1e6daccce04f54fa2"}},{"ruleId":"D18","level":"warning","message":{"text":"Build failed: The target solution did not build cleanly (errors: 3), which caps Solution Shape at 3/10 \u2014 the most basic shape signal is that it compiles. First errors: CS0246: The type or namespace name \u0027BaseEntity\u0027 could not be found (are you missing a using directive or an assembly reference?); CS0246: The type or namespace name \u0027Product\u0027 could not be found (are you missing a using directive or an assembly reference?)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"24ff41d1fc14d3a19b969001a7e9697d13d34fc0453d84646f56c980eff97f2b"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: UserSlices: \u0060UserSlices\u0060 contributes only 1 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/UserSlices/UserSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7813b143322ac5637b82463cec84e88eb837d85cd13af594ba42e2eb40d64dce"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: InventoryMgmtSlices: \u0060InventoryMgmtSlices\u0060 contributes only 6 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/InventoryMgmtSlices/InventoryMgmtSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f47654d6fa78976d306f01df9ad1e58ee8df6704f6922fa9b16aeda795641ff1"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: OrderProcessingSlices: \u0060OrderProcessingSlices\u0060 contributes only 6 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/OrderProcessingSlices/OrderProcessingSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad88528aadb066c112a314d21791faa904ec14d6cb77e3c70536e101015386c7"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: ShippingSlices: \u0060ShippingSlices\u0060 contributes only 6 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/ShippingSlices/ShippingSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6350f8a9aad7bdab1b9e9c0fa0f99bf99acd079b7183dd4fea346020c51a8e4"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: CRMSlices: \u0060CRMSlices\u0060 contributes only 6 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/CRMSlices/CRMSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"722ddf39dc9392f7c7f86f910f47feba0930f73aecd1bf7ad4f52b60fa8f7b1b"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: PromotionsSlices: \u0060PromotionsSlices\u0060 contributes only 6 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/PromotionsSlices/PromotionsSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"29ccc61c0633ffea8617faf5270b79703e67147839e14adf0a944e129d53c020"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: ReportSlices: \u0060ReportSlices\u0060 contributes only 6 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/ReportSlices/ReportSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac6853fdfb77ae6b0ec1feb13c759de41e931e568812564a01815ad875877328"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: WishListSlices: \u0060WishListSlices\u0060 contributes only 6 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/WishListSlices/WishListSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc389e7d306d7bbce7f3094e9104d8c3496dde6b1a96839ee235647f30b1f718"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: ShoppingCartSlices: \u0060ShoppingCartSlices\u0060 contributes only 6 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/ShoppingCartSlices/ShoppingCartSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5229beb81d24d5528285aeeb51dc8527342c9e16efcb054166ad4ec68e5f818e"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: Document: \u0060Document\u0060 contributes only 1 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/Document/Document.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0bb7a74f5c8547082d012dd83f914f0f4de39f25bc8f1db9bc4159857f0180b2"}},{"ruleId":"D18","level":"note","message":{"text":"SharedKernel (Production): 23 .cs files, 767 LoC (597 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/SharedKernal/SharedKernel.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c174fb2ddcd97fae5886404ea61d7934719d5b11522ddd317b4d4d64513cbb20"}},{"ruleId":"D18","level":"note","message":{"text":"Infrastructure (Production): 9 .cs files, 213 LoC (169 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/Infrastructure/Infrastructure.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f85d4ae0df25579e9cb175ff5e2b52e8d0f3f8422c06555ccb3b8a8a3b27e2a1"}},{"ruleId":"D18","level":"note","message":{"text":"RestApi (Production): 4 .cs files, 308 LoC (228 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/RestApi/RestApi.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7688a20182f74565c8277694a602271eaca8fc525393f081de88fee2bd630bb"}},{"ruleId":"D18","level":"note","message":{"text":"ProductSlices (Production): 19 .cs files, 732 LoC (573 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/ProductSlices/ProductSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bcd079fa0cf1cc1f3bce39b07b367ccebc0bc4c20e23caa494f411b9a936e43a"}},{"ruleId":"D18","level":"note","message":{"text":"CustomerSlices (Production): 10 .cs files, 399 LoC (304 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/CustomerSlices/CustomerSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9fde0ced6d9943dcd863d666ddc15794732fc5dd5a52aebd682a0cfcdd64181f"}},{"ruleId":"D18","level":"note","message":{"text":"OrderSlices (Production): 14 .cs files, 388 LoC (304 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/OrderSlices/OrderSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a43b2287777f81eceaee028d5ca42701d507bdd0f6bee96ebc0f13e7d5a97207"}},{"ruleId":"D18","level":"note","message":{"text":"DapperPersistance (Production): 12 .cs files, 518 LoC (417 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/Persistance/DapperPersistance.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"02878993bc007c289f2d8d097a360918283c25e4f8157da34ce2e5c9d1e64755"}},{"ruleId":"D18","level":"note","message":{"text":"UserSlices (Production): 1 .cs files, 1 LoC (1 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/UserSlices/UserSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"09a9d8b659d08cd3c03e767f362c641f88fc8a1a68bce0b7102e911ea695e4fd"}},{"ruleId":"D18","level":"note","message":{"text":"ProductMgmtSlices (Production): 35 .cs files, 1586 LoC (1266 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/ProductMgmtSlices/ProductMgmtSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e777bc4cdd49828f8e995797046850d56388c6c2950eb841a2c93c5aa5bd167b"}},{"ruleId":"D18","level":"note","message":{"text":"InventoryMgmtSlices (Production): 1 .cs files, 7 LoC (6 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/InventoryMgmtSlices/InventoryMgmtSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"601c6a3c07501ee288500d4b1d97e7e2d12d45800f0f79658c8f68478349dd90"}},{"ruleId":"D18","level":"note","message":{"text":"OrderProcessingSlices (Production): 1 .cs files, 7 LoC (6 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/OrderProcessingSlices/OrderProcessingSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"05044f8c5571b0bb55e05a7055973ccc3921b818b30c9fcc0e54ee500511ab50"}},{"ruleId":"D18","level":"note","message":{"text":"ShippingSlices (Production): 1 .cs files, 7 LoC (6 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/ShippingSlices/ShippingSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"97383bbe8a14bdfbaeae6256d2de8a4919fb127d2907a3bad909f317c1f8f55a"}},{"ruleId":"D18","level":"note","message":{"text":"CRMSlices (Production): 1 .cs files, 7 LoC (6 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/CRMSlices/CRMSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c670c0c44fbc87345bbc54285d2635ebd5b05f96aaa366f12f44928cddaeb22"}},{"ruleId":"D18","level":"note","message":{"text":"PromotionsSlices (Production): 1 .cs files, 8 LoC (6 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/PromotionsSlices/PromotionsSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9148041e4cea448971dfe018ce76ab31f2578bc75531281a912eed32e0a20a50"}},{"ruleId":"D18","level":"note","message":{"text":"ReportSlices (Production): 1 .cs files, 7 LoC (6 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/ReportSlices/ReportSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"41ba1ea7cdb61f06cde8c769f7d8d3da98434a7df66e6a8a973ebb0fa40054e2"}},{"ruleId":"D18","level":"note","message":{"text":"WishListSlices (Production): 1 .cs files, 7 LoC (6 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/WishListSlices/WishListSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e50e539afff705be08bb3ef1bbe50d8c50063d45324de90d359df552c40f100"}},{"ruleId":"D18","level":"note","message":{"text":"ShoppingCartSlices (Production): 1 .cs files, 7 LoC (6 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/ShoppingCartSlices/ShoppingCartSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5aba83c478700222b53f4e13348ed7b7ec874045dda4137721d394e957a40c0"}},{"ruleId":"D18","level":"note","message":{"text":"CleanStoreTest (Test): 3 .cs files, 122 LoC (72 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/CleanStoreTest/CleanStoreTest.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6fec728bd12aaa41107d662cadd6aa56adc8a73bdfcafdc7f88ca0ed0d33b67a"}},{"ruleId":"D18","level":"note","message":{"text":"Document (Production): 1 .cs files, 3 LoC (1 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/Document/Document.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab2c6317c4acd761a5ae1c2b1179bfc45a637dbe3ba503f08a75b253f340bc98"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: SharedKernel: SharedKernel: 0 % XML-doc coverage (0/116)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/SharedKernal/SharedKernel.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"41417bf4d7edfa2649af417abaff58404f6bf7d79def1b51c98b484985fc1d18"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: Infrastructure: Infrastructure: 0 % XML-doc coverage (0/20)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/Infrastructure/Infrastructure.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"58ea7c4456b4fd534fa92d1368602904b8870d6c99a1ca2153ea9be9a139d61b"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: ProductSlices: ProductSlices: 0 % XML-doc coverage (0/64)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/ProductSlices/ProductSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"82608bfa4b590afa6c56c34c25a49d4e0cd4ec582dfcff8fb0af4b489149fca4"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: CustomerSlices: CustomerSlices: 0 % XML-doc coverage (0/37)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/CustomerSlices/CustomerSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c42ce863d51a3adb357ca1954f3eb8fc46b402120c09796418afa43a0f167ad5"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: OrderSlices: OrderSlices: 0 % XML-doc coverage (0/50)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/OrderSlices/OrderSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c227393b1df5ff98a6e3b8203802d5e5023de0d9618a83116e49f195c0fd1e71"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: DapperPersistance: DapperPersistance: 0 % XML-doc coverage (0/45)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/Persistance/DapperPersistance.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"950823c252aeffc5d3a437704ca260bb37050afd51b2e62806e040c3fa05e9bc"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: UserSlices: UserSlices: 100 % XML-doc coverage (0/0)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/UserSlices/UserSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0951f27390fd4a7e057ea52165481da02ce6675521ba059c433dcc2d19c39f76"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: InventoryMgmtSlices: InventoryMgmtSlices: 0 % XML-doc coverage (0/1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/InventoryMgmtSlices/InventoryMgmtSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"826748b9d6d94894abcbf51cc9e36309c0a8e3471c76844bc56d0fbc1aa1c58d"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: OrderProcessingSlices: OrderProcessingSlices: 0 % XML-doc coverage (0/1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/OrderProcessingSlices/OrderProcessingSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dae4a48157d6a8045ff49b8e3932caa0a43855875e37e4e5ce31e0a7a187ec8c"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: ShippingSlices: ShippingSlices: 0 % XML-doc coverage (0/1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/ShippingSlices/ShippingSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9ee836855d8659f4d2c647d59df180346a6a8f373eda15aee453afee4950c79"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: CRMSlices: CRMSlices: 0 % XML-doc coverage (0/1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/CRMSlices/CRMSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad2f7a86dcaf34161bacf2075ea5d07d41fda5fa64115917f66d9632b1eb43f2"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: PromotionsSlices: PromotionsSlices: 0 % XML-doc coverage (0/1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/PromotionsSlices/PromotionsSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5f71921928268753ef24a55c4f818d707b59afc936d28cd4314051e234d9014"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: ReportSlices: ReportSlices: 0 % XML-doc coverage (0/1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/ReportSlices/ReportSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"caa927f38eb4c1a543af534880e80339383095562e6e5bf840392e6aca03578e"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: WishListSlices: WishListSlices: 0 % XML-doc coverage (0/1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/WishListSlices/WishListSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f865a7e4f7e02a082f9272028fca6498e99d358870e91eeeb92457075d2db9a1"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: ShoppingCartSlices: ShoppingCartSlices: 0 % XML-doc coverage (0/1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/ShoppingCartSlices/ShoppingCartSlices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ece0ad30c3d1c8199008e3c6b164ab9b7c164aed3ec00b3f01f2e91650aa29e"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Document: Document: 100 % XML-doc coverage (0/0)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/Document/Document.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5965e2ff223a829911d378cb840bb22448224ee8341bb91bd972b4f2210194be"}},{"ruleId":"D20","level":"note","message":{"text":"No ADRs found: No ADRs found at common paths; consider documenting architectural decisions in Docs/ADL/ or similar."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d2bea044ff79d7d275f5a91a6e2f548586178eaf480274c33960ad020c854631"}},{"ruleId":"D21","level":"error","message":{"text":"LLM evaluation not run \u2014 infrastructure error: The model host was unreachable or errored (OpenAI-compatible endpoint returned HTTP 504: request timed out after 240s (HttpClient.Timeout) \u2014 the prompt was likely too large to evaluate in the budget); this dimension was NOT evaluated and is excluded from the score. This is an infrastructure failure, not a low score \u2014 re-run with a reachable provider."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"966f4d71ca8ba34739cf424f212e820487b828093b2348c8e843e749eeda7a08"}},{"ruleId":"D22","level":"note","message":{"text":"No exposed public API: No intentionally-exposed types (IsPackable or .Contracts) to evaluate."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2712d35e1d1ba8e91a90125d29842b77d4ca65e0eeaa52476c739f7165820a6f"}},{"ruleId":"D23","level":"note","message":{"text":"Bounded contexts not declared: A codebase of this scale and complexity with multiple projects likely contains implicit architectural boundaries that require explicit declaration to effectively assess cross-boundary coupling. Declare architecture.contexts (\u22652) in config to assess cross-boundary type coupling."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1c7e276c9c682731f01819ed5378b90ca320cde1b583c90920172911598362b3"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Arrange\u0022 \u2014 Remove this comment. The structure of the test method (setup, act, assert) is a standard convention; the comment adds no new information."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/CleanStoreTest/ProductMgmTest/AddProductCommandTest.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"e270b2c525368723125af5e991f5b0e64f8bb912f5d78da4d1c37dad3e5a448f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Log the exception details\u0022 \u2014 Remove this comment. It describes a generic action that is likely implemented in a base class or logging utility, offering no specific insight into the current method\u0027s logic."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/RestApi/Controllers/CustomerController/CustomerController.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"17d740006c8e86ff6cbadee1cd1bd236dad387a55416b54d37dd39fec8a6161e"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// GlobalUsings.cs\u0022 \u2014 Remove. This is a file header comment that doesn\u0027t explain the code\u0027s behavior or intent."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"SoonMonoCleanStore/CustomerSlices/GlobalUsings.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa5960745227b5c22b002cfbfa4b44580f3734cc4ab39a9ec410c149bf3f28be"}},{"ruleId":"D25","level":"note","message":{"text":"no ADRs to check: No ADRs found, so conformance can\u0027t be assessed."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5f96235c58be08aaae505ba823e9095f206fbc6a447f646e346ee9bd81a5f481"}},{"ruleId":"D30","level":"error","message":{"text":"Critical CVE: System.Drawing.Common 4.7.0: System.Drawing.Common 4.7.0 (transitive) has a Critical advisory; affects 7 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1f79a595d62add568feda19f54d04fdad0273f072ae213a4e4ad714127a8a2fe"}},{"ruleId":"D30","level":"error","message":{"text":"High CVE: Npgsql 8.0.1: Npgsql 8.0.1 (transitive) has a High advisory; affects 7 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ee9dba36419e0ff90cab92290a96b3fe0c6023e867787b2b38c72662c2ec6bad"}},{"ruleId":"D30","level":"error","message":{"text":"High CVE: System.Text.Json 8.0.0: System.Text.Json 8.0.0 (transitive) has a High advisory; affects 7 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c475b5d776175d1181892c3e7e72c31acdbe224ac300e32808399947498db6c9"}},{"ruleId":"D30","level":"error","message":{"text":"High CVE: System.Text.Json 8.0.0: System.Text.Json 8.0.0 (transitive) has a High advisory; affects 7 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c475b5d776175d1181892c3e7e72c31acdbe224ac300e32808399947498db6c9"}},{"ruleId":"D30","level":"error","message":{"text":"High CVE: System.Net.Http 4.3.0: System.Net.Http 4.3.0 (transitive) has a High advisory. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7cf85abffe732f2645ef95a624d6badc26f0263616284d6a4cc46ca8e983031d"}},{"ruleId":"D30","level":"error","message":{"text":"High CVE: System.Text.RegularExpressions 4.3.0: System.Text.RegularExpressions 4.3.0 (transitive) has a High advisory. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b96b7173c4377d5bea4d6fd7b52323631c631c44172b743bec6f266c10a4e538"}},{"ruleId":"D30","level":"warning","message":{"text":"Medium CVE: Microsoft.IdentityModel.JsonWebTokens 7.0.3: Microsoft.IdentityModel.JsonWebTokens 7.0.3 (transitive) has a Medium advisory; affects 7 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"500c56d1154b6703a85e24b9c841b4a406a5c2b2ac901404d6ed39d2508de2d0"}},{"ruleId":"D30","level":"warning","message":{"text":"Medium CVE: System.IdentityModel.Tokens.Jwt 7.0.3: System.IdentityModel.Tokens.Jwt 7.0.3 (transitive) has a Medium advisory; affects 7 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7273280dcd8f4031d8edecebe4f87a896668de0e5e0cc93987067e5bfc3fc659"}},{"ruleId":"D30","level":"warning","message":{"text":"Medium CVE: BouncyCastle.Cryptography 2.2.1: BouncyCastle.Cryptography 2.2.1 (transitive) has a Medium advisory; affects 7 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"14f200cfc986157974a5db80565947dc2c38eec1aa443056632491ecf70618d3"}},{"ruleId":"D30","level":"warning","message":{"text":"Medium CVE: BouncyCastle.Cryptography 2.2.1: BouncyCastle.Cryptography 2.2.1 (transitive) has a Medium advisory; affects 7 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"14f200cfc986157974a5db80565947dc2c38eec1aa443056632491ecf70618d3"}},{"ruleId":"D30","level":"warning","message":{"text":"Medium CVE: BouncyCastle.Cryptography 2.2.1: BouncyCastle.Cryptography 2.2.1 (transitive) has a Medium advisory; affects 7 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"14f200cfc986157974a5db80565947dc2c38eec1aa443056632491ecf70618d3"}},{"ruleId":"D31","level":"note","message":{"text":"Not applicable: No Infrastructure-as-Code or container manifests found (Dockerfile, Terraform, Kubernetes/Helm, CloudFormation); nothing to scan."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2e57fca60a46af1c36cbca9e46b2039488d0488a6eab73ad6bc057cd95ef2432"}},{"ruleId":"D32","level":"note","message":{"text":"Not applicable: No PII/GDPR-handling patterns detected (p/gdpr ruleset) \u2014 no data-compliance surface to assess."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"df51e593e9b0b9805626d04fe36a3d12c504b5d7d5da30dc59b5b0f134b5753b"}},{"ruleId":"D33","level":"note","message":{"text":"Not applicable: No JS/npm manifest or lockfile found outside bin/obj (package.json, package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb); no JS dependencies to scan."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f46a134eeb447d8c90511e3106af3dac20b26868f5143d77eadbb96ed8f220c6"}},{"ruleId":"D34","level":"note","message":{"text":"Dormant codebase: 29 of 29 significant files have no living knowledge \u2014 the codebase as a whole is dormant, not 29 separate risks. Re-engage owners or document before change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4c69f1e54b7dd6fe9029dd02df6ba8f8145b789f2f18dbdaa086c40ded49dba6"}},{"ruleId":"D36","level":"note","message":{"text":"Not applicable: No CI/build pipeline found (.github/workflows, .gitlab-ci.yml, azure-pipelines.yml, Jenkinsfile, .circleci); there is no build to attest provenance for."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"383f97e2d2c3d8c6d4adffc68d228db0928a3a8f5c3df1214c0f646687d2dbe9"}},{"ruleId":"D37","level":"note","message":{"text":"Not applicable: No vulnerability-disclosure policy file found (SECURITY.md, .github/SECURITY.md, docs/SECURITY.md, .well-known/security.txt). A coordinated-disclosure policy may live off-repo, so this is not evidenced rather than failed."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e748a9b8b3d154964dfb621b8675d34a302dda266d0196c5d83eb8ba4071d61c"}},{"ruleId":"D38","level":"note","message":{"text":"Not applicable: No JS/npm lockfile found outside bin/obj (package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb); nothing for OSV to scan."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6ff7301b610918095afd57ac1c89dabddab1d8fdb34c0f0d687159a5a0df0b8e"}}],"properties":{"codehealthPublication":{"public":true,"notice":"This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings \u2014 which rule fired, in which file, on which line, and how to fix it \u2014 are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.","securityFindingsRedacted":0,"secretScannerRunsExcluded":0}}}]}