kirk-content-pipeline
Create KSVC-validated Twitter content from research PDFs. Content types: long threads, quick takes, breaking news, shitposts, personal commentary, victory laps. Triggers on "create content", "write thread", "make a post", "shitpost", or when working with PDFs in /Users/Shared/ksvc/pdfs. REQUIRED STEPS - (1a) Explore agents to scan PDFs, (1b) RLM for deep extraction, (1c) Cross-doc synthesis with rlm-multi, (2) KSVC holdings check (preliminary), (3) write data backbone, (4a) AUDIT with RLM verification, (4a.5) Gemini web cross-validation for FAIL/UNSOURCED inferences, (4b) Final holdings verification (ALL 7 models), (4c) Stylize with kirk-mode skill, (4d) humanizer pass, (5) save draft, (6) chart decision & generation.
安装 / 下载方式
TotalClaw CLI推荐
totalclaw install clawskills:clawskills~lukerspace-kirk-content-pipelinecURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/clawskills%3Aclawskills~lukerspace-kirk-content-pipeline/file -o lukerspace-kirk-content-pipeline.md# Kirk Content Pipeline Create Twitter content from analyst research PDFs, validated against KSVC holdings. ## Pipeline Steps (MANDATORY) ``` 1a. Scan PDFs (Explore agents for broad screening) 1b. Extract insights (RLM for deep extraction - text, tables, AND charts) 1c. Cross-doc synthesis (rlm-multi for insights across sources) 2. Check KSVC holdings (preliminary - with known tickers) 3. Write content (data backbone, Serenity-heavy) 4a. AUDIT (verify draft claims against source PDFs with RLM) 4a.5. GEMINI CROSS-VALIDATION (web-verify FAIL/UNSOURCED inferences) 4b. Final Holdings Verification (check ALL 7 models with discovered tickers) 4c. Stylize (invoke kirk-mode skill for voice/character) 4d. Humanize (remove AI patterns) 5. Save draft for approval 6. Chart decision & generation (after draft crystallizes thesis) 7. PUBLISH to final folder (clean version for posting) ``` **Never skip steps 4a-4d. Use 1a for multi-PDF screening, 1b for deep extraction, 1c for cross-doc synthesis, 4a for verification, 4a.5 for web cross-validation, 4b for final holdings check, 4c for character voice, 4d for AI pattern removal.** **⚠️ CRITICAL: Step 1b extracts data. Step 1c synthesizes across docs. Step 4a VERIFIES the written content. Step 4a.5 CROSS-VALIDATES inferences.** - 1b: "What does each PDF say?" (per-doc extraction) - 1c: "What patterns emerge across PDFs?" (cross-doc synthesis) - 4a: "Does my draft accurately reflect the sources?" (source-locked verification) - 4a.5: "Are the flagged inferences valid per public sources?" (web cross-validation) - 4c: "Which Kirk mode fits this situation?" (character voice) --- ## Subagent Permissions (CRITICAL) **Subagents CANNOT Read files outside the project directory.** PDFs in `/Users/Shared/ksvc/pdfs/` are blocked. The fix: **symlink PDFs into the project directory** before spawning subagents. **The main agent MUST create a symlink before Step 1a:** ```bash ln -sf "/Users/Shared/ksvc/pdfs/YYYYMMDD" ".claude/pdfs-scan" ``` Then subagents Read from `.claude/pdfs-scan/filename.pdf` — this works because the path resolves inside the project. | Access Method | `/Users/Shared/` path | Symlinked project path | |--------------|----------------------|----------------------| | Subagent Read tool (PDF) | ❌ Auto-denied | ✅ Works | | Subagent Read tool (images) | ❌ Auto-denied | ✅ Works | | Main agent Read tool | ✅ User approves | ✅ Works | | Bash → RLM | ✅ Any path | ✅ Any path | **Discovered 2026-02-07:** Subagents fail with `"Permission to use Read has been auto-denied (prompts unavailable)"` on `/Users/Shared/` paths. Symlink into project dir = full Read access. Tested: 19 PDFs, medium thoroughness, 125k tokens, zero errors. --- ## Content Types & Voice Blends **Full guide:** `references/kirk-voice.md` — Read this for templates and examples. Kirk voice = Serenity's data + Citrini7's wit + Jukan's skepticism + Zephyr's energy. | Type | When | Blend | Key Element | |------|------|-------|-------------| | **Long Thread** | Deep dive, multi-source | Serenity + Jukan | TLDR + skepticism | | **Quick Take** | Single insight, one report | Citrini7 + Serenity | Punchy + one number | | **Breaking News** | Just dropped | Zephyr + Jukan | Reaction word + number | | **Shitpost** | Market absurdity | Citrini7 + Zephyr | Meme format | | **Personal Commentary** | Opinion, question | Pure Jukan | First-person + uncertainty | | **Victory Lap** | KSVC call worked | Pure Zephyr | Entry/Now + thesis | ### Quick Formulas **Long Thread:** Hook → TLDR → Numbers → Skepticism → Position **Quick Take:** Headline number → Context → "If you're looking now..." **Breaking News:** "Huge." / "Well well well..." → Key number → Source **Victory Lap:** "$TICKER up X% since KSVC added it" → Entry/Now → Thesis validated --- ## Step 1a: Scan PDFs with Explore Agents Use Explore agents for **broad screening** when you have many PDFs to review. This is faster than RLM for initial discovery. ### Step 1a.0: Check Published Threads (MANDATORY - DO FIRST) **⚠️ Before scanning any PDFs, check what Kirk has already posted.** ```bash # List all published threads ls /Users/Shared/ksvc/threads/ # Read recent thread.md files to understand what topics are covered ``` For each published thread, note: - **Topic** (what was the thesis?) - **Source PDFs used** (check _metadata.md) - **Date** (how recent?) **Then when selecting a topic after scanning, REJECT any topic that:** - Uses the same primary source PDF as a published thread - Covers the same thesis/angle (even if from different sources) - Would read as a repeat to Kirk's followers **Acceptable overlap:** - A follow-up/update to a previous thread with NEW data (e.g., earnings confirm the thesis) - A different angle on the same sector (e.g., posted about ABF shortage, now posting about specific company earnings) - Explicitly framed as "update: here's what changed since my last post on X" **Why this exists (Case Study — ABF Substrate, 2026-02-07):** Kirk published a 10-tweet thread on Feb 5 covering Goldman's ABF shortage report (10%→21%→42%, Kinsus/NYPCB/Unimicron). On Feb 7, the pipeline picked the same Goldman report and produced a 3-tweet quick take with the same numbers, same companies, same angle. We didn't check published threads first, so we wasted a pipeline run on duplicate content when 10 other fresh topic angles were available. ### When to Use - Screening 10+ PDFs to find relevant ones - Finding cross-document connections - Building a thesis from multiple sources - Don't know which PDFs matter yet ### How to Scan ``` 1. Check published threads (Step 1a.0 above) 2. List recent PDF folders and count PDFs ls /Users/Shared/ksvc/pdfs/ | tail -5 ls /Users/Shared/ksvc/pdfs/YYYYMMDD/ | wc -l 3. Symlink PDFs into project directory (REQUIRED for subagent access) ln -sf "/Users/Shared/ksvc/pdfs/YYYYMMDD" ".claude/pdfs-scan" 4. Split PDFs into groups and spawn parallel Explore agents TARGET: ~5 PDFs per agent. Spawn ALL agents in a single message. - Each agent gets a specific list of filenames to scan - All agents run simultaneously → total time = slowest agent - Haiku is cheap — more agents = faster with no meaningful cost increase ``` ### Agent Sizing | PDFs | Agents | PDFs/Agent | Expected Time | |------|--------|-----------|---------------| | ≤5 | 1 | all | ~25s | | 6-10 | 2 | ~5 each | ~25s | | 11-15 | 3 | ~5 each | ~25s | | 16-20 | 4 | ~5 each | ~25s | | 21-30 | 5-6 | ~5 each | ~30s | **Why ~5 PDFs per agent?** Sweet spot for speed. Each PDF takes ~4-8s to Read + summarize. 5 PDFs ≈ 25s per agent. Adding more PDFs per agent saves nothing (same total tokens) but makes wall-clock time worse. **Cost:** Haiku is cheap. 4 agents × 5 PDFs × ~4k tokens = ~80k input tokens total — same as 1 agent doing all 20. Parallelism is free. **Cross-doc synthesis trade-off:** Each agent only sees its batch, so cross-batch themes are the main agent's job. This is fine — the main agent merges all results anyway. ### Example: Spawn Explore Agents **Step 1: Main agent creates symlink and lists PDFs:** ```bash ln -sf "/Users/Shared/ksvc/pdfs/20260205" ".claude/pdfs-scan" /bin/ls ".claude/pdfs-scan/" ``` **Step 2: Split filenames into groups and spawn agents in parallel (single message, multiple Task calls):** ``` # Agent 1 — first batch Task(subagent_type="Explore", prompt=""" **THOROUGHNESS: medium** Scan these specific PDFs for content angles: - file1.pdf - file2.pdf - file3.pdf - file4.pdf - file5.pdf - file6.pdf - file7.pdf For each PDF, Read enough pages to understand the full thesis (use judgment — some need 1-2 pages, others 1-5): Read(file_path="/Users/dydo/Documents/agent/ksvc-intern/.claude/pdfs-scan/FILENAME.pdf", pages="1-5") For each PDF extract: - Company/sector, ticker, rating, price target - Key thesis and supporting numbers - Supply chain connections - Potential content angles After scanning your batch, provide: 1. Per-PDF sum