CtrlK
BlogDocsLog inGet started
Tessl Logo

ai-unified-process/aiup-nestjs-nextjs

AI Unified Process plugin for the NestJS/Drizzle + Next.js stack

92

1.15x
Quality

91%

Does it follow best practices?

Impact

97%

1.15x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-2/

{
  "context": "Tests whether the agent adds a Supplier entity and an optional Product→Supplier relationship by editing the Drizzle schema and generating a new migration — rather than hand-writing SQL or editing the already-applied 0000_initial.sql. The project has one applied migration and a journal that must stay in sync. The task deliberately does not name the mechanism; knowing to edit schema.ts and run drizzle-kit generate is what is under test.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Schema edited, not SQL hand-written",
      "description": "src/database/schema.ts gains a supplier table definition; the new migration SQL is generated output rather than hand-authored",
      "max_score": 22
    },
    {
      "name": "Applied migration left untouched",
      "description": "drizzle/migrations/0000_initial.sql is not modified or deleted",
      "max_score": 18
    },
    {
      "name": "New migration added",
      "description": "A new versioned .sql file appears under drizzle/migrations/ alongside the existing one",
      "max_score": 14
    },
    {
      "name": "Journal kept in sync",
      "description": "meta/_journal.json gains an entry for the new migration rather than being replaced, truncated, or left stale",
      "max_score": 12
    },
    {
      "name": "Correct pg-core types",
      "description": "id uses integer().primaryKey().generatedAlwaysAsIdentity(); name and country_code use text(); active uses boolean() with a default of true",
      "max_score": 12
    },
    {
      "name": "country_code constraint expressed in the schema",
      "description": "The two-uppercase-letter rule becomes a CHECK constraint in the schema rather than being left to application validation only",
      "max_score": 10
    },
    {
      "name": "Optional relationship modelled correctly",
      "description": "Product gains a nullable supplier reference with a foreign key to supplier.id; the column is not NOT NULL, and deleting a supplier does not cascade to products",
      "max_score": 8
    },
    {
      "name": "snake_case column naming",
      "description": "Multi-word columns such as country_code and supplier_id carry an explicit snake_case column name argument, matching the existing in_stock column",
      "max_score": 4
    }
  ]
}

.mcp.json

README.md

tile.json