88[ ← Back to Index] ( ./INDEX.md ) | [ Next: Skills System →] ( ./02_skills_system.md )
99
1010---
11- ## Feature 2: Memory Hierarchy
11+
12+ ** ❌ NOT A PLUGIN FEATURE - Core Infrastructure**
13+
14+ Memory hierarchy is project-specific infrastructure (not distributable). Plugins reference memory via ` @.claude/memory/... ` syntax.
15+ See: [ Plugin Packaging] ( ./08_plugin_packaging.md#61-memory-integration )
16+
17+ ---
18+
19+ ## Feature 1: Memory Hierarchy
1220
1321### 1. Feature Overview
1422
@@ -107,6 +115,90 @@ Enhanced: CLAUDE.md (orchestrator with imports)
107115✅ ** Incremental migration** - Can add imports gradually
108116✅ ** Fallback** - If imports fail, main CLAUDE.md content still loads
109117
118+ ### 3.5. Risk Assessment
119+
120+ #### Technical Risks
121+
122+ ** Risk: Import Path Resolution Failures**
123+ - ** Likelihood:** Low-Medium
124+ - ** Impact:** High (context fails to load)
125+ - ** Mitigation:**
126+ - Test all import paths during Phase 1
127+ - Use relative paths from project root for portability
128+ - Keep inline fallback content in main CLAUDE.md
129+ - Monitor Claude Code error logs during migration
130+
131+ ** Risk: Import Depth Limit Exceeded**
132+ - ** Likelihood:** Low (5-level limit is generous)
133+ - ** Impact:** Medium (nested imports fail silently)
134+ - ** Mitigation:**
135+ - Design flat structure (max 2 levels)
136+ - Avoid cross-referencing between memory files
137+ - Document import hierarchy explicitly
138+
139+ ** Risk: Circular Import Dependencies**
140+ - ** Likelihood:** Low
141+ - ** Impact:** Medium (import resolution fails)
142+ - ** Mitigation:**
143+ - Design acyclic memory graph
144+ - Use testing-templates.md as leaf node (no imports)
145+ - Document dependency order
146+
147+ ** Risk: Token Budget Overflow**
148+ - ** Likelihood:** Low-Medium
149+ - ** Impact:** Medium (selective loading ineffective)
150+ - ** Mitigation:**
151+ - Keep individual memory files under 500 tokens
152+ - Monitor actual token usage post-migration
153+ - Split large files if needed (e.g., physics-constants.md → thermal-formulas.md + alfven-formulas.md)
154+
155+ #### Adoption Risks
156+
157+ ** Risk: Team Confusion About Memory Structure**
158+ - ** Likelihood:** Medium
159+ - ** Impact:** Low-Medium (slower adoption)
160+ - ** Mitigation:**
161+ - Create comprehensive ` .claude/docs/MEMORY.md ` guide
162+ - Document memory file purposes in each file header
163+ - Provide examples of when to update which memory file
164+ - Team training session during Phase 1
165+
166+ ** Risk: Memory File Drift from Codebase**
167+ - ** Likelihood:** Medium
168+ - ** Impact:** Medium (outdated context harms quality)
169+ - ** Mitigation:**
170+ - Add pre-commit hook to validate memory consistency
171+ - Include memory updates in PR review checklist
172+ - Schedule quarterly memory audits
173+ - Link memory files to corresponding source code in comments
174+
175+ ** Risk: Fragmented Context Across Too Many Files**
176+ - ** Likelihood:** Low
177+ - ** Impact:** Medium (harder to maintain coherent context)
178+ - ** Mitigation:**
179+ - Limit to 9 core memory files initially
180+ - Group related concepts (don't create file-per-concept)
181+ - Use clear naming conventions (` *-reference.md ` , ` *-patterns.md ` , ` *-templates.md ` )
182+
183+ #### Migration Risks
184+
185+ ** Risk: Context Regression During Migration**
186+ - ** Likelihood:** Medium
187+ - ** Impact:** High (temporary productivity loss)
188+ - ** Mitigation:**
189+ - Maintain full inline content during transition
190+ - Migrate incrementally (2-3 sections at a time)
191+ - A/B test context quality before/after each phase
192+ - Keep rollback window open for 2 weeks per phase
193+
194+ ** Risk: Lost Context Due to Over-Modularization**
195+ - ** Likelihood:** Low-Medium
196+ - ** Impact:** Medium (critical rules missed)
197+ - ** Mitigation:**
198+ - Keep critical rules in both CLAUDE.md and critical-rules.md initially
199+ - Monitor for missed context in session reviews
200+ - Consolidate if fragmentation causes issues
201+
110202### 4. Implementation Specification
111203
112204#### Proposed Memory Structure
@@ -500,7 +592,138 @@ All SolarWindPy-specific conventions, rules, and knowledge that should be consis
5005923 . Monitor memory effectiveness and iterate
501593
502594** Rollback Strategy:**
503- Keep current CLAUDE.md content as fallback. If imports fail, inline content provides full context.
595+
596+ * Immediate Rollback (Same Session):*
597+ 1 . Remove ` @.claude/memory/... ` imports from CLAUDE.md
598+ 2 . Inline content back into main CLAUDE.md
599+ 3 . Verify context loads correctly
600+ 4 . Continue working (no restart needed)
601+
602+ * Full Rollback (If Issues Persist):*
603+ 1 . ` git revert ` commits that introduced memory hierarchy
604+ 2 . Restore monolithic CLAUDE.md from git history
605+ 3 . Delete ` .claude/memory/ ` directory (or move to ` .claude/memory.backup/ ` )
606+ 4 . Verify all workflows function as before
607+ 5 . Document issues encountered for future reference
608+
609+ * Partial Rollback (Keep Some Memory Files):*
610+ 1 . Identify problematic memory file(s)
611+ 2 . Remove specific imports from CLAUDE.md
612+ 3 . Inline only problematic content
613+ 4 . Keep working memory files intact
614+ 5 . Iterate based on what works
615+
616+ * Rollback Verification Steps:*
617+ - ✅ CLAUDE.md loads without errors
618+ - ✅ Physics rules are enforced in session
619+ - ✅ Agent selection works correctly
620+ - ✅ Testing patterns are available
621+ - ✅ No regressions in context quality
622+
623+ * Risk:** Very low - Memory hierarchy is additive, rollback is simple removal/inlining.
624+
625+ ### 4.5. Alternatives Considered
626+
627+ #### Alternative 1: Keep Monolithic CLAUDE.md (Status Quo)
628+
629+ ** Description:** Continue using single CLAUDE.md file with all context inline.
630+
631+ ** Pros:**
632+ - ✅ Zero implementation effort
633+ - ✅ No risk of import resolution failures
634+ - ✅ Simpler mental model (everything in one place)
635+ - ✅ No migration complexity
636+
637+ ** Cons:**
638+ - ❌ Full context loaded every session (token inefficiency)
639+ - ❌ Difficult to navigate and maintain (300+ lines)
640+ - ❌ No selective loading based on task context
641+ - ❌ Harder for team to coordinate updates (merge conflicts)
642+ - ❌ Agent-specific context not easily targeted
643+
644+ ** Decision:** ** Rejected** - Token efficiency and maintainability gains justify migration effort.
645+
646+ #### Alternative 2: User + Project Memory Hierarchy
647+
648+ ** Description:** Use both ` ~/.claude/CLAUDE.md ` (user-level) and project-level memory for personalization.
649+
650+ ** Pros:**
651+ - ✅ Developers can customize personal workflows
652+ - ✅ Separation of team standards vs. personal preferences
653+ - ✅ Flexibility for different working styles
654+
655+ ** Cons:**
656+ - ❌ Inconsistent behavior across team members
657+ - ❌ Debugging difficulty (which memory tier caused behavior?)
658+ - ❌ Fragmentation of context (some in user, some in project)
659+ - ❌ Personal preferences can override critical project rules
660+ - ❌ Harder to reproduce issues across environments
661+
662+ ** Decision:** ** Rejected** - Team consistency is critical for SolarWindPy. Single source of truth preferred.
663+
664+ #### Alternative 3: External Documentation Links (No Memory System)
665+
666+ ** Description:** Store context in ` .claude/docs/ ` and rely on manual references via ` @file ` syntax.
667+
668+ ** Pros:**
669+ - ✅ Clear separation of permanent docs vs. ephemeral memory
670+ - ✅ Documentation serves dual purpose (humans + AI)
671+ - ✅ No special memory infrastructure needed
672+
673+ ** Cons:**
674+ - ❌ Requires manual ` @file ` references in every relevant session
675+ - ❌ Not automatically loaded (Claude must be told to read)
676+ - ❌ Context not preserved across sessions (ephemeral)
677+ - ❌ Inefficient for frequently-needed context (physics rules)
678+
679+ ** Decision:** ** Rejected** - Memory system provides automatic context loading, eliminating manual overhead.
680+
681+ #### Alternative 4: Skill-Based Context Injection
682+
683+ ** Description:** Use Skills system to dynamically inject context when needed.
684+
685+ ** Pros:**
686+ - ✅ Progressive disclosure (only load when skill activated)
687+ - ✅ Context tied to specific task types
688+ - ✅ Can include executable validation logic
689+
690+ ** Cons:**
691+ - ❌ Skills are for actions, not passive context storage
692+ - ❌ Overhead of skill activation for every context need
693+ - ❌ Doesn't solve cross-session persistence
694+ - ❌ Not suitable for always-needed context (SI units)
695+
696+ ** Decision:** ** Rejected** - Skills complement memory but don't replace it. Memory provides persistent baseline, skills add dynamic capabilities.
697+
698+ #### Alternative 5: Hybrid: Minimal CLAUDE.md + Targeted Memory Files
699+
700+ ** Description:** Keep critical rules inline in CLAUDE.md, use memory only for reference materials.
701+
702+ ** Pros:**
703+ - ✅ Guaranteed critical context always loads
704+ - ✅ Reduces risk of import failures breaking essential rules
705+ - ✅ Balances simplicity and modularity
706+
707+ ** Cons:**
708+ - ❌ Unclear boundary between "critical" and "reference"
709+ - ❌ Still requires some token overhead for inline content
710+ - ❌ Doesn't fully leverage memory optimization potential
711+
712+ ** Decision:** ** Partially Adopted** - Keep critical rules duplicated in CLAUDE.md during migration (Phase 1-2), but full migration to memory is goal (Phase 3).
713+
714+ #### Selected Approach: Modular Project Memory with Fallback
715+
716+ ** Rationale:**
717+ - Maximizes token efficiency via selective loading
718+ - Maintains team consistency (no user-level overrides)
719+ - Provides fallback via inline content during migration
720+ - Enables targeted updates without touching monolithic file
721+ - Better separation of concerns (physics vs. testing vs. git)
722+
723+ ** Trade-offs Accepted:**
724+ - Migration complexity (mitigated by incremental approach)
725+ - Import resolution dependency (mitigated by fallback content)
726+ - Slightly more files to maintain (offset by better organization)
504727
505728### 5. Priority & Effort Estimation
506729
@@ -525,9 +748,31 @@ Keep current CLAUDE.md content as fallback. If imports fail, inline content prov
525748| Maintenance | 3/5 | Keep memories synchronized with codebase evolution |
526749
527750** Dependencies:**
528- - ✅ None - Memory is core Claude Code feature
751+
752+ * Technical Prerequisites:*
753+ - ✅ None - Memory hierarchy is foundational feature
754+ - ✅ Claude Code (any version supporting file imports)
755+ - ✅ Existing CLAUDE.md file (to be refactored)
756+
757+ * Infrastructure Requirements:*
758+ - ✅ Git repository (for version controlling memory files)
759+ - ✅ ` .claude/ ` directory structure
760+ - ✅ Team agreement on project-only memory model
761+
762+ * Knowledge Prerequisites:*
763+ - ⚠️ Understanding of current CLAUDE.md content structure
764+ - ⚠️ Familiarity with ` @file ` import syntax
765+ - ⚠️ Awareness of 5-level import depth limit
766+
767+ * Implementation Considerations:*
529768- ⚠️ Requires careful extraction to avoid breaking existing context
530- - ⚠️ Import paths must be correct (relative or absolute)
769+ - ⚠️ Import paths must use correct format (relative from project root)
770+ - ⚠️ Testing needed to verify all imports resolve correctly
771+
772+ * Optional Enhancements* (implement after memory):
773+ - 🔄 Skills System - Skills can reference memory files
774+ - 🔄 Output Styles - Styles can emphasize memory organization
775+ - 🔄 Enhanced Hooks - Hooks can validate memory consistency
531776
532777** Estimated Effort:**
533778- Memory structure design: ** 2-3 hours**
@@ -549,6 +794,26 @@ Keep current CLAUDE.md content as fallback. If imports fail, inline content prov
549794- Savings: ** 40-60% token reduction** per session
550795- Annual: ** ~ 500,000-750,000 tokens saved** (assuming 200 sessions/year)
551796
797+ ** Measurement Methodology:**
798+
799+ * How Time Savings Are Calculated:*
800+ 1 . ** Baseline measurement:** Track time spent repeating context ("remember to use SI units," "check thermal speed formula") in 20 representative sessions
801+ 2 . ** Average repetition time:** 5-10 minutes per session for context-setting
802+ 3 . ** Session frequency:** Estimate 10-15 development sessions per week based on team activity
803+ 4 . ** Calculation:** (5-10 min/session) × (10-15 sessions/week) = 50-150 min/week saved
804+
805+ * How Token Reduction Is Measured:*
806+ 1 . ** Baseline:** Count tokens in current monolithic CLAUDE.md using Claude API tokenizer (~ 2,500 tokens)
807+ 2 . ** Post-implementation:** Measure token count of selectively loaded memory imports (estimate 1,000-1,500 tokens for typical session)
808+ 3 . ** Calculation:** ((2,500 - 1,500) / 2,500) × 100% = 40% reduction (conservative estimate)
809+ 4 . ** Annual projection:** Token savings per session × 200 sessions/year = 200,000-300,000 tokens annually
810+
811+ * Verification Methods:*
812+ - ** Time tracking:** Log context-setting time in session notes for 4 weeks pre/post implementation
813+ - ** Token counting:** Use Claude API's token counter on actual memory files loaded
814+ - ** A/B testing:** Compare sessions with monolithic vs. modular memory (5 sessions each)
815+ - ** Subjective assessment:** Team survey on context preservation quality
816+
552817### 6. Testing Strategy
553818
554819** Validation Approach:**
@@ -601,3 +866,6 @@ grep "Loading memory" .claude/logs/memory-access.log
601866
602867---
603868
869+ ** Last Updated:** 2025-10-31
870+ ** Document Version:** 1.1
871+ ** Plugin Ecosystem:** Integrated (Anthropic Oct 2025 release)
0 commit comments