Skip to content

Commit bee75f8

Browse files
feat(go): generate the control pages from data/agentic-controls.json
The 31 pages under /go/ came from a generator that never landed in any repo, so they drifted: the old governance tagline and alt text, the agentrust.io wordmark, a v=10 stylesheet on the redirects, and a limits bullet calling the Weight Custody Manifest private. tools/build-controls.py now renders go/index.html and the 30 redirects from data/agentic-controls.json, validates the data first, and refuses to run when a published permalink has no control. --check runs in the links job, so a hand edit fails CI. Before any content change it reproduced all 31 pages on main byte for byte. The fixes are then made in the generator: new tagline, AgenTrust wordmark, an eyebrow linking /#chain, stylesheet v=20, and an optional spec field per control. AT-30 links wcm.agentrust-io.com; AT-29 stays private, and the limits bullet is rendered from those markers. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013aK3gVWzNdcM3hZ2o2awK2
1 parent e7d7a9f commit bee75f8

34 files changed

Lines changed: 486 additions & 104 deletions

File tree

‎.github/workflows/reader-journey.yml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ jobs:
1616
with:
1717
python-version: '3.12'
1818
- run: python tools/check-site.py
19+
- run: python tools/build-controls.py --check
1920
- run: python tools/build-discovery.py --check
2021
- run: python tools/check-discovery.py
2122
quickstart:

‎data/agentic-controls.json‎

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"standard": "AgenTrust Agentic Controls",
33
"version": "0.1.0-draft",
4-
"updated": "2026-08-25",
4+
"updated": "2026-09-14",
55
"source": "OpenCRE graph crawled via opencre.org/rest/v1 on 2026-08-24",
6-
"note": "Source of truth for /go/. Every opencre id was checked against that crawl. This is a mapping, not a conformance claim.",
6+
"note": "Source of truth for /go/, rendered by tools/build-controls.py. Every opencre id was checked against that crawl. This is a mapping, not a conformance claim.",
77
"controls": [
88
{
99
"id": "AT-01",
@@ -675,7 +675,11 @@
675675
"name": "Minimize session life",
676676
"url": "https://www.opencre.org/cre/470-731"
677677
}
678-
]
678+
],
679+
"spec": {
680+
"status": "private",
681+
"topic": "continuous usage control"
682+
}
679683
},
680684
{
681685
"id": "AT-30",
@@ -702,7 +706,13 @@
702706
"name": "AI model supply chain management",
703707
"url": "https://www.opencre.org/cre/852-770"
704708
}
705-
]
709+
],
710+
"spec": {
711+
"status": "public",
712+
"topic": "model weight custody",
713+
"name": "Weight Custody Manifest",
714+
"url": "https://wcm.agentrust-io.com/"
715+
}
706716
}
707717
]
708718
}

‎go/agent-anomaly-detection/index.html‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<!DOCTYPE html>
22
<html lang="en">
3+
<!-- Generated by tools/build-controls.py from data/agentic-controls.json. Edit the data and re-run it; CI fails on hand edits. -->
34
<head>
45
<meta charset="UTF-8">
56
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -16,7 +17,7 @@
1617
<meta property="og:image" content="https://agentrust-io.com/og.png">
1718
<meta property="og:image:width" content="1200">
1819
<meta property="og:image:height" content="630">
19-
<meta property="og:image:alt" content="AgenTrust: open standards for AI agent governance">
20+
<meta property="og:image:alt" content="AgenTrust: open specifications for verifiable AI">
2021
<meta name="twitter:card" content="summary_large_image">
2122
<meta name="twitter:title" content="Anomaly detection on agent behaviour">
2223
<meta name="twitter:description" content="Departure from the established baseline is detected during the run rather than reconstructed after it.">
@@ -26,7 +27,7 @@
2627
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
2728
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
2829
<meta http-equiv="refresh" content="0; url=/go/#agent-anomaly-detection">
29-
<link rel="stylesheet" href="/design-system.css?v=10">
30+
<link rel="stylesheet" href="/design-system.css?v=20">
3031
</head>
3132
<body class="at-page">
3233
<main>
@@ -41,7 +42,7 @@ <h2>Anomaly detection on agent behaviour</h2>
4142
<div class="foot-in">
4243
<div class="foot-brand">
4344
<a class="wordmark" href="/">AgenTrust</a>
44-
<div class="tagline">Open standards for AI agent governance</div>
45+
<div class="tagline">Open specifications for verifiable AI</div>
4546
</div>
4647
<div class="foot-links">
4748
<a href="/">Home</a>

