| name | add-member |
| description | Interactive guide for adding new lab members to the website. Gathers information via web research, helps write appropriate bios, optimizes images, and generates properly formatted member files. Use when adding new team members, updating member info, or marking members as alumni. |
| version | 1.0.0 |
| allowed-tools | Read, Write, Edit, Bash, WebSearch, AskUserQuestion, Glob |
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.mdBuild 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