mcpbeat

Init Deep

arabelatso/init-deep

Generates hierarchical context files (CLAUDE.md) throughout a project directory tree, providing AI agents with directory-specific knowledge for better code understanding. Use when setting up a new project for AI-assisted development.

925 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
141
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/ArabelaTso/Skills-4-SE --skill init-deep

The instruction itself

9 sections, as written by the author

Init Deep — Hierarchical Context Generator

Automatically generates layered context files throughout a project's directory tree, giving AI agents directory-specific knowledge without loading the entire codebase into context.

When to Use This Skill

  • Setting up a new project for AI-assisted development
  • Onboarding AI agents to an existing codebase
  • After major restructuring when context files are outdated
  • When AI agents lack understanding of project-specific conventions

What This Skill Does

Concept

Create an CLAUDE.md file at each significant directory level:

project/
├── CLAUDE.md              # Project-wide: overview, conventions, anti-patterns
├── src/
│   ├── CLAUDE.md          # src-specific: architecture, module boundaries
│   ├── api/
│   │   └── CLAUDE.md      # API-specific: routes, middleware, auth patterns
│   └── components/
│       └── CLAUDE.md      # Component-specific: naming, props, styling
├── tests/
│   └── CLAUDE.md          # Test-specific: frameworks, fixtures, patterns
└── infra/
    └── CLAUDE.md          # Infra-specific: deployment, configs, secrets

When an AI reads src/api/routes/auth.ts, it automatically picks up context from:

  • project/CLAUDE.md (project-wide)
  • project/src/CLAUDE.md (source conventions)
  • project/src/api/CLAUDE.md (API patterns)

Generation Process

  • Scan the project structure (respect .gitignore)
  • Analyze each directory:
  • What files are here? What do they do?
  • What patterns/conventions are used?
  • What are the key dependencies?
  • What should an AI know before editing files here?
  • Generate CLAUDE.md with:
  • OVERVIEW: What this directory contains
  • STRUCTURE: Key files and their purposes
  • WHERE TO LOOK: Task-to-file mapping table
  • CONVENTIONS: Naming, patterns, style rules
  • ANTI-PATTERNS: What NOT to do here
  • COMMANDS: Relevant build/test/run commands

Content Guidelines

Each CLAUDE.md should be:

  • Concise — Under 100 lines. AI context window is precious.
  • Actionable — "WHERE TO LOOK" tables, not prose descriptions
  • Specific — Conventions for THIS directory, not general advice
  • Current — Regenerate after major restructuring

Root CLAUDE.md Template

# PROJECT KNOWLEDGE BASE

## OVERVIEW
[1-2 sentences: what this project is]

## STRUCTURE
[Directory tree with annotations]

## WHERE TO LOOK
| Task | Location | Notes |
|------|----------|-------|
| Add a feature | src/features/ | One dir per feature |
| Fix a bug | src/core/ | Core logic here |
| Add a test | tests/ | Mirror src/ structure |

## CONVENTIONS
- [Naming rules]
- [Pattern rules]
- [Import rules]

## ANTI-PATTERNS
- Do NOT [common mistake 1]
- Do NOT [common mistake 2]

## COMMANDS
[Build, test, lint, deploy commands]

Options

  • --max-depth=N — Limit directory depth (default: 3)
  • --create-new — Only create new files, don't overwrite existing

Example

User: "Set up CLAUDE.md files for this project"

Output: Scans project, generates 6 CLAUDE.md files across the directory tree. Root file has project overview, src/ file has architecture notes, each major subdirectory gets specific conventions and anti-patterns.

Inspired by: oh-my-opencode /init-deep command

How to use it

Copy the folder

Take arabelatso/init-deep from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.