Claude 0a34178e22 feat(plugin): fix guardian hooks, add InstructionsLoaded enforcement, .claude/rules emitter, AGENTS.md interop
Closes the gap between ClaudeForge and the Anthropic docs at
code.claude.com/docs/en/memory (and its linked hooks / skills / plugins
pages). Five tightly-scoped changes, each verified by smoke test.

A. Fix guardian hook frontmatter shape (agent/claude-md-guardian.md)

   The previous array-of-{event, commands} shape did not match the
   documented schema (hooks: { EventName: [{ matcher, hooks: [{ type,
   command }] }] }), so the guardian's hooks silently did not fire.
   Rewritten to the canonical keyed-object shape with PostToolUse,
   PreToolUse, SessionStart, and the new InstructionsLoaded event.

B+C. Plugin-level hooks/hooks.json + hooks/validate-claude-md.py

   New deterministic enforcement of the 150-line cap. The validator
   script reads the hook payload from stdin, extracts any referenced
   CLAUDE.md path (supports both PostToolUse tool_input.file_path and
   InstructionsLoaded path / file shapes), and exits 2 with stderr
   feedback when the file is over 150 lines. Wired to both PostToolUse
   on Write|Edit and InstructionsLoaded on every load_reason
   (session_start, nested_traversal, path_glob_match, include, compact).
   The cap is now enforced at every load *and* write, not only when the
   guardian decides to run sync.

