compact

Memory Compact Command (/memory:compact)

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "compact" with this command: npx skills add catlog22/claude-code-workflow/catlog22-claude-code-workflow-compact

Memory Compact Command (/memory:compact)

  1. Overview

The memory:compact command compresses current session working memory into structured text optimized for session recovery, extracts critical information, and saves it to persistent storage via MCP core_memory tool.

Core Philosophy:

  • Session Recovery First: Capture everything needed to resume work seamlessly

  • Minimize Re-exploration: Include file paths, decisions, and state to avoid redundant analysis

  • Preserve Train of Thought: Keep notes and hypotheses for complex debugging

  • Actionable State: Record last action result and known issues

  1. Parameters
  • --description : Custom session description (optional)

  • Example: "completed core-memory module"

  • Example: "debugging JWT refresh - suspected memory leak"

  • --tags : Comma-separated tags for categorization (optional)

  • --force : Skip confirmation, save directly

  1. Structured Output Format

Session ID

[WFS-ID if workflow session active, otherwise (none)]

Project Root

[Absolute path to project root, e.g., D:\Claude_dms3]

Objective

[High-level goal - the "North Star" of this session]

Execution Plan

[CRITICAL: Embed the LATEST plan in its COMPLETE and DETAILED form]

Source: [workflow | todo | user-stated | inferred]

<details> <summary>Full Execution Plan (Click to expand)</summary>

[PRESERVE COMPLETE PLAN VERBATIM - DO NOT SUMMARIZE]

  • ALL phases, tasks, subtasks
  • ALL file paths (absolute)
  • ALL dependencies and prerequisites
  • ALL acceptance criteria
  • ALL status markers ([x] done, [ ] pending)
  • ALL notes and context

Example:

Phase 1: Setup

  • Initialize project structure
    • Created D:\Claude_dms3\src\core\index.ts
    • Added dependencies: lodash, zod
  • Configure TypeScript
    • Update tsconfig.json for strict mode

Phase 2: Implementation

  • Implement core API
    • Target: D:\Claude_dms3\src\api\handler.ts
    • Dependencies: Phase 1 complete
    • Acceptance: All tests pass

</details>

Working Files (Modified)

[Absolute paths to actively modified files]

  • D:\Claude_dms3\src\file1.ts (role: main implementation)
  • D:\Claude_dms3\tests\file1.test.ts (role: unit tests)

Reference Files (Read-Only)

[Absolute paths to context files - NOT modified but essential for understanding]

  • D:\Claude_dms3.claude\CLAUDE.md (role: project instructions)
  • D:\Claude_dms3\src\types\index.ts (role: type definitions)
  • D:\Claude_dms3\package.json (role: dependencies)

Last Action

[Last significant action and its result/status]

Decisions

Constraints

  • [User-specified limitation or preference]

Dependencies

  • [Added/changed packages or environment requirements]

Known Issues

  • [Deferred bug or edge case]

Changes Made

  • [Completed modification]

Pending

  • [Next step] or (none)

Notes

[Unstructured thoughts, hypotheses, debugging trails]

  1. Field Definitions

Field Purpose Recovery Value

Session ID Workflow session identifier (WFS-*) Links memory to specific stateful task execution

Project Root Absolute path to project directory Enables correct path resolution in new sessions

Objective Ultimate goal of the session Prevents losing track of broader feature

Execution Plan Complete plan from any source (verbatim) Preserves full planning context, avoids re-planning

Working Files Actively modified files (absolute paths) Immediately identifies where work was happening

Reference Files Read-only context files (absolute paths) Eliminates re-exploration for critical context

Last Action Final tool output/status Immediate state awareness (success/failure)

Decisions Architectural choices + reasoning Prevents re-litigating settled decisions

Constraints User-imposed limitations Maintains personalized coding style

Dependencies Package/environment changes Prevents missing dependency errors

Known Issues Deferred bugs/edge cases Ensures issues aren't forgotten

Changes Made Completed modifications Clear record of what was done

