factory.md

Make your factory machine-readable

v2.0

A Markdown file with YAML frontmatter describes a factory's capabilities, certifications, and endpoints — readable by humans, AI agents, and procurement platforms alike. Structured frontmatter for search and filtering, rich Markdown body for everything else.

Quick Start

1

Create

Create a factory.md file with 2 required frontmatter fields

2

Describe

Add recommended frontmatter fields and Markdown body sections

3

Validate

Validate frontmatter against the JSON Schema

4

Host

Serve at /.well-known/factory.md on your domain

Minimal Example
---
schema: "https://factoryschema.org/v2.0/factory.schema.json"
name: "My Factory"
location: "Shenzhen, CN"
vertical: machining
capabilities:
  - CNC milling
  - CNC turning
certifications:
  - type: "ISO 9001:2015"
website: "https://myfactory.example.com"
email: sales@myfactory.example.com
---

# My Factory

Precision CNC machining for aerospace and medical components.

## Capabilities

5-axis CNC milling, CNC turning, wire EDM. Aluminum, steel, titanium.

## Quality

100% first article inspection. ISO 9001:2015 certified.

Only 2 fields required: name and location. Everything else is recommended or optional.

Why factory.md

🔍

Discoverable

Hosted at a RFC 8615 well-known URI. AI agents and platforms find your factory without any prior knowledge of your site structure.

✏️

Minimal

Start with just 2 required fields. Add capabilities, certifications, and rich Markdown descriptions as you go.

Machine-Readable

YAML frontmatter validated against JSON Schema Draft 2020-12. Structured data for search and filtering.

📖

Human-Readable

The Markdown body is natural language — readable by factory owners, procurement teams, and LLMs without any parsing. Describe your factory in your own words.

Schema Overview

factory.md has two layers: structured YAML frontmatter for discovery and indexing, and a free-form Markdown body for rich descriptions.

Frontmatter Fields

  • name req — Factory trade name
  • location req — String or structured object
  • schema — Schema URI for validation
  • vertical — Industry vertical (e.g. "machining", "pcb")
  • capabilities — Array of process strings
  • certifications — Array of certification objects
  • website — Factory website URL
  • email — Contact email address

Only name and location are required. All other frontmatter fields are recommended.

Recommended Body Sections

  • Capabilities — Processes, materials, finishes, equipment, tolerances, constraints
  • Certifications — Additional certification detail beyond frontmatter
  • Quality — QC process, testing, inspection equipment, documentation
  • Engineering — File formats, DFM review, prototyping, CAD/CAM
  • Shipping & Logistics — Incoterms, methods, markets, packaging, payment
  • Compliance — IP protection, export controls, environmental, social
  • RFQ Requirements — Submission endpoint, required fields/files, NDA
  • About — Legal name, industries served, founding year, business hours

Body sections are recommended, not enforced. Write what matters for your factory.

Certifications

  • type req — e.g. "ISO 9001", "GOTS"
  • body — Issuing body
  • id — Certificate ID
  • issued / expires — Dates
  • url — Verification link

Location

  • Shorthand: "Shenzhen, CN"
  • Or structured object:
  • city req, country req (ISO 3166-1 alpha-2)
  • region, postal_code, timezone, coordinates

Examples

Real-world factory profiles across manufacturing verticals.

Precision Works Manufacturing Co. — Aerospace-grade CNC machining in Shenzhen, China. 5-axis milling, wire EDM, AS9100D certified.
factory-machine-shop.md
---
schema: "https://factoryschema.org/v2.0/factory.schema.json"
name: "Precision Works Manufacturing Co."
location:
  city: Shenzhen
  region: Guangdong
  country: CN
  timezone: Asia/Shanghai
  coordinates: { lat: 22.5431, lng: 114.0579 }
vertical: machining
capabilities:
  - 5-axis CNC milling
  - CNC turning
  - wire EDM
  - sinker EDM
  - surface grinding
  - cylindrical grinding
  - jig boring
certifications:
  - type: "ISO 9001:2015"
    body: "TUV SUD"
    expires: "2026-06-14"
  - type: AS9100D
    body: BSI
    expires: "2026-08-31"
  - type: ITAR Registered
    body: U.S. DDTC
