panning-for-gold
Panning for Gold extracts and evaluates ideas from unstructured content like voice transcripts, brain dumps, and stream-of-consciousness notes. Use it when processing multi-topic captures that need systematic thread identification, deep brainstorming on promising concepts, and permanent storage of findings. The skill performs three phases: extracting every idea thread without filtering, evaluating high-signal ones, then synthesizing results into actionable outcomes saved to project files.
git clone --depth 1 https://github.com/NateBJones-Projects/OB1 /tmp/panning-for-gold && cp -r /tmp/panning-for-gold/skills/panning-for-gold ~/.claude/skills/panning-for-goldSKILL.md
# Panning for Gold
## Overview
Transform raw brain dumps into evaluated, actionable idea inventories. Three phases: **Extract** every thread without filtering, **Evaluate** the highest-signal ones, then **Synthesize** into a permanent gold-found file.
**Core principle:** Every line gets examined. Nothing is dismissed as noise on the first pass. Personal threads, half-formed thoughts, and tangential observations often contain the highest-signal ideas.
## When to Use
- Voice transcripts (multi-speaker, timestamped)
- Stream-of-consciousness notes
- Brain dump markdown exports from ChatGPT/Gemini/Claude
- Any document where the user says "process this" or "what's in here"
- Multi-topic conversations that need thread extraction
## Critical Rules (Learned from Production Use)
These rules exist because they've been violated and caused wasted work:
1. **SAVE EVERYTHING TO PERMANENT FILES.** Phase 1 inventory, Phase 2 evaluations, and Phase 3 synthesis ALL get saved to files in the project's docs directory. Never rely on agent memory or temp task outputs surviving compaction.
2. **SUMMARIES FIRST, TRANSCRIPT SECOND.** If a summary/notes file exists alongside a transcript, use the summary as the primary extraction source. Only read the full transcript for: (a) exact quotes to support threads, (b) verifying completeness on the second pass. This saves 10-20K tokens per scan.
3. **EVALUATORS WRITE TO FILES.** Every background evaluator agent MUST write its evaluation to a permanent file (e.g., `docs/meetings/evaluations/YYYY-MM-DD-{slug}.md`) as part of its task. Do not depend on collecting agent return values.
4. **SYNTHESIS HAPPENS INLINE.** Do not dispatch a separate agent for synthesis. Write the gold-found file yourself after evaluators finish. If evaluators disappear (compaction, task ID loss), write the synthesis from your own reading.
5. **TWO PASSES ON TRANSCRIPTS.** Always run Phase 1 twice. First pass uses summary + targeted transcript reads. Second pass is a verification scan for missed threads. Present both inventories merged.
## Process
```dot
digraph panning {
"Receive raw input" [shape=box];
"Save raw input to file" [shape=box, style=bold];
"Read summary first (if exists)" [shape=box];
"PHASE 1a: Extract from summary" [shape=box];
"PHASE 1b: Verify against transcript" [shape=box];
"Save inventory to file" [shape=box, style=bold];
"Present to user" [shape=box];
"User confirms?" [shape=diamond];
"Targeted re-read of transcript" [shape=box];
"PHASE 2: Evaluate top threads" [shape=box];
"Evaluators write to files" [shape=box, style=bold];
"PHASE 3: Write gold-found file" [shape=box, style=bold];
"Update skill lessons" [shape=box];
"Receive raw input" -> "Save raw input to file";
"Save raw input to file" -> "Read summary first (if exists)";
"Read summary first (if exists)" -> "PHASE 1a: Extract from summary";
"PHASE 1a: Extract from summary" -> "PHASE 1b: Verify against transcript";
"PHASE 1b: Verify against transcript" -> "Save inventory to file";
"Save inventory to file" -> "Present to user";
"Present to user" -> "User confirms?";
"User confirms?" -> "PHASE 2: Evaluate top threads" [label="yes"];
"User confirms?" -> "Targeted re-read of transcript" [label="no"];
"Targeted re-read of transcript" -> "Save inventory to file";
"PHASE 2: Evaluate top threads" -> "Evaluators write to files";
"Evaluators write to files" -> "PHASE 3: Write gold-found file";
"PHASE 3: Write gold-found file" -> "Update skill lessons";
}
```
## Phase 0: Save Raw Input
**BEFORE ANY ANALYSIS:** Save the raw transcript/brain dump to a file if it's not already saved. Order: save first, analyze second. This rule exists because of two violations in a single session (2026-03-13).
File naming: `docs/meetings/YYYY-MM-DD-{source}-transcript.md` or `docs/brainstorming/YYYY-MM-DD-{topic}.md`
## Phase 0.5: Speaker Consolidation & Identification (Multi-Speaker Transcripts Only)
**BEFORE EXTRACTING THREADS:** Clean the speaker data. Voice transcripts with auto-generated speaker labels are actively misleading, not just unreliable. This is a data quality problem that must be solved before any analysis.
### Why This Exists
Added 2026-03-18 after a lunch meeting transcript: 10 speaker labels were generated for a 2-person conversation. The same person got different labels across scenes (office, car, restaurant), and different people shared labels. 40+ threads were attributed to the wrong person, turning pain points into pitches and vice versa. The entire inventory had to be re-done.
### The Problem (Quantified)
Typical voice transcription software (Otter, Plaud, phone recording apps) re-assigns speaker labels when:
- **Environment changes** (office to hallway to car to restaurant)
- **Background noise shifts** (quiet room vs. loud restaurant)
- **Volume/distance changes** (close mic vs. across table)
- **Brief pauses or interruptions** (any silence can trigger a new "speaker")
Result: A 2-person lunch meeting generated 10 speaker labels. Speaker 5 was attributed to BOTH participants at different points. The labels are worse than useless, they're actively wrong.
### Process
#### Step 1: Ask the user FIRST (10 seconds, saves 30 minutes)
Before reading a single line of transcript:
- "Who was present?"
- "Any other people who spoke briefly?" (receptionist, waiter, etc.)
- "What was the setting?" (helps predict environment-change label swaps)
#### Step 2: Speaker Label Audit (automated)
Run a quick frequency analysis on the raw transcript:
```
Count lines per speaker label
Sample 2-3 lines from each label
Compare: expected speakers vs. actual labels
```
If `number_of_labels > (expected_speakers * 2)`, the labels are fragmented and CANNOT be trusted for attribution. Flag this immediately.
#### Step 3: Build Anchor Lines
From memory, CRM, and context, identify "unmistakable" lines per person. These are lUse Nate Jones OB1 Agent Memory from OpenClaw with provenance, scope, review, and use-policy discipline.
Continuous learning system that extracts reusable knowledge from work sessions. Triggers: (1) /aiception command, (2) 'save this as a skill' or 'extract a skill from this', (3) 'what did we learn?', (4) after non-obvious debugging or trial-and-error discovery. Creates new skills when valuable reusable knowledge is identified. Integrates with Open Brain to prevent duplicates.
Morning digest of yesterday's Open Brain thoughts, drafted to Gmail
Generate infographic images from any research doc, Open Brain thoughts, or analysis. Auto-chunks content, writes prompts, generates images via Gemini API (free tier), and saves to media/. Use --premium for better text rendering.
|
|
|