{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-ddb125a7780d562b", "name": "Possibly dead Python function: inspect_engram", "shortDescription": {"text": "Possibly dead Python function: inspect_engram"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-84ac809e2e92fb80", "name": "Possibly dead Python function: export_memory", "shortDescription": {"text": "Possibly dead Python function: export_memory"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e1d5d011567d71cf", "name": "Possibly dead Python function: import_memory", "shortDescription": {"text": "Possibly dead Python function: import_memory"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b3456c4d6d13a38b", "name": "Possibly dead Python function: end", "shortDescription": {"text": "Possibly dead Python function: end"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ab0b5cefd7e2b3b1", "name": "Possibly dead Python function: call_llm", "shortDescription": {"text": "Possibly dead Python function: call_llm"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-91e007b325c1e625", "name": "Possibly dead Python function: challenge", "shortDescription": {"text": "Possibly dead Python function: challenge"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4cc1280bb5ddc990", "name": "Possibly dead Python function: smooth_update", "shortDescription": {"text": "Possibly dead Python function: smooth_update"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-777b8cbffae40379", "name": "Possibly dead Python function: register_migration", "shortDescription": {"text": "Possibly dead Python function: register_migration"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-47ab71b7b14a8f56", "name": "Possibly dead Python function: decorator", "shortDescription": {"text": "Possibly dead Python function: decorator"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-235313247e77d762", "name": "Possibly dead Python function: run_migrations", "shortDescription": {"text": "Possibly dead Python function: run_migrations"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-043544742680e6f3", "name": "Possibly dead Python function: list_migrations", "shortDescription": {"text": "Possibly dead Python function: list_migrations"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-41b7e7cdd00be81e", "name": "Possibly dead Python function: update_connection", "shortDescription": {"text": "Possibly dead Python function: update_connection"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fbb2977ef7c7162d", "name": "Possibly dead Python function: search_archive", "shortDescription": {"text": "Possibly dead Python function: search_archive"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bf81451079dcea21", "name": "Possibly dead Python function: bulk_archive", "shortDescription": {"text": "Possibly dead Python function: bulk_archive"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c8c7daf0d085e177", "name": "Possibly dead Python function: resharpen", "shortDescription": {"text": "Possibly dead Python function: resharpen"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0e92775b6d3a010e", "name": "Possibly dead Python function: batch_index", "shortDescription": {"text": "Possibly dead Python function: batch_index"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b4422252a6f13fcb", "name": "Possibly dead Python function: match_schemas", "shortDescription": {"text": "Possibly dead Python function: match_schemas"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-41c83bbe6cfc5047", "name": "Possibly dead Python function: confidence_for_domain", "shortDescription": {"text": "Possibly dead Python function: confidence_for_domain"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59f58d71f53913cd", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "astral-sh/setup-uv@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "20 tests / 88 src (ratio 0.23)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fe61efcee13c97ec", "name": "37 TODO/FIXME markers", "shortDescription": {"text": "37 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 205 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95a5e3662cdc3d2d", "name": "Agent authority lacks a verifier contract: templates/AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: templates/AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c91f33df671bec65", "name": "Commented-code block (6 lines) in mnemos/identity_diff.py:426", "shortDescription": {"text": "Commented-code block (6 lines) in mnemos/identity_diff.py:426"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nmnemos/mcp_server.py:mnemos_remember, mnemos/mcp_server.py:mnemos_ingest\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nmnemos/simple_mcp.py:configure_runtime, mnemos/simple_mcp.py:run_simple_server, mnemos/simple_scope.py:resolve_scope\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nmnemos/llm.py:complete, mnemos/llm.py:complete, mnemos/llm.py:complete, mnemos/llm.py:complete\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nmnemos/substrate/handlers/wandering.py:handle, mnemos/substrate/handlers/dreaming.py:handle, mnemos/substrate/handlers/initiation.py:handle, mnemos/substrate/handlers/insight.py:handle\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18163"}, "properties": {"repository": "Riley-Coyote/mnemos", "repoUrl": "https://github.com/Riley-Coyote/mnemos", "branch": "main"}, "results": [{"ruleId": "scanner-ddb125a7780d562b", "level": "note", "message": {"text": "Possibly dead Python function: inspect_engram"}, "properties": {"repobilityId": "0e95f0fe142f4638", "scanner": "scanner-primary", "fingerprint": "ddb125a7780d562b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/interface/memory_inspector.py:41"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-84ac809e2e92fb80", "level": "note", "message": {"text": "Possibly dead Python function: export_memory"}, "properties": {"repobilityId": "3d38cc985470cbee", "scanner": "scanner-primary", "fingerprint": "84ac809e2e92fb80", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/interface/export.py:30"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e1d5d011567d71cf", "level": "note", "message": {"text": "Possibly dead Python function: import_memory"}, "properties": {"repobilityId": "28456d5a52467f46", "scanner": "scanner-primary", "fingerprint": "e1d5d011567d71cf", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/interface/export.py:59"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b3456c4d6d13a38b", "level": "note", "message": {"text": "Possibly dead Python function: end"}, "properties": {"repobilityId": "4e31b743948b1d0c", "scanner": "scanner-primary", "fingerprint": "b3456c4d6d13a38b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/interface/session.py:101"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ab0b5cefd7e2b3b1", "level": "note", "message": {"text": "Possibly dead Python function: call_llm"}, "properties": {"repobilityId": "50e55e6e350542dc", "scanner": "scanner-primary", "fingerprint": "ab0b5cefd7e2b3b1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/substrate/llm.py:61"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-91e007b325c1e625", "level": "note", "message": {"text": "Possibly dead Python function: challenge"}, "properties": {"repobilityId": "f8ce5c8161633809", "scanner": "scanner-primary", "fingerprint": "91e007b325c1e625", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/core/belief.py:101"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4cc1280bb5ddc990", "level": "note", "message": {"text": "Possibly dead Python function: smooth_update"}, "properties": {"repobilityId": "2bcd87f55612bb6b", "scanner": "scanner-primary", "fingerprint": "4cc1280bb5ddc990", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/core/emotional_state.py:88"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-777b8cbffae40379", "level": "note", "message": {"text": "Possibly dead Python function: register_migration"}, "properties": {"repobilityId": "6252e8c12e91dca3", "scanner": "scanner-primary", "fingerprint": "777b8cbffae40379", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/store/migrations.py:25"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-47ab71b7b14a8f56", "level": "note", "message": {"text": "Possibly dead Python function: decorator"}, "properties": {"repobilityId": "ffbcbc9bc189af1c", "scanner": "scanner-primary", "fingerprint": "47ab71b7b14a8f56", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/store/migrations.py:43"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-235313247e77d762", "level": "note", "message": {"text": "Possibly dead Python function: run_migrations"}, "properties": {"repobilityId": "948cc5bc25f872e5", "scanner": "scanner-primary", "fingerprint": "235313247e77d762", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/store/migrations.py:61"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-043544742680e6f3", "level": "note", "message": {"text": "Possibly dead Python function: list_migrations"}, "properties": {"repobilityId": "64575d1188b58437", "scanner": "scanner-primary", "fingerprint": "043544742680e6f3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/store/migrations.py:77"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-41b7e7cdd00be81e", "level": "note", "message": {"text": "Possibly dead Python function: update_connection"}, "properties": {"repobilityId": "696ac3a98689d3e1", "scanner": "scanner-primary", "fingerprint": "41b7e7cdd00be81e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/store/sqlite_store.py:516"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fbb2977ef7c7162d", "level": "note", "message": {"text": "Possibly dead Python function: search_archive"}, "properties": {"repobilityId": "9ea92124612c1eec", "scanner": "scanner-primary", "fingerprint": "fbb2977ef7c7162d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/store/sqlite_store.py:666"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bf81451079dcea21", "level": "note", "message": {"text": "Possibly dead Python function: bulk_archive"}, "properties": {"repobilityId": "02373edfc9c4519f", "scanner": "scanner-primary", "fingerprint": "bf81451079dcea21", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/store/archive.py:23"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c8c7daf0d085e177", "level": "note", "message": {"text": "Possibly dead Python function: resharpen"}, "properties": {"repobilityId": "6634461d840ed4fd", "scanner": "scanner-primary", "fingerprint": "c8c7daf0d085e177", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/store/archive.py:41"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0e92775b6d3a010e", "level": "note", "message": {"text": "Possibly dead Python function: batch_index"}, "properties": {"repobilityId": "40b185a9cca70424", "scanner": "scanner-primary", "fingerprint": "0e92775b6d3a010e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/store/embedding_index.py:350"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b4422252a6f13fcb", "level": "note", "message": {"text": "Possibly dead Python function: match_schemas"}, "properties": {"repobilityId": "001e128ab923c738", "scanner": "scanner-primary", "fingerprint": "b4422252a6f13fcb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/advanced/schema_matcher.py:16"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-41c83bbe6cfc5047", "level": "note", "message": {"text": "Possibly dead Python function: confidence_for_domain"}, "properties": {"repobilityId": "7033a11dde01463a", "scanner": "scanner-primary", "fingerprint": "41c83bbe6cfc5047", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mnemos/advanced/metamemory.py:37"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-59f58d71f53913cd", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ce5304dca307ec1e", "scanner": "scanner-primary", "fingerprint": "59f58d71f53913cd", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release-hardening.yml"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-59f58d71f53913cd", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9b0c7ffbca384200", "scanner": "scanner-primary", "fingerprint": "59f58d71f53913cd", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release-hardening.yml"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-fe61efcee13c97ec", "level": "note", "message": {"text": "37 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "fe61efcee13c97ec", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "5188eba5f02e2525", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "b3fd7b5fbe107fbb", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "5c08d17ea76c9d0d", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "db694c1a8b2de1a0", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-95a5e3662cdc3d2d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: templates/AGENTS.md"}, "properties": {"repobilityId": "cafcd2c947b6cc09", "scanner": "scanner-primary", "fingerprint": "95a5e3662cdc3d2d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "templates/AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c91f33df671bec65", "level": "none", "message": {"text": "Commented-code block (6 lines) in mnemos/identity_diff.py:426"}, "properties": {"repobilityId": "0f272e1050ce8417", "scanner": "scanner-primary", "fingerprint": "c91f33df671bec65", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "51c6cf24c521f776", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "821a697386ac803d", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "6589dbf74dd76640", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "fba373c783c862d0", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "a409a7163b2e1791", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "2dd25acaeba59f0f", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "dacc63de8ccae998", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "10ec0b89da5c1bc9", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "19ccc4803b94abf7", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "5df50f9be6019e88", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "9dabc9a75fa60965", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "5d0ccf21f6a7abbd", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "5df9ad5234b243fe", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "11b00f8272d524ef", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "d0e0155c02aa5088", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "14580dbd7ce35f32", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "96f00f68a77d83b4", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "7d613e2296ed2b0c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "2dc2de9f194ce87a", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}