[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-92377":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":15,"starSnapshotCount":15,"syncStatus":13,"lastSyncTime":26,"discoverSource":27},92377,"phd-application-planner","SihengTao\u002Fphd-application-planner","SihengTao","Interactively find PhD programs & fitting advisors, research them in parallel, and build an interactive marimo decision dashboard.","",null,"Python",55,2,51,0,4,41.83,"MIT License",false,"main",true,[],"2026-07-22 04:02:06","# PhD Application Planner\n\nA **Claude Code \u002F Codex skill** that turns a short conversation into a researched,\ninteractive **[marimo](https:\u002F\u002Fmarimo.io) dashboard** for planning PhD applications:\nfind programs, surface fitting advisors (PIs), compare stipends and application rules,\nand decide where to apply.\n\nIt works for **any field, any region**. You tell it what you care about; it researches in\nparallel when the host supports workflow\u002Fsubagent tools, then hands you a dashboard you can\nfilter, annotate, and rank.\n\n> No personal data is baked in. Every run is driven entirely by your own intake answers.\n\n---\n\n## What you get\n\nA single-page marimo app with:\n\n- **KPIs** and a **top-fit picks** grid\n- **Program browser**: filter by region \u002F fit \u002F stipend \u002F application-hedge; aligned table\n  rows; click **x** on any row to hide it and restore later\n- **Program detail cards**: stipend with verification basis, cohort, deadlines, application\n  restrictions, career outcomes, international-student notes\n- **PI browser**: filter by category \u002F wet-dry \u002F region \u002F min-h-index \u002F keyword; per-row\n  hide; editable notes per advisor that persist across restarts; Google Scholar links\n- **Weighted priority ranker**: 5 sliders plus interest picks, live re-ranking\n- **Cost-of-living-adjusted real stipend** chart\n- **Statistics**: Spearman correlation, Kruskal-Wallis, Pareto frontier, K-means clustering\n  plus PCA, with plain-language, stats-based recommendations\n\nYour notes and hidden lists are saved next to the data, so they survive restarts.\n\n---\n\n## Requirements\n\n- **Claude Code** or **Codex with local Skills enabled**\n- **Python 3.9+** with:\n  ```bash\n  pip install marimo pandas matplotlib scipy scikit-learn\n  ```\n- Web access for the research step\n\nClaude Code can use the bundled `assets\u002Fresearch_workflow.js` Workflow template. Codex can use\nthe same `SKILL.md`, `reference\u002F`, and `assets\u002F` package; when a Workflow tool is unavailable,\nthe skill performs equivalent web research and writes the same `_wf_result.json` schema before\nbuilding the dashboard.\n\n---\n\n## Install\n\n### Claude Code\n\nClone into your Claude Code skills directory:\n\n```bash\nmkdir -p ~\u002F.claude\u002Fskills\ngit clone https:\u002F\u002Fgithub.com\u002FSihengTao\u002Fphd-application-planner \\\n  ~\u002F.claude\u002Fskills\u002Fphd-application-planner\n```\n\nClaude Code auto-discovers skills in `~\u002F.claude\u002Fskills\u002F`.\n\n### Codex\n\nClone into your Codex skills directory:\n\n```bash\nmkdir -p \"${CODEX_HOME:-$HOME\u002F.codex}\u002Fskills\"\ngit clone https:\u002F\u002Fgithub.com\u002FSihengTao\u002Fphd-application-planner \\\n  \"${CODEX_HOME:-$HOME\u002F.codex}\u002Fskills\u002Fphd-application-planner\"\n```\n\nCodex discovers local skills from `${CODEX_HOME:-$HOME\u002F.codex}\u002Fskills\u002F`. The included\n`agents\u002Fopenai.yaml` provides Codex-facing display metadata; the root `SKILL.md` is the\nshared execution guide.\n\n---\n\n## Usage (tutorial)\n\nAsk Claude Code or Codex, in any project:\n\n> \"Help me find PhD programs in *\u003Cyour field>* and build me a dashboard.\"\n\nYou can also invoke it explicitly:\n\n- Claude Code: `\u002Fphd-application-planner`\n- Codex: `Use $phd-application-planner to help me build a PhD application dashboard.`\n\n### The 5 steps it runs\n\n1. **Interactive intake.** It asks what you care about: research field and subfields, target\n   regions\u002Fcountries, minimum stipend and currency, how many programs and advisors per program,\n   PI preferences, rising-star bias, application constraints, and lifestyle\u002Foutcome concerns.\n   This is usually 3-5 quick question rounds.\n\n2. **Config.** It writes a `_config.json` with dashboard branding, regions, stipend floor, and\n   an auto-generated interest-tag taxonomy for your field.\n\n3. **Research.** In Claude Code, it can run the bundled Workflow template for parallel research.\n   In Codex, or in any host without Workflow, it performs the same program \u002F PI \u002F outcome \u002F\n   verification research path and saves the final object as `_wf_result.json`. Stipends and PIs\n   should be verified against official pages and Google Scholar; \"not found\" stays honest.\n\n4. **Build data.** It assembles the results into the dashboard's data files.\n\n5. **Launch.** It copies the marimo app next to the data and starts it, opening it in your\n   browser.\n\n### After it launches\n\n- Browse programs and advisors; hide the ones you're not interested in.\n- Write notes on each advisor as you meet\u002Fread about them; notes persist.\n- Use the priority ranker sliders to weight fit \u002F stipend \u002F city \u002F advisor-density \u002F topics.\n- Read the statistics section for data-driven strategy tips.\n\nRe-running the research refreshes the program\u002FPI data but keeps your notes and hidden lists.\n\n---\n\n## Repository layout\n\n```text\nphd-application-planner\u002F\n├── SKILL.md                    # shared Claude Code \u002F Codex skill instructions\n├── agents\u002F\n│   └── openai.yaml             # Codex skill display metadata\n├── assets\u002F\n│   ├── dashboard_template.py   # the marimo app\n│   ├── research_workflow.js    # Claude Workflow research template\n│   ├── build_data.py           # research output -> dashboard data files\n│   └── launch.py               # detached marimo launcher\n├── reference\u002F\n│   ├── intake.md               # intake question bank\n│   ├── schema.md               # data schema\n│   └── honesty.md              # verification \u002F no-fabrication rules\n├── README.md\n└── LICENSE\n```\n\n### Configuration notes\n\n- **Regions are arbitrary**: US, EU, UK, Canada, Singapore, China, etc. Each gets a color and\n  short label in `_config.json`; the whole dashboard adapts.\n- **Seed programs**: if you already have a target list, it is passed straight into the research\n  step instead of auto-discovery.\n- **Language**: the dashboard UI labels ship in Chinese; translate strings in\n  `dashboard_template.py` if you prefer another language. Titles\u002Fsubtitles are configurable per\n  run via `_config.json`.\n\n---\n\n## A note on accuracy\n\nStipends, deadlines, cohort sizes, application rules, and h-indexes are **web-research\nsnapshots**. They can be wrong or out of date. Always confirm the numbers that matter on the\nprogram's official pages before deciding. See `reference\u002Fhonesty.md` for the verification rules\nthe skill follows.\n\n---\n\n## License\n\n[MIT](LICENSE), powered by [marimo](https:\u002F\u002Fmarimo.io).\n\n---\n\n# 博士申请规划器\n\n这是一个同时适用于 **Claude Code \u002F Codex 的 skill**。它会把一段简短对话转成一个经过调研的\n交互式 **[marimo](https:\u002F\u002Fmarimo.io) 仪表盘**，用来规划博士申请：寻找项目、筛选匹配的导师\n（PI）、比较 stipend 和申请规则，并帮助你决定申请哪些项目。\n\n它适用于**任何领域、任何地区**。你只需要说明自己在意什么；如果运行环境支持 workflow 或\nsubagent，它会并行调研，然后交付一个可以筛选、做笔记、隐藏、排序的仪表盘。\n\n> 仓库里不内置任何个人信息。每次运行都完全由你当次回答的 intake 信息驱动。\n\n---\n\n## 你会得到什么\n\n一个单页 marimo 应用，包含：\n\n- **关键指标**和**最匹配项目**列表\n- **项目浏览器**：按地区、匹配度、stipend、申请 hedging 过滤；可以隐藏\u002F恢复单行\n- **项目详情卡**：stipend 及验证依据、cohort、deadline、申请限制、career outcome、\n  国际学生相关备注\n- **PI 浏览器**：按类别、wet\u002Fdry、地区、最低 h-index、关键词过滤；可以隐藏 PI；可以给每个\n  PI 写持久化笔记；带 Google Scholar 链接\n- **加权优先级排序器**：5 个滑块加兴趣方向选择，实时重新排序\n- **生活成本调整后的实际 stipend** 图\n- **统计分析**：Spearman 相关、Kruskal-Wallis、Pareto frontier、K-means clustering 和 PCA，\n  并给出易读的策略建议\n\n笔记和隐藏列表会保存在数据旁边，重启后仍然保留。\n\n---\n\n## 环境要求\n\n- **Claude Code** 或 **开启本地 Skills 的 Codex**\n- **Python 3.9+**，并安装：\n  ```bash\n  pip install marimo pandas matplotlib scipy scikit-learn\n  ```\n- 调研阶段需要联网\n\nClaude Code 可以使用仓库里的 `assets\u002Fresearch_workflow.js` Workflow 模板。Codex 可以使用同一个\n`SKILL.md`、`reference\u002F` 和 `assets\u002F` 包；如果没有 Workflow 工具，skill 会执行等价的网页调研，\n写出同样结构的 `_wf_result.json`，再继续构建仪表盘。\n\n---\n\n## 安装\n\n### Claude Code\n\n克隆到 Claude Code 的 skills 目录：\n\n```bash\nmkdir -p ~\u002F.claude\u002Fskills\ngit clone https:\u002F\u002Fgithub.com\u002FSihengTao\u002Fphd-application-planner \\\n  ~\u002F.claude\u002Fskills\u002Fphd-application-planner\n```\n\nClaude Code 会自动发现 `~\u002F.claude\u002Fskills\u002F` 下的 skills。\n\n### Codex\n\n克隆到 Codex 的 skills 目录：\n\n```bash\nmkdir -p \"${CODEX_HOME:-$HOME\u002F.codex}\u002Fskills\"\ngit clone https:\u002F\u002Fgithub.com\u002FSihengTao\u002Fphd-application-planner \\\n  \"${CODEX_HOME:-$HOME\u002F.codex}\u002Fskills\u002Fphd-application-planner\"\n```\n\nCodex 会从 `${CODEX_HOME:-$HOME\u002F.codex}\u002Fskills\u002F` 发现本地 skills。仓库中的\n`agents\u002Fopenai.yaml` 提供 Codex 侧的展示元数据；根目录的 `SKILL.md` 是 Claude Code 和 Codex\n共用的执行说明。\n\n---\n\n## 使用方式\n\n在 Claude Code 或 Codex 的任意项目里直接说：\n\n> “Help me find PhD programs in *\u003Cyour field>* and build me a dashboard.”\n\n也可以显式调用：\n\n- Claude Code：`\u002Fphd-application-planner`\n- Codex：`Use $phd-application-planner to help me build a PhD application dashboard.`\n\n### 它会执行的 5 步\n\n1. **交互式 intake。** 它会询问你的研究领域\u002F子方向、目标地区、最低 stipend 和币种、想调研的\n   项目数量和每个项目的 PI 数量、PI 偏好、是否偏好 rising-star、申请机制限制，以及城市\u002F就业\n   等考虑。通常是 3-5 轮简短问题。\n\n2. **写配置。** 它会生成 `_config.json`，包含仪表盘标题、地区、stipend floor，以及根据你领域\n   自动生成的兴趣标签体系。\n\n3. **调研。** 在 Claude Code 里，它可以运行内置 Workflow 模板进行并行调研。在 Codex 或没有\n   Workflow 的环境里，它会执行同样的项目 \u002F PI \u002F outcome \u002F 验证流程，并把最终结果保存为\n   `_wf_result.json`。Stipend 和 PI 应该根据官方页面和 Google Scholar 验证；找不到就诚实标注\n   “not found”。\n\n4. **构建数据。** 它会把调研结果整理成仪表盘读取的数据文件。\n\n5. **启动。** 它会把 marimo app 复制到数据旁边并启动，在浏览器中打开。\n\n### 启动之后\n\n- 浏览项目和 PI；隐藏不感兴趣的条目。\n- 给每个 PI 写笔记，之后重启也会保留。\n- 用优先级排序器调整 fit \u002F stipend \u002F city \u002F advisor density \u002F topics 的权重。\n- 阅读统计部分，辅助形成申请策略。\n\n重新调研会刷新项目和 PI 数据，但保留你的笔记和隐藏列表。\n\n---\n\n## 仓库结构\n\n```text\nphd-application-planner\u002F\n├── SKILL.md                    # Claude Code \u002F Codex 共用 skill 说明\n├── agents\u002F\n│   └── openai.yaml             # Codex skill 展示元数据\n├── assets\u002F\n│   ├── dashboard_template.py   # marimo 应用\n│   ├── research_workflow.js    # Claude Workflow 调研模板\n│   ├── build_data.py           # 调研输出 -> 仪表盘数据文件\n│   └── launch.py               # 后台 marimo 启动器\n├── reference\u002F\n│   ├── intake.md               # intake 问题库\n│   ├── schema.md               # 数据 schema\n│   └── honesty.md              # 验证 \u002F 不编造规则\n├── README.md\n└── LICENSE\n```\n\n### 配置说明\n\n- **地区是任意的**：美国、欧盟、英国、加拿大、新加坡、中国等都可以。每个地区在\n  `_config.json` 里有颜色和短标签，仪表盘会自动适配。\n- **Seed programs**：如果你已经有目标项目列表，会直接传入调研步骤，而不是从头自动发现。\n- **语言**：仪表盘 UI 默认是中文；如果想换语言，可以修改 `dashboard_template.py` 中的字符串。\n  标题和副标题也可以在每次运行的 `_config.json` 里配置。\n\n---\n\n## 准确性说明\n\nStipend、deadline、cohort size、申请规则和 h-index 都是**网页调研快照**，可能错误或过期。决定前\n务必到项目官方页面确认关键数字。`reference\u002Fhonesty.md` 里记录了这个 skill 使用的验证规则。\n\n---\n\n## License\n\n[MIT](LICENSE)，powered by [marimo](https:\u002F\u002Fmarimo.io)。\n","PhD Application Planner 是一个面向博士申请者的交互式研究与决策支持工具。它基于用户输入的研究兴趣和偏好，自动并行检索全球范围内的博士项目与匹配导师（PI），生成可交互的 marimo 仪表盘，支持 stipend 比较、截止日期管理、导师筛选、成本调整后实际资助分析，以及基于统计方法（如 PCA、K-means、Pareto 前沿）的多维度排名建议。所有数据动态获取，用户笔记与隐藏项本地持久化。适用于跨学科、跨地区的博士申请人高效规划申请策略。","2026-07-08 04:30:13","CREATED_QUERY"]