Release Notes — Frontmatter Spec v1.3

Built: 2025-10-15 • Source: /ai/spec/v1.3/release-notes-v1.3.md
# Release Notes — Frontmatter Spec v1.3
**Date:** 2025-10-15  
**Status:** Stable

## Overview
Frontmatter v1.3 consolidates our dual-delivery strategy for AI consumption:
1) **SEO / Google Rich Results** (JSON‑LD + OpenGraph in HTML)  
2) **API / Partner AIs** (manifest + meta.json/meta.yaml + content.md + checksums)

The release strengthens **AI‑tooling**, formalizes an **open‑source production stack**, and embeds **Experience Innovation** as a guiding method to keep content and structured data aligned.

---

## Highlights
- **AI‑Tooling integrated:** Two standard prompts (API & Google paths), stricter byte‑identical hash policy, and CORS/Preflight guidance for LLM fetchers.
- **Open‑Source Stack set:** Ubuntu LTS + Caddy 2 as reference stack; Odoo Website (or any CMS) as content source; Cloudflare DNS‑only guidance.
- **Experience Innovation embedded:** 7C CI/CD and delivery artifacts (JSON‑LD snippets, content.md DE/EN, meta.* with checksums, manifest, llms.txt, sitemap_ai.xml) kept in sync.
- **Validation pipeline:** AJV (draft 2020‑12) w/ `ajv-formats`; per‑doc checksums; healthcheck script extended.
- **Developer ergonomics:** Precise content types, OPTIONS 204 for preflight, ETag/Last‑Modified consistency, and troubleshooting snippets.

---

## Changes since v1.2
### Spec
- **Frontmatter keys:** No breaking changes; clarified **required** vs **recommended** for Rich Results per document type.
- **Checksums:** Explicit `checksums.content_sha256` in `meta.json` is **mandatory** and must match byte‑for‑byte the served `content.md`.
- **hreflang & canonical:** Pattern for DE/EN pages (canonical + alternate + x‑default) documented; dynamic insertion allowed when server‑side templating is limited.

### Delivery
- **AI manifest:** `/ai/manifest.json` remains the primary discovery entry.  
- **AI sitemap:** `/ai/sitemap_ai.xml` referenced from `robots.txt` and `llms.txt`.
- **CORS/Preflight:** Required headers and 204 OPTIONS response codified; `Alt-Svc` on OPTIONS discouraged.
- **Cloudflare:** Recommend DNS‑only (or cache bypass) for `/ai/*`; avoid content mutation that breaks hashes.

### Tooling
- **Validation:** `ajv validate --spec=draft2020 -c ajv-formats` for all `meta.json` files.  
- **Healthcheck:** Script covers reachability, schema validation, checksum verification, HEAD checks (types/CORS/cache).

---

## New Documents
- **Annex A — Technik & Tools (v1.3):** Open‑source stack, AI‑tooling, Experience Innovation alignment, DevOps, QA and checklists.  
  Path: `/ai/spec/v1.3/annex-tech.md`

_Notes:_  
- **Annex B — Kommunikationsmodelle (Watzlawick/Thun)** and **Annex C — Erstellungsprozess (CAISE)** are planned to formalize content tone & delivery workflow alignment. (Optional for 1.3.1)

---

## Compatibility & Migration
- **From v1.2 → v1.3:** No schema breaking changes.  
- Ensure every `content.md` has an accurate SHA‑256 in `meta.json`. Mismatches **must** block downstream processing.  
- Keep JSON‑LD snippets and `content.md` semantically aligned (same facts, titles, images where applicable).

---

## Operational Guidance
- **TLS:** TLS 1.2/1.3, full chain; HSTS recommended.  
- **IPv4/IPv6:** Verify A/AAAA; server listening on `*:443` (dual stack).  
- **Headers:**  
  - `Access-Control-Allow-Origin: *`  
  - `Access-Control-Allow-Methods: GET, HEAD, OPTIONS`  
  - `Access-Control-Allow-Headers: Authorization, Content-Type`  
  - `Content-Type` precise for `.json`, `.yaml`, `.md`, `.schema.json`  
  - `ETag` + `Last-Modified` stable  
- **No-cache fetch for QA:** `curl -sL --compressed -H "Cache-Control: no-cache" URL | sha256sum`

---

## Test Prompts (Copy‑Paste)
### Scenario A — API & Partners
> You are an API agent. Fetch `https:///ai/manifest.json`. Select document `` version ``. Load `meta.json` for `` and `content.md`. Verify `sha256(content.md)` equals the value in `meta.json`. If matched: output 5 bullet points + locations + one contact person. If not: report checksum error only.

### Scenario B — Google Path
> You are an AI agent. Summarize `https:///` in 5 bullet points and name locations and one contact person. Use **only** structured data (JSON‑LD/schema.org) and visible page content.

---

## Known Caveats
- Some LLM browsers mutate bytes (encoding/whitespace). Enforce **raw bytes** fetch for checksum verification.  
- OPTIONS requests must not return `Alt-Svc` or unexpected content; keep 204 with CORS headers only.  
- CDN caches can serve stale content; for `/ai/*` use DNS‑only or cache bypass rules.

---

## Next Steps
- Freeze **Annex B** (Watzlawick/Thun) and **Annex C** (Process, including n8n flow where applicable).  
- Add CI job for automated schema/hash checks on commit.  
- Extend manifest to expose `latest` per doc/locale and historical versions (`v1.2`, `v1.3`).

---

**Owner:** Tolksdorf.digital  
**Contact:** admin-ch@tolksdorf.digital