From pm-engineering
Filters verbose command output, logs session activity, and auto-resumes tasks after Claude Code resets. Use for long coding sessions to avoid context bloat and memory loss.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pm-engineering:context-modeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Fix the two session killers that end most Claude Code sessions in under 30 minutes: context bloat from raw command output, and memory loss after a reset.
Fix the two session killers that end most Claude Code sessions in under 30 minutes: context bloat from raw command output, and memory loss after a reset.
Context Mode runs three systems simultaneously to keep sessions alive:
Credit: Inspired by a skill from Nate Herk's YouTube channel — adapted and extended for this library.
No inputs required. Context Mode activates on command.
Optional: user can specify a custom log file path if they don't want session.log in the project root.
The problem: every time Claude Code runs a command, the full raw output enters the context window. A single npm install can dump hundreds of lines. A test suite run? Thousands. Within 30 minutes, the context is full of noise and Claude resets.
The fix: before any command output enters context, filter it to the useful summary only.
What gets kept:
error, warn, fail, exception, traceback, or fatal (case-insensitive)What gets discarded:
[... N lines of output truncated ...])Filtering summary format:
COMMAND: [command run]
STATUS: [exit code — success / failed]
SUMMARY: [one sentence: what happened]
ERRORS: [any error/warn lines — or "none"]
TAIL: [last 10 lines of stdout]
Claude maintains a running log file at [project root]/session.log. This file is written after every significant action and is the source of truth for resuming after a reset.
Session log format:
SESSION LOG
===========
Started: [timestamp]
Branch: [current git branch]
Directory: [working directory]
FILES EDITED
────────────
[timestamp] [file path] — [one-line description of what changed]
COMMANDS RUN
────────────
[timestamp] [command] — [outcome: success / failed — brief reason]
TASKS IN PROGRESS
─────────────────
[ ] [Task description — what's been done so far and what's left]
[x] [Completed task]
LAST USER PROMPT
────────────────
[The most recent instruction from the user, verbatim]
LAST ACTION TAKEN
─────────────────
[What Claude did last, in one sentence]
Log update rules:
session.log after every file editsession.log after every command runWhen a new Claude session starts, the first action is:
session.log in the project rootResuming session.
Branch: [branch]
Last working on: [last task in progress]
Files edited: [list from session log]
Tasks pending: [incomplete tasks]
Last prompt: "[last user prompt]"
Continuing from where we left off.
If no session.log exists, start fresh and initialise the log.
When the user triggers Context Mode, respond with:
Context Mode active.
Session log initialised at: [absolute path to session.log]
Output filtering: enabled
Auto-resume: enabled
I'll maintain your session state across resets. Long sessions won't lose context.
Then immediately initialise session.log with the current timestamp, branch, and directory.
Context Mode active.
Session log initialised at: [path]
Output filtering: enabled
Auto-resume: enabled
I'll maintain your session state across resets. Long sessions won't lose context.
COMMAND: npm test
STATUS: exit 1 — failed
SUMMARY: 47 tests passed, 3 failed in auth.test.ts
ERRORS: Error: Expected 200, received 401 (line 84)
Error: Token not found in response (line 112)
TAIL:
✓ login with valid credentials (23ms)
✓ logout clears session (11ms)
✗ refresh token after expiry
...
Resuming session.
Branch: feature/auth-refresh
Last working on: Fixing token refresh logic in auth.service.ts
Files edited: src/auth/auth.service.ts, src/auth/auth.test.ts
Tasks pending: [ ] Fix failing test on line 112
[ ] Run full test suite once fix is applied
Last prompt: "The refresh token test is still failing — look at the 401 handling"
Continuing from where we left off.
After activating Context Mode for the session, provide the user with the exact text to add to their CLAUDE.md to make it permanent across all sessions:
```
## Context Mode
Context Mode is always active in this project.
### Output Filtering
Before any command output enters context, filter it to:
- Last 10 lines of stdout
- Any lines containing: error, warn, fail, exception, traceback, fatal (case-insensitive)
- Exit code
- One-line summary of what the command did
Use this format for filtered output:
COMMAND: [command]
STATUS: [exit code — success/failed]
SUMMARY: [one sentence]
ERRORS: [error lines or "none"]
TAIL: [last 10 lines]
### Session Log
Maintain a running session log at ./session.log. Write to it after every file edit and every command run. Track: files edited, commands run, tasks in progress, last user prompt, last action taken. Format defined in Context Mode skill.
### Auto-Resume
At the start of every new session, check for ./session.log. If it exists, read it and announce the resume state. Continue from the last task in progress without asking for instructions.
```
Tell the user: "Add this to your CLAUDE.md and Context Mode will be active permanently for this project — even after you close and reopen the session."
session.log was initialised immediately on activation (not deferred)npx claudepluginhub mohitagw15856/pm-claude-skills --plugin pm-engineeringManages continuity between Claude Code sessions: saves summaries, decisions, pending tasks from JSONL logs and loads automatic briefings with SQLite-backed search.
Manages Claude Code sessions using /rename, /resume, and CLI commands for naming, checkpointing, and resuming workflows in debugging, feature development, PR reviews, and investigations.
Saves session state at end of session and resumes it at start of next session. Useful when context is running out, wrapping up, or continuing previous work.