‎go/agent-circuit-breaker/index.html‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<!DOCTYPE html>
22
<html lang="en">
3+
<!-- Generated by tools/build-controls.py from data/agentic-controls.json. Edit the data and re-run it; CI fails on hand edits. -->
34
<head>
45
<meta charset="UTF-8">
56
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -16,7 +17,7 @@
1617
<meta property="og:image" content="https://agentrust-io.com/og.png">
1718
<meta property="og:image:width" content="1200">
1819
<meta property="og:image:height" content="630">
19-
<meta property="og:image:alt" content="AgenTrust: open standards for AI agent governance">
20+
<meta property="og:image:alt" content="AgenTrust: open specifications for verifiable AI">
2021
<meta name="twitter:card" content="summary_large_image">
2122
<meta name="twitter:title" content="Circuit breaker on agent loops">
2223
<meta name="twitter:description" content="Repeating or non-terminating agent loops are broken automatically, and a broken loop does not cascade into the agents depending on it.">
@@ -26,7 +27,7 @@
2627
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
2728
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
2829
<meta http-equiv="refresh" content="0; url=/go/#agent-circuit-breaker">
29-
<link rel="stylesheet" href="/design-system.css?v=10">
30+
<link rel="stylesheet" href="/design-system.css?v=20">
3031
</head>
3132
<body class="at-page">
3233
<main>
@@ -41,7 +42,7 @@ <h2>Circuit breaker on agent loops</h2>
4142
<div class="foot-in">
4243
<div class="foot-brand">
4344
<a class="wordmark" href="/">AgenTrust</a>
44-
<div class="tagline">Open standards for AI agent governance</div>
45+
<div class="tagline">Open specifications for verifiable AI</div>
4546
</div>
4647
<div class="foot-links">
4748
<a href="/">Home</a>

‎go/agent-identity-credential/index.html‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<!DOCTYPE html>
22
<html lang="en">
3+
<!-- Generated by tools/build-controls.py from data/agentic-controls.json. Edit the data and re-run it; CI fails on hand edits. -->
34
<head>
45
<meta charset="UTF-8">
56
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -16,7 +17,7 @@
1617
<meta property="og:image" content="https://agentrust-io.com/og.png">
1718
<meta property="og:image:width" content="1200">
1819
<meta property="og:image:height" content="630">
19-
<meta property="og:image:alt" content="AgenTrust: open standards for AI agent governance">
20+
<meta property="og:image:alt" content="AgenTrust: open specifications for verifiable AI">
2021
<meta name="twitter:card" content="summary_large_image">
2122
<meta name="twitter:title" content="Agent identity credential">
2223
<meta name="twitter:description" content="The agent presents a credential bound to its own identity, distinct from the identity of the user who invoked it, before any authorization decision is made on its behalf.">
@@ -26,7 +27,7 @@
2627
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
2728
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
2829
<meta http-equiv="refresh" content="0; url=/go/#agent-identity-credential">
29-
<link rel="stylesheet" href="/design-system.css?v=10">
30+
<link rel="stylesheet" href="/design-system.css?v=20">
3031
</head>
3132
<body class="at-page">
3233
<main>
@@ -41,7 +42,7 @@ <h2>Agent identity credential</h2>
4142
<div class="foot-in">
4243
<div class="foot-brand">
4344
<a class="wordmark" href="/">AgenTrust</a>
44-
<div class="tagline">Open standards for AI agent governance</div>
45+
<div class="tagline">Open specifications for verifiable AI</div>
4546
</div>
4647
<div class="foot-links">
4748
<a href="/">Home</a>

