360 Secure SkillHub
360 安全技能中心

Rule Toolkit

扫描 CLAUDE.md、agents.md、soul.md、tools.md、bootstrap.md、.cursorrules 等约束文件,区分可工具化与仅靠提示的规则,按技术栈生成 ESLint、Prettier、tsconfig、Git hooks、包装函数与校验脚本,输出转换报告并精简原约束文件。引用的 scripts/check-rules.js 在文件中缺失。

dachunggan
dachunggan
热度 41.29
最近更新 2026-05-24 13:59:11
分类:开发依赖:代码执行 / 读写文件应用场景:代码生成 / 自动化脚本 / DevOps / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add rule-toolkit
Metadata
name
rule-toolkit
version
1.0.0
description
Scan constraint files (CLAUDE.md, agents.md, soul.md, tools.md, bootstrap.md, .cursorrules) across AI coding platforms, identify rules enforceable by tools, and auto-generate linters, hooks, validators, and wrapper functions. Use when setting up a new project, onboarding an existing codebase, or when the user says "convert rules to tools", "make rules enforceable", "automate my CLAUDE.md rules", or "toolify constraints".
license
MIT
compatibility
Requires Node.js 18+ for ESLint/Prettier/Husky generation. Python projects use ruff. Works with Claude Code, OpenClaw, Cursor, Copilot, and any Agent Skills compatible tool.
allowed-tools
Bash Glob Grep Read Write Edit

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.md is hardcoded — skip it
  • Show the user what will change before writing files