home / skills / lambda-curry / devagent / ai-rules-cli

ai-rules-cli skill

/ai-rules/skills/ai-rules-cli

This skill helps you manage and synchronize AI coding rules across multiple assistants using ai-rules, ensuring a single source of truth.

npx playbooks add skill lambda-curry/devagent --skill ai-rules-cli

Review the files below or copy the command above to add this skill to your agents.

Files (3)
SKILL.md
9.3 KB
---
name: ai-rules-cli
description: >-
  Use ai-rules CLI to manage and synchronize AI coding rules across multiple AI
  assistants (Cursor, Claude Code, GitHub Copilot, Opencode, etc.). Use when:
  (1) Setting up ai-rules in a new project, (2) Updating AI coding guidelines
  and best practices, (3) Generating platform-specific rule files from source,
  (4) Checking if generated files are in sync with source files, (5) Managing
  multi-agent rule consistency, or (6) Adding new rules or modifying existing
  ones. Requires ai-rules CLI installed. The ai-rules/ directory serves as the
  single source of truth for all AI coding guidelines.
---

# AI Rules CLI

Use ai-rules CLI to manage and synchronize AI coding rules across multiple AI assistants, maintaining a single source of truth for coding guidelines that works with Cursor, Claude Code, GitHub Copilot, Opencode, Gemini, and other AI coding agents.

## Prerequisites

- ai-rules CLI installed: `curl -fsSL https://raw.githubusercontent.com/block/ai-rules/main/scripts/install.sh | bash`
- Git repository: ai-rules works best in a git repository context
- Repository root access: Run commands from the repository root where `ai-rules/` directory should exist

## Quick Start

**Check if ai-rules is installed:**
```bash
ai-rules --version
```

**Initialize ai-rules in a project:**
```bash
ai-rules init
```

**Generate platform-specific files:**
```bash
ai-rules generate
```

**Check sync status:**
```bash
ai-rules status
```

## Core Workflow

### 1. Setup (First Time)

**Install ai-rules CLI:**
```bash
curl -fsSL https://raw.githubusercontent.com/block/ai-rules/main/scripts/install.sh | bash
```

**Initialize in project:**
```bash
ai-rules init
```

This creates:
- `ai-rules/` directory
- `ai-rules-config.yaml` configuration file
- Initial example rule file

**Configure agents:**
Edit `ai-rules/ai-rules-config.yaml`:
```yaml
agents: [claude, cursor, copilot, codex, opencode, gemini]
nested_depth: 0
gitignore: false
```

**Generate initial files:**
```bash
ai-rules generate
```

### 2. Updating Rules

**Edit source files** in `ai-rules/` directory:
- Add new rule files: `ai-rules/my-new-rule.md`
- Edit existing rules: `ai-rules/react-router-7.md`
- Update project context: `ai-rules/00-project-context.md`

**Generate platform-specific files:**
```bash
ai-rules generate
```

This automatically creates/updates:
- `CLAUDE.md` - Rules for Claude Code
- `AGENTS.md` - Rules for Opencode and other agents
- `.cursor/rules/*.mdc` - Rules for Cursor
- `.github/copilot-instructions.md` - Symlink for GitHub Copilot
- Other agent-specific files as configured

### 3. Checking Sync Status

**Check all agents:**
```bash
ai-rules status
```

**Check specific agents:**
```bash
ai-rules status --agents claude,cursor
```

**Output interpretation:**
- ✅ `in sync` - Generated files match source files
- ⚠️ `out of sync` - Source files modified, need regeneration

**Use in CI/CD:**
```bash
ai-rules status || exit 1  # Fails if out of sync
```

## Usage Patterns

### Adding a New Rule

1. Create new rule file in `ai-rules/`:
   ```bash
   touch ai-rules/my-new-rule.md
   ```

2. Add rule content with optional frontmatter:
   ```markdown
   ---
   description: Context description for when to apply this rule
   alwaysApply: true
   fileMatching: "**/*.ts"
   ---
   
   # My New Rule
   
   Rule content here...
   ```

3. Generate platform files:
   ```bash
   ai-rules generate
   ```

