/homepage-generator
Generate a fact-checked academic personal homepage from a CV, optionally augmented by an existing manual homepage and an assets directory. Produces editable structured source files (profile.yml + publications.bib + bio.md + news.md) and a single-file HTML page. Uses Codex MCP
$ npx -y skills add wanshuiyin/ARIS-in-AI-Offer --skill homepage-generator --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/homepage-generator
Context preview
The summary Claude sees to decide when to auto-load this skill.
Generate a fact-checked academic personal homepage from a CV, optionally augmented by an existing manual homepage and an assets directory. Produces editable structured source files (profile.yml + publications.bib + bio.md + news.md) and a single-file HTML page. Uses Codex MCP
SKILL.md
homepage-generator.SKILL.mdname: homepage-generator
description: "Generate a fact-checked academic personal homepage from a CV, optionally augmented by an existing manual homepage and an assets directory. Produces editable structured source files (profile.yml + publications.bib + bio.md + news.md) and a single-file HTML page. Uses Codex MCP for independent factual review against DBLP / arXiv. Optionally uses Gemini multimodal for screenshot critique when available. Use when the user says '做个学术主页', '从CV生成主页', 'aris-homepage', 'generate academic homepage from CV', 'PhD homepage', 'GitHub Pages personal site', or wants a fact-checked academic site."
argument-hint: init --from-cv <cv.docx|cv.pdf|cv.txt> [--from-repos owner/repo,...] [--include-private] [--manual-homepage <url>] [--assets-dir <path>] [--out <dir>] [--force|--merge] | finalize | render --persona theory-minimal [--out <html>] [--override-all] [--no-audit] [--offline] | check [--strict] | doctor
allowed-tools: Bash(*), Read, Write, Edit, WebFetch, mcp__codex__codex
/homepage-generator — fact-checked academic homepage from CV
> **The only personal-site generator that fact-checks your CV before publishing.** > Cross-model adversarial review: the LLM that drafts your homepage never grades it — a fresh Codex thread audits every claim against DBLP / arXiv before the HTML is signed off.
When to use
Generate a single-file HTML academic homepage. Optimized for PhD candidates, postdocs, and early-career researchers with public publications. v1 ships the `theory-minimal` persona (text-heavy academic page in the Zhxie / Avicenna lineage); `active-researcher` (paper thumbnails + news ticker variant) is planned.
**Use when** the user says `做个学术主页` · `from CV generate homepage` · `aris-homepage` · `PhD personal site` · `GitHub Pages homepage`.
**Do NOT use for**: portfolio sites needing image galleries; newsletter-funnel sites needing audience metrics; pure blog sites (use Jekyll/Hugo); tenured-faculty pages with student/teaching as top-level sections (use [academicpages](https://academicpages.github.io/)).
Public demo
A real-world dogfood example: **https://wanshuiyin.github.io/** — homepage generated by this skill from a CV + the maintainer's previous manual page. Use it as a style and capability reference; **do not copy any names, affiliations, advisors, awards, paper titles, or filenames into your own examples or tests** (see *Privacy* below).
Quick start
# Step 1 — bootstrap workspace from CV
aris-homepage init --from-cv ./cv.pdf --out ./site
cd ./site
# Step 2 — calling LLM agent (Claude / your agent) reads .aris-homepage/EXTRACTION_HANDOFF.md,
# then writes the extraction JSON to .aris-homepage/extraction.json.
# This step is NOT automated by the CLI — it's a designed handoff so the agent
# can use richer context (manual homepage URL, asset folder, your judgement).
# Step 3 — persist the extracted JSON into editable source files
aris-homepage finalize
# Step 4 — review + tweak
$EDITOR profile.yml publications.bib bio.md news.md EXTRACTION_REVIEW.md
# Step 5 — render with fact-check (writes index.html + audit-report.md)
aris-homepage render --persona theory-minimal
Input model — three sources for the LLM agent
The `init` CLI only handles the CV → text conversion. The other two inputs are consumed by the **calling LLM agent** when it fills `extraction.json`. Recommend supplying all three for best results:
| Input | How to supply | Purpose | |---|---|---| | **CV** | `--from-cv cv.docx/pdf/txt` on the CLI | The **factual** source — identity, education, jobs, publications, awards | | **GitHub repos** (v1.1) | `--from-repos owner/repo,owner/repo2` on the CLI | The **project-evidence** source — stars / releases / topics / README per repo; merged into News + featured projects (issue #2) | | **Manual homepage** | Provide URL in the prompt; the agent uses WebFetch | The **editorial** source — section ordering, topic groupings, tone, link priorities, photo URL | | **Assets directory** | Provide path in the prompt; the agent inspects + copies into `assets/` | The **visual** source — headshot, paper thumbnails, project logos |
**Reconciliation rule**: the CV is authoritative for **facts** (paper venues, dates, author lists), the manual homepage is authoritative for **how you present yourself** (what to group, what to surface, what voice), and the assets folder provides **visuals**. If the three sources conflict, do **not** silently merge — write the conflict to `EXTRACTION_REVIEW.md` for user resolution.
**If you have no manual homepage yet**: skip it. The generator falls back to CV-only structure with sensible academic defaults.
> **Coming in v1.1**: native CLI flags `--manual-homepage URL` and `--assets-dir PATH` will fetch + stage these inputs automatically. For v1, the calling agent handles them.
Commands
aris-homepage init --from-cv <file> [--from-repos owner/repo,...] [--include-private] [--out DIR] [--force|--merge]
# Step 1. Extract CV to plain text (via textutil / python-docx / pdftotext).
# Step 1b. (v1.1) If --from-repos given, snapshot each repo via `gh` CLI
# (GraphQL metadata + REST README, truncated 20KB) →
# .aris-homepage/github_repos.json. Private repos skipped unless
# --include-private.
# Step 2. Emit .aris-homepage/EXTRACTION_HANDOFF.md describing what the calling
# LLM agent should write to .aris-homepage/extraction.json
# (handoff doc auto-includes guidance on github_repos.json if present).
# --force: backup *.bak-TIMESTAMP and overwrite; --merge: fill-only (v1.2)
# NOTE: --manual-homepage and --assets-dir flags coming in v1.2; for now,
# the calling agent handles those sources via prompt context.
aris-homepage finalize [--out DIR]
# Ingest .aris-homepage/extraction.json → profile.yml + publications.bib +
# bio.md + news.md + EXTRACTION_REVIEW.md.
aris-homepage render --persona the
Read more
name: homepage-generator description: "Generate a fact-checked academic personal homepage from a CV, optionally augmented by an existing manual homepage and an assets directory. Produces editable structured source files (profile.yml + publications.bib + bio.md + news.md) and a single-file HTML page. Uses Codex MCP for independent factual review against DBLP / arXiv. Optionally uses Gemini multimodal for screenshot critique when available. Use when the user says '做个学术主页', '从CV生成主页', 'aris-homepage', 'generate academic homepage from CV', 'PhD homepage', 'GitHub Pages personal site', or wants a fact-checked academic site." argument-hint: init --from-cv <cv.docx|cv.pdf|cv.txt> [--from-repos owner/repo,...] [--include-private] [--manual-homepage <url>] [--assets-dir <path>] [--out <dir>] [--force|--merge] | finalize | render --persona theory-minimal [--out <html>] [--override-all] [--no-audit] [--offline] | check [--strict] | doctor allowed-tools: Bash(*), Read, Write, Edit, WebFetch, mcp__codex__codex
/homepage-generator — fact-checked academic homepage from CV
> **The only personal-site generator that fact-checks your CV before publishing.** > Cross-model adversarial review: the LLM that drafts your homepage never grades it — a fresh Codex thread audits every claim against DBLP / arXiv before the HTML is signed off.
When to use
Generate a single-file HTML academic homepage. Optimized for PhD candidates, postdocs, and early-career researchers with public publications. v1 ships the `theory-minimal` persona (text-heavy academic page in the Zhxie / Avicenna lineage); `active-researcher` (paper thumbnails + news ticker variant) is planned.
**Use when** the user says `做个学术主页` · `from CV generate homepage` · `aris-homepage` · `PhD personal site` · `GitHub Pages homepage`.
**Do NOT use for**: portfolio sites needing image galleries; newsletter-funnel sites needing audience metrics; pure blog sites (use Jekyll/Hugo); tenured-faculty pages with student/teaching as top-level sections (use [academicpages](https://academicpages.github.io/)).
Public demo
A real-world dogfood example: **https://wanshuiyin.github.io/** — homepage generated by this skill from a CV + the maintainer's previous manual page. Use it as a style and capability reference; **do not copy any names, affiliations, advisors, awards, paper titles, or filenames into your own examples or tests** (see *Privacy* below).
Quick start
# Step 1 — bootstrap workspace from CV aris-homepage init --from-cv ./cv.pdf --out ./site cd ./site # Step 2 — calling LLM agent (Claude / your agent) reads .aris-homepage/EXTRACTION_HANDOFF.md, # then writes the extraction JSON to .aris-homepage/extraction.json. # This step is NOT automated by the CLI — it's a designed handoff so the agent # can use richer context (manual homepage URL, asset folder, your judgement). # Step 3 — persist the extracted JSON into editable source files aris-homepage finalize # Step 4 — review + tweak $EDITOR profile.yml publications.bib bio.md news.md EXTRACTION_REVIEW.md # Step 5 — render with fact-check (writes index.html + audit-report.md) aris-homepage render --persona theory-minimal
Input model — three sources for the LLM agent
The `init` CLI only handles the CV → text conversion. The other two inputs are consumed by the **calling LLM agent** when it fills `extraction.json`. Recommend supplying all three for best results:
| Input | How to supply | Purpose | |---|---|---| | **CV** | `--from-cv cv.docx/pdf/txt` on the CLI | The **factual** source — identity, education, jobs, publications, awards | | **GitHub repos** (v1.1) | `--from-repos owner/repo,owner/repo2` on the CLI | The **project-evidence** source — stars / releases / topics / README per repo; merged into News + featured projects (issue #2) | | **Manual homepage** | Provide URL in the prompt; the agent uses WebFetch | The **editorial** source — section ordering, topic groupings, tone, link priorities, photo URL | | **Assets directory** | Provide path in the prompt; the agent inspects + copies into `assets/` | The **visual** source — headshot, paper thumbnails, project logos |
**Reconciliation rule**: the CV is authoritative for **facts** (paper venues, dates, author lists), the manual homepage is authoritative for **how you present yourself** (what to group, what to surface, what voice), and the assets folder provides **visuals**. If the three sources conflict, do **not** silently merge — write the conflict to `EXTRACTION_REVIEW.md` for user resolution.
**If you have no manual homepage yet**: skip it. The generator falls back to CV-only structure with sensible academic defaults.
> **Coming in v1.1**: native CLI flags `--manual-homepage URL` and `--assets-dir PATH` will fetch + stage these inputs automatically. For v1, the calling agent handles them.
Commands
aris-homepage init --from-cv <file> [--from-repos owner/repo,...] [--include-private] [--out DIR] [--force|--merge] # Step 1. Extract CV to plain text (via textutil / python-docx / pdftotext). # Step 1b. (v1.1) If --from-repos given, snapshot each repo via `gh` CLI # (GraphQL metadata + REST README, truncated 20KB) → # .aris-homepage/github_repos.json. Private repos skipped unless # --include-private. # Step 2. Emit .aris-homepage/EXTRACTION_HANDOFF.md describing what the calling # LLM agent should write to .aris-homepage/extraction.json # (handoff doc auto-includes guidance on github_repos.json if present). # --force: backup *.bak-TIMESTAMP and overwrite; --merge: fill-only (v1.2) # NOTE: --manual-homepage and --assets-dir flags coming in v1.2; for now, # the calling agent handles those sources via prompt context. aris-homepage finalize [--out DIR] # Ingest .aris-homepage/extraction.json → profile.yml + publications.bib + # bio.md + news.md + EXTRACTION_REVIEW.md. aris-homepage render --persona the
Hoping to make your 秋招 (qiūzhāo, Chinese AI campus recruiting season) a little easier 🌱 📖 中文版 (Chinese version): README_CN.md 📚 Jump to a topic — 33 first-party cheat sheets across 7 categories + 1 community-contributed category: 🧠 General / Foundations ·
Repo: wanshuiyin/ARIS-in-AI-Offer
Other skills on aris-in-ai-offer.
- /interview-cheatsheet
Generate a long-form Chinese interview-prep cheat sheet on a specific ML/LLM topic — formulas with derivations, from-scratch PyTorch code, comparison tables, and 25 高频面试题 (L1 必会 / L2 进阶 / L3 顶级 lab). Cross-model codex review checks math, code, historical citations, and style
Open skill - /render-html
Render an ARIS Markdown / JSON artifact (IDEA_REPORT, AUTO_REVIEW, KILL_ARGUMENT, PAPER_PLAN, research-wiki state, etc.) into a single-file HTML view designed for human reading. Academic template outputs are gated by a fresh cross-model Codex review for render fidelity + safety
Open skill

