Skills / project memory
project memory
This is a claude skill for tracking project state.
Installation
Kompatibilitaet
Beschreibung
Project Memory Skill
A Claude Code skill that establishes a structured institutional knowledge system for your projects. Track bugs with solutions, architectural decisions (ADRs), key project facts, and work history in a consistent, maintainable format.
Quick Start
# Install via skilz (recommended)
skilz install SpillwaveSolutions_project-memory/project-memory
# Then use in any project
cd your-project
# In Claude Code, type: /project-memory
What This Skill Does
When invoked in a project, this skill:
-
Creates a memory infrastructure in
docs/project_notes/with four files:bugs.md- Bug log with solutions and prevention notesdecisions.md- Architectural Decision Records (ADRs)key_facts.md- Project configuration, credentials, ports, URLsissues.md- Work log with ticket IDs and descriptions
-
Configures CLAUDE.md and AGENTS.md to make Claude Code (and other AI tools) memory-aware:
- Check memory files before proposing changes
- Search for known solutions to familiar bugs
- Document new decisions, bugs, and completed work
- Maintain consistency across coding sessions
-
Provides templates and examples for maintaining institutional knowledge in a way that looks like standard engineering documentation (not AI artifacts).
Installation
There are four installation options depending on your needs.
Option 1: Skilz Universal Installer (Recommended)
The recommended way to install this skill across different AI coding agents is using the skilz universal installer. This skill supports the Agent Skill Standard, which means it works with 14+ coding agents including Claude Code, OpenAI Codex, Cursor, and Gemini.
Install Skilz
pip install skilz
Git URL Options
You can use either -g or --git with HTTPS or SSH URLs:
# HTTPS URL
skilz install -g https://github.com/SpillwaveSolutions/project-memory
# SSH URL
skilz install --git [email protected]:SpillwaveSolutions/project-memory.git
Claude Code
Install to user home (available in all projects):
skilz install -g https://github.com/SpillwaveSolutions/project-memory
Install to current project only:
skilz install -g https://github.com/SpillwaveSolutions/project-memory --project
OpenCode
Install for OpenCode:
skilz install -g https://github.com/SpillwaveSolutions/project-memory --agent opencode
Project-level install:
skilz install -g https://github.com/SpillwaveSolutions/project-memory --project --agent opencode
Gemini
Project-level install for Gemini:
skilz install -g https://github.com/SpillwaveSolutions/project-memory --agent gemini
OpenAI Codex
Install for OpenAI Codex:
skilz install -g https://github.com/SpillwaveSolutions/project-memory --agent codex
Project-level install:
skilz install -g https://github.com/SpillwaveSolutions/project-memory --project --agent codex
Install from SkillzWave Marketplace
# Claude to user home dir ~/.claude/skills
skilz install SpillwaveSolutions_project-memory/project-memory
# Claude skill in project folder ./claude/skills
skilz install SpillwaveSolutions_project-memory/project-memory --project
# OpenCode install to user home dir ~/.config/opencode/skills
skilz install SpillwaveSolutions_project-memory/project-memory --agent opencode
# OpenCode project level
skilz install SpillwaveSolutions_project-memory/project-memory --agent opencode --project
# OpenAI Codex install to user home dir ~/.codex/skills
skilz install SpillwaveSolutions_project-memory/project-memory --agent codex
# OpenAI Codex project level ./.codex/skills
skilz install SpillwaveSolutions_project-memory/project-memory --agent codex --project
# Gemini CLI (project level) -- only works with project level
skilz install SpillwaveSolutions_project-memory/project-memory --agent gemini
See skill Listing for installation details for 14+ different coding agents.
Other Supported Agents
Skilz supports 14+ coding agents including Windsurf, Qwen Code, Aidr, and more. For the full list of supported platforms, visit:
SkillzWave - Largest Agentic Marketplace for AI Agent Skills | SpillWave - Leaders in AI Agent Development
Option 2: Global Installation (Manual)
Install once in your Claude Code home directory to make the skill available across all projects:
# Create the skills directory if it doesn't exist
mkdir -p ~/.claude/skills
# Clone or copy the skill to your skills directory
cp -r project-memory ~/.claude/skills/
# Verify installation
ls ~/.claude/skills/project-memory
When to use: You want this skill available for all your projects without reinstalling.
Option 3: Project-Specific Installation (Manual)
Install in a specific project's .claude/skills/ directory:
# Navigate to your project
cd /path/to/your/project
# Create local skills directory
mkdir -p .claude/skills
# Clone or copy the skill
cp -r /path/to/project-memory .claude/skills/
# Verify installation
ls .claude/skills/project-memory
When to use: You only want this skill available for a specific project.
Option 4: Multi-Project Installation (Workspace)
Install above a workspace directory to share across multiple related projects:
# Navigate to your workspace directory (parent of multiple projects)
cd ~/workspace
# Create shared skills directory
mkdir -p .claude/skills
# Clone or copy the skill
cp -r /path/to/project-memory .claude/skills/
# Verify installation
ls .claude/skills/project-memory
When to use: You have multiple projects in a workspace and want to share the skill without global installation.
Example structure:
~/workspace/
├── .claude/
│ └── skills/
│ └── project-memory/ # Shared across all projects below
├── project-a/
├── project-b/
└── project-c/
How to Use
First-Time Setup in a Project
- Navigate to your project directory
- Invoke the skill in Claude Code:
/project-memory - The skill will:
- Create
docs/project_notes/directory - Initialize the four memory files with templates
- Update (or create)
CLAUDE.mdwith memory protocols - Optionally update
AGENTS.mdif it exists
- Create
Daily Usage
Once set up, Claude Code will automatically:
- Check memory files before proposing architectural changes
- Search bugs.md when you encounter errors
- Reference key_facts.md for project configuration
You can also explicitly request updates:
Add this CORS fix to our bug log
Document the decision to use FastAPI in decisions.md
Update key_facts.md with the new database connection string
Log this completed ticket in issues.md
File Structure After Setup
your-project/
├── docs/
│ └── project_notes/
│ ├── bugs.md # Bug log with solutions
│ ├── decisions.md # Architectural Decision Records
│ ├── key_facts.md # Project configuration
│ └── issues.md # Work log
├── CLAUDE.md # Updated with memory protocols
└── AGENTS.md # Updated with memory protocols (if exists)
Memory File Formats
bugs.md - Bug Log
### 2025-01-15 - Docker Architecture Mismatch
- **Issue**: Container failing to start with "exec format error"
- **Root Cause**: Built on ARM64 Mac but deploying to AMD64 Cloud Run
- **Solution**: Added `--platform linux/amd64` to docker build
- **Prevention**: Always specify platform in Dockerfile
decisions.md - Architectural Decisions
### ADR-001: Use Workload Identity Federation (2025-01-10)
**Context:**
- Need secure authentication from GitHub Actions to GCP
**Decision:**
- Use Workload Identity Federation instead of service account keys
**Alternatives Considered:**
- Service account JSON keys → Rejected: security risk
**Consequences:**
- ✅ More secure (no long-lived credentials)
- ❌ Slightly more complex initial setup
key_facts.md - Project Configuration
⚠️ SECURITY WARNING: Never store passwords, API keys, or credentials in key_facts.md. Only store non-sensitive reference information like hostnames, ports, client names, project IDs, and account names. Store secrets in .env (excluded via .gitignore), password managers, or secrets management systems.
### Database Configuration
**AlloyDB Cluster:**
- Cluster Name: `prod-cluster`
- Private IP: `10.0.0.5`
- Port: `5432`
- Database Name: `contacts`
**Connection:**
- Use AlloyDB Auth Proxy for local development
- Proxy command: `./alloydb-auth-proxy "projects/..."`
- Credentials: Stored in `.env` file (not in git)
issues.md - Work Log
### 2025-01-15 - PROJ-123: Implement Contact API
- **Status**: Completed
- **Description**: Created FastAPI endpoints for contact CRUD
- **URL**: https://jira.company.com/browse/PROJ-123
- **Notes**: Added unit tests, coverage at 85%
Verification
After installation, verify the skill is available:
- Open Claude Code in any project
- Type
/to see available skills - You should see
project-memoryin the list
Or check manually:
# For global installation
ls ~/.claude/skills/project-memory/SKILL.md
# For project-specific installation
ls .claude/skills/project-memory/SKILL.md
# For workspace installation
ls ../.claude/skills/project-memory/SKILL.md # From inside a project
Security Best Practices
⚠️ Critical: Never Store Secrets in Version Control
The key_facts.md file is designed to store non-sensitive project reference information only. This file is typically committed to version control and should NEVER contain:
❌ NEVER store in key_facts.md or any git-tracked file:
- Passwords or passphrases
- API keys or authentication tokens
- Service account JSON keys or credentials
- Database passwords
- OAuth client secrets
- Private keys or certificates
- Session tokens
- Any secret values from environment variables
✅ SAFE to store in key_facts.md:
- Database hostnames, ports, and cluster names
- Client names and project identifiers
- JIRA project keys and Confluence space names
- AWS account names and profile names (e.g., "dev", "staging", "prod")
- API endpoint URLs (public URLs only)
- Service account email addresses (not the keys!)
- GCP project IDs and region names
- Docker registry names
- Environment names and deployment targets
✅ WHERE to store sensitive credentials:
.envfiles - Excluded via.gitignore, used for local development- Password managers - 1Password, LastPass, Bitwarden, etc.
- Secrets managers - AWS Secrets Manager, GCP Secret Manager, HashiCorp Vault, Azure Key Vault
- CI/CD environment variables - GitHub Secrets, GitLab CI/CD Variables, etc.
- Platform credential stores - Kubernetes Secrets, Cloud Run Secret Manager integration
✅ VERIFICATION steps before committing:
- Run
git statusto see what will be committed - Verify
.env,credentials.json, and other sensitive files are in.gitignore - Never use
git add .blindly - review each file being staged - Use
git diff --cachedto review staged changes before committing - Consider using tools like
git-secretsorgitleaksto prevent credential leaks
Important: Even in private repositories, never commit clear-text passwords or authentication keys. Private repos can become public, be forked, or accessed by unauthorized users.
Features
Memory-Aware Protocols
Once set up, Claude Code will:
- ✅ Check
decisions.mdbefore proposing architectural changes - ✅ Search
bugs.mdfor known solutions to errors - ✅ Reference
key_facts.mdfor project configuration - ✅ Log completed work in
issues.md - ✅ Document new bugs, decisions, and facts as they arise
Style Guidelines
All memory files follow these principles:
- Bullet lists over tables (simpler to edit)
- Concise entries (1-3 lines for descriptions)
- Always dated (YYYY-MM-DD format)
- Include URLs (for tickets, docs, monitoring)
- Manual cleanup (periodically remove old entries)
Cross-Tool Compatibility
The memory system works across different AI coding tools:
- Claude Code (via CLAUDE.md)
- Cursor (via .cursor/rules or CLAUDE.md)
- GitHub Copilot (via AGENTS.md or .github/copilot-instructions.md)
- Other tools that read project configuration files
Why Use This Skill?
Without project memory:
- Repeat the same bugs/solutions across sessions
- Propose architectures that conflict with past decisions
- Ask the user repeatedly for database credentials, API keys, ports
- Lose context when switching between projects or AI tools
With project memory:
- Remember and apply known bug solutions instantly
- Maintain architectural consistency across sessions
- Reference documented facts instead of assumptions
- Preserve institutional knowledge across team members and tools
Real-World Impact: Pattern Recognition in Action
Example 1: Bug Resolution - Infrastructure State Drift
The Scenario:
- Oct 20 - Claude Code encounters Pulumi state drift error during deployment
- Investigation - 45 minutes debugging, trying various solutions
- Solution Found -
pulumi refresh --yesresolves the state inconsistency - Documentation - Logged as BUG-017 and BUG-018 in bugs.md, decision documented in ADR-016
- Oct 22 - Same state drift error occurs during a new deployment
Without Project Memory:
- Claude Code debugs from scratch (again)
- 30-60 minutes of investigation
- Risk of trying wrong solutions first
- Possible production delay
- User frustration: "Didn't we solve this already?"
With Project Memory:
Claude Code: Searching bugs.md for "state drift"...
Found: BUG-018 - Pulumi State Drift Error
Known solution: pulumi refresh --yes
Applying fix... Done in 2 minutes.
Reference: See ADR-016 for why this works.
Result:
- ✅ Instant recognition: "This is BUG-018"
- ✅ Known solution applied immediately
- ✅ 5 minutes instead of 45 minutes
- ✅ References explain why this works (ADR-016)
Knowledge Compound Interest: Every bug solved and documented makes future work exponentially faster.
Example 2: Architectural Consistency - Avoiding Duplicate Dependencies
The Scenario:
- Week 1 - Team evaluates charting libraries for scatter plots
- Decision - Selected D3.js for all visualizations (lightweight, flexible, already in dependencies)
- Documentation - Logged as ADR-012 in decisions.md with rationale
- Week 4 - New feature requires a bar chart visualization
Without Project Memory:
User: "Add a bar chart to the dashboard"
Claude Code: "I'll add Chart.js for the bar chart visualization."
[Adds Chart.js to package.json - now we have D3.js AND Chart.js]
Result: Bundle size +85KB, inconsistent chart styling, duplicate dependencies
With Project Memory:
User: "Add a bar chart to the dashboard"
Claude Code: Checking decisions.md for visualization decisions...
Found: ADR-012 - Use D3.js for all charts
Claude Code: "I'll implement the bar chart using D3.js to maintain consistency with ADR-012."
[Uses existing D3.js dependency]
Result: No new dependencies, consistent styling, smaller bundle
Result:
- ✅ Maintains architectural consistency
- ✅ Avoids dependency bloat
- ✅ Ensures consistent user experience
- ✅ Faster development (reuse existing patterns)
Key Insight: Remembering past decisions prevents architectural drift and keeps the codebase cohesive.
Example 3: The "Didn't We Fix This?" Problem
The Reality of Long-Running Projects:
Many developers (and AI code assistants) encounter the same bugs months apart and completely forget the solution:
Month 1:
Error: CORS policy blocked request from localhost:3000
[2 hours of debugging]
Solution: Add proxy configuration to package.json
Month 6:
Error: CORS policy blocked request from localhost:3000
Developer: "This looks familiar... how did we fix this?"
[Searches old commits, checks Stack Overflow again]
[1 hour to re-discover the proxy config solution]
With Project Memory:
Error: CORS policy blocked request from localhost:3000
Claude Code: Searching bugs.md for "CORS"...
Found: BUG-003 - CORS Blocked in Local Development
Solution: proxy config in package.json
Applied in 5 minutes.
The Code Agent Memory Problem:
AI code assistants don't remember previous sessions. Without documentation:
- Each new chat session starts from zero knowledge
- Every bug feels like the first time
- Solutions are "rediscovered" repeatedly
- No learning accumulates over time
With project memory, the code agent becomes progressively smarter:
- First encounter: 2 hours to solve → documented in bugs.md
- Second encounter: 5 minutes (reads bugs.md)
- Third encounter: 2 minutes (pattern now familiar)
- Fourth encounter: Preventative advice (suggests avoiding the issue)
This is knowledge compound interest - your project gets easier to maintain over time, not harder.
Skill File Structure
project-memory/
├── SKILL.md # Main skill instructions for Claude
├── CLAUDE.md # This repository's Claude guidance
├── README.md # This file
└── references/ # Templates for memory files
├── bugs_template.md
├── decisions_template.md
├── key_facts_template.md
└── issues_template.md
Design Philosophy
-
Looks like standard engineering docs - Using
docs/project_notes/instead ofmemory/makes it appear as normal engineering organization, not AI-specific tooling. -
Prefer simplicity - Bullet lists over tables, concise over exhaustive, manual cleanup over automation.
-
Document what matters - Focus on recurring bugs, important decisions, and frequently-needed facts.
-
Enable collaboration - Works across AI tools, readable by humans, version-controllable with git.
Examples
Setting Up Memory in a New Project
cd ~/projects/my-new-app
claude code
In Claude Code:
/project-memory
Claude will create the memory infrastructure and configure CLAUDE.md.
Documenting a Bug Fix
I just fixed a bug where the database connection pool was exhausted.
Add it to bugs.md with the solution.
Checking for Existing Decisions
I'm thinking about using SQLAlchemy for migrations.
Check if we already have a decision about this.
Claude will search decisions.md and apply existing choices.
Updating Project Facts
Update key_facts.md with the new staging environment URL:
https://staging-api.company.com
Maintenance
Memory files are manually maintained:
- bugs.md - Remove very old entries (6+ months) that are no longer relevant
- decisions.md - Keep all decisions (they're lightweight and provide historical context)
- key_facts.md - Update when project configuration changes
- issues.md - Archive completed work (3+ months old)
Integration with Other Skills
This skill complements other Claude Code skills:
- requirements-documenter - Requirements inform ADRs in decisions.md
- root-cause-debugger - Bug diagnosis results documented in bugs.md
- code-quality-reviewer - Quality standards documented in decisions.md
- docs-sync-editor - Code changes trigger updates to key_facts.md
Troubleshooting
Skill not appearing in Claude Code
Check installation location:
# Global installation
ls ~/.claude/skills/project-memory/SKILL.md
# Project-specific installation
ls .claude/skills/project-memory/SKILL.md
Ensure SKILL.md exists:
The skill must have a SKILL.md file with proper frontmatter:
---
name: project-memory
description: Set up and maintain a structured project memory system...
---
Memory files not being created
Verify you're in a project directory:
The skill creates files in the current working directory's docs/project_notes/ folder.
Check permissions: Ensure you have write permissions in the project directory.
Claude not checking memory files
Verify CLAUDE.md was updated:
grep "Project Memory System" CLAUDE.md
The "Project Memory System" section should be present with complete protocols.
Contributing
To improve this skill:
- Update templates in
references/directory - Enhance
SKILL.mdwith new capabilities - Update
CLAUDE.mdwith workflow changes - Test in a sample project
License
This skill is part of the Claude Code skills ecosystem and follows standard usage guidelines for Claude Code extensions.
Support
For issues or questions:
- Check the troubleshooting section above
- Review
SKILL.mdfor detailed skill instructions - Review
CLAUDE.mdfor repository-specific guidance - Consult Claude Code documentation at https://docs.claude.com/en/docs/claude-code
Aehnliche Skills
last30days skill
AI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary
context mode
Context window optimization for AI coding agents. Sandboxes tool output, 98% reduction. 12 platforms
claude seo
Universal SEO skill for Claude Code. 19 sub-skills, 12 subagents, 3 extensions (DataForSEO, Firecrawl, Banana). Technical SEO, E-E-A-T, schema, GEO/AEO, backlinks, local SEO, maps intelligence, Google APIs, and PDF/Excel reporting.
pinme
Deploy Your Frontend in a Single Command. Claude Code Skills supported.
claude ads
Comprehensive paid advertising audit & optimization skill for Claude Code. 250+ checks across Google, Meta, YouTube, LinkedIn, TikTok, Microsoft & Apple Ads with weighted scoring, parallel agents, industry templates, and AI creative generation.
claude code
Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.