xiaohongshu
xiaohongshu
insight-pilot
Literature research automation - search papers, code, and blogs, deduplicate, download PDFs, analyze and generate research reports. Supports incremental updates.
Full skill instructions
A workflow automation skill for literature research. Searches papers, GitHub repos/code/issues, PubMed, Dev.to, and blogs, deduplicates results, downloads PDFs, analyzes content, and generates incremental research reports.
Run the bootstrap script (automatically checks environment, creates and installs if missing):
bash .codex/skills/insight-pilot/scripts/bootstrap_env.sh
The script automatically detects if ~/.insight-pilot-venv exists and if packages are installed, only installing when necessary. See --help for advanced options.
Before running commands, activate the environment:
source ~/.insight-pilot-venv/bin/activate
Then use the CLI:
insight-pilot <command> [options]
| Command | Purpose | Required Args | Key Optional Args |
|---|---|---|---|
init | Create research project | --topic, --output | --keywords |
search | Search, merge and dedup | --project, --source, --query | --limit, --since, --until |
download | Download PDFs + convert to Markdown | --project | - |
analyze | Analyze papers with LLM | --project | --config, --force |
index | Generate index.md | --project | --template |
status | Check project state | --project | - |
sources | Manage blog/RSS sources | --project | --add, --remove, --config |
Add --json flag for structured output (recommended for agents):
insight-pilot status --json --project ./research/myproject
Create sources.yaml in your project root:
blogs:
- name: "Cursor Blog"
type: "ghost"
url: "https://cursor.sh/blog"
api_key: "auto"
- name: "Example WP Blog"
type: "wordpress"
url: "https://blog.example.com"
- name: "OpenAI Blog"
type: "rss"
url: "https://openai.com/blog/rss.xml"
category: "ai"
Manage sources via:
insight-pilot sources --project ./research/webagent
Environment variables:
GITHUB_TOKEN (GitHub API higher rate limit)PUBMED_EMAIL (required by NCBI)OPENALEX_MAILTO (OpenAlex polite usage)INSIGHT_PILOT_SOURCES (override sources.yaml path)# GitHub repositories + code + issues
insight-pilot search --project $PROJECT --source github --query "agent framework" --limit 30
# PubMed (requires PUBMED_EMAIL)
insight-pilot search --project $PROJECT --source pubmed --query "clinical agents" --limit 20
# Dev.to articles
insight-pilot search --project $PROJECT --source devto --query "ai agents" --limit 20
# Blogs (Ghost/WordPress/RSS from sources.yaml)
insight-pilot search --project $PROJECT --source blog --query "agents" --limit 20
This is the complete workflow for Agent + CLI collaboration.
Execution Principles:
items.json and setting status/exclude_reason).Execute the following commands directly, no confirmation needed:
PROJECT=./research/webagent
# Step 1: Initialize project
insight-pilot init --topic "WebAgent Research" --keywords "web agent,browser agent" --output $PROJECT
# Step 2: Search multiple sources (auto merge & dedup)
insight-pilot search --project $PROJECT --source arxiv openalex github pubmed devto blog --query "web agent" --limit 50
After deduplication, the Agent needs to review the paper list and remove content unrelated to the research topic.
# Check current status
insight-pilot status --json --project $PROJECT
Agent Actions:
$PROJECT/.insight/items.jsontitle and abstract for each paperstatus to "excluded" and add exclude_reasonitems.json{
"id": "i0023",
"title": "Unrelated Paper Title",
"status": "excluded",
"exclude_reason": "Not related to web agents, focuses on chemical agents"
}
Execute directly, no confirmation needed:
# Step 3: Download PDFs (converts to Markdown automatically)
insight-pilot download --project $PROJECT
Download Results:
download_status: "success", PDF saved to papers/download_status: "failed", recorded in $PROJECT/.insight/download_failed.jsonFailure list format:
[
{
"id": "i0015",
"title": "Paper Title",
"url": "https://...",
"error": "Connection timeout",
"failed_at": "2026-01-17T10:30:00Z"
}
]
Note: Advanced download (proxy/browser automation for failed items) is not yet implemented.
Precondition: Must complete Phase 3 Download PDFs first (download command automatically converts PDFs to Markdown).
MUST try LLM analysis first. If LLM is configured, run directly:
# Step 4: LLM Analysis (prefers converted Markdown, falls back to PDF text extraction)
insight-pilot analyze --project $PROJECT
Content Source Priority:
download auto-conversion via pymupdf4llm)LLM Configuration: Create .codex/skills/insight-pilot/llm.yaml:
provider: openai # openai / anthropic / ollama
model: gpt-4o-mini
api_key: sk-xxx # or set env var OPENAI_API_KEY
If no LLM is configured, the Agent needs to analyze manually:
papers/ directory$PROJECT/.insight/analysis/{id}.jsonAnalysis File Format ($PROJECT/.insight/analysis/{id}.json):
{
"id": "i0001",
"title": "Paper Title",
"summary": "One sentence summary",
"brief_analysis": "2-3 sentences brief analysis",
"detailed_analysis": "300-500 words detailed analysis",
"contributions": ["Contribution 1", "Contribution 2"],
"methodology": "Methodology description",
"key_findings": ["Finding 1", "Finding 2"],
"limitations": ["Limitations"],
"future_work": ["Future work 1"],
"relevance_score": 8,
"tags": ["webagent", "benchmark", "multimodal"],
"analyzed_at": "2026-01-17T12:00:00Z"
}
# Step 8: Generate/Update Index
insight-pilot index --project $PROJECT
Reports are stored in $PROJECT/index.md, showing only analyzed papers and linking to reports/{id}.md detailed reports.
Report Structure:
# WebAgent Research
> **Generated**: 2026-01-18 10:30
> **Keywords**: web agent, browser agent
> **Analyzed**: 5 papers
---
## 📚 Analyzed Papers
### [Paper Title](reports/i0001.md)
**Authors**: Author A, Author B et al. | **Date**: 2026-01-15 | **Links**: arXiv/DOI | **Relevance**: 8/10
**Summary**: One sentence summary...
> 2-3 sentences brief analysis...
**Tags**: `webagent` `benchmark` `multimodal`
---
## ⚠️ Papers Not Available
_The following papers could not be downloaded. Only abstracts are shown._
### Paper Title
**Authors**: ... | **Date**: ... | **Links**: ...
> Abstract...
---
## 📊 Statistics
| Metric | Value |
|--------|-------|
| Papers Analyzed | 5 |
| Download Failed | 1 |
| Total Processed | 6 |
For daily/weekly updates:
# 1. Search new papers (use --since for date limit, auto merge & dedup)
insight-pilot search --project $PROJECT --source arxiv openalex --query "web agent" --since 2026-01-17 --limit 20
# 2. [Agent] Review newly added papers
# 3. Download PDFs for new papers
insight-pilot download --project $PROJECT
# 4. [Agent] Analyze new papers, update reports
# 5. Regenerate index
insight-pilot index --project $PROJECT
research/myproject/
├── .insight/
│ ├── config.yaml # 项目配置
│ ├── state.json # 工作流状态
│ ├── items.json # 论文元数据(含 status, exclude_reason)
│ ├── raw_arxiv.json # 原始搜索结果
│ ├── raw_openalex.json
│ ├── download_failed.json # 下载失败列表(供高级下载重试)
│ ├── analysis/ # 论文分析结果
│ │ ├── i0001.json
│ │ ├── i0002.json
│ │ └── ...
│ └── markdown/ # PDF 转换结果(pymupdf4llm)
│ ├── i0001/
│ │ ├── i0001.md # 转换后的 Markdown
│ │ └── metadata.json
│ └── ...
├── papers/ # 已下载的 PDF
├── reports/ # 历史报告存档
└── index.md # 当前研究报告(增量更新)
{
"id": "i0001",
"type": "paper",
"title": "Paper Title",
"authors": ["Author One", "Author Two"],
"date": "2026-01-15",
"abstract": "...",
"status": "active|excluded|pending",
"exclude_reason": null,
"identifiers": {
"doi": "10.1234/example",
"arxiv_id": "2601.12345",
"openalex_id": "W1234567890"
},
"urls": {
"abstract": "https://arxiv.org/abs/2601.12345",
"pdf": "https://arxiv.org/pdf/2601.12345"
},
"download_status": "success|pending|failed|unavailable",
"local_path": "./papers/i0001.pdf",
"citation_count": 42,
"source": ["arxiv", "openalex"],
"collected_at": "2026-01-17T10:00:00Z"
}
| Code | Meaning | Retryable |
|---|---|---|
PROJECT_NOT_FOUND | Project directory doesn't exist | No |
NO_INPUT_FILES | Required input files missing | No |
NO_ITEMS_FILE | items.json not found | No |
INVALID_SOURCE | Unknown data source | No |
NETWORK_ERROR | API request failed | Yes |
RATE_LIMITED | API rate limit hit | Yes |
DOWNLOAD_FAILED | PDF download failed | Yes |
CONVERSION_FAILED | PDF to Markdown conversion failed | Yes |
MISSING_DEPENDENCY | Required package not installed | No |
Execution Principles:
Specific Guidelines:
bash .codex/skills/insight-pilot/scripts/bootstrap_env.sh first--json flag: Get structured output for parsingstatus and exclude_reason in items.jsonanalyze command if configured, otherwise manually create analysis/{id}.jsonxiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience