Community연구 & 데이터 분석github.com

grahama1970/arxiv

Search arXiv for papers and extract knowledge into memory. Use `search` to find papers, `learn` to extract knowledge.

arxiv란 무엇인가요?

arxiv is a Claude Code agent skill that search arXiv for papers and extract knowledge into memory. Use `search` to find papers, `learn` to extract knowledge.

지원 대상Claude Code~Codex CLI~CursorAntigravity
npx skills add https://github.com/grahama1970/agent-skills/tree/main/skills/arxiv

Installed? Explore more 연구 & 데이터 분석 skills: obra/superpowers, affaan-m/quarkus-verification, affaan-m/uspto-database · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

STOP. READ THIS ENTIRE SKILL.MD BEFORE CALLING ANY ENDPOINT.

arXiv Skill

Search arXiv and extract knowledge into memory.

Commands

CommandDescription
searchFind papers (returns abstracts for triage)
learnExtract knowledge into memory
downloadDownload paper HTML by default; output files are named from the paper title

MANDATORY: Dynamic Context Generation

NON-NEGOTIABLE: Before ANY arxiv operation, the agent MUST generate a dynamic context file that captures the current collaboration goals.

Why This Is Required

Without dynamic context:

  • Search returns tangentially related papers
  • Abstract triage lacks clear relevance criteria
  • Extracted knowledge is generic ("What does paper say about X?")

With dynamic context:

  • Search is targeted to specific implementation needs
  • Abstract evaluation has clear accept/reject criteria
  • Extracted knowledge is actionable ("How to implement X as code")

Workflow: Context-First Paper Discovery

0. CONTEXT  → Generate dynamic context from conversation (REQUIRED)
1. SEARCH   → Use context to find relevant papers
2. TRIAGE   → Evaluate abstracts against context goals
3. DECIDE   → User picks which papers to extract
4. LEARN    → Extract with context for focused knowledge chunks

Step 0: Generate Dynamic Context (REQUIRED)

Before searching, the agent MUST create /tmp/arxiv_context.md with:

# Research Context: [Your Specific Goal]

## What We're Building
[Describe the specific feature/system, e.g., "Theory of Mind for Horus agent"]

