blindspot

Knowledge resilience report

Repository: /private/tmp/cohort10/serilog
Generated 2026-05-20 15:52 UTC · window: last 90 days · blindspot v0.2.1

Executive brief

Critical Resilience 38/100 · F · doc only profile

Top 1 risk
  1. MEDIUM Add review depth requirement for src/Serilog/Configuration/LoggerSinkConfiguration.cs src/Serilog/Configuration/LoggerSinkConfiguration.cs

Business implication Code surface is too small for confident structural claims; treat any concentration signal as informational only.

Executive summary

Establish a successor for Arjan Vermunt (a.vermunt@dutchwebsolutions.nl)'s work — 5 files would orphan without them

Resilience is **Critical** (38/100). Weakest dimension: ownership concentration (F). Repo profile: doc-only — very little code surface for this analysis. Treat results with caution.

Risk inventory: 5 file(s) would become orphans if the top contributor leaves; 1 file(s) carry rubber-stamp review patterns; 4 service(s) lack AI-readable operational context.

Top recommended action: Establish a successor for Arjan Vermunt (a.vermunt@dutchwebsolutions.nl)'s work — 5 files would orphan without them

💡 Want a richer, prose-style executive summary? Add a cloud LLM key (Anthropic or OpenAI) to your scan:
--api-key sk-ant-... --provider anthropic --model claude-sonnet-4-6
or set narrative.api_key in .blindspot.yaml. Without a key, this rule-based narrator is used — deterministic, in-process, no network.

Overview

Engineering Resilience Score

Overall
38/100 F
Critical

Critical resilience overall (score 38). Weakest dimension: ownership concentration at 0.

Doc-only Very little code surface — treat results with caution.

Key signals — the six questions

Six concrete questions, each with a one-number answer. This is the report. Each signal opens up below into the files, services and people behind its number — run with --detailed for the architecture deep-dive.

Ownership concentration F
1 service rests on a single owner
If that person is unavailable, no one else can confidently change these areas.
Single-engineer dependency
5 files orphan if the top contributor leaves
These files would have no confident owner the day that person walks out.
Knowledge decay
No file is critically decayed
Owners are still close to the code they own.
Review depth D
1 file is approved without scrutiny
Most approvals on these files land with no substantive comment — quality rests on the author alone.
Correction load
Features land without a bugfix tail
Code ships and stays shipped — low rework pressure.
AI-readable context F
Repo lacks AI-readable operational context (0/5)
No agent rules (CLAUDE.md), specs, architecture notes / ADRs at the repo root — a new human or AI agent must reverse-engineer the codebase.

Recommended actions

Concrete next steps derived from the signals in this report. Each action is tied to a specific finding — treat them as conversation starters with the team, not directives.

Priority Confidence Category Title Target Evidence
Medium Low Review Hygiene Review without scrutiny Add review depth requirement for src/Serilog/Configuration/LoggerSinkConfiguration.cs
100% of approvals on this file arrived without a substantive review comment (across 4 reviews). Introduce a review checklist or require at least one substantive comment before approval is allowed.
▸ 100% of approvals on this file arrived without a substantive review comment (4 reviews).
src/Serilog/Configuration/LoggerSinkConfiguration.cs rubber_stamp_ratio=100%, reviews=4

Signal details

Each signal above, opened up — the files, services and people behind the headline number. Risk signals are expanded by default; healthy ones stay collapsed.

Ownership concentration — service risk map risk

Bus factor measures how many people would need to leave before knowledge of a service is critically lost. A bus factor of 1 means a single person carries the service.

ServiceFilesBus factor RiskTop ownerTheir coverage
test 3 1 critical Arjan Vermunt (a.vermunt@dutchwebsolutions.nl) 100%
Configuration 1 1 critical Arjan Vermunt (a.vermunt@dutchwebsolutions.nl) 100%
Core 1 1 critical Arjan Vermunt (a.vermunt@dutchwebsolutions.nl) 100%
Formatting 1 1 critical Simon Cropp (simon.cropp@gmail.com) 100%

Files with single ownership

