groups-and-teams
DevelopmentDealing with groups and teams in PrairieLearn, and confusion about table/column/variable names.
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Inspect the Agent Skill at https://github.com/PrairieLearn/PrairieLearn/blob/HEAD/.agents/skills/groups-and-teams/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/groups-and-teams, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
The codebase contains a half-completed migration from "teams" to "groups". As a result, there are many places where the old and new terminology coexist, which can be confusing.
The database table and column names currently use "teams" (e.g. teams and team_roles tables, and team_id columns). All new and existing code should continue to use the "teams" terminology when interacting with the database, as it is not currently safe to rename these tables and columns.
Database queries may alias teams tables/columns to use groups terminology, e.g. teams AS g or team_users AS tu. This is acceptable and encouraged.
User-facing functionality (UI, CSV exports, etc.), function/variable names, and Zod schema/type names use "groups" (e.g. Group, GroupConfig, and GroupRole types and schemas). All new and existing code should use the "groups" terminology in these contexts.