Manage modular rules in .claude/rules/ directory
Manages modular rules in .claude/rules/ directory for project-specific guidance.
/plugin marketplace add laurigates/claude-plugins/plugin install blueprint-plugin@lgates-claude-pluginsManage modular rules for the project. Rules are markdown files in .claude/rules/ that provide context-specific instructions to Claude.
Steps:
Check blueprint status:
docs/blueprint/manifest.jsonUse AskUserQuestion:
question: "Modular rules are not enabled. Would you like to enable them?"
options:
- "Yes, create .claude/rules/ structure" → enable and continue
- "No, use single CLAUDE.md" → exit
Determine action (use AskUserQuestion):
question: "What would you like to do with modular rules?"
options:
- "List existing rules" → show current rules
- "Add a new rule" → create new rule file
- "Edit existing rule" → modify rule
- "Generate rules from PRDs" → auto-generate from requirements
- "Sync rules with CLAUDE.md" → bidirectional sync
- "Validate rules" → check for issues
List existing rules:
.claude/rules/ recursively for .md filespaths field (if scoped)📜 Modular Rules
Global Rules (apply to all files):
- development.md - TDD workflow and conventions
- testing.md - Test requirements
Scoped Rules (apply to specific paths):
- frontend/react.md - paths: ["src/components/**/*.tsx"]
- backend/api.md - paths: ["src/api/**/*.ts"]
Total: 4 rules
Add a new rule (use AskUserQuestion):
question: "What type of rule would you like to create?"
options:
- "Development workflow" → development.md template
- "Testing requirements" → testing.md template
- "Code style/conventions" → code-style.md template
- "Architecture patterns" → architecture.md template
- "Language-specific" → prompt for language
- "Framework-specific" → prompt for framework
- "Custom" → blank template with guidance
Then ask:
question: "Should this rule apply to all files or specific paths?"
options:
- "All files (global)" → no paths frontmatter
- "Specific file patterns" → prompt for glob patterns
Rule file templates:
Global rule template:
# {Rule Name}
## Overview
{Brief description of when this rule applies}
## Requirements
- {Requirement 1}
- {Requirement 2}
## Examples
{Code examples if applicable}
Scoped rule template:
---
paths:
- "src/components/**/*.tsx"
- "src/components/**/*.ts"
---
# {Rule Name}
## Overview
{Brief description - applies only to matched paths}
## Requirements
- {Requirement 1}
- {Requirement 2}
Generate rules from PRDs:
docs/prds/rules/from-prd-testing.md - Test requirements from PRDsrules/from-prd-architecture.md - Architecture decisionsrules/from-prd-conventions.md - Coding conventionsSync rules with CLAUDE.md:
.claude/rules/question: "How would you like to sync?"
options:
- "CLAUDE.md → rules (split into modular files)"
- "Rules → CLAUDE.md (consolidate)"
- "Merge both (combine unique content)"
Validate rules:
paths field✅ Rule Validation
Checked: 4 rules
Valid: 4
Warnings: 1
- frontend/react.md: paths pattern may be too broad
No errors found.
Update manifest:
generated_artifacts.rulesupdated_at timestampReport:
✅ Rule management complete!
{Action summary}
Current rules: {count} files
- Global: {count}
- Scoped: {count}
Run `/blueprint-status` to see full configuration.
Prompt for next action (use AskUserQuestion):
question: "Rules updated. What would you like to do next?"
options:
- label: "Update CLAUDE.md (Recommended)"
description: "Regenerate overview to reflect rule changes"
- label: "Add another rule"
description: "Create additional domain-specific rules"
- label: "Check blueprint status"
description: "Run /blueprint:status to see full configuration"
- label: "I'm done for now"
description: "Exit - rules are active immediately"
Based on selection:
/blueprint:claude-md/blueprint:statusCommon Rule Patterns:
| Rule Type | Suggested Path | Scope Pattern |
|---|---|---|
| React components | rules/frontend/react.md | ["**/*.tsx", "**/*.jsx"] |
| API handlers | rules/backend/api.md | ["src/api/**/*", "src/routes/**/*"] |
| Database models | rules/backend/models.md | ["src/models/**/*", "src/db/**/*"] |
| Test files | rules/testing.md | ["**/*.test.*", "**/*.spec.*"] |
| Documentation | rules/docs.md | ["**/*.md", "docs/**/*"] |