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

319 lines (222 loc) 10.4 kB
# Automatic Memory Addon Seed templates for Claude Code's Automatic Memory feature, providing AIWG-aware starting points for new projects. ## What is Automatic Memory? **Automatic Memory** is a Claude Code v2.1.32+ feature that maintains persistent, evolving knowledge about your project: - **Location**: `~/.claude/projects/<project>/memory/` - **Format**: Markdown files organized by topic - **Purpose**: Learn and remember project-specific patterns, conventions, and decisions - **Persistence**: Survives across sessions, continuously refined ### Memory vs Other Context Mechanisms | Mechanism | Purpose | Scope | Updates | |-----------|---------|-------|---------| | **Automatic Memory** | Long-term project knowledge | Project-wide | Continuous, automatic | | **CLAUDE.md** | Static project instructions | Repository-wide | Manual, versioned in git | | **Agent Definitions** | Specialized AI personas | Task-specific | Manual, framework-managed | | **Agent Loop Debug Memory** | Iteration debugging history | Task-specific loop | Per-loop, ephemeral | **When to use which**: - **Automatic Memory**: Patterns learned during development (test conventions, debugging strategies, architecture decisions) - **CLAUDE.md**: Static project setup, team conventions, onboarding instructions - **Agent Definitions**: Specialized workflows (requirements analysis, code review, security audits) - **Agent Loop Debug Memory**: Temporary iteration state for debugging specific task loops ## AIWG Memory Seeds This addon provides seed templates that bootstrap automatic memory with AIWG-aware content: ### MEMORY.md Central memory file with: - AIWG framework concepts (phases, commands, artifact structure) - Links to topic-specific memory files - Project-specific conventions (auto-populated during development) ### testing.md Testing knowledge including: - Test framework detection and configuration - Common patterns (test-first development, coverage expectations) - Known gotchas (async issues, flaky tests) - Debug strategies for failed tests ### debugging.md Debugging patterns including: - Common issues and resolutions - Systematic debugging process - Stack-specific error patterns - Performance debugging strategies ### architecture.md Architectural decisions including: - Key design choices and rationale - Patterns used in the codebase - Technology stack and justifications - Cross-cutting concerns (security, performance, scalability) ## Installation and Usage ### Automatic (via `aiwg new`) When scaffolding a new project with `aiwg new my-project`, memory seeds are automatically copied to `~/.claude/projects/my-project/memory/` (if Claude Code v2.1.32+ detected). ### Manual Copy seed files to your project's memory directory: ```bash # For current project cp agentic/code/addons/auto-memory/seeds/*.md ~/.claude/projects/$(basename $(pwd))/memory/ # For specific project cp agentic/code/addons/auto-memory/seeds/*.md ~/.claude/projects/my-project/memory/ ``` ### Verification Check that memory files exist: ```bash ls -la ~/.claude/projects/$(basename $(pwd))/memory/ ``` Expected output: ``` MEMORY.md testing.md debugging.md architecture.md ``` ## Memory Evolution Memory files are **seed templates** — they provide structure and AIWG-specific guidance, then evolve as Claude Code learns project-specific patterns. ### Initial State (Seed) ```markdown ## Common Patterns <!-- Learned during development --> ``` ### After Learning ```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) ``` ## Memory Maintenance ### Pruning As memory grows, prune obsolete sections: - **Outdated patterns**: Remove if no longer applicable - **One-time issues**: Move to debugging.md after resolution - **Superseded decisions**: Mark as "SUPERSEDED" with reference to newer decision ### Organization Keep memory organized: - **Topic files**: Use provided topic files (testing, debugging, architecture) - **Custom topics**: Add new topic files as needed (e.g., `deployment.md`, `security.md`) - **Cross-references**: Link between memory files using relative paths ### Quality Maintain high-quality memory: - **Specific over general**: "Use factory pattern for test data (see test/factories/)" vs "Use factories" - **Actionable**: Include enough detail to reproduce patterns - **Accurate**: Update when patterns change - **Concise**: Remove redundancy, keep signal high ## Overlap Analysis ### Automatic Memory vs Agent Loop Debug Memory Both maintain debugging history, but serve different purposes: | Aspect | Automatic Memory | Agent Loop Debug Memory | |--------|------------------|-------------------| | **Scope** | Project-wide patterns | Single loop execution | | **Lifetime** | Permanent (pruned manually) | Per-loop (ephemeral) | | **Content** | Recurring patterns | Specific iteration state | | **Location** | `~/.claude/projects/<project>/memory/` | `.aiwg/ralph/debug-memory/` | | **Use Case** | "We always have async test issues" | "Iteration 3 failed with timeout error" | **Interaction**: - agent loop debug memory captures loop-specific state - After resolving recurring issues, patterns migrate to automatic memory - Example: "Timeout errors in API tests" appears in Al memory 3 times → Added to `debugging.md` as "Common pattern: increase timeout for external API calls" ### Memory vs CLAUDE.md | Aspect | Automatic Memory | CLAUDE.md | |--------|------------------|-----------| | **Versioning** | Not in git (local to Claude Code) | Versioned in git | | **Updates** | Automatic (by Claude Code) | Manual (by developers) | | **Content** | Learned patterns | Static instructions | | **Scope** | Project-specific | Team-wide | **Best practice**: CLAUDE.md contains stable team conventions, automatic memory contains evolving learned patterns. ## Cross-Platform Considerations **Claude Code-Specific**: This addon is designed for Claude Code v2.1.32+ and its automatic memory feature. **Other Platforms**: - **GitHub Copilot**: Does not have automatic memory (uses workspace context) - **Cursor**: Has project-level memory but different persistence mechanism - **Warp Terminal**: No equivalent feature - **OpenCode**: Custom memory implementation **Transferability**: The **concepts** (learned patterns, debugging strategies, architecture decisions) are transferable across platforms. The **implementation** (file locations, automatic updates) is platform-specific. **Migration**: If switching platforms: 1. Export knowledge from automatic memory files 2. Convert to platform-specific format (e.g., `.cursor/rules/` for Cursor) 3. Or incorporate into CLAUDE.md as static instructions ## Integration with `aiwg new` The `aiwg new` command integrates memory seeding: ```bash aiwg new my-project ``` **Detection**: 1. Check if Claude Code v2.1.32+ is installed 2. If yes, detect project name from command argument 3. Create memory directory: `~/.claude/projects/my-project/memory/` 4. Copy seed templates to memory directory 5. Log success message: "✓ Seeded automatic memory for my-project" **Fallback**: If Claude Code not detected or version < 2.1.32: - Skip memory seeding - Log informational message: "ℹ Automatic memory requires Claude Code v2.1.32+" ## Example Workflow ### Day 1: Project Setup ```bash $ aiwg new my-api Creating new AIWG project: my-api ✓ Scaffolded .aiwg/ structure ✓ Seeded automatic memory ✓ Created CLAUDE.md $ cd my-api $ cat ~/.claude/projects/my-api/memory/MEMORY.md # Shows AIWG framework concepts, empty project conventions ``` ### Day 5: After First Sprint ```bash $ cat ~/.claude/projects/my-api/memory/testing.md ## Test Framework **Framework**: jest **Version**: 29.7.0 ## Common Patterns ### Test-First Development - Learned from UC-001, UC-002 implementations - Pattern: Write test → Implement → Refactor ### Coverage Expectations **Minimum Coverage**: 80% for new code - Learned from .aiwg/testing/test-strategy.md ## Known Gotchas ### Async Test Issues **Pattern**: Always return promises or use async/await - Learned from debugging test failures in auth module ``` ### Day 30: After Multiple Sprints Memory has evolved with: - Specific test patterns used in the codebase - Recurring debugging issues and resolutions - Architectural decisions made and rationale - Project-specific conventions established ## FAQ ### Q: Should memory files be committed to git? **A**: No. Automatic memory is stored in `~/.claude/projects/<project>/memory/`, which is outside the repository. It's personal to each developer's Claude Code instance. ### Q: How do I share learned patterns with the team? **A**: Promote stable patterns from automatic memory to: 1. **CLAUDE.md** for static team conventions 2. **ADRs** for architectural decisions 3. **Documentation** for process/patterns ### Q: What if I work on multiple machines? **A**: Automatic memory is per-machine. Options: 1. Sync `~/.claude/projects/` directory (e.g., via Dropbox) 2. Manually export/import memory files 3. Promote important patterns to versioned documentation ### Q: Can I disable memory seeding? **A**: Yes, use `aiwg new my-project --no-memory` (if implemented) or manually delete the memory directory after project creation. ### Q: How often should I prune memory? **A**: Prune when: - Memory files become too large (>500 lines) - Patterns are no longer applicable - After major architectural changes **Frequency**: Monthly or quarterly review recommended. ## References - **Claude Code Automatic Memory**: [Documentation](https://docs.anthropic.com/claude/docs/automatic-memory) (Claude Code v2.1.32+) - **AIWG CLAUDE.md**: `@CLAUDE.md` - Static project instructions - **Agent Loop Debug Memory**: `@$AIWG_ROOT/agentic/code/addons/ralph/schemas/debug-memory.yaml` - Loop-specific debugging state - **AIWG Scaffolding**: `@$AIWG_ROOT/tools/scaffold/` - Project scaffolding implementation ## Version History - **1.0.0** (2026-02-06): Initial release with four seed templates (MEMORY, testing, debugging, architecture) --- **Addon Type**: Enhancement **Platform**: Claude Code v2.1.32+ **Maintenance**: Seed templates are versioned; evolved memory is local and unversioned