Rule Toolkit
/install rule-toolkit
Rule Toolkit
Convert hand-written constraint files into automated tooling. Rules in prompt files are forgotten when context grows long. Rules compiled into linters, hooks, and validators are enforced 100% of the time, at zero token cost.
Platform Detection
Detect which platform(s) are present, then scan the corresponding constraint files.
test -f CLAUDE.md && echo "CLAUDE_CODE"
test -f openclaw.json && echo "OPENCLAW"
test -f .cursorrules && echo "CURSOR"
test -f .github/copilot-instructions.md && echo "COPILOT"
Claude Code: CLAUDE.md (monolithic), .claude/commands/*.md
OpenClaw: agents.md (priority 10), soul.md (20), identity.md (30), user.md (40), tools.md (50), bootstrap.md (60), memory.md (70). Skip SAFETY.md (hardcoded, read-only).
Cursor: .cursorrules
Copilot: .github/copilot-instructions.md
Generic: AGENT.md, SOUL.md, README.md conventions sections
Read ALL found files. Extract every rule, convention, and constraint.
Rule Classification
Classify each extracted rule into one of two buckets.
Auto-Toolable
| Category | Example Rule | Target Tool |
|---|---|---|
| code-style | "2 spaces, no semicolons, single quotes" | .prettierrc |
| naming | "Files kebab-case, components PascalCase" | ESLint custom rule |
| import | "No default exports" / "Use @/ alias" | ESLint no-restricted-paths |
| api-format | "Responses use { code, data, msg }" | Wrapper function + lint |
| type-safety | "No any, no as" | tsconfig strict |
| security | "No innerHTML" / "Validate user input" | ESLint + zod |
| testing | "Every module needs a test file" | Test existence checker |
| git | "Conventional commits" / "Lint before commit" | commitlint + husky |
| dependency | "No new deps without approval" | dependency-check script |
| performance | "No lodash, use lodash-es" | ESLint no-restricted-imports |
Prompt-Only (cannot automate)
| Category | Example Rule | Why |
|---|---|---|
| architecture | "Use repository pattern" | Semantic understanding needed |
| business-logic | "Prices in cents, not dollars" | Domain-specific |
| design | "Composition over inheritance" | Judgment call |
| communication | "Explain in Chinese" | Behavioral |
| workflow | "Ask before deleting" | Human-in-the-loop |
Tech Stack Detection
Before generating tools, detect the project stack:
package.json → Node.js | tsconfig.json → TypeScript
.eslintrc* → ESLint exists | .prettierrc* → Prettier exists
.husky/ → Husky exists | pyproject.toml → Python
Cargo.toml → Rust | go.mod → Go
Code Generation
For each auto-toolable rule, generate the appropriate tool. See references/tool-patterns.md for detailed generation patterns covering:
- ESLint rules (no-restricted-syntax, custom naming rules, import restrictions)
- Prettier config (.prettierrc)
- TypeScript strict config (tsconfig.json)
- Git hooks (husky + lint-staged + commitlint)
- Wrapper functions (API response format)
- Validation scripts (custom checkers)
- Python tooling (ruff, mypy)
- Rust tooling (clippy)
For OpenClaw-specific hooks, see references/openclaw-hooks.md.
Reporting
After generation, produce a report:
## Rule Toolkit Report
### Platform: Claude Code / OpenClaw / Cursor / Copilot
### Scanned Files
- CLAUDE.md (45 rules)
- soul.md (8 rules)
### Converted to Tools (38 rules)
| Rule | Source | Tool | Status |
|------|--------|------|--------|
| "Use 2-space indent" | CLAUDE.md | .prettierrc | Created |
| "No semicolons" | soul.md | .prettierrc | Created |
| "Conventional commits" | bootstrap.md | commitlint | Created |
### Remaining in Prompt (15 rules)
| Rule | Source | Reason |
|------|--------|--------|
| "Use repository pattern" | CLAUDE.md | Architectural judgment |
| "Ask before deleting" | tools.md | Human-in-the-loop |
### Summary
- N% rules automatically enforced
- M% remain in prompt
- Token savings: ~X tokens/conversation
Cleanup Constraint Files
Remove toolified rules from source files to save tokens.
Claude Code — replace removed rules in CLAUDE.md:
## Rules
Automated rules enforced by tooling. Run `npm run lint` to check.
See `.eslintrc.cjs`, `.prettierrc`, `scripts/check-rules.js`.
OpenClaw — replace removed rules in each file (e.g. tools.md):
## Tool Rules
Automated: linting (`npx eslint .`), type check (`npx tsc --noEmit`).
API format: use `ok()`/`fail()` from `src/utils/response.ts`.
Remaining rules below require human judgment.
Safety Rules
- NEVER modify existing tool configs without showing a diff first
- ALWAYS preserve existing rules, only add new ones
- ALWAYS create wrapper functions in a new file
- ALWAYS run generated configs to verify they parse correctly
- If a rule is ambiguous, ASK the user before generating
- OpenClaw
SAFETY.mdis hardcoded — skip it - Show the user what will change before writing files
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install rule-toolkit - After installation, invoke the skill by name or use
/rule-toolkit - Provide required inputs per the skill's parameter spec and get structured output
What is Rule Toolkit?
Scan constraint files (CLAUDE.md, agents.md, soul.md, tools.md, bootstrap.md, .cursorrules) across AI coding platforms, identify rules enforceable by tools,... It is an AI Agent Skill for Claude Code / OpenClaw, with 66 downloads so far.
How do I install Rule Toolkit?
Run "/install rule-toolkit" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Rule Toolkit free?
Yes, Rule Toolkit is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Rule Toolkit support?
Rule Toolkit is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Rule Toolkit?
It is built and maintained by Sexy Coder (@dachunggan); the current version is v1.0.1.