Skip to content

Commit be51d05

Browse files
committed
feat(hub): discoverability hardening — new pages, SEO meta, .well-known/aiep/schema, robots.txt, redirects, nav
- Add /hub, /what-is-aiep, /schemas, /privacy, /terms pages - Homepage: plain-language hero block with explicit CTAs before the essay - BaseLayout: fix frontmatter prop extraction (unique titles/descriptions per page) - BaseLayout: add robots index/follow meta, valid Schema.org Organization+WebSite JSON-LD - BaseLayout: footer with full link set incl. Privacy + Terms - .well-known/aiep/schema: new JSON schema manifest for all 12 canonical schemas - _headers: CORS on /.well-known/aiep/*, short cache on robots/sitemap - _redirects: www.aiep.dev -> aiep.dev 301, /sitemap.xml alias - robots.txt: explicit Allow for /.well-known/aiep/schema, dual Sitemap entries - nav: What is AIEP?, Hub, Schemas, Privacy, Terms added
1 parent cf71eab commit be51d05

12 files changed

Lines changed: 717 additions & 7 deletions

File tree

public/.well-known/aiep/schema

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
{
2+
"record_type": "AIEP_SCHEMA_MANIFEST",
3+
"aiep_protocol": "AIEP",
4+
"aiep_spec_version": "1.0",
5+
"generated": "2026-04-12T00:00:00Z",
6+
"version": "3.0.0",
7+
"site": "https://aiep.dev",
8+
"description": "Canonical schema manifest for the Architected Instruction & Evidence Protocol (AIEP). Lists all published schemas available under /.well-known/aiep/schemas/.",
9+
"schemas_base_path": "/.well-known/aiep/schemas/",
10+
"schemas": [
11+
{
12+
"id": "aiep.canonical.schema.v3.0.0",
13+
"file": "aiep.canonical.schema.v3.0.0.json",
14+
"path": "/.well-known/aiep/schemas/aiep.canonical.schema.v3.0.0.json",
15+
"record_type": "AIEP_CANONICAL_RECORD",
16+
"version": "3.0.0",
17+
"status": "current",
18+
"deprecated_by": null,
19+
"description": "Current canonical record schema. Defines the required structure for all AIEP-compliant artefacts."
20+
},
21+
{
22+
"id": "aiep.canonical.schema.v2.0.0",
23+
"file": "aiep.canonical.schema.v2.0.0.json",
24+
"path": "/.well-known/aiep/schemas/aiep.canonical.schema.v2.0.0.json",
25+
"record_type": "AIEP_CANONICAL_RECORD",
26+
"version": "2.0.0",
27+
"status": "deprecated",
28+
"deprecated_by": "aiep.canonical.schema.v3.0.0",
29+
"description": "Previous canonical record schema. Valid for historical records. Not execution-eligible under current registry rules."
30+
},
31+
{
32+
"id": "aiep.metadata.schema.v1",
33+
"file": "aiep.metadata.schema.v1.json",
34+
"path": "/.well-known/aiep/schemas/aiep.metadata.schema.v1.json",
35+
"record_type": "AIEP_METADATA",
36+
"version": "1.0.0",
37+
"status": "current",
38+
"deprecated_by": null,
39+
"description": "Publisher metadata schema. Declares publisher identity and protocol version."
40+
},
41+
{
42+
"id": "aiep.certificate.schema.v1",
43+
"file": "aiep.certificate.schema.v1.json",
44+
"path": "/.well-known/aiep/schemas/aiep.certificate.schema.v1.json",
45+
"record_type": "AIEP_CERTIFICATE",
46+
"version": "1.0.0",
47+
"status": "current",
48+
"deprecated_by": null,
49+
"description": "Conformance certificate schema."
50+
},
51+
{
52+
"id": "aiep.audit_event.schema.v1",
53+
"file": "aiep.audit_event.schema.v1.json",
54+
"path": "/.well-known/aiep/schemas/aiep.audit_event.schema.v1.json",
55+
"record_type": "AIEP_AUDIT_EVENT",
56+
"version": "1.0.0",
57+
"status": "current",
58+
"deprecated_by": null,
59+
"description": "Audit event record schema."
60+
},
61+
{
62+
"id": "aiep.citation.schema.v1",
63+
"file": "aiep.citation.schema.v1.json",
64+
"path": "/.well-known/aiep/schemas/aiep.citation.schema.v1.json",
65+
"record_type": "AIEP_CITATION",
66+
"version": "1.0.0",
67+
"status": "current",
68+
"deprecated_by": null,
69+
"description": "Evidence citation schema."
70+
},
71+
{
72+
"id": "aiep.compliance_policy.schema.v1",
73+
"file": "aiep.compliance_policy.schema.v1.json",
74+
"path": "/.well-known/aiep/schemas/aiep.compliance_policy.schema.v1.json",
75+
"record_type": "AIEP_COMPLIANCE_POLICY",
76+
"version": "1.0.0",
77+
"status": "current",
78+
"deprecated_by": null,
79+
"description": "Compliance policy schema."
80+
},
81+
{
82+
"id": "aiep.compliance_signals.schema.v1",
83+
"file": "aiep.compliance_signals.schema.v1.json",
84+
"path": "/.well-known/aiep/schemas/aiep.compliance_signals.schema.v1.json",
85+
"record_type": "AIEP_COMPLIANCE_SIGNALS",
86+
"version": "1.0.0",
87+
"status": "current",
88+
"deprecated_by": null,
89+
"description": "Compliance signals schema."
90+
},
91+
{
92+
"id": "aiep.discovery.schema.v1",
93+
"file": "aiep.discovery.schema.v1.json",
94+
"path": "/.well-known/aiep/schemas/aiep.discovery.schema.v1.json",
95+
"record_type": "AIEP_DISCOVERY",
96+
"version": "1.0.0",
97+
"status": "current",
98+
"deprecated_by": null,
99+
"description": "Machine discovery manifest schema."
100+
},
101+
{
102+
"id": "aiep.innovation_ledger_entry.schema.v1",
103+
"file": "aiep.innovation_ledger_entry.schema.v1.json",
104+
"path": "/.well-known/aiep/schemas/aiep.innovation_ledger_entry.schema.v1.json",
105+
"record_type": "AIEP_INNOVATION_LEDGER_ENTRY",
106+
"version": "1.0.0",
107+
"status": "current",
108+
"deprecated_by": null,
109+
"description": "Innovation ledger entry schema."
110+
},
111+
{
112+
"id": "aiep.issuer.schema.v1",
113+
"file": "aiep.issuer.schema.v1.json",
114+
"path": "/.well-known/aiep/schemas/aiep.issuer.schema.v1.json",
115+
"record_type": "AIEP_ISSUER",
116+
"version": "1.0.0",
117+
"status": "current",
118+
"deprecated_by": null,
119+
"description": "Publisher/issuer identity schema."
120+
},
121+
{
122+
"id": "aiep.version.schema.v1",
123+
"file": "aiep.version.schema.v1.json",
124+
"path": "/.well-known/aiep/schemas/aiep.version.schema.v1.json",
125+
"record_type": "AIEP_VERSION",
126+
"version": "1.0.0",
127+
"status": "current",
128+
"deprecated_by": null,
129+
"description": "Protocol version record schema."
130+
}
131+
],
132+
"human_readable": "https://aiep.dev/schemas",
133+
"downloads": "https://aiep.dev/downloads",
134+
"spec": "https://aiep.dev/spec",
135+
"schema_catalogue": "https://aiep.dev/schema-catalogue"
136+
}

public/_headers

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,21 @@
1515

1616
/.well-known/aiep/*
1717
Cache-Control: public, max-age=3600
18+
Access-Control-Allow-Origin: *
19+
Access-Control-Allow-Methods: GET, HEAD, OPTIONS
20+
21+
/robots.txt
22+
Cache-Control: public, max-age=3600
23+
24+
/sitemap.xml
25+
Cache-Control: public, max-age=3600
26+
27+
/sitemap-index.xml
28+
Cache-Control: public, max-age=3600
29+
30+
/.well-known/aiep/schema
31+
Content-Type: application/json; charset=utf-8
32+
Cache-Control: public, max-age=3600
1833

1934
/downloads/*.md
2035
Content-Type: text/markdown

public/_redirects

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# Canonical domain
2+
https://www.aiep.dev/* https://aiep.dev/:splat 301
3+
4+
# Sitemap alias
5+
/sitemap.xml /sitemap-index.xml 302
6+
17
/sdk https://pypi.org/project/aiep-genome-sdk/ 302
28
/vectors https://github.com/Phatfella/AIEP-VECTORS 302
39
/conformance /spec/conformance 302

public/robots.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
User-agent: *
22
Allow: /
33

4-
# Machine-readable AIEP discovery endpoint
4+
# Machine-readable AIEP discovery endpoints
55
Allow: /.well-known/aiep/
6+
Allow: /.well-known/aiep/schema
67

78
Sitemap: https://aiep.dev/sitemap-index.xml
9+
Sitemap: https://aiep.dev/sitemap.xml

src/content/nav/aiep.nav.v1.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@
66
"id": "understand",
77
"label": "Understand",
88
"items": [
9+
{
10+
"label": "What is AIEP?",
11+
"href": "/what-is-aiep"
12+
},
13+
{
14+
"label": "Hub",
15+
"href": "/hub"
16+
},
917
{
1018
"label": "Founding Statement",
1119
"href": "/statement"
@@ -118,6 +126,10 @@
118126
"label": "Showcase",
119127
"href": "/showcase"
120128
},
129+
{
130+
"label": "Schemas",
131+
"href": "/schemas"
132+
},
121133
{
122134
"label": "Downloads",
123135
"href": "/downloads"
@@ -231,6 +243,14 @@
231243
{
232244
"label": "Contact",
233245
"href": "/contact"
246+
},
247+
{
248+
"label": "Privacy",
249+
"href": "/privacy"
250+
},
251+
{
252+
"label": "Terms",
253+
"href": "/terms"
234254
}
235255
]
236256
}

src/layouts/BaseLayout.astro

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
---
22
import NavSidebar from '../components/NavSidebar.astro';
3-
const { title = "AIEP Hub", description = "AIEP is an open protocol linking instructions to evidence — enabling the web to become a verifiable knowledge infrastructure for humans and artificial intelligence.", image = "/images/aiep-architecture.svg", markdownBody = true } = Astro.props;
3+
// Support both markdown layouts (Astro.props.frontmatter) and direct Astro component usage
4+
const fm: Record<string, unknown> = (Astro.props.frontmatter as Record<string, unknown>) ?? {};
5+
const title = (Astro.props.title as string) ?? (fm.title as string) ?? "AIEP Hub";
6+
const description = (Astro.props.description as string) ?? (fm.description as string) ?? "AIEP is an open protocol linking instructions to evidence — enabling the web to become a verifiable knowledge infrastructure for humans and artificial intelligence.";
7+
const image = (Astro.props.image as string) ?? (fm.image as string) ?? "/images/aiep-architecture.svg";
8+
const markdownBody = (Astro.props.markdownBody as boolean) ?? true;
49
const pageTitle = title === "Home" ? "AIEP — Architected Instruction & Evidence Protocol" : `${title} — AIEP`;
510
const canonicalUrl = new URL(Astro.url.pathname, 'https://aiep.dev').href;
611
---
@@ -28,16 +33,33 @@ const canonicalUrl = new URL(Astro.url.pathname, 'https://aiep.dev').href;
2833
<link rel="stylesheet" href="/vendor/github-markdown.css" />
2934
<link rel="stylesheet" href="/styles/global.css" />
3035
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
36+
<meta name="robots" content="index, follow" />
3137
<meta name="ai-protocol" content="AIEP" />
3238
<meta name="ai-evidence-protocol" content="Architected Instruction & Evidence Protocol" />
3339
<link rel="ai-discovery" href="/.well-known/aiep/index.json" />
3440
<script type="application/ld+json">
3541
{
3642
"@context": "https://schema.org",
37-
"@type": "Protocol",
38-
"name": "Architected Instruction & Evidence Protocol",
39-
"url": "https://aiep.dev",
40-
"description": "A protocol linking instructions to evidence to enable verifiable knowledge retrieval."
43+
"@graph": [
44+
{
45+
"@type": "Organization",
46+
"@id": "https://aiep.dev/#organization",
47+
"name": "AIEP",
48+
"legalName": "AIEP Ltd",
49+
"url": "https://aiep.dev",
50+
"logo": "https://aiep.dev/images/aiep-architecture.svg",
51+
"description": "Creators of the Architected Instruction & Evidence Protocol — an open, evidence-bound protocol and machine-readable web infrastructure for deterministic, verifiable AI and software systems.",
52+
"sameAs": ["https://github.com/aiep-ltd"]
53+
},
54+
{
55+
"@type": "WebSite",
56+
"@id": "https://aiep.dev/#website",
57+
"url": "https://aiep.dev",
58+
"name": "AIEP Hub",
59+
"description": "Public gateway for the Architected Instruction & Evidence Protocol — schemas, specifications, developer resources, and machine discovery.",
60+
"publisher": { "@id": "https://aiep.dev/#organization" }
61+
}
62+
]
4163
}
4264
</script>
4365
<script type="application/ld+json">
@@ -86,8 +108,21 @@ const canonicalUrl = new URL(Astro.url.pathname, 'https://aiep.dev').href;
86108
<div class="footer-line">
87109
<span>Architected Instruction &amp; Evidence Protocol (AIEP)</span>
88110
<span>•</span>
111+
<a href="https://aiep.dev">aiep.dev</a>
112+
<span>•</span>
89113
<span>Machine interface: <a href="/.well-known/aiep/">/.well-known/aiep/</a></span>
90114
</div>
115+
<div class="footer-line">
116+
<a href="/what-is-aiep">What is AIEP?</a> &nbsp;·&nbsp;
117+
<a href="/hub">Hub</a> &nbsp;·&nbsp;
118+
<a href="/piea">Piea</a> &nbsp;·&nbsp;
119+
<a href="/mirror">Mirror</a> &nbsp;·&nbsp;
120+
<a href="/schemas">Schemas</a> &nbsp;·&nbsp;
121+
<a href="/downloads">Downloads</a> &nbsp;·&nbsp;
122+
<a href="/contact">Contact</a> &nbsp;·&nbsp;
123+
<a href="/privacy">Privacy</a> &nbsp;·&nbsp;
124+
<a href="/terms">Terms</a>
125+
</div>
91126
<div class="footer-line footer-line--spaced">
92127
<span><strong>Interest:</strong></span>
93128
<span>Human views: <span data-counter="human">—</span></span>

src/pages/hub.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
---
2+
title: AIEP Hub
3+
description: "AIEP Hub — the public gateway and developer entry point for the Architected Instruction & Evidence Protocol. Schemas, specifications, downloads, machine interface, and developer resources."
4+
layout: ../layouts/BaseLayout.astro
5+
---
6+
7+
# AIEP Hub
8+
9+
**The public gateway and developer entry point for the Architected Instruction &amp; Evidence Protocol.**
10+
11+
AIEP Hub is the canonical public surface for everything AIEP: schemas, open specifications, developer documentation, the machine interface, download artefacts, and the knowledge base explaining how the protocol works.
12+
13+
---
14+
15+
## What the Hub contains
16+
17+
### Developer resources
18+
19+
| Resource | Description | Link |
20+
|---|---|---|
21+
| **Specification** | Full normative protocol spec | [/spec](/spec) |
22+
| **Schemas** | Canonical JSON schemas for all record types | [/schemas](/schemas) |
23+
| **GENOME SDK** | Python reference implementation | [/genome-sdk](/genome-sdk) |
24+
| **Get Started** | Quick-start guide | [/get-started](/get-started) |
25+
| **Downloads** | Specs, whitepapers, schema bundles | [/downloads](/downloads) |
26+
| **Integration Guide** | How to integrate AIEP into your system | [/integration-guide](/integration-guide) |
27+
28+
### Understanding AIEP
29+
30+
| Resource | Description | Link |
31+
|---|---|---|
32+
| **What is AIEP?** | Plain-language explainer | [/what-is-aiep](/what-is-aiep) |
33+
| **Architecture** | Protocol architecture overview | [/architecture](/architecture) |
34+
| **Mirror Protocol** | Machine-readable publication surface | [/mirror](/mirror) |
35+
| **Evidence Layer** | How evidence-linking works | [/evidence-layer](/evidence-layer) |
36+
| **Canon &amp; Primitives** | Core record types and hashing | [/canon](/canon) |
37+
38+
### Products built on AIEP
39+
40+
| Product | Description | Link |
41+
|---|---|---|
42+
| **Piea** | Evidence-grounded AI assistant in production | [/piea](/piea) |
43+
| **Forecast** | AIEP-governed forecasting surface | [/forecast](/forecast) |
44+
| **QARDL** | Questions, answers, records, decisions, ledger | [/qardl](/qardl) |
45+
46+
---
47+
48+
## Machine interface
49+
50+
AIEP Hub publishes a complete machine-readable Mirror at `/.well-known/aiep/`. This surface is readable directly by AI agents, validators, and automated compliance systems — no scraping, no interpretation.
51+
52+
```
53+
GET /.well-known/aiep/index.json
54+
GET /.well-known/aiep/metadata.json
55+
GET /.well-known/aiep/schema
56+
GET /.well-known/aiep/schemas/aiep.canonical.schema.v3.0.0.json
57+
```
58+
59+
- **Index:** [`/.well-known/aiep/index.json`](/.well-known/aiep/index.json)
60+
- **Schema manifest:** [`/.well-known/aiep/schema`](/.well-known/aiep/schema)
61+
- **Metadata:** [`/.well-known/aiep/metadata.json`](/.well-known/aiep/metadata.json)
62+
- **Protocol manifest:** [`/.well-known/aiep-manifest.json`](/.well-known/aiep-manifest.json)
63+
64+
---
65+
66+
## Open by default
67+
68+
AIEP Hub is open. No authentication. No registration wall. All public documentation, schemas, and specifications are freely available under [Apache 2.0](/licensing).
69+
70+
Certification is available for organisations that want to make a verifiable claim of AIEP conformance — see [/certification](/certification).
71+
72+
---
73+
74+
## For developers
75+
76+
1. **Explore the schemas**[/schemas](/schemas)
77+
2. **Install the SDK**`pip install aiep-genome-sdk`
78+
3. **Read the spec**[/spec](/spec)
79+
4. **Download artefacts**[/downloads](/downloads)
80+
5. **Publish a Mirror** — host conformant JSON at `/.well-known/aiep/` on your domain
81+
82+
GitHub: [github.com/aiep-ltd](https://github.com/aiep-ltd)
83+
84+
---
85+
86+
See also: [What is AIEP?](/what-is-aiep) · [About](/about) · [Mirror](/mirror) · [Piea](/piea) · [Contact](/contact)

0 commit comments

Comments
 (0)