Building with, sponsoring, or supporting AgenTrust?
Share your implementation, integration, contribution, sponsorship, or partnership context. Every relationship is described precisely and linked to public evidence where available.
- Contact Imran →
+ Start a discussion →
diff --git a/demos/index.html b/demos/index.html
index b55d500..3567938 100644
--- a/demos/index.html
+++ b/demos/index.html
@@ -3,16 +3,16 @@
-Model Weight Protection and Agent Governance Demos | AgenTrust
-
+Runnable Demos: Model Weights and Agent Actions | AgenTrust
+
-
-
+
+
@@ -22,8 +22,8 @@
-
-
+
+
@@ -32,6 +32,44 @@
+
diff --git a/extensions/ca2a/v0.1/index.html b/extensions/ca2a/v0.1/index.html
index 006e62e..fbe8991 100644
--- a/extensions/ca2a/v0.1/index.html
+++ b/extensions/ca2a/v0.1/index.html
@@ -4,7 +4,7 @@
cA2A v0.1 Extension URI | AgenTrust
-
+
@@ -12,7 +12,7 @@
-
+
@@ -23,7 +23,7 @@
-
+
@@ -32,6 +32,45 @@
+
diff --git a/go/index.html b/go/index.html
index 04e2582..497e83c 100644
--- a/go/index.html
+++ b/go/index.html
@@ -5,13 +5,13 @@
AgenTrust Agentic Controls | AgenTrust
-
+
-
+
@@ -20,7 +20,7 @@
-
+
@@ -37,6 +37,16 @@
"publisher": { "@id": "https://agentrust-io.com/#organization" }
}
+
diff --git a/index.html b/index.html
index eea3a0b..68500a3 100644
--- a/index.html
+++ b/index.html
@@ -4,7 +4,7 @@
AgenTrust: Open Specifications for Verifiable AI
-
+
@@ -17,8 +17,8 @@
-
-
+
+
@@ -28,8 +28,8 @@
-
-
+
+
@@ -50,6 +50,8 @@
"https://cmcp.agentrust-io.com",
"https://ca2a.agentrust-io.com",
"https://wcm.agentrust-io.com",
+ "https://tests.agentrust-io.com",
+ "https://governance.agentrust-io.com",
"https://github.com/agentrust-io/agentrust-telemetry"
]
},
@@ -79,6 +81,7 @@
"item": {
"@type": "TechArticle",
"name": "Weight Custody Manifest (WCM)",
+ "headline": "Weight Custody Manifest (WCM)",
"url": "https://wcm.agentrust-io.com/",
"description": "An open, pre-1.0 specification that binds model-weight identity and custody terms to key-release policy when a builder deploys weights into infrastructure it does not control."
}
@@ -89,6 +92,7 @@
"item": {
"@type": "TechArticle",
"name": "Agent Manifest",
+ "headline": "Agent Manifest",
"url": "https://manifest.agentrust-io.com/",
"description": "A structured, machine-readable declaration of an agent's capabilities, permissions, and data access policies that operators and orchestrators can verify before invocation."
}
@@ -99,6 +103,7 @@
"item": {
"@type": "TechArticle",
"name": "Confidential MCP (cMCP)",
+ "headline": "Confidential MCP (cMCP)",
"url": "https://cmcp.agentrust-io.com/",
"description": "Confidential MCP (cMCP) evaluates routed MCP tool calls against policy and records the decisions. In a hardware deployment, the runtime is inside a Trusted Execution Environment (TEE); the agent and upstream tool server remain separate. Host confidentiality also depends on the egress policy. Software mode provides no hardware isolation."
}
@@ -109,6 +114,7 @@
"item": {
"@type": "TechArticle",
"name": "Confidential A2A (cA2A)",
+ "headline": "Confidential A2A (cA2A)",
"url": "https://ca2a.agentrust-io.com/",
"description": "A trust profile on the Agent2Agent (A2A) protocol that makes agent-to-agent delegation verifiable and confidential: attested, attenuated delegation, a sealed peer channel, and an offline-verifiable provenance record for every hop."
}
@@ -119,6 +125,7 @@
"item": {
"@type": "TechArticle",
"name": "TRACE",
+ "headline": "TRACE",
"url": "https://trace.agentrust-io.com/",
"description": "TRACE defines portable, signed runtime evidence. Hardware provenance requires attestation verification against a trusted root; software-mode records do not provide that guarantee."
}
diff --git a/marketplace/catalog/index.html b/marketplace/catalog/index.html
index 82244cd..cc99ffa 100644
--- a/marketplace/catalog/index.html
+++ b/marketplace/catalog/index.html
@@ -4,6 +4,8 @@
All AgenTrust Marketplace Integrations | AgenTrust
+
+
diff --git a/marketplace/index.html b/marketplace/index.html
index 1f4194c..005cdd1 100644
--- a/marketplace/index.html
+++ b/marketplace/index.html
@@ -2,12 +2,50 @@
- AgenTrust Marketplace: Build with the Verifiable Agent Ecosystem
+ Marketplace: Integrations for Verifiable AI | AgenTrust
-
-
+
+
+
diff --git a/quickstart/index.html b/quickstart/index.html
index 2928e02..765fa8c 100644
--- a/quickstart/index.html
+++ b/quickstart/index.html
@@ -4,7 +4,7 @@
Get Started with the AgenTrust Specifications | AgenTrust
-
+
@@ -17,8 +17,8 @@
-
-
+
+
@@ -28,8 +28,8 @@
-
-
+
+
@@ -55,6 +55,26 @@
}
+
diff --git a/registry/index.html b/registry/index.html
index 752f769..0b994ef 100644
--- a/registry/index.html
+++ b/registry/index.html
@@ -4,7 +4,7 @@
TRACE Registry | AgenTrust
-
+
@@ -12,7 +12,7 @@
-
+
@@ -23,7 +23,7 @@
-
+
@@ -47,6 +47,26 @@
}
+
diff --git a/search/index.html b/search/index.html
index 9fc0272..cc1473e 100644
--- a/search/index.html
+++ b/search/index.html
@@ -4,15 +4,15 @@
Search | AgenTrust
-
+
-
-
+
+
@@ -22,8 +22,8 @@
-
-
+
+
diff --git a/telemetry/index.html b/telemetry/index.html
index 3cd8440..eeedb7a 100644
--- a/telemetry/index.html
+++ b/telemetry/index.html
@@ -3,16 +3,16 @@
-Portable Governance Telemetry for AI Agents | AgenTrust
-
+Telemetry and Evidence Events for Agent Runtimes | AgenTrust
+
-
-
+
+
@@ -22,8 +22,8 @@
-
-
+
+
@@ -38,7 +38,7 @@
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "AgenTrust Telemetry",
- "description": "A backend-neutral event contract and reference SDK for AI-agent governance telemetry: policy decisions, approval lifecycles, action execution, classified data flow, usage and cost, and evidence lifecycle.",
+ "description": "A backend-neutral event contract and reference SDK for AI-agent telemetry: policy decisions, approval lifecycles, action execution, classified data flow, usage and cost, and evidence lifecycle.",
"url": "https://agentrust-io.com/telemetry/",
"codeRepository": "https://github.com/agentrust-io/agentrust-telemetry",
"programmingLanguage": ["Python", "TypeScript"],
@@ -47,6 +47,26 @@
}
+
@@ -86,7 +106,7 @@
Portable governance telemetry for AI-agent runtimes
+
Portable telemetry and evidence for AI-agent runtimes
Normalize the governance facts around an agent run: policy decisions, approvals, actions, classified data flow, usage, cost, and evidence, without replacing your OpenTelemetry stack, policy engine, framework, or UI.
Emit your first local event
diff --git a/tools/DISCOVERY.md b/tools/DISCOVERY.md
index e7fb41a..0d533ff 100644
--- a/tools/DISCOVERY.md
+++ b/tools/DISCOVERY.md
@@ -16,7 +16,7 @@ node marketplace/marketplace.test.js
node tools/check-dashes.js
```
-The generator builds `sitemap.xml` from canonical, indexable HTML. Redirect aliases, including the 30 control permalinks, and the 404 page are excluded. It omits modification dates rather than inventing freshness. CI checks titles, descriptions, main headings, canonical URLs, sitemap coverage, local AI-guide links, and access under eight search and assistant robots policies.
+The generator builds `sitemap.xml` from canonical, indexable HTML. Redirect aliases, including the 30 control permalinks, and the 404 page are excluded. It omits modification dates rather than inventing freshness. CI checks titles, descriptions, main headings, canonical URLs, sitemap coverage, local AI-guide links, and access under eight search and assistant robots policies. Titles end in " | AgenTrust" (the homepage excepted); og:title and twitter:title repeat the title without that suffix, og:description and twitter:description repeat the meta description, descriptions stay within 160 characters, and every indexable page carries JSON-LD except the script-free static catalog.
To update the saved marketplace catalog when integrations change:
diff --git a/tools/build-controls.py b/tools/build-controls.py
index 4580138..080a55c 100644
--- a/tools/build-controls.py
+++ b/tools/build-controls.py
@@ -198,9 +198,8 @@ def render_index(controls):
with_point = sum(1 for c in controls if c['enforcement_points'])
links = sum(len(c['opencre']) for c in controls)
unique = len({o['id'] for c in controls for o in c['opencre']})
- description = (f'The AgenTrust agentic control set: {total} controls for AI agents, each stated as one '
- 'requirement and cross-linked to the corresponding Common Requirement in OpenCRE. '
- 'Stable permalinks at /go/.')
+ description = (f'The AgenTrust agentic control set: {total} controls for AI agents, each one requirement '
+ 'cross-linked to its Common Requirement in OpenCRE. Stable permalinks at /go/.')
ld = f'''
+
diff --git a/tools/build-discovery.py b/tools/build-discovery.py
index 2e7e592..9659f69 100644
--- a/tools/build-discovery.py
+++ b/tools/build-discovery.py
@@ -59,6 +59,8 @@ def catalog_html(snapshot):
All AgenTrust Marketplace Integrations | AgenTrust
+
+
''' + site_header.render(section='Build', script=False) + '''
diff --git a/tools/check-discovery.py b/tools/check-discovery.py
index 9ba9cec..c69f1f0 100644
--- a/tools/check-discovery.py
+++ b/tools/check-discovery.py
@@ -13,8 +13,8 @@
class Page(HTMLParser):
def __init__(self, text):
super().__init__()
- self.canonicals, self.descriptions, self.ids = [], [], set()
- self.title, self.in_title, self.noindex, self.redirect, self.h1 = '', False, False, False, 0
+ self.canonicals, self.descriptions, self.ids, self.meta = [], [], set(), {}
+ self.title, self.in_title, self.noindex, self.redirect, self.h1, self.jsonld = '', False, False, False, 0, 0
self.feed(text)
def handle_starttag(self, tag, attrs):
@@ -25,9 +25,13 @@ def handle_starttag(self, tag, attrs):
self.in_title = True
if tag == 'h1':
self.h1 += 1
+ if tag == 'script' and a.get('type') == 'application/ld+json':
+ self.jsonld += 1
if tag == 'link' and 'canonical' in a.get('rel', '').split():
self.canonicals.append(a.get('href'))
if tag == 'meta':
+ if a.get('property') or a.get('name'):
+ self.meta[a.get('property') or a.get('name')] = a.get('content', '')
if a.get('name') == 'description':
self.descriptions.append(a.get('content', ''))
self.noindex |= a.get('name', '').lower() == 'robots' and 'noindex' in a.get('content', '').lower()
@@ -54,6 +58,16 @@ def check():
assert len(page.descriptions) == 1 and page.descriptions[0].strip(), f'{rel}: missing/duplicate description'
assert page.title.strip() and page.title not in titles, f'{rel}: missing/duplicate title'
assert page.h1 == 1, f'{rel}: expected one main heading'
+ # Search results and link cards read these, so they follow one rule rather than page by page taste.
+ title = page.title.strip()
+ social = title.removesuffix(' | AgenTrust')
+ description = page.descriptions[0]
+ assert len(description) <= 160, f'{rel}: description is {len(description)} characters, over 160'
+ assert not re.search('[\u2013\u2014]', title + description), f'{rel}: dash in title or description'
+ assert page.meta.get('og:title') == social == page.meta.get('twitter:title'), f'{rel}: og:title and twitter:title must be the title without " | AgenTrust"'
+ assert page.meta.get('og:description') == description == page.meta.get('twitter:description'), f'{rel}: social descriptions must match the meta description'
+ assert all(page.meta.get(k) for k in ['og:image', 'og:image:width', 'og:image:height', 'og:image:alt']), f'{rel}: og:image needs width, height and alt'
+ assert page.jsonld or rel == 'marketplace/catalog/index.html', f'{rel}: no JSON-LD'
titles.add(page.title)
expected.add(expected_url)
sitemap = ET.parse(ROOT / 'sitemap.xml')
@@ -79,7 +93,7 @@ def check():
assert catalog.count('Verify an Intel TDX Quote in Your Browser | AgenTrust
-
+
-
-
+
+
@@ -22,8 +22,8 @@
-
-
+
+
@@ -46,6 +46,26 @@
}
+