Entirely owned by one person — the most acute knowledge risk.

FileOwnerCoverage
src/Serilog/Configuration/LoggerSinkConfiguration.cs Arjan Vermunt (a.vermunt@dutchwebsolutions.nl) 100%
src/Serilog/Core/Sinks/RestrictedSink.cs Arjan Vermunt (a.vermunt@dutchwebsolutions.nl) 100%
src/Serilog/Formatting/Json/JsonValueFormatter.cs Simon Cropp (simon.cropp@gmail.com) 100%
Single-engineer dependency — departure scenarios risk

For each of the top contributors by aggregate ownership coverage, this is what would happen if they left tomorrow: how many files lose their primary expert, how many become unowned (orphan, top remaining coverage < 30%), and which services take the largest hit. Use this to prioritise pair-work and knowledge transfer.

CRITICAL If Arjan Vermunt (a.vermunt@dutchwebsolutions.nl) leaves
Files affected
5 / 6
Orphan files
5 (83%)
Avg coverage loss
83%
Most-affected services
  • test 3/3 files, 3 orphan, 100% avg loss
  • Configuration 1/1 files, 1 orphan, 100% avg loss
  • Core 1/1 files, 1 orphan, 100% avg loss
CRITICAL If Simon Cropp (simon.cropp@gmail.com) leaves
Files affected
1 / 6
Orphan files
1 (17%)
Avg coverage loss
17%
Most-affected services
  • Formatting 1/1 files, 1 orphan, 100% avg loss
  • Configuration 0/1 files, 0% avg loss
  • Core 0/1 files, 0% avg loss
Knowledge decay — top concerns healthy

Decay rises when an owner stops touching a file and others have been changing it. The 90-day projection shows the trajectory if nothing changes.

FileTop owner Days since touch Decay score Risk 90-day projection
src/Serilog/Formatting/Json/JsonValueFormatter.cs Simon Cropp (simon.cropp@gmail.com) 112 37% medium 43%
src/Serilog/Configuration/LoggerSinkConfiguration.cs Arjan Vermunt (a.vermunt@dutchwebsolutions.nl) 18 11% low 36%
src/Serilog/Core/Sinks/RestrictedSink.cs Arjan Vermunt (a.vermunt@dutchwebsolutions.nl) 18 11% low 36%
Review depth — review lineage risk

Review data fetched from GitHub (8 PRs analyzed). A rubber-stamp ratio is the share of approvals on a file that arrived without a single review comment. Reviewer diversity measures whether several people share the review load.

Files with highest rubber-stamp ratio

File Reviewers Reviews Comments Rubber-stamp
src/Serilog/Configuration/LoggerSinkConfiguration.cs 2 4 0 100%

Files with lowest reviewer diversity

File Reviewers Reviews Diversity
src/Serilog/Configuration/LoggerSinkConfiguration.cs 2 4 38%
src/Serilog/Core/ILoggingFailureListener.cs 2 3 44%
src/Serilog/Core/ISetLoggingFailureListener.cs 2 3 44%
src/Serilog/Core/LoggingFailureKind.cs 2 3 44%
src/Serilog/Core/Sinks/Batching/BatchingSink.cs 2 3 44%
src/Serilog/Core/Sinks/Fallback/DelegatingLoggingFailureListener.cs 2 3 44%
src/Serilog/Core/Sinks/Fallback/FailureListenerSink.cs 2 3 44%
src/Serilog/Core/Sinks/OptionalInterfaceForwardingSink.cs 2 3 44%
src/Serilog/Debugging/SelfLog.cs 2 3 44%
Correction load — files with a bugfix tail healthy
No correction-load data for this window.
AI-readable context — operational docs coverage risk

Coverage of AI-readable organizational memory — agent rules, specs, prompts, architecture decisions, skills. The repo-root row is what the signal grades; per-service rows are shown for context. This is not an AI-generated-code detector.

Surface Agent rules Specs Prompts Architecture Skills Coverage
(repo) 0%
Configuration 0%
Core 0%
Formatting 0%
test 0%