.claude/skills/project-memory/SKILL.md
Set up and maintain a structured project memory system in docs/project_notes/ that tracks bugs with solutions, architectural decisions, key project facts, and work history. Use this skill when asked to "set up project memory", "track our decisions", "log a bug fix", "update project memory", or "initialize memory system". Configures both CLAUDE.md and AGENTS.md to maintain memory awareness across different AI coding tools.
npx skillsauth add sagerstack/agentic-sdlc project-memoryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Maintain institutional knowledge for projects by establishing a structured memory system in docs/project_notes/. This skill sets up four key memory files (bugs, decisions, key facts, issues) and configures CLAUDE.md and AGENTS.md to automatically reference and maintain them. The result is a project that remembers past decisions, solutions to problems, and important configuration details across coding sessions and across different AI tools.
Invoke this skill when:
When invoked for the first time in a project, create the following structure:
docs/
└── project_notes/
├── bugs.md # Bug log with solutions
├── decisions.md # Architectural Decision Records
├── key_facts.md # Project configuration and constants
└── issues.md # Work log with ticket references
Directory naming rationale: Using docs/project_notes/ instead of memory/ makes it look like standard engineering organization, not AI-specific tooling. This increases adoption and maintenance by human developers.
Initial file content: Copy templates from the references/ directory in this skill:
references/bugs_template.md for initial bugs.mdreferences/decisions_template.md for initial decisions.mdreferences/key_facts_template.md for initial key_facts.mdreferences/issues_template.md for initial issues.mdEach template includes format examples and usage tips.
Add or update the following section in the project's CLAUDE.md file:
## Project Memory System
This project maintains institutional knowledge in `docs/project_notes/` for consistency across sessions.
### Memory Files
- **bugs.md** - Bug log with dates, solutions, and prevention notes
- **decisions.md** - Architectural Decision Records (ADRs) with context and trade-offs
- **key_facts.md** - Project configuration, credentials, ports, important URLs
- **issues.md** - Work log with ticket IDs, descriptions, and URLs
### Memory-Aware Protocols
**Before proposing architectural changes:**
- Check `docs/project_notes/decisions.md` for existing decisions
- Verify the proposed approach doesn't conflict with past choices
- If it does conflict, acknowledge the existing decision and explain why a change is warranted
**When encountering errors or bugs:**
- Search `docs/project_notes/bugs.md` for similar issues
- Apply known solutions if found
- Document new bugs and solutions when resolved
**When looking up project configuration:**
- Check `docs/project_notes/key_facts.md` for credentials, ports, URLs, service accounts
- Prefer documented facts over assumptions
**When completing work on tickets:**
- Log completed work in `docs/project_notes/issues.md`
- Include ticket ID, date, brief description, and URL
**When user requests memory updates:**
- Update the appropriate memory file (bugs, decisions, key_facts, or issues)
- Follow the established format and style (bullet lists, dates, concise entries)
### Style Guidelines for Memory Files
- **Prefer bullet lists over tables** for simplicity and ease of editing
- **Keep entries concise** (1-3 lines for descriptions)
- **Always include dates** for temporal context
- **Include URLs** for tickets, documentation, monitoring dashboards
- **Manual cleanup** of old entries is expected (not automated)
If the project has an AGENTS.md file (used for agent workflows or multi-tool projects), add the same memory protocols. This ensures consistency whether using Claude Code, Cursor, GitHub Copilot, or other AI tools.
If AGENTS.md exists: Add the same "Project Memory System" section as above.
If AGENTS.md doesn't exist: Ask the user if they want to create it. Many projects use multiple AI tools and benefit from shared memory protocols.
When encountering problems or making decisions, proactively search memory files:
Search bugs.md:
# Look for similar errors
grep -i "connection refused" docs/project_notes/bugs.md
# Find bugs by date range
grep "2025-01" docs/project_notes/bugs.md
Search decisions.md:
# Check for decisions about a technology
grep -i "database" docs/project_notes/decisions.md
# Find all ADRs
grep "^### ADR-" docs/project_notes/decisions.md
Search key_facts.md:
# Find database connection info
grep -A 5 "Database" docs/project_notes/key_facts.md
# Look up service accounts
grep -i "service account" docs/project_notes/key_facts.md
Use Grep tool for more complex searches:
Grep(pattern="oauth", path="docs/project_notes/")Grep(pattern="bug", path="docs/project_notes/bugs.md", -A=3, -B=3)When the user requests updates or when documenting resolved issues, update the appropriate memory file:
Adding a bug entry:
### YYYY-MM-DD - Brief Bug Description
- **Issue**: What went wrong
- **Root Cause**: Why it happened
- **Solution**: How it was fixed
- **Prevention**: How to avoid it in the future
Adding a decision:
### ADR-XXX: Decision Title (YYYY-MM-DD)
**Context:**
- Why the decision was needed
- What problem it solves
**Decision:**
- What was chosen
**Alternatives Considered:**
- Option 1 -> Why rejected
- Option 2 -> Why rejected
**Consequences:**
- Benefits
- Trade-offs
Adding key facts:
references/key_facts_template.md for security guidelines on what NOT to storeAdding work log entry:
### YYYY-MM-DD - TICKET-ID: Brief Description
- **Status**: Completed / In Progress / Blocked
- **Description**: 1-2 line summary
- **URL**: https://jira.company.com/browse/TICKET-ID
- **Notes**: Any important context
Periodically clean old entries:
Conflict resolution:
This skill includes template files in references/ that demonstrate proper formatting:
When creating initial memory files, copy these templates to docs/project_notes/ and customize them for the project.
User: "I'm getting a 'connection refused' error from the database"
-> Search docs/project_notes/bugs.md for "connection"
-> Find previous solution: "Use AlloyDB Auth Proxy on port 5432"
-> Apply known fix
Internal: "User might benefit from using SQLAlchemy for migrations"
-> Check docs/project_notes/decisions.md
-> Find ADR-002: Already decided to use Alembic
-> Use Alembic instead, maintaining consistency
User: "Add that CORS fix to our bug log"
-> Read docs/project_notes/bugs.md
-> Add new entry with date, issue, solution, prevention
-> Confirm addition to user
Internal: "Need to connect to database"
-> Check docs/project_notes/key_facts.md
-> Find Database Configuration section
-> Use documented connection string and credentials
The project-memory skill complements other skills:
When using these skills together, consider updating memory files as a follow-up action.
This skill is successfully deployed when:
docs/project_notes/ directory exists with all four memory filesdevelopment
Interactive UAT verification skill. Walks the user through acceptance criteria one at a time, records pass/fail/skip results, generates UAT report, and routes remediation gaps to /sagerstack:builder. Solo skill (no agent team).
development
Python code architecture with Vertical Slice + DDD and Clean Architecture. Use when designing Python projects, structuring code, creating domain models, defining bounded contexts, or reviewing architecture. Enforces strict domain purity, CamelCase naming, and proper layer separation.
data-ai
SDLC planning skill that spawns a 4-member agent team to plan one epic at a time from project-context.md. Produces epics, user stories with FR/TR/AC, implementation plans, and critical analyses. Use when planning an epic for full SDLC execution with agent teams.
testing
Testing infrastructure, local environment simulation, and deployment scripts. Use when setting up pytest fixtures, Docker Compose, LocalStack, mocking external services, or creating local deployment scripts. Focuses on HOW to test and run locally, not coding principles (TDD is in software-engineering).