Rule Creator Create rule files in .claude/rules/ . Rules are auto-discovered by Claude Code and loaded into agent context. Step 0: Check for Existing Rule Before creating, check if rule already exists: test -f .claude/rules/ < rule-name
.md && echo "EXISTS" || echo "NEW" If EXISTS → use Read to inspect the current rule file, then Edit to apply changes directly. Run the post-creation integration steps (Step 4) after updating. If NEW → continue with Step 0.5. Step 0.5: Companion Check Before proceeding with creation, run the ecosystem companion check: Use companion-check.cjs from .claude/lib/creators/companion-check.cjs Call checkCompanions("rule", "{rule-name}") to identify companion artifacts Review the companion checklist — note which required/recommended companions are missing Plan to create or verify missing companions after this artifact is complete Include companion findings in post-creation integration notes This step is informational (does not block creation) but ensures the full artifact ecosystem is considered. When to Use Creating project-specific coding guidelines Documenting framework conventions Establishing team standards Defining workflow protocols Rule File Format Rules are simple markdown files:
Rule Name
Section 1
Guideline 1
Guideline 2
Section 2
Guideline 3
Guideline 4 Example: testing.md
Testing
Test-Driven Development
Use TDD for new features and bug fixes (Red-Green-Refactor cycle)
Write failing test first, then minimal code to pass, then refactor
Never write production code without a failing test first
Test Organization
Add unit tests for utilities and business logic
Add integration tests for API boundaries
Keep tests deterministic and isolated (no shared state)
Place test files in
tests/
directory mirroring source structure
Creation Workflow
Step 1: Validate Inputs
// Validate rule name (lowercase, hyphens only)
const
ruleName
=
args
.
name
.
toLowerCase
(
)
.
replace
(
/
[
^
a
-
z
0
-
9
-
]
/
g
,
'-'
)
;
// Validate content is not empty
if
(
!
args
.
content
||
args
.
content
.
trim
(
)
.
length
===
0
)
{
throw
new
Error
(
'Rule content cannot be empty'
)
;
}
Step 2: Create Rule File
const
rulePath
=
.claude/rules/
${
ruleName
}
.md
;
// Format content as markdown
const
content
=
args
.
content
.
startsWith
(
'#'
)
?
args
.
content
:
`
${
ruleName
.
replace
(
/
-
/
g
,
' '
)
.
replace
(
/
\b
\w
/
g
,
l
=>
l
.
toUpperCase
(
)
)
}
\n\n
${
args
.
content
}
;
await
writeFile
(
rulePath
,
content
)
;
Step 3: Verify Auto-Discovery
Rules in
.claude/rules/
are automatically loaded by Claude Code. No manual registration needed.
// Verify file was created
const
fileExists
=
await
exists
(
rulePath
)
;
if
(
!
fileExists
)
{
throw
new
Error
(
'Rule file creation failed'
)
;
}
Step 4: Run Post-Creation Integration
const
{
runIntegrationChecklist
,
queueCrossCreatorReview
,
}
=
require
(
'.claude/lib/creator-commons.cjs'
)
;
await
runIntegrationChecklist
(
'rule'
,
rulePath
)
;
await
queueCrossCreatorReview
(
'rule'
,
rulePath
,
{
artifactName
:
ruleName
,
createdBy
:
'rule-creator'
,
}
)
;
Post-Creation Integration
After rule creation, run integration checklist:
const
{
runIntegrationChecklist
,
queueCrossCreatorReview
,
}
=
require
(
'.claude/lib/creator-commons.cjs'
)
;
// 1. Run integration checklist
const
result
=
await
runIntegrationChecklist
(
'rule'
,
'.claude/rules/<rule-name>.md'
)
;
// 2. Queue cross-creator review
await
queueCrossCreatorReview
(
'rule'
,
'.claude/rules/<rule-name>.md'
,
{
artifactName
:
'<rule-name>'
,
createdBy
:
'rule-creator'
,
}
)
;
// 3. Review impact report
// Check result.mustHave for failures - address before marking complete
Integration verification:
Rule file created in
.claude/rules/
Rule is auto-discovered by Claude Code
Rule content is clear and actionable
No conflicts with existing rules
Usage Examples
Create Code Standards Rule
Skill
(
{
skill
:
'rule-creator'
,
args
:
--name code-standards --content "# Code Standards
Organization
- Prefer small, cohesive files over large ones
- Keep interfaces narrow; separate concerns by feature
Style
- Favor immutability; avoid in-place mutation
- Validate inputs and handle errors explicitly"
, } ) ; Create Git Workflow Rule Skill ( { skill : 'rule-creator' , args :--name git-workflow --content "# Git Workflow
Commit Guidelines
- Keep changes scoped and reviewable
- Use conventional commits: feat:, fix:, refactor:, docs:, chore:
Branch Workflow
- Create feature branches from main
- Never force-push to main/master" ` , } ) ;