website: "https://precisionworks.example.com"
email: sales@precisionworks.example.com
---

# Precision Works Manufacturing Co.

High-precision CNC machining facility specializing in
aerospace and medical-grade components. Founded 2008.
120-150 employees. Languages: Chinese, English.

## Capabilities

### Materials
Aluminum 6061-T6, aluminum 7075-T6, titanium Ti-6Al-4V,
stainless steel 304/316L/17-4 PH, Inconel 718, PEEK...

### Equipment
| Equipment | Type | Count | Key Specs |
|-----------|------|-------|-----------|
| DMG Mori DMU 50 | 5-axis CNC mill | 4 | 500x450x400mm, 20k RPM |
| Mazak QTN-200 | CNC lathe | 6 | 300mm dia, live tooling |

### Tolerances
- **Standard:** +/-0.025 mm (ISO 2768-m)
- **Precision:** +/-0.002 mm

### Constraints
- **MOQ:** 1-10,000 pieces
- **Lead time:** 10-35 days (5 days samples, expedite available)

## Quality
100% first article inspection, SPC on production runs.
Defect rate: 800 PPM.

## Compliance
**IP protection:** NDA required. Isolated production cells.
**Export controls:** ITAR, EAR
TaiPCB Technology Co., Ltd. — Multilayer and HDI PCB fabrication in Taoyuan, Taiwan. Up to 32 layers, 2.5 mil trace/space. IATF 16949 and UL certified.
factory-pcb-fab.md
---
schema: "https://factoryschema.org/v2.0/factory.schema.json"
name: "TaiPCB Technology Co., Ltd."
location:
  city: Taoyuan
  country: TW
  timezone: Asia/Taipei
vertical: pcb
capabilities:
  - multilayer PCB fabrication
  - HDI (High Density Interconnect)
  - flex-rigid PCB
  - impedance control
  - blind/buried vias
  - heavy copper (up to 6 oz)
certifications:
  - type: "ISO 9001:2015"
    body: SGS
  - type: "IATF 16949:2016"
    body: "TUV Rheinland"
  - type: UL Listed
    body: UL
    id: E123456
  - type: "ISO 14001:2015"
    body: SGS
website: "https://taipcb.example.com"
email: rfq@taipcb.example.com
---

# TaiPCB Technology Co., Ltd.

Advanced multilayer and HDI PCB fabrication for automotive,
telecom, and industrial applications. Founded 2003.
300-350 employees. Languages: Chinese, English, Japanese.

## Capabilities

### PCB Specifications
- **Max layers:** 32
- **Min trace/space:** 2.5 mil (63 um)
- **Min via diameter:** 0.1 mm
- **Max copper weight:** 6 oz
- **Board thickness:** 0.4-6.0 mm

### Materials
FR-4 (Tg 170C), FR-4 high-Tg, Rogers RO4350B,
polyimide, aluminum-backed, Isola 370HR.

### Constraints
- **MOQ:** 5-50,000 panels
- **Lead time:** 5-25 days (3 days samples)
- **Capacity:** 15,000 panels/month

## Quality
AOI after each imaging step, 100% electrical test.
Defect rate: 500 PPM.
Sunrise Textiles Pvt. Ltd. — Vertically integrated knit garment manufacturer in Tirupur, India. Organic cotton, GOTS certified, XS-5XL.
factory-textile.md
---
schema: "https://factoryschema.org/v2.0/factory.schema.json"
name: "Sunrise Textiles Pvt. Ltd."
location:
  city: Tirupur
  region: Tamil Nadu
  country: IN
  timezone: Asia/Kolkata
vertical: textiles
capabilities:
  - knitting
  - dyeing
  - cut-and-sew
  - embroidery
  - screen printing
  - sublimation printing
  - garment washing
certifications:
  - type: GOTS
    body: Control Union
    id: CU-1012345
  - type: OEKO-TEX Standard 100
    body: Hohenstein
  - type: GRS (Global Recycled Standard)
    body: Control Union
  - type: "ISO 9001:2015"
    body: Bureau Veritas
website: "https://sunrisetextiles.example.com"
email: orders@sunrisetextiles.example.com
---

# Sunrise Textiles Pvt. Ltd.