‎go/agent-key-binding/index.html‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<!DOCTYPE html>
22
<html lang="en">
3+
<!-- Generated by tools/build-controls.py from data/agentic-controls.json. Edit the data and re-run it; CI fails on hand edits. -->
34
<head>
45
<meta charset="UTF-8">
56
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -16,7 +17,7 @@
1617
<meta property="og:image" content="https://agentrust-io.com/og.png">
1718
<meta property="og:image:width" content="1200">
1819
<meta property="og:image:height" content="630">
19-
<meta property="og:image:alt" content="AgenTrust: open standards for AI agent governance">
20+
<meta property="og:image:alt" content="AgenTrust: open specifications for verifiable AI">
2021
<meta name="twitter:card" content="summary_large_image">
2122
<meta name="twitter:title" content="Agent key binding and custody">
2223
<meta name="twitter:description" content="The agent&#x27;s signing key is bound to its declared identity and held so that possession of the key cannot be separated from the identity it asserts.">
@@ -26,7 +27,7 @@
2627
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
2728
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
2829
<meta http-equiv="refresh" content="0; url=/go/#agent-key-binding">
29-
<link rel="stylesheet" href="/design-system.css?v=10">
30+
<link rel="stylesheet" href="/design-system.css?v=20">
3031
</head>
3132
<body class="at-page">
3233
<main>
@@ -41,7 +42,7 @@ <h2>Agent key binding and custody</h2>
4142
<div class="foot-in">
4243
<div class="foot-brand">
4344
<a class="wordmark" href="/">AgenTrust</a>
44-
<div class="tagline">Open standards for AI agent governance</div>
45+
<div class="tagline">Open specifications for verifiable AI</div>
4546
</div>
4647
<div class="foot-links">
4748
<a href="/">Home</a>

‎go/agent-purpose-declaration/index.html‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<!DOCTYPE html>
22
<html lang="en">
3+
<!-- Generated by tools/build-controls.py from data/agentic-controls.json. Edit the data and re-run it; CI fails on hand edits. -->
34
<head>
45
<meta charset="UTF-8">
56
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -16,7 +17,7 @@
1617
<meta property="og:image" content="https://agentrust-io.com/og.png">
1718
<meta property="og:image:width" content="1200">
1819
<meta property="og:image:height" content="630">
19-
<meta property="og:image:alt" content="AgenTrust: open standards for AI agent governance">
20+
<meta property="og:image:alt" content="AgenTrust: open specifications for verifiable AI">
2021
<meta name="twitter:card" content="summary_large_image">
2122
<meta name="twitter:title" content="Declared agent purpose and scope">
2223
<meta name="twitter:description" content="The agent declares its purpose and the boundary of its task in a form a policy engine can read, not only a form a person can read.">
@@ -26,7 +27,7 @@
2627
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
2728
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
2829
<meta http-equiv="refresh" content="0; url=/go/#agent-purpose-declaration">
29-
<link rel="stylesheet" href="/design-system.css?v=10">
30+
<link rel="stylesheet" href="/design-system.css?v=20">
3031
</head>
3132
<body class="at-page">
3233
<main>
@@ -41,7 +42,7 @@ <h2>Declared agent purpose and scope</h2>
4142
<div class="foot-in">
4243
<div class="foot-brand">
4344
<a class="wordmark" href="/">AgenTrust</a>
44-
<div class="tagline">Open standards for AI agent governance</div>
45+
<div class="tagline">Open specifications for verifiable AI</div>
4546
</div>
4647
<div class="foot-links">
4748
<a href="/">Home</a>

‎go/agent-rate-limiting/index.html‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<!DOCTYPE html>
22
<html lang="en">
3+
<!-- Generated by tools/build-controls.py from data/agentic-controls.json. Edit the data and re-run it; CI fails on hand edits. -->
34
<head>
45
<meta charset="UTF-8">
56
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -16,7 +17,7 @@
1617
<meta property="og:image" content="https://agentrust-io.com/og.png">
1718
<meta property="og:image:width" content="1200">
1819
<meta property="og:image:height" content="630">
19-
<meta property="og:image:alt" content="AgenTrust: open standards for AI agent governance">
20+
<meta property="og:image:alt" content="AgenTrust: open specifications for verifiable AI">
2021
<meta name="twitter:card" content="summary_large_image">
2122
<meta name="twitter:title" content="Rate limiting on agent actions">
2223
<meta name="twitter:description" content="The rate at which an agent may act is bounded independently of the rate at which it may infer.">
@@ -26,7 +27,7 @@
2627
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
2728
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
2829
<meta http-equiv="refresh" content="0; url=/go/#agent-rate-limiting">
29-
<link rel="stylesheet" href="/design-system.css?v=10">
30+
<link rel="stylesheet" href="/design-system.css?v=20">
3031
</head>
3132
<body class="at-page">
3233
<main>
@@ -41,7 +42,7 @@ <h2>Rate limiting on agent actions</h2>
4142
<div class="foot-in">
4243
<div class="foot-brand">
4344
<a class="wordmark" href="/">AgenTrust</a>
44-
<div class="tagline">Open standards for AI agent governance</div>
45+
<div class="tagline">Open specifications for verifiable AI</div>
4546
</div>
4647
<div class="foot-links">
4748
<a href="/">Home</a>

