Style DNA Ghostwriter banner
Kaifazad Kaifazad

Style DNA Ghostwriter

AI community

Description

Learn a codebase's unwritten conventions (Python, React, Next.js, TypeScript, Tailwind) and condition AI coding agents (Claude Code, Cursor, Google Antigravity, Windsurf, Copilot, MCP) to ghostwrite code that belongs.

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

Style DNA Ghostwriter

**Learn a codebase's unwritten conventions. Ghostwrite code that belongs.**

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/) [![Tests](https://img.shields.io/badge/tests-passing-brightgreen.svg)](tests/) [![M8ven Score](https://m8ven.ai/badge/mcp/kaifazad-style-dna-ghostwriter-ihehal)](https://m8ven.ai/mcp/kaifazad-style-dna-ghostwriter-ihehal)


The problem

Style guides and linters only enforce rules a team bothered to *write down*. The rest of a codebase's real personality — how errors get handled, how components get structured, whether arrow functions or declarations are preferred, how Tailwind utilities or CSS modules are used, how verbose docstrings actually are — lives nowhere except the code itself. AI-generated code ignores all of that and defaults to generic, textbook style, which is exactly what makes it stand out as not-quite-belonging.

**Style DNA Ghostwriter** fixes this by learning conventions the way a new senior engineer would: by reading the code, not the wiki page nobody updated.

$ style-dna analyze ./my_web_app

Analyzed 42 files from './my_web_app' (0 Python, 42 Web).
Style profile saved to: style_profile.json

## Web Conventions
- Detected frameworks/tools: Next.js, React, Tailwind CSS, TypeScript.

### JavaScript / TypeScript
- Use single quotes for JS/TS strings.
- Omit semicolons at end of statements.
- Prefer arrow functions (`const fn = () => {}`).
- Prefer named exports.
- Use path aliases (`@/...`) for imports instead of deep relative paths.
- Prefer `interface` over `type` for object shapes in TypeScript.

### React / Next.js
- Next.js routing: App Router (`app/`).
- Define React components as arrow functions (`const Button = () => ...`).
- Component file naming: PascalCase.
- ~40% of components use 'use client' directive.
- State management: zustand.