Homepage Maintenance Runbook
Homepage Maintenance Runbook
This document is the source of truth for maintaining Yan Zhan’s public academic homepage. It is written so that a new human or coding agent can update the site without reverse-engineering the theme.
1. Non-negotiable facts and privacy boundaries
- Public name: Yan Zhan / 詹沿.
- Public email:
2401210760@stu.pku.edu.cn. - Expected graduation: June 2027.
- Current role: Research Intern at Tencent Youtu Lab, working on post-training for Code Agents.
- Primary site language: English. Secondary language: Simplified Chinese.
- Target opportunities: research-oriented LLM roles in Mainland China, Hong Kong, or Singapore.
- Do not publish the private Gmail address, phone number, access tokens, cookies, LinkedIn session data, or unredacted source resumes.
- Do not add the rejected ICML 2026 submission that the owner explicitly excluded.
- Do not claim that an under-review manuscript is accepted. CCF badges on under-review papers describe the target venue only.
- Never invent citation counts, awards, authorship order, metrics, employer scope, or acceptance status.
2. Page architecture
/is the English page./zh/is the Simplified Chinese page.- Both pages use
_layouts/home.htmland the same includes under_pages/includes/. - Language-specific text comes from bilingual fields in
_data/; do not duplicate whole page templates. _includes/masthead.htmlowns navigation, the language switch, and the light/dark control._includes/author-profile.htmlowns the portrait, affiliation, graduation, location, and external profile buttons._sass/layout/_homepage.scssowns the custom visual system.assets/js/homepage.jsowns language routing, mobile navigation, publication filtering, the publication figure lightbox, reveal motion, and active navigation state. Its script URL is build-versioned in_includes/scripts.htmlso browsers cannot pair new markup with stale interaction code.
3. Language behavior
The manual language choice always wins and is stored in localStorage as site-language.
For a first visit with no stored choice, the English root requests only a two-letter country code from GeoJS. CN redirects to /zh/; any other country stays on /. If GeoJS is unavailable after 1.2 seconds, the site falls back to zh-CN browser language or the Asia/Shanghai time zone. The full IP address is not stored by this repository, but the browser necessarily contacts GeoJS for country lookup.
When updating a text field, update English and Chinese in the same commit. Keep technical model names, paper titles, benchmark names, and established acronyms in English unless a standard Chinese name exists.
4. Content files
_data/profile.yml
Contains identity, hero copy, opportunity preferences, public metrics, research tracks, publication filters, and external links.
When a role preference or graduation date changes, update the profile and LinkedIn data together. Metrics must remain factual and should be changed when papers are added or accepted.
_data/news.yml
Each item requires:
- date: "YYYY-MM"
display_en: "Mon YYYY"
display_zh: "YYYY.MM"
kind: "accepted|research|experience|education"
text_en: "English update"
text_zh: "中文动态"
Put the newest item first. Keep the list selective; the homepage should not become a complete activity log.
_data/publications.yml
Required fields:
- order: 1
id: "stable-kebab-case-id"
title: "Exact paper title"
authors: ["Exact", "Author", "Order"]
venue_en: "Submitted to Venue YEAR"
venue_zh: "投稿至 Venue YEAR"
venue_short: "Venue 'YY"
status: "Under Review|Accepted"
status_zh: "在审|已录用"
ccf: "A|B|C"
year: 2027
image: "/images/pub/example.png"
summary_en: "One precise sentence."
summary_zh: "一条准确的中文简介。"
topics_en: ["Topic"]
topics_zh: ["主题"]
filters: ["ccf-a", "rl"]
links:
paper: "https://..."
pdf: "https://..."
Use the exact OpenReview author order. Bold highlighting of Yan Zhan is automatic. A paper figure should be a representative method or overview figure, not a screenshot of the abstract. Store it in images/pub/ as lowercase kebab-case PNG. Prefer approximately 1200–1800 pixels on the long edge and crop excessive whitespace.
CCF classification follows the current official CCF directory. Recheck the official directory when its edition changes. For an under-review manuscript, preserve status: Under Review even if the target venue is CCF-A. When accepted, update status, venue wording, news, profile metrics, and LinkedIn if material.
Available filter keys are defined in _data/profile.yml. Add a new key there before using it on a paper.
_data/experience.yml
Maintain English/Chinese organization, role, date, location, description, official organization URLs, and two or three defensible metric chips. Do not turn internal project details into public claims unless already authorized by the resume owner.
_data/education.yml
Maintain exact dates, expected-graduation status, degree, GPA/rank, and official school URLs. The correct institution names are Peking University / 北京大学 and Beijing Forestry University / 北京林业大学; never use a map entrance or campus gate as the school name.
_data/honors.yml
Maintain bilingual titles, organization names, and dates when known. Do not infer award dates that are absent from the source resume.
_data/linkedin.yml
Stores the approved English-primary and Simplified-Chinese-secondary LinkedIn copy. After changing major research, employment, graduation, or recruiting information on the website, review this file and then synchronize LinkedIn through an authorized browser session.
5. Portraits, logos, and documents
- Public portrait:
images/profile.jpg. - Publication figures:
images/pub/. - Public paper PDFs, only when intentionally hosted:
files/papers/. - Private incoming documents:
.incoming/ortmp/; both must remain ignored by Git. - Official organization marks are stored in
images/logos/:pku.png,bfu.svg,tencent.png, andperfect-world.png. - Public recruiter-safe CV:
files/Yan_Zhan_CV.pdf. It must never contain the private phone number or private Gmail address from the source resume. - Do not publish an unredacted resume. If a downloadable CV is requested, create a public-safe PDF that omits phone and private email, then obtain explicit approval before committing it.
6. Visual and interaction rules
- Preserve the editorial palette: warm paper, deep green ink, teal, vermilion, and muted gold. Do not introduce purple gradients or generic SaaS styling.
- Preserve locally hosted Manrope and Newsreader fonts in
assets/fonts/; Chinese text uses appropriate local CJK fallbacks. - Theme values live in
:rootandhtml[data-theme="dark"]. - All controls need keyboard focus, an accessible name, and a readable dark-mode state.
- New sections should use
.home-section,.section-heading, and the existing reveal behavior. - Avoid inner scrolling areas for news or publications.
- Test at desktop, tablet, and approximately 390-pixel mobile widths after structural CSS changes.
7. LinkedIn synchronization checklist
- English remains the primary profile language; Simplified Chinese remains the additional language.
- The education entity must be the official Beijing Forestry University page, not a location/place result.
- Tencent and Perfect World experience entries must select the official LinkedIn company pages so the correct company logos appear.
- The Tencent entry remains linked to the official Tencent company entity, while the title and description identify Tencent Youtu Lab and current Code Agent post-training work.
- Keep dates consistent with
_data/experience.ymland_data/education.yml. - Keep the headline and About section aligned with 2027 new-grad research roles in Mainland China, Hong Kong, and Singapore.
- Follow relevant company and research organization pages selectively. Do not mass-connect, mass-message, or use spam-like automation.
8. Safe update workflow for another agent
- Read
AGENTS.md, this file, and only the data/template files needed for the change. - Extract facts from the supplied source document or authoritative public page.
- State any uncertainty instead of guessing.
- Update English and Chinese fields together.
- Add or optimize images without overwriting unrelated assets.
- Check that no private email, phone, token, cookie, or source resume entered the repository.
- Build/deploy through the existing GitHub Actions workflow.
- Inspect
/and/zh/, both themes, publication filters, external links, and mobile layout. - Report the exact files changed, live URL, workflow result, and any unresolved limitation.
9. Deployment
The repository deploys from main using .github/workflows/jekyll-build.yml. A successful push should produce a successful build job and deploy job. Do not edit generated _site/ output or commit compiled assets/css/main.css; GitHub Pages generates them.
10. Recommended handoff prompt
Use this when assigning a future update:
Read
AGENTS.mdandMAINTENANCE.md. Treat the supplied files as source material, do not invent facts, preserve the English/Chinese schema and privacy boundaries, update the relevant_datafiles and assets, deploy through the existing workflow, then inspect both language pages and report exact changes.