‎go/agent-session-revocation/index.html‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<!DOCTYPE html>
22
<html lang="en">
3+
<!-- Generated by tools/build-controls.py from data/agentic-controls.json. Edit the data and re-run it; CI fails on hand edits. -->
34
<head>
45
<meta charset="UTF-8">
56
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -16,7 +17,7 @@
1617
<meta property="og:image" content="https://agentrust-io.com/og.png">
1718
<meta property="og:image:width" content="1200">
1819
<meta property="og:image:height" content="630">
19-
<meta property="og:image:alt" content="AgenTrust: open standards for AI agent governance">
20+
<meta property="og:image:alt" content="AgenTrust: open specifications for verifiable AI">
2021
<meta name="twitter:card" content="summary_large_image">
2122
<meta name="twitter:title" content="Agent session revocation">
2223
<meta name="twitter:description" content="An agent&#x27;s session and the authority attached to it can be revoked without waiting for expiry.">
@@ -26,7 +27,7 @@
2627
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
2728
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
2829
<meta http-equiv="refresh" content="0; url=/go/#agent-session-revocation">
29-
<link rel="stylesheet" href="/design-system.css?v=10">
30+
<link rel="stylesheet" href="/design-system.css?v=20">
3031
</head>
3132
<body class="at-page">
3233
<main>
@@ -41,7 +42,7 @@ <h2>Agent session revocation</h2>
4142
<div class="foot-in">
4243
<div class="foot-brand">
4344
<a class="wordmark" href="/">AgenTrust</a>
44-
<div class="tagline">Open standards for AI agent governance</div>
45+
<div class="tagline">Open specifications for verifiable AI</div>
4546
</div>
4647
<div class="foot-links">
4748
<a href="/">Home</a>

‎go/agent-state-rollback/index.html‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<!DOCTYPE html>
22
<html lang="en">
3+
<!-- Generated by tools/build-controls.py from data/agentic-controls.json. Edit the data and re-run it; CI fails on hand edits. -->
34
<head>
45
<meta charset="UTF-8">
56
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -16,7 +17,7 @@
1617
<meta property="og:image" content="https://agentrust-io.com/og.png">
1718
<meta property="og:image:width" content="1200">
1819
<meta property="og:image:height" content="630">
19-
<meta property="og:image:alt" content="AgenTrust: open standards for AI agent governance">
20+
<meta property="og:image:alt" content="AgenTrust: open specifications for verifiable AI">
2021
<meta name="twitter:card" content="summary_large_image">
2122
<meta name="twitter:title" content="State rollback after an agent action">
2223
<meta name="twitter:description" content="State an agent changed can be identified and reversed, distinctly from restoring a backup of the whole system.">
@@ -26,7 +27,7 @@
2627
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
2728
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
2829
<meta http-equiv="refresh" content="0; url=/go/#agent-state-rollback">
29-
<link rel="stylesheet" href="/design-system.css?v=10">
30+
<link rel="stylesheet" href="/design-system.css?v=20">
3031
</head>
3132
<body class="at-page">
3233
<main>
@@ -41,7 +42,7 @@ <h2>State rollback after an agent action</h2>
4142
<div class="foot-in">
4243
<div class="foot-brand">
4344
<a class="wordmark" href="/">AgenTrust</a>
44-
<div class="tagline">Open standards for AI agent governance</div>
45+
<div class="tagline">Open specifications for verifiable AI</div>
4546
</div>
4647
<div class="foot-links">
4748
<a href="/">Home</a>

0 commit comments

Comments
 (0)