Pending Next steps Immediate action items

Notes Hypotheses, debugging trails Preserves "train of thought"

  1. Execution Flow

Step 1: Analyze Current Session

Extract the following from conversation history:

const sessionAnalysis = { sessionId: "", // WFS-* if workflow session active, null otherwise projectRoot: "", // Absolute path: D:\Claude_dms3 objective: "", // High-level goal (1-2 sentences) executionPlan: { source: "workflow" | "todo" | "user-stated" | "inferred", content: "" // Full plan content - ALWAYS preserve COMPLETE and DETAILED form }, workingFiles: [], // {absolutePath, role} - modified files referenceFiles: [], // {absolutePath, role} - read-only context files lastAction: "", // Last significant action + result decisions: [], // {decision, reasoning} constraints: [], // User-specified limitations dependencies: [], // Added/changed packages knownIssues: [], // Deferred bugs changesMade: [], // Completed modifications pending: [], // Next steps notes: "" // Unstructured thoughts }

Step 2: Generate Structured Text

// Helper: Generate execution plan section const generateExecutionPlan = (plan) => { const sourceLabels = { 'workflow': 'workflow (IMPL_PLAN.md)', 'todo': 'todo (TodoWrite)', 'user-stated': 'user-stated', 'inferred': 'inferred' };

// CRITICAL: Preserve complete plan content verbatim - DO NOT summarize return `### Source: ${sourceLabels[plan.source] || plan.source}

<details> <summary>Full Execution Plan (Click to expand)</summary>

${plan.content}

</details>`; };

const structuredText = `## Session ID ${sessionAnalysis.sessionId || '(none)'}

Project Root

${sessionAnalysis.projectRoot}

Objective

${sessionAnalysis.objective}

Execution Plan

${generateExecutionPlan(sessionAnalysis.executionPlan)}

Working Files (Modified)

${sessionAnalysis.workingFiles.map(f => - ${f.absolutePath} (role: ${f.role})).join('\n') || '(none)'}

Reference Files (Read-Only)

${sessionAnalysis.referenceFiles.map(f => - ${f.absolutePath} (role: ${f.role})).join('\n') || '(none)'}

Last Action

${sessionAnalysis.lastAction}

Decisions

${sessionAnalysis.decisions.map(d => - ${d.decision}: ${d.reasoning}).join('\n') || '(none)'}

Constraints

${sessionAnalysis.constraints.map(c => - ${c}).join('\n') || '(none)'}

Dependencies

${sessionAnalysis.dependencies.map(d => - ${d}).join('\n') || '(none)'}

Known Issues

${sessionAnalysis.knownIssues.map(i => - ${i}).join('\n') || '(none)'}

Changes Made

${sessionAnalysis.changesMade.map(c => - ${c}).join('\n') || '(none)'}

Pending

${sessionAnalysis.pending.length > 0 ? sessionAnalysis.pending.map(p => - ${p}).join('\n') : '(none)'}

Notes

${sessionAnalysis.notes || '(none)'}`

Step 3: Import to Core Memory via MCP

Use the MCP core_memory tool to save the structured text:

mcp__ccw-tools__core_memory({ operation: "import", text: structuredText })

Or via CLI (pipe structured text to import):

Write structured text to temp file, then import

echo "$structuredText" | ccw core-memory import

Or from a file

ccw core-memory import --file /path/to/session-memory.md

Response Format:

{ "operation": "import", "id": "CMEM-YYYYMMDD-HHMMSS", "message": "Created memory: CMEM-YYYYMMDD-HHMMSS" }

Step 4: Report Recovery ID

After successful import, clearly display the Recovery ID to the user:

╔════════════════════════════════════════════════════════════════════════════╗ ║ ✓ Session Memory Saved ║ ║ ║ ║ Recovery ID: CMEM-YYYYMMDD-HHMMSS ║ ║ ║ ║ To restore: "Please import memory <ID>" ║ ║ (MCP: core_memory export | CLI: ccw core-memory export --id <ID>) ║ ╚════════════════════════════════════════════════════════════════════════════╝

  1. Quality Checklist

Before generating:

  • Session ID captured if workflow session active (WFS-*)

  • Project Root is absolute path (e.g., D:\Claude_dms3)

  • Objective clearly states the "North Star" goal

  • Execution Plan: COMPLETE plan preserved VERBATIM (no summarization)

  • Plan Source: Clearly identified (workflow | todo | user-stated | inferred)

  • Plan Details: ALL phases, tasks, file paths, dependencies, status markers included

  • All file paths are ABSOLUTE (not relative)

  • Working Files: 3-8 modified files with roles

  • Reference Files: Key context files (CLAUDE.md, types, configs)

  • Last Action captures final state (success/failure)

  • Decisions include reasoning, not just choices

  • Known Issues separates deferred from forgotten bugs

  • Notes preserve debugging hypotheses if any

  1. Path Resolution Rules

Project Root Detection

  • Check current working directory from environment

  • Look for project markers: .git/ , package.json , .claude/

  • Use the topmost directory containing these markers

Absolute Path Conversion

// Convert relative to absolute const toAbsolutePath = (relativePath, projectRoot) => { if (path.isAbsolute(relativePath)) return relativePath; return path.join(projectRoot, relativePath); };

// Example: "src/api/auth.ts" → "D:\Claude_dms3\src\api\auth.ts"

Reference File Categories

Category Examples Priority

Project Config .claude/CLAUDE.md , package.json , tsconfig.json

High

Type Definitions src/types/*.ts , *.d.ts

High

Related Modules Parent/sibling modules with shared interfaces Medium

Test Files Corresponding test files for modified code Medium

Documentation README.md , ARCHITECTURE.md

Low

  1. Plan Detection (Priority Order)

Priority 1: Workflow Session (IMPL_PLAN.md)

// Check for active workflow session const manifest = await mcp__ccw-tools__session_manager({ operation: "list", location: "active" });

if (manifest.sessions?.length > 0) { const session = manifest.sessions[0]; const plan = await mcp__ccw-tools__session_manager({ operation: "read", session_id: session.id, content_type: "plan" }); sessionAnalysis.sessionId = session.id; sessionAnalysis.executionPlan.source = "workflow"; sessionAnalysis.executionPlan.content = plan.content; }

Priority 2: TodoWrite (Current Session Todos)

// Extract from conversation - look for TodoWrite tool calls // Preserve COMPLETE todo list with all details const todos = extractTodosFromConversation(); if (todos.length > 0) { sessionAnalysis.executionPlan.source = "todo"; // Format todos with full context - preserve status markers sessionAnalysis.executionPlan.content = todos.map(t => - [${t.status === 'completed' ? 'x' : t.status === 'in_progress' ? '>' : ' '}] ${t.content} ).join('\n'); }

Priority 3: User-Stated Plan

// Look for explicit plan statements in user messages: // - "Here's my plan: 1. ... 2. ... 3. ..." // - "I want to: first..., then..., finally..." // - Numbered or bulleted lists describing steps const userPlan = extractUserStatedPlan(); if (userPlan) { sessionAnalysis.executionPlan.source = "user-stated"; sessionAnalysis.executionPlan.content = userPlan; }

Priority 4: Inferred Plan

// If no explicit plan, infer from: // - Task description and breakdown discussion // - Sequence of actions taken // - Outstanding work mentioned const inferredPlan = inferPlanFromDiscussion(); if (inferredPlan) { sessionAnalysis.executionPlan.source = "inferred"; sessionAnalysis.executionPlan.content = inferredPlan; }

  1. Notes
  • Timing: Execute at task completion or before context switch

  • Frequency: Once per independent task or milestone

  • Recovery: New session can immediately continue with full context

  • Knowledge Graph: Entity relationships auto-extracted for visualization

  • Absolute Paths: Critical for cross-session recovery on different machines

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

skill-generator

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

review-code

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

ccw-help

No summary provided by upstream source.

Repository SourceNeeds Review