πŸ‘€ Delivery Metrics & Key-Person Risk

πŸ“‹ Summary

The repository cannot support a credible contributor or delivery-speed analysis: its entire history has been squashed into one commit made on 6 October 2026 under a single name. Every line of code is therefore attributed to one person, which is an artefact of the squash, not a measurement. What the repository's own documents do show is that the product has one owner who directs the work and reviews it visually, and that the code is written largely by AI coding sessions following very detailed written conventions. This is a concentrated key-person risk: the product knowledge, the decisions behind it, the operating access to each client deployment and the legal ownership of the code all appear to sit with one individual. None of the four standard delivery-performance (DORA) metrics can be measured from what was supplied; this report says exactly what access would allow them to be.

🎯 Rating

πŸ”΄ ●○○○○ 1 / 5 β€” Red. Bus factor is evidenced as one, and no delivery metric is measurable from the material provided.

πŸ” Findings

Part A β€” Contributor analysis

MeasureResultTag
Unique contributors, all time1 identity in git (Matthew Prins <…+FS002-dev@users.noreply.github.com>)[Observed] β€” but meaningless after a squash
Unique contributors, last 12 monthsSame single identity[Observed] / meaningless
Share of current code by contributor (git blame)100% to one commit / one author[Observed] β€” artefact of the squash
Commit frequency per contributor over timeNot measurable[Unavailable β€” requires unsquashed history]
True authorshipOwner-directed; code produced by AI coding sessions committing under "the repository's own committer identity"[Observed] docs/HANDOVER.md "How a change lands"; [Inferred] from CLAUDE.md's repeated references to "a session" and "two sessions each pushed over a red"

Method: git log --all, git shortlog -sne (one line), git blame is uniform by construction. git-fame was not run because it would only restate the squash.

Bus factor

Evidenced bus factor: 1. [Inferred, high confidence] The signals:

  • A single copyright holder: "Matthew Prins, trading as Midshift" (LICENSE). [Observed]
  • All decisions are recorded as "owner call", "the owner's" open decisions, and the owner reviews work on a "build board" and "comment ledger" (docs/HANDOVER.md, CLAUDE.md). [Observed]
  • The build process is written for AI sessions (worktrees, ports, "the session reminder") rather than for a team. [Observed]
  • Production database migrations are applied by hand, and CLAUDE.md is the register of which migration has run in which deployment ("applied in production on 2026-09-14…"). Operational state lives in prose maintained by the owner. [Observed]

What walks out of the door if the owner leaves: the rationale for hundreds of product decisions (partially mitigated β€” they are unusually well written down in CLAUDE.md, ARCHITECTURE.md and code comments); access to and knowledge of every client's Vercel and Supabase projects, environment variables, cron secrets and migration state; the relationships with client teams; the related campaign-studio repository; and the ability to continue the AI-assisted workflow, which depends on the conventions and judgement of the person directing it. The written record is a genuine mitigating asset β€” far better than typical for a single-founder product β€” but it is not a substitute for a second person who has operated the system.

Part B β€” Delivery metrics (DORA)

MetricDefinitionMeasurable here?ProxyWhat is needed
Deployment frequencyHow often code reaches production❌ NoMerges to main or release tags would be a proxy β€” there are none (one commit, no tags; SECURITY.md: "no release branches or tags")Vercel deployment history per client project, or the unsquashed main history
Lead time for changesCommit to running in production❌ NoCommit-to-tag time β€” no tagsUnsquashed history + Vercel deployment timestamps
Change failure rateShare of deployments causing a failure needing remediation❌ Noβ€”Vercel deployment/rollback history, incident or hotfix log, GitHub Actions run history
Time to restore (MTTR)Time from failure to recovery❌ Noβ€”Incident log, monitoring/alerting history, Supabase/Vercel status records

All four: [Unavailable]. No scorecard is offered; any figure would be fabricated.

Qualitative signals only (not metrics): CLAUDE.md contains dated entries clustered between August and late September 2026 (e.g. migrations applied 2026-08-21, 2026-09-03, 2026-09-06 … 2026-09-28), suggesting a high pace of change in that window. [Inferred] It also records specific failures β€” a missing migration found in production (035, 2026-08-19), a migration the app depended on before it ran (063), three red pushes to main (2026-09-06) β€” which show problems were noticed and fixed, but give no rate. [Observed]

🧾 Evidence

  • git log --all --format='%h %an <%ae> %ad %s' β†’ one line.
  • git rev-parse --is-shallow-repository β†’ false.
  • LICENSE line 1; docs/HANDOVER.md lines 1–62; CLAUDE.md sections "Migrations", "Verification", "Parked decisions"; SECURITY.md "Supported version".

⚠️ Risks

RiskSeverityEffort
Bus factor of one across code, decisions, operations and IP ownershipπŸ”΄ CriticalL (hire/transfer)
Operational knowledge of each client deployment (env vars, secrets, migration state) held by one person and in prose🟠 HighM
No delivery-performance data β€” buyer cannot verify velocity or stability claims🟠 High (diligence)β€”
Heavy dependence on an AI-assisted workflow whose effectiveness is tied to the current operator🟑 MediumM

βœ… Recommendations

RecommendationPriorityEffort
Make transaction conditional on: unsquashed history, GitHub org access, Vercel and Supabase project access for every client deployment, and an inventory of credentialsP0S
Negotiate a paid transition/retention period with the owner, including shadowed operation of a release and a migrationP0M
Put a second engineer through a full deploy + migration + incident drill within 30 daysP1M
Move per-deployment state (which migrations ran, env vars set) out of prose into a machine-readable register checked by a scriptP1M
Once access is granted, compute DORA from Vercel deployments and GitHub Actions historyP1S