summarize-session
Compact the conversation context by summarizing what was accomplished and updating CLAUDE.md with any learnings. Use when context is getting long or when transitioning between work sessions.
$ 安裝
git clone https://github.com/andersnygaard/ettsted2 /tmp/ettsted2 && cp -r /tmp/ettsted2/.claude/skills/summarize-session ~/.claude/skills/ettsted2// tip: Run this command in your terminal to install the skill
name: summarize-session description: Compact the conversation context by summarizing what was accomplished and updating CLAUDE.md with any learnings. Use when context is getting long or when transitioning between work sessions.
Compact Context Skill
This skill performs context compaction - summarizing the current session and persisting valuable learnings to CLAUDE.md.
Purpose: Reduce context length while preserving important information for future sessions.
When to Use
Use this skill when:
- Context is getting long (lots of back-and-forth)
- Transitioning between work sessions
- User explicitly asks to compact or summarize
- Before starting a major new task
- After completing significant work
Workflow
Phase 1: Session Analysis
Review the current conversation and identify:
-
Work Completed
- Files created/modified
- Features implemented
- Bugs fixed
- Refactoring done
-
Decisions Made
- Architectural choices
- Pattern preferences
- Naming conventions established
- Trade-offs chosen
-
Problems Encountered
- Errors and how they were resolved
- Gotchas discovered
- Workarounds applied
-
User Preferences Revealed
- Communication style
- Code style preferences
- Workflow preferences
-
Learnings About the Codebase
- Patterns not documented in CLAUDE.md
- Important file locations
- Integration details
- Quirks or edge cases
Phase 2: Rule Files Update Evaluation
Rule files in .claude/rules/ are domain-specific and have a lower threshold than CLAUDE.md. They should capture patterns, gotchas, and decisions for specific domains.
Rule File Locations:
rules/frontend/- auth, styling, api, routing, state, onboarding, errorsrules/backend/- auth, data, api, validation, services, calculations, llm, errors, middleware, utils, seedrules/components/- components, styling, charts, forms, storybook, errorsrules/e2e/- testing, auth
Threshold for Rules: Add if it meets TWO criteria:
- Reusable - Will apply to future work in that domain
- Domain-specific - Belongs to a specific subsystem (not global)
Examples that SHOULD go in rule files:
- "AreaChart requires data sorted by date ascending" →
rules/components/charts.md - "Zod schemas strip unknown fields by default" →
rules/backend/validation.md - "Modal close button uses absolute positioning top-right" →
rules/components/components.md - "Demo login seeds data on every call" →
rules/backend/auth.md - "Use formatCurrency from @finans/components for NOK" →
rules/frontend/styling.md
Examples that should NOT go in rule files:
- "Fixed a typo" - not reusable
- "React uses JSX" - too generic
Rule File Sections: Each rule file follows this structure:
- Stack - Technologies/libraries used
- Structure - File/folder organization
- Patterns - Code patterns with examples
- Decisions - Architectural choices made
- Gotchas - Common pitfalls, edge cases
Add learnings to the appropriate section. If a section doesn't exist, create it.
Phase 3: CLAUDE.md Update Evaluation
CLAUDE.md has a higher threshold - only global, project-wide learnings.
Threshold: Only add if it meets ALL THREE criteria:
- Reusable - Will apply to future work (not a one-time fix)
- Non-obvious - Not something a senior dev would assume
- Project-wide - Applies globally, not to a specific domain
Examples that PASS the threshold:
- "All pages must use usePageTitle hook" - project-wide convention
- "Never use max-width media queries" - affects all styling
- "API base path is /api/v1" - affects all endpoints
Examples that FAIL (should go in rules instead):
- "AreaChart needs sorted data" - domain-specific (charts.md)
- "Zod strips unknown fields" - domain-specific (validation.md)
- "Modal uses absolute close button" - domain-specific (components.md)
When in doubt, put it in a rule file. CLAUDE.md is for global conventions only.
Phase 4: Update Files
Step 1: Update Rule Files
For each domain-specific learning:
- Identify the correct rule file based on the domain
- Read the rule file to find the appropriate section
- Add the learning in the matching section (Stack, Patterns, Decisions, or Gotchas)
- Keep additions concise and match existing style
Step 2: Update CLAUDE.md (if warranted)
For global learnings that pass the higher threshold:
- Read CLAUDE.md to find the appropriate section
- Add the learning in the correct location
CLAUDE.md Placement Guidelines:
| Learning Type | Where to Add |
|---|---|
| New tech/dependency | Tech Stack section |
| New pattern/convention | Coding Standards section |
| New page or feature | Pages section |
| New API endpoint | API Design section |
| Security concern | Security section |
| User preference | NOTES FROM THE USER section |
| Development tip | Development Setup section |
Phase 5: Context Summary
Produce a compact summary with this structure:
## Session Summary
### Completed
- [Bullet list of work done]
### Files Changed
- [List of significant files modified]
### Decisions
- [Key decisions made during session]
### Open Items
- [Anything left incomplete or for next session]
### Rule Updates
- [Rule file → what was added]
### CLAUDE.md Updates
- [What was added, if anything, or "None"]
Output
The skill produces:
- Updates to rule files (lower threshold, domain-specific)
- Updates to CLAUDE.md (higher threshold, global only)
- Session summary (displayed to user)
The summary becomes the new context for continuing work, replacing the long conversation history.
Example Session Summary
## Session Summary
### Completed
- Fixed TypeScript strict mode errors in backend/
- Implemented rate limiting middleware
- Added Norwegian number formatting utility
- Created user profile API endpoint
### Files Changed
- backend/src/middleware/rateLimiter.ts (new)
- backend/src/controllers/userController.ts (modified)
- frontend/src/shared/utils/numberFormat.ts (new)
- backend/tsconfig.json (modified - enabled strict)
### Decisions
- Rate limit: 100 req/min general, 10 req/min calculators
- Number format: numeral.js with custom nb locale
- Profile updates require email verification
### Open Items
- E2E test for rate limiting
### Rule Updates
- rules/backend/middleware.md → Added rate limiter configuration pattern
- rules/backend/validation.md → Added profile update validation schema
- rules/frontend/styling.md → Added numeral.js locale setup
### CLAUDE.md Updates
- None (domain-specific learnings went to rule files)
Critical Rules
- Be concise - Summaries should be short, not verbose
- Preserve essential info - Don't lose important context
- Prefer rule files over CLAUDE.md - Domain-specific goes to rules
- Update CLAUDE.md sparingly - Only global, project-wide learnings
- Match existing style - Follow the file's formatting conventions
- Focus on actionable - Learnings should help future work
- Don't duplicate - Don't add what's already documented
- Add to correct section - Stack, Patterns, Decisions, or Gotchas
Triggering This Skill
The user can invoke with:
- "compact context"
- "summarize session"
- "what did we accomplish"
- "update claude.md with learnings"
- "compress the context"
- "session summary"
Repository
