| created | "2026-01-30T00:00:00.000Z" |
| modified | "2026-06-18T00:00:00.000Z" |
| reviewed | "2026-05-22T00:00:00.000Z" |
| description | Derive Claude rules from git commit history. Use when extracting implicit decisions from commits or codifying code-style, testing, and API-design rules. |
| args | [--since DATE] [--scope SCOPE] |
| argument-hint | --since 2024-01-01 for date range, --scope api for specific area |
| allowed-tools | Read, Write, Glob, Grep, Bash, AskUserQuestion, Task |
| model | opus |
| name | blueprint-derive-rules |
/blueprint:derive-rules
Extract project decisions from git commit history and codify them as Claude rules. Newer commits override older decisions when conflicts exist.
Use case: Derive implicit project patterns from git history to establish consistent AI-assisted development guidelines.
Usage: /blueprint:derive-rules [--since DATE] [--scope SCOPE]
When to Use This Skill
| Use this skill when... | Use alternative when... |
|---|
| Want to extract implicit decisions from git history | Creating rules from requirements (use PRDs instead) |
| Project has significant commit history | New project with little history |
| Establishing project coding standards | Quick manual rule creation |
Context
- Git repository: !
git rev-parse --git-dir
- Blueprint initialized: !
find . -path '*/docs/blueprint/*' -maxdepth 3 -name 'manifest.json' -type f
- Total commits: !
git rev-list --count HEAD
- Conventional commits %: !
git log --format="%s"
- Existing rules in default location: !
find . -path '*/.claude/rules/*' -maxdepth 3 -name "*.md" -type f
- Existing rules in blueprint subdir: !
find . -path '*/.claude/rules/blueprint/*' -maxdepth 4 -name "*.md" -type f
Parameters
Parse $ARGUMENTS:
--since DATE: Analyze commits from specific date (e.g., --since 2024-01-01)
--scope SCOPE: Focus on specific area (e.g., --scope api, --scope testing)
Execution
Execute the complete git-to-rules derivation workflow:
Step 0: Resolve the output path
Read structure.generated_rules_path from docs/blueprint/manifest.json (default .claude/rules/):
RULES_DIR=$(jq -r '.structure.generated_rules_path // ".claude/rules/"' docs/blueprint/manifest.json)
mkdir -p "$RULES_DIR"