Skip to main content

gmai-member

Add, update, remove, or move team members on the GMAI Lab Jekyll website. Handles _data/team.yml, EN/ZH profile pages, team photos, and Past Members. Use when adding a new lab member, updating someone's info, or archiving a departed member.

Informations de source

Dépôt
uni-medical/gmai-web
Dernière activité de la source
11 avril 2026 à 12:19
Langue détectée de SKILL.md
anglais
Étoiles
1
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
gmai-member
description
Add, update, remove, or move team members on the GMAI Lab Jekyll website. Handles _data/team.yml, EN/ZH profile pages, team photos, and Past Members. Use when adding a new lab member, updating someone's info, or archiving a departed member.
allowed-tools
["Read","Write","Edit","Bash","Glob","Grep"]
# GMAI Lab — Team Member Management Skill ## When to Use Trigger phrases: - "Add a new member" / "添加新成员" - "Update member X" / "更新成员信息" - "Remove member X" / "删除成员" - "Move X to past members" / "把X移到过往成员" - "Add photo for X" / "添加头像" --- ## Repository Quick Reference ``` _data/team.yml Master team data (pi, co_pis, members, alumni) pages/team/{slug}.md EN profile page pages/zh/team/{slug}.md ZH profile page assets/images/team/ Team photos (firstname_lastname.jpg) _layouts/profile.html Profile page layout (reads from team.yml) pages/team.md EN team listing (shows Scholar/GitHub/Website only) pages/zh/team.md ZH team listing ``` ### Data Structure Hierarchy ```yaml pi: # Single PI (Junjun He) — displayed as main card co_pis: # Array — displayed side-by-side with PI in .team-pis flex container members: # Array — displayed in .team-grid (4 per row) alumni: # Array — displayed in Past Members table (sorted newest-first) ``` **Profile lookup order** (`_layouts/profile.html`): `pi.slug` → `co_pis[].slug` → `members[].slug` (alumni use member slug too) ```bash # Local dev export GEM_HOME="$HOME/.local/share/gem/ruby/3.2.0" export PATH="$GEM_HOME/bin:$PATH" bundle exec jekyll serve --baseurl "" --port 4000 # Deploy: git push origin main ``` --- ## Operations ### Operation: ADD #### Step 1 — Collect Information (Interactive) Ask the user for each field. Mark required fields with *. ``` 1. * Full name (English)? e.g. "Wentao Li" 2. * Chinese name? e.g. "李文涛" 3. * Role? [Researcher / Research Intern] 4. If Research Intern: University/institution? 5. * Research focus (English)? e.g. "Computational pathology, agent systems" 6. Research focus (Chinese)? (auto-translate if user skips) 7. Photo file path? Full path or "none" for initials placeholder 8. Initials? 2 chars, auto-derived from name if not given 9. Links — provide any you have: - Google Scholar URL? - GitHub URL? - Personal website URL? - OpenReview URL? - Semantic Scholar URL? - DBLP URL? - HuggingFace URL? - LinkedIn URL? - ResearchGate URL? 10. Brief bio (Chinese, 1-2 sentences)? For ZH profile page 11. Position in list? "after [name]" or "at end" ``` #### Step 1b — CRITICAL: Identity & Name Verification **Same-name collision warning:** Before proceeding, verify the person's identity: - If a Google Scholar or other link is provided, CONFIRM it belongs to the correct person - Search the link and check: university, co-authors, research topics — do they match? - **NEVER assume a Scholar link is correct just because the name matches** — there are many researchers with identical names (e.g. "Yirong Chen" at SCUT vs Stanford) - If uncertain, ask the user to confirm before using any links **Chinese name verification:** - Double-check Chinese characters with the user — similar-sounding characters are easily confused - Examples of past mistakes: 翊 vs 毅, 隆 vs 龙 - If the user provides a Chinese name verbally/phonetically, confirm the exact characters #### Step 2 — Generate Slug ``` slug = lowercase(firstname-lastname) # e.g. "wentao-li" ``` Verify slug is unique: `grep "slug.*{slug}" _data/team.yml` #### Step 3 — Process Photo If photo provided: ```bash # Copy to standard location cp {user_path} assets/images/team/{firstname}_{lastname}.{ext} # Check dimensions — crop to square if needed python3 -c " from PIL import Image img = Image.open('assets/images/team/{file}') w, h = img.size if w != h: s = min(w, h) left = (w - s) // 2 top = (h - s) // 2 img.crop((left, top, left+s, top+s)).save('assets/images/team/{file}', quality=90) print(f'Cropped {w}x{h} → {s}x{s}') " ``` #### Step 4 — Add to `_data/team.yml` Insert at specified position in `members:` array: ```yaml - name: "FirstName LastName (中文名)" slug: "firstname-lastname" role: "Research Intern, University Name" role_zh: "科研实习生,大学名称" focus: "Research focus English" focus_zh: "研究方向中文" photo: "assets/images/team/firstname_lastname.jpg" initials: "FL" links: scholar: "" github: "" website: "" ``` Only include link fields that have values. Add extended links (openreview, semantic_scholar, etc.) only if provided. **Ordering rules:** - Researchers go before `# ── Research Interns` comment - Research Interns go after it - Grid is 4 per row — position affects visual layout #### Step 5 — Create EN Profile Page Write `pages/team/{slug}.md`: ```markdown --- layout: profile title: "FirstName LastName" permalink: /team/{slug}/ lang: "en" member_slug: "{slug}" --- ``` #### Step 6 — Create ZH Profile Page Write `pages/zh/team/{slug}.md`: ```markdown --- layout: profile title: "中文名 — GMAI Lab" permalink: /zh/team/{slug}/ lang: "zh" member_slug: "{slug}" --- 中文名来自XX大学,是 GMAI 实验室科研实习生。研究方向包括... ``` #### Step 7 — Verify ```bash bundle exec jekyll build --baseurl "" curl -s -o /dev/null -w "%{http_code}" http://localhost:4000/team/{slug}/ curl -s -o /dev/null -w "%{http_code}" http://localhost:4000/zh/team/{slug}/ ``` --- ### Operation: UPDATE #### Step 1 — Identify Member Ask: "Which member? (name or slug)" Find in team.yml: `grep -n "slug.*{input}" _data/team.yml` #### Step 2 — Ask What to Update ``` What to update? [photo / focus / role / links / bio / all] ``` #### Step 3 — Apply Changes Use Edit tool to modify the specific fields in `_data/team.yml`. If updating photo: copy new file to `assets/images/team/`, crop if needed, update `photo:` field. If updating bio: edit the ZH profile page markdown content. --- ### Operation: REMOVE 1. Remove member entry from `members:` in `_data/team.yml` 2. Ask: "Delete profile pages too? [y/n]" - If yes: delete `pages/team/{slug}.md` and `pages/zh/team/{slug}.md` 3. Ask: "Delete photo? [y/n]" - If yes: delete from `assets/images/team/` --- ### Operation: MOVE_TO_PAST #### Step 1 — Collect Info ``` 1. When did they join? e.g. "2024.06" 2. When did they leave? e.g. "2025.12" 3. Current position/affiliation? e.g. "PhD Student, The Hong Kong Polytechnic University" 4. Research focus (short)? e.g. "AI for Science, Proteomics" ``` **Period format rules:** - Use `YYYY.MM` format (e.g. "2024.06"), NOT "2024.01" unless truly January - Verify dates with user — don't guess start dates - Past mistake: "2024.01 – 2025.12" was incorrect, actual was "2025.06 – 2025.12" #### Step 2 — Execute 1. Remove from `members:` array in `_data/team.yml` 2. Add to `alumni:` section with correct schema: ```yaml alumni: - name: "Name (中文名)" slug: "firstname-lastname" period: "2024.06 – 2025.12" position: "PhD Student, University Name" focus: "Research focus keywords" ``` **Critical: Alumni sorting** — alumni must be sorted by **end date, newest first**. Insert the new entry at the correct position (not just appended to the end). 3. Profile pages are kept (still accessible via direct URL) 4. The Past Members table in `pages/team.md` / `pages/zh/team.md` auto-renders from alumni data 5. Name display uses `{{ a.name | replace: " (", "<br>(" }}` for EN/CN line break ### Operation: ADD CO-PI For leadership-level members displayed alongside the main PI: 1. Add to `co_pis:` array in `_data/team.yml` (between `pi:` and `members:`) 2. Same field structure as `pi:` (name, slug, role, title, bio, photo, links) 3. Displayed side-by-side with PI in `.team-pis` flex container 4. Profile lookup in `_layouts/profile.html` checks `co_pis` after `pi` 5. Create profile pages same as regular members --- ### Operation: FILL PROFILE CONTENT Fill rich Markdown content for a member's profile subpage. Profile pages support `{{ content }}` rendering — anything written below the front matter in `pages/team/{slug}.md` becomes the profile body. #### When to Use Trigger phrases: - "Fill profile for X" / "写X的简介" - "Add bio content for X" / "填充X的个人页面" - After creating a member's profile pages (ADD operation Steps 5-6) #### Step 1 — Collect Information (Interactive) Ask the user for or derive from context: ``` 1. * Current position + institution? e.g. "PhD Student, Monash University" 2. Supervisor(s)? e.g. "Prof. Jianfei Cai" 3. Previous positions (chronological)? e.g. "Senior R&D Engineer at Baidu → Researcher at Shanghai AI Lab" 4. Role in GMAI team? e.g. "Core member, principal architect of SA-Med2D-20M" 5. * Top 3-5 research areas? With key project names 6. * Selected publications (4-8 items)? Title, venue, year, author role, one-line description 7. * Career path summary? For Career Trajectory section 8. Brief bio in Chinese? Auto-translate from EN if not provided ``` #### Step 2 — Determine Template **Regular Members** use the **4-section template**: | Section (EN) | Section (ZH) | Content | |--------------|--------------|---------| | `## About` | `## 关于` | 1-2 paragraphs: position, institution, supervisor, previous roles, GMAI contribution | | `## Research Interests` | `## 研究方向` | Bullet list of 3-5 areas with key project names in bold | | `## Selected Publications` | `## 代表性论文` | Bullet list: **Paper** (Venue Year) — *Role*. One-line description | | `## Career Trajectory` | `## 职业轨迹` | Single line with arrow notation: **Place A** (Role) → **Place B** (Role) → ... | **PI / Co-PI** use the **6-section template**: | Section (EN) | Section (ZH) | Content | |--------------|--------------|---------| | `## About Me` | `## 关于我` | Background, education, leadership position | | `## Research Interests` | `## 研究方向` | Bullet list of research areas | | `## Highlights` | `## 代表性成果` | Detailed paragraphs on group achievements | | `## Academic Overview` | `## 学术成果概览` | High-level achievements summary | | `## Selected Early Works` | `## 早期代表性工作` | Earlier career publications | | `## Professional Service` | `## 学术服务` | Reviewer roles, committee memberships | #### Step 3 — Write EN Profile Content Edit `pages/team/{slug}.md` — append Markdown below the front matter `---`: **Example (Regular Member — Jin Ye):** ```markdown --- layout: profile title: "Jin Ye" permalink: /team/jin-ye/ lang: "en" member_slug: "jin-ye" --- ## About Jin Ye is a PhD student at **Monash University**... Before starting his PhD, he was a full-time researcher at **Shanghai AI Laboratory**... ## Research Interests - **Large-scale medical segmentation datasets**: SA-Med2D-20M (4.6M images / 19.7M masks) - **SAM adaptation for medicine**: SAM-Med2D, SAM-Med3D, SAM-Med3D-MoE - ... ## Selected Publications - **SA-Med2D-20M** (arXiv 2023) — *First Author*. The largest 2D medical segmentation dataset... - **SAM-Med3D** (ECCV 2024 Workshop Oral; IEEE TNNLS 2025) — Extension of SAM to 3D... - ... ## Career Trajectory **Baidu** (Senior R&D Engineer) → **Shanghai AI Laboratory** (Researcher, GMAI Team) → **Monash University** (PhD Student) ``` #### Step 4 — Write ZH Profile Content Edit `pages/zh/team/{slug}.md` — same structure with Chinese text: ```markdown --- layout: profile title: "叶锦 — GMAI Lab"
Voir sur GitHub
Ce SKILL.md est tres volumineux, SkillsMP affiche donc ici seulement la premiere section. Voir sur GitHub