@kobolabs/fashion-tech-pack-schema
v1.0.0
Published
JSON Schema standard for fashion tech packs
Downloads
128
Maintainers
Readme
fashion-tech-pack-schema
An open JSON Schema standard for fashion tech packs.
What is a Tech Pack?
A tech pack is the technical specification document that bridges design and manufacturing in the fashion industry. It contains everything a factory needs to produce a garment: measurements, materials, construction details, colorways, labelling, and packaging requirements. Despite being the single most critical document in garment production, there is no widely adopted machine-readable standard for tech packs — most are still exchanged as PDFs or spreadsheets. This schema changes that.
Schema Overview
The schema defines a complete tech pack as a JSON document with the following sections:
| Section | Description | |---------|-------------| | style | Core identification — style name, number, season, category, brand, target price | | colorways | Color options with hex, Pantone, and swatch references | | billOfMaterials | Every component (fabric, trim, hardware, labels) with supplier, cost, and consumption data | | measurements | Points of measure across the full size range with grading and tolerances | | construction | Stitch types, seam specifications, and assembly notes | | sampleStages | Sample approval tracking from Proto through Production | | careInstructions | Wash, dry, iron, and dry-clean specifications with care symbol codes | | labelling | Country of origin, fibre content, and label requirements | | packaging | Poly bag, tissue, hanger pack, and carton packing instructions |
Required sections: style, colorways, billOfMaterials, measurements
Quick Start
npm install @kobolabs/fashion-tech-pack-schemaValidate a tech pack using Ajv:
import Ajv from "ajv";
import addFormats from "ajv-formats";
import schema from "@kobolabs/fashion-tech-pack-schema/schema/tech-pack.schema.json";
const ajv = new Ajv();
addFormats(ajv);
const validate = ajv.compile(schema);
const techPack = JSON.parse(fs.readFileSync("my-tech-pack.json", "utf-8"));
const valid = validate(techPack);
if (!valid) console.error(validate.errors);Schema Reference
tech-pack.schema.json (root)
The top-level schema. References sub-schemas via $ref.
colorway.schema.json
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| name | string | yes | Commercial color name |
| code | string | | Internal color code |
| hex | string | | Hex value (#RRGGBB) |
| pantone | string | | Pantone TCX reference |
| isPrimary | boolean | | Lead colorway flag |
| fabricSwatchRef | string | | Link to physical/digital swatch |
bom.schema.json
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| component | string | yes | Component name |
| category | enum | | fabric, trim, label, hardware, zipper, button, etc. |
| placement | string | yes | Where the component is used |
| supplierName | string | | Vendor name |
| supplierArticleNumber | string | | Supplier's article reference |
| composition | string | | Fibre/material composition |
| weight | object | | { value, unit: "gsm" \| "oz" } |
| width | object | | { value, unit: "cm" \| "inches" } |
| colorName | string | | Component color |
| colorCode | string | | Hex color code |
| pantone | string | | Pantone reference |
| consumption | object | | { value, unit: "yards" \| "meters" \| "pieces" } |
| unitCost | object | | { value, currency } (ISO 4217) |
| moq | number | | Minimum order quantity |
| leadTimeDays | number | | Supplier lead time in days |
| notes | string | | Additional notes |
measurements.schema.json
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| unit | enum | yes | "cm" or "inches" |
| sizeRange | string[] | yes | Ordered size list |
| baseSize | string | | Grading base size |
| tolerancePlus | number | | Default + tolerance |
| toleranceMinus | number | | Default - tolerance |
| points | array | yes | Measurement points (see below) |
Each measurement point:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| name | string | yes | Point of measure name |
| code | string | | Short code (e.g. "A1") |
| description | string | | How to measure |
| values | object | | { "S": 50, "M": 53, ... } |
| tolerancePlus | number | | Override + tolerance |
| toleranceMinus | number | | Override - tolerance |
Examples
basic-tshirt.json — A minimal tech pack for a crew neck organic cotton t-shirt. Three colorways, four BOM items, five measurement points across XS-XL.
woven-jacket.json — A comprehensive tech pack for a lined utility jacket. Four colorways, twelve BOM items, twelve measurement points with tight tolerances, sample stage tracking, full construction notes with stitch types and seam specs, complete labelling and packaging.
Why This Exists
Fashion is one of the largest global industries, yet its core technical documents — tech packs — lack any machine-readable standard. Brands email PDFs. Factories re-key measurements into spreadsheets. Errors cascade through the supply chain. Every PLM, ERP, and production system defines its own proprietary format, making interoperability between tools nearly impossible.
This schema provides a shared vocabulary. It is intentionally practical — based on what designers, technical designers, and production teams actually put in tech packs — not an academic exercise. The goal is a common format that PLM vendors, factory systems, and independent tools can all read and write.
Contributing
See CONTRIBUTING.md for guidelines on submitting issues and pull requests.
License
MIT -- see LICENSE.
Built by the team at Kobo -- modern PLM for fashion brands.
