Factory.md

Make your factory machine-readable

v0.3 · beta

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/v0.3/factory.schema.json"
name: "Midwest Sheet Metal Supply"
location: "Chicago, IL, US"
vertical: sheet-metal
capabilities:
  - Sheet metal supply
  - Cut-to-size blanks
  - Shearing
  - Slitting
certifications:
  - ISO 9001:2015
website: "https://midwestsheet.example.com"
email: sales@midwestsheet.example.com
updated_at: "2026-05-12"
has_inventory: true
has_rfq: true
has_agent_capabilities: true
---

# Midwest Sheet Metal Supply

Sheet metal supply and cut-to-size service for fabricators across the Midwest.

## Capabilities

Cold-rolled and hot-rolled steel, aluminum, stainless. Shearing to ±0.5 mm, slitting to ±0.25 mm.

## Quality

Mill test reports on every coil. ISO 9001:2015 certified.

4 fields required: schema, name, location, vertical. 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 4 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

  • schema req — Schema URI for validation
  • name req — Factory trade name
  • location req — String or structured object
  • vertical req — Industry vertical (e.g. "machining", "pcb", "sheet-metal")
  • capabilities — Array of process strings
  • certifications — Array of certification strings
  • website — Factory website URL
  • email — Contact email address
  • updated_at — Date the profile was last updated (YYYY-MM-DD)
  • has_inventory — Boolean: exposes inventory data
  • has_rfq — Boolean: accepts RFQ submissions
  • has_agent_capabilities — Boolean: publishes an A2A Agent Card

Four required fields: schema, name, location, vertical. All other frontmatter fields are recommended.

Recommended Body Sections

  • Summary — One-paragraph description of what the factory does and who it serves
  • Capabilities — Process detail, finishes, tolerances, MOQ, engineering services
  • Inventory — What's stocked and how to access the feed (if has_inventory: true)
  • RFQ — Submission endpoint, required fields/files, NDA (if has_rfq: true)
  • Certifications & Compliance — Cert detail, IP protection, export controls, environmental, social
  • Quality — QC process, testing, inspection equipment, documentation, defect rates
  • Materials — Materials worked, by family, with grades and standards
  • Equipment — Major equipment with model, count, key specs (tables recommended)
  • Lead Times — By order type (sample, prototype, production), with expedite options
  • Shipping and Logistics — Incoterms, methods, markets, packaging, payment
  • Agent Access — A2A Agent Card URI, MCP endpoint, skills (if has_agent_capabilities: true)
  • Contacts — Sales, engineering, quality contacts; business hours
  • About — Legal name, industries served, founded year, employees, languages

All body sections are optional. Write what matters for your factory.

Certifications

A flat array of strings, e.g. ["ISO 9001:2015", "AS9100D", "ITAR"].

Additional detail (issuing body, certificate ID, issue/expiry dates, verification URL) belongs in the Markdown body's Certifications section.

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/v0.3/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:
  - "ISO 9001:2015"
  - AS9100D
  - ITAR Registered
website: "https://precisionworks.example.com"
email: sales@precisionworks.example.com
updated_at: "2026-05-12"
has_inventory: false
has_rfq: true
has_agent_capabilities: true
---

# 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/v0.3/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:
  - "ISO 9001:2015"
  - "IATF 16949:2016"
  - UL Listed
  - "ISO 14001:2015"
website: "https://taipcb.example.com"
email: rfq@taipcb.example.com
updated_at: "2026-05-12"
has_inventory: false
has_rfq: true
has_agent_capabilities: true
---

# 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/v0.3/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:
  - GOTS
  - OEKO-TEX Standard 100
  - GRS (Global Recycled Standard)
  - "ISO 9001:2015"
website: "https://sunrisetextiles.example.com"
email: orders@sunrisetextiles.example.com
updated_at: "2026-05-12"
has_inventory: false
has_rfq: true
has_agent_capabilities: true
---

# 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, currently in beta. 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.