Ghostwriter banner
cd-ndk cd-ndk

Ghostwriter

AI community

Description

Your AI does the work. Your name signs it. A Claude Code skill (+ portable rules for other AI agents) that keeps AI out of git/GitHub authorship — no co-author trailers, no generated-with footers, no AI in your contributor list.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

👻 Ghostwriter

**Your AI does the work. Your name signs it.**

A skill for Claude Code — plus a portable rule block for every other AI coding agent — that stops the AI from crediting itself in your git history: no `Co-Authored-By` trailers, no "🤖 Generated with…" footers, no AI showing up in your repo's contributor list.

The problem

Most AI coding tools quietly append attribution to the commits they help with:

Co-Authored-By: Claude 

One trailer is all it takes. GitHub parses it and lists the AI as a **contributor** on your repository, and it stays there unless you rewrite history and force-push. Ghostwriter makes sure that never happens in the first place.

What's in this repo

File What it is
`SKILL.md` The skill itself (Agent Skills format) — rules, the reasoning behind them, and a self-check the AI runs before finishing any commit or PR
`assets/portable-rules.md` A paste-anywhere rule block for other tools, with a table of where it goes for Cursor, Codex, Copilot, Gemini, and Windsurf

Install (Claude Code)

git clone https://github.com/cd-ndk/ghostwriter.git ~/.claude/skills/ghostwriter

That's it. The skill triggers automatically on any git or GitHub write operation — committing, amending, rebasing, opening PRs, tagging, releasing. You can also invoke it explicitly with `/ghostwriter`.

For a single project instead of globally, clone it into the repo's `.claude/skills/ghostwriter` directory.

Kill it at the source (recommended)

In Claude Code, the default `Co-Authored-By` trailer is injected by a setting — turn it off in `~/.claude/settings.json` so the skill never has to fight the default:

{
  "attribution": {
    "commit": "",
    "pr": ""
  },
  "includeCoAuthoredBy": false
}

`attribution` is the current setting (v2.0.62+); `includeCoAuthoredBy` covers older versions. The skill then handles everything the sett