4. Verify sync:
   ```bash
   ai-rules status
   ```

### Updating Existing Rules

1. Edit source file in `ai-rules/`:
   ```bash
   # Edit ai-rules/react-router-7.md
   ```

2. Regenerate platform files:
   ```bash
   ai-rules generate
   ```

3. Commit both source and generated files:
   ```bash
   git add ai-rules/ CLAUDE.md AGENTS.md .cursor/rules/
   git commit -m "docs: update React Router v7 rules"
   ```

### Initializing in New Project

1. Install CLI (if not already installed)
2. Run `ai-rules init` in repository root
3. Configure `ai-rules-config.yaml` for desired agents
4. Create initial project context rule
5. Run `ai-rules generate` to create platform files
6. Commit both source and generated files

### Maintaining Rule Consistency

**Regular workflow:**
1. Edit source files in `ai-rules/`
2. Run `ai-rules generate` to sync
3. Run `ai-rules status` to verify
4. Commit changes

**Before major changes:**
1. Check current status: `ai-rules status`
2. Make changes to source files
3. Generate: `ai-rules generate`
4. Verify: `ai-rules status`
5. Test that rules work in target agents
6. Commit

## Command Reference

### Initialization

```bash
# Initialize ai-rules in current directory
ai-rules init

# Initialize with custom parameters (for custom recipes)
ai-rules init --params service=payments --params owner=checkout

# Force initialization without prompts
ai-rules init --force
```

### Generation

```bash
# Generate rules for all configured agents
ai-rules generate

# Generate for specific agents only
ai-rules generate --agents claude,cursor

# Generate with nested directory scanning
ai-rules generate --nested-depth 2

# Add generated files to .gitignore
ai-rules generate --gitignore
```

### Status Checking

```bash
# Check sync status for all agents
ai-rules status

# Check specific agents
ai-rules status --agents claude,cursor

# Check with nested scanning
ai-rules status --nested-depth 1
```

### Cleanup

```bash
# Remove all generated files (keeps source files)
ai-rules clean

# Clean with nested scanning
ai-rules clean --nested-depth 2
```

### Utilities

```bash
# List all supported agents
ai-rules list-agents
```

## Configuration

### Configuration File: `ai-rules/ai-rules-config.yaml`

```yaml
# List of agents to generate rules for
agents: [claude, cursor, copilot, codex, opencode, gemini]

# Agents to generate commands for (defaults to agents list)
command_agents: [claude, cursor]

# Maximum nested directory depth to scan for ai-rules/ folders
nested_depth: 0

# Whether to add generated files to .gitignore
gitignore: false
```

### Configuration Precedence

1. CLI options (highest priority)
2. Config file (`ai-rules-config.yaml`)
3. Default values (lowest priority)

### Experimental Options

**Claude Code Skills Mode:**
```yaml
use_claude_skills: true  # Default: false
```

When enabled, rules with `alwaysApply: false` are generated as separate skills in `.claude/skills/` instead of being included in `CLAUDE.md`.

## Rule File Format

### Standard Mode (with frontmatter)

```markdown
---
description: Context description for when to apply this rule
alwaysApply: true
fileMatching: "**/*.ts"
---

# Rule Title

Rule content here...
```

**Frontmatter fields:**
- `description` - Context description (optional)
- `alwaysApply` - `true` (always included) or `false` (optional/contextual) (default: `true`)
- `fileMatching` - Glob patterns for file matching (Cursor-specific)

### Symlink Mode (simple markdown)

For simple setups, use a single `AGENTS.md` file without frontmatter:
- Must be named `AGENTS.md`
- Must be the only file in `ai-rules/`
- No YAML frontmatter
- Content used directly by all agents via symlinks

## Best Practices

### Source of Truth