## Current State
[What already exists, what's implemented, what we have]

## What We Need From Papers
1. [Specific question 1, e.g., "How to represent belief confidence as data structure"]
2. [Specific question 2, e.g., "When to trigger counterfactual reflection"]
3. [Specific question 3, e.g., "Algorithm for updating beliefs on contradiction"]

## Search Terms to Try
- [term 1]
- [term 2]

## Relevance Criteria for Abstract Triage
- HIGH: Papers that directly address [specific need]
- MEDIUM: Papers with related techniques that could adapt
- LOW: Tangentially related, skip unless nothing better

## Knowledge Extraction Focus
- Extract: [what kind of knowledge, e.g., "algorithms, data structures, update rules"]
- Skip: [what to ignore, e.g., "evaluation metrics, dataset descriptions, future work"]

## Output Format Preference
Phrase as implementation problems, not summaries:
- BAD: "What does the paper say about X?"
- GOOD: "How should we implement X? What code pattern?"

Step 1: Search With Context

After creating context, use it to guide search:

# Search guided by context goals
./run.sh search -q "theory of mind BDI agent belief tracking" -n 10

Step 2: Triage Against Context

Evaluate each abstract against the context's relevance criteria:

## Papers Found - Evaluating Against Context Goals

### 1. **Paper Title** (arXiv:XXXX.XXXXX)
> [Abstract]

**Against context:**
- Addresses goal 1 (belief representation): YES - describes BDI dict structure
- Addresses goal 2 (counterfactual reflection): NO
- **Verdict: HIGH** - directly answers our data structure question

### 2. **Paper Title** (arXiv:XXXX.XXXXX)
> [Abstract]

**Against context:**
- Addresses goal 1: NO
- Addresses goal 2: YES - describes reflection trigger conditions
- **Verdict: HIGH** - directly answers our algorithm question

---
Which papers should I extract?

Step 3: Extract With Context File

Pass the context file to learn for focused extraction:

./run.sh learn 2501.15355 --scope persona-research --context-file /tmp/arxiv_context.md

Do NOT proceed without user confirmation on paper selection.


search - Find Papers

./run.sh search -q "agent memory" -n 5

Returns papers with full abstracts for quick triage.

OptionDescription
-qSearch query (required)
-nMax results (default: 10)
-cCategory filter (e.g., cs.LG)
-mPapers from last N months
--smartLLM translates natural language query

learn - Extract Knowledge

./run.sh learn 2601.08058 --scope memory

Full pipeline: download → profile → extract → Q&A → interview → store → verify edges.

OptionDescription
--scopeMemory scope (required)
--contextDomain focus for relevance
--dry-runPreview without storing
--skip-interviewAuto-accept recommendations
--accurateForce PDF + VLM extraction
--modeInterview mode: auto, html, tui (default: auto)

Extraction Mode (HTML-First)

NEW: The learn command now uses HTML-first extraction by default:

  1. Downloads HTML from ar5iv.org (arxiv papers converted to clean HTML)
  2. Runs quick profile check (counts figures/tables)
  3. Routes to appropriate extraction mode
arxiv learn <id>
       │
       ├── fast mode (default) ──► ar5iv HTML ──► extractor HTML
       │   - Most research papers       (100% extraction parity)
       │   - Text-heavy content         (no PDF column issues)
       │
       └── accurate mode ──► arxiv PDF ──► extractor PDF + VLM
           - Papers where figures are critical
           - Complex tables with precise values
           - Use: --accurate flag

Why HTML-First?

AspectHTML (ar5iv)PDF
Extraction quality100% parity~87% (column detection issues)
SpeedFast (~5s)Slower (~30s-2min)
Figure captionsIncludedRequires VLM
Math renderingMathML preservedText approximation
Layout issuesNone2-column detection problems

ar5iv.org converts arxiv LaTeX source to semantic HTML with MathML equations and proper structure. This eliminates PDF extraction issues.

When to Use --accurate

Content TypeRecommended ModeWhy
Most research papersdefault (HTML)Text + captions are sufficient
Survey papersdefault (HTML)Broad coverage, exact figures not critical
Papers with critical diagrams--accurateWhen visual content IS the point
Papers with complex data tables--accurateWhen precise numbers matter
# Default: HTML extraction (fast, reliable)
./run.sh learn 2601.10025 --scope persona-research

# Force accurate mode for figure-heavy papers
./run.sh learn 2501.15355 --scope tom-research --accurate

Profile-Based Routing

The skill automatically profiles downloaded HTML to suggest extraction mode:

  • < 20 figures AND < 10 tables: Uses HTML (fast mode)
  • > 20 figures OR > 10 tables: Suggests accurate mode (or use --accurate)

Profile output shows in logs:

Profile: 12 figures, 4 tables → Using HTML extraction (fast mode)

Happy Path

# 1. Search - get abstracts
./run.sh search -q "agent memory systems" -n 5

# 2. STOP - discuss abstracts with user, assess relevance

# 3. Learn - extract user-selected papers (HTML extraction by default)
./run.sh learn 2601.10702 --scope memory --context "agent systems"

Examples

Research Survey (HTML extraction - default)

./run.sh learn 2601.10025 --scope persona-research --context "LLM personality"

Paper with Critical Figures (accurate mode)

./run.sh learn 2501.15355 --scope tom-research --context "BDI architecture" --accurate

Dry Run First

# Preview what would be extracted
./run.sh learn 2601.10025 --scope test --dry-run

Download HTML Only

# Download ar5iv HTML for manual inspection (default; title-based filename)
./run.sh download -i 2501.15355

# Download PDF only when needed
./run.sh download -i 2501.15355 --format pdf

Batch Processing (Parallel)

# Process multiple papers in parallel (default: 2 concurrent)
./run.sh batch 2501.15355 2502.14171 2310.10701 --scope tom-research --context-file /tmp/context.md

# Increase parallelism for faster processing
./run.sh batch 2501.15355 2502.14171 2310.10701 --scope research --parallel 3

# Dry run to preview
./run.sh batch 2501.15355 2502.14171 --scope test --dry-run
OptionDescription
--parallel NMax papers to process concurrently (default: 2)
--context-fileRich context file for focused extraction
--skip-interviewAuto-accept (default for batch)
--dry-runPreview without storing

Note: Recommended parallelism is 2-3 papers. Higher values may hit API rate limits.


Common Mistakes

WRONG: Searching without creating context first

./run.sh search -q "agent memory" -n 10

RIGHT: Generate /tmp/arxiv_context.md THEN search

# 1. Write context file with specific goals and relevance criteria
# 2. Then search guided by context
./run.sh search -q "agent memory BDI belief tracking" -n 10

WRONG: Extracting papers without user confirmation

# Agent auto-extracts all 10 search results
./run.sh learn 2501.15355 --scope research
./run.sh learn 2502.14171 --scope research

RIGHT: Present abstracts, let user pick, then extract

./run.sh search -q "agent memory" -n 10
# STOP - discuss abstracts with user, assess relevance
# User picks papers 2 and 5
./run.sh learn 2501.15355 --scope research --context-file /tmp/arxiv_context.md

WRONG: Using --accurate for text-heavy papers

./run.sh learn 2601.10025 --scope research --accurate  # wastes time on PDF extraction

RIGHT: Default HTML mode for most papers, --accurate only for figure-heavy ones

./run.sh learn 2601.10025 --scope research  # HTML is faster and more reliable

Dependencies

ComponentURLPurpose
ar5iv.orghttps://ar5iv.orgLaTeX to HTML conversion for arxiv papers
extractor skill(sibling skill)HTML/PDF content extraction
qra skill(sibling skill)Q&A pair generation from text

QRA-training failure recovery note (2026-09-14)

Observed during qra-training research: download --format html failed when the arXiv metadata API returned 429 or timed out before the HTML/PDF download step. The CLI now treats metadata lookup as optional for direct paper IDs. If metadata fails, it builds direct fallback URLs and tries, in order:

  1. https://arxiv.org/html/<id-with-version>
  2. https://arxiv.org/html/<base-id>
  3. https://ar5iv.org/abs/<base-id>
  4. https://ar5iv.labs.arxiv.org/html/<base-id>

A metadata failure should appear in warnings[], not errors[], when one of those content URLs succeeds.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

grahama1970/acceptance-contract

Turn a client brief, zip bundle, directory, or single requirements file into a typed acceptance-contract bundle with extracted requirements, acceptance checks, open questions, an immutable-goal draft, and a create-report-backed decision report. Use when users say acceptance contract, brief to requirements, freeze the goal, create immutable goal, amend immutable goal, build a Battle requirements bundle, or extract requirements from this bundle.

grahama1970/agent-ecosystem

Canonical map and shared contracts for the agent-governance ecosystem: the pi.receipt_envelope.v1 boundary envelope, the component graph, and the rules for which component owns which schema. Use when wiring a skill or extension into the shared receipt world, when asking how shame, triage-error, tau, ask, project-watchdog, ops-herdr, ponytail, and Memory fit together, or when validating an envelope.

grahama1970/agentic-evals

Agentic evaluation of skills using multi-trial fixtures, deterministic command assertions, trajectory checks, safety constraints, and evidence-backed readiness scoring. Use when users ask for agentic evals, multi-trial skill evaluation, skill trajectory validation, or readiness scoring for a skill workflow.

grahama1970/agent-inbox

File-based inter-agent messaging with headless dispatch. Check inbox, send bugs/requests to other projects, automatically spawn headless agents to fix bugs, and track progress via task-monitor.

grahama1970/agents-registry

Generate and query the centralized agent identity registry. Scans .pi/agents/*/AGENTS.md, parses frontmatter, outputs agents-registry.json and optionally syncs to /memory for semantic search.

grahama1970/agent-status

Artifact-driven status surfaces for long-running project-agent work. Maintains status.json, events.jsonl, proof manifests, and a stale-aware STATUS.html so humans can tell where the agent is, what passed, what is still unproven, and what decision or action is next — without dashboard theater.

grahama1970/align

Round-based context alignment before execution. Use when the human, project agent, WebGPT, scillm, ask, dogpile, memory, or project-knowledge may each hold different facts about a task; especially before ambiguous design, infographic, product workflow, high-stakes implementation, plan-iterate, project-infographic, or multi-review work.

grahama1970/analytics

Flexible data science analytics for any dataset. Auto-discovers schema, recommends charts, exports to create-figure. Works with JSONL, JSON, CSV from any source.

grahama1970/analyze-chatterbox-emotions

Evaluate generated Chatterbox voice files as voice-quality artifacts: affect match, arousal/valence proxies, pause placement, intelligibility inputs, clipping, loudness, and discontinuity flags. Use when reviewing Chatterbox emotional tags, pauses, Turbo/base affect delivery, Persona Dream utterance renders, or whether generated speech matches an intended product-facing affect.

grahama1970/analyze-elf

Reverse-engineer features from ELF binaries. Extracts CLI commands, state machines, protocols, Zod schemas, and data models. Automatically generates a /create-walkthrough prosecution brief with Mermaid diagrams. Uses /treesitter for AST analysis of bundled JS/TS source.

grahama1970/animation-vocabulary

Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term ("the bouncy thing when a popover opens" → Pop in; "the iOS rubber-band scroll" → Rubber-banding). Use when the user asks "what's it called when…", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.

grahama1970/anonymize-data

Anonymize supported CSV, JSON, UTF-8 text, and SQLite files using an explicit policy through the oai-trial project. Use for anonymize data, pseudonymize exports, redact policy literals, or discover and explicitly approve fuzzy name aliases. The skill is a thin CLI/Docker interface, not another engine.

grahama1970/anvil

Heavy-duty "No-Vibes" debugging and hardening orchestrator. Use this for complex, stubborn bugs where `review-code` has failed, or for "Red Teaming" (hardening) a codebase. Runs multiple agents in parallel (Thunderdome) using git worktree isolation.

grahama1970/apple-design

Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.

grahama1970/argue

Multi-persona structured debate orchestrator. Personas research via /dogpile, consult colleagues via /ask, and argue toward nuanced synthesis on complex questions.

grahama1970/ask

Use when the user asks to query project memory, ask an oracle, use supported browser-backed reviewers, run Tau roundtable/single-handler workflows, ask Pi-native subagents from within Pi, run persona/deep-review workflows, generate image prompts, check OS/project health through composed skills, or run an ask DAG. This skill is the executable /ask runtime; do not replace it with an informal subagent, plain web search, or hand-written review; inside Pi, explicit Pi-native subagent targets are routed through the pi-subagents tool as an Ask target type.

grahama1970/assess

Step back and critically reassess project state. Use when asked to "assess", "step back", "fresh eyes", "check alignment", "sanity check", "health check", "prune documentation", or "evaluate what's working". Offers documentation pruning and doc-code alignment analysis. Offer to run after major changes (don't auto-run).

grahama1970/assistant

Shared GPT + classifier inference gateway for persona monitor tasks. Routes validation and classification through a 4-tier cascade: heuristic → classifier → local GPT → scillm.

grahama1970/assistant-lab

Self-improvement workbench for /assistant. All the tools needed to diagnose, train, evaluate, and promote models in a continuous loop. The "warm pond" where /assistant evolves its own inference stack.

grahama1970/batch-quality

Pre-flight validation and quality gates for batch LLM operations. ACTUALLY tests samples through LLM before burning tokens. Uses SPARTA contracts for DuckDB validation queries. Integrates with task-monitor for enforced quality gates.

관련 스킬