# SPDX-FileCopyrightText: 2026 PythonWoods <dev@pythonwoods.dev>
# SPDX-License-Identifier: Apache-2.0
#
# Zenzic Deterministic Routing Kernel v13 (SEO-Safe)
# Strategy: Exact 1:1 semantic mapping. No nuclear sinks.
# Dead paths return 404. Soft-404s are rejected by design.

# ─── LAYER 1: CANONICAL HYGIENE ──────────────────────────────────────────────
/docs           /  301
/docs/          /  301
/it             /  301
/it/            /  301

# ─── LAYER 2: ADR FINITE GRAPH (Mappatura Esatta 1:1 - NO WILDCARDS) ─────────
# Rimuove ogni ambiguità. Nessun rewrite parziale.
/developers/explanation/adr-vault/adr-lint-source         /developers/explanation/adr-vault/records/adr-lint-source/ 301
/developers/explanation/adr-vault/adr-discovery           /developers/explanation/adr-vault/records/adr-discovery/ 301
/developers/explanation/adr-vault/adr-020                 /developers/explanation/adr-vault/records/adr-020-mirror-law/ 301
/developers/explanation/adr-vault/adr-021                 /developers/explanation/adr-vault/records/adr-021-parallel-audit/ 301
/developers/explanation/adr-vault/adr-regex-acl           /developers/explanation/adr-vault/records/adr-regex-acl/ 301
/developers/explanation/adr-vault/adr-path-sovereignty     /developers/explanation/adr-vault/records/adr-path-sovereignty/ 301
/developers/explanation/adr-vault/adr-agnostic-universalism /developers/explanation/adr-vault/records/adr-agnostic-universalism/ 301
/developers/explanation/adr-vault/adr-native-telemetry     /developers/explanation/adr-vault/records/adr-native-telemetry/ 301
/developers/explanation/adr-vault/adr-unified-perimeter    /developers/explanation/adr-vault/records/adr-unified-perimeter/ 301
/developers/explanation/adr-vault/adr-002-zero-subprocesses /developers/explanation/adr-vault/records/adr-002-zero-subprocesses/ 301
/developers/explanation/adr-vault/adr-007-sovereign-sandbox /developers/explanation/adr-vault/records/adr-007-sovereign-sandbox/ 301
/developers/explanation/adr-vault/adr-075-radical-unawareness /developers/explanation/adr-vault/records/adr-075-radical-unawareness/ 301

# Short Path Overrides (Legacy Discovery Fix)
/developers/explanation/adr-discovery                    /developers/explanation/adr-vault/records/adr-discovery/ 301
/developers/explanation/adr-parallel-early-termination   /developers/explanation/adr-vault/records/adr-021-parallel-audit/ 301
/developers/explanation/adr-bilingual-structural         /developers/explanation/adr-vault/records/adr-bilingual-structural/ 301
/developers/explanation/adr-sovereign-sandbox            /developers/explanation/adr-vault/records/adr-007-sovereign-sandbox/ 301
/developers/explanation/adr-zero-subprocesses            /developers/explanation/adr-vault/records/adr-002-zero-subprocesses/ 301
/developers/how-to/adapter-examples/                     /developers/how-to/implement-adapter/ 301
/developers/how-to/adapter-examples                      /developers/how-to/implement-adapter/ 301

# ─── LAYER 3: BLOG CANONICAL SLUGS ───────────────────────────────────────────
/blog/welcome                                 /blog/2026/04/28/welcome-to-the-zenzic-blog/ 301
/blog/welcome/                                /blog/2026/04/28/welcome-to-the-zenzic-blog/ 301
/blog/zenzic-v0160-engineering-determinism-into-documentation-pipelines /blog/2026/06/27/zenzic-v0160-engineering-determinism-into-documentation-pipelines/ 301
/blog/obsidian-masterclass/                   /blog/2026/05/24/engineering-v080-deep-dive/ 301
/blog/obsidian-masterclass                    /blog/2026/05/24/engineering-v080-deep-dive/ 301
/blog/2026/07/18/2026-07-18-zenzic-vs-code-extension/ /blog/2026/07/18/zenzic-vs-code-extension/ 301
/blog/rss.xsl                                 /rss.xsl 301
/blog/atom.xsl                                /rss.xsl 301

# ─── LAYER 4: STRUCTURAL MIRRORS (Known Folders) ─────────────────────────────
/it/blog/*                                    /blog/ 301
/it/docs/how-to/examples/*                     /tutorials/examples/:splat 301
/it/docs/tutorials/examples/*                  /tutorials/examples/:splat 301
/docs/how-to/*                                 /how-to/:splat 301
/docs/reference/*                              /reference/:splat 301
/docs/explanation/*                            /explanation/:splat 301
/docs/tutorials/*                              /tutorials/:splat 301
/docs/developers/*                             /developers/:splat 301

# ─── LAYER 5: SEO-SAFE SINKS ──────────────────────────────────────────────────
# Explicit-only. No nuclear sinks. Dead paths return 404 by design (ADR-018).
# /it/adr-vault/* expanded to exact 1:1 semantic mapping (no subtree compression)
/it/developers/explanation/adr-vault/records/adr-lint-source/         /developers/explanation/adr-vault/records/adr-lint-source/ 301
/it/developers/explanation/adr-vault/records/adr-discovery/           /developers/explanation/adr-vault/records/adr-discovery/ 301
/it/developers/explanation/adr-vault/records/adr-020-mirror-law/      /developers/explanation/adr-vault/records/adr-020-mirror-law/ 301
/it/developers/explanation/adr-vault/records/adr-021-parallel-audit/  /developers/explanation/adr-vault/records/adr-021-parallel-audit/ 301
/it/developers/explanation/adr-vault/records/adr-regex-acl/           /developers/explanation/adr-vault/records/adr-regex-acl/ 301
/it/developers/explanation/adr-vault/records/adr-path-sovereignty/    /developers/explanation/adr-vault/records/adr-path-sovereignty/ 301
/it/developers/explanation/adr-vault/records/adr-agnostic-universalism/ /developers/explanation/adr-vault/records/adr-agnostic-universalism/ 301
/it/developers/explanation/adr-vault/records/adr-native-telemetry/    /developers/explanation/adr-vault/records/adr-native-telemetry/ 301
/it/developers/explanation/adr-vault/records/adr-unified-perimeter/   /developers/explanation/adr-vault/records/adr-unified-perimeter/ 301
/it/developers/explanation/adr-vault/records/adr-002-zero-subprocesses/ /developers/explanation/adr-vault/records/adr-002-zero-subprocesses/ 301
/it/developers/explanation/adr-vault/records/adr-007-sovereign-sandbox/ /developers/explanation/adr-vault/records/adr-007-sovereign-sandbox/ 301
/it/developers/explanation/adr-vault/records/adr-075-radical-unawareness/ /developers/explanation/adr-vault/records/adr-075-radical-unawareness/ 301
/it/developers/explanation/adr-vault/records/adr-022-english-only-governance/ /developers/explanation/adr-vault/records/adr-022-english-only-governance/ 301
/it/developers/explanation/adr-vault/records/adr-bilingual-structural/ /developers/explanation/adr-vault/records/adr-bilingual-structural/ 301
/it/developers/explanation/adr-vault/records/adr-decentralized-cli/   /developers/explanation/adr-vault/records/adr-decentralized-cli/ 301

/tutorials/examples/z6xx-brand/z602-i18n-parity/ /tutorials/examples/ 301
/blog/tags/*                                   /blog/ 301
/category/*                                    / 301
