Skip to content

Combo Templates

Combo templates are Plan Specifications (IAO) — information content entities that prescribe future creative testing Acts (CCO). Each Plan Specification defines a combo type, product line, audience, and optional Canva design link. Plan Specifications feed into the suggestion generation and Creative Act Report workflows.

Goal: Maintain a library of Plan Specifications that standardize how new creative testing Acts are defined.

ActorOntological typeRole
Staff user (Creative)Person (CCO) bearing Creative RoleCreates, browses, and deletes Plan Specifications
Dashboard API WorkerEngineeredSystem (IOF)Serves CRUD endpoints
PlanetScaleEngineeredSystem (IOF)IBE store for Plan Specifications

Plan Specification identifiers follow the same structured format as Creative Act Report identifiers:

{type}-{productCodes}-{productCount}-{audience}-{sequenceNumber}

Examples:

  • SP-IPH-2-WOMEN-001 — first static post Plan Specification, 2 iPhone MaterialArtifacts, women audience
  • CT-IPH+SAM-3-MEN-002 — second carousel Plan Specification, 3 mixed MaterialArtifacts, men audience
CodeProduct line
IPHiPhone cases
SAMSamsung cases
GRIPZGrip cases
AIRAirPod cases
AIRMAXAirPod Max cases

When multiple product lines are selected, codes are sorted alphabetically and joined with + (e.g., AIR+IPH).

CodeType
SPStatic Post
CTCarousel Template
NTNew Template
UGCUser-Generated Content
STStory Template

The sequence number is auto-generated by querying existing Plan Specifications with the same prefix and incrementing the highest found number (3-digit padded: 001, 002, etc.).

MethodPathDescription
GET/api/combo-templatesList all Plan Specifications, ordered by identifier
POST/api/combo-templatesCreate Plan Specification with auto-generated identifier
DELETE/api/combo-templates/:templateIdDelete Plan Specification
interface CreatePlanSpecification {
label: string | null; // optional human-readable name
type: "SP" | "CT" | "NT" | "UGC" | "ST";
product_count: number; // number of MaterialArtifacts
audience: "WOMEN" | "MEN";
canva_url: string | null; // link to Canva design (Action Specification resource)
product_codes: string[]; // e.g. ["IPH", "SAM"]
}

The plan_specification_identifier is auto-generated server-side from the type, product codes, count, audience, and next available sequence number.

[IAO: Plan Specification — prescribes future creative testing Acts]

ColumnTypeDescription
idUUIDPrimary key
nameVARCHAR(255)Plan Specification display name
configJSONBAction Specifications and template configuration
temporal_originTIMESTAMPTZCreation timestamp
last_modified_atTIMESTAMPTZLast update timestamp

The current system accesses combo_templates directly via the Supabase client from the frontend (no Express route). In the rewrite, this becomes a proper API route in the Dashboard API Worker, following the same pattern as Creative Act Reports.

  • Plan Specification Identifier is correctly auto-generated following the convention
  • Multiple MaterialArtifact product codes are sorted and joined with +
  • Sequence numbers increment correctly and avoid collisions
  • Plan Specifications can be listed, created, and deleted
  • Deleting a Plan Specification does not affect Creative Act Reports that reference its identifier