D. ContentGenerator.generate_rules_file() (skill/generator.py)

   Emits path-scoped .claude/rules/*.md instruction files with name,
   description, and paths: glob frontmatter. Claude loads these
   lazily — only when accessing files matching the globs — so
   file-type-specific guidance no longer has to live in the root
   CLAUDE.md. Validates that paths is non-empty (ValueError otherwise).

E. AGENTS.md / .cursorrules / .windsurfrules interop

   command/enhance-claude-md.md Phase 1 now lists which sibling
   instruction files exist. ContentGenerator.generate_root_file() reads
   project_context['existing_instruction_files'] and prepends an
   ## External Instructions section with @AGENTS.md (etc.) imports, so
   repos already using other agent tooling can adopt ClaudeForge
   without losing their existing instructions.

Smoke tests (all pass):
- Guardian hooks frontmatter parses as a dict with 4 events, each
  carrying matcher + nested hooks array of {type, command} entries.
- hooks.json is valid JSON; PostToolUse matcher = Write|Edit;
  InstructionsLoaded matcher covers all five load_reason values.
- validate-claude-md.py: small file -> rc 0, bloated file (200 lines)
  -> rc 2 with stderr referencing the 150 cap, InstructionsLoaded
  payload shape also handled, non-CLAUDE.md paths ignored, no stdin
  -> rc 0.
- generate_rules_file emits valid frontmatter with paths glob and
  raises ValueError when paths is empty.
- generate_root_file inserts @AGENTS.md and @.cursorrules imports
  when existing_instruction_files lists them; omits the section
  otherwise.
- Regression: large-fullstack root still 52 lines with chain imports
  intact; all five sub-CLAUDE.md files in this repo still pass
  validator (status = pass).

Docs:
- agent/CLAUDE.md updated to show the canonical hook shape and the
  hook-driven validator wiring.
- skill/CLAUDE.md notes generate_rules_file and AGENTS.md interop.
- CHANGELOG.md documents all five changes under Unreleased.
2026-05-19 02:04:00 +00:00
2025-11-12 11:19:48 +01:00
2025-11-12 11:19:48 +01:00

ClaudeForge

Automated CLAUDE.md creation, enhancement, and maintenance for Claude Code projects

License: MIT Version Claude Code CI/CD Quality Gates

ClaudeForge is a comprehensive toolkit that eliminates the tedious process of manually creating and maintaining CLAUDE.md files. With intelligent analysis, automated generation, and background maintenance, your CLAUDE.md files stay perfectly synchronized with your codebase.


🆕 New in v2.0 (Claude Code v2.1.4+ Support)

  • Lifecycle Hooks: Guardian agent automatically checks for updates at session start using SessionStart hooks
  • Modern Permissions: All components now use permissions: syntax for fine-grained control
  • Hot-Reload: Skills automatically reload when modified (no restart needed)
  • Fork-Safe Mode: Guardian runs independently with fork_safe: true without blocking operations
  • Version Detection: Installers validate Claude Code version and ensure compatibility
  • Auto-Migration: Seamless upgrade from v1.x with automatic backups

👉 Upgrading from v1.x? See docs/MIGRATION_V2.md for migration guide.


Features

  • 🚀 Interactive Initialization - Explores your repository, detects project context, and creates customized CLAUDE.md files through conversational workflow
  • Intelligent Analysis - Scans and evaluates existing CLAUDE.md files with quality scoring (0-100) and actionable recommendations
  • 🔧 Smart Enhancement - Adds missing sections and improves structure automatically
  • 🛡️ Background Maintenance - Guardian agent keeps CLAUDE.md synchronized with codebase changes
  • 📦 Modular Architecture - Supports complex projects with context-specific files (backend/, frontend/, database/)
  • 🎯 100% Native Format - All generated files follow official Claude Code format with project structure diagrams, setup instructions, and architecture sections
  • 🛠️ Tech Stack Customization - Tailors guidelines to TypeScript, Python, Go, React, Vue, FastAPI, and more
  • 👥 Team Size Adaptation - Adjusts complexity based on team size (solo, small, medium, large)

📦 What's Included

1. Skill (claudeforge-skill)

Core capability for CLAUDE.md analysis, generation, validation, and enhancement

2. Slash Command (/enhance-claude-md)

Interactive interface with multi-phase discovery workflow. Delegates deep codebase scans to the Explore subagent so the discovery does not bloat the calling session.

3. Slash Command (/sync-claude-md)

Walks every CLAUDE.md in the project, prunes stale references (removed dependencies, deleted files, dead modular links), enforces the 150-line hard cap per file, and repairs the root ↔ subdirectory chain (markdown links + @path imports). Run after refactors, dependency changes, or before cutting a release.

4. Guardian Agent (claude-md-guardian)

Background agent for automatic CLAUDE.md maintenance and synchronization

5. Karpathy Guidelines Skill (karpathy-guidelines)

Behavioral guardrails — Think Before Coding, Simplicity First, Surgical Changes, Goal-Driven Execution — installed as a standalone skill and automatically embedded into every CLAUDE.md generated or enhanced by /enhance-claude-md. Adapted with attribution from the MIT-licensed forrestchang/andrej-karpathy-skills repository, inspired by Andrej Karpathy's observations on common LLM coding failure modes.


🚀 Quick Start

Installation

ClaudeForge ships as a Claude Code plugin. From any Claude Code session:

/plugin marketplace add alirezarezvani/ClaudeForge
/plugin install claudeforge

This installs every component (skills, slash commands, guardian agent) and registers /enhance-claude-md and /sync-claude-md for any project. Works the same at the user level (available everywhere) or scoped to a single project.

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/alirezarezvani/ClaudeForge/main/install.sh | bash

Windows (PowerShell)

iwr https://raw.githubusercontent.com/alirezarezvani/ClaudeForge/main/install.ps1 -useb | iex

Manual Installation

git clone https://github.com/alirezarezvani/ClaudeForge.git
cd ClaudeForge
./install.sh  # or .\install.ps1 on Windows

Usage

After installation, restart Claude Code and run:

/enhance-claude-md

That's it! The command will:

  1. Explore your project structure
  2. Detect tech stack and project type
  3. Show discoveries and ask for confirmation
  4. Create customized CLAUDE.md file(s)
  5. Apply best practices and native format

💡 Use Cases

New Project (No CLAUDE.md)

/enhance-claude-md

# Claude explores your repository and responds:
#
# "Based on my exploration, here's what I discovered:
#
#  📦 Project Type: Full-Stack Application
#  🛠️ Tech Stack: TypeScript, React, Node.js, PostgreSQL, Docker
#  👥 Team Size: Small (5 developers)
#  🚀 Development Phase: MVP
#
#  📋 Recommended Structure:
#  - Root CLAUDE.md (navigation hub, ~100 lines)
#  - backend/CLAUDE.md (API guidelines, ~150 lines)
#  - frontend/CLAUDE.md (React guidelines, ~175 lines)
#
#  Would you like me to create these files?"
#
# You: "Yes"
#
# ✅ CLAUDE.md created (108 lines)
# ✅ backend/CLAUDE.md created (156 lines)
# ✅ frontend/CLAUDE.md created (182 lines)

Existing Project (Needs Improvement)

/enhance-claude-md

# Claude analyzes your current CLAUDE.md:
#
# "Quality Score: 65/100
#
#  Missing Sections:
#  - Project Structure (ASCII diagram)
#  - Setup & Installation
#  - Architecture
#
#  Would you like me to enhance your CLAUDE.md with these sections?"
#
# You: "Yes"
#
# ✅ CLAUDE.md enhanced (+2 sections, quality score: 65 → 88)

Background Maintenance

# You start a new Claude Code session
# Guardian agent automatically checks for changes
#
# ✅ CLAUDE.md updated:
# - Tech Stack: Added 2 dependencies (react-query, tailwindcss)
# - Project Structure: Updated diagram with new components/ directory
# - Setup & Installation: New environment variables
#
# Changes: 3 sections, 12 lines

📚 Documentation

Document Description
Quick Start Guide 5-minute tutorial to get started
Installation Guide Detailed installation instructions and troubleshooting
Architecture Overview How components work together
GitHub Workflows CI/CD automation and quality gates
Branching Strategy Branch flow and protection rules
Troubleshooting Common issues and solutions
Contributing Guide How to contribute to ClaudeForge

📖 Examples

See the examples/ directory for:

  • Basic usage scenarios
  • Modular architecture setup
  • Integration with existing projects
  • Advanced customization

🔧 Components Deep Dive

Skill: claudeforge-skill

Core Capabilities:

  • Analysis - Scans existing CLAUDE.md files for quality and completeness
  • Validation - Checks against Anthropic guidelines and best practices
  • Generation - Creates new CLAUDE.md files from scratch
  • Enhancement - Adds missing sections and improves structure
  • Template Selection - Chooses appropriate templates based on project context

Quality Scoring (0-100):

  • Length appropriateness (25 pts)
  • Section completeness (25 pts)
  • Formatting quality (20 pts)
  • Content specificity (15 pts)
  • Modular organization (15 pts)

Slash Command: /enhance-claude-md

Multi-Phase Workflow:

  1. Discovery - Checks for existing CLAUDE.md, examines project structure
  2. Analysis - Determines appropriate action (initialize vs. enhance)
  3. Task - Invokes skill or agent to execute workflow

Agent: claude-md-guardian

Background Maintenance:

  • Auto-Sync - Updates CLAUDE.md based on detected changes
  • Smart Detection - Only updates when significant changes occur
  • Token-Efficient - Uses haiku model for routine updates
  • Milestone-Aware - Triggers after feature completion, refactoring, etc.

🎯 Requirements

  • Claude Code 2.0 or later
  • Git (recommended for change detection)
  • Operating Systems: macOS, Linux, Windows (PowerShell)

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Quick Contribution Steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

🐛 Issues & Support


📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Copyright © 2025 Alireza Rezvani


🙏 Acknowledgments

  • Built for the Claude Code community
  • Inspired by best practices from Anthropic's official documentation
  • Special thanks to all contributors and early adopters

🚦 Project Status

Version: 1.0.0 Status: Stable & Production-Ready Last Updated: November 12, 2025


📊 Quick Stats

  • 7 reference CLAUDE.md templates included
  • 100% native Claude Code format compliance
  • 5 Python modules
  • 3 integrated components (skill, command, agent)
  • 10+ usage examples and scenarios

🌟 Star History

If you find ClaudeForge helpful, please consider giving it a star on GitHub!

Star History Chart


⬆ Back to Top

Made with ❤️ for the Claude Code community

Languages
Python 70.9%
Shell 17.4%
PowerShell 11.7%