Context Mode Skill

Keep Claude Code sessions productive across resets with output filtering, session logging, and auto-resume.

Context Mode Skill — The Skill Playground: pick the Executive Update skill, fill in a few notes, hit run, and watch a structured executive… (from the mohitagw15856/pm-claude-skills README)

From the mohitagw15856/pm-claude-skills README — shows the whole collection, not only this skill. · view on GitHub

How to use it

Claude Code
  1. Run the line below. It pulls the whole folder into ~/.claude/skills/context-mode.
  2. Describe your job in plain words. Claude Code follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit mohitagw15856/pm-claude-skills/skills/context-mode#main ~/.claude/skills/context-mode

For one project only, change the path to .claude/skills/context-mode.

Claude (web or desktop app)
  1. On this page open ⋯ → Download .md.
  2. Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
  3. Pick the file and Save. Claude shows the name and description and runs a security scan.
  4. Check the skill is switched on.
  5. Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
  1. ChatGPT: make a Project and paste it into Instructions.
  2. Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Source of Context Mode Skill

Show the full text257 lines
namedescription
context-modeKeep Claude Code sessions productive across resets with output filtering, session logging, and auto-resume. Use when starting a long or complex coding session, when previous sessions lost context mid-task, or when you need Claude to resume exactly where it left off after a reset. Produces a session.log at the project root, filtered command output that preserves context, and automatic resume of in-progress tasks after any reset.

Context Mode 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.

Context Mode runs three systems simultaneously to keep sessions alive:

  • Output Filtering — strips verbose command output before it enters context
  • Session Log — writes a running log of everything that happened
  • Auto-Resume — reads the log on reset and picks up exactly where you left off

Credit: Inspired by a skill from Nate Herk's YouTube channel — adapted and extended for this library.


Required Inputs

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.


How Context Mode Works

Part 1 — Output Filtering

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:

  • Last 10 lines of stdout
  • Every line containing error, warn, fail, exception, traceback, or fatal (case-insensitive)
  • The exit code
  • A one-line summary of what the command did and whether it succeeded

What gets discarded:

  • Middle section of long stdout (replaced with [... N lines of output truncated ...])
  • Progress bars, download indicators, verbose install logs
  • Repeated identical lines (deduplicated)

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]

Part 2 — Session Log

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:

  • Write to session.log after every file edit
  • Write to session.log after every command run
  • Update "Tasks in Progress" when a task is started, progressed, or completed
  • Always overwrite "Last User Prompt" and "Last Action Taken" with the current values — don't append, replace

Part 3 — Resume on Reset

When a new Claude session starts, the first action is:

  1. Check for session.log in the project root
  2. If found, read it and announce the resume:
Resuming 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.
  1. Continue with the next logical step — don't ask "what should I do?" — check the task list and carry on

If no session.log exists, start fresh and initialise the log.


Activation Response

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.


Output Structure

On activation
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.
On command execution (filtered output format)
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
  ...
On reset / new session (resume announcement)
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.

CLAUDE.md Installation Text

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."


Quality Checks

  • session.log was initialised immediately on activation (not deferred)
  • Log path shown to user is the absolute path, not relative
  • Output filtering is applied on the very next command run — not just announced
  • Filtered output format includes: command, status, summary, errors, and tail — all five fields
  • Session log tracks all four categories: files edited, commands run, tasks in progress, last prompt
  • Resume announcement reads the actual log contents — not a generic template
  • On resume, Claude continues the work without prompting the user for instructions
  • CLAUDE.md installation text was offered after activation
  • Log update rule is clear: "Last User Prompt" and "Last Action Taken" replace previous values, not append

Anti-Patterns

  • Logging verbatim command output instead of a filtered summary (defeats the context savings)
  • A resume announcement from a generic template that ignores what the log actually says
  • Appending to "Last User Prompt" / "Last Action Taken" instead of replacing them (the log bloats)
  • Activating silently without offering the CLAUDE.md install, so it doesn't persist across sessions
  • On resume, asking the user what to do instead of continuing the in-progress task

