返回 Skill 列表
extension
分类: 开发与工程无需 API Key

ruler-rules-init

使用英文优先的模板、基于预设的项目检测和安全的、幂等的设置,跨仓库迁移和引导基于Ruler的AI规则。在创建或标准化`.ruler/*`文件、生成`AGENTS.md`/`CLAUDE.md`、将`ruler:apply`连接到`package.json`、在`.gitignore`中添加生成文件忽略项以及设计如`**`和`web/**`这样的`applyTo`范围模式时使用。

person作者: jakexiaohubgithub

Ruler Rules Migration

Overview

Migrate a repository to a reusable Ruler rules structure with a safe audit/apply workflow. Keep default templates in English and avoid overwriting existing repository-specific content unless explicitly forced. Support different project types through preset-based template selection.

Inputs

Collect these inputs before applying changes:

  • Target repository root path.
  • Whether to run in audit or apply mode.
  • Template preset: auto, base, nextjs, monorepo, or node-lib (default: auto).
  • Whether to include optional skills:sync:claude integration.
  • Whether overwrite is allowed for differing files (--force).

Presets

Presets control the content of project-specific template files (10-project-context.md, 20-dev-commands.md, 30-coding-conventions.md). Universal files (ruler.toml, AGENTS.md, 00-core-principles.md) are always sourced from the base directory.

| Preset | Auto-detect Signal | Use Case | |--------|-------------------|----------| | base | Fallback | Any project, minimal with placeholders | | nextjs | next.config.* exists | Next.js App Router projects | | monorepo | turbo.json or pnpm-workspace.yaml exists | Turborepo / pnpm workspace | | node-lib | package.json has main or exports, no next.config.* | Node.js libraries |

Preset Selection Priority

  1. Explicit --preset <name> flag (highest priority).
  2. Auto-detection from target repo files (when --preset auto or omitted).
  3. Falls back to base if no signals match.

Workflow

  1. Run the bootstrap script in audit mode.
  2. Review missing files, differences, and manual actions.
  3. Run in apply mode to create missing files and safe defaults.
  4. Re-run apply to confirm idempotency.
  5. Run ruler:apply in the target repo to generate root rule outputs.

Decision Tree

  1. Need only Ruler integration: Use default behavior (do not pass --with-optional-sync).

  2. Need optional Claude skills sync as well: Pass --with-optional-sync to include skills:sync:claude suggestions.

  3. Targeting a specific project type: Pass --preset nextjs, --preset monorepo, or --preset node-lib. Or let auto-detection choose the right preset.

  4. Existing files differ from templates:

  • Keep defaults safe: do not override without --force.
  • Use --force only when intentional template replacement is required.

Commands

Use these commands from this skill directory:

# Audit (default preset auto-detection)
node ./scripts/bootstrap-ruler.mjs --target /path/to/repo --mode audit

# Apply with auto-detected preset
node ./scripts/bootstrap-ruler.mjs --target /path/to/repo --mode apply

# Apply with explicit preset
node ./scripts/bootstrap-ruler.mjs --target /path/to/repo --mode apply --preset nextjs
node ./scripts/bootstrap-ruler.mjs --target /path/to/repo --mode apply --preset monorepo
node ./scripts/bootstrap-ruler.mjs --target /path/to/repo --mode apply --preset node-lib
node ./scripts/bootstrap-ruler.mjs --target /path/to/repo --mode apply --preset base

# With optional sync and force
node ./scripts/bootstrap-ruler.mjs --target /path/to/repo --mode apply --preset nextjs --with-optional-sync
node ./scripts/bootstrap-ruler.mjs --target /path/to/repo --mode apply --force

Validation Checklist

After applying, verify:

  1. .ruler/ruler.toml exists and defines codex + claude outputs.
  2. Required .ruler/*.md templates exist.
  3. .gitignore contains the Ruler generated-files block.
  4. package.json contains ruler:apply.
  5. If is-ci style guard is used, is-ci is installed (pnpm add -D is-ci).
  6. postinstall follows the CI-skip recommendation or an explicit local alternative (preserve existing setup commands by chaining with && (...)).
  7. Running ruler:apply succeeds in the target repository.

Resources

  • Script: scripts/bootstrap-ruler.mjs

  • References: references/migration-playbook.md references/applyto-patterns.md

  • Templates: assets/templates/base/.ruler/ (universal + fallback) assets/templates/presets/nextjs/.ruler/ (Next.js overlay) assets/templates/presets/monorepo/.ruler/ (monorepo overlay) assets/templates/presets/node-lib/.ruler/ (Node.js library overlay)