Vertically integrated knit garment manufacturer specializing
in organic cotton basics and activewear. Founded 1997.
500-600 employees. Languages: Tamil, English, Hindi.

## Capabilities

### Fabric Types
Jersey, interlock, rib, pique, french terry, fleece.
GSM range: 120-400.

### Garment Types
T-shirts, polo shirts, hoodies, joggers, leggings, tank tops.
Size range: XS-5XL. Color matching: Pantone TPX/TCX.

### Materials
Organic cotton, BCI cotton, cotton-polyester blends,
recycled polyester, Tencel/lyocell, bamboo viscose.

### Constraints
- **MOQ:** 500-50,000 pieces
- **Lead time:** 21-45 days (10 days samples)
- **Capacity:** 50,000 pieces/month

## Quality
AQL 2.5 final inspection, inline QC at cutting and sewing.
Defect rate: 2,500 PPM.

## Compliance
**Environmental:** GOTS, GRS, zero liquid discharge dyeing,
solar-powered knitting unit.
**Social:** BSCI, SEDEX/SMETA 4-pillar.

Specification Highlights

Key sections from the full specification.

Discovery Mechanism

A factory.md file SHOULD be hosted at the well-known URI per RFC 8615:

https://{domain}/.well-known/factory.md
  • MUST be served over HTTPS
  • MUST use Content-Type: text/markdown; charset=utf-8
  • SHOULD set Cache-Control: max-age=86400 (24 hours)
  • MAY also be hosted at alternative paths (e.g. /factory.md)

Required Fields

FieldTypeDescription
namestringTrade name of the factory (non-empty)
locationstring | objectFactory location — string shorthand or structured object with city, country, coordinates

Recommended Fields

FieldTypeDescription
schemastringSchema URI for validation
verticalstringIndustry vertical (e.g. "machining", "pcb", "textiles")
capabilitiesstring[]Manufacturing processes offered (free-form strings)
certificationsobject[]Industry certifications (at minimum type required per object)
websitestringFactory website URL
emailstringContact email address

Two-Layer Architecture

factory.md separates structured data (YAML frontmatter) from rich descriptions (Markdown body):

  • Frontmatter — validated against JSON Schema. Used for programmatic search, filtering, and indexing. Intentionally minimal.
  • Body — free-form Markdown. Readable by humans and LLMs. Contains detailed capabilities, quality processes, equipment tables, compliance narratives, and anything else the factory wants to share.

Security Considerations

  • The file is intended to be public. Do NOT include internal pricing, employee PII, API keys, or confidential customer lists.
  • MUST be served over HTTPS to prevent tampering.
  • Consumers SHOULD NOT treat data as verified — claims are self-reported.
  • Publishers SHOULD quote YAML values that could be misinterpreted (e.g. country codes NO, AT).
  • Publishers MAY implement rate limiting to prevent excessive crawling.

Read Full Specification

A2A Interoperability

factory.md integrates with the A2A (Agent-to-Agent) protocol as a protocol extension — making factories discoverable through the A2A ecosystem.

How It Works

The A2A Agent Card is a lean interaction layer — just enough for agents to discover and talk to your factory. The factory.md file remains the rich data layer with full manufacturing detail. The Agent Card links to factory.md via a URI reference.

agent-card.json — lean entry point
{
  "name": "Precision Works Manufacturing Agent",
  "description": "Aerospace-grade CNC machining — RFQ intake, quoting, and capability queries.",
  "supportedInterfaces": [{
    "url": "https://precisionworks.example.com/a2a/v1",
    "protocolBinding": "HTTP+JSON",
    "protocolVersion": "1.0"
  }],
  "version": "1.0.0",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extensions": [{
      "uri": "https://factoryschema.org/a2a-extension/v1",
      "description": "Manufacturing facility profile (factory.md)",
      "required": false
    }]
  },
  "defaultInputModes": ["application/json"],
  "defaultOutputModes": ["application/json"],
  "skills": [
    {
      "id": "rfq-intake",
      "name": "RFQ Intake",
      "description": "Submit a Request for Quote with part drawings, quantities, and requirements.",
      "tags": ["rfq", "quoting", "manufacturing"]
    },
    {
      "id": "capability-query",
      "name": "Capability Query",
      "description": "Query factory capabilities, certifications, and lead times.",
      "tags": ["query", "capabilities"]
    }
  ],
  "metadata": {
    "factoryProfile": "https://precisionworks.example.com/.well-known/factory.md",
    "vertical": "machining",
    "location": "Shenzhen, CN"
  }
}

