Context System Architecture

How Bootspring generates and manages project context.

Overview

The context system generates CLAUDE.md files that help AI assistants understand your project. It analyzes your codebase and produces structured documentation.

Context Generation Pipeline

┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Discovery │───▶│ Analysis │───▶│ Aggregation │───▶│ Rendering │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ ▼ ▼ ▼ ▼ Find files Run analyzers Combine data Apply template

Discovery Phase

File Scanner

Loading code block...

Default Patterns

Loading code block...

Analysis Phase

Analyzer Interface

Loading code block...

Built-in Analyzers

Package Analyzer

Loading code block...

Framework Analyzer

Loading code block...

Structure Analyzer

Loading code block...

Database Analyzer

Loading code block...

Aggregation Phase

Result Aggregator

Loading code block...

Rendering Phase

Template System

Loading code block...

Template Structure

Loading code block...

{{structure.tree}}

## Key Files {{#each keyFiles}} ### {{path}} {{description}} {{/each}} ## Database Schema {{#if database.models}} {{#each database.models}} ### {{name}} {{#each fields}} - {{name}}: {{type}} {{/each}} {{/each}} {{/if}} ## API Routes {{#each api.routes}} - `{{method}}` {{path}} - {{description}} {{/each}} ## Development ```bash {{commands.dev}}
## Incremental Updates ### Change Detection ```typescript // core/context/incremental.ts export class IncrementalUpdater { private hashStore: HashStore; async shouldRegenerate(project: Project): Promise<boolean> { const currentHashes = await this.computeHashes(project); const storedHashes = await this.hashStore.get(project.path); if (!storedHashes) return true; // Check for significant changes const changed = this.findChanges(storedHashes, currentHashes); return changed.some(c => this.isSignificant(c)); } private isSignificant(change: FileChange): boolean { // Config changes are always significant if (CONFIG_FILES.includes(change.path)) return true; // Schema changes are significant if (change.path.includes('schema')) return true; // Many file changes are significant return change.type === 'added' || change.type === 'deleted'; } }

Partial Regeneration

Loading code block...

Caching

Analysis Cache

Loading code block...

Configuration

Context Config

Loading code block...

Performance

Parallel Analysis

Loading code block...

Large Project Handling

For large codebases:

Loading code block...