Add Lab Member
This skill guides you through adding a new lab member to the website with proper formatting, bio writing, and image handling.
When to Use This Skill
Use this skill when:
- "Add a new lab member"
- "Create a profile for [name]"
- "Add [name] to the team page"
- "Update [name]'s role"
- "Mark [name] as alumni"
- Any request involving adding or updating team member profiles
Interactive Workflow
Step 1: Gather Basic Information
Ask the user for essential details:
Required:
- Full name
- Role (pi, postdoc, staff, phd, ms, ra, programmer, undergrad, highschool)
Optional (we'll research if not provided):
- Email address
- GitHub username
- LinkedIn profile
- Personal website
- Current institution/program (if student)
Use AskUserQuestion to collect this information if not provided in the initial request.
Step 2: Web Research
Conduct web research to gather background information:
-
Search LinkedIn for education and work history
- Query: "[Full Name] LinkedIn [institution if known]"
- Extract: degrees, institutions, prior positions
-
Search GitHub for username and projects
- Query: "[Full Name] GitHub [email domain if known]"
- Extract: username, notable repositories
-
Search institutional pages for bio information
- Query: "[Full Name] [institution] neuroscience/biology/computer science"
- Extract: research interests, current work
-
Search publications if applicable (PhD/postdoc)
- Query: "[Full Name] [institution] publications"
- Extract: research areas
Present findings to user:
- Show what you found
- Ask user to confirm accuracy
- Ask for clarification on anything unclear
- Request any missing critical information
Step 3: Draft Bio
Using the gathered information and role-appropriate template:
-
Determine bio length based on role:
- PI: 250-300 words (detailed)
- PhD/Postdoc/Staff: 100-150 words
- MS/RA/Programmer: 80-120 words
- Undergrad: 80-100 words
- Alumni: 50-250 words (based on tenure and achievements)
-
Follow bio template from templates/ directory:
- Use third-person voice
- Professional, academic tone
- Include: education, join date, research focus/current work
- Mention co-advisors if applicable
- Highlight prior experience if relevant
- Note awards/fellowships if notable
-
Present draft to user:
- Show the drafted bio
- Ask if they want to make any edits
- Refine based on feedback
Step 4: Handle Profile Image
-
Ask user for image:
- "Do you have a profile photo for [name]?"
- If yes: "Please provide the path to the image file"
- If no: "We can use a placeholder for now and add it later"
-
If image provided, validate and optimize:
- Check file size and dimensions using
fileorsips - Target specs: 100-250 KB, reasonably square aspect ratio
- If too large (>500 KB) or wrong aspect ratio:
- Offer to resize/optimize using scripts/optimize-image.sh
- Use
sips(macOS) orconvert(ImageMagick) if available
- Check file size and dimensions using
-
Generate image filename:
- Format:
firstname-lastname.jpg - Ensure no spaces or special characters
- Copy to
images/directory with correct name
- Format:
Step 5: Generate Member File
-
Create filename:
_members/firstname-lastname.md -
Build frontmatter:
--- name: [Full Name] image: images/[firstname-lastname].jpg role: [role] description: [Role display text from roles.yaml] links: email: [email if provided] github: [username if found/provided] linkedin: [profile if found/provided] home-page: [url if provided] ---- Only include links that are available
- Remove empty link fields
-
Add bio text (from Step 3)
-
Write file to
_members/firstname-lastname.md
Step 6: Handle Alumni (if applicable)
If the role is alumni OR user indicates this person is leaving:
-
Ask for alumni details:
- Year they left/are leaving
- Their role while in the lab (if different from current)
- "Next" position (where they're going)
-
Update team/index.md:
- Read current alumni section
- Add entry in chronological order (most recent first):
- YEAR: [**Name**](/members/firstname-lastname.html) (Role Description). **Next:** [Next position] - Maintain proper formatting
Step 7: Validate
Run validation checks:
- [ ] Member file exists at
_members/firstname-lastname.md - [ ] YAML frontmatter is valid
- [ ] Role is valid (check against roles.yaml)
- [ ] Image file exists (or noted as placeholder)
- [ ] Bio is appropriate length for role
- [ ] Bio uses third-person voice
- [ ] Links are properly formatted
- [ ] If alumni: team/index.md is updated
Step 8: Present Summary
Show the user what was created:
✓ Created member profile for [Name]
✓ File: _members/firstname-lastname.md
✓ Role: [role display text]
✓ Image: images/firstname-lastname.jpg [or "Placeholder - add later"]
✓ Links: [list of included links]
[✓ Updated alumni list] [if applicable]
Bio preview:
[First 100 characters of bio]...
Would you like me to show you the full file content?
Step 9: Optional Commit
Ask user if they want to commit the changes:
- If yes: Create git commit with appropriate message
- If no: Leave as unstaged changes for manual review
Bio Writing Guidelines
Voice and Tone
- Always third person: "Jane is a PhD student..." (not "I am...")
- Professional and academic: Formal but not stuffy
- Factual and achievement-oriented: Focus on credentials and work
- Present tense for current work: "working on", "developing", "researching"
- Past tense for background: "received", "worked", "joined"
Essential Elements
All members should include:
- Current role and institution
- When they joined (month and year)
- Education background (degree, major, institution)
- Current research/work focus
Additional elements by role:
PI:
- PhD institution and advisors (with hyperlinks)
- Research philosophy and approach
- Notable publications or media coverage
- Prior positions
- Major awards and honors
PhD/Postdoc:
- Undergraduate and/or Master's institution
- Specific research interests
- Co-advisors if applicable
- Previous research experience if notable
Staff/Programmer:
- Prior work experience (industry or academic)
- Technical expertise and focus areas
- Projects they're working on
- Joint appointments if applicable
Students (MS/Undergrad):
- Major and year
- Research interests
- Prior internships or research if applicable
- Awards/fellowships if notable
Alumni:
- All of above based on their role
- Mentors (especially for short-term interns)
- Achievements during time in lab
- Keep concise for summer interns (50-80 words)
What to Avoid
- First person narrative (except possibly PI intro)
- Excessive detail about projects (keep to 1-2 sentences)
- Future tense or speculation
- Casual language or slang
- Personal information unrelated to research
- Redundancy with frontmatter (name, role already shown)
Image Handling Details
Preferred Specifications
- Format: JPG (preferred) or PNG
- Size: 100-250 KB for web optimization
- Aspect ratio: Square or nearly square (1:1 or 4:5)
- Minimum dimensions: 300x300 pixels
- Recommended: 400x400 to 600x600 pixels
- Color: RGB color space
Optimization Process
If image needs optimization:
# Use the bundled script
bash .claude/skills/add-member/scripts/optimize-image.sh input.jpg output.jpg 500
Or manually with sips (macOS):
# Resize to 500px max dimension, maintaining aspect ratio
sips -Z 500 input.jpg --out output.jpg
# Convert PNG to JPG
sips -s format jpeg input.png --out output.jpg
Or with ImageMagick:
# Resize and optimize
convert input.jpg -resize 500x500^ -quality 85 output.jpg
Filename Convention
- Use kebab-case:
firstname-lastname.jpg - No spaces, special characters, or uppercase
- Match the member file slug
- Examples:
jane-doe.jpg,john-smith.jpg
Role-Specific Notes
Adding Alumni
When adding someone who has already left:
- Set
role: alumniin frontmatter - Include their actual role in bio text
- Update
team/index.mdalumni section with:- Year they left
- Role description in parentheses
- "Next:" annotation if known
Handling Co-Advisors
When member has co-advisor:
- Mention in bio: "co-advised by [Name]"
- Include hyperlink if possible:
[Name](url) - Note in summary when presenting to user
Joint Appointments
When member has joint affiliation:
- Mention in bio: "jointly with the [Lab Name]"
- Include hyperlink to other lab if available
- Note collaborating PIs clearly
Students Transitioning Roles
When student moves from undergrad → MS → PhD:
- Create new member file? No - keep same file
- Update
role:field in frontmatter - Update bio to reflect new status
- Update
description:field - Consider adding a note about the transition in bio
Summer Interns
Short-term members (2-3 months):
- While active: Add with role
undergradorhighschool - When leaving: Change to
role: alumni - Bio: Can be brief (50-80 words) but highlight:
- Institution and program
- What they worked on
- Who mentored them
- Any notable achievements
Error Handling
If web search finds nothing:
- Ask user to provide information directly
- Offer to draft minimal bio and let them expand
If image is wrong format/size:
- Offer to optimize using provided tools
- If tools not available, provide manual instructions
- Worst case: use placeholder and note in summary
If unsure about role:
- Present role options from roles.yaml
- Use AskUserQuestion to clarify
If duplicate member exists:
- Check if it's an update vs new member
- Ask user if they want to update existing or create new
Validation Checklist
Before finalizing, verify:
- [ ] Full name matches across filename, frontmatter, and bio
- [ ] Role is valid (one of: pi, postdoc, staff, phd, ms, ra, programmer, undergrad, highschool, alumni)
- [ ] Image filename follows convention (kebab-case, .jpg)
- [ ] Bio is third person throughout
- [ ] Bio length appropriate for role (see guidelines)
- [ ] Join date mentioned in bio (month and year)
- [ ] Education background included
- [ ] All links are properly formatted
- [ ] YAML frontmatter is valid (test with parser)
- [ ] If alumni: team/index.md updated correctly
- [ ] No trailing whitespace or formatting issues
See Also
- reference.md - Detailed documentation on member file format and patterns
- examples.md - Example workflows for different scenarios
- templates/ - Bio templates for each role type
微信扫一扫