What Goes Where

Agent Card (lean)factory.md (rich)
Name, description, providerFull legal name, founding year, employees
Supported interfaces & protocolDetailed capabilities, materials, equipment
Skills at summary levelCertifications with expiry & issuing bodies
Extension declaration & profile URIConstraints (MOQ, tolerances, lead times)
Routing hints (vertical, location)Quality, engineering, shipping, payment, compliance

Semantic Mapping

When a consumer fetches factory.md via the metadata.factoryProfile URI, these fields map to A2A concepts:

factory.md ContentA2A ConceptMapping
Frontmatter: name, locationAgent Card identityDirect mapping to agent identity fields
Frontmatter: capabilitiesAgentSkillEach process MAY become a skill, or summarized into one
Body: Engineering file formatsInput artifact MIME typesSTEP, PDF, DXF as accepted input formats
Body: RFQ required fieldsSkill input requirementsRequired fields define RFQ skill input schema
Body: RFQ required filesRequired input artifactsRequired file types as input artifact MIME types
Body: NDA requirementsPre-authentication stepNDA signing step before accepting file artifacts
Frontmatter: certificationsTrust signalsUsed to evaluate agent trustworthiness
Body: ConstraintsFeasibility filteringCheck MOQ, dimensions, tolerances before submitting

Industrial Task Extension

Standard A2A Task conventions for RFQ workflows:

A2A Task StateManufacturing Meaning
submittedRFQ Received
workingQuoting in Progress
input-requiredClarification Needed
completedQuote Issued
failedUnable to Quote

Input artifacts: STEP (model/step), PDF (application/pdf), DXF (image/vnd.dxf)
Output artifacts: Quote PDF (application/pdf), structured JSON (application/json)

Adopt factory.md

Serve your factory.md at the well-known URI so AI agents and platforms can discover it.

1. Create your file

Start with the minimal example and add frontmatter fields and Markdown body sections. Validate frontmatter against the JSON Schema.

2. Configure your web server

Set up a route to serve the file at /.well-known/factory.md:

Nginx
location = /.well-known/factory.md {
    alias /var/www/factory.md;
    default_type "text/markdown; charset=utf-8";
    add_header Cache-Control "public, max-age=86400";
    add_header Access-Control-Allow-Origin "*";
}
Apache
RewriteEngine On
RewriteRule ^\.well-known/factory\.md$ /factory.md [L]

<Files "factory.md">
    ForceType "text/markdown; charset=utf-8"
    Header set Cache-Control "public, max-age=86400"
    Header set Access-Control-Allow-Origin "*"
</Files>
Caddy
handle /.well-known/factory.md {
    root * /var/www
    rewrite * /factory.md
    file_server
    header Content-Type "text/markdown; charset=utf-8"
    header Cache-Control "public, max-age=86400"
    header Access-Control-Allow-Origin "*"
}

3. Verify

curl -s https://yourdomain.com/.well-known/factory.md | head -20

4. Enable A2A Discovery (Optional)

To make your factory discoverable by AI agents via the A2A protocol:

  1. Create a lean agent-card.json with your agent's skills and a metadata.factoryProfile URI pointing to your factory.md
  2. Declare the factoryschema.org/a2a-extension/v1 extension in the Agent Card's capabilities
  3. Host it at /.well-known/agent-card.json on your domain
  4. Reference the A2A endpoint in your factory.md's RFQ Requirements section

The Agent Card stays lean — just name, skills, and a link to your factory.md. All the rich manufacturing data stays in one place. See the A2A Interoperability section for the full example.

Community

factory.md is an open standard. Contributions are welcome.

Propose a Change

Open a GitHub Issue with the proposed field, section, or change — including motivation and example. Proposals are discussed for at least 14 days before a decision.

Report a Bug

Found a schema validation issue or spec error? Open an issue with a reproduction example.

Submit a PR

Fork, branch from main, update the schema + SPEC.md + examples, and open a pull request.