UNPKG

aiwg

Version:

Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo

183 lines (122 loc) 7.47 kB
# auto-memory Overview The auto-memory addon provides seed templates for Claude Code's Automatic Memory feature. It bootstraps new projects with AIWG-aware memory files so the memory system starts with useful structure rather than empty files, then evolves as Claude Code learns project-specific patterns during development. ## What Automatic Memory Is Automatic Memory (Claude Code v2.1.32+) maintains persistent, evolving knowledge about your project in `~/.claude/projects/<project>/memory/`. Unlike `CLAUDE.md`, which you maintain manually and commit to git, automatic memory is maintained automatically by Claude Code — it adds patterns, debugging strategies, and architectural decisions as it learns them during development. The distinction between the two: | | Automatic Memory | CLAUDE.md | |--|-----------------|-----------| | **Location** | `~/.claude/projects/<project>/memory/` | Repository root | | **Updated by** | Claude Code automatically | Developer manually | | **Content** | Learned patterns, debugging history | Static instructions, team conventions | | **In git** | No — local to each developer | Yes — shared with team | | **Scope** | Per-developer, per-machine | Team-wide | Use CLAUDE.md for stable team conventions. Use automatic memory for project-specific patterns that emerge during development. ## The Four Seed Templates The addon provides four structured seed files: ### MEMORY.md Central index file. Contains: - AIWG framework concepts (phases, commands, artifact structure) - Links to topic-specific memory files - Empty sections for project conventions that get populated automatically ### testing.md Testing knowledge structure including: - Test framework detection and configuration (populated on first test run) - Common test patterns for the project (populated as patterns are observed) - Known gotchas — async issues, flaky tests, environment dependencies - Debug strategies for common failures ### debugging.md Debugging pattern structure including: - Common issues and their resolutions (populated as issues are encountered and solved) - Systematic debugging process - Stack-specific error patterns - Performance debugging strategies ### architecture.md Architectural decision structure including: - Key design choices and rationale (populated from ADRs and observed patterns) - Technology stack and justifications - Cross-cutting concerns (security, performance, scalability) - Patterns used across the codebase ## How Seeds Work Seeds are starting templates — they provide structure and AIWG-specific guidance, then fill in over time as Claude Code learns the project. An initial seed looks like: ```markdown ## Common Patterns <!-- Learned during development --> ``` After several sprints, the same section looks like: ```markdown ## Common Patterns ### Test-First Development **Pattern**: Test → Implement → Refactor - Write failing test first (learned from UC-001 implementation) - Implement minimal code to pass - Refactor while keeping tests green **Observed**: 15/20 features follow this pattern (as of 2026-02-06) ``` ## Installation ### Automatic (via `aiwg new`) When creating a new project: ```bash aiwg new my-project ``` If Claude Code v2.1.32+ is detected, memory seeds are automatically copied to `~/.claude/projects/my-project/memory/`. ### Manual For an existing project: ```bash cp agentic/code/addons/auto-memory/seeds/*.md ~/.claude/projects/$(basename $(pwd))/memory/ ``` ### Verify ```bash ls -la ~/.claude/projects/$(basename $(pwd))/memory/ # MEMORY.md testing.md debugging.md architecture.md ``` ## Memory Maintenance As the project evolves, memory files may need pruning: - Remove patterns no longer applicable after refactors - Mark superseded decisions with "SUPERSEDED" and reference the replacement - Add new topic files as new concerns emerge (`deployment.md`, `security.md`) ### Confidence Annotation Convention Memory entries can be annotated with a confidence tier to distinguish well-established knowledge from emerging patterns or speculative decisions. This helps future sessions weigh entries appropriately and surfaces candidates for compaction. Three tiers (matching OpenProse user-memory): | Tier | Meaning | Example | |------|---------|---------| | `established` | Validated in production, confirmed by multiple sessions or ADR | `[confidence: established — see ADR-012]` | | `emerging` | Observed repeatedly but not yet codified | `[confidence: emerging — seen in 3 of last 5 sprints]` | | `speculative` | One-off observation or tentative decision | `[confidence: speculative — needs validation]` | **Format:** append inline at the end of the entry, in square brackets: ```markdown Use JWT RS256 for all service tokens. [confidence: established — see ADR-012] Consider Redis session store for web-facing services. [confidence: emerging — evaluated in sprint 4] Try CQRS for the reporting module. [confidence: speculative] ``` Confidence annotations are optional but recommended for any architectural decision entry. Established entries should have a rationale reference (ADR, commit, date). ### Self-Compaction Invariant **Trigger:** When any memory file exceeds 400 lines, the next session must compact it before adding new entries. **Compaction process:** 1. Merge redundant entries that say the same thing in different words 2. Mark superseded decisions with "SUPERSEDED by [replacement]" and archive at bottom 3. Promote repeated speculative entries to `emerging` confidence 4. Summarize clusters of related observations into a single general entry 5. Target: reduce to ≤300 lines, retaining all `established` entries and high-value `emerging` ones The 400-line trigger (not 500) gives a 100-line buffer to add new content before the next compaction cycle. A file that regularly hits 500+ lines without compaction is accumulating noise, not knowledge. **Compaction marker:** Add a comment at the top of the file after compaction: ```markdown <!-- Last compaction: 2026-04-03 — reduced from 487 to 298 lines --> ``` ## Relationship to Agent Loop Debug Memory Both mechanisms maintain debugging history but serve different purposes: | Aspect | Automatic Memory | Agent Loop Debug Memory | |--------|-----------------|-------------------| | Scope | Project-wide recurring patterns | Single loop execution state | | Lifetime | Permanent (manually pruned) | Per-loop (ephemeral) | | Location | `~/.claude/projects/<project>/memory/` | `.aiwg/ralph/debug-memory/` | | Use case | "We always have async test issues" | "Iteration 3 failed with timeout error" | When the same issue appears in agent loop debug memory across multiple loops, it is a candidate for promotion to automatic memory's `debugging.md` as a known pattern. ## Platform Notes Automatic memory is Claude Code-specific. Other platforms have their own persistence mechanisms: - **Cursor**: Project-level memory with a different file structure - **GitHub Copilot**: No equivalent automatic memory feature - **Warp/OpenCode**: No equivalent If you switch platforms, the knowledge in automatic memory files is transferable — copy the content into the new platform's equivalent mechanism, or promote it to CLAUDE.md as static instructions. ## References - `@$AIWG_ROOT/agentic/code/addons/auto-memory/seeds/` — Seed template files - `@$AIWG_ROOT/agentic/code/addons/ralph/schemas/debug-memory.yaml` — agent loop debug memory schema