Example Trigger Phrases

  • "Enable context mode"
  • "Turn on context mode for this session"
  • "Activate long session mode"
  • "I keep losing context — fix it"
  • "Set up session logging"
  • "Keep track of what you've done so you can resume after a reset"
  • "Enable output filtering to save context"
  • "Set up auto-resume so we don't lose our place"
1---
2name: context-mode
3description: "Keep Claude Code sessions productive across resets with output filtering, session logging, and auto-resume. Use when starting a long or complex coding session, when previous sessions lost context mid-task, or when you need Claude to resume exactly where it left off after a reset. Produces a session.log at the project root, filtered command output that preserves context, and automatic resume of in-progress tasks after any reset."
4---
5 
6# Context Mode Skill
7 
8Fix 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.
9 
10Context Mode runs three systems simultaneously to keep sessions alive:
11 
12- **Output Filtering** — strips verbose command output before it enters context
13- **Session Log** — writes a running log of everything that happened
14- **Auto-Resume** — reads the log on reset and picks up exactly where you left off
15 
16> **Credit:** Inspired by a skill from Nate Herk's YouTube channel — adapted and extended for this library.
17 
18---
19 
20## Required Inputs
21 
22No inputs required. Context Mode activates on command.
23 
24Optional: user can specify a custom log file path if they don't want `session.log` in the project root.
25 
26---
27 
28## How Context Mode Works
29 
30### Part 1 — Output Filtering
31 
32The 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.
33 
34The fix: before any command output enters context, filter it to the useful summary only.
35 
36**What gets kept:**
37- Last 10 lines of stdout
38- Every line containing `error`, `warn`, `fail`, `exception`, `traceback`, or `fatal` (case-insensitive)
39- The exit code
40- A one-line summary of what the command did and whether it succeeded
41 
42**What gets discarded:**
43- Middle section of long stdout (replaced with `[... N lines of output truncated ...]`)
44- Progress bars, download indicators, verbose install logs
45- Repeated identical lines (deduplicated)
46 
47**Filtering summary format:**
48 
49```
50COMMAND: [command run]
51STATUS: [exit code — success / failed]
52SUMMARY: [one sentence: what happened]
53ERRORS: [any error/warn lines — or "none"]
54TAIL: [last 10 lines of stdout]
55```
56 
57---
58 
59### Part 2 — Session Log
60 
61Claude 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.
62 
63**Session log format:**
64 
65```
66SESSION LOG
67===========
68Started: [timestamp]
69Branch: [current git branch]
70Directory: [working directory]
71 
72FILES EDITED
73────────────
74[timestamp] [file path] — [one-line description of what changed]
75 
76COMMANDS RUN
77────────────
78[timestamp] [command] — [outcome: success / failed — brief reason]
79 
80TASKS IN PROGRESS
81─────────────────
82[ ] [Task description — what's been done so far and what's left]
83[x] [Completed task]
84 
85LAST USER PROMPT
86────────────────
87[The most recent instruction from the user, verbatim]
88 
89LAST ACTION TAKEN
90─────────────────
91[What Claude did last, in one sentence]
92```
93 
94**Log update rules:**
95- Write to `session.log` after every file edit
96- Write to `session.log` after every command run
97- Update "Tasks in Progress" when a task is started, progressed, or completed
98- Always overwrite "Last User Prompt" and "Last Action Taken" with the current values — don't append, replace
99 
100---
101 
102### Part 3 — Resume on Reset
103 
104When a new Claude session starts, the first action is:
105 
1061. Check for `session.log` in the project root
1072. If found, read it and announce the resume:
108 
109```
110Resuming session.
111 
112Branch: [branch]
113Last working on: [last task in progress]
114Files edited: [list from session log]
115Tasks pending: [incomplete tasks]
116Last prompt: "[last user prompt]"
117 
118Continuing from where we left off.
119```
120 
1213. Continue with the next logical step — don't ask "what should I do?" — check the task list and carry on
122 
123If no `session.log` exists, start fresh and initialise the log.
124 
125---
126 
127## Activation Response
128 
129When the user triggers Context Mode, respond with:
130 
131```
132Context Mode active.
133 
134Session log initialised at: [absolute path to session.log]
135Output filtering: enabled
136Auto-resume: enabled
137 
138I'll maintain your session state across resets. Long sessions won't lose context.
139```
140 
141Then immediately initialise `session.log` with the current timestamp, branch, and directory.
142 
143---
144 
145## Output Structure
146 
147### On activation
148 
149```
150Context Mode active.
151Session log initialised at: [path]
152Output filtering: enabled
153Auto-resume: enabled
154I'll maintain your session state across resets. Long sessions won't lose context.
155```
156 
157### On command execution (filtered output format)
158 
159```
160COMMAND: npm test
161STATUS: exit 1 — failed
162SUMMARY: 47 tests passed, 3 failed in auth.test.ts
163ERRORS: Error: Expected 200, received 401 (line 84)
164 Error: Token not found in response (line 112)
165TAIL:
166 ✓ login with valid credentials (23ms)
167 ✓ logout clears session (11ms)
168 ✗ refresh token after expiry
169 ...
170```
171 
172### On reset / new session (resume announcement)
173 
174```
175Resuming session.
176 
177Branch: feature/auth-refresh
178Last working on: Fixing token refresh logic in auth.service.ts
179Files edited: src/auth/auth.service.ts, src/auth/auth.test.ts
180Tasks pending: [ ] Fix failing test on line 112
181 [ ] Run full test suite once fix is applied
182Last prompt: "The refresh token test is still failing — look at the 401 handling"
183 
184Continuing from where we left off.
185```
186 
187---
188 
189## CLAUDE.md Installation Text
190 
191After 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:
192 
193````
194```
195## Context Mode
196 
197Context Mode is always active in this project.
198 
199### Output Filtering
200Before any command output enters context, filter it to:
201- Last 10 lines of stdout
202- Any lines containing: error, warn, fail, exception, traceback, fatal (case-insensitive)
203- Exit code
204- One-line summary of what the command did
205 
206Use this format for filtered output:
207COMMAND: [command]
208STATUS: [exit code — success/failed]
209SUMMARY: [one sentence]
210ERRORS: [error lines or "none"]
211TAIL: [last 10 lines]
212 
213### Session Log
214Maintain 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.
215 
216### Auto-Resume
217At 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.
218```
219````
220 
221Tell 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."
222 
223---
224 
225## Quality Checks
226 
227- [ ] `session.log` was initialised immediately on activation (not deferred)
228- [ ] Log path shown to user is the absolute path, not relative
229- [ ] Output filtering is applied on the very next command run — not just announced
230- [ ] Filtered output format includes: command, status, summary, errors, and tail — all five fields
231- [ ] Session log tracks all four categories: files edited, commands run, tasks in progress, last prompt
232- [ ] Resume announcement reads the actual log contents — not a generic template
233- [ ] On resume, Claude continues the work without prompting the user for instructions
234- [ ] CLAUDE.md installation text was offered after activation
235- [ ] Log update rule is clear: "Last User Prompt" and "Last Action Taken" replace previous values, not append
236 
237---
238 
239## Anti-Patterns
240 
241- Logging verbatim command output instead of a filtered summary (defeats the context savings)
242- A resume announcement from a generic template that ignores what the log actually says
243- Appending to "Last User Prompt" / "Last Action Taken" instead of replacing them (the log bloats)
244- Activating silently without offering the CLAUDE.md install, so it doesn't persist across sessions
245- On resume, asking the user what to do instead of continuing the in-progress task
246 
247## Example Trigger Phrases
248 
249- "Enable context mode"
250- "Turn on context mode for this session"
251- "Activate long session mode"
252- "I keep losing context — fix it"
253- "Set up session logging"
254- "Keep track of what you've done so you can resume after a reset"
255- "Enable output filtering to save context"
256- "Set up auto-resume so we don't lose our place"
257 

Discussion

Alternatives

Also in Job huntingSee all 35 in People & hiring →