blindspot

Knowledge resilience report

Repository: /private/tmp/cohort10/ollama
Generated 2026-05-20 16:21 UTC · window: last 90 days · blindspot v0.2.1

Executive brief

Fragile Resilience 54/100 · F · team profile

Top 3 risks
  1. HIGH Diversify ownership of 'integration' (currently single-owner) integration
  2. HIGH Diversify ownership of 'llama' (currently single-owner) llama
  3. HIGH Diversify ownership of 'ml' (currently single-owner) ml

Patterns detected Fragile Velocity

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

Executive summary

Pair Daniel Hiltgen (dhiltgen@github) on 'ml' — bus factor 1 across 25 files

Resilience is **Fragile** (54/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: 7 service(s) rest on a single contributor; 262 file(s) would become orphans if the top contributor leaves; 10 file(s) carry high correction load (≥35% fix/revert); 32 service(s) lack AI-readable operational context.

Top recommended action: Pair Daniel Hiltgen (dhiltgen@github) on 'ml' — bus factor 1 across 25 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
54/100 F
Fragile

Fragile resilience overall (score 54). Weakest dimension: AI operational readiness at 0.

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. 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
8 services rest on a single owner
If that person is unavailable, no one else can confidently change these areas.
Single-engineer dependency
262 files orphan if the top contributor leaves
These files would have no confident owner the day that person walks out.
Knowledge decay
No file has drifted far from its owner
Owners are still close to the code they own.
Review depth
Reviews carry substantive comments
Approvals reflect real scrutiny, not rubber-stamping.
Correction load
Correction load is low across the codebase
A handful of files (10) run a high fix/revert ratio, but repo-wide rework pressure stays low.
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
High Medium Ownership Diversification Single-owner concentration Diversify ownership of 'integration' (currently single-owner)
Service 'integration' has bus factor 1 across 23 files; Daniel Hiltgen (dhiltgen@github) holds 98% 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 23 files — Daniel Hiltgen (dhiltgen@github) holds 98% of effective ownership.
integration bus_factor=1, top_owner_coverage=98%, files=23
High Medium Ownership Diversification Single-owner concentration Diversify ownership of 'llama' (currently single-owner)
Service 'llama' has bus factor 1 across 10 files; Daniel Hiltgen (dhiltgen@github) holds 89% 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 10 files — Daniel Hiltgen (dhiltgen@github) holds 89% of effective ownership.
llama bus_factor=1, top_owner_coverage=89%, files=10
High Medium Ownership Diversification Single-owner concentration Diversify ownership of 'ml' (currently single-owner)
Service 'ml' has bus factor 1 across 25 files; Daniel Hiltgen (dhiltgen@github) holds 83% 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 25 files — Daniel Hiltgen (dhiltgen@github) holds 83% of effective ownership.
ml bus_factor=1, top_owner_coverage=83%, files=25
High Medium Ownership Diversification Single-owner concentration Diversify ownership of 'sample' (currently single-owner)
Service 'sample' has bus factor 1 across 5 files; Jeffrey Morgan (jmorganca@gmail.com) 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 — Jeffrey Morgan (jmorganca@gmail.com) holds 100% of effective ownership.
sample bus_factor=1, top_owner_coverage=100%, files=5
High Medium Ownership Diversification Single-owner concentration Diversify ownership of 'updater' (currently single-owner)
Service 'updater' has bus factor 1 across 7 files; Daniel Hiltgen (dhiltgen@github) holds 87% of effective ownership. Pair them with at least two additional engineers and rotate code reviews for this area over the next 60 days. Start with these 2 files: app/updater/updater_darwin.go, app/updater/updater_windows.go.
▸ Bus factor 1 over 7 files — Daniel Hiltgen (dhiltgen@github) holds 87% of effective ownership.
updater bus_factor=1, top_owner_coverage=87%, files=7, top_files=app/updater/updater_darwin.go+1

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
ml 25 1 critical Daniel Hiltgen (dhiltgen@github) 83%
integration 23 1 critical Daniel Hiltgen (dhiltgen@github) 98%
llama 10 1 critical Daniel Hiltgen (dhiltgen@github) 89%
updater 7 1 critical Daniel Hiltgen (dhiltgen@github) 87%
scripts 5 1 critical Daniel Hiltgen (dhiltgen@github) 92%
sample 5 1 critical Jeffrey Morgan (jmorganca@gmail.com) 100%
llm 4 1 critical Daniel Hiltgen (dhiltgen@github) 88%
kvcache 3 1 critical Jeffrey Morgan (jmorganca@gmail.com) 100%
parser 2 1 critical Patrick Devine (patrick@ollama.com) 83%
discover 2 1 critical Daniel Hiltgen (dhiltgen@github) 100%
tokenizer 2 1 critical Daniel Hiltgen (dhiltgen@github) 100%
wintray 2 1 critical Eva H (hoyyeva@github) 100%
manifest 1 1 critical Daniel Hiltgen (dhiltgen@github) 100%
readline 1 1 critical Daniel Hiltgen (dhiltgen@github) 100%
convert 23 2 high Daniel Hiltgen (dhiltgen@github) 53%
(root) 9 2 high Daniel Hiltgen (dhiltgen@github) 69%
store 5 2 high Parth Sareen (parth.sareen@ollama.com) 51%
fs 3 2 high Bruce MacDonald (brucewmacdonald@gmail.com) 67%
envconfig 3 2 high Daniel Hiltgen (dhiltgen@github) 47%
.github 2 2 high Daniel Hiltgen (dhiltgen@github) 75%
types 2 2 high Patrick Devine (patrick@ollama.com) 50%
internal 2 2 high Jeffrey Morgan (jmorganca@gmail.com) 61%
runner 1 2 high Daniel Hiltgen (dhiltgen@github) 51%
x 225 3 medium Daniel Hiltgen (dhiltgen@github) 63%
model 98 3 medium Jeffrey Morgan (jmorganca@gmail.com) 35%
cmd 84 3 medium Parth Sareen (parth.sareen@ollama.com) 61%
openai 4 3 medium Parth Sareen (parth.sareen@ollama.com) 55%
api 3 3 medium Parth Sareen (parth.sareen@ollama.com) 63%
anthropic 2 3 medium Eva H (hoyyeva@github) 34%
ui 29 4 healthy Matteo Celani (matteocelani@github) 26%
server 48 5 healthy Daniel Hiltgen (dhiltgen@github) 24%
docs 25 5 healthy Parth Sareen (parth.sareen@ollama.com) 29%
middleware 4 5 healthy Parth Sareen (parth.sareen@ollama.com) 26%

Files with single ownership

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

FileOwnerCoverage
app/updater/updater_darwin.go Daniel Hiltgen (dhiltgen@github) 100%
app/updater/updater_windows.go Daniel Hiltgen (dhiltgen@github) 100%
app/ui/app/src/hooks/useFeaturedModels.ts Bruce MacDonald (brucewmacdonald@gmail.com) 100%
app/ui/app/src/hooks/useModels.ts Bruce MacDonald (brucewmacdonald@gmail.com) 100%
app/server/server_unix.go Eva H (hoyyeva@github) 100%
app/server/server_windows.go Eva H (hoyyeva@github) 100%
app/ui/app/src/hooks/useChats.ts Matteo Celani (matteocelani@github) 100%
app/ui/app/src/utils/fileValidation.ts Matteo Celani (matteocelani@github) 100%
app/ui/app/src/components/ChatSidebar.tsx Parth Sareen (parth.sareen@ollama.com) 100%
app/ui/app/src/routes/c.$chatId.tsx Parth Sareen (parth.sareen@ollama.com) 100%
app/ui/app/src/components/Message.tsx Matteo Celani (matteocelani@github) 100%
app/ui/app/src/components/MessageList.tsx Matteo Celani (matteocelani@github) 100%
app/ui/app/src/components/ui/badge.tsx Matteo Celani (matteocelani@github) 100%
app/ui/app/src/components/ui/button.tsx Matteo Celani (matteocelani@github) 100%
app/ui/app/src/components/CopyButton.tsx Parth Sareen (parth.sareen@ollama.com) 100%
app/ui/app/src/utils/clipboard.ts Parth Sareen (parth.sareen@ollama.com) 100%
app/ui/app/src/components/ModelPicker.tsx Bruce MacDonald (brucewmacdonald@gmail.com) 100%
app/cmd/app/app_windows.go Eva H (hoyyeva@github) 100%
app/wintray/tray.go Eva H (hoyyeva@github) 100%
app/wintray/w32api.go Eva H (hoyyeva@github) 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 Daniel Hiltgen (dhiltgen@github) leaves
Files affected
309 / 664
Orphan files
262 (39%)
Avg coverage loss
44%
Most-affected services
  • x 144/225 files, 120 orphan, 63% avg loss
  • model 32/98 files, 27 orphan, 31% avg loss
  • integration 23/23 files, 22 orphan, 98% avg loss
CRITICAL If Parth Sareen (parth.sareen@ollama.com) leaves
Files affected
106 / 664
Orphan files
82 (12%)
Avg coverage loss
13%
Most-affected services
  • cmd 63/84 files, 48 orphan, 61% avg loss
  • server 9/48 files, 8 orphan, 17% avg loss
  • docs 9/25 files, 6 orphan, 29% avg loss
CRITICAL If Jeffrey Morgan (jmorganca@gmail.com) leaves
Files affected
78 / 664
Orphan files
56 (8%)
Avg coverage loss
11%
Most-affected services
  • model 37/98 files, 26 orphan, 35% avg loss
  • convert 13/23 files, 9 orphan, 47% avg loss
  • sample 5/5 files, 5 orphan, 100% 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
app/cmd/app/app.go Eva H (hoyyeva@github) 83 34% medium 43%
app/ui/app/src/components/ui/slider.tsx Jeffrey Morgan (jmorganca@gmail.com) 89 33% medium 42%
app/ui/app/src/components/Settings.tsx Eva H (hoyyeva@github) 72 33% medium 44%
app/ui/app/src/hooks/useModelCapabilities.ts Eva H (hoyyeva@github) 86 33% medium 42%
app/wintray/tray.go Eva H (hoyyeva@github) 86 33% medium 42%
app/wintray/w32api.go Eva H (hoyyeva@github) 86 33% medium 42%
app/cmd/app/app_windows.go Eva H (hoyyeva@github) 83 32% medium 42%
app/ui/app/src/components/ModelPicker.tsx Bruce MacDonald (brucewmacdonald@gmail.com) 54 25% low 40%
app/ui/responses/types.go Bruce MacDonald (brucewmacdonald@gmail.com) 54 25% low 40%
app/ui/app/src/components/CopyButton.tsx Parth Sareen (parth.sareen@ollama.com) 48 23% low 39%
app/ui/app/src/utils/clipboard.ts Parth Sareen (parth.sareen@ollama.com) 48 23% low 39%
app/ui/app/src/components/Message.tsx Matteo Celani (matteocelani@github) 43 21% low 39%
app/ui/app/src/components/MessageList.tsx Matteo Celani (matteocelani@github) 43 21% low 39%
app/ui/app/src/components/ui/badge.tsx Matteo Celani (matteocelani@github) 43 21% low 39%
app/ui/app/src/components/ui/button.tsx Matteo Celani (matteocelani@github) 43 21% low 39%
app/store/store.go Parth Sareen (parth.sareen@ollama.com) 42 21% low 39%
app/ui/app/src/components/ChatSidebar.tsx Parth Sareen (parth.sareen@ollama.com) 42 21% low 39%
app/ui/app/src/hooks/useSettings.ts Parth Sareen (parth.sareen@ollama.com) 42 21% low 39%
app/ui/app/src/routes/c.$chatId.tsx Parth Sareen (parth.sareen@ollama.com) 42 21% low 39%
app/ui/app/src/routes/index.tsx Parth Sareen (parth.sareen@ollama.com) 42 21% low 39%
Review depth — review lineage healthy

Review data fetched from GitHub (50 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

No rubber-stamp patterns detected.

Files with lowest reviewer diversity

No low-diversity files detected.
Correction load — files with a bugfix tail healthy

Share of recent commits to each file that are follow-up fixes or reverts. A high ratio is observable evidence of stability debt — work is shipping but corrections are paying for it. Look at the surface, not the person.

File Total commits Fixes Reverts Correction ratio Risk
internal/modelref/modelref.go 5 0 2 40% high
internal/modelref/modelref_test.go 5 0 2 40% high
server/model_resolver.go 5 0 2 40% high
server/model_resolver_test.go 5 0 2 40% high
server/routes_delete_test.go 5 0 2 40% high
x/cmd/run.go 5 0 2 40% high
x/cmd/run_test.go 5 0 2 40% high
model/parsers/gemma4.go 8 3 0 38% high
model/parsers/gemma4_test.go 8 3 0 38% high
cmd/config/opencode.go 8 1 2 38% high
server/routes_cloud_test.go 9 0 3 33% moderate
cmd/config/claude.go 6 0 2 33% moderate
cmd/config/droid.go 6 0 2 33% moderate
cmd/config/integrations.go 10 1 2 30% moderate
server/cloud_proxy_test.go 7 0 2 29% moderate
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%
.github 0%
anthropic 0%
api 0%
cmd 0%
convert 0%
discover 0%
docs 0%
envconfig 0%
fs 0%
integration 0%