# LLM Tracker Maintainer

> Maintain the LLM Papers Tracker (xplore0114.github.io/llm-tracker). Handles paper fetching from arXiv, data sync, GitHub Actions workflow fixes, and page updates. Use when user mentions llm-tracker, LLM论文追踪, paper updates, arxiv fetch issues, or the tracker website.

- Skill: `xplore-lab/llm-tracker-maintainer` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add xplore-lab/llm-tracker-maintainer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/xplore-lab/llm-tracker-maintainer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: Xplore-LAB (https://skillmd.com/u/xplore-lab)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/xplore-lab/llm-tracker-maintainer

---


# LLM Tracker Maintainer

## Quick Reference

- **Repo**: `Xplore0114/Xplore0114.github.io`
- **Data path**: `llm-tracker/` (papers.json, company-papers.json, timeline-data.json)
- **Script**: `scripts/fetch_papers.py` (root level)
- **Workflow**: `.github/workflows/update-papers.yml`
- **Auth**: `GITHUB_PAT` env var (already configured in `~/.bashrc`)
- **Schedule**: Daily at 01:00 UTC (09:00 Beijing)

## Common Issues & Fixes

### Workflow won't trigger via API (HTTP 422)

Usually caused by corrupted YAML or duplicate workflow files.

1. Delete duplicate workflow files (e.g. both `daily-papers.yml` and `update-papers.yml`)
2. Ensure `workflow_dispatch:` is present under `on:`
3. If still failing, delete and recreate the workflow file
4. Python code inside `run: |` blocks must use heredoc (`<< 'PYEOF'`) for inline scripts
5. Never put raw `\n` in YAML string values — use heredoc instead

### arXiv API returns nothing (HTTP 301 redirect)

arxiv.org now requires HTTPS. Ensure the script uses:
```python
url = "https://export.arxiv.org/api/query?" + params  # NOT http://
```

### Timeline not updating

The timeline page reads `timeline-data.json`. This file must be generated by the fetch script.
See `scripts/sync_timeline.py`.

## Manual Update Workflow

### Via API (recommended)
```bash
curl -s -X POST \
  -H "Authorization: Bearer ${GITHUB_PAT}" \
  -H "Accept: application/vnd.github+json" \
  "https://api.github.com/repos/Xplore0114/Xplore0114.github.io/actions/workflows/update-papers.yml/dispatches" \
  -d '{"ref":"master"}'
```

### Via page button
The llm-tracker page has a "⚡ 更新数据" button that calls the same API.

### Full regeneration (local)
```bash
cd /tmp
# Download current papers.json from repo
# Run scripts/fetch_papers.py locally
# Upload results via GitHub API
```

## Data Files

| File | Description | Generated by |
|------|-------------|-------------|
| `papers.json` | All papers (topic queries) | fetch_papers.py |
| `company-papers.json` | Company-specific papers | fetch_papers.py |
| `timeline-data.json` | Individual papers list for heatmap calendar | fetch_papers.py (generate_timeline) |

**⚠️ timeline-data.json format**: Must be an array of individual paper objects with `date` field (NOT aggregated monthly counts). The timeline page uses this for a GitHub-style heatmap calendar.

## Updating the Workflow YAML

Always use heredoc for Python code in `run:` blocks:

```yaml
- name: Run script
  run: |
    python3 << 'PYEOF'
    import json
    print("hello")
    PYEOF
```

Never inline Python with raw newlines in YAML string values.

## Company Keywords Reference

| Company | arXiv Keywords (author/affiliation) | Models |
|---------|--------------------------------------|--------|
| OpenAI | openai | GPT-4o, o1, o3, Sora, Codex |
| Google | google, deepmind | Gemini, Gemma, PaLM |
| Anthropic | anthropic | Claude |
| Meta | meta ai, meta platforms, fair, facebook ai | LLaMA, fairseq |
| DeepSeek | deepseek | DeepSeek-V, DeepSeek-R1 |
| Qwen | alibaba, qwen, tongyi, damo | Qwen, Tongyi Qianwen |
| Mistral | mistral | Mistral, Mixtral, Pixtral |
| Baidu | baidu | ERNIE, Wenxin |
| Xiaomi | xiaomi | MiMo |
| MiniMax | minimax | MiniMax-01, MiniMax-V |
| Zhipu | zhipu, tsinghua, chatglm | GLM-4, ChatGLM, CogVLM |

