A Claude Code plugin

Your repos get fixed overnight.

NightForge is a set of Claude Code skills that sweep your projects while you're away. They pick up production errors, docs that no longer match the code, wasted CI minutes and starved code reviews. Every fix lands as a small pull request you review in the morning.

Install in two commands

1. Add the marketplace

claude plugin marketplace add jfreal/nightforge

2. Install the plugin

claude plugin install nightforge@nightforge --scope user

3. Run a skill in Claude Code

/nightforge:codebase-cleanup

Team repo and web setup ↓

One night with NightForge

Each sweep runs as a scheduled task with its own small config card. When there's nothing new, the report is one line.

Retry starved reviews

coderabbit-sweep finds PRs that hit CodeRabbit's rate limit and spends the next free review on the one that has waited longest.

Sweep production errors

error-sweep collects errors, dedupes them against the issue tracker, files an issue and opens a fix PR.

Catch docs drift

docs-sweep audits every repo that opts in and opens a draft PR wherever a page no longer matches its code.

You review

Small PRs, each with evidence and test output. Nothing gets merged until you merge it.

What's in the box

Nine skills in one plugin. Once it's installed they're namespaced, so error-sweep runs as /nightforge:error-sweep.

Scheduled sweeps

error-sweep

Overnight

Collects production errors, normalizes them to stable signatures, triages each against the real source, files an issue and opens a fix PR from an isolated worktree. Adapters for Netlify, Supabase, Azure Application Insights and GitHub.

docs-sweep

Weekly

Runs sync-docs across every local repo that carries its config. Where the docs drifted, it opens a draft PR. Clean repos get one line.

coderabbit-sweep

Hourly

CodeRabbit's review allowance is shared across all your repos, and PRs that miss it are never retried. This is the retry. Label a PR to put it first in line.

onboarding-sweep

Hourly

A bot signs up as a new user and logs what it hit to a Notion board. This sweep turns each finding into a fix PR and tracks it through merge and deploy.

On demand

codebase-cleanup

/codebase-cleanup

Reads the whole repo, logs every finding with path:line evidence and a size, then ships one branch and one PR per small fix. Bigger findings become issues.

ci-cost-sweep

/ci-cost-sweep

Measures where your CI minutes actually go, down to each cache, then cuts them without cutting coverage. Run it with fix to get a PR.

sync-docs

/sync-docs

Links source files to the doc pages that describe them, and flags pages whose sources changed, orphaned pages and lists that no longer match disk.

Writing

unslop

Any prose

Strips the tells of AI-written prose and puts a voice back in.

simple-issue-description

/simple-issue-description

Turns a rough bug report, request or PR into a short issue about the problem and the behavior you want.

Built for unattended work

Every sweep follows the same rules.

It never merges

Sweeps open PRs, issues and drafts. Merging, deploying and touching production stay with you.

One finding, one PR

Small, separate PRs that are quick to review and easy to revert. Each carries its evidence and test output.

It checks before it fixes

Each finding is re-checked against the current code. A finding that turns out wrong is recorded as rejected, not shipped.

Quiet when it's clean

When nothing new turned up, the report is a single line.

+71s

A dependency cache that "obviously" saved time made every CI run 71 seconds slower.

ci-cost-sweep came out of that measurement. Its one rule: measure, never assume.

Install

The GitHub repo is its own plugin marketplace. Add it once, then install the plugin.

On your machine

Installs for every repo you open in Claude Code.

claude plugin marketplace add jfreal/nightforge
claude plugin install nightforge@nightforge --scope user

For a team repo

Commit this to the repo's .claude/settings.json. Then each teammate installs once with --scope project.

{
  "extraKnownMarketplaces": {
    "nightforge": {
      "source": { "source": "github", "repo": "jfreal/nightforge" }
    }
  },
  "enabledPlugins": { "nightforge@nightforge": true }
}
Using Claude Code on the web? Cloud sessions don't load plugins. Commit the skill folders you want under the repo's .claude/skills/ instead. The README has the details.

No server. No telemetry.

NightForge is plain Markdown skills plus a few dependency-free Python scripts. Nothing contacts an outside service when it's installed. A skill reaches out only when you run it, through CLIs you've already signed in to.