blindspot

Knowledge resilience report

Repository: /private/tmp/cohort10/efcore
Generated 2026-05-20 13:10 UTC · window: last 90 days · blindspot v0.2.0

Executive brief

Critical Resilience 35/100 · F · team profile

Top 3 risks
  1. HIGH Diversify ownership of 'EFCore.Analyzers' (currently single-owner) EFCore.Analyzers
  2. HIGH Diversify ownership of 'EFCore.Tools' (currently single-owner) EFCore.Tools
  3. HIGH Diversify ownership of 'eng' (currently single-owner) eng

Business implication An unexpected departure of the top contributor would orphan 385 critical files and likely slow feature delivery by 3–5 weeks while the team learns the surface.

Executive summary

Pair Andriy Svyryd (andriysvyryd@github) on 'eng' — bus factor 1 across 26 files

Resilience is **Critical** (35/100). Weakest dimension: ownership concentration (F). This is a structural property — typical for founder-led or single-maintainer projects — not a verdict on project health.

Risk inventory: 5 service(s) rest on a single contributor; 385 file(s) would become orphans if the top contributor leaves; 7 file(s) carry high correction load (≥35% fix/revert); 26 service(s) lack AI-readable operational context.

Top recommended action: Pair Andriy Svyryd (andriysvyryd@github) on 'eng' — bus factor 1 across 26 files

💡 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
35/100 F
Critical

Critical resilience overall (score 35). Weakest dimension: AI operational readiness at 1.

Team-based Multiple maintainers without a single dominant contributor.

Key signals — the six questions

Six concrete questions, each with a one-number answer. This is the report. Everything below is supporting detail; run with --detailed for the deep-dive sections.

Ownership concentration F
5 services rest on a single owner
If that person is unavailable, no one else can confidently change these areas.
Single-engineer dependency
385 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
Reviews carry substantive comments
Approvals reflect real scrutiny, not rubber-stamping.
Correction load C
7 files carry a heavy bugfix tail
After each feature these files get a stream of fix/revert commits — stability is paying for delivery pace.
AI-readable context F
Repo lacks AI-readable operational context (1/5)
No specs, architecture notes / ADRs, prompts 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
High Medium Ownership Diversification Single-owner concentration Diversify ownership of 'EFCore.Analyzers' (currently single-owner)
Service 'EFCore.Analyzers' has bus factor 1 across 5 files; Maxwell (m-x-shokhzod@github) holds 100% of effective ownership. Pair them with at least two additional engineers and rotate code reviews for this area over the next 60 days.
▸ Bus factor 1 over 5 files — Maxwell (m-x-shokhzod@github) holds 100% of effective ownership.
EFCore.Analyzers bus_factor=1, top_owner_coverage=100%, files=5
High Medium Ownership Diversification Single-owner concentration Diversify ownership of 'EFCore.Tools' (currently single-owner)
Service 'EFCore.Tools' has bus factor 1 across 6 files; Andriy Svyryd (andriysvyryd@github) holds 100% of effective ownership. Pair them with at least two additional engineers and rotate code reviews for this area over the next 60 days.
▸ Bus factor 1 over 6 files — Andriy Svyryd (andriysvyryd@github) holds 100% of effective ownership.
EFCore.Tools bus_factor=1, top_owner_coverage=100%, files=6
High Medium Ownership Diversification Single-owner concentration Diversify ownership of 'eng' (currently single-owner)
Service 'eng' has bus factor 1 across 26 files; Andriy Svyryd (andriysvyryd@github) holds 91% of effective ownership. Pair them with at least two additional engineers and rotate code reviews for this area over the next 60 days. Cadence: aim to cover the top files this quarter.
▸ Bus factor 1 over 26 files — Andriy Svyryd (andriysvyryd@github) holds 91% of effective ownership.
eng bus_factor=1, top_owner_coverage=91%, files=26
Medium Medium Codeowners Update Update CODEOWNERS for NuGet.config
Declared owners (@AndriySvyryd) do not include the current top contributor. ProductConstructionServiceProd (productconstructionserviceprod) holds 69% of effective ownership. Either add them to the CODEOWNERS rule or assign explicit cross-coverage.
▸ Declared owner does not include the actual top contributor (ProductConstructionServiceProd (productconstructionserviceprod) at 69% coverage).
NuGet.config declared=@AndriySvyryd, actual_top=productconstructionserviceprod, coverage=69%, line=9
Medium Medium Codeowners Update Update CODEOWNERS for eng/Version.Details.xml
Declared owners (@AndriySvyryd) do not include the current top contributor. ProductConstructionServiceProd (productconstructionserviceprod) holds 100% of effective ownership. Either add them to the CODEOWNERS rule or assign explicit cross-coverage.
▸ Declared owner does not include the actual top contributor (ProductConstructionServiceProd (productconstructionserviceprod) at 100% coverage).
eng/Version.Details.xml declared=@AndriySvyryd, actual_top=productconstructionserviceprod, coverage=100%, line=12
Medium Medium Codeowners Update Update CODEOWNERS for eng/Versions.props
Declared owners (@AndriySvyryd) do not include the current top contributor. ProductConstructionServiceProd (productconstructionserviceprod) holds 41% of effective ownership. Either add them to the CODEOWNERS rule or assign explicit cross-coverage.
▸ Declared owner does not include the actual top contributor (ProductConstructionServiceProd (productconstructionserviceprod) at 41% coverage).
eng/Versions.props declared=@AndriySvyryd, actual_top=productconstructionserviceprod, coverage=41%, line=12
Medium Medium Ownership Diversification Single-owner concentration Diversify ownership of 'EFCore.Proxies' (currently single-owner)
Service 'EFCore.Proxies' has bus factor 1 across 3 files; Andriy Svyryd (andriysvyryd@github) holds 100% of effective ownership. Pair them with at least two additional engineers and rotate code reviews for this area over the next 60 days.
▸ Bus factor 1 over 3 files — Andriy Svyryd (andriysvyryd@github) holds 100% of effective ownership.
EFCore.Proxies bus_factor=1, top_owner_coverage=100%, files=3
Medium Medium Ownership Diversification Single-owner concentration Diversify ownership of 'EFCore.SqlServer.Abstractions' (currently single-owner)
Service 'EFCore.SqlServer.Abstractions' has bus factor 1 across 3 files; Andriy Svyryd (andriysvyryd@github) holds 100% of effective ownership. Pair them with at least two additional engineers and rotate code reviews for this area over the next 60 days.
▸ Bus factor 1 over 3 files — Andriy Svyryd (andriysvyryd@github) holds 100% of effective ownership.
EFCore.SqlServer.Abstractions bus_factor=1, top_owner_coverage=100%, files=3