Make your factory machine-readable
v2.0A 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.
Create a factory.md file with 2 required frontmatter fields
Add recommended frontmatter fields and Markdown body sections
Serve at /.well-known/factory.md on your domain
---
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.
Hosted at a RFC 8615 well-known URI. AI agents and platforms find your factory without any prior knowledge of your site structure.
Start with just 2 required fields. Add capabilities, certifications, and rich Markdown descriptions as you go.
YAML frontmatter validated against JSON Schema Draft 2020-12. Structured data for search and filtering.
The Markdown body is natural language — readable by factory owners, procurement teams, and LLMs without any parsing. Describe your factory in your own words.
factory.md has two layers: structured YAML frontmatter for discovery and indexing, and a free-form Markdown body for rich descriptions.
name req — Factory trade namelocation req — String or structured objectschema — Schema URI for validationvertical — Industry vertical (e.g. "machining", "pcb")capabilities — Array of process stringscertifications — Array of certification objectswebsite — Factory website URLemail — Contact email addressOnly name and location are required. All other frontmatter fields are recommended.
Body sections are recommended, not enforced. Write what matters for your factory.
type req — e.g. "ISO 9001", "GOTS"body — Issuing bodyid — Certificate IDissued / expires — Datesurl — Verification link"Shenzhen, CN"city req, country req (ISO 3166-1 alpha-2)region, postal_code, timezone, coordinatesReal-world factory profiles across manufacturing verticals.
---
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
---
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.
---
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.
Key sections from the full specification.
A factory.md file SHOULD be hosted at the well-known URI per RFC 8615:
https://{domain}/.well-known/factory.md
Content-Type: text/markdown; charset=utf-8Cache-Control: max-age=86400 (24 hours)/factory.md)| Field | Type | Description |
|---|---|---|
name | string | Trade name of the factory (non-empty) |
location | string | object | Factory location — string shorthand or structured object with city, country, coordinates |
| Field | Type | Description |
|---|---|---|
schema | string | Schema URI for validation |
vertical | string | Industry vertical (e.g. "machining", "pcb", "textiles") |
capabilities | string[] | Manufacturing processes offered (free-form strings) |
certifications | object[] | Industry certifications (at minimum type required per object) |
website | string | Factory website URL |
email | string | Contact email address |
factory.md separates structured data (YAML frontmatter) from rich descriptions (Markdown body):
NO, AT).factory.md integrates with the A2A (Agent-to-Agent) protocol as a protocol extension — making factories discoverable through the A2A ecosystem.
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.
{
"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"
}
}
| Agent Card (lean) | factory.md (rich) |
|---|---|
| Name, description, provider | Full legal name, founding year, employees |
| Supported interfaces & protocol | Detailed capabilities, materials, equipment |
| Skills at summary level | Certifications with expiry & issuing bodies |
| Extension declaration & profile URI | Constraints (MOQ, tolerances, lead times) |
| Routing hints (vertical, location) | Quality, engineering, shipping, payment, compliance |
When a consumer fetches factory.md via the metadata.factoryProfile URI, these fields map to A2A concepts:
| factory.md Content | A2A Concept | Mapping |
|---|---|---|
Frontmatter: name, location | Agent Card identity | Direct mapping to agent identity fields |
Frontmatter: capabilities | AgentSkill | Each process MAY become a skill, or summarized into one |
| Body: Engineering file formats | Input artifact MIME types | STEP, PDF, DXF as accepted input formats |
| Body: RFQ required fields | Skill input requirements | Required fields define RFQ skill input schema |
| Body: RFQ required files | Required input artifacts | Required file types as input artifact MIME types |
| Body: NDA requirements | Pre-authentication step | NDA signing step before accepting file artifacts |
Frontmatter: certifications | Trust signals | Used to evaluate agent trustworthiness |
| Body: Constraints | Feasibility filtering | Check MOQ, dimensions, tolerances before submitting |
Standard A2A Task conventions for RFQ workflows:
| A2A Task State | Manufacturing Meaning |
|---|---|
submitted | RFQ Received |
working | Quoting in Progress |
input-required | Clarification Needed |
completed | Quote Issued |
failed | Unable to Quote |
Input artifacts: STEP (model/step), PDF (application/pdf), DXF (image/vnd.dxf)
Output artifacts: Quote PDF (application/pdf), structured JSON (application/json)
Serve your factory.md at the well-known URI so AI agents and platforms can discover it.
Start with the minimal example and add frontmatter fields and Markdown body sections. Validate frontmatter against the JSON Schema.
Set up a route to serve the file at /.well-known/factory.md:
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 "*";
}
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>
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 "*"
}
curl -s https://yourdomain.com/.well-known/factory.md | head -20
To make your factory discoverable by AI agents via the A2A protocol:
agent-card.json with your agent's skills and a metadata.factoryProfile URI pointing to your factory.mdfactoryschema.org/a2a-extension/v1 extension in the Agent Card's capabilities/.well-known/agent-card.json on your domainThe 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.
factory.md is an open standard. Contributions are welcome.
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.
Found a schema validation issue or spec error? Open an issue with a reproduction example.
Fork, branch from main, update the schema + SPEC.md + examples, and open a pull request.