COS-DSN-002

Design Submission & Internal Review Gate

Module Design
Status Ready
Phase 1
Dependencies COS-DSN-001
Downstream COS-PRC-001 (if approved) / COS-DSN-001 (if revision)
Last Updated June 2026

Purpose

After a designer submits work, it passes through an internal review before reaching the customer. Today Anmol reviews everything. This spec encodes his review logic as automated checks so standard jobs go to RM/Anupam, and Anmol only sees high-value or flagged exceptions.

Key note: Reviewer sees the original WhatsApp/email message alongside the AI brief and submitted design — not just the formatted summary.

Actors

ActorTypeRole
AI Review EngineSystemRuns automated checks immediately on submission
RMInternalReviews Coral submissions against checklist
AnupamInternalReviews CAD submissions
AnmolInternalReviews only: high-value, flagged, or revision-loop jobs

Trigger

Job state = COREL_SUBMITTED or CAD_SUBMITTED

Full Flow

1. Submission received
2. AI Review Engine runs all automated checks (see below)
3. Compute result:
   PASS → route to RM (Coral) or Anupam (CAD) for checklist review
   FAIL → route directly to Anmol with flagged reasons
   WARN → route to RM/Anupam with warnings visible
4. Reviewer opens job review screen:
   → Original customer message (raw WhatsApp text + images)
   → AI parsed brief
   → Submitted design (render / CAD preview)
   → AI auto-check results per item
   → Review checklist — must tick every item
   → Pricing auto-calculation already shown
5. Reviewer completes checklist + adds notes
6. Decision:
   APPROVE → state = CAD_INTERNAL_QC | next state
             → goes to pricing → then to client
   SEND BACK → state = COREL_QUEUED | CAD_QUEUED
              → revision note sent to designer
              → revision count++
7. If value > threshold OR revision_count >= 3 → auto-escalate to Anmol

AI Auto-Checks

CheckLogicResult
Weight in budget rangegold cost vs brief.budget_usdWARN if >15% over, FAIL if >30%
Diamonds in budget rangediamond cost at client rate vs remaining budgetWARN / FAIL
CAD file valid.3dm parseable, not corruptedFAIL
Render presentRender image uploaded with CADFAIL
Weight report presentPDF or text includedWARN
Ring size presentsub_category=ring AND no size in briefWARN
Revision countrevision_count >= 3FLAG to Anmol

Review Checklist

Coral

  • Layout matches reference / description
  • Font appropriate for customer (if text/nameplate)
  • Diamond coverage fits stated setting
  • Approx carat weight reasonable for budget
  • No missing elements (bail, clasp, chain attachment)
  • Customer recurring instructions followed

CAD (above plus)

  • Gold weight within ±15% of budget estimate
  • Diamond carat within ±15% of budget estimate
  • Ring/bracelet size matches brief
  • Wall thickness adequate (AI check passed)
  • Prong structure fits stone size
  • Finding type matches brief
  • Internal finish noted (e.g. polished inside band)

Escalation to Anmol

TriggerReason
AI check = FAIL on weight/diamondRisk of wrong pricing on high-value piece
value_estimate > $15,000High-value threshold
revision_count >= 3Revision loop — needs senior review
Reviewer explicitly escalates"Send to Anmol" option on review screen
New customer (first 3 orders)Build trust before delegating

Revision Flow

Reviewer must select reason(s) when sending back:

  • Weight too high / too low
  • Diamond coverage incorrect
  • Wrong font / style
  • Missing element
  • Dimension mismatch
  • Customer instruction not followed
  • Other (free text required)

Designer gets notification with specific reasons. Job appears at top of their queue (revision jobs priority-boosted).

Business Rules

RuleDetail
Checklist mandatoryCannot approve without ticking every item
Revision reason mandatoryCannot send back without selecting at least one
Anmol sees L2+ onlyStandard passing jobs never appear in his queue
SLA for review4h. Escalate to Anupam (CAD) or team lead after 4h.
Spec lock on approvalOnce approved here, spec frozen until client approves.

API Endpoints

GET  /queues/internal-review?reviewer_id=:id
GET  /jobs/:job_id/review-pack
  Returns: design files, brief, original message, AI checks, customer history, pricing estimate
POST /jobs/:job_id/review-decision
  Body: { decision, checklist, notes, revision_reasons? }
GET  /jobs/:job_id/revisions

Out of Scope

ItemHandled in
Client approvalCOS-APR-001
Pricing computationCOS-PRC-001
CAD manufacturability deep-checkCOS-AIE-001