Mongoose and MongoDB patterns — schema design, validation, indexes, virtuals,
99
99%
Does it follow best practices?
Impact
100%
1.11xAverage score across 5 eval scenarios
Passed
No known issues
{
"instruction": "Define Mongoose schemas with proper timestamps, validation, indexes, and schema options",
"relevant_when": "Agent defines or modifies a Mongoose schema",
"context": "Mongoose schemas should use timestamps:true, required:true on non-optional fields, enum for finite sets, trim:true on strings, compound indexes matching query patterns, unique indexes for uniqueness constraints, and TTL indexes for auto-expiring documents.",
"sources": [
{
"type": "file",
"filename": "skills/mongoose-best-practices/SKILL.md",
"tile": "tessl-labs/mongoose-best-practices@0.1.3"
}
],
"checklist": [
{
"name": "timestamps-enabled",
"rule": "Agent sets timestamps: true in schema options for automatic createdAt/updatedAt management",
"relevant_when": "Agent defines a new Mongoose schema"
},
{
"name": "required-fields",
"rule": "Agent marks all non-optional fields with required: true",
"relevant_when": "Agent defines Mongoose schema fields"
},
{
"name": "enum-validation",
"rule": "Agent uses enum arrays for fields with a finite set of valid values (e.g., status, role, type)",
"relevant_when": "Agent defines schema fields that accept a limited set of string values"
},
{
"name": "trim-strings",
"rule": "Agent adds trim: true on user-facing string fields to strip whitespace",
"relevant_when": "Agent defines string fields in Mongoose schemas"
},
{
"name": "compound-indexes",
"rule": "Agent defines compound indexes matching common query filter + sort patterns with equality fields first, then sort fields",
"relevant_when": "Agent defines schemas that will be queried with filters and sorting"
},
{
"name": "unique-indexes",
"rule": "Agent uses unique indexes at the database level for uniqueness constraints (e.g., email), not just application-level checks",
"relevant_when": "Agent implements uniqueness constraints on fields"
},
{
"name": "ttl-indexes",
"rule": "Agent uses TTL indexes (expireAfterSeconds) for auto-expiring documents like sessions, tokens, or logs",
"relevant_when": "Agent creates schemas for temporary or expirable data"
}
]
}