- **Always edit source files** in `ai-rules/` directory
- **Never edit generated files** directly (they're overwritten on generation)
- **Commit both** source and generated files for team consistency

### Workflow

1. Edit source files in `ai-rules/`
2. Run `ai-rules generate` to sync
3. Verify with `ai-rules status`
4. Test rules in target agents
5. Commit both source and generated files

### Organization

- Use descriptive filenames: `react-router-7.md`, `testing-best-practices.md`
- Prefix foundational rules: `00-project-context.md`
- Group related rules logically
- Keep rules focused and modular

### Maintenance

- Run `ai-rules status` regularly to catch sync issues
- Use `ai-rules generate` after any source file changes
- Include `ai-rules status` in CI/CD to ensure sync
- Document rule changes in commit messages

## Integration with Development Workflow

### Pre-Commit Hook

Add to `.git/hooks/pre-commit`:
```bash
#!/bin/bash
ai-rules status || (echo "AI rules out of sync. Run 'ai-rules generate'" && exit 1)
```

### CI/CD Pipeline

```yaml
# .github/workflows/ai-rules.yml
- name: Check AI Rules Sync
  run: ai-rules status || exit 1

- name: Generate AI Rules
  run: ai-rules generate
```

### Team Collaboration

1. Team members edit source files in `ai-rules/`
2. Run `ai-rules generate` locally
3. Commit both source and generated files
4. CI/CD verifies sync status
5. All team members have consistent rules across agents

## Common Issues

### Generated Files Out of Sync

**Symptom:** `ai-rules status` shows "out of sync"

**Solution:**
```bash
ai-rules generate
```

### Missing CLI

**Symptom:** `command not found: ai-rules`

**Solution:**
```bash
curl -fsSL https://raw.githubusercontent.com/block/ai-rules/main/scripts/install.sh | bash
```

### Configuration Not Applied

**Symptom:** Changes in `ai-rules-config.yaml` not taking effect

**Solution:**
- Check file location (must be in `ai-rules/` directory)
- Verify YAML syntax
- CLI options override config file

## Reference Documentation

- **AI Rules CLI Docs**: [github.com/block/ai-rules](https://github.com/block/ai-rules)
- **Command Reference**: See [references/cli-commands.md](references/cli-commands.md) for complete command reference
- **Rule Format**: See [references/rule-format.md](references/rule-format.md) for detailed rule file format

Overview

This skill uses the ai-rules CLI to manage and synchronize AI coding rules across multiple AI assistants from a single source of truth. It helps generate platform-specific rule files, verify sync status, and keep multi-agent guidelines consistent. The workflow centers on an ai-rules/ directory and a small config file to control generation and targets.

How this skill works

You maintain canonical rule files in the ai-rules/ directory and run ai-rules commands to produce agent-specific outputs (CLAUDE.md, .cursor rules, copilot instructions, etc.). The CLI inspects source markdown and frontmatter, applies configured agents and options, writes generated artifacts, and reports sync status. Use status checks in CI or pre-commit hooks to ensure generated files match source.

When to use it

  • Initializing ai-rules in a new repository to create baseline agent files
  • Updating or adding coding guidelines and producing platform-specific outputs
  • Verifying generated files are in sync with source before merging or CI
  • Maintaining consistent rules across multiple AI assistants (Cursor, Claude, Copilot, Opencode, Gemini)
  • Automating generation and checks in pre-commit hooks or CI pipelines

Best practices

  • Always edit source files inside ai-rules/ and avoid editing generated files directly
  • Commit both source and generated files so teammates get consistent artifacts
  • Run ai-rules generate after any change, then verify with ai-rules status
  • Include ai-rules status in CI to fail builds when generated files are out of sync
  • Use descriptive filenames and a 00-project-context.md for project-wide context

Example use cases

  • Create ai-rules/00-project-context.md and generate CLAUDE.md and .cursor rules for a new project
  • Add ai-rules/my-new-rule.md with frontmatter to target TypeScript files, then run ai-rules generate
  • Run ai-rules status in CI to block merges when generated files diverge from source
  • Switch on Claude skills mode in config to emit separate .claude/skills for contextual rules
  • Clean up generated artifacts with ai-rules clean before large restructuring

FAQ

What happens if ai-rules status reports out of sync?

Run ai-rules generate to regenerate platform files from the ai-rules/ source, then re-run ai-rules status to confirm sync.

Where should I edit rules and configuration?

Edit markdown rule files inside the ai-rules/ directory and the ai-rules-config.yaml there; generated files are overwritten on generate.