用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/brycewang-stanford/Auto-Empirical-Research-Skills --skill open-syllabus-api命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | open-syllabus-api |
| description | Analyze most-taught books and texts via Open Syllabus analytics |
| metadata | {"openclaw":{"emoji":"📖","category":"domains","subcategory":"education","keywords":["Open Syllabus","syllabi analytics","teaching data","textbook rankings","curriculum analysis","higher education"],"source":"https://opensyllabus.org/"}} |
Open Syllabus analyzes 20M+ college course syllabi from 7,000+ institutions in 140+ countries, tracking which books, articles, and media are most frequently assigned in higher education. The Explorer provides teaching frequency rankings and co-assignment patterns. Useful for curriculum research, textbook selection, and understanding disciplinary norms. Free for basic search; institutional subscription for full API access.
# The primary interface is the web explorer:
# https://explorer.opensyllabus.org/
# Search by title, author, or field
# Filter by country, institution, discipline, year range
# API requires institutional subscription
# Base URL: https://api.opensyllabus.org/v1/
# Search titles
curl -H "Authorization: Bearer $OS_TOKEN" \
"https://api.opensyllabus.org/v1/titles?query=republic+plato&limit=20"
# Get title details
curl -H "Authorization: Bearer $OS_TOKEN" \
"https://api.opensyllabus.org/v1/titles/12345"
# Co-assignment analysis
curl -H "Authorization: Bearer $OS_TOKEN" \
"https://api.opensyllabus.org/v1/titles/12345/co-assigned?limit=20"
# Rankings by field
curl -H "Authorization: Bearer $OS_TOKEN" \
"https://api.opensyllabus.org/v1/rankings?field=Economics&limit=50"
| Parameter | Description | Example |
|---|---|---|
query | Search text | query=machine+learning |
field | Academic discipline | field=Computer Science |
country | Country filter | country=US |
institution | Institution filter | institution=Harvard |
year_from | Start year | year_from=2020 |
year_to | End year | year_to=2026 |
limit | Results per page | limit=50 |
| Metric | Description |
|---|---|
| Teaching Score | 0-100 normalized frequency of syllabi appearances |
| Count | Raw number of syllabi featuring the title |
| Rank | Position in overall or field-specific ranking |
| Co-assignment | Titles frequently taught alongside this one |
import requests
BASE_URL = "https://api.opensyllabus.org/v1"
def search_titles(query: str, field: str = None,
country: str = None,
limit: int = 20, token: str = "") -> list:
"""Search Open Syllabus for assigned titles."""
headers = {"Authorization": f"Bearer {token}"} if token else {}
params = {"query": query, "limit": limit}
if field:
params["field"] = field
if country:
params["country"] = country
resp = requests.get(
f"{BASE_URL}/titles",
headers=headers,
params=params,
)
resp.raise_for_status()
data = resp.json()
results = []
for item in data.get("results", []):
results.append({
"title": item.get("title"),
"authors": item.get("authors"),
"teaching_score": item.get("teaching_score"),
"count": item.get("appearance_count"),
"rank": item.get("rank"),
"top_fields": item.get("top_fields", []),
})
return results
() -> :
headers = {: } token {}
resp = requests.get(
,
headers=headers,
params={: limit},
)
resp.raise_for_status()
resp.json().get(, [])
() -> :
headers = {: } token {}
resp = requests.get(
,
headers=headers,
params={: field, : limit},
)
resp.raise_for_status()
resp.json().get(, [])
| Rank | Title | Author | Field |
|---|---|---|---|
| 1 | The Elements of Style | Strunk & White | Writing |
| 2 | The Republic | Plato | Philosophy |
| 3 | A Manual for Writers | Turabian | Writing |
| ~10 | Thinking, Fast and Slow | Kahneman | Psychology |
| ~50 | Introduction to Algorithms | CLRS | CS |