-
Notifications
You must be signed in to change notification settings - Fork 97
Description
Background and statement of problem
onboarding comprises several steps:
- the new lab member sends in their signed checklist PDF (to [email protected])
- request an invitation to the lab slack workspace (context-lab.slack.com); this requires manual approval by me (workspace admin)
- complete the "join the lab!" workflow:
- share github + gmail accounts (github: used to invite to ContextLab organization; gmail: used to invite to lab calendars)
- share info for website:
- name (as they want to be listed)
- short (3ish sentence) bio
- optionally, link to personal website to be linked to on the CDL website
- DM photo for website to @jeremy (me) on slack
then i need to do several things manually:
- add lab member to the ContextLab organization on GitHub and select their membership types (Lab Default + whatever projects they are joining)
- send invitations to the relevant lab calendars and set permissions as needed
- modify lab photo to have the green border style used on other people images (https://www.context-lab.com/people). each border is hand drawn to give slight variations across images.
- update the "People" page on Squarespace by manually adding the new lab member, along with their bio (and website link if available)
Proposed solution
i'd like to automate these processes as much as possible, ideally using a slack bot, or a script that i can run locally. I'm imagining:
- The GitHub username is parsed from their response
- First search to make sure that the GitHub name is valid. If not, re-prompt user via DM
- Otherwise, send a slack message to me with a list of ContextLab organization teams (automatically parsed from GitHub) that i can check off; by default check off "Lab default" and nothing else
- Then generate an invite to the GitHub organization and send it
- Next, send invitations to the lab calendars:
- Contextual Dynamics Lab
- Out of lab
- CDL Resources
- Again, the calendar invites should start with a DM to me in slack, where I confirm (ideally in a single dialogue) which calendars to invite them to and what permissions (read only-- default for Contextual Dynamics Lab, or edit-- default for Out of lab and CDL Resources)
- Once I confirm the settings, invites to the calendar are sent out
- Next, the photo is automatically processed (border added) and the bio is edited (by ChatGPT or Claude Sonnet) for content and style: Third person, uses first names, short (3--4 sentences, max), no inappropriate or private information, clear/engaging/fun style. Ideally we could set up the people page as a gallery wall and populate it automatically. (Note: it would also be nice to have a workflow to remove someone from the lab website when they complete the offboading process; this could also be added to the offboarding instructions-- the lab member starts the offboarding workflow and at the end a confirmation dialogue is sent to me to confirm that they should be removed from the website)
- Then the people page of the website is automatically checked to verify that the layout looks good, no visual artifacts, etc.
Credentials could potentially be stored as GitHub secrets BUT only I should have access to them. the repository is public, so no API keys, tokens, passwords, or other private information should be stored in a way that others can access.
Other thoughts
There are several aspects of the implementation that I don't know how to solve. Ideally everything could be handled directly within slack, with API keys, tokens, and passwords handled securely (and without me needing to type them every time).
It's also important that no invitations or permissions are granted without me explicitly signing off on it and confirming-- the lab manual is public, and anyone at Dartmouth can join our slack workspace. So even if someone completes the onboarding workflow, I still want to be able to confirm or deny their request.