Claude Code Plugins

Community-maintained marketplace

Feedback
89
0

Comprehensive guide for initializing or reorganizing agent memory and project context. Use when setting up a new project, when the user asks you to learn about the codebase, or when you need to create effective memory blocks for project conventions, preferences, and workflows.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name initiate-memory
description Comprehensive guide for initializing or reorganizing agent memory and project context. Use when setting up a new project, when the user asks you to learn about the codebase, or when you need to create effective memory blocks for project conventions, preferences, and workflows.

Initializing Memory

The user has requested that you initialize or reorganize your memory state for this project. This skill helps you systematically explore and document a codebase to build effective working memory.

Understanding Your Context

Important: This skill is designed for stateful agents that work with users over extended periods. Your memory is not just a convenience; it's how you get better over time and maintain continuity across sessions.

This command may be run in different scenarios:

  • Fresh project: Starting work on a new codebase
  • Existing project: User wants you to reorganize or significantly update your understanding
  • Deep dive: User wants comprehensive analysis of the project

Before making changes, inspect your current context and understand what already exists.

What to Remember About a Project

1. Procedures (Rules & Workflows)

Explicit rules and workflows that should always be followed:

  • "Never commit directly to main - always use feature branches"
  • "Always run lint before running tests"
  • "Use conventional commits format for all commit messages"
  • "Always check for existing tests before adding new ones"

2. Preferences (Style & Conventions)

User and project coding style preferences:

  • "Never use try/catch for control flow"
  • "Always add JSDoc comments to exported functions"
  • "Prefer functional components over class components"
  • "Use early returns instead of nested conditionals"

3. History & Context

Important historical context that informs current decisions:

  • "We fixed this exact pagination bug two weeks ago - check PR #234"
  • "This monorepo used to have 3 modules before the consolidation"
  • "The auth system was refactored in v2.0 - old patterns are deprecated"

Memory Scope Considerations

Consider whether information is:

Project-scoped:

  • Build commands, test commands, lint configuration
  • Project architecture and key directories
  • Team conventions specific to this codebase
  • Technology stack and framework choices

User-scoped:

  • Personal coding preferences that apply across projects
  • Communication style preferences
  • General workflow habits

Session/Task-scoped:

  • Current branch or ticket being worked on
  • Debugging context for an ongoing investigation
  • Temporary notes about a specific task

Recommended Memory Structure

Core Information Categories

Project Overview: Your behavioral guidelines and project purpose

  • Technology stack and architecture
  • Key directories and their purposes
  • Build/test/lint commands

Conventions: Project-specific rules and patterns

  • Commit message format
  • Code style preferences
  • PR process and review guidelines

User Preferences: User-specific information

  • Communication style preferences
  • Cross-project preferences
  • Working style and habits

Optional Categories (Create as Needed)

Current Task: Scratchpad for current work item context

  • Ticket ID, branch name, PR number
  • Relevant links and context
  • Current focus area

Decisions: Architectural decisions and their rationale

  • Why certain approaches were chosen
  • Trade-offs that were considered

Research Depth

You can ask the user if they want a standard or deep research initialization:

Standard initialization (~5-20 tool calls):

  • Scan README, package.json/config files, AGENTS.md, CLAUDE.md
  • Review git status and recent commits
  • Explore key directories and understand project structure
  • Create/update your memory to contain the essential information

Deep research initialization (~100+ tool calls):

  • Everything in standard initialization, plus:
  • Use TodoWrite to create a systematic research plan
  • Deep dive into git history for patterns, conventions, and context
  • Analyze commit message conventions and branching strategy
  • Explore multiple directories and understand architecture thoroughly
  • Search for and read key source files to understand patterns

What deep research can uncover:

  • Contributors & team dynamics: Who works on what areas? Who are the main contributors?
  • Coding habits: When do people commit? What's the typical commit size?
  • Writing & commit style: How verbose are commit messages? What conventions are followed?
  • Code evolution: How has the architecture changed? What major refactors happened?
  • Pain points: What areas have lots of bug fixes? What code gets touched frequently?

Research Techniques

File-based research:

  • README.md, CONTRIBUTING.md, AGENTS.md, CLAUDE.md
  • Package manifests (package.json, Cargo.toml, pyproject.toml, go.mod)
  • Config files (.eslintrc, tsconfig.json, .prettierrc)
  • CI/CD configs (.github/workflows/, .gitlab-ci.yml)

Git-based research (if in a git repo):

  • git log --oneline -20 - Recent commit history and patterns
  • git branch -a - Branching strategy
  • git log --format="%s" -50 | head -20 - Commit message conventions
  • git shortlog -sn --all | head -10 - Main contributors
  • Recent PRs or merge commits for context on ongoing work

How to Do Thorough Research

Don't just collect data - analyze and cross-reference it.

Shallow research (bad):

  • Run commands, copy output
  • Take everything at face value
  • List facts without understanding

Thorough research (good):

  • Cross-reference findings: If two pieces of data seem inconsistent, dig deeper
  • Resolve ambiguities: Don't leave questions unanswered
  • Read actual content: Don't just list file names - read key files to understand them
  • Look for patterns: What do the commit messages tell you about workflow?
  • Form hypotheses and verify: "I think this team uses feature branches" → check git branch patterns
  • Think like a new team member: What would you want to know on your first day?

Questions to ask yourself during research:

  • Does this make sense?
  • What's missing?
  • What can I infer?
  • Am I just listing facts, or do I understand the project?

The goal isn't to produce a report - it's to genuinely understand the project and how to be an effective collaborator.

Recommended Questions to Ask

Bundle these questions together when starting:

  1. Research depth: "Standard or deep research (comprehensive, as long as needed)?"
  2. Identity: "Which contributor are you?" (You can often infer from git logs)
  3. Related repos: "Are there other repositories I should know about?"
  4. Communication style: "Terse or detailed responses?"
  5. Any specific rules: "Rules I should always follow?"

What NOT to ask:

  • Things you can find by reading files ("What's your test framework?")
  • Permission for obvious actions - just do them
  • Questions one at a time - bundle them

Your Task

  1. Ask upfront questions: Bundle the recommended questions above
  2. Inspect existing context: See what already exists in AGENTS.md, README, etc.
  3. Identify the user: From git logs and their answers
  4. Research the project: Explore based on chosen depth. Use TodoWrite for a systematic plan.
  5. Document findings: Create notes or update project documentation
  6. Reflect and review: Check for completeness and quality
  7. Ask user if done: Check if they're satisfied or want you to continue

Reflection Phase

Before finishing, do a reflection step:

  1. Completeness check: Did you gather all relevant information?
  2. Quality check: Are there gaps or unclear areas?
  3. Structure check: Would this information make sense to your future self?

After reflection, summarize what you learned:

"I've completed the initialization. Here's a brief summary of what I set up: [summary]. Should I continue refining, or is this good to proceed?"

Remember: Good memory management is an investment. The effort you put into organizing your knowledge now will pay dividends as you work with this user over time.