Duplication
The same logic living in two places. Or three.
checkout/helpers.ts ↔ billing/helpers.tsRepeated logicDuplication, dead docs, drifted dependencies. McGravity reads the repo, does the cleanup you never schedule, and opens a PR. Nothing new gets built. The code just gets healthier.
McGravity proposes a maintenance change
One shared helper. Same behavior.
Consolidates identical reference cleanup. Existing call sites keep the same result.
services/checkout/payment.ts+1−3−const cleanReference = (ref: string) => {−return ref.trim();−};+import { cleanReference } from "@shared/payment";
services/billing/payment.ts+1−3−const cleanReference = (ref: string) => {−return ref.trim();−};+import { cleanReference } from "@shared/payment";
packages/shared/payment.ts+3+export const cleanReference = (ref: string) => {+return ref.trim();+};
An example of the work. Not a live run or customer result.
Behavior stays.
Every change is a pull request.
You own the merge.
You already know the shape of it. The helper copied into the third service. The README for an endpoint you deleted. The package you were going to bump after the launch. The junior (or the model) who cloned the wrong one again.
None of that is a roadmap item. So it sits. Until onboarding is tribal knowledge, a CVE lands on a Friday, or two repos disagree about the API you swore was stable.
McGravity is the owner for that layer.
A cleanup ticket. A Friday hero. Dependabot noise. Or nothing.
Give the maintenance layer an owner.
The same logic living in two places. Or three.
checkout/helpers.ts ↔ billing/helpers.tsRepeated logicUnused exports. Dead files. Code nobody calls.
legacy-client.tsNo referencesThe README for an API that no longer exists.
README.md → current /v2 APIOut of dateThe package you meant to bump. And the call sites that break when you do.
package.json + affected call sitesDrift detectedThe client, the API, and the architecture that stopped agreeing.
client/ ↔ api/Contract mismatchNot a copilot. Not a feature factory.
A maintenance run against the repos you connect: find the rot, fix what is safe, prove it with your tests, send you a pull request.
Book a demoConnect McGravity to your GitHub organization.
You choose which codebases get a maintenance run.
The cleanup gets its own space. Your engineers keep shipping features.
McGravity detects issues, repairs what is safe, verifies with your repo’s own tests, and opens a GitHub PR.
You review anything that needs judgment. Merge is yours.
It won’t write your product. It won’t silently rewrite main.
Maintenance has a boundary.
If the fix needs any of that, it stops and says why.
Background maintenance for your codebase.
It finds the rot and fixes it.