AgentSkillsCN

writing-rules

为.claude/rules/编写Claude Code规则文件,制定并自动注入上下文的通用约定与共享指南。当您需要为特定路径制定编码规范,或为项目制定共享准则时,可使用此技能。但请勿用于制定宪法或法律——此类内容应改用CLAUDE.md中的<law>区块。

SKILL.md
--- frontmatter
name: writing-rules
description: Creates Claude Code rule files for .claude/rules/. Writes conventions and shared guidelines that auto-inject into context. Use for path-specific coding conventions or shared project guidelines. NOT for constitution/laws (use <law> in CLAUDE.md instead).

Rule Creator

Create modular rule files for conventions and shared guidelines.

Core Principles

  1. Rules = Conventions - Shared guidelines, lower priority than <law>
  2. < 50 lines - Auto-injected = token expensive
  3. Use paths: - Scope rules to relevant files only
  4. No procedures - How-to belongs in skills
  5. NOT for laws - Constitution uses <law> in CLAUDE.md

Rule Structure

code
.claude/rules/
├── code-style.md         # Style conventions (global)
├── api/
│   └── conventions.md    # paths: src/api/**
└── testing/
    └── guidelines.md     # paths: **/*.test.ts

File Format

Global Rule (no paths:)

yaml
---
# No paths field = applies to ALL contexts
---

# Rule Title

- Constraint 1
- Constraint 2

Path-Scoped Rule

yaml
---
paths: src/api/**/*.ts
---

# API Rules

- All endpoints MUST validate input
- MUST use standard error format

Glob Patterns

PatternMatches
**/*.tsAll TypeScript files
src/api/**All under src/api/
*.mdMarkdown in root only
{src,lib}/**/*.tsMultiple directories
**/*.{ts,tsx}Multiple extensions

Example: Code Style Convention

markdown
# .claude/rules/code-style.md
---
# Global - no paths
---

# Code Style

- Prefer const over let
- Use descriptive variable names
- Keep functions under 50 lines

Example: Path-Scoped Convention

markdown
# .claude/rules/api/conventions.md
---
paths: src/api/**/*.ts
---

# API Conventions

- Use async/await, not callbacks
- Return consistent response shapes
- Log errors with context

Validation Checklist

Before creating a rule:

  • Is this a convention/guideline, NOT a law? (laws use <law> in CLAUDE.md)
  • < 50 lines?
  • Does it need paths: scoping?
  • Not duplicating existing rules?
  • Written in imperative form?

References