Agent skill
pdf-brain
Research and library synthesis from the docs/PDF corpus, mapped to joelclaw system philosophy and concrete operational actions (especially k8s reliability). Trigger on: 'research this', 'from the library', 'from the books', 'pdf brain', 'correlate this', 'synthesize', or any request to derive practical architecture/ops guidance from the docs corpus. This skill is analysis-only; for ingestion/backfill workflows use pdf-brain-ingest.
Install this agent skill to your Project
npx add-skill https://github.com/joelhooks/joelclaw/tree/main/skills/pdf-brain
SKILL.md
PDF Brain — Research → Practical System Moves
Use this skill when the user wants evidence-backed synthesis from the docs library (600+ books, PDFs, long-form references), not generic web summarization.
Pipeline v2 (ADR-0234)
The docs pipeline uses a staged artifact chain:
- Extraction: opendataloader-pdf → structured markdown with headings, tables, reading order
- Chunking: markdown-native heading detection, no overlap, hierarchical section + snippet chunks
- Embeddings: nomic-embed-text via ollama GPU (768-dim, retrieval-tuned, pre-computed at ingest) in
docs_chunks_v2collection - Artifacts: durable on NAS at
/Volumes/three-body/docs-artifacts/{docId}/—.md,.meta.json,.chunks.jsonl - Summaries: LLM-generated per-document summaries in
.meta.json
When to Use
Trigger cues (explicit or implied):
- "research this" / "from the library" / "from the books"
- "pdf brain" / "correlate this to our system"
- "what does the research say" / "what do the books say"
- "expand this into practical ideas"
Retrieval Workflow
CLI path (preferred for interactive sessions)
# Search across all books — semantic by default (nomic 768-dim)
joelclaw docs search "distributed consensus" --limit 8
# Search within a specific book
joelclaw docs search "consensus" --doc designing-dataintensive-applications-39cc0d1842a5
# Expand a chunk into surrounding context
joelclaw docs context <chunk-id> --mode snippet-window --before 2 --after 2
# Get the full parent section
joelclaw docs context <chunk-id> --mode parent-section
# Get neighboring sections for broad context
joelclaw docs context <chunk-id> --mode section-neighborhood --neighbors 2
# Read the full structured markdown of a book
joelclaw docs markdown <doc-id>
# Get document summary + taxonomy metadata
joelclaw docs summary <doc-id>
API path (for programmatic access or docs-api consumers)
GET /search?q=distributed+consensus&semantic=true&expand=true&assemble=true
GET /docs/:docId/toc
GET /docs/:docId/markdown
GET /docs/:docId/summary
GET /chunks/:chunkId
The docs-api runs on k8s at docs-api:3838 (Bearer auth required).
Context expansion strategy
The library supports progressive context expansion:
- Search → chunk-level hits with heading_path and snippet
- snippet-window → 2 chunks before/after for local context
- parent-section → the full section containing the snippet
- section-neighborhood → adjacent sections for broader flow
- markdown → the complete structured book text
Start narrow, expand only when needed. Don't dump full books into context.
Evidence Synthesis
Build an evidence ledger
While reading, keep a compact ledger:
doc(title)chunk-idclaim(one sentence)relevance(why it matters to this problem)
Never output synthesis without traceable evidence.
Convert evidence into principles
Turn each claim into an operational principle in imperative form:
- "Treat partial failure as normal."
- "Fail fast at dependency boundaries."
- "Prefer idempotent replay-safe remediation loops."
Avoid vague advice. Each principle must imply a technical behavior.
Correlate to joelclaw philosophy
Map principles to existing joelclaw operating rules:
- single source of truth
- silent failures are bugs
- Inngest durability + retries
- CLI-first agent interface
- observability required at every step
- skill/doc updates when reality changes
Translate into action
For each principle, produce:
- Concrete change (file/service/config path)
- Validation gate (exact command)
- Failure signal (what proves it did not work)
- Rollback or containment move
Taxonomy
The library is classified via SKOS taxonomy:
jc:docs:programming(systems, languages, architecture)jc:docs:business(creator economy)jc:docs:education(learning science, pedagogy)jc:docs:design(game, systems, product)jc:docs:marketing,jc:docs:strategy,jc:docs:ai,jc:docs:operations
Use --concept jc:docs:programming:systems to narrow by domain.
Use joelclaw docs status to see facet counts per concept.
Rules
- Do not fabricate quotes or claims.
- Always cite chunk IDs for non-obvious assertions.
- Do not output "book report" fluff. Translate to operations.
- If infra changes are proposed, include verification commands.
- If work implies architectural policy change, tie it to an ADR path.
- Start with search, expand only as needed. Don't waste context on full book dumps.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
skill-review
Audit and maintain the joelclaw skill inventory. Use when checking skill health, fixing broken symlinks, finding stale skills, or running the skill garden. Triggers: 'skill audit', 'check skills', 'stale skills', 'skill health', 'skill garden', 'broken skill', 'skill review', 'fix skills', 'garden skills', or any task involving skill inventory maintenance.
cli-design
Design and build agent-first CLIs with HATEOAS JSON responses, context-protecting output, and self-documenting command trees. Use when creating new CLI tools, adding commands to existing CLIs (joelclaw, slog), or reviewing CLI design for agent-friendliness. Triggers on 'build a CLI', 'add a command', 'CLI design', 'agent-friendly output', or any task involving command-line tool creation.
daily-summary
Generate a daily system activity summary across all joelclaw subsystems. Triggers on 'daily summary', 'what happened today', 'system report', 'today's tally', 'activity summary', 'what did we do', 'daily report'.
inngest-durable-functions
Create and configure Inngest durable functions. Covers triggers (events, cron, invoke), step execution and memoization, idempotency, cancellation, error handling, retries, logging, and observability.
recall
Fan-out search across all memory sources when context is unclear or vaguely referenced. Triggers on: 'from earlier', 'remember when', 'what we discussed', 'that thing with', 'the conversation about', 'did we ever', 'what happened with', 'you mentioned', 'we talked about', 'earlier today', 'last session', 'the other day', or any vague reference to past context that needs resolution before the agent can act.
inngest-local
Set up self-hosted Inngest on macOS as a durable background task manager for AI agents. Interactive Q&A to match intent — from Docker one-liner to full k8s deployment with persistent state. Use when: 'set up inngest', 'background tasks', 'durable workflows', 'self-host inngest', 'event-driven functions', 'cron jobs', or any request for a local workflow engine.
Didn't find tool you were looking for?