The agent rides the wave of peak context. When the wave crests, it commits. When it detects drift, it pulls out cleanly — saving state, handing off, and letting the next session catch the next wave.
Works with
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versioncontext-surfingExecute the skills CLI command in your project's root directory to begin installation:
Fetches context-surfing from pskoett/pskoett-ai-skills and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate context-surfing. Access via /context-surfing in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Create detailed user stories, acceptance criteria, and feature specs
Example
Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Research competitors, compare features, identify gaps
Example
Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example
Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
0
total installs
0
this week
104
GitHub stars
0
upvotes
Run in your terminal
0
installs
0
this week
104
stars
npx skills add pskoett/pskoett-ai-skills/skills/context-surfing
The agent rides the wave of peak context. When the wave crests, it commits. When it detects drift, it pulls out cleanly — saving state, handing off, and letting the next session catch the next wave.
No wipeouts. No zombie sessions. Only intentional, high-fidelity execution.
Think of context like an ocean wave:
The skill's job: ride as long as the wave is good, exit before it closes out.
[plan-interview] → [intent-framed-agent] → [context-surfing ACTIVE] → [simplify-and-harden] → [self-improvement]
Context Surfing is the execution layer. It wraps all work between intent capture and post-completion review. Simplify-and-harden and self-improvement are the next steps in the pipeline — they run after context-surfing completes, not as conditions that end it.
Both skills are live during execution. They monitor different failure modes:
They are complementary, not redundant. An agent can be perfectly on-scope while its context quality degrades (e.g., it's doing the right thing but starting to hallucinate details). Conversely, scope drift can happen with perfect context quality (the agent deliberately chases a tangent). Intent-framed-agent's Intent Checks continue firing alongside context-surfing's wave monitoring.
Precedence rule: If both skills fire simultaneously (an Intent Check and a drift exit at the same time), context-surfing's exit takes precedence. Degraded context makes scope checks unreliable — resolve the context issue first, then resume scope monitoring in the next session.
Not every task needs all five skills. Match pipeline depth to task complexity:
| Task Type | Skills to Use |
|---|---|
| Trivial (rename, typo fix) | None — just do it |
| Small (isolated bug fix, single-file change) | simplify-and-harden only |
| Medium (feature in known area, multi-file) | intent-framed-agent + simplify-and-harden |
| Large (complex refactor, new architecture, unfamiliar codebase) | Full pipeline |
| Long-running (multi-session, high context pressure) | Full pipeline with context-surfing as the critical skill |
When in doubt, start light. Add skills if you notice drift or quality issues mid-task.
This skill is live the moment the intent frame and plan are established. No explicit invocation needed.
At activation, load whatever anchors are available:
If neither an intent frame nor a plan exists (standalone mode), use the user's original task description combined with project context files as the wave anchor. This is sufficient — the skill degrades gracefully, not catastrophically.
Entire CLI (github.com/entireio/cli) provides persistent session state that serves as external ground truth for drift checks and handoff files.
At activation, detect Entire:
entire status 2>/dev/null
The wave anchor is not held mentally. It is built from whatever external, persistent artifacts are available — every drift check reads from them directly, never from reconstructed memory.
The anchor is weaker in standalone mode — fewer artifacts to cross-check against — but it is always present. A weak anchor is better than no anchor.
Before executing anything, scan the project for .md files that carry standing context. These are not documentation to skim — they are constraints, decisions, and architectural truth that must stay in the wave at all times.
CLAUDE.md — agent configuration, conventions, constraintsAGENTS.md — multi-agent setup, role definitionsREADME.md — project intent and structure.md in the project root.md files in skills/, docs/, .learnings/, or similar directoriesSKILL.md files for any skill being invoked alongside this one.md file, that is a drift signal — treat it as a strong one..md file is modified during the session, flag it explicitly in the handoff under a "Modified Context Files" section so the next session re-reads it fresh rather than relying on the handoff summary.Continuously monitor for these signals. Strong signals trigger an immediate exit — the wave is closing out. Weak signals trigger the Recovery Protocol first — the shoulder might still be rideable.
An agent with degraded context is the least likely to detect its own degradation. The strong signals (hallucination, contradiction) are exactly the ones a compromised agent will miss — because it no longer has the context to recognize the contradiction.
This is an inherent limitation of self-monitoring. Mitigate it with external grounding:
The weak signals (hedging, verbosity) are more reliably self-detectable precisely because they're behavioral, not factual. Watch for those as early warnings.
When weak signals accumulate, don't exit immediately — try to re-anchor first. The shoulder of the wave is still rideable if you can re-ground.
Stop producing output. Re-read whatever wave anchor artifacts are available:
Compare what you're currently doing against what these artifacts say you should be doing.
There is no hard cap on recovery attempts. Keep re-anchoring as long as each attempt genuinely resolves the uncertainty and the user confirms alignment. However:
While context is healthy:
When a strong signal fires, or the Recovery Protocol fails to re-anchor, execute a clean exit. Do not try to push through.
Immediately pause task execution. Do not produce more output that may be corrupted by the degraded context.
Create a file named .context-surfing/handoff-[slug]-[timestamp].md (create the .context-surfing/ directory if it doesn't exist). Add .context-surfing/ to .gitignore — handoff files are session artifacts, not project history.
Structure:
# Context Surf Handoff
## Session Info
- Task: [task name / slug]
- Started: [timestamp]
- Ended: [timestamp]
- Exit reason: [what drift signal was detected]
## Intent Frame (if available — read verbatim, do not reconstruct)
[copy directly from the intent-framed-agent artifact, or "N/A — standalone session" if none exists]
## Plan (if available — read verbatim, do not reconstruct)
[copy directly from the plan-interview artifact, or "N/A — standalone session" if none exists]
## Original Task Description (standalone fallback)
[copy the user's original task description if no intent frame or plan exists]
## Completed Work (from Entire CLI session state or running output log)
[pull directly from CLI log or structured output — do not reconstruct from memory]
## In Progress at Exit (from Entire CLI session state or running output log)
[what the session log shows as active at the moment of exit]
[include any partial outputs if useful]
## Pending Work (from plan-interview output — cross-reference session log to confirm what's genuinely not done)
[remaining tasks from the plan, in order]
## Drift Notes
[what specifically triggered the exit — be precise, this helps the next session replan intelligently]
## Active Context Files
[list all .md files loaded during this session — root level and any skill/docs files consulted]
## Modified Context Files
[any .md files that were changed during this session — next session must re-read these, not trust the handoff summary]
## Scope Notes (Out-of-Band)
[anything interesting discovered that's outside scope — flagged for the next session to decide on]
## Recommended Re-entry Point
[where the next session should pick up, and any replanning it should do before continuing]
Briefly and clearly:
"Context wave is done. I've saved the session state to
.context-surfing/[filename]. The next session should load that file, run plan-interview to replan from [re-entry point], and catch the next wave. Here's what triggered the exit: [one sentence on drift signal]."
Do not over-explain. The handoff file has the details.
The next session should:
This is not failure. This is the system working correctly. Clean exits produce better total output than zombie sessions that limp to the finish line.
When the task completes within a healthy wave (no drift exit needed):
No handoff file needed for clean completions — just the outputs and a one-liner status.
docs/plans/plan-NNN-<slug>.md). Strengthens the wave anchor when available..context-surfing/ with full state for session resumption.plan-interview (optional, for requirement shaping)intent-framed-agent (execution contract + scope drift monitoring)context-surfing (context quality monitoring — runs concurrently with intent-framed-agent during execution)simplify-and-harden (post-completion quality/security pass)self-improvement (capture recurring patterns and promote durable rules)Enable automatic handoff detection at session start. This ensures handoff files from previous context exits are never silently ignored.
Add to .claude/settings.json:
{
"hooks": {
"UserPromptSubmit": [{
"matcher": "",
"hooks": [{
"type": "command",
"command": "./skills/context-surfing/scripts/handoff-checker.sh"
}]
}]
}
}
This checks for unread handoff files in .context-surfing/ on every prompt. If found, it reminds the agent to read the handoff before starting new work (~100 tokens overhead, skips si
Make data-driven prioritization decisions faster
Draft PRDs, status updates, and stakeholder presentations
Example
Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Prerequisites
Time Estimate
30-60 minutes to see productivity improvements
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid when
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
mattpocock/skills
parcadei/continuous-claude-v3
cursor/plugins
ailabs-393/ai-labs-claude-skills
pproenca/dot-skills
mattpocock/skills
We added context-surfing from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
context-surfing reduced setup friction for our internal harness; good balance of opinion and flexibility.
Useful defaults in context-surfing — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
We added context-surfing from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
context-surfing reduced setup friction for our internal harness; good balance of opinion and flexibility.
context-surfing reduced setup friction for our internal harness; good balance of opinion and flexibility.
We added context-surfing from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
I recommend context-surfing for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
Keeps context tight: context-surfing is the kind of skill you can hand to a new teammate without a long onboarding doc.
Solid pick for teams standardizing on skills: context-surfing is focused, and the summary matches what you get after install.
showing 1-10 of 50