English | 中文
Coding standards template library for AI coding assistants. Combine base + language + framework layers to generate a project-specific rules file that keeps AI-generated code clean and consistent.
AI coding assistants tend to mimic existing code style in legacy projects — including bad habits. The core principle of this library:
Don't imitate legacy code. Refactor according to the standards.
Every rule is a concrete, actionable directive (not vague "use proper XX"), with "Bad / Good" code comparison examples.
claude-rules/
├── base/ # Universal (required)
│ ├── core.md # Core principles: legacy code attitude, quality metrics, naming, architecture
│ └── git.md # Git commit message conventions
│
├── languages/ # Pick by language
│ ├── typescript.md # No any/enum/barrel exports, as const, import type
│ ├── javascript.md # ES2022+, JSDoc type annotations, ESM only
│ ├── java.md # Java 17+ record/sealed/pattern matching, Optional
│ ├── kotlin.md # Null safety, structured concurrency, sealed class
│ ├── swift.md # guard let, async/await, actor, Protocol
│ ├── python.md # ruff, type annotations, Protocol, uv/poetry
│ ├── html.md # Semantic tags, accessibility, no div soup
│ ├── css.md # Custom properties, Flexbox/Grid, BEM, modern features
│ ├── go.md # Error wrapping, small interfaces, structured concurrency
│ └── rust.md # Ownership/borrowing, thiserror/anyhow, iterators, Clippy
│
└── frameworks/ # Pick by framework
├── vue.md # script setup, ref vs reactive, composable patterns
├── react.md # Hooks rules, correct useEffect, state layering
├── swiftui.md # @Observable (not legacy ObservableObject), SwiftData
├── springboot.md # Layered architecture, DTO, global exception handling
└── tauri.md # Command design, service encapsulation, security config
┌─────────────────────────────────────────────┐
│ base (required) │ core.md + git.md
│ Legacy code attitude / Quality metrics / │ Applies to all projects
│ Naming / Architecture │
├─────────────────────────────────────────────┤
│ language (pick) │ typescript.md / java.md / ...
│ Type system / Naming conventions / │ Based on project language
│ Language-specific features │
├─────────────────────────────────────────────┤
│ framework (pick) │ vue.md / react.md / ...
│ Component standards / State management / │ Based on project framework
│ Architecture patterns │
└─────────────────────────────────────────────┘
Rule priority: framework > language > base (specific rules override general rules)
# Step 1: Add the marketplace
claude plugin marketplace add lifedever/claude-rules
# Step 2: Install the plugin
claude plugin install init-claude-rules@claude-rules
# Step 3: Restart Claude CodeOpen any project in Claude Code and run:
/init-rules
The plugin will:
- Auto-detect your project's tech stack (TypeScript, Vue, React, etc.)
- Ask you to confirm the detected stack
- Read the matching rule files from the plugin
- Generate
CLAUDE.mdin your project root
When new rules are added upstream, update the local cache:
claude plugin marketplace update claude-rulesThen restart Claude Code. To apply updated rules to a project that already has CLAUDE.md, run /init-rules again — the plugin will ask before overwriting.
claude plugin uninstall init-claude-rules@claude-rules
claude plugin marketplace remove claude-rulesClone this repo and concatenate the rule files you need:
git clone https://github.com/lifedever/claude-rules.git
cd claude-rules
# Example: Vue 3 + TypeScript project
cat base/core.md base/git.md languages/typescript.md frameworks/vue.md > /path/to/project/CLAUDE.mdThe rules are plain Markdown and work with any AI coding tool. Just place the output where your tool expects:
| Tool | Target File |
|---|---|
| Claude Code | CLAUDE.md |
| Cursor | .cursorrules or .cursor/rules/*.mdc |
| Antigravity | .antigravity/rules.md |
| GitHub Copilot | .github/copilot-instructions.md |
- Actionable — Every rule is directly executable by AI, no vague wording
- Exemplified — Key rules include "Bad" and "Good" code comparisons
- Quantified — Functions ≤30 lines, files ≤300 lines, nesting ≤3 levels, parameters ≤4
- Up-to-date — Uses modern APIs for each language/framework (@Observable, record, as const, etc.)
- Not hollow — Instead of "handle errors properly", specifies exactly how to handle them
PRs for new languages or frameworks are welcome. Please follow these guidelines:
- Rules must be concrete and actionable — no "use appropriate/proper" phrasing
- Key rules should include code examples (bad practice + good practice)
- Recommend modern idioms — don't document outdated APIs
- Write in English
- flyeric0212/cursor-rules — Cursor IDE rules template library