Skip to content
Back to skills

Extract Wip From Past Sessions

ASecurity

Sweep a range of past Claude Code sessions with a fleet of Sonnet agents (one per session) to surface implied-but-unfinished work the user wanted done, filter to a target initiative (e.g. the <frontend-repo> launch), and convert each finding into a priority-prefixed, self-contained Obsidian proposal sorted into work-state triage folders. Use when the user wants to mine recent or older sessions for dropped actionables before a launch, or says "extract WIP", "sweep the last sessions", "what did...

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
developmentrustgobashnodegitapifrontend

Works with

  • claude code
  • cli
  • api

Security analysis

A100/100

Scanned November 7, 2026

npx -y skills add Next-AI-Labs-Inc/alignment-harness --skill extract-wip-from-past-sessions --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Extract Wip From Past Sessions?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Extract Wip From Past Sessions
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/next-ai-labs-inc-extract-wip-from-past-sessions/badge)](https://www.skillsdirectory.com/skills/next-ai-labs-inc-extract-wip-from-past-sessions)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: extract-wip-from-past-sessions
description: Sweep a range of past Claude Code sessions with a fleet of Sonnet agents (one per session) to surface implied-but-unfinished work the user wanted done, filter to a target initiative (e.g. the <frontend-repo> launch), and convert each finding into a priority-prefixed, self-contained Obsidian proposal sorted into work-state triage folders. Use when the user wants to mine recent or older sessions for dropped actionables before a launch, or says "extract WIP", "sweep the last sessions", "what did I leave unfinished", or "run the WIP sweep on the next N sessions".
---

# Extract WIP From Past Sessions

## Why this skill exists

Across many sessions, the user implies work the user wants done — sometimes explicitly, sometimes by frustration or "this should…" — and it gets dropped when the session ends or compacts. This skill recovers that dropped work systematically: one agent per session reads the transcript, decides if there's implied-unfinished work tied to the target initiative, and if so writes a proposal the user understands on first read and another agent can execute end-to-end. Validated 2026-06-01 on a 90-session <frontend-repo>-launch sweep: 88 reviewed, 31 relevant, 41 proposals — the early-pulse finding ("commit the uncommitted modal work + fix the real bugs") held all the way to completion.

## Origin / resume

- **First run session (resume for full context):** `claude --resume <first-run-session-id>` (project: `<your-project-path>`)
- **Output folder pattern:** `<api-repo>/docs/intent/1.7_proposed/launch-sweep-<YYYY-MM-DD>/`
- If the `<api-repo>/docs/intent/1.7_proposed/` folder does not exist, create it.
- **Fleet model (REQUIRED): Sonnet** (`claude-sonnet-4-6`). Verified on the first run via the agent transcripts. Sonnet is the cost/quality fit for transcript review + proposal drafting. **Never Haiku** — this is judgment work. Escalate a specific item to Opus only when root-cause reasoning or live browser proof is required (that's the evidence-folder's job, not the sweep's).

## The five user requirements (verbatim intent)

Each per-session agent must:
1. Determine if there is **incomplete work the user strongly implied the user wanted completed**.
2. If so, determine whether it is **directly implicated in the target initiative** (default: a front-end UI launch of <frontend-repo>).
3. If so, write **proposals immediately actionable in Obsidian**, with a **priority 1-99 as the filename prefix** (`NN_specific-completed-ux-outcome.md`), in **separate files**.
4. Make each proposal **clear enough that another agent can execute it end-to-end** and know where to get the context (repo, likely files, runnable verify recipe, source session id).
5. Make each proposal **clear enough that the user understands it the first time the user reads it** — lead with "What the user will experience when this is done," zero jargon.

Then, on each session: run `/on-turn-end` + `/update-the-founder` (stamping — see Known Gaps).

## Workflow (orchestrator = parent thread, never delegated)

### Step 1 — Ground reality first (do NOT skip)
- Resolve the **session window**: build a newest-first manifest of `*.jsonl` in `~/.claude/projects/<project-slug>/`, ranked by mtime. "Last 48h" or "next 100" resolves to a concrete rank range.
  ```bash
  DIR=~/.claude/projects/<project-slug>
  find "$DIR" -maxdepth 1 -name "*.jsonl" | while read -r f; do perl -e '@s=stat($ARGV[0]); print "$s[9]|$s[7]|$ARGV[0]\n"' "$f"; done \
    | sort -rn | awk -F'|' 'NR>=START && NR<=END {printf "%d|%d|%s\n", NR, $(1+1), $(1+2)}'
  ```
  (macOS BSD `find` has no `-printf`; use perl's `stat`. `rtk find` rejects compound predicates — call `find` directly.)
- Confirm the **Obsidian output folder** exists / create the dated sweep folder.
- Run `node "${CLAUDE_PLUGIN_ROOT}/scripts/memory-search.js" "<query>"` once to ground the **relevance filter** — what "the target launch" concretely means (which surfaces, bugs, UI work), so each agent's skip/proceed decision is grounded, not guessed.

### Step 2 — Fan out, newest-first, with an in-agent relevance gate
- **One Sonnet agent per session**, ordered newest→oldest.
- Each agent's FIRST move is a cheap relevance check (read the transcript head/tail): is this session related to the target initiative? If not → return `relevant:false` with a one-line reason and STOP (cheap skip). This is what keeps a 100+ session sweep affordable — most agents skip in seconds.
- Relevant agents extract implied-unfinished work and write proposals per the five requirements.
- Use a `Workflow` with `pipeline()` (no barrier) so a relevant session flows straight into proposal-writing while others are still being reviewed. Pin `model: 'sonnet'` on the agent calls. Return a structured verdict per agent (sessionId, sessionTitle, relevant, reason, proposalsWritten, founderUpdateLine).

### Step 3 — Triage folders + agents.md (so the proposals are dispatchable)
Sort proposals into work-state subfolders, each carrying an `agents.md` contract (workflow + oracle-grounded skill sequence + owning tier Opus|Sonnet, never Haiku):
- `1_1 next action - the users` — the user's own; don't auto-execute
- `1_1_get me a proposal` — needs a full proposal authored (Sequence B: /task-get-one-important → /align → /speak-human → /jonathan-check2 → /how-to-submit-and-track-proposals)
- `1_1_2 Get me evidence` — suspected, not proven; reproduce live + attach a clickable repro URL/screenshot before fixing (Opus)
- `1_2_approved for escalation` — escalate, don't act
- `1_3_approved for action` — execute + commit (Sequence A: /init → /resolve-proposals → /governer → /Test-Actual-UX → /commit w/ Resolves-Proposal → /pipeline-consumption-handoff)
- `1_9_agent-completed` — archive
- `1_99_deferred for after launch` — leave

### Step 4 — Tier rule (user-ratified)
Owning agent tier per folder/item is **Opus or Sonnet, chosen by gravity / risk-of-error. Haiku is NEVER part of this work.** Opus for judgment / root-cause / live proof / high blast-radius; Sonnet for standard review and execution.

### Step 5 — Initiative flags
When the user names a next-launch concern (e.g. **the email machine**), instruct every agent to explicitly flag any session touching it, so that WIP surfaces even if it's not the primary filter.

## Skill-pattern grounding
For per-folder skill sequences, query the v1 skill-pattern oracle (NotebookLM — make your own at https://notebooklm.google.com, loaded with your skill files and past sessions, so the skill sequence for each folder is grounded in your own skill patterns rather than guessed). `/predict-required-skills2` should fall back to v1 automatically — its v2 notebook is an unbuilt TODO; if v2 is missing, use v1.

## Known gaps (carry forward, don't re-discover)
- **Stamping (`/on-turn-end` + `/update-the-founder` as the last message on each reviewed transcript) did NOT reliably land** on the first run — grep of transcripts for the fleet attribution returned zero. If stamping is a hard requirement, verify it explicitly after the run (grep transcripts) and backfill; do not assume it fired.
- **Structured-output loss ~2%** — a few agents finish without returning the verdict schema after nudges. They fail loud (named in workflow `<failures>`); re-run just those sessions if they matter.
- **Untracked output** — the sweep folder is untracked in the submodule; `git mv` fails (use `mv`, which is reversible since nothing's in history). `git add` it if you want the proposals version-controlled.

## When to re-run
See the "when we need to burn tokens" idea list: run this on any session-count range not yet extracted, to keep sourcing dropped actionables ahead of a launch.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.