groups-and-teams
Syncs 'groups' code with 'teams' database schemas in PrairieLearn.
Install
mkdir -p .claude/skills/groups-and-teams && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/7186" && unzip -o skill.zip -d .claude/skills/groups-and-teams && rm skill.zipInstalls to .claude/skills/groups-and-teams
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Dealing with groups and teams in PrairieLearn, and confusion about table/column/variable names.Key capabilities
- →Standardizes database schema aliasing as 'groups'
- →Maintains consistency in variable naming across UI layers
- →Validates Zod schemas against existing 'teams' database columns
- →Maps team roles to group-based application types
How it works
It applies a mapping convention where database interaction uses original table names while application code uses refactored naming.
Inputs & outputs
When to use groups-and-teams
- →Writing database queries with proper aliasing
- →Refactoring UI components to use Group naming
- →Validating Zod schemas against database models
About this skill
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.
When not to use it
- →When working with a codebase that has fully completed the rename
- →For projects unrelated to the PrairieLearn schema
Limitations
- →Requires constant vigilance to maintain mapping
- →Does not automate actual database migration
How it compares
It mitigates confusion in a partially migrated codebase by enforcing strict terminology boundaries.
Compared to similar skills
groups-and-teams side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| groups-and-teams (this skill) | 1 | 6mo | No flags | Beginner |
| analyzing-query-performance | 1 | 26d | Review | Intermediate |
| litestream | 0 | 6mo | Review | Advanced |
| dotnet-inspect | 0 | 3mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
analyzing-query-performance
jeremylongshore
Execute use when you need to work with query optimization. This skill provides query performance analysis with comprehensive guidance and automation. Trigger with phrases like "optimize queries", "analyze performance", or "improve query speed".
litestream
benbjohnson
Expert knowledge for contributing to Litestream, a standalone disaster recovery tool for SQLite. Provides architectural understanding, code patterns, critical rules, and debugging procedures for WAL monitoring, LTX replication format, storage backend implementation, multi-level compaction, and SQLite page management. Use when working with Litestream source code, writing storage backends, debugging replication issues, implementing compaction logic, or handling SQLite WAL operations.
dotnet-inspect
joslat
Query .NET APIs across NuGet packages, platform libraries, and local files. Search for types, list API surfaces, compare and diff versions, find extension methods and implementors. Use whenever you need to answer questions about .NET library contents. As of v0.7.8, [Obsolete] members are surfaced in
db-naming
Hainrixz
Audit naming conventions — inconsistent table/column casing and pluralization, ambiguous or reserved-word identifiers, untyped/opaque columns, inconsistent FK and boolean naming, and identifiers that fight the engine's case-folding rules. Module M7. Feeds the Design & Integrity score (Naming categor
engineer
joe-broadhead
Builds and modifies dbt models with Nova using first-principles engineering: change classification, reuse before rebuild, explicit grain and contract checks, blast-radius analysis, proportionate quality gates, manifest readiness, and ship-safe summaries. Use when changing model SQL, columns, grain,
drizzle
lobehub
Drizzle ORM schema and database guide. Use when working with database schemas (src/database/schemas/*), defining tables, creating migrations, or database model code. Triggers on Drizzle schema definition, database migrations, or ORM usage questions.