From 7c8fe8a19a56c9f92db39a69402abf08bb8008f0 Mon Sep 17 00:00:00 2001 From: PythonWoods Date: Sat, 1 Aug 2026 16:42:55 +0200 Subject: [PATCH 01/17] docs(roadmap): update release milestones to v0.26.x and mark previous milestones as released Signed-off-by: PythonWoods --- ROADMAP.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 1e9efab..79f046a 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -10,7 +10,7 @@ SPDX-License-Identifier: Apache-2.0 This document describes the planned milestone trajectory for Zenzic, the **Deterministic Document Integrity Engine and SAST for Markdown/MDX graphs**. Dates are targets, not commitments. All milestones are subject to revision. -For the current release history and completed milestones (up to `v0.23.x`), see [CHANGELOG.md](CHANGELOG.md). +For the current release history and completed milestones (up to `v0.26.x`), see [CHANGELOG.md](CHANGELOG.md). --- @@ -25,13 +25,13 @@ Before advancing the core feature set, the following infrastructural and validat ## Milestone Sequence -### [v0.24] — Interactive Intelligence +### [v0.24] — Interactive Intelligence (Released) *Completing the diagnostic-to-remediation loop within the IDE.* - **VS Code Code Actions (Quick Fixes):** Implement `textDocument/codeAction` via LSP to allow users to instantly apply deterministic fixes (e.g., `Z121`, `Z603`) directly from the editor. -### [v0.25] — LSP Stabilization & Hot-Reloading +### [v0.25] — LSP Stabilization & Hot-Reloading (Released) *Achieving 100% determinism between CLI and IDE via centralized governance, adapter-driven hot-reloading, and cross-platform URI parity.* @@ -39,7 +39,7 @@ Before advancing the core feature set, the following infrastructural and validat - **Adapter-Driven Config Hot-Reloading:** Enable real-time VSM topology rebuilds in VS Code when engine configuration files (e.g., `mkdocs.yml`, `zensical.toml`) change, without requiring an LSP server restart. - **BaseAdapter Contract Hardening:** Expose `watched_config_files` on the `BaseAdapter` interface to preserve Adapter Neutrality across third-party engines. -### [v0.26] — DQS Workspace UI +### [v0.26] — DQS Workspace UI (Released) *Bringing the global Documentation Quality Score into the authoring environment via an asynchronous, deterministic CLI execution bridge.* @@ -95,4 +95,4 @@ These constraints apply across every future release. No feature may violate them --- -Roadmap last updated: 2026-07-25. +Roadmap last updated: 2026-08-01. From 2bda38e411a89e647a3b9d540bd02ea45da6ad42 Mon Sep 17 00:00:00 2001 From: PythonWoods Date: Sat, 1 Aug 2026 17:01:00 +0200 Subject: [PATCH 02/17] feat(core): implement smart link graph and topological rules Z410/Z411 Transform VSM to support adjacency list. Integrate topological engine in IncrementalAnalysisEngine. Add Z410 (UNREACHABLE_GRAPH_NODE) and Z411 (DEAD_END_NODE). Maintain <50ms performance for incremental graphs. Signed-off-by: PythonWoods --- docs/rules/Z410.md | 37 +++++++++++ docs/rules/Z411.md | 37 +++++++++++ src/zenzic/core/adapters/_base.py | 6 +- src/zenzic/core/adapters/_mkdocs.py | 17 +++++ src/zenzic/core/adapters/_standalone.py | 4 ++ src/zenzic/core/adapters/_zensical.py | 16 +++++ src/zenzic/core/codes.py | 10 ++- src/zenzic/core/incremental.py | 38 ++++++++++- src/zenzic/core/topology.py | 84 +++++++++++++++++++++++++ src/zenzic/models/vsm.py | 24 ++++++- tests/test_topology.py | 39 ++++++++++++ zenzic-output.schema.json | 14 +++++ 12 files changed, 319 insertions(+), 7 deletions(-) create mode 100644 docs/rules/Z410.md create mode 100644 docs/rules/Z411.md create mode 100644 src/zenzic/core/topology.py create mode 100644 tests/test_topology.py diff --git a/docs/rules/Z410.md b/docs/rules/Z410.md new file mode 100644 index 0000000..722976a --- /dev/null +++ b/docs/rules/Z410.md @@ -0,0 +1,37 @@ +--- +title: "Z410: UNREACHABLE_GRAPH_NODE" +--- + +# Z410: UNREACHABLE_GRAPH_NODE + +**Severity**: `warning` +**Penalty**: 5.0 points +**Category**: `structural` +**Auto-fixable**: No + +## Description +The document is isolated and unreachable from the navigation entry points of the documentation graph. + +A document is considered an orphan graph node if it is discovered in the filesystem by Zenzic, but no valid path of links connects it to the root configuration (e.g., the `nav` section in MkDocs or Zensical). + +While Z402 (`ORPHAN_PAGE`) checks if a page is listed in the top-level navigation, Z410 performs a deep topological Breadth-First Search (BFS) to ensure the document can be reached by a user clicking through links starting from the navigation entry points. + +## How to Fix +To resolve this issue, you must integrate the document into the reachable graph: +1. Add a link to the document from another document that is already reachable. +2. Add the document directly to the main navigation menu (`mkdocs.yml` or equivalent). + +## Suppression +If the document is intentionally isolated (for example, a standalone template or an internal include that is not meant to be browsed), you can suppress this warning using an inline directive at the top of the file: + +```markdown + +``` + +Alternatively, you can ignore the file globally using directory policies in `.zenzic.toml`: + +```toml +[directory_policies.internal] +match = "internal/**" +ignore = ["Z410"] +``` diff --git a/docs/rules/Z411.md b/docs/rules/Z411.md new file mode 100644 index 0000000..407cfee --- /dev/null +++ b/docs/rules/Z411.md @@ -0,0 +1,37 @@ +--- +title: "Z411: DEAD_END_NODE" +--- + +# Z411: DEAD_END_NODE + +**Severity**: `warning` +**Penalty**: 5.0 points +**Category**: `structural` +**Auto-fixable**: No + +## Description +The document has no outgoing links and forms a structural dead end in the documentation graph. + +A Dead End (Z411) occurs when a Markdown/MDX page does not link to any other resources. In a well-structured documentation graph, every page should ideally guide the user to further reading, related topics, or back to a main index. A page with zero outgoing links strands the reader. + +Terminal assets like images, CSS files, and PDFs are excluded from this rule. + +## How to Fix +Add relevant outgoing links to the document to connect it to the rest of the documentation graph: +1. Link to related concepts or further reading. +2. Link to a parent or index page to provide a path back. + +## Suppression +If the document is intentionally designed as a dead end (for example, a terminal legal disclaimer or an auto-generated changelog with no internal references), you can suppress this warning using an inline directive at the top of the file: + +```markdown + +``` + +Alternatively, you can ignore the file globally using directory policies in `.zenzic.toml`: + +```toml +[directory_policies.legal] +match = "legal/**" +ignore = ["Z411"] +``` diff --git a/src/zenzic/core/adapters/_base.py b/src/zenzic/core/adapters/_base.py index f3e9ef8..28c0a26 100644 --- a/src/zenzic/core/adapters/_base.py +++ b/src/zenzic/core/adapters/_base.py @@ -16,7 +16,7 @@ if TYPE_CHECKING: - from zenzic.models.vsm import RouteStatus + from zenzic.models.vsm import RouteStatus, VirtualSiteMap # ── Route metadata types ───────────────────────────────────────────────────── @@ -133,3 +133,7 @@ def use_directory_urls(self) -> bool: def watched_config_files(self) -> frozenset[str]: """Return the configuration filenames that trigger a VSM rebuild in LSP mode.""" return frozenset() + + @abstractmethod + def get_entry_points(self, vsm: VirtualSiteMap) -> list[str]: + """Return canonical URLs serving as root entry points for reachability analysis.""" diff --git a/src/zenzic/core/adapters/_mkdocs.py b/src/zenzic/core/adapters/_mkdocs.py index 043afd9..81db618 100644 --- a/src/zenzic/core/adapters/_mkdocs.py +++ b/src/zenzic/core/adapters/_mkdocs.py @@ -849,6 +849,23 @@ def get_absolute_url_prefixes(self, repo_root: Path | None = None) -> list[str]: """MkDocs is single-instance and exports no absolute URL prefixes.""" return [] + def get_entry_points(self, vsm: 'VirtualSiteMap') -> list[str]: + """Return canonical URLs serving as root entry points from nav configuration.""" + nav_paths = self.get_nav_paths() + if not nav_paths: + return ["/"] if "/" in vsm else [] + + entry_points = set() + for p in nav_paths: + ep = self._map_url(Path(p)) + if ep in vsm: + entry_points.add(ep) + + if "/" in vsm: + entry_points.add("/") + + return sorted(list(entry_points)) + @classmethod def from_repo( cls, diff --git a/src/zenzic/core/adapters/_standalone.py b/src/zenzic/core/adapters/_standalone.py index 40b3201..221f06c 100644 --- a/src/zenzic/core/adapters/_standalone.py +++ b/src/zenzic/core/adapters/_standalone.py @@ -136,3 +136,7 @@ def get_locale_source_roots(self, repo_root: Path) -> list[tuple[Path, str]]: # def get_absolute_url_prefixes(self, repo_root: Path | None = None) -> list[str]: # noqa: ARG002 """Standalone mode owns no absolute URL prefixes.""" return [] + + def get_entry_points(self, vsm: 'VirtualSiteMap') -> list[str]: # noqa: ARG002 + """Standalone mode defaults to the root URL.""" + return ["/"] diff --git a/src/zenzic/core/adapters/_zensical.py b/src/zenzic/core/adapters/_zensical.py index 125c5bf..d7ca0cf 100644 --- a/src/zenzic/core/adapters/_zensical.py +++ b/src/zenzic/core/adapters/_zensical.py @@ -459,6 +459,22 @@ def get_absolute_url_prefixes(self, repo_root: Path | None = None) -> list[str]: """Zensical is single-instance and exports no absolute URL prefixes.""" return [] + def get_entry_points(self, vsm: 'VirtualSiteMap') -> list[str]: + """Return canonical URLs serving as root entry points from nav configuration.""" + if not self._has_explicit_nav: + return ["/"] if "/" in vsm else [] + + entry_points = set() + for p in self._nav_paths: + ep = self._map_url(Path(p)) + if ep in vsm: + entry_points.add(ep) + + if "/" in vsm: + entry_points.add("/") + + return sorted(list(entry_points)) + @classmethod def from_repo( cls, diff --git a/src/zenzic/core/codes.py b/src/zenzic/core/codes.py index a4b37d3..8d2dc13 100644 --- a/src/zenzic/core/codes.py +++ b/src/zenzic/core/codes.py @@ -228,6 +228,8 @@ class ZenzicExitCode: "Z404": CodeDefinition("warning", 3.0, "brand"), # CONFIG_ASSET_MISSING "Z405": CodeDefinition("warning", 3.0, "brand"), # UNUSED_ASSET "Z406": CodeDefinition("warning", 2.0, "brand"), # NAV_CONTRACT + "Z410": CodeDefinition("warning", 5.0, "structural"), # UNREACHABLE_GRAPH_NODE + "Z411": CodeDefinition("warning", 5.0, "structural"), # DEAD_END_NODE # ── Z5xx — Content Quality ──────────────────────────────────────────────── "Z501": CodeDefinition("warning", 2.0, "content"), # PLACEHOLDER "Z502": CodeDefinition("warning", 1.0, "content"), # SHORT_CONTENT @@ -283,6 +285,8 @@ class ZenzicExitCode: "Z404": "CONFIG_ASSET_MISSING", "Z405": "UNUSED_ASSET", "Z406": "NAV_CONTRACT", + "Z410": "UNREACHABLE_GRAPH_NODE", + "Z411": "DEAD_END_NODE", "Z501": "PLACEHOLDER", "Z502": "SHORT_CONTENT", "Z503": "SNIPPET_ERROR", @@ -341,6 +345,8 @@ class ZenzicExitCode: "Z404": "Asset referenced in engine config not found on disk", "Z405": "Asset file not referenced by any documentation page", "Z406": "Navigation contract violation detected", + "Z410": "Document is isolated and unreachable from the navigation entry points", + "Z411": "Document has no outgoing links and forms a structural dead end", # Z5xx — Content Quality "Z501": "Page contains placeholder or stub content", "Z502": "Page word count is below the minimum threshold", @@ -469,10 +475,10 @@ class CoreScanner(NamedTuple): non_suppressible=False, ), CoreScanner( - codes="Z401\u2013404", + codes="Z401\u2013404, Z410\u2013411", name="Structure Guard", capability=( - "Directory-index integrity, orphan pages, missing alt text, config asset paths" + "Directory-index integrity, orphan pages, missing alt text, config asset paths, topological orphans and dead ends" ), primary_exit=1, non_suppressible=False, diff --git a/src/zenzic/core/incremental.py b/src/zenzic/core/incremental.py index e998997..89c0aea 100644 --- a/src/zenzic/core/incremental.py +++ b/src/zenzic/core/incremental.py @@ -267,6 +267,16 @@ def process_changes( # Update overlay's VSM reference overlay.vsm = vsm + # 2b. Run Topological Analysis + if hasattr(self.adapter, "get_entry_points"): + from zenzic.core.topology import detect_dead_ends, detect_orphans + entry_points = self.adapter.get_entry_points(vsm) + self._orphaned_urls = set(detect_orphans(vsm, entry_points)) + self._dead_end_urls = set(detect_dead_ends(vsm)) + else: + self._orphaned_urls = set() + self._dead_end_urls = set() + # 3. Expand files_to_process with dependents via VSM's O(1) reverse index if changed_uris is not None: dependents: set[Path] = set() @@ -331,7 +341,7 @@ def _patch_vsm_route(self, vsm: VirtualSiteMap, path: Path) -> None: if canonical and canonical in vsm: del vsm[canonical] if hasattr(vsm, "remove_outgoing_links"): - vsm.remove_outgoing_links(path) + vsm.remove_outgoing_links(path, canonical_url=canonical) else: # File was created or modified — update route try: @@ -357,6 +367,7 @@ def _patch_vsm_route(self, vsm: VirtualSiteMap, path: Path) -> None: self.docs_root, [], self.adapter, + canonical_url=route_meta.canonical_url if route_meta else "", ) def _resolve_canonical_url(self, vsm: VirtualSiteMap, path: Path) -> str: @@ -480,6 +491,31 @@ def _analyze_file( self._run_urp_checks(vsm, path, text, tracker=tracker, extracted_links=extracted_links) ) + # Topological Rules (Z410, Z411) + canonical_url = self._resolve_canonical_url(vsm, path) + if canonical_url in getattr(self, "_orphaned_urls", set()): + findings.append( + RuleFinding( + path, + 1, + "Z410", + f"Document is isolated and unreachable from the navigation entry points: '{canonical_url}'", + severity="warning", + matched_line="", + ) + ) + if canonical_url in getattr(self, "_dead_end_urls", set()): + findings.append( + RuleFinding( + path, + 1, + "Z411", + f"Document has no outgoing links and forms a structural dead end: '{canonical_url}'", + severity="warning", + matched_line="", + ) + ) + # Dead suppression detection findings.extend(tracker.get_dead_suppressions()) diff --git a/src/zenzic/core/topology.py b/src/zenzic/core/topology.py new file mode 100644 index 0000000..b0c0e27 --- /dev/null +++ b/src/zenzic/core/topology.py @@ -0,0 +1,84 @@ +# SPDX-FileCopyrightText: 2026 PythonWoods +# SPDX-License-Identifier: Apache-2.0 +"""Topological graph analysis for the Virtual Site Map.""" + +from __future__ import annotations +from collections import deque +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from zenzic.models.vsm import VirtualSiteMap + + +def _bfs_reachability(vsm: VirtualSiteMap, entry_points: list[str]) -> set[str]: + """Compute all reachable canonical URLs via a deterministic BFS. + + The BFS traversal ensures O(V+E) time complexity and produces deterministic + reachability sets by sorting nodes and relying on the pre-sorted adjacency list. + """ + reachable = set() + queue: deque[str] = deque() + + # Sort entry points for strict determinism + for ep in sorted(entry_points): + if ep in vsm: + reachable.add(ep) + queue.append(ep) + + while queue: + current = queue.popleft() + outgoing = vsm.outgoing_links.get(current, []) + # outgoing is already strictly sorted in reindex_outgoing_links + for neighbor in outgoing: + if neighbor not in reachable and neighbor in vsm: + reachable.add(neighbor) + queue.append(neighbor) + + return reachable + + +def detect_orphans(vsm: VirtualSiteMap, entry_points: list[str]) -> list[str]: + """Return a deterministically sorted list of canonical URLs that are unreachable. + + Orphans (Z410) are Markdown/MDX documents that exist in the VSM but cannot + be reached from any of the defined entry points. + """ + reachable = _bfs_reachability(vsm, entry_points) + orphans = [] + + for url, route in vsm.items(): + if route.status == "IGNORED" or route.source == "": + continue + + lower_source = route.source.lower() + if not (lower_source.endswith(".md") or lower_source.endswith(".mdx")): + continue + + if url not in reachable: + orphans.append(url) + + return sorted(orphans) + + +def detect_dead_ends(vsm: VirtualSiteMap) -> list[str]: + """Return a deterministically sorted list of canonical URLs with no outgoing links. + + Dead Ends (Z411) are Markdown/MDX documents that do not link to any other + resources, representing a structural dead end in the documentation graph. + Terminal assets (like images or CSS) are excluded. + """ + dead_ends = [] + + for url, route in vsm.items(): + if route.status == "IGNORED" or route.source == "": + continue + + lower_source = route.source.lower() + if not (lower_source.endswith(".md") or lower_source.endswith(".mdx")): + continue + + outgoing = vsm.outgoing_links.get(url, []) + if not outgoing: + dead_ends.append(url) + + return sorted(dead_ends) diff --git a/src/zenzic/models/vsm.py b/src/zenzic/models/vsm.py index 6846bd0..86103a7 100644 --- a/src/zenzic/models/vsm.py +++ b/src/zenzic/models/vsm.py @@ -285,11 +285,14 @@ class VirtualSiteMap(dict[str, Route]): def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) self.incoming_links: dict[str, set[Path]] = {} + self.outgoing_links: dict[str, list[str]] = {} - def remove_outgoing_links(self, path: Path) -> None: - """Discard `path` from every entry in the reverse index.""" + def remove_outgoing_links(self, path: Path, canonical_url: str = "") -> None: + """Discard `path` from every entry in the reverse index and clear its outgoing links.""" for dependent_set in self.incoming_links.values(): dependent_set.discard(path) + if canonical_url and canonical_url in self.outgoing_links: + self.outgoing_links[canonical_url] = [] def reindex_outgoing_links( self, @@ -298,9 +301,20 @@ def reindex_outgoing_links( docs_root: Path, extra_mounts: list[tuple[Path, str]], adapter: BaseAdapter, + canonical_url: str = "", ) -> None: """Rebuild the reverse-index entries emitted by `path`.""" - self.remove_outgoing_links(path) + if not canonical_url: + # Fallback O(N) lookup if not provided + try: + rel_posix = path.relative_to(docs_root).as_posix() + except ValueError: + rel_posix = path.absolute().as_posix() + canonical_url = next((url for url, r in self.items() if r.source == rel_posix), "") + + self.remove_outgoing_links(path, canonical_url=canonical_url) + + targets: set[str] = set() from zenzic.core.rules import _extract_inline_links_with_lines from zenzic.core.validator import PolyglotExtractor @@ -315,6 +329,7 @@ def _register(url: str) -> None: ) if canonical: self.incoming_links.setdefault(canonical, set()).add(path) + targets.add(canonical) for url, _lineno, _raw in _extract_inline_links_with_lines(content): _register(url) @@ -322,6 +337,9 @@ def _register(url: str) -> None: for node in PolyglotExtractor().extract(content): if node.href: _register(node.href) + + if canonical_url: + self.outgoing_links[canonical_url] = sorted(list(targets)) def resolve_link_to_canonical( diff --git a/tests/test_topology.py b/tests/test_topology.py new file mode 100644 index 0000000..8baeec0 --- /dev/null +++ b/tests/test_topology.py @@ -0,0 +1,39 @@ +# SPDX-FileCopyrightText: 2026 PythonWoods +# SPDX-License-Identifier: Apache-2.0 +"""Tests for topological graph analysis.""" + +import pytest +from pathlib import Path +from zenzic.core.topology import detect_orphans, detect_dead_ends +from zenzic.models.vsm import VirtualSiteMap, Route + +def test_detect_orphans(): + vsm = VirtualSiteMap() + vsm["/index.html"] = Route(url="/index.html", source="index.md", status="REACHABLE", anchors=set()) + vsm["/a.html"] = Route(url="/a.html", source="a.md", status="REACHABLE", anchors=set()) + vsm["/b.html"] = Route(url="/b.html", source="b.md", status="REACHABLE", anchors=set()) + vsm["/orphan.html"] = Route(url="/orphan.html", source="orphan.md", status="REACHABLE", anchors=set()) + + # Adjacency list setup + vsm.outgoing_links["/index.html"] = ["/a.html"] + vsm.outgoing_links["/a.html"] = ["/b.html"] + + entry_points = ["/index.html"] + orphans = detect_orphans(vsm, entry_points) + + assert orphans == ["/orphan.html"] + +def test_detect_dead_ends(): + vsm = VirtualSiteMap() + vsm["/index.html"] = Route(url="/index.html", source="index.md", status="REACHABLE", anchors=set()) + vsm["/a.html"] = Route(url="/a.html", source="a.md", status="REACHABLE", anchors=set()) + vsm["/dead_end.html"] = Route(url="/dead_end.html", source="dead_end.md", status="REACHABLE", anchors=set()) + vsm["/asset.png"] = Route(url="/asset.png", source="asset.png", status="REACHABLE", anchors=set()) + + # Adjacency list setup + vsm.outgoing_links["/index.html"] = ["/a.html"] + vsm.outgoing_links["/a.html"] = ["/dead_end.html"] + # /dead_end.html has no outgoing links + + dead_ends = detect_dead_ends(vsm) + assert dead_ends == ["/dead_end.html"] diff --git a/zenzic-output.schema.json b/zenzic-output.schema.json index 450dc53..5984144 100644 --- a/zenzic-output.schema.json +++ b/zenzic-output.schema.json @@ -33,6 +33,8 @@ "unused_assets", "nav_contract", "references", + "topological_orphans", + "dead_ends", "suppression_count", "suppression_cap", "suppression_debt_pts", @@ -93,6 +95,18 @@ "type": "string" } }, + "topological_orphans": { + "type": "array", + "items": { + "type": "string" + } + }, + "dead_ends": { + "type": "array", + "items": { + "type": "string" + } + }, "suppression_count": { "type": "integer", "minimum": 0 From 93e9d6fa75a88df67731bf6c3cebc4486e0ca17f Mon Sep 17 00:00:00 2001 From: PythonWoods Date: Sat, 1 Aug 2026 17:12:22 +0200 Subject: [PATCH 03/17] fix(schema): revert custom topological keys to preserve uniform Finding Taxonomy (ADR-012) Align output schema with ADR-012 by removing topological_orphans and dead_ends. Update examples, README, and docs per Mirror Law (ADR-020). Signed-off-by: PythonWoods --- README.md | 4 +++ docs/index.md | 5 +++ .../z410-unreachable-graph-node/.zenzic.toml | 20 ++++++++++++ .../z410-unreachable-graph-node/README.md | 30 ++++++++++++++++++ .../z410-unreachable-graph-node/docs/index.md | 3 ++ .../docs/secret.md | 3 ++ .../z410-unreachable-graph-node/zensical.toml | 14 +++++++++ examples/z411-dead-end-node/.zenzic.toml | 20 ++++++++++++ examples/z411-dead-end-node/README.md | 31 +++++++++++++++++++ examples/z411-dead-end-node/docs/deadend.md | 3 ++ examples/z411-dead-end-node/docs/index.md | 3 ++ examples/z411-dead-end-node/docs/secret.md | 12 +++++++ .../docs/suppressed_deadend.md | 4 +++ examples/z411-dead-end-node/zensical.toml | 14 +++++++++ zenzic-output.schema.json | 14 --------- 15 files changed, 166 insertions(+), 14 deletions(-) create mode 100644 examples/z410-unreachable-graph-node/.zenzic.toml create mode 100644 examples/z410-unreachable-graph-node/README.md create mode 100644 examples/z410-unreachable-graph-node/docs/index.md create mode 100644 examples/z410-unreachable-graph-node/docs/secret.md create mode 100644 examples/z410-unreachable-graph-node/zensical.toml create mode 100644 examples/z411-dead-end-node/.zenzic.toml create mode 100644 examples/z411-dead-end-node/README.md create mode 100644 examples/z411-dead-end-node/docs/deadend.md create mode 100644 examples/z411-dead-end-node/docs/index.md create mode 100644 examples/z411-dead-end-node/docs/secret.md create mode 100644 examples/z411-dead-end-node/docs/suppressed_deadend.md create mode 100644 examples/z411-dead-end-node/zensical.toml diff --git a/README.md b/README.md index 894a568..31f348b 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,10 @@ Zenzic treats documentation as a **security surface**. The tiered code model enf Zenzic reports only what is **statically verifiable** in the repository at scan time. It never infers intent or approximates link validity. Every finding is a falsifiable, reproducible fact. +### Topological Graph Analysis (Orphans & Dead Ends) + +Beyond static file checks, Zenzic's Smart Link Graph builds an adjacency list to perform Breadth-First Search (BFS) over your document network. It identifies **Topological Orphans** (`Z410`, documents unreachable from navigation entry points) and **Dead Ends** (`Z411`, pages with no outgoing links), helping maintain structural navigation integrity. + --- ## 🧠 Key Capabilities & Commands diff --git a/docs/index.md b/docs/index.md index 386b06c..dd49920 100644 --- a/docs/index.md +++ b/docs/index.md @@ -72,3 +72,8 @@ Zenzic treats documentation as a **security surface**. The tiered code model enf ### Zero Hallucinations Zenzic reports only what is **statically verifiable** in the repository at scan time. Every finding is a falsifiable, reproducible fact — suitable as audit evidence for security reviewers and compliance teams. + +### Topological Graph Analysis (Orphans & Dead Ends) + +Beyond static file checks, Zenzic's Smart Link Graph builds an adjacency list to perform Breadth-First Search (BFS) over your document network. It identifies **Topological Orphans** (`Z410`, documents unreachable from navigation entry points) and **Dead Ends** (`Z411`, pages with no outgoing links), helping maintain structural navigation integrity. + diff --git a/examples/z410-unreachable-graph-node/.zenzic.toml b/examples/z410-unreachable-graph-node/.zenzic.toml new file mode 100644 index 0000000..6e4db4a --- /dev/null +++ b/examples/z410-unreachable-graph-node/.zenzic.toml @@ -0,0 +1,20 @@ +# SPDX-FileCopyrightText: 2026 PythonWoods +# SPDX-License-Identifier: Apache-2.0 +# .zenzic.toml — Z402 ORPHAN_PAGE gallery example +# +# This sandbox uses the zensical engine so that find_orphans() can inspect +# the navigation manifest. docs/secret.md exists on disk but is NOT listed +# in zensical.toml nav — it is ORPHAN_BUT_EXISTING → Z402 ORPHAN_PAGE. +# +# With the standalone engine find_orphans() returns [] (no nav to compare). +# The zensical adapter reads zensical.toml and detects the unlisted page. +# +# Expected results: +# zenzic check assets → EXIT 1 (Z402 ×1 — docs/secret.md not in nav) +# zenzic check all → EXIT 1 + +docs_dir = "docs" +fail_under = 0 + +[build_context] +engine = "zensical" diff --git a/examples/z410-unreachable-graph-node/README.md b/examples/z410-unreachable-graph-node/README.md new file mode 100644 index 0000000..9df05bf --- /dev/null +++ b/examples/z410-unreachable-graph-node/README.md @@ -0,0 +1,30 @@ + + + +# Z410 UNREACHABLE_GRAPH_NODE — Gallery Example + +**Category:** Z4xx Structural +**Expected exit:** 1 (warnings) +**Engine required:** zensical + +## What this demonstrates + +`docs/secret.md` exists on disk but has no incoming links and is not in the navigation manifest. Therefore it is an unreachable graph node. + +## Run it + +```bash +zenzic check . +``` + +## Expected output + +```text +docs/secret.md:1: Z410 UNREACHABLE_GRAPH_NODE Document is isolated and unreachable from the navigation entry points: '/secret.md' +``` + +Exit code **1**. + +## Fix + +Either add `"secret.md"` to the `nav` array in `zensical.toml`, link to it from `index.md`, or suppress it using ``. diff --git a/examples/z410-unreachable-graph-node/docs/index.md b/examples/z410-unreachable-graph-node/docs/index.md new file mode 100644 index 0000000..c370b7f --- /dev/null +++ b/examples/z410-unreachable-graph-node/docs/index.md @@ -0,0 +1,3 @@ +# Index + +Welcome to the site. diff --git a/examples/z410-unreachable-graph-node/docs/secret.md b/examples/z410-unreachable-graph-node/docs/secret.md new file mode 100644 index 0000000..285f994 --- /dev/null +++ b/examples/z410-unreachable-graph-node/docs/secret.md @@ -0,0 +1,3 @@ +# Secret + +This page has no incoming links and is not in the nav. diff --git a/examples/z410-unreachable-graph-node/zensical.toml b/examples/z410-unreachable-graph-node/zensical.toml new file mode 100644 index 0000000..6141ad5 --- /dev/null +++ b/examples/z410-unreachable-graph-node/zensical.toml @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: 2026 PythonWoods +# SPDX-License-Identifier: Apache-2.0 +# zensical.toml — Z402 ORPHAN_PAGE gallery example +# +# index.md and guide.md are in the navigation → reachable via site nav. +# secret.md is NOT listed → ORPHAN_BUT_EXISTING → Z402. + +[project] +site_name = "Z402 Example" +docs_dir = "docs" +nav = [ + "index.md", + "guide.md", +] diff --git a/examples/z411-dead-end-node/.zenzic.toml b/examples/z411-dead-end-node/.zenzic.toml new file mode 100644 index 0000000..6e4db4a --- /dev/null +++ b/examples/z411-dead-end-node/.zenzic.toml @@ -0,0 +1,20 @@ +# SPDX-FileCopyrightText: 2026 PythonWoods +# SPDX-License-Identifier: Apache-2.0 +# .zenzic.toml — Z402 ORPHAN_PAGE gallery example +# +# This sandbox uses the zensical engine so that find_orphans() can inspect +# the navigation manifest. docs/secret.md exists on disk but is NOT listed +# in zensical.toml nav — it is ORPHAN_BUT_EXISTING → Z402 ORPHAN_PAGE. +# +# With the standalone engine find_orphans() returns [] (no nav to compare). +# The zensical adapter reads zensical.toml and detects the unlisted page. +# +# Expected results: +# zenzic check assets → EXIT 1 (Z402 ×1 — docs/secret.md not in nav) +# zenzic check all → EXIT 1 + +docs_dir = "docs" +fail_under = 0 + +[build_context] +engine = "zensical" diff --git a/examples/z411-dead-end-node/README.md b/examples/z411-dead-end-node/README.md new file mode 100644 index 0000000..4359a72 --- /dev/null +++ b/examples/z411-dead-end-node/README.md @@ -0,0 +1,31 @@ + + + +# Z411 DEAD_END_NODE — Gallery Example + +**Category:** Z4xx Structural +**Expected exit:** 1 (warnings) +**Engine required:** any + +## What this demonstrates + +`docs/deadend.md` exists and is linked from `index.md`, but it has no outgoing links. +Therefore, it forms a structural dead end in the documentation graph. Visitors reaching this page will have nowhere to go. + +## Run it + +```bash +zenzic check . +``` + +## Expected output + +```text +docs/deadend.md:1: Z411 DEAD_END_NODE Document has no outgoing links and forms a structural dead end: '/deadend.md' +``` + +Exit code **1**. + +## Fix + +Add an outgoing link to another page in `deadend.md`, or suppress the warning with ``. diff --git a/examples/z411-dead-end-node/docs/deadend.md b/examples/z411-dead-end-node/docs/deadend.md new file mode 100644 index 0000000..c8fb2d1 --- /dev/null +++ b/examples/z411-dead-end-node/docs/deadend.md @@ -0,0 +1,3 @@ +# Dead End Page + +This page has no outgoing links and forms a structural dead end. diff --git a/examples/z411-dead-end-node/docs/index.md b/examples/z411-dead-end-node/docs/index.md new file mode 100644 index 0000000..fa2e3b2 --- /dev/null +++ b/examples/z411-dead-end-node/docs/index.md @@ -0,0 +1,3 @@ +# Index + +Welcome. Read the [dead end page](deadend.md). diff --git a/examples/z411-dead-end-node/docs/secret.md b/examples/z411-dead-end-node/docs/secret.md new file mode 100644 index 0000000..a071274 --- /dev/null +++ b/examples/z411-dead-end-node/docs/secret.md @@ -0,0 +1,12 @@ + + + +# Secret Page + +This page (`secret.md`) is **not listed** in `zensical.toml` nav. + +It exists on disk but cannot be reached through the site navigation menu. +Zenzic detects this as **Z402 ORPHAN_PAGE**. + +No visitor following the documented site structure can find this page — it is +navigation dead weight and may contain stale or unpublished content. diff --git a/examples/z411-dead-end-node/docs/suppressed_deadend.md b/examples/z411-dead-end-node/docs/suppressed_deadend.md new file mode 100644 index 0000000..f7163ac --- /dev/null +++ b/examples/z411-dead-end-node/docs/suppressed_deadend.md @@ -0,0 +1,4 @@ + +# Suppressed Dead End Page + +This page is a dead end, but Z411 is suppressed inline. diff --git a/examples/z411-dead-end-node/zensical.toml b/examples/z411-dead-end-node/zensical.toml new file mode 100644 index 0000000..6141ad5 --- /dev/null +++ b/examples/z411-dead-end-node/zensical.toml @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: 2026 PythonWoods +# SPDX-License-Identifier: Apache-2.0 +# zensical.toml — Z402 ORPHAN_PAGE gallery example +# +# index.md and guide.md are in the navigation → reachable via site nav. +# secret.md is NOT listed → ORPHAN_BUT_EXISTING → Z402. + +[project] +site_name = "Z402 Example" +docs_dir = "docs" +nav = [ + "index.md", + "guide.md", +] diff --git a/zenzic-output.schema.json b/zenzic-output.schema.json index 5984144..450dc53 100644 --- a/zenzic-output.schema.json +++ b/zenzic-output.schema.json @@ -33,8 +33,6 @@ "unused_assets", "nav_contract", "references", - "topological_orphans", - "dead_ends", "suppression_count", "suppression_cap", "suppression_debt_pts", @@ -95,18 +93,6 @@ "type": "string" } }, - "topological_orphans": { - "type": "array", - "items": { - "type": "string" - } - }, - "dead_ends": { - "type": "array", - "items": { - "type": "string" - } - }, "suppression_count": { "type": "integer", "minimum": 0 From 366e1e5739e426345936ea056916f79e28ae02fb Mon Sep 17 00:00:00 2001 From: PythonWoods Date: Sat, 1 Aug 2026 17:17:28 +0200 Subject: [PATCH 04/17] feat(cli): add Z410 and Z411 to zenzic lab gallery scenarios Synchronize zenzic lab command to include Z410 (UNREACHABLE_GRAPH_NODE) and Z411 (DEAD_END_NODE) per Mirror Law (ADR-020). Signed-off-by: PythonWoods --- src/zenzic/cli/_lab.py | 14 ++++++++++++++ tests/test_gallery_phase2bc.py | 10 ++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/zenzic/cli/_lab.py b/src/zenzic/cli/_lab.py index 1339f7b..0f80194 100644 --- a/src/zenzic/cli/_lab.py +++ b/src/zenzic/cli/_lab.py @@ -334,6 +334,20 @@ class _Act: example_dir="z603-dead-suppression", expected_pass=False, ), + "z410": _Act( + code="z410", + title="Unreachable Graph Node", + description="Z410 UNREACHABLE_GRAPH_NODE — Document is isolated and unreachable from navigation entry points", + example_dir="z410-unreachable-graph-node", + expected_pass=False, + ), + "z411": _Act( + code="z411", + title="Dead End Node", + description="Z411 DEAD_END_NODE — Document has no outgoing links and forms a structural dead end", + example_dir="z411-dead-end-node", + expected_pass=False, + ), } _VALID_CODES: frozenset[str] = frozenset(_GALLERY) diff --git a/tests/test_gallery_phase2bc.py b/tests/test_gallery_phase2bc.py index fba8a7d..f3a7ac5 100644 --- a/tests/test_gallery_phase2bc.py +++ b/tests/test_gallery_phase2bc.py @@ -71,6 +71,14 @@ def test_z406_registered_in_gallery() -> None: assert "z406" in _GALLERY +def test_z410_registered_in_gallery() -> None: + assert "z410" in _GALLERY + + +def test_z411_registered_in_gallery() -> None: + assert "z411" in _GALLERY + + # ── Fixture directory existence ─────────────────────────────────────────────── @@ -82,6 +90,8 @@ def test_z406_registered_in_gallery() -> None: ("z401", "z401-missing-directory-index"), ("z404", "z404-config-asset-missing"), ("z406", "z406-nav-contract"), + ("z410", "z410-unreachable-graph-node"), + ("z411", "z411-dead-end-node"), ], ) def test_fixture_directory_exists(code: str, dirname: str) -> None: From dccbc23b70f23fb2e767a7ff99a26d4646f721d2 Mon Sep 17 00:00:00 2001 From: PythonWoods Date: Sat, 1 Aug 2026 17:32:03 +0200 Subject: [PATCH 05/17] feat(core): integrate topological analysis into batch scanner and enforce CLI coverage Inject topological graph analysis (detect_orphans, detect_dead_ends) into batch scanner pass (_run_vsm_and_urp_pass). Enforce 100% rule coverage in zenzic lab gallery tests. Archive v0.26.x and add v0.27.0 unreleased section to CHANGELOG.md. Signed-off-by: PythonWoods --- CHANGELOG.md | 64 ++----------------- changelogs/v0.26.x.md | 64 +++++++++++++++++++ examples/z107-circular-anchor/docs/guide.md | 1 + .../docs/guide/page.md | 1 + .../z404-config-asset-missing/docs/index.md | 1 + examples/z406-nav-contract/docs/index.md | 1 + src/zenzic/cli/_lab.py | 2 +- src/zenzic/core/adapters/_standalone.py | 6 +- src/zenzic/core/scanner.py | 48 ++++++++++++++ tests/test_gallery_phase2bc.py | 27 ++++++++ tests/test_rules.py | 21 +++--- 11 files changed, 166 insertions(+), 70 deletions(-) create mode 100644 changelogs/v0.26.x.md diff --git a/CHANGELOG.md b/CHANGELOG.md index b3d83d6..d08fa28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,68 +11,18 @@ Versions follow [Semantic Versioning](https://semver.org/). ## [Unreleased] -## [0.26.5] - 2026-07-29 - -### Fixed -- **Supply Chain Integrity**: Emergency patch to replace a dirty build artifact published to PyPI in `v0.26.4`. No functional code changes. - - -## [0.26.4] - 2026-07-29 - -### Fixed - -- **LSP State Hygiene (`LSP-FIX-017`)**: Eradicated a race condition that caused "ghost diagnostics" to persist in the editor after a file or directory was deleted. The server now maintains a stateful tracker (`self.file_diagnostics`) and explicitly broadcasts empty diagnostic arrays (`[]`) for any URI that no longer exists in the Virtual Site Map. -- **Inline Suppression Placement (`LSP-FIX-018`)**: Fixed a bug where the "Suppress this finding" Code Action injected the suppression comment on a new line, causing false-positive `Z603` (Dead Suppression) errors. The action now correctly appends the comment to the end of the offending line. - -## [0.26.3] - 2026-07-28 - ### Added -- **Suppression Code Actions (`LSP-FEAT-003`)**: The LSP server now dynamically generates "Suppress this finding" Code Actions for all suppressible diagnostics. Clicking the action automatically injects the correct `` comment above the offending line. This feature is strictly disabled for `NON_SUPPRESSIBLE_CODES` (Z2xx Security findings) to enforce the security gate. - -### Fixed - -- **LSP State Hygiene (`LSP-FIX-015`)**: Eradicated "ghost diagnostics" by ensuring the LSP server explicitly sends an empty diagnostics array (`[]`) to VS Code when a file is deleted, clearing the PROBLEMS panel. -- **Code Action Routing (`LSP-FIX-016`)**: Fixed a routing bug in the LSP server that prevented Quick Fixes for `Z108` (Empty Link Text) and `Z505` (Untagged Code Block) from appearing in the editor. -- **Z603 Parity (`LSP-FIX-015`)**: Ensured HTML comment suppressions (``) are correctly evaluated for "dead" status in the LSP engine. - -## [0.26.2] - 2026-07-28 - -### Fixed - -- **Extensionless Asset Resolution**: Fixed a bug in `VSMBrokenLinkRule._to_canonical_url` where extensionless files (e.g., `LICENSE`, `Makefile`) incorrectly received a trailing slash when `use_directory_urls` was active, causing false-positive `Z101` findings. - -## [0.26.1] - 2026-07-27 - -### Added - -- **Adapter API Contract (`CORE-FIX-005`)**: Added the `use_directory_urls` property to the `BaseAdapter` contract. This allows adapters to explicitly declare their URL routing mode, eradicating encapsulation violations in the incremental engine. - -### Fixed - -- **URP Unification (`CORE-REFACTOR-003`)**: Eradicated the legacy CLI link validation pipeline (`validate_links_async`). Both CLI and LSP now evaluate broken internal links exclusively via `VSMBrokenLinkRule.check_vsm` and `PolyglotExtractor`, achieving 100% true validation parity. -- **Asset Indexing Parity (`CORE-REFACTOR-006`)**: Upgraded the Virtual Site Map (VSM) builder to explicitly index non-Markdown static assets (e.g., `.png`, `.webp`, `.html`). This eradicates hardcoded directory workarounds and eliminates false-positive `Z101` and `Z104` findings for static assets across all adapters. -- **JSON Purity (`CLI-FIX-001`)**: Enforced absolute JSON purity when the `--json` flag is active by routing `fail_under` and `suppression_cap` failure messages to `stderr`. This prevents `JSON.parse()` failures in programmatic consumers. -- **MkDocs Asset URLs (`CORE-FIX-002`)**: Eradicated false-positive `Z101` findings for static assets in MkDocs repositories by preventing the `MkDocsAdapter` from appending trailing slashes to non-Markdown files during VSM route generation. - -### Documentation - -- **Blog Hero Image Standardization**: Added named hero assets for existing release posts, converted launch media from JPEG to WebP, and normalized hero-image alt text to a title-aligned editorial pattern across the blog. -- **Editor Trilogy Article**: Added `docs/blog/posts/2026-07-27-editor-trilogy-v0240-v0260.md`, a Hostile Precision architectural synthesis of the v0.24.0 → v0.26.0 editor sequence, using the previously policy-exempt trilogy hero asset as an in-site referenced image. - -## [0.26.0] - 2026-07-26 - -### Added - -- **CLI `--json` Shorthand Alias (`ECOSYSTEM-FEAT-002`)**: Added `--json` flag to `zenzic score` as an ergonomic shorthand for `--format json`. Emits a single deterministic `ScoreReport` JSON object on `stdout` without rich terminal formatting, designed for programmatic consumers and editor integrations. - -### Documentation - -- **CLI Reference Mirror Law Realignment (`ADR-020`)**: Updated `docs/reference/cli.md` with `--json` flag specifications, complete `zenzic score` flag table, and JSON Output Schema documentation. -- **Roadmap Realignment (`ROADMAP-ALIGN-004`)**: Realigned `ROADMAP.md` to establish `[v0.26]` as *DQS Workspace UI*, shifting subsequent platform milestones (`v0.27`–`v0.30`). +- **Smart Link Graph (`V0.27-01`)**: Transformed the Virtual Site Map (VSM) into a Smart Link Graph that tracks deterministic adjacency lists for outgoing links across document nodes. +- **Topological Graph Rules (`Z410`, `Z411`)**: + - `Z410` (UNREACHABLE_GRAPH_NODE): Emitted when a document exists in the workspace but is unreachable from navigation entry points via BFS traversal. + - `Z411` (DEAD_END_NODE): Emitted when a document has zero outgoing links, stranding readers. +- **Batch Engine Parity**: Integrated topological analysis into the batch scanner pipeline (`scanner.py`), ensuring complete validation parity between CLI batch audits and real-time LSP diagnostics. ## Historical Releases +- v0.26.x archive: [changelogs/v0.26.x.md](./changelogs/v0.26.x.md) + - v0.25.x archive: [changelogs/v0.25.x.md](./changelogs/v0.25.x.md) - v0.24.x archive: [changelogs/v0.24.x.md](./changelogs/v0.24.x.md) - v0.23.x archive: [changelogs/v0.23.x.md](./changelogs/v0.23.x.md) diff --git a/changelogs/v0.26.x.md b/changelogs/v0.26.x.md new file mode 100644 index 0000000..68c439b --- /dev/null +++ b/changelogs/v0.26.x.md @@ -0,0 +1,64 @@ + + + +# v0.26.x Archive + +## [0.26.5] - 2026-07-29 + +### Fixed +- **Supply Chain Integrity**: Emergency patch to replace a dirty build artifact published to PyPI in `v0.26.4`. No functional code changes. + + +## [0.26.4] - 2026-07-29 + +### Fixed + +- **LSP State Hygiene (`LSP-FIX-017`)**: Eradicated a race condition that caused "ghost diagnostics" to persist in the editor after a file or directory was deleted. The server now maintains a stateful tracker (`self.file_diagnostics`) and explicitly broadcasts empty diagnostic arrays (`[]`) for any URI that no longer exists in the Virtual Site Map. +- **Inline Suppression Placement (`LSP-FIX-018`)**: Fixed a bug where the "Suppress this finding" Code Action injected the suppression comment on a new line, causing false-positive `Z603` (Dead Suppression) errors. The action now correctly appends the comment to the end of the offending line. + +## [0.26.3] - 2026-07-28 + +### Added + +- **Suppression Code Actions (`LSP-FEAT-003`)**: The LSP server now dynamically generates "Suppress this finding" Code Actions for all suppressible diagnostics. Clicking the action automatically injects the correct `` comment above the offending line. This feature is strictly disabled for `NON_SUPPRESSIBLE_CODES` (Z2xx Security findings) to enforce the security gate. + +### Fixed + +- **LSP State Hygiene (`LSP-FIX-015`)**: Eradicated "ghost diagnostics" by ensuring the LSP server explicitly sends an empty diagnostics array (`[]`) to VS Code when a file is deleted, clearing the PROBLEMS panel. +- **Code Action Routing (`LSP-FIX-016`)**: Fixed a routing bug in the LSP server that prevented Quick Fixes for `Z108` (Empty Link Text) and `Z505` (Untagged Code Block) from appearing in the editor. +- **Z603 Parity (`LSP-FIX-015`)**: Ensured HTML comment suppressions (``) are correctly evaluated for "dead" status in the LSP engine. + +## [0.26.2] - 2026-07-28 + +### Fixed + +- **Extensionless Asset Resolution**: Fixed a bug in `VSMBrokenLinkRule._to_canonical_url` where extensionless files (e.g., `LICENSE`, `Makefile`) incorrectly received a trailing slash when `use_directory_urls` was active, causing false-positive `Z101` findings. + +## [0.26.1] - 2026-07-27 + +### Added + +- **Adapter API Contract (`CORE-FIX-005`)**: Added the `use_directory_urls` property to the `BaseAdapter` contract. This allows adapters to explicitly declare their URL routing mode, eradicating encapsulation violations in the incremental engine. + +### Fixed + +- **URP Unification (`CORE-REFACTOR-003`)**: Eradicated the legacy CLI link validation pipeline (`validate_links_async`). Both CLI and LSP now evaluate broken internal links exclusively via `VSMBrokenLinkRule.check_vsm` and `PolyglotExtractor`, achieving 100% true validation parity. +- **Asset Indexing Parity (`CORE-REFACTOR-006`)**: Upgraded the Virtual Site Map (VSM) builder to explicitly index non-Markdown static assets (e.g., `.png`, `.webp`, `.html`). This eradicates hardcoded directory workarounds and eliminates false-positive `Z101` and `Z104` findings for static assets across all adapters. +- **JSON Purity (`CLI-FIX-001`)**: Enforced absolute JSON purity when the `--json` flag is active by routing `fail_under` and `suppression_cap` failure messages to `stderr`. This prevents `JSON.parse()` failures in programmatic consumers. +- **MkDocs Asset URLs (`CORE-FIX-002`)**: Eradicated false-positive `Z101` findings for static assets in MkDocs repositories by preventing the `MkDocsAdapter` from appending trailing slashes to non-Markdown files during VSM route generation. + +### Documentation + +- **Blog Hero Image Standardization**: Added named hero assets for existing release posts, converted launch media from JPEG to WebP, and normalized hero-image alt text to a title-aligned editorial pattern across the blog. +- **Editor Trilogy Article**: Added `docs/blog/posts/2026-07-27-editor-trilogy-v0240-v0260.md`, a Hostile Precision architectural synthesis of the v0.24.0 → v0.26.0 editor sequence, using the previously policy-exempt trilogy hero asset as an in-site referenced image. + +## [0.26.0] - 2026-07-26 + +### Added + +- **CLI `--json` Shorthand Alias (`ECOSYSTEM-FEAT-002`)**: Added `--json` flag to `zenzic score` as an ergonomic shorthand for `--format json`. Emits a single deterministic `ScoreReport` JSON object on `stdout` without rich terminal formatting, designed for programmatic consumers and editor integrations. + +### Documentation + +- **CLI Reference Mirror Law Realignment (`ADR-020`)**: Updated `docs/reference/cli.md` with `--json` flag specifications, complete `zenzic score` flag table, and JSON Output Schema documentation. +- **Roadmap Realignment (`ROADMAP-ALIGN-004`)**: Realigned `ROADMAP.md` to establish `[v0.26]` as *DQS Workspace UI*, shifting subsequent platform milestones (`v0.27`–`v0.30`). diff --git a/examples/z107-circular-anchor/docs/guide.md b/examples/z107-circular-anchor/docs/guide.md index f1b60d0..a6df01a 100644 --- a/examples/z107-circular-anchor/docs/guide.md +++ b/examples/z107-circular-anchor/docs/guide.md @@ -16,3 +16,4 @@ This page contains a self-referential anchor link: [Setup](#setup) ## Next Steps After completing setup, proceed to the tutorial section for hands-on examples. +See [Guide](guide.md). diff --git a/examples/z401-missing-directory-index/docs/guide/page.md b/examples/z401-missing-directory-index/docs/guide/page.md index ec16816..63e3a0e 100644 --- a/examples/z401-missing-directory-index/docs/guide/page.md +++ b/examples/z401-missing-directory-index/docs/guide/page.md @@ -11,3 +11,4 @@ The installation takes approximately two minutes on a standard connection. Ensure you have Python 3.10 or higher and pip installed on your system before proceeding with the installation steps described in this document. +See [Installation Guide](page.md). diff --git a/examples/z404-config-asset-missing/docs/index.md b/examples/z404-config-asset-missing/docs/index.md index 4475b3f..9d3bae1 100644 --- a/examples/z404-config-asset-missing/docs/index.md +++ b/examples/z404-config-asset-missing/docs/index.md @@ -14,3 +14,4 @@ Zenzic to ensure link integrity and documentation quality standards are met. ## Get Started Follow the quick start guide to set up your environment and run your first check. +See [Index](index.md). diff --git a/examples/z406-nav-contract/docs/index.md b/examples/z406-nav-contract/docs/index.md index 4475b3f..9d3bae1 100644 --- a/examples/z406-nav-contract/docs/index.md +++ b/examples/z406-nav-contract/docs/index.md @@ -14,3 +14,4 @@ Zenzic to ensure link integrity and documentation quality standards are met. ## Get Started Follow the quick start guide to set up your environment and run your first check. +See [Index](index.md). diff --git a/src/zenzic/cli/_lab.py b/src/zenzic/cli/_lab.py index 0f80194..a33a760 100644 --- a/src/zenzic/cli/_lab.py +++ b/src/zenzic/cli/_lab.py @@ -613,7 +613,7 @@ def _print_gallery_index() -> None: table.add_column("Title", style="bold", min_width=22) table.add_column("Description", style=ZenzicPalette.WARNING) table.add_column("Expects", justify="center", min_width=8) - for act in _GALLERY.values(): + for act in sorted(_GALLERY.values(), key=lambda a: a.code): expects = "[red]BREACH[/]" if act.expected_breach else "[yellow]FAIL[/]" table.add_row(act.code.upper(), act.title, act.description, expects) con.print(table) diff --git a/src/zenzic/core/adapters/_standalone.py b/src/zenzic/core/adapters/_standalone.py index 221f06c..6e7aabf 100644 --- a/src/zenzic/core/adapters/_standalone.py +++ b/src/zenzic/core/adapters/_standalone.py @@ -137,6 +137,6 @@ def get_absolute_url_prefixes(self, repo_root: Path | None = None) -> list[str]: """Standalone mode owns no absolute URL prefixes.""" return [] - def get_entry_points(self, vsm: 'VirtualSiteMap') -> list[str]: # noqa: ARG002 - """Standalone mode defaults to the root URL.""" - return ["/"] + def get_entry_points(self, vsm: VirtualSiteMap) -> list[str]: + """Standalone mode has no nav tree; all routes are entry points.""" + return list(vsm.keys()) diff --git a/src/zenzic/core/scanner.py b/src/zenzic/core/scanner.py index 8fe5bc1..1bbfd15 100644 --- a/src/zenzic/core/scanner.py +++ b/src/zenzic/core/scanner.py @@ -1128,6 +1128,15 @@ def _run_vsm_and_urp_pass( static_assets=static_assets, ) + orphaned_urls: set[str] = set() + dead_end_urls: set[str] = set() + if hasattr(adapter, "get_entry_points"): + from zenzic.core.topology import detect_dead_ends, detect_orphans + + entry_points = adapter.get_entry_points(vsm) + orphaned_urls = set(detect_orphans(vsm, entry_points)) + dead_end_urls = set(detect_dead_ends(vsm)) + links_cache: dict[Path, list[LinkInfo]] = { f: [ LinkInfo( @@ -1200,6 +1209,45 @@ def _run_vsm_and_urp_pass( r.rule_findings.extend(active_vsm) r.rule_findings.extend(active_urp) + try: + rel_posix = r.file_path.relative_to(docs_root).as_posix() + except ValueError: + rel_posix = r.file_path.absolute().as_posix() + canonical_url = next( + (route.url for route in vsm.values() if route.source == rel_posix), "" + ) + if canonical_url: + if canonical_url in orphaned_urls: + if ( + r.suppression_tracker is None + or not r.suppression_tracker.is_suppressed(1, "Z410") + ): + r.rule_findings.append( + RuleFinding( + r.file_path, + 1, + "Z410", + f"Document is isolated and unreachable from defined entry points: '{canonical_url}'", + severity="warning", + matched_line="", + ) + ) + if canonical_url in dead_end_urls: + if ( + r.suppression_tracker is None + or not r.suppression_tracker.is_suppressed(1, "Z411") + ): + r.rule_findings.append( + RuleFinding( + r.file_path, + 1, + "Z411", + f"Document has no outgoing links and forms a structural dead end: '{canonical_url}'", + severity="warning", + matched_line="", + ) + ) + if cycle_nodes and r.file_path in links_cache: for link in links_cache[r.file_path]: if not link.url.startswith(("http://", "https://", "mailto:", "#")): diff --git a/tests/test_gallery_phase2bc.py b/tests/test_gallery_phase2bc.py index f3a7ac5..33b5726 100644 --- a/tests/test_gallery_phase2bc.py +++ b/tests/test_gallery_phase2bc.py @@ -79,6 +79,33 @@ def test_z411_registered_in_gallery() -> None: assert "z411" in _GALLERY +def test_all_active_codes_covered_in_gallery() -> None: + from zenzic.core.codes import CODE_DEFINITIONS + + # Non-scannable internal, governance, or system escalation codes + INTERNAL_CODES = { + "z000", + "z106", + "z111", + "z112", + "z113", + "z114", + "z203", + "z504", + "z506", + "z901", + "z902", + "z906", + } + + active_codes = { + code.lower() for code in CODE_DEFINITIONS if code.lower() not in INTERNAL_CODES + } + gallery_codes = set(_GALLERY.keys()) + missing = active_codes - gallery_codes + assert not missing, f"Missing lab scenarios for active codes: {sorted(missing)}" + + # ── Fixture directory existence ─────────────────────────────────────────────── diff --git a/tests/test_rules.py b/tests/test_rules.py index f756207..67a88b9 100644 --- a/tests/test_rules.py +++ b/tests/test_rules.py @@ -245,8 +245,9 @@ def test_scan_docs_with_custom_rules_from_config(tmp_path: Path) -> None: mgr = make_mgr(config, repo_root=tmp_path) reports, _ = scan_docs_references(docs_root, mgr, config=config) assert len(reports) == 1 - assert len(reports[0].rule_findings) == 1 - assert reports[0].rule_findings[0].rule_id == "ZZ-DRAFT" + draft_findings = [f for f in reports[0].rule_findings if f.rule_id == "ZZ-DRAFT"] + assert len(draft_findings) == 1 + assert draft_findings[0].rule_id == "ZZ-DRAFT" def test_build_rule_engine_always_built() -> None: @@ -285,8 +286,10 @@ def test_scan_docs_with_enabled_plugins_from_config(tmp_path: Path) -> None: reports, _ = scan_docs_references(docs_root, mgr, config=config) assert len(reports) == 1 - assert len(reports[0].rule_findings) == 1 - assert reports[0].rule_findings[0].rule_id == "PLUG-TODO" + plugin_findings = [f for f in reports[0].rule_findings if f.rule_id == "PLUG-TODO"] + assert len(plugin_findings) == 1 + assert plugin_findings[0].rule_id == "PLUG-TODO" + assert plugin_findings[0].message == "Plugin TODO marker found." def test_scan_docs_with_unknown_plugin_raises_contract_error(tmp_path: Path) -> None: @@ -391,12 +394,12 @@ def test_custom_rules_fire_regardless_of_engine( mgr = make_mgr(config, repo_root=repo) reports, _ = scan_docs_references(docs_root, mgr, config=config) assert len(reports) == 1, f"Expected 1 report for engine={engine!r}" - rule_findings = reports[0].rule_findings - assert len(rule_findings) == 1, ( - f"Expected 1 rule finding for engine={engine!r}, got {rule_findings}" + draft_findings = [f for f in reports[0].rule_findings if f.rule_id == "ZZ-DRAFT"] + assert len(draft_findings) == 1, ( + f"Expected 1 ZZ-DRAFT finding for engine={engine!r}, got {reports[0].rule_findings}" ) - assert rule_findings[0].rule_id == "ZZ-DRAFT" - assert rule_findings[0].is_error + assert draft_findings[0].rule_id == "ZZ-DRAFT" + assert draft_findings[0].is_error # ─── Violation dataclass ────────────────────────────────────────────────────── From b59b3fe1c3fc9873ee3b26e0942050830df36f51 Mon Sep 17 00:00:00 2001 From: PythonWoods Date: Sat, 1 Aug 2026 17:45:28 +0200 Subject: [PATCH 06/17] feat(core): implement baseline & regression tracking engine Introduce BaselineManager and compute_finding_signature for line-shift invariant SHA-256 finding matching (.zenzic-baseline.json). Add --update-baseline and --baseline flags to zenzic check all. Enforce anti-regression DQS exit code logic and tag findings with is_baselined (Radical Unawareness). Add JSON schema, docs, and tests. Signed-off-by: PythonWoods --- CHANGELOG.md | 2 +- README.md | 2 +- docs/explanation/baseline-tracking.md | 70 ++++++++++ mkdocs.yml | 1 + src/zenzic/cli/_check.py | 180 ++++++++++++++++---------- src/zenzic/core/baseline.py | 152 ++++++++++++++++++++++ src/zenzic/core/reporter.py | 4 +- tests/test_baseline.py | 105 +++++++++++++++ zenzic-baseline.schema.json | 51 ++++++++ 9 files changed, 498 insertions(+), 69 deletions(-) create mode 100644 docs/explanation/baseline-tracking.md create mode 100644 src/zenzic/core/baseline.py create mode 100644 tests/test_baseline.py create mode 100644 zenzic-baseline.schema.json diff --git a/CHANGELOG.md b/CHANGELOG.md index d08fa28..2b74a1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,7 @@ Versions follow [Semantic Versioning](https://semver.org/). - **Topological Graph Rules (`Z410`, `Z411`)**: - `Z410` (UNREACHABLE_GRAPH_NODE): Emitted when a document exists in the workspace but is unreachable from navigation entry points via BFS traversal. - `Z411` (DEAD_END_NODE): Emitted when a document has zero outgoing links, stranding readers. -- **Batch Engine Parity**: Integrated topological analysis into the batch scanner pipeline (`scanner.py`), ensuring complete validation parity between CLI batch audits and real-time LSP diagnostics. +- **Baseline & Regression Tracking (`V0.27-02`)**: Added deterministic snapshot baseline capability (`.zenzic-baseline.json`) via `--update-baseline` and `--baseline` CLI options. Computes line-shift invariant SHA-256 signatures for finding matching, tags baselined findings without dropping them (`Radical Unawareness`), and enforces DQS anti-regression exit rules in CI/CD. ## Historical Releases diff --git a/README.md b/README.md index 31f348b..e01eaf0 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ Zenzic detects broken links, orphaned pages, credential leaks, and structural in Zenzic is a unified, deterministic platform structured into three primary delivery mechanisms: -- **[Core Engine (CLI)](#-installation)**: Python CLI, AST rule engine, and Virtual Site Map (VSM) topology analyzer. +- **[Core Engine (CLI)](#-installation)**: Python CLI, AST rule engine, Virtual Site Map (VSM) topology analyzer, and **Baseline & Regression Tracking** (`.zenzic-baseline.json`). - **[VS Code Extension][zenzic-vscode]**: Real-time LSP client offering sub-50ms inline diagnostics, Quick Fixes, and DQS scoring. - **[GitHub Action][zenzic-action]**: Zero-config CI/CD quality gate with SARIF upload and PR annotations. diff --git a/docs/explanation/baseline-tracking.md b/docs/explanation/baseline-tracking.md new file mode 100644 index 0000000..d00b7df --- /dev/null +++ b/docs/explanation/baseline-tracking.md @@ -0,0 +1,70 @@ +--- +title: Baseline & Regression Tracking +description: Snapshot existing technical debt into .zenzic-baseline.json to prevent quality regressions in CI/CD pipelines. +--- + +# Baseline & Regression Tracking + +Zenzic provides an anti-regression engine that captures existing technical debt into a deterministic snapshot file (`.zenzic-baseline.json`). This allows engineering teams to adopt strict Quality Gates without being blocked by legacy documentation debt. + +## Core Concepts + +### 1. Deterministic Cryptographic Signatures +Findings are matched across runs using a deterministic SHA-256 signature (`SHA-256(RuleCode + PosixPath + ContextTarget)`). + +- **Line-Number Invariant**: Line numbers are intentionally excluded from the signature. Adding, deleting, or moving lines above a finding will **not** invalidate its baseline match. +- **Context Specificity**: Differentiates distinct defects in the same file (such as two broken links pointing to different targets). + +### 2. Radical Unawareness (ADR-075) +The Core Engine does not drop baselined findings; it flags them with `is_baselined: true`. This allows editor integrations (LSP) and reports to display existing debt transparently while allowing the CLI to enforce anti-regression exit rules. + +--- + +## Command Line Usage + +### Creating or Updating a Baseline +To capture current findings and Document Quality Score (DQS) into `.zenzic-baseline.json`: + +```bash +zenzic check all --update-baseline +``` + +This creates a human-readable JSON snapshot: + +```json +{ + "$schema": "https://zenzic.dev/schemas/zenzic-baseline.schema.json", + "version": "1.0", + "created_at": "2026-08-01T17:40:00Z", + "score": 85.0, + "findings_count": 3, + "signatures": [ + "7a2b9f1c3d4e5f6a", + "8b3c0d2e4f5a6b7c", + "9c4d1e3f5a6b7c8d" + ], + "metadata": { + "zenzic_version": "0.27.0" + } +} +``` + +### Consuming a Baseline in CI/CD +When `.zenzic-baseline.json` exists in your workspace root, `zenzic check` automatically loads it: + +```bash +zenzic check all +``` + +You can also pass a custom baseline file: + +```bash +zenzic check all --baseline ci-baseline.json +``` + +### CI Exit Code Logic +When a baseline is active: +- **Exit 0**: All active defects are present in the baseline snapshot and current DQS score $\ge$ baseline score. +- **Exit 1**: A new defect is introduced OR current DQS score drops below the baseline score. +- **Resolution Hint**: If baselined issues are fixed, Zenzic displays a hint suggesting to refresh the baseline: + `💡 2 baselined issues resolved! Run 'zenzic check --update-baseline' to refresh baseline.` diff --git a/mkdocs.yml b/mkdocs.yml index a51ed9f..2d418ce 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -114,6 +114,7 @@ nav: - Core Mechanics: explanation/core-mechanics.md - Scoring Design: explanation/scoring-design.md - Scoring System: explanation/scoring-system.md + - Baseline Tracking: explanation/baseline-tracking.md - Discovery Engine: explanation/discovery.md - Configuration Loading: explanation/configuration-loading.md - Exclusion Design: explanation/exclusion-design.md diff --git a/src/zenzic/cli/_check.py b/src/zenzic/cli/_check.py index 1767da6..202a9e6 100644 --- a/src/zenzic/cli/_check.py +++ b/src/zenzic/cli/_check.py @@ -15,6 +15,7 @@ from zenzic.core.adapters import get_adapter from zenzic.core.adapters._mkdocs import check_config_assets as _mkdocs_check_assets from zenzic.core.adapters._zensical import check_config_assets as _zensical_check_assets +from zenzic.core.baseline import DEFAULT_BASELINE_FILE, BaselineManager from zenzic.core.codes import CODE_DEFINITIONS from zenzic.core.exclusion import LayeredExclusionManager from zenzic.core.reporter import Finding, ZenzicReporter @@ -1395,6 +1396,16 @@ def check_all( "--no-header", help="Suppress the Zenzic ASCII art header.", ), + update_baseline: bool = typer.Option( + False, + "--update-baseline", + help="Generate or overwrite the baseline snapshot file (.zenzic-baseline.json).", + ), + baseline: str | None = typer.Option( + None, + "--baseline", + help="Path to a baseline snapshot file to consume (defaults to .zenzic-baseline.json if present in workspace root).", + ), ) -> None: """Run all checks: links, orphans, snippets, placeholders, assets, references. @@ -1523,15 +1534,54 @@ def check_all( elapsed = time.monotonic() - t0 - if output_format == "json": - with sovereign_context(force_audit=audit): - all_findings = _to_findings(results, docs_root, repo_root, config) - all_findings = _apply_per_file_ignores(all_findings, config) - all_findings = _apply_directory_policies(all_findings, config) - _append_z118_findings( - all_findings, config, repo_root, check_all=True, check_external_urls=True + with sovereign_context(force_audit=audit): + all_findings = _to_findings(results, docs_root, repo_root, config) + all_findings = _apply_per_file_ignores(all_findings, config) + all_findings = _apply_directory_policies(all_findings, config) + _append_z118_findings( + all_findings, config, repo_root, check_all=True, check_external_urls=True + ) + + if _single_file is not None: + _sf_rel = str(_single_file.relative_to(repo_root)) + all_findings = [f for f in all_findings if f.rel_path == _sf_rel] + + # ── Baseline Handling ────────────────────────────────────────────────────── + baseline_file_path = Path(baseline) if baseline else (repo_root / DEFAULT_BASELINE_FILE) + + _findings_counts: dict[str, int] = {} + for _f in all_findings: + _findings_counts[_f.code] = _findings_counts.get(_f.code, 0) + 1 + _score_report = compute_score( + _findings_counts, + suppression_count=suppression_audit.total, + suppression_cap=suppression_audit.cap, + ) + + if update_baseline: + bdata = BaselineManager.create_baseline( + _score_report.score, all_findings, version_str=__version__ + ) + BaselineManager.save_baseline(bdata, baseline_file_path) + if not quiet and output_format == "text": + _shared.console.print( + f"[bold green]✓ Baseline snapshot saved to {baseline_file_path.name}[/bold green] " + f"[{ZenzicPalette.DIM}](score: {_score_report.score}/100, {len(bdata.signatures)} finding{'s' if len(bdata.signatures) != 1 else ''})[/]" ) + active_baseline = None + if baseline_file_path.is_file(): + try: + active_baseline = BaselineManager.load_baseline(baseline_file_path) + BaselineManager.apply_baseline(all_findings, active_baseline) + except Exception as exc: + if baseline is not None: + typer.echo(f"ERROR: Failed to load baseline '{baseline_file_path}': {exc}", err=True) + raise typer.Exit(1) + + elapsed = time.monotonic() - t0 + + if output_format == "json": _shared._output_check_all_json_findings( results, all_findings, repo_root, docs_root, config, suppression_audit ) @@ -1542,18 +1592,17 @@ def check_all( breaches = sum(1 for f in all_findings if f.severity == "security_breach") if breaches: raise typer.Exit(2) - errors_count = sum(1 for f in all_findings if f.severity == "error") - if errors_count and not effective_exit_zero: - raise typer.Exit(1) + + if active_baseline is not None and not effective_exit_zero: + unbaselined = sum(1 for f in all_findings if not f.is_baselined and f.severity == "error") + if unbaselined or _score_report.score < active_baseline.score: + raise typer.Exit(1) + elif not effective_exit_zero: + errors_count = sum(1 for f in all_findings if f.severity == "error") + if errors_count: + raise typer.Exit(1) return elif output_format == "sarif": - with sovereign_context(force_audit=audit): - all_findings = _to_findings(results, docs_root, repo_root, config) - all_findings = _apply_per_file_ignores(all_findings, config) - all_findings = _apply_directory_policies(all_findings, config) - _append_z118_findings( - all_findings, config, repo_root, check_all=True, check_external_urls=True - ) _shared._output_sarif_findings(all_findings, __version__) incidents = sum(1 for f in all_findings if f.severity == "security_incident") if incidents: @@ -1561,22 +1610,17 @@ def check_all( breaches = sum(1 for f in all_findings if f.severity == "security_breach") if breaches: raise typer.Exit(2) - errors_count = sum(1 for f in all_findings if f.severity == "error") - if errors_count and not effective_exit_zero: - raise typer.Exit(1) + + if active_baseline is not None and not effective_exit_zero: + unbaselined = sum(1 for f in all_findings if not f.is_baselined and f.severity == "error") + if unbaselined or _score_report.score < active_baseline.score: + raise typer.Exit(1) + elif not effective_exit_zero: + errors_count = sum(1 for f in all_findings if f.severity == "error") + if errors_count: + raise typer.Exit(1) return elif output_format == "github-annotations": - with sovereign_context(force_audit=audit): - all_findings = _to_findings(results, docs_root, repo_root, config) - all_findings = _apply_per_file_ignores(all_findings, config) - all_findings = _apply_directory_policies(all_findings, config) - _append_z118_findings( - all_findings, config, repo_root, check_all=True, check_external_urls=True - ) - if _single_file is not None: - _sf_rel = str(_single_file.relative_to(repo_root)) - all_findings = [f for f in all_findings if f.rel_path == _sf_rel] - _shared._output_github_annotations(all_findings) incidents = sum(1 for f in all_findings if f.severity == "security_incident") @@ -1586,29 +1630,22 @@ def check_all( if breaches: raise typer.Exit(2) - errors_count = sum(1 for f in all_findings if f.severity == "error") - warnings_count = sum(1 for f in all_findings if f.severity == "warning") - if ( - errors_count > 0 or (effective_strict and warnings_count > 0) - ) and not effective_exit_zero: - raise typer.Exit(1) + if active_baseline is not None and not effective_exit_zero: + unbaselined = sum( + 1 for f in all_findings + if not f.is_baselined and (f.severity == "error" or (effective_strict and f.severity == "warning")) + ) + if unbaselined or _score_report.score < active_baseline.score: + raise typer.Exit(1) + elif not effective_exit_zero: + errors_count = sum(1 for f in all_findings if f.severity == "error") + warnings_count = sum(1 for f in all_findings if f.severity == "warning") + if errors_count > 0 or (effective_strict and warnings_count > 0): + raise typer.Exit(1) return - with sovereign_context(force_audit=audit): - all_findings = _to_findings(results, docs_root, repo_root, config) - all_findings = _apply_per_file_ignores(all_findings, config) - all_findings = _apply_directory_policies(all_findings, config) - _append_z118_findings( - all_findings, config, repo_root, check_all=True, check_external_urls=True - ) - - if _single_file is not None: - _sf_rel = str(_single_file.relative_to(repo_root)) - all_findings = [f for f in all_findings if f.rel_path == _sf_rel] - - reporter = ZenzicReporter(_shared.console, docs_root, docs_dir=str(config.docs_dir)) - if quiet: + reporter = ZenzicReporter(_shared.console, docs_root, docs_dir=str(config.docs_dir)) errors, warnings = reporter.render_quiet(all_findings) else: docs_count, assets_count = _shared._count_docs_assets( @@ -1617,8 +1654,6 @@ def check_all( if _single_file is not None: docs_count, assets_count = 1, 0 - # Z906 guardrail: if the target contains zero Markdown sources, inform - # the user with an amber warning and exit cleanly (not a system error). if docs_count == 0 and _single_file is None: _target_display = _target_hint or "./" _shared.console.print( @@ -1635,15 +1670,20 @@ def check_all( f"Credential scanner (Z201) remains active.[/]" ) - # ── DQS Score injection ──────────────────────────────────────────── - _findings_counts: dict[str, int] = {} - for _f in all_findings: - _findings_counts[_f.code] = _findings_counts.get(_f.code, 0) + 1 - _score_report = compute_score( - _findings_counts, - suppression_count=suppression_audit.total, - suppression_cap=suppression_audit.cap, - ) + if active_baseline is not None: + baselined_cnt = sum(1 for f in all_findings if f.is_baselined) + new_cnt = sum(1 for f in all_findings if not f.is_baselined) + fixed_cnt = max(0, active_baseline.findings_count - baselined_cnt) + _footer_lines.append( + f"[{ZenzicPalette.DIM}]Baseline: {active_baseline.score}/100 " + f"({baselined_cnt} baselined, {new_cnt} new)[/]" + ) + if fixed_cnt > 0: + _footer_lines.append( + f"[{ZenzicPalette.SUCCESS}]💡 {fixed_cnt} baselined issue{'s' if fixed_cnt != 1 else ''} resolved! " + f"Run 'zenzic check --update-baseline' to refresh baseline.[/]" + ) + if _score_report.security_override: _dqs_line = ( f"[bold red]DQS Final Score: 0/100[/bold red] " @@ -1669,6 +1709,7 @@ def check_all( ) _footer_lines.insert(0, _dqs_line) + reporter = ZenzicReporter(_shared.console, docs_root, docs_dir=str(config.docs_dir)) errors, warnings = reporter.render( all_findings, version=__version__, @@ -1692,8 +1733,15 @@ def check_all( if breaches: raise typer.Exit(2) - has_failures = (errors > 0) or (effective_strict and warnings > 0) - - if has_failures: - if not effective_exit_zero: + if active_baseline is not None: + unbaselined_defects = sum( + 1 for f in all_findings + if not f.is_baselined and (f.severity == "error" or (effective_strict and f.severity == "warning")) + ) + score_regressed = _score_report.score < active_baseline.score + if (score_regressed or unbaselined_defects > 0) and not effective_exit_zero: + raise typer.Exit(1) + else: + has_failures = (errors > 0) or (effective_strict and warnings > 0) + if has_failures and not effective_exit_zero: raise typer.Exit(1) diff --git a/src/zenzic/core/baseline.py b/src/zenzic/core/baseline.py new file mode 100644 index 0000000..f36d5b4 --- /dev/null +++ b/src/zenzic/core/baseline.py @@ -0,0 +1,152 @@ +# SPDX-FileCopyrightText: 2026 PythonWoods +# SPDX-License-Identifier: Apache-2.0 +"""Baseline & Regression Tracking Engine for Zenzic. + +Enables capturing existing technical debt into a deterministic baseline file +(.zenzic-baseline.json), matching subsequent run findings against the baseline, +and flagging baselined vs new findings without line-number sensitivity. +""" + +from __future__ import annotations + +import hashlib +import json +import re +from dataclasses import dataclass, field +from datetime import datetime, timezone +from pathlib import Path +from typing import TYPE_CHECKING, Any + +if TYPE_CHECKING: + from zenzic.core.reporter import Finding + +BASELINE_SCHEMA_VERSION = "1.0" +DEFAULT_BASELINE_FILE = ".zenzic-baseline.json" + + +def compute_finding_signature( + code: str, + rel_path: str, + match_text: str = "", + message: str = "", +) -> str: + """Compute a deterministic SHA-256 signature for a finding. + + Resilient to line-number shifts. Computed as SHA-256 over: + Normalized(RuleCode) + ":" + PosixRelativePath + ":" + ContextTarget + + Target context extraction: + 1. Uses match_text if non-empty. + 2. Otherwise extracts quoted entities from message (e.g., target URLs or file paths). + 3. Falls back to normalized message if no quoted entities are found. + + Args: + code: Rule code (e.g. "Z410", "Z101"). + rel_path: POSIX relative file path. + match_text: Explicit matched text snippet if available. + message: Diagnostic finding message. + + Returns: + 16-character hex hash string. + """ + norm_code = code.strip().upper() + norm_path = Path(rel_path).as_posix().lstrip("./") + + if match_text and match_text.strip(): + context_target = match_text.strip() + else: + quotes = re.findall(r"['\"]([^'\"]+)['\"]", message) + if quotes: + context_target = ":".join(quotes) + else: + context_target = message.strip() + + payload = f"{norm_code}:{norm_path}:{context_target}".encode("utf-8") + return hashlib.sha256(payload).hexdigest()[:16] + + +@dataclass +class BaselineData: + """Container for parsed baseline data.""" + + version: str = BASELINE_SCHEMA_VERSION + created_at: str = "" + score: float = 100.0 + findings_count: int = 0 + signatures: set[str] = field(default_factory=set) + metadata: dict[str, Any] = field(default_factory=dict) + + +class BaselineManager: + """Manager for loading, creating, and matching baseline snapshots.""" + + @staticmethod + def create_baseline( + score: float, + findings: list[Finding], + version_str: str = "", + ) -> BaselineData: + """Create a BaselineData instance from current score and findings.""" + sigs: set[str] = set() + for f in findings: + sig = compute_finding_signature(f.code, f.rel_path, f.match_text, f.message) + sigs.add(sig) + + return BaselineData( + version=BASELINE_SCHEMA_VERSION, + created_at=datetime.now(timezone.utc).isoformat(), + score=round(score, 2), + findings_count=len(sigs), + signatures=sigs, + metadata={"zenzic_version": version_str}, + ) + + @staticmethod + def save_baseline(baseline: BaselineData, file_path: Path) -> None: + """Save BaselineData to a JSON file.""" + data = { + "$schema": "https://zenzic.dev/schemas/zenzic-baseline.schema.json", + "version": baseline.version, + "created_at": baseline.created_at, + "score": baseline.score, + "findings_count": len(baseline.signatures), + "signatures": sorted(baseline.signatures), + "metadata": baseline.metadata, + } + file_path.write_text(json.dumps(data, indent=2) + "\n", encoding="utf-8") + + @staticmethod + def load_baseline(file_path: Path) -> BaselineData: + """Load BaselineData from a JSON file.""" + if not file_path.is_file(): + raise FileNotFoundError(f"Baseline file '{file_path}' does not exist.") + + raw = json.loads(file_path.read_text(encoding="utf-8")) + signatures = set(raw.get("signatures", [])) + return BaselineData( + version=raw.get("version", BASELINE_SCHEMA_VERSION), + created_at=raw.get("created_at", ""), + score=float(raw.get("score", 100.0)), + findings_count=int(raw.get("findings_count", len(signatures))), + signatures=signatures, + metadata=raw.get("metadata", {}), + ) + + @staticmethod + def apply_baseline(findings: list[Finding], baseline: BaselineData) -> tuple[int, int]: + """Mark findings as is_baselined=True if their signature is in the baseline. + + Returns: + (baselined_count, new_findings_count) + """ + baselined_count = 0 + new_count = 0 + for f in findings: + sig = compute_finding_signature(f.code, f.rel_path, f.match_text, f.message) + if sig in baseline.signatures: + f.is_baselined = True + baselined_count += 1 + else: + f.is_baselined = False + new_count += 1 + return baselined_count, new_count diff --git a/src/zenzic/core/reporter.py b/src/zenzic/core/reporter.py index 4930aec..1af95f6 100644 --- a/src/zenzic/core/reporter.py +++ b/src/zenzic/core/reporter.py @@ -29,6 +29,7 @@ class Finding: source_line: str = "" col_start: int = 0 match_text: str = "" + is_baselined: bool = False @dataclass(slots=True, frozen=True) @@ -353,9 +354,10 @@ def render( loc += f":{f.line_no}" if f.col_start > 0: loc += f":{f.col_start}" + baselined_tag = f" [{ZenzicPalette.DIM}][BASELINED][/]" if f.is_baselined else "" renderables.append( Text.from_markup( - f"[bold cyan]{_esc(loc)}[/] [{style}]{sev_icon}[/] [{style}][{f.code}][/] {_esc(msg)}" + f"[bold cyan]{_esc(loc)}[/] [{style}]{sev_icon}[/] [{style}][{f.code}][/]{baselined_tag} {_esc(msg)}" ) ) # Snippet with native position data — no guessing diff --git a/tests/test_baseline.py b/tests/test_baseline.py new file mode 100644 index 0000000..b2c82c4 --- /dev/null +++ b/tests/test_baseline.py @@ -0,0 +1,105 @@ +# SPDX-FileCopyrightText: 2026 PythonWoods +# SPDX-License-Identifier: Apache-2.0 +"""Unit and integration tests for Baseline & Regression Tracking engine.""" + +from __future__ import annotations + +import json +from pathlib import Path + +import pytest +from jsonschema import validate +from typer.testing import CliRunner + +from zenzic.main import app +from zenzic.core.baseline import ( + DEFAULT_BASELINE_FILE, + BaselineData, + BaselineManager, + compute_finding_signature, +) +from zenzic.core.reporter import Finding + +runner = CliRunner() + + +def test_signature_computation_resilient_to_line_shifts() -> None: + """Line numbers must not affect the computed signature.""" + sig1 = compute_finding_signature("Z410", "docs/guide.md", "", "Document is isolated: '/guide/'") + sig2 = compute_finding_signature("Z410", "docs/guide.md", "", "Document is isolated: '/guide/'") + assert sig1 == sig2 + assert len(sig1) == 16 + + # Differing targets produce different signatures + sig_other = compute_finding_signature("Z410", "docs/guide.md", "", "Document is isolated: '/other/'") + assert sig1 != sig_other + + # Context match_text precedence + sig_match1 = compute_finding_signature("Z101", "docs/a.md", "http://broken1.com", "Broken link") + sig_match2 = compute_finding_signature("Z101", "docs/a.md", "http://broken2.com", "Broken link") + assert sig_match1 != sig_match2 + + +def test_baseline_schema_validation(tmp_path: Path) -> None: + """Saved baseline JSON must strictly conform to zenzic-baseline.schema.json.""" + schema_path = Path(__file__).parent.parent / "zenzic-baseline.schema.json" + assert schema_path.is_file(), "zenzic-baseline.schema.json schema file missing." + + schema = json.loads(schema_path.read_text(encoding="utf-8")) + + findings = [ + Finding( + rel_path="docs/index.md", + line_no=15, + code="Z101", + severity="error", + message="Broken link 'missing.md'", + match_text="missing.md", + ) + ] + bdata = BaselineManager.create_baseline(90.0, findings, version_str="0.27.0") + file_path = tmp_path / DEFAULT_BASELINE_FILE + BaselineManager.save_baseline(bdata, file_path) + + raw = json.loads(file_path.read_text(encoding="utf-8")) + validate(instance=raw, schema=schema) + + +def test_baseline_manager_apply_baseline() -> None: + """apply_baseline flags matching findings as is_baselined=True.""" + f1 = Finding(rel_path="docs/a.md", line_no=1, code="Z410", severity="warning", message="Isolated: '/a/'") + f2 = Finding(rel_path="docs/b.md", line_no=10, code="Z411", severity="warning", message="Dead end: '/b/'") + + bdata = BaselineManager.create_baseline(95.0, [f1], version_str="0.27.0") + baselined_cnt, new_cnt = BaselineManager.apply_baseline([f1, f2], bdata) + + assert baselined_cnt == 1 + assert new_cnt == 1 + assert f1.is_baselined is True + assert f2.is_baselined is False + + +def test_cli_update_baseline_and_consume(tmp_path: Path) -> None: + """CLI zenzic check --update-baseline creates baseline; subsequent check exits 0.""" + docs = tmp_path / "docs" + docs.mkdir() + (docs / "index.md").write_text("# Index\n\n[Dead End](dead.md)\n") + (docs / "dead.md").write_text("# Dead End\n\nNo outgoing links.\n") + + (tmp_path / ".zenzic.toml").write_text("[site]\nengine = 'standalone'\n") + + # Step 1: Update baseline + res = runner.invoke(app, ["check", "all", str(docs), "--update-baseline"]) + assert res.exit_code in (0, 1) + baseline_file = tmp_path / DEFAULT_BASELINE_FILE + assert baseline_file.is_file() + + # Step 2: Consume baseline without new defects -> Exit 0 + res2 = runner.invoke(app, ["check", "all", str(docs), "--baseline", str(baseline_file)]) + assert res2.exit_code == 0 + assert "[BASELINED]" in res2.stdout or "Baseline:" in res2.stdout + + # Step 3: Introduce new defect -> Exit 1 + (docs / "new_orphan.md").write_text("# New Orphan\n\nNo links.\n") + res3 = runner.invoke(app, ["check", "all", str(docs), "--baseline", str(baseline_file)]) + assert res3.exit_code == 1 diff --git a/zenzic-baseline.schema.json b/zenzic-baseline.schema.json new file mode 100644 index 0000000..a8c7445 --- /dev/null +++ b/zenzic-baseline.schema.json @@ -0,0 +1,51 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://zenzic.dev/schemas/zenzic-baseline.schema.json", + "title": "Zenzic Baseline Schema", + "description": "Schema for .zenzic-baseline.json snapshot files used for baseline and regression tracking.", + "type": "object", + "required": [ + "version", + "score", + "findings_count", + "signatures" + ], + "properties": { + "$schema": { + "type": "string", + "description": "JSON schema reference URI." + }, + "version": { + "type": "string", + "description": "Baseline format version." + }, + "created_at": { + "type": "string", + "description": "ISO 8601 timestamp of baseline creation." + }, + "score": { + "type": "number", + "minimum": 0, + "maximum": 100, + "description": "Document Quality Score (DQS) at baseline creation." + }, + "findings_count": { + "type": "integer", + "minimum": 0, + "description": "Total number of findings recorded in baseline." + }, + "signatures": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Deterministic finding signatures (RuleCode + FileURI + Target/Context hash)." + }, + "metadata": { + "type": "object", + "additionalProperties": true, + "description": "Additional metadata (e.g. zenzic version, git commit)." + } + }, + "additionalProperties": false +} From c2c861efe9168f1ef25b51a80eaf43acc86f4f39 Mon Sep 17 00:00:00 2001 From: PythonWoods Date: Sat, 1 Aug 2026 17:59:47 +0200 Subject: [PATCH 07/17] feat(core): implement semantic linting & readability metrics (Z510, Z511, Z512) Add Z510 (HEADING_HIERARCHY), Z511 (EXCESSIVE_SENTENCE_LENGTH), and Z512 (EMPTY_SECTION) content linting rules in src/zenzic/core/content.py. Expose max_sentence_length in ZenzicConfig. Add example workspaces, register gallery lab scenarios in _lab.py, and update documentation and tests. Signed-off-by: PythonWoods --- CHANGELOG.md | 7 +- docs/rules/Z510.md | 27 ++ docs/rules/Z511.md | 33 +++ docs/rules/Z512.md | 26 ++ examples/z510-heading-hierarchy/docs/index.md | 5 + .../docs/index.md | 5 + examples/z512-empty-section/docs/index.md | 9 + src/zenzic/cli/_lab.py | 21 ++ src/zenzic/core/codes.py | 9 + src/zenzic/core/content.py | 259 ++++++++++++++++++ src/zenzic/core/rules.py | 42 +++ src/zenzic/core/scanner.py | 11 +- src/zenzic/models/config.py | 4 + tests/test_content_linting.py | 129 +++++++++ 14 files changed, 583 insertions(+), 4 deletions(-) create mode 100644 docs/rules/Z510.md create mode 100644 docs/rules/Z511.md create mode 100644 docs/rules/Z512.md create mode 100644 examples/z510-heading-hierarchy/docs/index.md create mode 100644 examples/z511-excessive-sentence-length/docs/index.md create mode 100644 examples/z512-empty-section/docs/index.md create mode 100644 src/zenzic/core/content.py create mode 100644 tests/test_content_linting.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b74a1c..924aef8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,9 +14,10 @@ Versions follow [Semantic Versioning](https://semver.org/). ### Added - **Smart Link Graph (`V0.27-01`)**: Transformed the Virtual Site Map (VSM) into a Smart Link Graph that tracks deterministic adjacency lists for outgoing links across document nodes. -- **Topological Graph Rules (`Z410`, `Z411`)**: - - `Z410` (UNREACHABLE_GRAPH_NODE): Emitted when a document exists in the workspace but is unreachable from navigation entry points via BFS traversal. - - `Z411` (DEAD_END_NODE): Emitted when a document has zero outgoing links, stranding readers. +- **Semantic Linting & Readability Metrics (`V0.27-03`)**: Introduced structural content quality rules: + - `Z510` (HEADING_HIERARCHY): Detects skipped heading levels (e.g. H3 following H1). + - `Z511` (EXCESSIVE_SENTENCE_LENGTH): Detects prose sentences exceeding configurable word limit (`max_sentence_length`, default 40). + - `Z512` (EMPTY_SECTION): Detects heading sections with zero body content before next heading or EOF. - **Baseline & Regression Tracking (`V0.27-02`)**: Added deterministic snapshot baseline capability (`.zenzic-baseline.json`) via `--update-baseline` and `--baseline` CLI options. Computes line-shift invariant SHA-256 signatures for finding matching, tags baselined findings without dropping them (`Radical Unawareness`), and enforces DQS anti-regression exit rules in CI/CD. ## Historical Releases diff --git a/docs/rules/Z510.md b/docs/rules/Z510.md new file mode 100644 index 0000000..e1f07ae --- /dev/null +++ b/docs/rules/Z510.md @@ -0,0 +1,27 @@ +--- +title: "Z510: HEADING_HIERARCHY" +--- + +# Z510: HEADING_HIERARCHY + +**Severity**: `warning` +**Penalty**: 1.0 point +**Category**: `content` +**Auto-fixable**: No + +## Description +A heading level skips one or more levels in the document structure (for example, an `H3` heading immediately follows an `H1` heading without an intervening `H2`). + +Skipping heading levels impairs screen reader navigation, breaks document outline generation, and compromises structural accessibility. + +## How to Fix +Adjust the heading level to maintain sequential hierarchy: +1. Ensure `H2` follows `H1`. +2. Ensure `H3` follows `H2`. + +## Suppression +If a skipped heading level is intentional, you can suppress this warning using an inline comment directive at or above the heading: + +```markdown + +``` diff --git a/docs/rules/Z511.md b/docs/rules/Z511.md new file mode 100644 index 0000000..681d257 --- /dev/null +++ b/docs/rules/Z511.md @@ -0,0 +1,33 @@ +--- +title: "Z511: EXCESSIVE_SENTENCE_LENGTH" +--- + +# Z511: EXCESSIVE_SENTENCE_LENGTH + +**Severity**: `warning` +**Penalty**: 1.0 point +**Category**: `content` +**Auto-fixable**: No + +## Description +A prose sentence exceeds the configured maximum word count threshold (default: 40 words). + +Extremely long sentences reduce reader comprehension, increase cognitive load, and hurt technical documentation readability. + +## How to Fix +1. Break the sentence into two or more shorter sentences using punctuation (`.`, `;`). +2. Use bullet points or lists to structure complex multi-part statements. + +## Configuration +You can configure the maximum allowed sentence length in `.zenzic.toml`: + +```toml +max_sentence_length = 35 +``` + +## Suppression +To suppress this warning for a specific sentence, add an inline comment directive above the paragraph: + +```markdown + +``` diff --git a/docs/rules/Z512.md b/docs/rules/Z512.md new file mode 100644 index 0000000..6a65c3f --- /dev/null +++ b/docs/rules/Z512.md @@ -0,0 +1,26 @@ +--- +title: "Z512: EMPTY_SECTION" +--- + +# Z512: EMPTY_SECTION + +**Severity**: `warning` +**Penalty**: 1.0 point +**Category**: `content` +**Auto-fixable**: No + +## Description +A heading section contains zero body content before the next heading or the end of the file. + +Empty sections act as visual placeholders that confuse readers and indicate incomplete or abandoned documentation sections. + +## How to Fix +1. Add explanatory text, code snippets, or list items beneath the heading. +2. Remove the empty heading if the section is not needed. + +## Suppression +If a heading is intentionally empty, add an inline comment directive below or above the heading: + +```markdown + +``` diff --git a/examples/z510-heading-hierarchy/docs/index.md b/examples/z510-heading-hierarchy/docs/index.md new file mode 100644 index 0000000..7cfde2d --- /dev/null +++ b/examples/z510-heading-hierarchy/docs/index.md @@ -0,0 +1,5 @@ +# Heading Hierarchy Example + +### Skipped Subheading + +This page triggers Z510 because an H3 heading immediately follows an H1 heading without an intervening H2 level. diff --git a/examples/z511-excessive-sentence-length/docs/index.md b/examples/z511-excessive-sentence-length/docs/index.md new file mode 100644 index 0000000..42a521c --- /dev/null +++ b/examples/z511-excessive-sentence-length/docs/index.md @@ -0,0 +1,5 @@ +# Excessive Sentence Length Example + +This is an exceptionally long prose sentence that continues through multiple clauses and ideas without any sentence-ending punctuation until it easily exceeds the maximum readability limit of forty words defined in the Zenzic workspace configuration file. + +[Back to main page](index.md) diff --git a/examples/z512-empty-section/docs/index.md b/examples/z512-empty-section/docs/index.md new file mode 100644 index 0000000..a2569f3 --- /dev/null +++ b/examples/z512-empty-section/docs/index.md @@ -0,0 +1,9 @@ +# Empty Section Example + +## Empty Section + +## Next Section + +This section contains prose body content. + +[Link](index.md) diff --git a/src/zenzic/cli/_lab.py b/src/zenzic/cli/_lab.py index a33a760..a787c4d 100644 --- a/src/zenzic/cli/_lab.py +++ b/src/zenzic/cli/_lab.py @@ -247,6 +247,27 @@ class _Act: example_dir="z505-untagged-code-block", expected_pass=False, ), + "z510": _Act( + code="z510", + title="Heading Hierarchy Violation", + description="Z510 HEADING_HIERARCHY — heading level skipped (e.g., H3 follows H1)", + example_dir="z510-heading-hierarchy", + expected_pass=False, + ), + "z511": _Act( + code="z511", + title="Excessive Sentence Length", + description="Z511 EXCESSIVE_SENTENCE_LENGTH — sentence word count exceeds maximum limit", + example_dir="z511-excessive-sentence-length", + expected_pass=False, + ), + "z512": _Act( + code="z512", + title="Empty Section", + description="Z512 EMPTY_SECTION — heading section contains no body content before next heading or EOF", + example_dir="z512-empty-section", + expected_pass=False, + ), "z104": _Act( code="z104", title="File Not Found", diff --git a/src/zenzic/core/codes.py b/src/zenzic/core/codes.py index 8d2dc13..bcd7dd2 100644 --- a/src/zenzic/core/codes.py +++ b/src/zenzic/core/codes.py @@ -237,6 +237,9 @@ class ZenzicExitCode: "Z504": CodeDefinition("warning", 0.0, None), # QUALITY_REGRESSION — governance gate "Z505": CodeDefinition("warning", 1.0, "content", fixable=True), # UNTAGGED_CODE_BLOCK "Z506": CodeDefinition("error", 5.0, "content"), # MALFORMED_FRONTMATTER + "Z510": CodeDefinition("warning", 1.0, "content"), # HEADING_HIERARCHY + "Z511": CodeDefinition("warning", 1.0, "content"), # EXCESSIVE_SENTENCE_LENGTH + "Z512": CodeDefinition("warning", 1.0, "content"), # EMPTY_SECTION # ── Z6xx — Governance ───────────────────────────────────────────────────── "Z601": CodeDefinition("warning", 2.0, "brand"), # BRAND_OBSOLESCENCE (escalates exponentially) "Z603": CodeDefinition("warning", 1.0, "governance", fixable=True), # DEAD_SUPPRESSION @@ -293,6 +296,9 @@ class ZenzicExitCode: "Z504": "QUALITY_REGRESSION", "Z505": "UNTAGGED_CODE_BLOCK", "Z506": "MALFORMED_FRONTMATTER", + "Z510": "HEADING_HIERARCHY", + "Z511": "EXCESSIVE_SENTENCE_LENGTH", + "Z512": "EMPTY_SECTION", "Z601": "BRAND_OBSOLESCENCE", "Z603": "DEAD_SUPPRESSION", "Z901": "RULE_ENGINE_ERROR", @@ -354,6 +360,9 @@ class ZenzicExitCode: "Z504": "Documentation quality score regressed below the saved baseline", "Z505": "Fenced code block has no language specifier", "Z506": "Frontmatter boundary is malformed (e.g., opening delimiter is '--' instead of '---')", + "Z510": "Heading hierarchy level skipped (e.g., H3 follows H1 without an intervening H2)", + "Z511": "Sentence length exceeds the maximum readability limit", + "Z512": "Heading section contains no body content before next heading or EOF", # Z6xx — Governance "Z601": "Deprecated brand term found in documentation source", "Z603": "Inline suppression directive does not suppress any active finding. Remove the dead comment.", diff --git a/src/zenzic/core/content.py b/src/zenzic/core/content.py new file mode 100644 index 0000000..cb47f90 --- /dev/null +++ b/src/zenzic/core/content.py @@ -0,0 +1,259 @@ +# SPDX-FileCopyrightText: 2026 PythonWoods +# SPDX-License-Identifier: Apache-2.0 +"""Deterministic Semantic Linting & Readability Metrics engine for Zenzic. + +Provides mathematical content quality evaluation for Markdown/MDX graphs, +enforcing heading hierarchy (Z510), sentence length limits (Z511), and +empty section detection (Z512) with strict line-number fidelity. +""" + +from __future__ import annotations + +import re +from pathlib import Path +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from zenzic.core.rules import RuleFinding + +# ATX Heading regex matching # to ###### +_ATX_HEADING_RE = re.compile(r"^(#{1,6})\s+(.+)$") +# Sentence delimiter matching ., !, or ? followed by whitespace or end of string +_SENTENCE_SPLIT_RE = re.compile(r"(?<=[.!?])\s+") + + +def check_heading_hierarchy(file_path: Path, text: str) -> list[RuleFinding]: + """Z510: Detect skipped heading levels (e.g. H3 immediately following H1).""" + from zenzic.core.rules import RuleFinding + + findings: list[RuleFinding] = [] + lines = text.splitlines() + in_code_block = False + prev_level = 0 + + for i, line in enumerate(lines, start=1): + stripped = line.strip() + if stripped.startswith("```") or stripped.startswith("~~~"): + in_code_block = not in_code_block + continue + + if in_code_block: + continue + + m = _ATX_HEADING_RE.match(stripped) + if m: + level = len(m.group(1)) + if prev_level > 0 and level > prev_level + 1: + findings.append( + RuleFinding( + rule_id="Z510", + severity="warning", + file_path=file_path, + line_no=i, + message=( + f"Heading level H{level} skips previous level H{prev_level} " + f"(expected H{prev_level + 1} or lower)." + ), + matched_line=line, + ) + ) + prev_level = level + + return findings + + +def check_sentence_lengths( + file_path: Path, text: str, max_words: int = 40 +) -> list[RuleFinding]: + """Z511: Detect sentences exceeding max_words readability threshold.""" + from zenzic.core.rules import RuleFinding + + findings: list[RuleFinding] = [] + lines = text.splitlines() + in_code_block = False + in_frontmatter = False + + # Collect prose sentences line by line, preserving starting line number + current_sentence_parts: list[str] = [] + current_start_line = 1 + + for i, line in enumerate(lines, start=1): + stripped = line.strip() + + # Handle frontmatter + if i == 1 and stripped == "---": + in_frontmatter = True + continue + if in_frontmatter: + if stripped == "---": + in_frontmatter = False + continue + + # Handle code blocks + if stripped.startswith("```") or stripped.startswith("~~~"): + in_code_block = not in_code_block + # Flush existing sentence accumulator on code block boundary + if current_sentence_parts: + full_sent = " ".join(current_sentence_parts) + words = full_sent.split() + if len(words) > max_words: + preview = full_sent[:50] + "..." if len(full_sent) > 50 else full_sent + findings.append( + RuleFinding( + rule_id="Z511", + severity="warning", + file_path=file_path, + line_no=current_start_line, + message=f"Sentence of {len(words)} words exceeds maximum limit of {max_words} words.", + match_text=preview, + ) + ) + current_sentence_parts.clear() + continue + + if in_code_block: + continue + + # Skip headings, blockquotes, tables, HTML comments + if ( + not stripped + or stripped.startswith("#") + or stripped.startswith("Za3QkJMOOCS9Vqm$8_IUKVNyzYLZjx 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ð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�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 z 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%0AgEdY(DpLvpB?|{Og**Mj$j#rgsZn@zrsz9RSCh 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 z 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 z z5h!fx`v=4U;5?P}BH?EztS{J#A`#&n$S{ydfDK+2FWbeys`a;xCmAvkPzHdCAqyE~ zt^xRL*dj<_nl>Id55Eq9$F0x>hRjWRCayPL@14_}1hh&&sr&oaYoZ`^tMrnw+l=&x z2ouHm13aeWKe#~>K#~x?8W9o}8e_SYqe*hw%?XAu_7BgcNS`_13yy_+J42~50wPUW zaX1C~8Fs(!>bcVuq_J>LE`H)gK+%)klkvF<+L_SfQyS|Vic9%e`P%@G;N^YM3vYb( zVOI3=Yn}tXlT#Lh-+|0+MPvkz#V~XrdDu>PtA4Z$d2fB z-yjHcPj%pY)5AS^qIh6n#Anv&DXHe~?~*(OLElh;tK^IrwtboRcX~- zqRo(YU~aQ^-*FbAHKqV3i3GZVxR7}aU?|2KLA=|eD!3%9K38#Ybv1jo8MF>l(t{UN zAitWLDzBEG1o+Q=2d2$~ztX*T^zmn=x0!jVy)6V{3fJ;COmS~)r|bS8d8wECqjkon z)$_e<+^Fv>k^I0!CVmIQWuBQj(*AIxywsvu{B>&Tee_sR7#7rztv=F=oV;Z zhMJ`uFl+-RFx-|yj? zU(c#(x8<1gx3$v8qL@U|{b{96x7BFuC&twBG0l0t!?(r!`8efgV#3PBKwAtx7Z*B1x zEG#V+G`H>-WM|junwc%U-XeXd$Ti;bU0hhfuHdhOkB^B(hP6YHLyLDsM^2H$nYN;x zb9wtjaPP>x#t}EyA2{4y7n~b8)#7&-#xmZZwJ&z|-r{ zdVyLzJxbm2vfTnJSC^DlqM;>xWcEK%UGlX4TXf(Rl$SA48>UO(7G5S!j$MmT{Gg|BOIK04?d8AnBrsTwo z!V~T}Q^e+f{c@lOBiv7i=EQ9D-IKy8hkLI`!DO<$?)IeYi+NKS7Lu!9fT(mM836ks$Qi0!H9bADU2U*KnDS0<-MwR;iWJ8|po~$1p%~jB z#%dbmtTP~{rU5Yjp|`RnzESpUAgfBoaXYt3+oV?|MxI7 zTHop-v8OC@$#jBHJj*J$2+{Np6mGYec_)S|)@$u!V}2bW=Dom0`TL$i8|ZW=9NE-e zb*$g?7vRMvDS^;DGljviDECS4a$oIT1xvHY>~{ZIkKlj+I|NzK&LLr&#E^recjy_a za-q(0w^MMp?o>WE?*ued)~96g1UnPxR{vmYcxkeZq3L?CwEPm0zg-ZIn<& z-EH81la+}mt>~HufvkoD0*Wi+B_ItAtty(Ky=0}WkuHPH_T*wC{Ack_paTSM3L9Yg+8o@gV){Ea zJlqYos3#}hDso017Z*X{MxjZJp`v));RDS&?%?iv|NN;k1-I#a^}nd1236fEMqXYi zuk(#5$mVpr)?C4I2y=H;UJ<*SCNs1uM=xEquQ|Sdx~pF}Lqh)PnMc8?{YrIwI$O7# zt;x~4Q?jw;wU!EVmW>?*SpP8YOWSy8Ig?z{pRL^{$w*#1gp2~Y6ll3@K};+OPizR2 zU*@)$a@5_U&FORYKfcGROsbE!q*Bbx?b#lyEPt6(m^xT(gfE)@9i*RyM}~d#+Ue&+ z2C}eZo$R2*Rp?#cwpK$>;+yhvL|Zx9q1Gtvf`p&bKWE~y`A+6}h>fpnR9*J$rk*>g znj8Q52jXlpmHy?YEI-r~^Q2D;Khu_B7V?XYkDZ23JIf~3tgWW#S(f8O$|uK{n%OE% zP@cPY>{N2}elg1jaX0FiQ2NbA6NyDLHF~8 z2BR~UDG&_}qHZAqI+5=uJ`?-*Oe5hD2N8C+fujbX>aOA-b<#2K`~^_ zG8if)(Yf$R(tvOPa+z&&Ac&gmQIpU~`NWcEtDD-${a@A8=5BcbU6oDZdEifWTDJ~v zHzmE^CaI*2-Z6bo7Mb_!IO8;ipO9YyUp3X!3rcl7>Pp{kYnSeB8;6XCc7v=#e-1g;Aho$cEOPC(hi}uBaco=65FfAGoYJCijrziM_f7BREE;#;N0$GJNHJc zS{3@cI%7Ucc}evrd>q)2)dC^G+K{UHP|Sjcp7Mkod&p#-!PH5%Xr+uhZlH%PuXy&& zvsj9lHlyb6reE^x3>@yIn!OwL0K{ao7YxyCumNp2~eWdBViF=dV$fT3V203x>4UKhx@IZ zD@VunvmeTjYcXuxSzIt~+^l#0@)6Wl3n!OzCiOW11Z%4MuROyM@g@y5oHhF(ECdj_ zAOAjOz&4Nt6UZo5=&IjQZJF2Aq13L5x9;`=g(`%lokJ*u|DLD6U3TzGPK>Jj2U`97 z{Q$RpfaEuqLoCT^od84khyI^->vB(Vi{v0qi}8kIlrM9eRlq8*j9rD})@)^JnLt&+ zcBV_=4>7I{jY&b_Uh?f<@uKyamb_WKUd9r&#RA{LoNkuxsBgp%V^CTjEhsL`aXT+l z%@3;(^~3TM7oi&Q=T3rC6Ul-Lt8;2^wgPN3wMv|r;Jv0>v$h3Odp!aoQ1&IQUC(Pl zKb|xB3-;yE4{Q%r03*m_bEAGXzH6zu#S1j5@ps>CZIxLBX|*v}@yGAFOIB1y?ySQZ zcR{9f?D|zuq#Vl5U|V?i%1h+rTejMEYmUGYe*&a$tZ3v(a{w#msgwVbo8!3Ck5!29O5kGhM`QWMlOEzpJTiYuQhqu;qsgnO>N&L`WXH@VTlrj{+SA2LH@ycP_%pExBuk^Td9 z8TD3u4B@}1!sgK4C?B5H%YT%y!-hU|l;b{pQtRQ)eO6Ygc`o?`63y9AAIa}(ZA((n zo(89z_8DYtqg3k9Vp*>%_<+y?6YH1pd6zvqEz-=w>SkG<7d>^TOxCDBP|PU_CJ7Sz zRqD=lql3~biyp3tdoy3l+a^#e;37#TBP68L*&oxrTsETSKJJ%U_dWkM&0hGA@P*_w z@!Q*)Ah&+_9U3W2Dw@)Dv9t`BD%dn30RA)pd(90JA!zWNgt4$s%!FUf93B8YSNsI6 zy##DUe&R*{0i7rsINa-V#bMq17rO8n@xzfyPS-?~Ki)}Up&XcvV%bDU*9PlFW~O6e;+5U=kB2T|CA7bqJO$Ki>&?_HBLU#)_TL+o(C#2X zZ0l`@x3&>!Cs>Z&n$wp}vqk!BgCIVB2B7$mE-v`Y zzUvKr$V}+oX&Jyk!4-wjle@VQ1YC5Zl*HUoN>J#gypSC64adx#g1-q-7zfV zdH)HB_7(6Nb29)%`7PpTLZdAXy%)l9SeRS%i`4f_ zj&j1LF_W1wa?WDsDko;|Ig#x|Ve6}_2E7a`h$Vk^KvHCR318DMWxh1y$)L8n++P{3 zjP;tIXe*b*+rED49R3HQym^6j&990*5i@J0{^)NIH01C5VAZ37&yVE^m6)S{y2QhC z?$~S+k3MX*0j=@NPj;GL6G#9p)@~K+jnRcE?kBVV9XF6erRdodn#!EkV)pCoS)?`n zLC#oVYCh>4GD#@1P9efO0O8C6Xty_Z7m|mX#;^{?8-okiL-LjTV)Lec{HR5yLycde zxjZAtx&I~)Hex}eHYv{)es>1^13`gx_oB?9U9T&x6Px5k)JnE5YEfjyCBJRzMtvng zX~TH>`GYUS!y5iUM=k$_ecao#qMV(3QQ``t5kVyjKVL@EJ9bdbJUgKDvwJgn16^Td zJ7V7BG5_t&T)}BPA#9bTdVe9hsA$;L-$6z<%6=`ve&B6Fzl+m`-3qI%`O~$N;0PbM z#bb-<*}%PPAx+rrWOltqQR!Vw-pPYuew#rwqIzjg_j|z}uT34&lxavxSHB=3A>h;G z$=SZw692jv?Ikb;wNE&oYRDbDp4=@z6%^L4ZJsz4l+E%xE0SM}0bQ3I#by75rkd-H+SX`)RVUj%+bY@e4JG9)58<0PO8lLgu7q z_F}Igi&ed>FIly);O-H}iS7>Rse7*oI-X8Ee*lQh*s;>B_H>YUliuTgTiI_2+f6zDe-d*#7?)+??NZEtZqs7zo{^FhXYIos){#glQ{N7kLc>#vDV+Lh)Z z>x@j(>sqy=QMUEj)=eMstCe<6{G-joS8g(&Z~YW4lM*ZWP(FV4$+3@X`AHSf;z=pj zbN6u({-UIQ*%@}Rlpq)1A!s;w=vR6G4j=h(8A`o+vZHAn0!!C)a|0I9k_@HeKc^9r zg1t?8C140&vi`PFp8QeUbVV{_7d|HsXZQp{6p;sI9N;V@V)G4rNcsXq*6aB@EWoF0 zz;+|D3xf#Bxy`?$+g`fYA$jxWLcC(g#alj_{b7&+rsUwBzqL+$&sE<-0fj(_|1Zhl{jlR?M2NHdxxyeYl8a&;0%a7{^b!ixJU)D% znzyC5V}91)P$pSWIXnLk^i7WG7q9ivF5%ng5~iltF7y=fJ=0p5v~CxfUS--9V4nh} zPaBNgH-gWmuT}(`--$sO9$mAAg%R(i4xOSPd%0xDn|qAazy%*0Kq%J*gNk?hE%;8` z%Q7s)R2f);<`JrF07S%n+i4f5>Ia_D-xkU{6CS$XB0HD?nnkZG-aimf{`hG`6C!}K zi>a(DIAoYaBtD+=E9*7k?%Smg{WBZ!HJ+duv8b+_Axx0cRkIP*HH|WeVtQ7(!Z&nN zSNzj}Pm(78@-5984@2MJQIRd(9nEO@KTw<)f~D)7`0E|vYssSp5{AF3bp4u+Jm0ujp7wbi836e1_cql(|VNGN`R(Re0_u7fGaxP=5fC!XUN0YApU8Macp+N`=m&b_Sf~4=Phszt%y7sAm_y|Q zW^X$&8!4k`Z}O=AEveuCFvqmiEs5IV~R~puSXApI0x@zPWEUEHiR+lOy~gm*n$2nlYx!YHKtJM4F`?4zly*NW-_L54*^c%x)NeYo1QkeM5&L*TEM zuU%VZ|BK{56z*%MUY4t-@s-HHs!i?(8Bs)^&cvN-Hnsd{)8I|NvTLbnMvi*d`&(tc zVYI38Kq|)fXnx{fb{b1FRuVDToGRMmx^&4!)6BJ{I1;xG@;fGu*sW9%+4%(xQ>Pp% zsb-B0{W$8y7JOR&OxnNwiIW&TJL6|^O3UQ(tQ69MkQt&r&*5LYivp(Wk2yFEtp~4` zwJ7fX=CA}oVUrlb$>J`VB2Tvotl8h{lKxHG<_xU zg~SgzCG?!kRHc2qv#9Uof}57WU+xyGtaBNm-PJHjmLvuv=(79+dkZq$OiUZ+a<&|+ za1WAx%&Usrp2@a`=-ZDmFLk14?N3l#484Zwbkk>tm5?|6I>+q2OBX^pds-{5k)Z@Z zWVlydEhFnul|lY(hs1|26@_NcD+^$_nV-oHW7{oU^de$rv;8Z#mL?M?*UjJ3n6Qcy zr|o?2VBW-IoxwfY-8kfb1x)Urwsb#i4~fFLV|yo8X>*KP*Yrw+O!#{!1zd_9KVd~d~ABEfs^)cQYg8T{D-v?NV&H>F~ID_I-7O5QG= z+TIj%!e`18L7IyXI&TX@z$Si3={)Nv$&$TQB>71e#H322E4$mFRt>GH#IbuWLMuq9 zzS1GrXT1|Mk3QKpNr~}(Pgi#u&p9+rGMWH4!lX)?Gyoq{rx_Ddr71S&f|sF2;rahS zU#`uCh<=tnq~XC69q3}<6#SW(0gy^XLQ5I!E z6D0DcO;$>$aiW;6K%?mD8{>}?P9Oj-=7 zNsc}N?c@T75==s6NX(`!qH{m{EJO`1>%+aD^)0eTV=!7=L!oDX}cI82h zvoq1V^@3D4+maGUHg(sPNYjZk>9B9Ppb`vFULYS=@)r;z#+UsOI_0uX_JUix`yY zd0*C9)8y_=6)?p<$#|}E+|1Q%vo)mQsoHqUenNH_FS#O+2f?shGaCU_&A2x~?^R9O zRrM=tOePR)l~j7E>uCan+{;*nW;M4WxW1mgz21jV>3V)cBj-;iItcp6onzZD#(u#_ z1XSh%9<2=p!?WA45x(y8)@v-tNWS~NCL`5`9^#`)ZV;a2i99wXW$k|Ok5#UZv06G4 zM}X+alk{|y1}UO~nORB89n`5xYZo|e$lRK0UAzn3)&x`TJ*@~3T+;FxuHF9Xc62J$)$Y4cT(&eLoN5w-je&$}5Jsr9e9>s_bD< zS;1Hv!7CJ-$x7h6>jU zyTrCoy&hNciz+x)leTpAuX9mE-g6$3=4hb`7IJgVd~0rAovVEw@*R|r*co40yoPz` zfB!%~0NfNm&i9P&!pIgA8q?z4QG#XF9Upg%Wv6l7eHY(*Cp*3JpM!-%!=O;c@>l5; zY)=PG{pUXpKEo_Cgx4lbllAHcWo-`FC4w6X+}cL`9j9MUj~pSc^6T0IVE=N_YC0h! zn>*Xq?@XytvYla=9xJm8Z@>|^UB@tUsG3I@d9>Qdz%e)xsU*)q2oQSlM3QUK-tYla zise5LP}5}y3cURx$K}TdGdYxF3L-v~E5l86A?ej)m^3=7mjBYL9TvqE)Ft%QkJeZD zA?9>qy%`@%>e$nnNMzOs_}KZLJaPT<7Gflrt4!}q^zv!tBFwA~0 zdYQSF7u};%0@2HIQ2GG;jyW-w4R*UZhfbC;Kjq0n?Oi`CiUOOa4voYZuSBLT!3sy+ z#7o=!tqkfp^X+{aaeotMNoND~54Hp|V=3SukAQt$axhB-xtkQuGfh^6==q&3oo{Xa zS>r=>*@~(1F#tcTz^~xxvhW9yu#!1AM-DF1a!Z*X;wzEFB#oX<73gW z^7aRR8kdE8*;$s<%l(!#v|`6b;p2J7 zM*7+Y(tIO!GWXZVL5gN$EG%k)G;)bPvfi7b<#@%8gmwc)QjcgdDY zuX#Q|pBVK8$!23cNlP2#kj4o;>y-J`pJmKVo;xk`kM}O;sbxDF7&5ilQoL2t=V9_m zGtjj_9|D&biNF!d2Cls*s-9v_3$qjht7FyEm=b_>$olyz)<#dL&Ir`c4S0=+uQ*Fc ztURso-qCQ}?^izzocpiGEYh(0kZfEzu*k`1Hs%<8&8z5C6f$X9o4sG;?)vtv!{N-b z;K;(-YW3`_iKznifMQs-ukY8dq`7WVok4+#!N;#?97lJH^JlKO?#Av&$2&Og(4j0r zv}Fo3SFUj(R6+lZ38g5K#-A+_J08vfVZy4f4(_W9rXAueIK{_F1EP0MQfWhcRYMFi zs%@oswVX})|-QNYT^B)My>1d7gVf6cY|uH;pw zYPnR;xNiM(*ONxz1f?0*0A&vCMaNXbt7q??ou-|E<0tG9GtC-KaHa4Kz4$VgR5Vr)5WuJdQ*-2A0fPVEd= z&?zuoeE0mczS87G#!w>Z`~JA_q$6Xh!mu^8DDy_=!uAPc2-l5_HGZ#P9CGzLq-XuZe)2h-Y=XUEMkAo>L^nlS24apJ1-k`k1 z;P=fGrE~{=Om;NJ*YRS0Bxjt})*S-h+qc3zp8GnJpSZs7-3CexB*MePM-{qw5N$|h z0uOP-{LC?M1`p;6di8tvj_7U_kh@x3(H$z)9xC^;i8qXE?`H?eFCP#sY#L>L8fX@I z;Vn%4$Hb(qG{@nSc{%e)!6|J#ozm*6?y8V$9qTSixlc^W3{(HSc)sU?2TXD*ttN4JZH9P+>HAPl* z5Ffvi%9Qa9X;37OJ7~2Up93z!-jlTlvWD(d6f6B#kwosl%0g-vrp$WTEnVB#&K>g$ z8~Oh-N+}j9JNiPtuWMkvGpmS}FRPNzY-GWsircoMQFDQ|RU)+c8PD#I>QAPIaofAd zxasNhG5)QKg4O~D(sl91lotaK%qhzW$0_Gum7$q4N?=e@1y*ry{j7i95#c)bk`Ft3 z46o1#83QIKc>)>1N@K1DHWJ*Z)*rb?^KZ;K``lNSD0d}0Xq%CA@jbJYKc=6Z!7PpA zHq`Fk%iCIh5IjU<(cM)aDC??udY58>or3r7?`Q{@SB0HvZNv0|H88`Wl_k$@KjO(m zjD$Tfy0YH9qD%W`e`Oe+_r`Q9QzEADjRTX?R|lq7z*a5Ow%jlvII2!XqR-XAfk5In zituq9m*TS1X(IWNfE+)yOb@l@a|cW_Es=(W{F~JEb@%kF$?sM719>2$!|9U1X`Ng) zQq)dHw5Qqfo(;p*-w^3|L!m;~_#OkVYWk8oQwW zd41qF$57_|Hf4Wow)*RqK#kWyGPt?`@3t!fUy0oex@n})wD-qHlbOVi0xN|7>ln8Y zv@Tv$* zW2qPRenBob4|LcEJFw?_(}@Wk<0oFxx<8H;;$0yPF;$mHe+(6(zaK3~ax z5z1+s!mD%EB4YEdRXtP&xT-M;y?7!Yb;lnhbr`zmfHUne%oIk+<2lTPa98 zj8=?x`>-1C4@_c~3p4Wlc9w%Oqk0>SGA$#$WfkgNsr@XVMZTZ5n8@4Rzb|d3_tyOB zUwLp1`QW2t@`~cb+|w53>*{UiOCV|J>#pwV?Ih#yynUo?;2rY8M;k)uTO`$(26KsW z>|eDcR6DdEukXuaZ+j)NGGdQoZs_tM&FyG_hnny_vP|V#&1F2H;Azz_-YG1__n8E$ z+>G^l{_;G=58m1G4zIvDs|f9x3*$ucW#V-x$D%~V-I;;nU*G;=bo z-TQRaHbk+TKy*-+cmuy0aElnFZKtnEf=b2wFFllqFz2$D1i=ADTj0IFI0@mu*t3F* zW1Qm<q8NL41Wh7UvD6D0R zk9P#;X&~~Y5+D5et)p}4TlYHNcTY70P2gMlAFc~eeVf-aD8qWAL6tlc)AzoBSPvZSaQYBbjJ!f^FPwhf4a#ne!yZ4)c#GAsCRJuns z_mx-tWZrkY_l@^CS-jdhZ?#XWtDOT@>?Q@m4n&Ow<0d;!{9cr&8}y)=VpemNe)C16wTB zjW?@cOpM_}DHTVER=)u>7d#S9O0LW*=BOhLC&ZgrV;6xAb^*Rxk1qI;7K02^Bw)iR z2D(*~aB@{f4gmj64fh?vhb}~BMSwUTWH${u-!wtkTHU0m%uFpED(ZYp&&Ox3J8su? z;u~91$Gm+S`D%P;(V6?`f|F`DG&6oXsb7}>(c8gQ93JNud=G`km9fnA4`lFIlxNK> ztcQ~`vE{|+JpO!`bk_b&1jTC`&oO20<}G*$*bTo(-+(iVB@(Hrygb;2b(Qvm3~s|T zb^_(f^0wCODvJ>YEik###cd5?>C-8ms?oJ$YRs|cF#crt zJQknhWM@JqU@eek<&nUUpJ(FBSNFihu4bO6D2EkY1#*g!(6v#DLPFQ&tdQ1H3k8a^@~4tM~tvad+t_Z*Xy zJVHf*k|+CXuPuZY=F&whS>WwxA4kb-Sylu+ca7&C5b=ElZIwB*VIYnS1A-EOMq~9z zg#j!BU&YrL;MzUCbK=1U-UD|fTY~f z9I1a;2xY9>*?9+e2-v=C6wg9WfhH;(K{R3@(9bSv(9aQ65a5m9u;R}!IDmQhpACLi z3NhpSufH5tR;fS`oPeSQ#Nw%2S~=dBUE#gvTcy#7S8OqZoULH4(U5k6O$7Mw1h!gG zKTbWiIbrPvgJt6>C)Q9ev4~&CShGE#81&$w_*^rGFN+l>Ak6Wzm3wNEDEc+|hU@@G z@H{12c1zL*e~!Z{i%r?m4Yc7}A2p1R}Z8k65eI7Dh$f-lVtz_|+-L zE;ANu*M)A`IYifSE20PT^LW6Axp4tdr6#G&dMFz}x;QyDm}3k#BTS1}%j=BNn!SuR zPmHEaHS}ia);h&!Tyl^(-eV-uoE$;Tb9I2+4t|By#9P+FXI#&s!G7!Ja2X^BIOR&? zj6@K3otDt5V!RnxHX0PVty3VgqVRA8s9ReE0*ru2JeMq_TYp%q$4Ge8T9k)tr@Hf8 zdpWX2Ho)QW1}`@!%DCq>%Ok5yrh>W3fkm=vc=We7 znEaKrrCm>jwH^dZZ$GQ|)w12NN!zQul?e50io-)qL=Z7@R*DoQ5p|=BNADdDGv51w z9!}C+C|Wz+$Z7wXoJEQgMXDcXCEDoyg=U1y^ZhG)3}RK0dAYthQX-GkT7 z_mzA$?lZiv5TsI9=jVqxNj5Z`v`+-j@nlP$c^R46~yhYk#4y6>MRf=)OWf2PrLR%^hw-_6-q;N$y`@7ka_SF#m!r ze;_v&U9|wgkh>8%WAMAM0-$9#GHF?%x(Ra_OrTD4*7U!sD$_hUJFoL}v~n5jNlr?` zIZSEi$3m%8#IKjjN&z^~#)W5+h}fT5zY#V1MhpGabP$U*Gr~iBaBdQAW%o>&fO6D5 z^|wd&i`A^-iR=Egey)t5jxW$I)&U5^7LaXtneYc6vTFZ*p|ZYxcW>(Dm4mBAi)-!3 zaLt`*tK-7=%)rf*7MLsSxzD}GZUzG$PtO4efs3oQXctRZJG2DEX^$@p=0O^`rzk)M zWWpmG?IG*QcmoUD;8*>xR~saQ06aw!2?8w6*Pvns$Jls5Ku4DN1gjCC!Jk>)f=|AB z%&DImI!YH*%+BuZ6t>$o!U79`ij}2@IootYnKtEhG*>Y`;`#+aqX7h^a6b$cvPItG z(Z9wKj>PNc3uyH419#lp;B-r)X2e9OthG|sf!-V`y7%;&11loWLo(+c8 zQ@x3AgZGulN#ce^D%(>`xNY--_ZrPz1KTclck6x4g?(+kT1*xjkGF_lg-2mFc-ST1 z0x>QQ_)Y5%@Q{Cr4#g{An*rc@$VDU5c-GDVTiSO;y$BDtfP}69_taq_l}&ocAE^kN z*?#*CS5_j1HD&JVChC5Wn*`i06L^=rk2+>rx2LZg? zB6?o(Q-s0BCL9GkGKfuqK-4Vgo6WLOJF&5A;C{W4+N^nFcy-<4-D2sJ9{AB(CmOo;Lxr=0@J%%%qptW80|uTB>mP}NT>4TX#h}CYw7zvQ z&LO0}Xlsb}O3aYed8=f18}KhNY&3F8yNBr~d&u&<$x3KY68YPsxfzBZrl6Oh-4E3N zZ|7~?B`^G~c|x)UzpE}@9hCaqI*J9DR~V%2g~Xv1r_bvv+N(UGsX3utC=pGH@2gkX z2q|D>%dJ!x1+j|s!yke;xmF{8Q${SgC3*A&$Ukt@1=+RMMyVZ9a(xNsoL9=Xp`5om zOwO`@wfw-A|Lp7a7sUL^a|8{68==ntCbf}+<%f(nVX0_Veg$)7Y^$qFi*!3v%Us}& zPo`O8%4S7HMV{eiy@}I=`mTGyBx`RJiY9Up&FrD2?Y~RR=?M4ueL0Z-UMGbdJk&3P zm!jZO_m( zQlbfF7H#xiaoDfTm!u%_`Gt=3_Xb7}zH(VhRp{zCj>Gb?r8S1Wb4AG3C5`%m>p_pQ zK1H6Qz@NikEfUV_vqxjOsI2bgvyfu(zT%g-l)6t^bJ1WbU#~F(dSnotwvwDSO*Mq$ zjDwI1W=5Tfo-pXSr?>vJX;fBx3ZeNDZtV^Pxsq#)8l*%pXMo$Ldd-ajp9SuwFrs+O zJ-6nw#6P{b-O+K{T6oX`E3zxdNddBhK3Avh*W^Q0b9XN|L7|fZ=I8WS# zrzGinKSr@jKw?T*GhX9bSXvSmcr(zMqPBx}(LW7*QrD3^b>ebgTU~Sje?O@M z(V&6?F{6jW=$}7LFe4=SgK^V><#A>Cf~dQ=?t`d^wX>`av-2@5$91IClQz~xk9>{? zgozPK?gQX5Ybd8oYIZYZ6$|ps6)bOd4cMs(qhcI@VCtI$^qh zR@3@2MU!x9s6;^e<{N$rvF=}ddq(-E`wj-0D@rfqg|sY)x}hi|xEncu$tD&rz4-=X zaqnj69}ZKuLB^1ZHieN>Jb8nK4qMC6LV1euQdH&zTfpWz7Xct9|({NYe!Zf9k4r zPi-u8!?$)J?m{o@q#8Yr{T!yHOYTAF9wyd%vUYe-VB@L+_0^VEdjR1szo zyM0il7rp^ip$rC8|)f`Gj!$IpP_9-?${SRuOEshM_agOVR;}d z)0@kNQBa zipsW`zndB6r+?ey9zEoBE;eKD9EM=%v|kWVA5|%&=(~wAb%O>53EDW)&2O%iOWG5@JmrtE;bkPlQ>UeR_=<&?Qb`|!P(w=M*MTIC zyPR!SQ{2b5=jO~=yqq@j7Pn`{O#Cy|4Ns%4&E=c{~-uUGS*KrqqFjf zgp>6?HM7bNqn=V_9C`MVRW&X9lUQ1a1OXRp;N6>j&h*!Gpgrb0$La>9pIkyZYUMHO z_m8_Dq`k|H*4%wGIx?j4BstG__G1Dg!M(K^JojjwBx8RRNq8$W%{_7BruqpB8)W9f zb0_Dy38l1&8GT4YN~5|UcViEXc5bY|W=4P9WuFi}pt(K(7g5yxs?W>7k#hYty9sUf z&_jXG$_uLc1yB0$k?u=4ou>QHLy_FT$4`gU}{zt zJh45YeR7iCHl)udt~hUZ+-?mMg})A3waLLkpk#=!2f2PApKkCPid;H*RMU@zx@&d6 zJj>wRVQ55nzrG{$bQV2aaALS-xe}adNw(kEF)L_tv?v1-lfbwEh%)#?)j^I35%4cU z2xj7?)d{m3v>#s<>YM`YX8?ceH>s`z6z_uqs!&dR1}G1g*DM}t5v=Dz7y!VAF%r@# zgph6$dQK1y??Gp#xnOW(qq%UfFwB{2DVW_3rf0a|Q@aJD9h!Tyf$+s9r-;0Oo*G_} zcUi4|-~{B+L?Ft3#ruh`Ph>(L-Zvsxo#PW99O$|_1Eu)OkWy!50eG)(_)%*gS!LbG zRktDiEJ>o_Y73net?icY??Su^V9z=-FCFq`2Td(nuZju$(Dy$l!=pH5yamG)@E;_$ z`R$B6QvzNd1~dU>6OzOeF8l(t?IzO1W%lL|sU%M&U_D*-7aUlnL=dCqNz?Of=S4h- zFV%g!XQh4+ob=~Coz3(8^sBZ`4KnvoI8g8=ojy7>)Ust)0$sMb~ASv?fP8w8Q7j(Ygr zvD{9K)oM3P>!kZ|3BL-1=xlXA>aYdf6cs|hdb?aZw;r`hSJ+meJI<%%*LG7ZbT6Hz z0h9J`=ZiOkeC|K6YaV~Pq-*@StU=+)C@^6y;!lTL7ooNak3dCacAt{SpM}u?Dye(V zR`Ik5d`B_p#5mw`4}_dL77vSHW#jb>RkBnl}WT@SydaU!x1^K420XkM!Vgg5bn zBUp4IMc#7YBwzmSd!QX_(*bg$YKGd$_2LRpxBk~j>EP5@ai%K#?6Q8T_0-su@AA5lzxBJ)7N00#k6~*ExZW$Or z%JbIF9Q{6CsKi|R(hY@BtQTEsco!;I*6%i??e0?+;#>&d->Ud^J z-Ym>MJtJl7ee0a9_xMbpX_Y?r#MM8L{3P;;bi}HM`^`sujw7(F{G$=qSxpbIekehT zpGy|`XBJA7_`dSUXm7z+o-AJ!gomNqD&UIT4?Nu{Fgfs-_3*cwDkp!FFE}!MV1VGr z$&uVBAw&OqJIi49c%uHSqn}(<&n;-Kz$VkeP`xpDuVQv_VLe0oUbwnvV$P2NmV`e8 zP)24YH!%M5EtA(#v!dxdtKHow$QeMh!;pprBu#AuDCR-Ug1W*)XOKkFAHfh7uK^Uf z)AWg;ybp>)==TE~9|#7S0O(#YI!Y9cXJ;beZtcV*wop6*U&LX#^o zJErLEXsckj)A>6o71JshO7jPOsF`dwv_k^!afqRv*z z+y3Zg@Y*Nj&mGlmyu2O2*SOJ}HtEqhOv9!2Sdz3o@)k9g(ZLR1J7jhX367=v{Pto< zG577A=;wMYD>PEByCSG=Fg_l74AcfzQ|=muU-|)Be6wRDrGNM-YuOB-3xpU+`+}4X#kkS)YYX1=%{tm@HUB08{U<4Mu{1+6oF)_*c$yM@^t1yy8Y6;~pa={}+2(z?oct-Aq{tAaJ_Fh{l*Yk#l4uvs zU4pj)>U?RfWSj^U@QJ1g$w*?* zXO)CKY3JYJi|SI!!P`GQY5bX5YP|I91TB$0YFby975_1zOrimv#eiiFzs(;>!Y$ld zLj_*$bm2J|NY3uafd#52Jjh{cmYCk-Zo|giQIx1`3BS_=q35M_L!pGk)1Qpq_G`}; zdl2cNA>0fn`<|cG&h`@1{QJc$lb;|tEkN|p0bOEL72X4HW#ti? zI-RG1S|~we7g3iaN5^D2mz#?6pT}8w4qu>w2 zOHPX@a(~zcuou^80_0rh=_!FsfFXR<0sN?Z=X@&9mNC<>j&h~iWAA0#!ek1%5|q?}KD8qkdTU8>3v z_bSnwgnJHOeK^1-pbZOggbsqIeFFPKDLGXN(HVycqks%KOtUMSSVZGmwdYciAF=7W zK~{?{a-S6@ZP$6cxOAh!p5nHlT~S{bX&2BiQXTEbnHTK5A@#fOwl88|aa+l;P?-2r z5y-A`Keh(GQ=L?Ea$yUWa?890{_#H$8|HoX!VZ0?04cFHUw5g$Y@wBi{qT3r^%}~% zUal*pY^~C66<<~i19(s6jx%*>xQ*l47te3Ez4-OahLm^{A%U|Geg{0sk^Oy2?yD5n z+wxi1V{QT#G#_fbV6zglZW0)3Yj>?*x=u~xOWPG+8_3V%cWFWH{qIZfx+%UJffX8? z3OD857+f2{g|m?cJ1~rt!ukI|39=tO0^00k|N7Z8Q&O}W8Cr{8pLC*X6b}EaKl)TT z^{3yjoS&2Po0<7m_9~A4ZXrTKnJH%(1-2iDh2q2RsF= z7}=F}eD9~y3!}oig+tYpm(Q;jet6q&jE4jwp`x@cbr+*VK{mj5!9rmp>O|g@d5xAG zT4+x1(lfK}zhn`m0~|+k#W7Qr#((8rd&%};(zI}&GGL4~bv6FSY_y9>r|ep%R-ud; z)};5T8S2+)>^eo1oO$wlmASy&$H-ewWb^iAXXcS+tc#1lQ7qBPS14X~Mh&k}9c?yR z;3XCB)63gs{ZQy#)y8n)wW`8P>K?JE7q=hUT36>^eRZ56UXi7429(&WOo}G%IEm3) zrG&5>I>&dXRJQ%4byTnKA4!+kc1N4HCdGTc^S_Md-@Yo<>s#L+q5y752H_DWK-!gV z{(x7FiTY>-oPfthf2y_1`xFwuqj&>baiE!Y+QEzx1gW3|^7d8yAfjRGG%YM4mg^(i zR@vJE$vo<1%KLNmSNxpDsMlH4UU8Rd0aRSk%lw`m=3Q`NgsS#^UmQVeYsdu>uA#z#prb7EEAV@d{O&#@ z0l<(*ZlPLccO(<#I*Gul^lOyrgp2acnO6}y4C1Gqn`s+ZM4)Q<9aw_{j`ara(LvXt zm>$J1*sULZ8KwvIX9DHxkKGHhJn^OLX=70$)&et^r;%)hnVO(CKe2ek@j+7x7u&5Y>AT_oSyNYE> zbIT7N(zQSYf`i!&eWSd0BXK@(A2=Zi`;(h07to2JSPHRMrRNYJtuuygryWo2H0B&B zkwo1gIhM;U9Lfo`*G%ifvaHD8J47e*_yn#!r>7+HeQ<=dn&V!&KK-75do0xkTicN@{* z#8^_V@`ouOJNF^gf~JMliN3%p_06!Wc}Pij>&lOZlM}6^as#)}id4>L%fo?)Cky3E z4K@Q?tE0l%P5<(+T`27N&N)B~#WTI3RQ2NXLMr*HarP4k8*H1)TmQ=TsE0NpS3fg+ zz@pK^0@`DWxh<5WPBKxSYBxTsq$y9^QvA2K*`n-O?4OZV+H7w+O8y>|TuzsrPzfut zGN|kwQ*rio@sMl0kK@O?#Cpi8-gQ<;KN^`1chQ13wY(t(zCoHND)#go5P(_ah6O&q zPZmMHl9Tlsl(OfICO9~44Fs@x8}~XcmqaIpb@;7_6zDAq26d^jgbO76DOn(=xlfed z9>qZQeLV4X+C7jEZ6z%U%LmeChLBU$wnpw0QWEnLN)c$T6{7qbkcL&<*IR!`hoFl9 zd%}OU?*j|^ot@~U@WOFyf;~l{H5>aTiQnli+vd^2u-Y4t`n&?gQ~7Wp*t=VC8L$(c z!J{DkskY6p$Z`TZP2V0{uh;H1Rr#y;Bo!cnRP6OsDZUb}vpf2~(^kApb zymvUSglzM5*!|S($CiuB=6bJx<)oTD*8TP1`n0Eu`P~xC13@dIeml6r`7SLu zpzkBuPKv76X2f+F{tM@#-bz#vylR+I)ZM~NpqJ3K&iTCU>6>z3<6%0|GnU_5^6~}m z-Ne7yx~1+_^IVPNSu)4wtLBm45M=){x4(!I2a4~#ju-ioVcAx{5nQZ325)Bhu3E7U znm#Mt@Fh!Fj_Efz9})x`blxx{VSy^4jnUETfpG_u9NpTu0^$UaPmg}*2*?ef#no#U zg5w)y5jtt~(o^?YXZg3`*@9GEC&EepN4VSmu z$gx#Sc&3;C4|w$#ZBy;H!uSNd_159r2~xw3OWld<>3Kj#uh%R_YrQtuQTDv0`64MJ z$%A%t4b3-l5T?*sd$RP7>vEvghDDB1bA<gTkJ~M8z)H*U0BTU-G5% zwl01$0_{%u;zW4CD#0#)TfJX}Wz4^bXI`&C6&{kD z>PidPTx@is2YO;bO`Pxs105hgYk$b`d8}i(N*uU%=00YLHBMx^*FI!75OeMASn+K= zO<(zgaN?;|_+P8SEd%oDf)s8hr0ql~+7JHWBr&_h4b4wl8ata!a0z+w%{5qb4{zg! z)C;?l`O($!X~SOP`I$c(7jfJfJjd^C^NJYwkv?IqAi-?k34UUcs-KrPTH6rD$aq0< zU5{B~MR8!0V@fVsWFE)A4W&wVg%B3QBVIMTaKsf`HCc`2t(Z0GnU*R8)Lw|#?VhfS zw|(^u4W-Q*Dy&4q=aZcSRdVk1?f$5VYFj#f#m16Bfc?$Z!?8uTJu7_3@<2|!H(%$P ziE9_i+1MxR=|@!F_CSgeLYbM_0mN4)B=v^1DT1d3_p~D%=nGq!X(~M=<-=8yRP2tI z)nJ>t;M;5+0$|6c?=~CV2>zC2PGT7;zRuE04o`9Xt|`sX%JxADq~7EJXO}Ht9$NIH z7m>it5Oxg}yjz!2BR@&o9g+4ruGPj=Z_#(q1RGNfCa5w$*6eQl_2Y3m7b5BMU{tbN z_5QZ}3Y%A$i`T6dg1S9+~P?%H@6->FnE7Mv}$=VmH+G1+O0j!V}q*9AsT!E z%QpYJAv!QC#=AJoUajZXq%R7I%r$EkeAd2@ww?Xt=5^zaVQcZKuluetXIjjXX*~|! zpR84!NEcH8)d$XTia&>ViFRp=B%s1}`eOAz(A6JX%vMG?quAiPzx-goHs9NG2QovV ztACqBnHJDms!4taJ^YQCk^agv|KPURN+7$TpN}}#%Jy#Vn(Srvk!CRpTRU2kT}L?i zj#RbneO|dRv0pi}t0(nyYtM_9Jnt--E$L#qlPFRdtp((r%`fxV_?mRIXE8~A;VuB! zfCicNs=hv1)Rh3Bk;k~lnRg3jq()xJ~ z)tfF*uab!n2<=uFkME{=te^_P=S`b&tI9yLbL(;1wSlLp(x&1?FYfJ)6^&Zfa9;pJ zoIRayrg*@49v4i-8u$JP>N30l@?$u_@#03JQ|xB}#N8fYfy#Xrsm5wGZ58&>hLT>7 z>tYGA)R#pDE^LXCh>Fe-k=ASQ7)>)F5k`7M3e_M~nDVTI`ho%^oz822l3&l^pa#s_ zpU3OwdPg>D{jgfAoW1%y=Wf?{5C-Dd0c#aeY+Hg4?X?H9rp(*3u7>mcEz7MKQjz<< zro@=w$Zi@xqBr!zVdU+`>sUa!U*<7ycU8kE)uAjDOXqNf{JHVX*E-n#3+=4xlx$aR zgR(nyB8JNAqxkyzWm@`)AGxszhPepy;D3^D4(*p%;pz2GL$*1aG-DpfafS{T+H)in z-)iV$4b(nc)0rU|O$iZ^;R8aILR}a{+q}alRfynW(0JD(3PMh=T%y2R)8~1kA7eYO z6?}3ro$mAC-<7_^`-18LZ@n#RM9~Efj_>xB7NfQp(WFiqgnVUquwJjAc{r4Q;mp-@ z$)BM|YRV(G4)~-LE4jLP&k})qB8?h&%_TaVh1QQZU7pI}ay!bos^ZG**>mHy9p9;T zBw@pH$amR#J#%a4gVdq=Ibu84@Efr!m?ak~$2!jx?V{MJ+BS3wKt4$ygQ)HEItd>( z!F?!@+Kyf0gjtxaqhiMS*yXeFOC0Z_^kzaV$8(K6#IOyU3p*v=ZoS(yNF=|M8pjFL zdxd?hU~QS-zMX1>Ftu^MmfQz}8mgaov2%PTNnmm6Wji zmrK`z#SD#}5U9<+yI?w3sqf&e?N((S*lM=cej#5zTM2?>!XgK!|Bn-FhY?@?XoMhr zA8W>|gv9Sxz~?nF8&pz>G=h~i#4-8codV1PqTj{m;CJRT2}Bz2PJ67fFN&&3 zNeonkfYCY+yMia`x_p*;Af;}mt6g|CciG`e*BPIK=85%i>3zk*i)iT=B?b`VM7^v5 zmW^AzCTk<9JI=_Bnc?MV-k*r#3RYSGaJ zxfQJoM(^gX$bQUci9zxy3rN`~SbyTx8i>6BlA7h^;T>G~Q+(Q{CmI2I25`cSJaX5(}`>J>o{E_IE!9hXpVL@W8{r zX3hVB!p6s|llF7FHdSv28sN4{r{3*Nx|dD+^bUWlIWn$7R#qMhP31@lld~DNz1mfwxKg7o=C&&{x#sW4zEeocTTN*3JFuGECZ00A5w4u}|LTs&kJjh_~yW^fYF&nV zs=qRt@;%HtLzaa;cR5w1nvFK|;VBD5od&WE*EL9tpWoQ_TOKdMuxK(>@7wwoy`@&k zI!6h?oYojq%o;BQ84XZDr2Yy^P<|k!{>2`Tnea}4mGy*47&XJ52 z{*|3RSs!M0lmZ&o`Nt{ADcQ4($C2RkhVT#kQRhR|7mRq_=hz#~7mWBQwZ>sCop#a_ z2T4~b8Rp1KA+B20$y)I%{s<%a>fuB&Y zc#~UNP!O^q9<`X_ulIYh+Px;J`xZ$DOhS?6DDLkS;jt?p5RP%_da2IGHorIuri*dx zB#U6yJl8q}rv84dUYlR$0b7!rcmp6UIsP1VV6($RORKN@PdlBd<;PDYba;tV;JKq- zhcZpTUDW@T5^(K1SMZMu1DlWZMnioU`jt#ym%r`z!UdPj#Q}5l@`V@8d|TX4up@6n zR_i;1UMSTB(vwDLOhB*0Fj7a!D5dxwR#29{s;IN5K*LzefJh^yrl0l{3-tAo6&6>b zt#R+$n??+Q;V0}TvNBRB3)!Bt%2A?!t0o=Cus>dAMGoi@zupNZDRJsSUbmi)12Ib4 zmyyh#-MNqUh%*!%PIY~16!gH5GuwzXE4?`RyI8L#?+eW_Oh(1F)%)rjq4&HjuZh>w zUb#yzFl${1v4Z_68ZLd`?wpDex>NEZ_d_{3&ez8*O-UlX`Xbq$FMJkzO?EH>{%c~3 zjVxqZZ>{$xoHsB_lSH!(?aSe!^ckhJsa>v$w8)Xy3)L*M&|S^F?atD%$?#NvjRwP) zm(X4K{VCdQF{%Eml<%ril;LJlqx%UMc%|#%v*SYiG+_(cpSg>EMb%Ox>j{Gn+d zUnHOo-oDfkt%W)o7;$=lM~!8i&w6a(uC*DFJ!c(x-PwyXfx=QYeH=-Oj|uKGQ;06jTA1-}4KTgd=;tbh4Qla;Euj*R~JUoHL=gWHLUFW$+f7^#%s zi065xiPXz~wfn!sBA*XmkzfADnX|znd@RIO z1if-$j~)IFdEa;BBz$sy+uY5x(v2M8Y4JwkzK1Nz+3I`nYIbo!c1p~nYV{tkLYFvc zOj0*hs!yV(NYRC=dC|C5F1Tm77bXYgb93{ok!yzXz%&?|Mk>+d4h+_7(P88L??l&JsoI&_hI% zd$v{siNgD$=3U<7-Urn2Y9*g0<{Kx~a_|7Or1*%PPZ7#1L|>M$HA=&r@KLO3-zko1 zj?z`CXur<*bodvjrgq+~h1;0TM%gTcy%_(c_t&3ipQVM`-Bhw0ytZvG_b&w<_)Z|61lm>P?X(>c`4g{{Faw6cf*?G68Hix-9)`X0MP0R*K#D(N1(MV#J@Pl?;`&=> zM{xx+2+tv8jvg$+?*jv=OstH0iGR%X2(7k{vOabXFFf=VR~uxJ@cfPnDfKCv)84}D zW1ZlHc$z>o;Qfq>4_v44a_{4#^e^SPWTQ#|CtaypM;RaF(^8w%5#qH6gp26T{Cy3-tT;&{$AxFyYry(UD>w|Ar2UNMr?H_`1Rsj9RErp zT?+$w4heS9#LTbIm~8&PgA8S2gHoKyHja=86$Nm47-(Z7XI|tq*0gJOniWa}C91PV z91ha+2z?`oqAKDW`>}`k_(As&C9dFx*^?%91+P8gTB~8U6jw!|ft6{Xj#Qdw!WtOltlGo}DjKL$!{*p-(u3rVp+>Pe{PJ<$1}l(ype+E6Fw zFQLk;;m>A3qyhM5q#GV3;4+IQd zWQ~nt10#sSjv{3*k%oUYO+}(i95^DtHcn_%@HtIr+1Vr1PvKx6x~b7~hBCkT5ssoT zMhTRU!YwFX$EyhUEXsEPNMaR^rykZXrIpugxKwA;j_T)fLvqGH^WHZ8XdWzzT%D7e z&EBE;3+h5p?|4Lnox+CFRdq!`4$MT5ApJceL_o>O2|=wp|Do#=>pdu5V?f40Lp{c1q7wE~}{@-*CyDc$F}{%haXqJNN==;e?241gY8h^%MZsZdSTG+)$9u1(CF! zi38p|kb(`h0cNeLaVb&Tf|)gtN6hw}T@1^T@sf-4DW*hvYmP#9&0x z;48G_jRRm14S1K1@gEuOhzm6=d|Zw=DReEY`?P7L6%e^ zF7PfUedQIV7G_WO8q7{%4eZKy+_4$Q83J;iy?q#p-CT5tTRjsKf53Xs0QAiFcz;0o z8zeDO69;9Ppcnn5pYq!qkWD7)!lYYPczeK?(19Z7^%xxI82k$4E#5oG6NumSWHWV0gszb@QvKraIdu1^u0MsL* z;!w%zJ&N`j4t7GZ7t3t!8UikEyU@t4X&`yW^+I z%m^1{-%&x0m9J3fs%|bNRwHm#TP8aXUb%r!_2-2w#1=ha( z40lXuVgg4n0^30d$|nSL&n;EGvj)>U(B~KQy87{U$X#c@vA31($MPdH8!pFFCc@+q zAq9!K$eiamhD7B>2XcrZcpwEfa~j7a5ZRlk3l$HdDh?PtlSJncd`Cbo!f4{oU1^k% z4N;-$&)K)*snfVC-k-v^FRUp32Rb-su?I8Imn_U9u9aGCA{MhswiF~_xUL3H~(eat@>qrd<#Ya!EAPyC9Hp^m7abS=8WWyBvO>;el{1lmR- z3dp)US~+dpt1Z5Xa0*6hFc86ioqX3-*{12s{9EN*c7d5h-`m+*^NDg=K%iUpOx2Kt z)N<0}{kahP+0{her2DkJMh4HfnK_2d22`nmi# zpC!ZXDOI~EONjfFsY{rAaD|-K9sMF_6(2njfY~rj_Z%IO97PYZGNI3IEr-z}Zy7EYK#g&&3EYN`lLltedMB*jG@7!6}~z_gdH)!9G{mnU0O1U4iR)M6b}1pD>NXsrOyFYwuO#7+53g zjFmF;1!-15W9ud6WpFrDY8OY`ejs*6R>lxIWH5}b z<(M29ao;vdqvawaXpwm_sS(Gp*S6n7r@QW2A~OhzFmaCCU$@2p9?NaqgP`0$;8M1x z+GWwp2xccVqs|)_;OKMvDCQDg`n`rc7k1~MIkP&<>lW7I`+oC=m)~|?idXv4%-y_s z?-Y~|BbXlLD4CQ6Ni{w|?>^R6K` zXfdjnbRPikg-GK$HPh#N6zScHcnEaJAfa1pi82uvZe~x7 zn56y48k@@qa0zi6sr1*M+DOeS`+>Br#_G6?4B@AOe)XETpx_qeZsnXa37^21rR>yN!b zPU$?YL`GAMJn}jdhyXx-!|=7|J2)$FmwRCC43brsZBUWXQ6B)8oUmY)A>A_SW!B^J zxZQ@@00GG$Kdgad$eSEF{UL<8#6;%6R__2AKiE8ISF`uW;Kmki@Q!rk1m6-A2l~Vf zZ52FzDjj98_&2vrw)Q!;ueT#U*Aui+Rio$tqr(9Si_Pttuy)phEx|ouAN#ma7 zoj2@`w5jQC=_qanOdq-llk+5{2$JXJ(EC&X$o_(?7Jm0kKT{v=sjC*8D|Y zZ_y#l%)ot~C{2d9^dc&uEo0ZqT(ctH2T9o`sx#$=6ZGsdBZdG+l1vyoIx5$$sZ3 zy47Ju9%%9L-MbtCKsH4twdI?1C9HJ|A+G>=d4}`G(9BHs+x0z6WK-JQ9kZJH%AJzg zL3ko5~;j?*@m`GTj17BF`dSmBWrTMQB0m-?VJlB^_-~ zzGq|CmNn=^&P;=%+4-(k!DzZbPmE3R9hicOv~_dOd$1^E^s)C!+nT_>X9fJfFNlF<6KLr93A$Wh3_lp7)>Hx88wcly@;qtJkurN>lM`}MSP3srWaYVuF%*Q2qwr+>! zvnT(edL@5-oB9b&5RLY-`XTYkZ5vL z3z0tM6A0uew*I62H4g}JPE%DAdi>Y}tlI35AM9%^?suux5v}QI$T*E;WYeNA<_oto zFqfi&8w_^O`VY1Wnug7`Q!4!b16_H$Rv)~b-uFP78z^W67l|T2c~#95*?7C8yIeOo zL}BJ`#6q)f0+Nm2fuE(tgV^*g3D%8g5(S|1I$-Y}u~>)u+JETZmvXeDzrC0K%V|N) z0 zfpTP+s0+PHp(9HW3**H|xOOZX038}ESQ~Mlg^V94pDDM`GLs-N9@k_?fm=9RSLRk{ z()&iXdC7Z9XV?z48>4UTaOqvI0&;m{`t#Fpc0w%1Rk=J5o~NW5>&Z{~Z`SU5gey@d z(H`&micC6Rl7ZEHAy_<3d=w#a^>yK&DLpZ#6#t3*ENrrCrb&h|5W%LBB-44t`-ZZC zEHYL1WuhFL={XeXK2=f)*F6#VzaDT{i3XU zJstU|D>$sMV`E9en{?DZcj0ib$h|RR)AENKM`+NP+Ksu{LB9af9Guw}x$K`duv65hRvg_m?>b)XhQw%@ zKMN={%u!J-TjCni6Z^A&BwM}mXA}-uI5}Qnhi&_QXf^3@<`LT5v~C&IH}QSqf71lQ zuTc3eL!R;DkG0)iH^m;PD?g;txb$#v%b7%^T`0aBD79e!u95EaQRrQYDjB2SFs>#9 z?C9Ky>daKLzbdK=0$1?(z@vH0$8a91-bknnW=-%uCE&-b)x#nHImRz%ZEM|z$Hp|; z=h@^ZefVBcLy<8(Lx!^j&RD@C)oT=5uslY0wF;wY(zpeo$x__A?9Laze^a8p;3S~T zh$sD`I@O!|^XW1;{|Bl(>fB+}4)r*d3H2IV8fm7ZI_Kz~y2M?(P|X{DfoeMJAvoBA z6_B;&!R3fr@n;0s2~kq=EIzN0?c2^=?0zEDYV#?th(^bciI6r7e<&vp;T%<$T8Zc5>0j&}|N zKIzY9hpt>O8*^K-u-X?ByVyM7`^_rB381VPBlCNV2i`6jBMwu!W!DCbiSzt9_j}!b zq+{8aKXS+99-#QT4ADx7?&&?P51RCdt`oR07kcA77?98q>c?}FbTFeN>-{hI$_YGP z=ofBFl2oXd(t(zy$Psl__;cUF*;Sy0T14#oS`HFJ4V+U2?7Lt@KhyDGo6Q5$&9oAK zY`evmj>u)zyk**?g#6<>Au#~c0b^>YYLqgv`uyDzxj`WMoa#&3uzC&z2%ihY+LO}u z99%f3Un?9knmSn8K|hK{r1|;XVQVxveE|SVq-u%w?Sqm3frQ@0a$Dte491)orV+E6 zT1p=WknQImVOi8}uU|&(a9^uM_$lmZA9LD&G5j5hiP>{XyYosx0;78Mj;WHxrdnhD zV~&UaO!V*e_{>8>szb`))~!UDiyR1daUQhkj_LQ37su%I#dbrBd`x}b%15(cjNfFa zPQm1FY^5@t(Ca6^L=n`ykSI10#X%n2&4!@seh}~3``%R!5r#}+amuWU5@<#x{-lwl zNteUdXE|_>9U(Uw2MO~&)az8vKG3(7CIXDyLtVg0n>2AMgfyP=6~A306X?>3=Z*~* z#@7^<+Wd2^;Q~rFN27VM9-o~J)2rHFO-OYl4H|l$5>2AV;j!(QI3*LaYvU-c9mBCV zkZZB;8*S$|zCa9Qx&+zA{Y8~_Vh*a_KTc478hInNq{l1hd^VL^{?iF`Fy^?+H0_~c zUhyklTT^akJ2t!_%JH@$MA0N)`v)J&nQQ61e;K3%>&H)IvA=vrB1Gp3g7#>1tO{SG(!-^b?R z#JXrf3f~7%6k&TJ?J}Rq<*Mi=7(J^r(op}G2m~M)8#479r#@06hx5I5D2xKx{@97q z5nF4U)P4$s!u5^Bh6ak-pLmHSWjKedtk(NEb~T(10E%UWu+sare1-N%!m3 zsp$GAUR_L(_tU<;0Gt@~^80nB^ESQG*y|P%ioI1ykv%-bOLhLN?or-her5(@h4Q~f zFz)z%Yp3MD`Oc*?TCVP@Wu?X;>%&830zWY97Omiy-Tkq`E=w;bFa73;e17drD6X8R1YpIbLKh&E0%xl7<(EoZj+ zAO-2(0k%m0%7%uC$CiJaUXD-bCr3o#odm6zf0?`-@R_8i-(eT{Nk_kY)q|bkVZzrB z-8Q6_@}L!{q6jDkikBYGt&b6{ty6QaiW;{IUnsc#MhBVoCDKmYki?U2dMV5M_UrFB zvD|l2y14#p5%+ZZk%mg(sYKQQr?I8=^f=eNl#LA!<>qw5k$OW(ORc))N_Wu+VdjLWszISoPQfA>bu)ot@2&Vj&FWxDLZXvcwn`;Z=m<}2X- z24T|nc@kd-RuO9Y6eRYmOGj}a2q*Sni{Y}7=^dDozbN43yQ>Fe#HiP6wm_G2u_5{H z)_vCYcFpNcweBaiGsm{!o5(o!x{z*HL9Y20e3BZ{~@2o!Zyax}}+>F0Ck_BO(rk zE}|KI2blOB;%UZ=mKUC~d#9v9M2fFJRuE<83{n&(nEX7Smi@Hu);-I(R?+KIdzS}6 z4v2kvPsR<&H=?GTE+X!vDee1;Jq*7@_omUTtV~(<)*DA_9@cJayG_AT5)uh^hvq|m zYawn(e=mbz%W}`<>qc`mjF0^or0IoWS4bu`I*Ou;o}eiATP>fR{g)>AEE8c(|PJ^Oo+B2Ju_VA}V=!hU^M zM4)$mcRAx`^=xN0DApeMq1u^8L&~Ld?ox(*0lPIx-#Q{A5lLQy|AESH>%jLWath#f zU%p086e#(%Q19Oobz;pU(hDSNPzQzV#8axv+;>ae%WFo;>aEAu@xR_{d(WNt(t-w; zweEW77-G|164Pht4MF z7}Dk81JX9fG9-o?EDv|WLhxq~X+pbmq<#L7lfywTqfukuY2vEPMC}8(Q0OyUq0!(s z;#^|R^ED&Qx`>_Ri9*E{tU!_`I?Sy+Ya%eeFa=-)l@FY~n-i}$54WDBVI{D;cQr4F z3VzvCB5AZL5><%&DWCHE${U_k-04Z(h#sjUqR{UW>KL4&BO1pA5SsrSKe1}6YewRl z83PALFyCLNix1?{C+4agsRB1x#a56*Qt(dO$O^J)%WvqQwoePwbF8ozG@$TrIK9}? zb%v^7eOQfd2+l@F=OZ1@8!EP3yl2D`z4b3Ssa`t}vlu|LS{ri8_gej%PUe}m1Pw_ zwOe^8d6o|JVb)Ynl2lfXQ(&__AB^X#34R^2}> z@G8l0cOY`#F6mO%M+&e+dpH*jXQEyr3C#yYsj*Y#ht0J}<`GrOwrtwf#u#s<4lC;! zbK@_@>NW04i$alrzjN5rB>f%7W4DB-p!H3w9<0R2Yl{4 zg@ezmhO2Ijd`!dkOBEO;jSxJAa=u2u-upp&&oGE1d$~J?(#0=+ z8rP$YJ6?*2``vz;+N5!FfeHH3Lg5>9Rgsq-$}jkN6GXECmX-B$wNAAO3Y*rXN-Gvu zS4qGoacVhIt{{5k{aH?uem?Yh8*I&0xN3s>I`Z?Su_4(D*KXhO+t5>Y0#>RyHR$A1 zZtA7xiK?E>ZQ8xSO`s8(zZnU;@%wpcSq1zx1#4Ut)@BQCO+UJ~uAob9RC-^g_VN2~ z-D>D^Esayfws<|0hAD9mp3M#U;jRSyF5OV7$yLe7Oe`*0H-B!oel6{6aeHri*50;X zvh&Zbj7mlCcE@|SQ&y?|C1&-*SJyo61CQCu)#z$z73)4~0L26x`F}Jk!qc2j1OwI2 zinB(@%5kv70ya83`}Jj^%Z$X2e{ye?e8JqAXfmRcCB9F~Ln~y$QeC3GGosd;JrCFZ zvNM4=ao-eG+4#Mqq*IVV1?ID$L3`{V!y!&J2u#1xWe}`g=rFKT1=H9Vd=sGx3-e)n zvY2es=jzP&4IITfa?mA>*0G^O=OUS?ubO!46Y>s#RZ?DhlYNeD!#Z|6l<{u#*A!PZ zld>VV29NTZ%I1&7x!>Pg-VphFOGp8#!qO4BHZc*^IB^6Jy%@p(mui#`Z2$@^mtCkD zfWpw(8t1Z0Ae{IS<)}Ps@?yL^Ve=6e6nRf^7#q65hkG7Jm>p%n;hG0;Rf4-*6^G#i zlCnfk07u^t55Xn+pJQ#fx;AMS_3iV755V)W1bV`ps$goF$BC*3oUl_^{o1JgPBM=6 zk(sL&OYQU3DGUo(J90e|>M{s11IQav@y()trLMJGlUCZLgf{Bs);n3+E#2zX-&H3( zHfXT8>zIl6br11iUf}!iD(WFm;_Ey_Mb5&SIsy2mlAeBe`Cj|%yPxDBv!Mn_s*QB@ z3%$HA0exRj_#7ZXeZ5Z`2v=?6BPeujP00ZJ+>nLX=kGxjK07dI@$I@1=7}JDAnPgO z$32!h!AGj_jn523(S1=)otYO%iP;6JwggLDo48`;zQgKReWBIcRD7C3(5)VMBD}h$ z%u-nhamJ!(9`pO-^@TMunAPdaj2mx(Ns(E0DsE&YK$H2UUCOJ_JMBK(cPv^4+baTG8 zqma>q$A>i)@w3D9enoahFcQ9%fuj*^!=ZI8&+)*V#suGkw`$S^P^hHXIj#Za|3KaO zH{t9->QbWK6LOTZ^S}JfJla8vNyfROz9~K38@mLKl+*v22UTkzw2NTUVvTkvJ^77q z>wlnRHGiu2U&10u`FZyWbouyg-XdVXxmS^zW4=`kpr`PjN9Ge1E^G-VFpB*J#Z#6C zSJp<77+3a-AD|qW9;i<$erV%(W)>f>C&u+X4f&5YX&KZa(Q>rt2p0L;3i6|0<`vjD z76M-Ukv8$LmhxtiStvqKuuDUPrUR(`!*R`Q^gnU62ZWln-<}Xk9Z^wnQ|Dz6@4g6s z{Qv%ffGtplU{YXp^Q-%qt?zE?BaDupx8=>E0Fg-HOC zg zp^Ole8u56Q@-+3930XcH(|*O4TmxV{}#%Cywj5T+?py$nIjc0gq|#wW&e1OYn{82V@yiSEyGtnh1MSebxTfeZ;jVlaY3>%rXv_YDGf}2^sCV(<`)_cK3Kx5U40NyXdlTsO8%A>Dx)773D3LWEAL3 z#G@Yn0*Obbzq!Rfu~4^t)qJ4xw%qoaPrbRmQi$c6}kR z(nY8K4R^7~uhdhI!t_GZQz$_9R5{BFm!fb3TGNkgRlqDiv&2elro%@*>zgYV!N#3- z>;EV^3x_7VJ`4{*LP?QM1s&bp=u1n-5F`|kk`@@i;W4K~5Ye=VvW@PNsgCe4<+2EC&{N1aD-i@L~xBkv3r>nK_p z_%`B5VBc;Qt4eQjzb^gv1bd$Ab=kUhNCWi&6en}n&TBVs1`r+e*s7$kYJ8&Aw8POm ziF^+2`mA$a*RI|CTndZv7A`b4(>R}XrXJelApHGwjFd-$NkFD z+mYlwI-Z%tS&s>gQFI_FrBpL!;Id5r20%sO!xif2CzNwYR~Yzk@*1`ziJ=ACxwMzgG0^TnFz> zosy!fl5&&ljWB8}&IpaLAq##2T~z+r#z8lfeWiUgZ=e1UC!BC#XXV-}7MrD+zkg!V zlrx}KGk>vIsxt5>vF5IZ-I&(kprVF1F+sn&4Bnb|bSr1AxD?DP$UlXsgvjYB%;Y$8 zZ(anvZ?jF;7VDHg`v;oH?cN8+EP-Q7Q(|Os>H*rZ(sC7O5(WN`TzpKXvdg!7BuqnQ zA8iC*nCxjEmE6-)&_y?gibv{6t$TWl^qxLa1xV20AlXs@>Wd#L4~Rh(rC8M6q=B=OBV7zo>#~^V?HKqmos};Q4Qu{#*}>kq-8&4EPOk6%I09s4&Xc z;I#8L`D>V2UQI<6$N50oYH zf~8p<;Zcm>HtdWWCwQ13c)Nu)VyRnbq`gnHi-Ki_f(ZT zFC$ew@XDTcI}EE*Kx66LSwG&Zd+#N^tbz`frPpwwDr|PiX+;t%^}WlH;FHDuAt={9 zm`}KF0ARy?w*LGoU@u|7$tF6CT!s70>2xX&3w;YtgQFu!FN}e~IBr!JPjcmUeGfO* z>`z~SN_yT4VZVb@TR-~XCMco*AuwbhI@h2*bL{VaU5JM9ly7;7-+fjKAKC5~DH+fY zsHU&JC1Az@sT}X^ZvxMY7v0LAFu5%5%{YbGBJn|Vy*BFaq#&{1_)c+3Ot0D5qv&rb zxBT&uD5;KpT4UbUbjFyzp32@}zdoH*h5$^PpD^9)nmd&Wy)8O!n5v<4{$snc`KaxP zV1TiEfEyluvi<-HO4s`@kXD?v^o>4AIzZ!%MbhkxfMmf1J^aWb-txXiH%u8M>Cn}! z64Tm_vAe12@}iS__!!N7rqwR-Yf5+KaIVB|AVbH=gel>NJ6*AZK>#R52%!*&X5?ym ztI-gCM`?l>DHl+K#0{ul+CLzcL2p#=jo(uI1Kni34+6~S*S>fR?ta%T$K18zn*1U8 zwG5Ww`U#w4N^->YbFjohRy|tLSU<}ASL+8gij`8-ji9jL$ACsZi_B85C%Jt8K+m!P zIXBsFPhfGmr5!qEB@1Q23#n)-KQ%ouJM0%(LBQr_H$vIhd=%~~cn=u$^mj^R@_h=> z(-tk@%NDD=->-eo(?yxQe!1~FV+}Hu5*Mt9&Krmdn<4k7F&*JU@tFPg445H*0{&1P zi-45JL0vw(KQ@HZS318gt9BJ$G0Le6rMtB_$5Iq_lSgN?QI8~(yh5g`%SDPNlT{f3 zCHMwZXC##C#}*g(4}4jCp#y+~MJC`I5us8y^_|Y6K|S<=YH`tvK({>MJqM))KC~a9 zKM|XVy!vp>_FAaGvE;dj16})aM|gJFHugi2^MY4a+TZK@-lpb}f47(jJGnCUn&|e$ zTRooXZ_LLqqHuKE{bi-hl8$n-a;K4F=!DZf}(T5v?%(FWMD{Z`=r^m!z6-ZXc z!0%K!W+A;!JtghSOuJ3{UpvjgDJ!NqON^=Hs$iRicX^Gy4O1kus&Zu@FKAM|y5HR) z<+MK;6Hy`gLwUMq&C#}Cyty1nN|6QwAhzTg1IHwl(2%l#;~|TBdeEx@csRAndV~d%?}?FAhQIdgT&U%Ken!wc`>V@=kw<@b0 zALY2}BUOUB(NINULk$pJ`iwa>gbNQWypiBws7I7?BNYPk^cHJ@w?kX!mIkxW-S2pG zJ2?lFtB%;@^Nf9qgJ*uV$agRTb&f6UP0ol6*c02)e8u+t~FTp z&4*Zc);VvQ>;VL~CCkKefr0y$OgzPv0!5MQq+|xuDN&0TfbNy_f zL*-ntW;9sqitBc$fupvwFJ+Nqz|g$UjidiC$rGQAAQlD>r*s$mO~q&0HqbQSIU8|} zNx^OZ z_G$eyl`N~rS4MynG!lBz2T$<@FU8lcrlU}4_V~|cEgu~|^qS3UT?zZjVBYT-CnnwU zmrM@)h7R@CUwh&_;;{29rr5s~3>5Y+)ntZ^V0>?B5NkMta(92SKflGvb(zbg4NP(} zGE&5EWdL(-7ze{y#7%9e7=CydxKqAm_~VPiE_Ode%XE1 z0{38F25gS%u;u>~hD^=LlUl_ZQq2$L4_{oyrR=NPArudLI$542P~B~;9HB2xs5vU`Dq@Fkf;FyW zu5DshoF!V9@AoT{`?~f%dtEmzG5Tz-FXwLCk=^~Lg>Gf|&zRJ_L5cEWQv!<6&wbO& zuhPGNE01xZowC{@m1>vGowBM5%L)50xIg(NTF>%X-A8t5p|PI^K7REsP`Rc|3Zq#Y zvyFs?U(QZpqUrs8ctXW7GJw>R7a1@nqjZh4skXsBFZc7n^9YCA6K*7;R{P>vqW<7b z(M;Tto|8YuGc(FlzF^IrgsM!v zWD-n}6^Fc4jmp)EuzLrO)a5`vL%Wnz*ey=j!ItE;Mp$>yLHhC8(Hy7Q(t>{vM~qbZ zUA}v54K166wQTXpr!1_rP3-F_nC&kz7r9(N2~#~uFKLs#rjtq6IwMx`0#r$uP|pAN zbCsPIuXsBq>`?6<2o9=3F7k3Oq%w(<66@?6lG{)C$SJd!t~X}?d3rB#bmH!Ky;Qsh zc{SOuK4h6QQD}i#wB)ax#c*^htFqF$bntF5?!MpPlhJ$7%U2IiOVXaNGG_MlxLE(V z^d^4+1}~KgRd)5HcRU{>red}02=tlw1s#yBmTUWEdn83H=569xSUU~Z><_e!fS1Ug zS?SIBc~ZSVc|~Ll7$@VIIPKF?0~Fp}hT3xxd|;I2;-dnB@k89~dC3H5Iy^g=a(!{b ze+uvpEG(MLc5Y^MV)P)No@L6cI6GCXA7ppIb1N}nLM0@3a}S403EA}Y#J9E6vIbba zWt6^^PQ6=B2>!wv?nyEVBhQ#4@+I{6Ldcz)=Df{jY0JsV@kZsAD_v_~bPBH3uj|LG z4ln+XKr{>FmD~>9L->+#hpd>>zBK3w8j{(~Y4w9l@&ojZ^{hB`yBsw`Z{2I*ko}7N z!^+B#Q;UnNlS-L})zl-X;t-Liy4bD=&y9uZ4w=Q&~&twi0a7jzrVPblP8d}X1TqIJxCFW6?C~A{|r2} z24UTT9-Xc!)Rxz;@Qo#_&K$L2(WlQ@2gzrp|AFXF_s9qedUEI%0wDCa3^my_(9T{d zSS{N)3Ijksz@42F%Jqt1#Da31gqt{Gg>AAzLYM0K)P7w)!+(=*kEc%B`E{n;zWu8C zIaN_VZX>0u-XX7`O-iS3m zHFdyA>jtfEmP|J8s0uNDOGZ)>_4|0~Jr#=e$bG$8bQ7We{c%w&Ldz=5b*2OyP!deU zpz~c64@jV>LT#@XNxfdAK z=@GHbs*IBON+t`5%*^e{`Z=kTg(2s=fu3zus0;lGo9zut>0V@;4(<-DC@$074jS~N zuY0WF^~+H`rhdnJrHwJ0F2$75b5cTDZ}=9;O9$u>_=Jt`!i`RB4AUS=NZzk?4mk(Ps0W zph9^>eTRYA%RoSag=_UUP6nYXLrZ{n8NaeU>I!l@+X2Fc*1mqSg($c?*hw48bCDKT zpWPEm-%%4}MT|b!2)0^dN#a2KQfJfzBA?&<63k|w$sGYcNi%+`xFU9!%o4qi?~C|G4;#5B~{-NSNXIe8`xjO*`Tv3+%^ijt?65`5iKFzERxmC zE^h1@$YqAN&vn>~)+{kn_q*AxDP*jd;-mi~Fn#tFV`2*OtSRF$_(Bl= zkT0ChRDH^3`23nx^hzg5!wPSA#e)wsqHslhdW5gViIH-X_%)X;SUVR`)#;>G+|w=D z&e#j(f-@0lap9=qwhWk`*j?S)S+mL_lCwCn=y+d$i$iq!!+kfu-8C%d?{MUsIvja= z=r@OtM{OE@y5YPIF8Sn04dMyG67x6UF@T)f1y= zBQwogn_%BHE4$vy&Bir->RkqlhW0fI8{;|OcC$0%C$rxGFmSC4GrZ8}5mS25;$CiI zyq2smza5CcTDUYTbKvLr^aD>-;J`{wp4G)glyg}B%U@ZRTx;y0GH(k$e|C1R@E1~UmV6ut=`RD;A=7^jn>_w}bKb66??TxO-DQlcmEK*5JFjc3T$de%eMc0(#8fzgA7V zs_&V40CO=)ieJ7rKidd>etvAZDQFWh*kY2pRlq0Sx0`eIR0oVbpgE+;Y?URS__)Eh zLPb4IBF&DyYCe?^g!2w`NjDw$lo-6^qbsFJfOR zt&Ie^t|eLM*!xk5InODXzb5~5>!zDQBHuzAF1p%0CIU6iNcl15g?ptH>or!hv%TzZ zXeBv1&g@H9cY8H&qh8;9Q*z=t=47Y9jMV;Ermmg*;-{${eQwgLPTCLM!(s_D@_*V} zz`m0};zJqxY(xXtg_1;Zs~%YZw>RYy(G-hjy7a@-;*K@x@3$DaBgR~>0!cO(qsGxU z`i6^*9j+JjK$kQml)>87rmnirBYty5W8#+mnlp^5eNpIfN-w~g)BWC&>%zDZJS5?9 z4;uR{{J@~h{PlFfUb!u6x+*9gI@p8E3uU`N!|#Shb)6LHJk2YvD0|~FtVnAZ!{zFMc&%<`CJ9=o(&I=zQ%f>9P$=b-=u4HaCe%%J5ka-(T$pq7XDd#LU1j(A<8h=gsZ%KX z>>K03-%5|`X3(}|i+oM|c@Xs5PMPJ$-c-K<9f7xqm})myvdW-Bq_|DImzDYSXf2cK zit?+zm#e;*qN=t=vzd_H-L1>5lYkK~rm&b5Hk222Cf^_AEt{|NFtAfqs3rrG3D@#S zJFB%8FD$bMm9mO4Tc3<>!G7_Gh^~7oTXda2 zl+07i7Sp{+w?)VFWw%4$h=@)jF@otbBVHNF?YFjiEa@VYBuwKr5fz6|7v|gjW)>aJ zE2Uc-22R!QQ5eQz=A~MIZo2iX<#MZkE%Op!5u9FsK&dV(J7~AaCWC(XiDGDg$eXGO z&3#11$VDjIFP`&BUFlu^H%?^Wy1o7B_%pvFVq%#mcZ5`U9=ap5xbxh$@~-XxC17td zS#UW7lH4j-(c#|$X{c^I_LCX$YxZk7^_q8f&sFB%2K1#-$LyYz0qEo~xKe&#l;DJx zQaHOZEezf{=-Ac``3bt>Ionq!#Y}Y)8T+j#myl!urHw8H$IY#@5t=z}Q>#^ts>GI+ zOMmCas>+ocq35n{?~fAZ)P9{bTA$4nDl{O|l6rZ-%QeZeNZhzrvi?IDtmp`xv{)OA5x!wZUgxTDpE8%bJ?-joz<$$akJF2`C9vHV_~S(1@aE&F7qn6S4dxB z{Z7{zI?ogOFew$(Pb}VigZn?*0t`6o7#YVOP=Dv)E*(%D+?Te0{Yzc$J<|601t;Zw z+OYt@(XdV#&Fa^M{Lw|6;`qMa`6YPy$y8CU<@VvCu4Q_|@TKJ}&dhn`%1Y7C?8tU} zndmMnEXAma$-SA=7Szna$+klZt|4M4=oizI8K{0o^(oIQ(s=`N)eGASmqB_BKB*l9 z*}wJ_2@H?gON-bJOy2q-AOdCTW*n3>EMA*AZO0VVo6U4oUR($UR=Hw=URrkQb~uM- zF*SZs9FslJ0{JnKq{_V?;LcDd*5Yy^0$fFD;htV_J^6JI2pzArP1dhr{SPE0y6ZWx z0kTtm?=vcr)_6D6NZs78pOQ);3T989adgTh$DP?|R$tk1xi`@{U}Q5g8nV(Ux%J1L zq;Om{0c;zrNG+sgNw+~PnJ8+e%(Hgc1%Q- z2u&1~G)QRz6tX>`+B90M&7Tw1}|RY^gG6~C zN)^c6o(O{rIT<RBX@9{ zV+^0@d2R>UJ%*qCA%mD>X;K;4cZ&^=O`q+Xe34nwc$JK&7$@?Ae;#AbPlq^L>|VOu zvbnih3Cml}w;tZRr`2~*r&HGW_#}8F^ZVqLPH}cyuYt4}JAx!#rkiLzFPvC|o1)W< zCHj_~>c_T<0stLQSa+y}k=Hz~o$e2JcNpNLmmT720v$D7bR77^aKen!ekVVmOMg4a z@+f}YJ=}3)guSG2i^VUGTJzY7->pTfJ!fWKF>tjwpKV}>js90d&K>~jYTG|_bF)tz zk(cHK9E|{{we5kr9+mY_vbZMOryEpkzs#7wE&F$W5mKPNi2r!o!->X(_g2_uG8(pkf$FfwS8 zpXDYc@>MT~ZgNZ9WZfH_Yj_fAj z1-`UZEO#9F{myd<+!yW*Jx>um(TF;pyRllb1H&SSjd8Q;*Nu2VA4bSbo3X1?6G7JG zvdYfjgQdYX!d3TBk1yp($nls!?Tm7KvCgI*6NfP@_BAZ!ai2euT0~6qZkz#gy}9$e zwP@_zW;#Savvv38{RU?4RlX+osn0}Enc&d1;(kR{R>FwGS3g{hfL5K><9-k!@qb2Q z5Ry68a71Jm9g)51hwllfXiveuk@P$Fp--FM$}*A+n=Kct^^12CQR@a?hd#y&ehpp- zjg^!&vDK8g5Mt`u4qn{k5Zw}PhK{NK@sY)^7SI1kd5(2TGC?sryI~>}$1^=1Hleu) zx)$!8&}o09)i!-xXTiNbTk7mzZ6z0A(eGZKjkuS1t^2&Tp)qiA=G1R-yh1^Atz9Lh z25)2jS(7o{$!tt~PQb!1h1D@qW8@ErzorHlrHy zkzZnc69?`ft$|XcEzdq&L$WNH{W3^PadKm$_El^9d)E>5!|8tG^iJu=vvSrD54~2U z?8%iJn`yUOau=GI3<%CQzrybBY=19EM0VcGm+!c1$Z4@u1}s|xfP*v;f)W`O_+PFU zG#{KcW`K9)0W-gX@;hoOYZ3J+>&Is;Nyi=?Gs0EzTpLZTaBs4~snubMaJd*YFEd>SA=jGcyD$ixg-*7SbTX9!Z zeEoX1J*78yp?JBoKT>(kG@-Z1#z&!UYAb%mk~qs16_bvQ9wMn_TRPHHv(|?(tF;6K zf@AJgs|g9d%OHedB6$~?Hh$`v1|XS_uJkENQC$9SAE|=ap+;h=+;*%W0xs6qweveG z4?NNm1nfAeWHZ%8)529o?mR1lWu$d+(`=)#(D;8KN;2?Bh4aGP1|TlGYW#cg+s`Ko z(S4;I-#)X!?kFhrD{)3x-nFBo2G8&c{~72!%7LS=X;G##!Oz!pji%K8)agF%-!hw( zbh9*o%ex9H>(`sT6si__nr4^4Q^;Mjq^-_6H+yb#w~Yi<%btO=JIk2f#EC`bR7GHE zy8>-`Z|)-?QT#r|F6@dkZDH8)?uE0G*P>2U#aQA(bQq;Lmxkk7Yuuo|-3<^ma^OgT zKf=4>4%dVc`cW%NGuQuxvOBHZ#ZtxRB61qyQCFIw+<1fVeqd-@YQo+w#q?JS7dhi@wH=bn+>M29&Z0_B`q4ul((5#AU()eBd|IYvn& z`K&d@pH}kstWqD;AJXhKP%rN;SXIXtM?rqIVc{PqDY(>rP8?W1OCKBZFtJ*-wpm>X zjnA|B7gaGF6vsfY$q!_usW_vpx%ZS zD&H6An_MIv6Kqwv>;!-OYa&#z1H0~}sXqP*-bEb<*Ww6j2Bm9qvir@QnO^yYb;|=6 z;EiZyjJR~SaFjKF$4zdiNaz?lKaRe{5kZcyC6?We#n4u(iTBhJiLQU${((NOKE#V1^zW`MY%W;3wmQT4%lVsfR(2Oq zEUw*>Z9mdg`I_!?8$H&BH9fM7Sa%Fybs82gq~94+nAPeqo7t~^iWzY{l&=ngG+#nu zI(PxCLr1mAKBa%J$}%iG=!i^a z$U|+t@%5XrKn=6%PFM^$;ok=$KI1%kAwX!{=)8PDUxS7s180-WjY)u1f`2nsi<@l5)#=@xxOi^nZx_L4UiLS*}-T4 zDo3wd_eKi&j`ly$NPT+83g$5A-0ZOa)a}Xy$EW3zjc^PSt}V{GP&$}w6%EdVU&BsM z7i78pIgz#ws;r*9B5=QOQY7ydEMkZ|3VsI|f}o&a$&&RlxHM%zcfTelk{x+O@&fHn zDqlt)N0j&A;gMHHT1>ZKR2@pCpMcAQi)dqbd11;bCrHRjD!6L4ehNtRXU<%5naWGe z98Ngg1tLrvL&I#5;VNjNNHM7!Vo`V?rPdJF2G7h?HvMiQ>HbDyT4B!p}blKdu;)a7pqHOfFsb=Ol&>vWLFPTr54-R0fsOzTUx z^Q!D+#gmQ}=^!I-|B1e%dWW|wN#JFR#pRO_58@^JR4M`$o3G&mp5Q7KZs03hl9gyx z9aG^x=~u->38!xZ<6Pb6??@y4&4xE_w z2D@c=JOhfeMh>=S-Au$xS4z-1xT4 zEw7p^_)WRWyOt7pJy0RgQ$d80DcA`iQi0#tFpnVB%aXp~fu8A|b=+Pik&t*AU?5j{ zq#fC=zPo!(gH(P9J@0K{h-za&E&KF^^5dk6T)*M{5!TF;)%Bg!dzbZl-_3H~CVkua z^U8%e>GXFrX=SC`dRnaITe?r7Q5q=W2%8!yp$?vTsQ6j(&5wO{a6MkuqjV9PeHM&= zRMvYx1NW^rhhjZTnI-hGv(JT&bPv_tT}M<^LZwzDY~DdMh-!61$)U zG+{DHQpj9w_&Z9^+6J3@W;Xd1YnF|hI!nfx9(IpM$VF#pp`2}}Ue9z01p8#`f9ekV zdQFN|yPkEfc!}_Rn8m!>C;VW%I9Lb^`|5Pyo8;dsvIx~M>cfv;=~_bvdVs+isS-Wj z0)gz@zxcjO;}RIwQ%&h&yz8&TH|wVJq&n$V3_rQHG7iBvHT)`C*LaPj_mJKNE`qbJ$ilvIY55!}<0i4kZ5bl`eBym8 z50KuY#Jj51nbiDI5JX*3h$9v#^T~l7SINtl2v)8kSkdB>zi{z%Dg{a{HmVvXVArYh ze)>0$L5YA8v5<%#Y)^Ng($Zq5K2%fMuT*`{J;1~(QQ=)@EUxL=RA4c_e1I;oNGSN} zoxI|srS_{Th17H#i@vE}iT!g4A3dajk!Otd$0CQB1AV5q;9_yOhAbC%x^_4*6^Noc zDFkw*WU2f0TJYv)uyulw4%PgX8rBN7<#}`%3cmKh8=?Y`u*fdOfml1-v;AA12f^ty z-4}0Xbi`o4)(KKo1(Xb71-Yzu_bm^$IJfo>?^zb70F{roo&HA$*I`$xz)$1Qv_O!p zg_Vx%5QeVWgg;>V%mA6WW>84%`OMYuh5%u*kqB?MNY>Mq2{!rm&97i)vy^|np}o8~ z$LQGKPp+w7FUv9#VPvr;4oi-TOh5nm546z4YnQ$g_G5s?tqSAdb6nmF5v1?*+cnkO zUM%+Z$ejWR1_>T2|@k?F)aL;6B-ogtpK89 z;Sd;{l#7+JiIIr88YTPyn%J$x^{34eTUhnBsS$qdG@JU+6K>7FRr}P9}N*J8GTNezq zwGG{cr$)to*kMmxP%Z*euOmvCFG8OVUGYt%aF?1UK;R5C+CGT2QfFSnQn23p@}5kW zfJV_a;hIk(3Q5fu5h$N<6~-;XALv7Sld}naw$X3~@-fXf44fIsjF^5)&`&PL!KWQ- zH(!H=zg)k=QZ!-`vEv$(Cnj@}S2pCKldDwkdEPWm-7*Bfo8@es7Pz)7bQZxd+w_bl zW1TNM6BNK6E(P;&DqMdqx*+c7eG0HX_FZ5}LFmXW)1SI_jlNEHg|MQ(yFmN^7zXT7 z@b^hubIi=xya4oc8kVh1wRlNv*%~jz0h1CRtXr}I5SM^`!)_C6S-r9`Z{Mirgaqr<`EwEF81 z!*Hb69p&!#rJm+F2n1K!y$y`NkdJB0|NeKRN7%1h+)@>&g_UA-Nc9@5xt z;nO_`bzGZ`!p)s|HehY~;}1{yJtBCEcl_Z`rYe=|fx`J=SK!7*aukXxF_f+@$2H(u zwGgUfBnR$Ug#qrYq#jFXL3bm^Jq3-g4N2%Q(xtt*TLvscf8f@K_Z*8OYhm&A^7*d4 zIVt-y)k}LhH|Wp8zF{=irZ zoU!)wH5JOd&Ed71N2#+7wFH|Heutf5Hk1vT`=a$vn73znjac-n+MfxX-+x{Q=#Ut54{vwR4IPt9f$u6jEak(&X=Y7$O*46lw|Gnu zW%aLQ9c1N}YNLzSo69D?#hK?JXpOSi&CRFsgLSpaBzBJaMpjCtzL7RTyb?ba@OkQ8 zr>RlJcT#xVvhAUP>%bQ+i3U@Zr{nkWwFv*nf1sXFS!_pPo3phb7GC>{^b{Cyiws8( zdAR-935=;fORU_veA`&;66jW)vAje6rM@ju$%KG~4nhSNTa^=Uc<9R}Mqmv&)iA(I zW2aCZz$A)1*uUBp@E_dLx?a}e8&RRHfvI@EFv3NA^6uKIKF%h(;!Q_l?`7jz#ihw5 zL!UBnRN;;_*PMcUg@&W!clhJ;7qn}3q z3p7qMtX`ty(UjfX_i15wiI{{jRXJV3*z(uDL<`oXMLPhQ@bn``F3um+U+L1c)R50- z{!*spla`5h|7$+I)mEP(rpa>EhN8IM=DuMHbuZY|2V0p{fnIHqp6TijQL}W*Pwq)R zFzn({nnQ?WCVR2e8G)$mJ#^? z74rlC=UkTcCz`J_T*E(m40*M&aU{rZmm^=AACUu_b629`4hr;I0@?`xG8QRh!*(AzAf_ujIEz=2)#heRwv zAD8Pek6wFxwtLG(2+HmcFo1ZiX&U6ZYM6FiDUgeZW{Q@)@X1JRW}-OvN@b3pluAHv zjnud8_cjyJCv_Xvd-lTBDFL%E@dA88e_lZB<{ieb6lDM5TNkCzh&{O@mKk$ zeXb?P%rCGHz?@qxwyeHQn;^|&Xdc$(3?6!bMUOE z`(%WR1@up4MFL)BQLGC^XttZ z3+HBL*C&wqMzcU*hW`)bw<;Lw56&kuzuhLbC(txPaKec12C&AsuiN{Vl5=OIn!nCv zlp(6INu`Y#kpDRVUs|*LWUV>PYcL|9*EGDfxz7GQ^~<_X7ZcB4OotY+?Kj~AzyP9%Oi={UFY-@kkb z?${uBNB0|6_6qsHBvPgSjx7kp*v$#EbtG}>gD=~)H4&1(68HpmBIq`Tt1M`OuzH(I zmN|QCD&86b>fT;?)J;sUGscKPTM_5wBo;>5W);ch&1{T}V^j5syxaw5U~pb}xF<`n zmQ()ho?dHF@k04(QM!()_t(=oecvbN)#G7!lC+SOk}7@tEgNo5>H8!viF{ysZ=U@* z6JbhgL^mUvM0S+Oq2nM#FRUbNt6$EJC%n`<@Xm5zsy?_B7(<@ynRBmhtsXW1n!qe- zloXtXkVO!})f0c$n&4Xr^%xzn9-HV`;H;P$-p&P288MN~sW$H?JS2t&?sAnb75aB-^oVr%Nl z_kO*g6fA&up8GSV#fnP~32h67uP5h`9D>Y$fU`(Aun%MvVDH)V-%V1$ZzLO9Z&v;G z)_MC?k*928KKns-#6{tEka>jT#sdH;m}@{!e6fwMQ+7D@doq+0NVE)bJNzO6rz+X? z{sFQ1{K@RPWtEZxj-x~4uhPPOa-(Jr%XCkIN~*FOA^7vBuFGNk{>vWj9gt3>Z=g3} zUGjIh*V4&eMDiCuS;IxiofhGPX(<*L^)ZwuYZ>R8hoar@_}%0q^FW#kDPlF=tzu9j zkm@@8q3ID1;l3&lWB_}7hi?ANMr!6R5ruEXbMXM^u z(z3n&ScyX+x;UpHX?{1e!G?c%@7JN5{s}d3HT+*F;+Eqk9oW7JGW0EcnmR3jaj@2L zP(l~`S02?XdGyj!GfZa6aag8M2C~@SVwdlCCKJ3amq~;IxOcTZ;0NBh?rsMw3;ba~mN$(G-__=k+=upgr&D5cV>x;g?fKDF&Rko@{%09Y&m^KJPXwFNQra)qXx9Zm zJv;H-NpqMWT%09vV7z};j&n;~vK;sZ)#>pIqmXbNW$0$7s||Si3ww}01??vT-&qUF zy)iaQmvQ$Eu{hYhg(A%o7N|Z|bs|@&2w&aNz`R`RE@*8RXpznO_Ubo;J;ee%ksEtzbvwGv1UM)@`DUgk#39B~yCVKp3y8<8acQ zuczyjvWlc!bbSz#9+{ksN(fWr$FkAsJh*Me`u<{LqgkgLeJMW>b~Nng(Ec4K)V1-_ zh7uQhpD+ux{aWNb4^}KjPJ+icM$Xf0SeW-En0KgoI``wQtnQfp(PbE3TDt2fDrEuD z$E19!QD>ZY&VBuy`wRmo*6ivRSjDI=eS9O^&GS*;qLiVk2uW28f za$O+82as1H10rH?$~zdTy$V+ME|?VFPk1WdQN$TYU(-Qu$yVqRZ)Z8~UwJ#s9iK<^ z6UPRTCx4+m(A>&`bhG~2td7W-`F>32H^cDauKC2KVANF9`IdywZZo$0U zgR`SRJM!2dwtK@l;U-_$y~~v7ci)(DoiLu8*9Pwo+5dahO`?ID=QB@MM!7(@MLE5p zW1ga|ih%`a$Fp;M334^Qvq2g22t6LR@~8&q7}@p`r))l}AiiexWW!C~V)DSPBJ2L% z(<~l)XzoZFC4Qo@{~w4CEqTKg)-BqJEbOc)=wAKnfs{t1Bq-NOhhHMWbwh z9J$m_NkKl#!w)MWGZp9-9k-`z)N{=4g^mGC362yL!|!doLw%yXKKs!s45*v8Fa}FJ zN=RbPbbUtcWuD`b$7S@r63pjTBu?J%Y|5%x-0{8n8AxpAew} z4>SiEG`q*2Ii}4^Uol#Vd%~m6S@=t=BaOb~SL-_5bAAEuw%2T#mRuM3b|4QEczstu zi#c?LU4mHRKcm(A3bMRCuseSEcH&TLRrmXp?fTomP`29)c)a5n|No%a)1gOkRDWfxqI^C{9=t0=PrRUMK#AeEBiS16@4d<5 zoCNdj=UOty;QieJ^{;K0)+07+$#-qE^eH|6{uaLHnayH<;&tj|+FR-w3Z})l7yzP9 zU9|V^bz4ojVNjK*|BO_IO%{*<>TbCu`k}UW$C{px2MaETH>i-^ot3#j%M-e_f+;!CdId1EIz(F;7lCTf^&ecEadTaq;SQ54 zX!N+ISw$4or0nC$uYD$Om7pnWYzNtE)uebY1@RxjijxY`j&jgkV=1xap)w2nH#4|Y z?T3Jxo-B_otp@3I$u}dtz?VRs0KR@mg8Is?102^UGg>z}aR03|OlqQ|$7K{%yZe=a zpfIv(wb5}u3Rin3fRheaq6!Ye3ind6EC;LNeakGNuFrB!L-f#kQ<5dQMlCR_o!J`3 z3Zz3*Q&UfnP=4rOCBfQXqUW@@G((^*O0q?P;JIndM}QyN9f{i2MSM_ zCA@zt(NgZpW$w}to?m5cbT z{!3Vn1HyWKK~pFTVOY~OL!l z6&H5e76LtEI23+hGbS~C zUs;UR(=_o&gH_5>mX-We5v#9ApYr3YCez<8m&etqU4aOzf>^?$PGdi&=0#|p}Zpa(!aT{!PqJ*w=uM*pw#JSkK zON&&EBi&hUi2FM6ypOAdH{%j_4ZWx?tM|7ryOWCR8GEUo^6bjitJX`9qi+EI!VdUD z7Y0AUKL-TmowWrRX&i?>Ko4!>mFReamj}9mG)dZSLi`lgxDA{%VlT0r-*R4HVG7a& za1hyE7V0=Zo^DfhIu~Wp6Z0baou447c?qO~!LusoHat}{GU9x&xs^6m|G4dHG zk-XZp>HTaiOcK{S*N5^vb-0UhHmTI3jZt%uLi3h-AM?sIv~OFOwJIZ4sY6rPAA80z zZOO7jdh#^j8#3?S!L4!}E~KOx;(C!TN3%VhZgGWjN-Gj2%+OEjenr-F&WA*+$F;yB zz7S7)hOA$D$P0M0cj8{GyL5=Mp09^LTX#&RvH(KQ$b^EL*cjaLT2&)%YwaO@U^Y;@ zi(u~ma0!k*FnyBPr%Wq^3W2C)8#OvOWIV$r)rq)fQ@a2e6#dquFP49+1iOXU91>Kv3o{FlKmX>n()3PU_CJpHOkw&^j&U)Kb{Yb> zEsHY6K`IFvb_J3eq|3rG)P5-|^D9Xc*Jg|iB#ZWPQn2@nf)c&NTHyHA!9 zBk+XJyLYNmheB@G+rap1bD5Bqs%{u$RB2YAPs^Rs65z*E{3QW%rllMlr@8{2hegXX zi`lSu$}wlkq+jqe<=0%;kp61QYV`joI`2TJ|38kOR1#5S&q7l6-j@m?J9{N$?{(&h zB0Geyos7#S&Y5SQ?ChL*clNw9FOGhn-+%YV{c+>-e!pMu=j-`;JfDWqb_ZDVHWSL7 zYwn+OCjQV4s@W`^Rh#seWF6^?EJ3>je?n#o?%j6&k@lC1q~v-^}ot|F6ud($|N#MiST z=>pYed!#{KH|#A| z^4aE&gAVdqmB5>*OhpG-ncFD|*ePsjhfEDn0ejwD^eKQl#z$j^X-QAOw5i_!&Pq~d zB+ypFvruFK!QD~5iVu{bIKeiPfq$Uy;6kyDFE$M~6gU)_S-y@%!vbE5aGA`i61;UK)*x;LkPYSFlm^Y~X#5zw;4zdZ> zCSCr*8#XtD=shpgv>F$hK4!F6Hni{Vb~u+{9VZ#%tb0Uo@}X7cv>%+57#cSQEGuW) z&yZ!yhXA>vtI3*LSaA$J)>ldEPgMAJG8zmV%VDkDKqg=r4|C0^F7fdhiJl91_-iSm zk@tvEuZRPcBz@1=d>(?%CvS&x2#*f_`{ovAgkNi_s5LT#>)wthA z&UHI&60GTo1wj~3=FsO;By~?rR?S+P>dz_Q4ma<7CiDGp@HcOu4C9&Ti^$EjyK#@PD(I<4hdo{*37JMx#hTEr zDRbLGN(*jdGv3xe$%?t9Hzca}=5W}`QU=~{I9NNHP7wW8G-RxJJ-gB`ikGCQ)|nB%NGFvB-EykeZZ&lb&4<25>y|9V>Cb+!3^^ zW)61>BNQY6Xwp}|!&xB)z#dZ&tEgaCMa&3kauYroT4sjOoX%^-X=!O?Uc6}xeqZPl zH~vu+{hBJ~UJ=w#8YsJrI*9xp_ht6{@n1l`&2S;pFGXyz}Zik@%;R~b}&F3~9h@>GX1e6*J{W)bQh3B;NbL^LTdmsrBCqtdOYk-uWClJVS> zRKqtc_Q%LvN{s!u9mzy%oT*43|MksZY;n!|U8v+T-a0JPcAVZk03#Ze7heSuSyzuxaeh~7>)^9rPS5iELJrHh%H{@fGTYjcPf_+;G1US1jT zVg-?W%=P(-68dSGR`MeO9KHXj;B}hOr0qdVRp8Q|g+W_oOzLFQHeH-atoOr@}kiWm`W`TdRCp ziT3zKS2cV8TSbu-OGdj7y>AKsSu+hdy{m1?HZ1(yGZRftd;4pJ!H*(?JWU@RdKe$e zbA1={O=u7p|EgfV=k;af)wM0;bwWOZiWE$gDRw@mO|0DC;6f{l;`_e$+hRICpL(|j z%?|vq;6vtMo4+6B_xI_Ic>ABahK0N`gPMeDV+!sNmwQ^4qewR2o%4C|h}eeK5jN}J z{_&;l8fG@<%Lee9lA zm$e)oKHf4R)h=v$_A&jnOm^61UiW}q#pZb)@FMTHuEfvcCO%7_(DfrN3t8H17EYJisvzi z^fNKtAm(9&xb&W_+(oeJAj+N5@P^!ocP&4ojpU3~->RAs)b}bbxQWk4E&hS%!l$@E zeofpqQsY-b5XSA*Pk%qhb@y8}cQpBcdIL`DHTyrR+4a{RhSR5=PiD~Qd76a<==bb6 z;?)|QEnrVHr2{m0!!6WNTqR1>;uxn%?0?uGo)}F_0m_YlwFJ8J5z9JUo@>ZxYfklQ z?q!Wc^B$NM$pw+XfFnaC@HotDjO4*BB2U-3B`Y|l4P5eae9n1BG$X9A*x9kUxj9>- zM&w|By{Ti$vsxHt6I33<;cWq@s) zF>qG&GRK&3InpeM-?FBJH(!L(|H?Nyi?vXlxUa!}9)%7~yfA`xg+bqUM6)WF6o-#A zniOz_hT{hqk`Ugul|&QF`xL*x^2KfQ{0jFHNKS9$l3p70Juy%d-Z1rUupc{5e^jt) za{BqQL|G8%+|o&n0sAG3qE!%fnZ@k)rQznuu@=r+5IfAo4k^jR9uDV6OS4oA)&DniVfWd)+`ISjJ3RcrJesb=X36e} z9nWoIx#ygIRH7O7F$sf}7LlA7;L)5=_;ongx01>}qHf$fLkTtN-_g`9W+S=K$ z&jKMOddzb5WXvrgG7NO0lvEYAE|He13tD|^&nc^T&G)y!0}EO7t(6*H!Cw12FhzfU z?!aFTN)nUbbCX>E9uRdjt|U%{}fq=>+cT3!5f4%(Q&Ji1quZzi6e%Cj-&l(tF_( zI;{ih;-+^0HL!8rp*}4aNNpo0m#r>%-SWh)3#BB-|7|`cW$dl4o3KPw5^H(F|M+HUh;ym%odN&bD1oPE&A}Ih*??lDZRlKKXkiik1B(EkGy$n_Vz+<0<|AX7Wcts zSoiKxNzmSu8SB^83C;PnGwo1Nt8AP{}@#iP^AzrVVL@CO5U+wz?OU78s zzwDjo0iAh(zaQx@F2)7#=>Dylu78?*_ga@X0!(inaMqAk%KpXXa_@$Cj{tE%Zs z$ohnOKmn`SCbGY0qBmqPznANE;%w|y!i*};ZRTC@eB8|#(l>~HTC=YEo%X|mtx0dk z-jy)M@`8J)$y2Z@u4_zwkkIUcdfxg_at*HME{* zVl@1*BIEihoo~LzHU#yG6By&+e>iXS(Es6k<2x4!HHTCgHck1T$Mz4**vRiRM18sA zmC4%Vqqe&N<4)D(=g%*aBL}Ter*&owUWu;M{;ls)0<49~B=0T?Py%)MQ$_PUZ3p|s z%2wybjI$cgmlMV=%R4^5aJqMfo&=uBxqCi_m1NKBl$oP}3RdkOi1^5H&l48@2mBKj zp%~;{Zm|%mhHp=VMO+DOg}X?dWG1zN9o^l%D|Bz6x14c8islf6_SXjpziHv!2PylK ztyA%vBIx*2C!!~yoUjtOx{_nZ7fTZ>wVcbgSl2UGg_|)V^v>>2H?R19uQw+_=+1{n zlp63OY!=(BM*D>&mb4H5E`lSVf6`9Zh=>b%lCI5X8>$0$prSCQvXbbxCZFNUxw;4C za1zx#>~SpTYo<4I3HD3V^8QAQ?u9xzok{4F3pdO!>b^!^b%7l{i9(*c>VzJRNgje@ z(&P$%V)esVf51XwECSmSTTItgxZv+U{mn(`BK`D%fTwS{6){9V3*_8jVc-S!`qh*p zI3m6cp`L-WntsyIt2oI*-LJc=ua);E@7o6NtfGa1;kuW$Sw9Iv7}}i2f}^du-$8Ia zf)(P!;+oCH^_4$^?y&xs&=ceBTUpV@XUTDE6fx~&>~6b*O4k&j-QAk~`b6%zO=fTh ziEV@cSJdW1#$UV$dV3=iQQ%Iqk;xJ`F_l(zew${?;!|q!oJ9fHPVyBm^Ds{j~Jb2R(J!wkFjJ;DC5FaE|(yGmwUhI7O zOYm5ThARHQ;~`JE;+FO)PdM8J@_hNU`7+&8NcEVjp?~)uh%fEQ0HDba;WvBMQu6wM zv~S)&Ma=I^6YRdo@vI#rf$=6bf1a)cWQ9ro1F=ie##!?;ep;=^2Xrh06NHjjP~>UuHGMqZiqd6pJAdd@a;&kbF4 zG~f_^>6~PV_`1K#_qQA8dwHhag)3W#lLf)x3?ttWBi;;4;=}P2?s?P zw6`I;y3bzLTke=QMJi+>%xrWgY^P3wzL;+z#MQ5SkkSNH6;9+nB&~0W9~oxY8!k9| zQUiEY5{ksPS=T$t7F^IJyPv$_)t=S+d}whdFOXf$JQS~2LlofZU7oM#XOxfb0O4)A z4=A+*lsQ9%CgDuTy7BM{q|sDrxbsy`*^g3^z>?U}hp?P?xLv-hAr+lGMx3Y9>SUf;wzhyzpNay~ zC~!z%Pz+eb%JIq|Y}+G@o2nb(xut%uMB(QVBRRDy!5e~#eC&@bZpXrn{leN^{)?Nc z(kanIj^>sd7T%r)dv&ZN+SGdX=*}Br5xwC1B>To3OQIRxxTnX2H71I?y>&7T75;?a zhORl~%&D;6Iq$1E!Mt4w>IC|FRnYE@ihObW5CxfQo-Kr2L;pk0dKcU+{ITww#>#1x-y!8(0|3E3U zL>^kweSXY8(5@jNrazpOI2Nd!f{(|&FTm_*o1hqHGR;5Z!Eq#hWk4IRa%nUcwQ`{& zdYq0~Pap5S*Os3++($W1)bzE^&0FKnX9y;w`!%Oj_`r|FgvJ_Rf4bK)Zall^t%6zR z*jy4M+&R2&#>fUd8s;0O1f{hheB{isTF6HqItcd3YMA3q6O8j}J!EdJf_cqYb}i|Y zeb4u5f3Uuz?$o8=X>#kBUqQnLIP)rlnYLI}glS8d5!P=c>#RTM*lmb;wLZ~_s`P45 zZXLVKZhnv@*t6qOgJ|T#w5P>GOrBk_0nH_wpYDiV_Y1R7O(N5`Z3KGbqhHi_NPOpc z{tw$QbI)5ughq_{gd5!XLDH>ie{F_pVL!HuKX2hN1}&4kQ{NllS|!oom%#C8d)1!} z-OIZ$0MOnhaVH^*Or7UCpDF|Qb4pc z8^Rw+o-}>RVqwrUCxG~tDw1a$bF9~hrY&2}! zq13G|P}BQFEL|!C>a3xnsdFD$v3EJkFa6c|LctA>>tS6TUeww0nzC~ESv0m zL!c`F>8E>^|2`kJyQ&*{T*5k<&zbP#$$x*aC6A^bYh4y9znbH@h{dZ%ktFa3-QgT~ z{tw3-PrH|B@%d?vg%IDK7OC?8m*^?BbUm()uGiR~lneiTlv3K%oVVWGl5LT-k*!Kt zPy0XOlpk<=N098?@n8b6(@Pp8Pr&kuH`9Pzbc26i>_(#IW>*QHdHw> zW(UIxuLKP7^C+ivDEbdT^RcwHJ%J}xSa9^1Wr)2KqbaZ6e)k}@`%My0evv`h?ZM(F z0#dRA8bwE*yLyKu#C$s73*w|Ke=V)P#56Q#E)ez-%HNE5Lxdsvy)&+x2PQHxljS*CcuR ze;_Jws>bRE6b{9V``ZFEJ8!~vhc47Z&4_ns;~o);ZKy-duUM1&e4PfqX;+nRwFG?g zC>h62NkJ-EtWUlj8XC6#`ec8kr96Fg#0xBhasctZY6%9Ct$LU_Y2<+93zT%r~vt5BQkThGTLnW|b4@%q>%q9U(7$)g(LZc|! zjwy@!OD&|xR#5!y-NGCUag3}7@|u&eT3t}FPQ352$tm+3*1k;MFwo1t{6~MDp$WWt z$}_O$lw$m8QfL@9Tmbu;HvUiOX_BrMw`oGD8G`!vug%J?_p+?o&)WrCZ##S9R%RsdMZW3k_7avTsp6MVCL0h*X@!d| z)Pd-V0mmy#Pa@e!;xmd?B`*Mpoz>+?_eOpchRs>^;4{C5P}Tm1>qWcx3{Gc)$0AU} z-(rY2t0-dNAuw%YPD^3{Ncx4C5vEsw>l>JJb4mWhsuS~VD?1>*$T=XUm+>?>Aic!= zg&l0`^vgfc+wvY)2j}b3GlU=As&tQy^cdmzzYeu1lVJ(=0D3BRAt_xdcAbam0&l8} zRCUS|)+k)wTn-gu7abiT&NY*92#$3{p08e9*YF+mjy0dXwYUo2{j@9+9R?^5^c6|ytX3ks!o6UnsMhg4T%NETjbtYBpt$al9DY=%V?@Xxb`}Ka z=Y!QAHY>IswEt+?k0DkCku0B?nN+??P?oT8J{u%Ttqi389s zL$D*@jOVJqli7JNmxg1Cx#Dx_USzPI{E63OTu;juKW-T7*gK zMr5yH)eG7iaz-V5fFwD6-!DGutHUnFzJ$ZDOtx_;8vILaasAL^+b)^vd ze3emgxt-Z#@+-=~3#Lt*#+p56OmcL-bT&bml^CKja|HnQ5R)FoKd0a}G(;aQHZ3R( zda36pcI*ObGkqK;eY!t~YlTl#i|h;LiM)$c`P+af^5z@UBjXAL`R1Om)3!VV_oN+} zY>ANQE>6cM!SA5xoE{qnlA&!_IZ1iOkHfB$>t2=Le;FHQjrf|+`Q58K@~RCrbk;Ub ztTXAwu3T@O-?{6Ijvnbmy9Vul&jx=UeBv-`H(s4#G#sgPG*}%ACWPl);!Mz3QC!be@DL z%W;3BNkx53yMi7ve?zbJH;&0%xuQ7lIo5UF^hD#hzo|)EUT*cOOA@FhGIx2fHaBaM zj+fCrD{h>e((g}gDAg#QU#hM07Fs_eFZH-mqD%gXesQ+HTzhi+ zZdi7<`Qr;6Ewct_j?D{8uH^rq4D}R!@rg`S(_QaVv8LYQ!!wMfwohz!C197|o1t*! zHvGO$!G-!XBTwE1zhpRoa+Q%rFe0Qg>Cjf_F;9QT!0UOvesh0SX}DT2(5=|**TFi4u_-58A}(7%93a=4Bl zK+J-n&q}%Iog8oQPWXqIBH+{QtNPGfA!KDrI`{F0+}JmMxvpOuvKzAO>;=so?~><_ za1_A(m;Z{sCK{pVf@Z8|s4gIoW7g{xhcE>kn~gs;_!?wNuQ>oQgJRVl?|~gNR#3mD zAq&rl>_aN1D4$U`ON!|hpf;A4FDi;h+b>AHG4If0SvxVQOpp0*INtNhEpc-d8Hk0!Ex3w&4TOgZeRT!|MLT`Ds*Gsir*km}2pj~QL7lgCe$>`c>@M@mPMQ^8Im zL_wKd0X(@{M^?C`Qvp+`(VezL7=&k~ZyJ^?CG>p5`AytLFRR-|S1|9>N6QVCJIZ|U z{Kr~a?sj2M!m@R7J*R+aJTfuV=CU>XfdwQ6^<9KAR1sg9IZl!#niX4*1QtPzm(E-) zw}VT+5$0t+lWfX**!8!UxSQY&@q@8$4S8U#$+X?Xbw@?*ulD~@L=L&?SA1Rtptgmw zqj@)HMH;H4Mi{Y|`x-I^KB>N%!iLHh-6BN=ah#%rX<=akoAAibg*emmpbX#SG0~G+ z+1>3o8#>;d4o&8@B{p*=afvrR!*rNmb8^T|d@VODiZ1B=2ci#ktR(jL0Clvcv;3cXqq07rT9DZUh@YMWn_U$nHk{&TJDdEzL$wf3Y3W;=W(S5wPVkGymea zMJ(ZM+tj8?{Kz40uWRS&BvGOyY_>F~_2&d+EyX)&HQ z3#qItOBPPr#-$}wr~qFiNF@dr7N zmtp7C=_`&gUi%eM)T{ZO*K*8!pRJ{%j_&2M(>>c(TO3qK3gT@IZGraG5IOdy-m&L? z*cMAE@SdW@GG7m;Q2b5y&iC*Oh~jo}L@>t!&404`xo`bP6tB@(uHF?xsq>Jh2H<$E zM@S@4>oFuN9*^#xM~J10`gs4Q-bh-9>$T_nb*n-={adkIT4DA4e3@|47_TLHN>ZZi z7yHuD-DEfFy{*HNIZdTk0Zy20UR;5lVXi3!2^)q=}r8G*)pzsapzp8Z)MgWqEEXT zC-Wg=_m|XJ0Dj=>jQuqr(t_P@yIc^2p|E(xD)p8e;;U_4hJsHJF4A|-H|f>>R~t#I z>ix{Yt#B;e=n? zKJ10D4`R9V#g)9ISH*58bKh*ZUPzSt8=y>F{r zJ~WgRDf#zTe5508`clSqYYp*Fy+r-eW?lSDX_i>$x%A(EhZ-Q0FL) z_D0dfb{KkHiL2WSRmAr?ky@65|0zdMYiJMv^w{_$fo%Q@3Zi;p?uk2%x;d{33=Ql_C-T%0g3s9fOwCygYVkbD0f5i zv8>idHT)F;6KFFf_dsOpX24OX6`>Nx7=R9o%r_Zo2+EW3TlcNaE%>`GH~1lOI>r|Z zShrmGFZp|!2u1eS5vdANWKE#Uyt}v`D2)NM9JZ{amE#*tr*EVN2SQq1F)|?Gm>u)! z&z@zzMAG7Eqz{=~7tcD&bw-}sWW0^#=^70O!ZX?>frF`5p77bh!C{mkOm`P0?J_&7 zC5#B!>+tt?{ci%jyp(s=@@b@p6Y1Z3M5lY9{fI{Q+YmcxP8J4WJZ{MfzCu0!#HHU! z{sR@n{~=#&S_P)TO{Sj%K>vQpu4McJx&9#YP4K$8Jr|>ruVZ{uk5+i)$qLz2Bbok* z<*|Z}wkP!+&7{FQn^mpwD*xris$<3Txy0K7%|;&?&c0@5oP|iIw~N56#f7BVBkGcf zvcFIZ5n5p@Ix5`MIM1a{d2i>x7hit#n<#|cLYexAhg$}7J#*a>`M6wfg6c>_mpc{Q zQl<}8Cl;1vsJeQBh$6k5PeoIWURW(`F){_5dM7Ckc=AU+o~7O|m$31D0mwu!V$F(^ z-4xh)IliObW;YS`c_wfYDINL_e_BLf*!yL$Y){n150FA|&B9-Aa@n;{91kEcd}0!B z&n3mFtt>S33;5E@B{4cP+P>QG8{reF9WXJ%-vUniAiv8`ZbLM6;@Uk_loxIeFRO-s zV4QuiPtYS$I$swr=jF^r4tgld zcs*aCd&R?h3<_=D;Jtlm9@7bcsSBd&_6h1JTC~k+8{tmV;$=EMzO#j5cL$GJ_vg!| zB-s$eaed+7wmP5N@f9LBwq|KLt>_s4QXc@y(LJIwzQd2}XUDGUg(!(J|AtK+1c!YT zTLFyNGki_Xz+`?!u_U=fDWS<|3w0?&`F>21nNXEVgZBK=zrXy-T9=xiX_TBdCZu;-#{)gt~D zPI{5UI}P_vjSwXIYX_KL7RhMXY2jsh$9uj{ACUM)I6-(G$JH0_hq9KvVhyEBMrBs` zRrJrnmFzU0KK^s~z?gj9GhrF8$A!k>R>e(8Z!QbN1t74O-gTjmkpiv2P2$5!LSoqs z*oQVjKV3@mXFoJm?=;5!xEERr0+|eqR4%+)jYcz9uS9?Xq4c(D*oD=64ffE^v~kus z9S*oo!VbLVfVH$ZQz!>U)v#<_;nZ%nVFXyoooeESYt57d)XhzA)1$Bt7va$|Oan2_ zW|HL&2CeP$4QA()90(F!;7Ze}5XES9opD%9qO#gJRt&g6|tN9nxP9M`?RAZe8^ zYw#l)zTqS4(YukQTXuE+F2LxyW!cG$qmkao(O+=_1*7G{)WgFqN;>S)8HhnDdI44hBH?n}7B;@_W%xMOQ z{ezDwFS!cY^fYGs!+N#~5d@Btwc4N0!gv7tXJih^9-qEc;&>r_HMv}`+mjp_qceUC zB?AoKSs1Q+&a53>H8h*SZpPBao(>g6g+3}Q7rkcTew$GZ5!x3n*GR~3=bP!c%yN)A zJ9Q{n2U0BdE?obF|CT?CR%Q=Lb}QfRAKW+Rr1NPGW) zT=eZGLMyBnEp06SsDe*}knPAYJJT7k#6H}R_hZb1*!?$$CM* zim1-FTSzxByhvVLS3ET><6*miii)=FLzreIyf=Fm+dT3ise6)deOz;y4`^b5icv0o991Vqe0;za^p!873*2Q;|JtpQdu}DtH#1gt6>)6%tne|P$ zFj0k|r2)^7`!*TsyAnU6b?14AjEZzTR!Q1Qqz}o`s*1$Vbd*^2@>OeEzBtL!l*$eJ zYt?NzQHs{nH{3}3`aQcPQz5%GFwn&+2o}i_ZpDoAp;oMID%WqktE3j4oKY6&FeL%HQhUX(8jHd&#FU&%%t z0783@f)iZ;5+6`@zu0yV>)PdC()2S@>Jz3MZaBKWm{YkJcvHqEO+2(TVRsNO(vNYrj(4>(*DdEnqjiixoXy6un)ou&+ZsL*bT7 z)p--{l5JhGnua=DmW1;_g8T|VK04?N@BsW{jjF zB<>;l4JE}Cf)GG#eYhY=Yhw4|=Y@d~M>_H3gp+n)XmXYyeRZTsIO~Qc7u2aI3so1_ zPFIJs@7xUyBH9+a=)WQ?s{bGf6AS%;r5ex4dUv>_WYQhU>v|RtSIWF=759YLRGAbv z!+^WKn_9MyGFfZ=q$*(GYy)+whVO^xr4iG!c(-te+0%Kv$lAlLA$k+q5ZOyRk>1I! z^{?AT8i)F@h|0gaMKU9d;m7?GuTK)&uZEtmN|FYU>g{g?Kr0P$UxcP z_9}I9COOA17R$TdiN)2Ux31Sav*}DmeVF8>|1h9Xzx+Gb8^JK6TV(lC17hW6vd-NI zVKE5gY^GrIQ3pk(neEvt!;kpQVjPHUYvJd z93fT>E82 zzMnU|K=|~FO#?)I&G@V6QEqC2#Ti03%L={MYJTBbF?--oIR0VioA(MOt!X(rxK$x^ zGQQd3ls2=&NTn8FvzYe#>046IhyEr0N%G5*zpn(te-NoIgdsz?m%+=iZ2Cau)Kl=$ znlj`)P;vBQg+^vl@ROZ)7f?s$rc2w5jhSdzEXkpwj~WK_8t$~+DbKcEoy3AMRB;Cbd#S&heq6)0WaWj&e{s%Dy^&-)p55|!)B!kKQw_1rjHiY!O zy}a|#YebE5&*=5#zI=g+n$QrOlH7!6j55VkLry(TNTM656h39GM4Wr{p~%W&Q~5U0 zVa3$L4aq`cC5G85e*!#x)dc~B_#Vs%jYa%Wo>s4XbF_e>KCrJbY|EeZ(y~|;2j)K_ zJc99h6?67_HMvn6Sz6bx>Bu^fbTq7mi>q8*wdSgWgudR#NvzbdEIIcYIYeQK%P@s9 z)H*@d!lvfI{rUMfg-Q~8Rb{xG3Z|WOt|t7q^~*kn@8ERNCY=R0+9Ya7yqAe?aG-DO zY|TBfia+a3MuYpLGtegeV+p~Qzs9%Gk213Tr%7NkB<(gzg8|73kuYu}sK-^_(v7oL zAiSpQ!R&DzVS|d(5BFcOkg0+64_6-kK;NgnQ{==QA@=3zwn!v^*i5WJ+1%Cw-1At} zr-?6lEy?kr`kqgR?vxyrz+#T$C-fwl7;CriJ50VjMe~cQtJ_KM8{6w4 zZ>okpf{l%GH|}rF6sn1K!-Joq4L(WTNiQqY3~UKZODK8NTs-fd>j#O6Y?5yeW#kvF zFp)`rLzs5?-D}*3b>+=D{jcRKMom9)PbXcV{Eag@{jp&QgAN#UjoE%5ebWbYeZ#X6 zS74i)z|NZbcz~NGnEg;}{(2-OwHFyEz*>HGN`7|t$lYDGslIjU_(J+mh2xrfIQe(w z*gqiB(=dq{xuZYxjBRgg^3mU_iavQ8hk4leUMwB$^M1MM zSFXE|r6Fc`A}zZ@RfWH@8OJ*TUp&bac{8CivK%5()=j9P#o~0{hsqkWet)Y4R*X9;r+#DS?`-W%LTaaLUL@5{xp07HC@oR%mQ{Q z;9M+Ex!AeG^O7hAtg4q;sLAxCGcAIjH>ua-DE*Z}-H`+8Q^|bV+I$nb@Rke{-%nkh zbvFRv%s3eRtBXwIcsVwBz50rVNQ<$Ey7mX6g^8{UES>Lpe|prd=t%(gBcC+O9R2D$ zsNR3r49|E9$L+o!T^6ntU|ZSLqEKhwdEAOAyzLY3UY>j}+GDR6?Pq7?ADHUyub6w- z;F~-42@~xhxw*mM4f!=XZX`N&nA@FuU(Pc~oy~;8(8$9)Af!0d9d~Q&baj{sq|V8f zAUedpnl=R#->8s;!=RGH99e5|vIPM0y?|p;jFcNA|Dx@m|9H5iH=#3PywKoQ7h6v0 zijM+WT7;}N^)J`XF+nHjs2)xJC0WvJtK2{_amjsr9%_r#+}mkaL0-1 z>K`!HRDJz98Q?bLE;POwQUFA?0MvDiOp?dDX8ZzDnHWM~Q!BvK^g%yiy>AiYS48ev znMp0hJ1CehRp($wxQrVn+RX4fy?SWNMTiBK@dKtRe3UA)E<~%w?eb?Ri$9)Aix_et z3GuI~X`{u!X0IOXTuHb>Y@@L1D2@OqQ9bmn!^Mro%QSEon-b0ZiXYnE#IUav(%(~X z4_-mffJmeQhg?u!jV&`M8dbV1Ga%U@OvZ%FL=yX035k8uy$Y)>500lt7Y`8Ftfu{? zVxIjbG2tm*G;`61YGa}ITo^eyezzHfGjAauHpgfZ6j2@KNS4qWcwN9WhouEU(k#dS zft)%L&SjGLiBaDmQTli+qz0qg1?5`UI+sqX8Ns_KxlH&HnEK>D%qW5btBL(6>5Ps$ z@cBI|m1#vbO!8fq8F|`-eW)oWAqoDv6v>&BuBc64?WwIfmb zx9quQiIk4G{;6qp)fERSoF8~(Z#inwv(^nua4p*I*fT%L?8EKIdq~!$zX>X{wfz7y z%z#wBHd0iTPk#(EVaUXk8IUl*72d9ZrT;=Ed|X+8*i*8DB*PcgSVt0{O&Zz;IyMe}+tj^iAQO6-7 zln{m26QOdL)~8Za7V1AU)thBXMy4wkY+QojV`#VtyJTR%>5gxeg{4aXy#>(QTI_;3 z4>)t7!ynGVMd%?sINew&B?I^1tA8LYMb9ijxIK*hidS^O%%ypTxp)DrQ7JLuqU;ir1k1beA>e?PQyW>^HC%h;?}zsi}*a{8S>LSxfh%L z>W$;ai*!BOrtVe#%~IqT*v$8Q)R2BtQ_90jFvZvL!JiArTszhiJkjiT^rK?iJtH}6 z9mCqKp>&^aBbPVnMS*yfVJ5GAxUH}VmQ!k2%rpU8-m}6e{&f>bz}9~Iqa>;el?w}4 zi>tYw>R&FzHzt37^GRw{vi4Ll0ru%2oRg*6!#`e0U4I72Zn-r<{Jy!obJmDYz6%j~ zm8=4vJpSWIC~1dB;2SbBGM8-$$YgnzDz-kRS=xYFffh_{=ge{bNX#Z_8@v*GoNaH%P*OwegWOUVBns8_c;_`*g_t0F95TB!0HK_=$^-oW6{O!?9dEJN)CFCt~{8^QPkX3;`r z#(V<%m{VctL0wuWYgJX(v|sDaV>b_yF2<9c=t4`gd78Z+`+b3!gOWL4i>?f{bq?f; z6b?1yk8V&h{{?m2Zeh5(6#mt7|E?L0pa(6bb*^{Qt&1dQ;~w;3&zm&kgq+rNmd4Ak z^MN+4IqO8^^0jT)?o+eDkv^meYl@EIjLAf?q2;(X7|y|w`T1%l;9L-V=jx7&GW*ZT z2NO~S451cNeshwD31gi4xF?`tMAJK2-<@sPAvASw6D|<0^T9%}x8@)^|X&klN@h4x7 zuvj$zXQ>AYv$5<0f&)WYrL@Xl{&bAPau2Oy( z`N?mxjnnta1EwtsO9x+3t2k_Z2`(d3w-!rUf%^HVJtI$5=f;(hQ_TB1@+gwNktcX* zdDPKG8x*HL+v*==Vv8A8cH^Y%SE5iHXPi?JTYDbbTHnP3I^h!K&F@V4L!&Mu(w5%f zYT>e56)}P-8N!PA5vPU(Db#<~>3iQ*Me$k^gH!+6?I?ihG`< zajKj$T-<_Z&S?bodz7_v4(`y<$E~#>E`QIEPRep{5-TR(lw3xx>(}mQ#|29HLM z#SnjL2gdjn(^4kMKjQp{zR&Enoi>bWE?DV`O#54TlvJBs^ewhft7QJa||1{xZe0|H1Ns2iNe9wZ+XUC_gOBZ`#T8CC?Y$_-@Rb(0R+1Yibht z;$*U$-lMATxAmJ+>BqPE>a$g@0$Dj6jG~tP-S@XQ)nx~Oco~)B0a@8yg^e%T;C$0F9M%6g zIuA#-y8n+ysnIGerACYvReKao2&#STqP2)dB=_8$d(Sza&-?v;{Yu7iZ3T0}z_gegE~Snj+gFG)bG0(H8r8kI%+{BAUZ$4x~lMxzP*TtiUR3YaJXA2eCI%t2I;4}Gg^9lk}{HM$V)5e zg%$KiIqZx3(a^?(AzTy!v77&arq@z%l@GjpajyrU4k3qpzOh&b#?3Sfh8=fOxX4~z zoB3&0pXc42NP}{#APxqIap5Xdh>N&Zr5xBvbOKvglrGRYbvs2AR>O#wXqH8})ZcVM zs_5=tl1puPwgqK?Le?bWv`ZMc6+d5|p7@^bqb*v>H87X2gXP*xZrHJX|Lv>dj`Uj* z{LoH)J)xw@W>+pm(@J6b(DtM}A}{;64pVEn>6IHDp>gF>ra$^Zl#gEaA+(>1zR4B# zSg=o;+ZPdg8w%Qm@-dBSr2ELq+1;l9WIuoR_I)-m9qZNEX~;C`@wV|nrF#KeMI06H^k zPWos)y4!KYM)Z+|5lc=`kdG}-?e5m;#!2nW3gsrkXlE|+D*pra7^atjo2jgVH1YAK z#kk)o2itNDU}(ph>k5iFV>5r&B3-GvgLj19$3MTJPZzdE7tyeZd_{U&r>*jua-_xb zP%vl!3I(SnfP8yhV1vfihPwN>iN*?uHBgVvzHVJEt+W59wIU~If9LNxWaAHVsRxyU z$~als7rY(p*pC z#LwM`zKq@|UJu?46VygZQ`iQzGATx}*q|4j3KKk?b2CHhvonI8;jtC6!k`;9Y zuW>o{>GCyguUw&MRLY+I)PT~iG9VE5MnaYmAfvf$rr^WDf@2SK5LA%3Pgn3EKd9jS zB?#YU$ZAb;rBYV*oP@16a5dq<;b>o@1XoNYqn`Lt#M_PW8T@}BKrU!PFnU}3Jl^N` zGPeVWyN^i-P-~Kt} zKRf9cn^uUbv4JIjm0WDP<&7)=xcuU;vJ=8ZK#^@&_=3=u)tpJ%ZnwZM#J3VkyBY$r zPhrZQdTP41gyv)WNbdC`HNh;6xX-a-9Dwg%r&ll zVcPTgcwqGc=#h z^Nd8dWz}!3vlL;uUasuQ>;6fslBeP3Z;6o)HY3=Y7GA3eQKebKh_=aL0r*i|c;QgM z`bbD0K#fitm_sb5QQsSAX~Jq{=KexqEXUwr8<6@d|6yk^9FfsnpZ9XAF@WS;)2{hq z8vAnhtD(|U3tfr2NVvJRQj_cadO+h=ea?Ow>5e%A`1z0ZUtrLELK-f{&+t3tA7TWC zZ8?4@ueni(TliodslxJ*p{HMzl*!Y$3xZU2XU<2>% z1+TKB`kee)^*7dbJlcXZ84daJI&_&t7YJx?B4heqT{eQe;&hVAIw$B9$JoLDam9DK zr7lpmLqH)JE3ub3aKfg~jJO0EkwY_Q$h*_Valclz$!BGtWvKqX7MqsWb1~*wIvgBO z=QZ7Acz97S`ya@>tWUh)$2+*OL&g>jA)1fxi0nrV(6w}J=w=@c za0HgMu{Wk zvk>KVPBJnUglRfff>p2obPjaWRb{gXo+cbDRLy0r2~+=lpKI48;e-=5!DX#WD2=ym zdS;u3KR6TKla}-OP1U+|2(9xJ~eiqKWk|P z&K$9uM<21TzPd#y@YZLS@>xIg8kW)aE(i}pU);&ujo1yPy<_)rGu2S;Vmu@DH*wnZ zWJpKHO%*S^B`X@&j!*SJ^Zvsy@{mAUxYYIF2LVK6+XJ(7i|(8zKu&Ufx>pOhP)jK|iF zw=|~luT+INsytIg`*wYd&gMX;=qg=oKbYoSwNkSz?a}T%hSkd{Cb0`bUj+krkzqt! z0Zn)Z+af&6YO?iLnSqZ6&L3@UD-Q4>o#*8rcDv9b{Cwng1{@K@ z>mIO;5msg+VR})dKPp{IOJ1&D^|EhDgzoL2jC`)t5J$x8L!m2-qg*3U+1x$>F+Up6 zuFeL%^2##zU(h-ZwmZbLL(#|C)wkm7+pNn=%K)8;n-=HOni}1EX!M`@bEOGei||_D zWQMUV6fTGY(fMhJPEyeReJnJUn+B1SmxN!gft~mlWJjQz1A>9P8uTquDi?AnAFam$ z%W+zvu(W)7!&!f8*^LI!CDq^QEDRBtd72*+LN$wxD#lm{8c5GT?~dGThFmy=k-2lR?Cl{uJ#x6K65bk6AN&If z0N&8s{#eKjg>-RH~UI(hmq&9m= z?pLhUecM_mCy+jv=sy9<7-An4g85=idf|Lx=z<3l;rkx{9Bp85MrHx$KRLCp1Vy}k znQlI#==E-J-QyP~JhWY$g}2%U0d^6NZEhC=r6E=P_jGiRKkD=o(tvr8h5{p%5i#Oc zC36UH%3;%u7$_EUaRb@Hvc|m~ye&>61eIDqCV~%^KaI#C@7o3HRTvfX=p$MO%=ci5B4kiYUtX?Z_9>Q7*m+8TA3cnB^eXB(0P7^%R;R{Mh4iS6wc7VuCWPx*ya_vm~Tr6Jbh?Sg{b?iaA8o0M#qb(ee-Qz^G99iI~@oL`-7ig$iXTvJ7cIWQAt z`#~9#<2d}5JBGs%uB3C2$!_OM}QjMN@EZwq$jr*oe5)n?Z1=%G;Mo>CENJw#!?9S`M zl@Fqc=WpPD6`xlM^Y8ChRRlDeT%uq{VMGFLM%p?7yx##CjRXgj5f;MG)58*em5P{S zRniaQ5;ZK(Eth{eZ_c}8E6Ycjtu6L`HScnArL=I@dq_TuE2!p~RN@KfCcnGx_p5=8e!?T_ zVbcoZ8hwl{f7TW*e`I>%OLNxKyo`52>r;wD&UFCdhje=R+fG{uiVnnMgZsq;HqZ;PzfMjx_g2;sL?TtHz_Hq1gc{5`MSdC z<45|BXFbpK)#zQ)Liud+TM$SMI=_dT3mJXsAzvJiTvCab`~4P1!3Cv4vG|rdQYNnd zf#3kY_d8#h3yhMmj#_3oopKJ0W4!bvek9lh=9E0cZ4#%$wVYBK2piYcgbtPB!|?dl zms#1k@U|TFE2USSdMYNywcF`5+hPqkx944t=qcb=jw69yMU5-Vf`PCT2j+ZVlC?d% ze#|wjq1xfNGJjZ*Pbie`Dun(n$2_Hnv4ZR|v_>fQvRY=!N)r+xfh=EXLb!+)Rv z=M-oM9YWv(Z5++F&?1!Q&nZ&r{hA<)=BDG#KwRy+2r*rirt3EKr+_8*#kyM3uLIo{ zZ7~60Z$bN!_iDkT83y5eDk&|^@)pnXprt~0*}%Nz$};MEr?87q`h5h#zeD%i_S|0P zaset`H4Hc=Vg;lhUaDO%77~iKf4^LI{2eM<74C4!54veHb)Vb7+Q>uIY^tix?Zox8 z+4J+pVn|S?OdP_orsdy^`fS7LV<}S8ukDeN#?uYfufnf8iPDA;hHr~ThAnAzuT@20 zG-nU@=k`Z}(mJskvumRxpQnQNej`yX+_TCVF>*16pn;8&v+sBTk=I-4EI`VXE?s>5 zZ+?28Io}gfeYUM~v`i~rUw;!n9i+2;(UbJv*EMV zkV`Boumi^5Fqbdu+gaguaH;qEiW5t$79-3H3g&OWho!MtUHopnkMVvYCxSF&h{XQY zqTvExH!$`1@>BOY0);}Y_~>$r(ju0T1=ef%QuWnR)!yBum38g5Dtzzda{{IsEr8Qz z9u6MrG4W#G`rw&6^Zg7Yh_Ip793CTw$SQ)3&AtE#;IWqcN+!rDVQ^(H&d-pQ)>Q~WlP_L$ zG9>$AVMBh6YZf{Zx;7RHlx}Q5lYXHGHhwhxtph{;DY=(JxS%DueIl)7iwon?UJ%XnWcLT zNUZZ^HLaKH+hNvABO@%o&t(mW(ycM1^9mn09!2W%`P)qWBqXuTj69YbSRo#Pk)eEK z<;bPj&O-yabg=sxIenAMhI z>sVO7b8NEdgE{%X-pWxGVXHH8s8t#-jdl;j9 zF#3~`t52?A$FKP3bh*AJdYe$wy05F~serR@3)Pbjz=N!LBR}yw0%Z~ zMqlaH+U>n=vM?I@o=+{uBTE_7A3Pf%x(HQW<{B8F<>IIA6JvZYw&g?m{8O)Y16zss z2FLVI{DsJJ0u15oZ(Y1yt!{=N)h?{xtoD8@0LV@`|HPiF03xtO zbcE3O_!uN*UiDi6`I+)}8vU!wB~0nqL|tN4)U~z49i`XQw@z4m5%;z5^o=l^9XcSfrs+`on>T_v7Y%93gdPO^MqO;&NK@Z|rC3(I-f4 zJ9!9}TUC1y!hrGwSWz_4=Y4)5w6FVEd{~7YIQqg^-#cw`dDTz+Q-?E9&;$;0=Wo7R-EW`2(xk1QMBy{kb)AffVe)7NP()x7!LWw>P2aZPn5xd*Eg02A$ z0DVLMU?$p2Fz)Mqm6GX%KaoJw%3fcEpg$vGen&kU)Yl*+%%;;XjM`@qWCmXb$3LT^ za|#@xVW8VvfO2ifhd9WB6oWK{@6z-mSYpUUE9}675Hz9}!=jrq)X&>Qlky}0lp5}m z@<;<5$cHBHW@Q7#Dn0rl-B&8iEhw-BJ%?;W#$#% ziMIP4%fbmABXiBBj@z-==L6UY!ROx@p4Pej+tJDJJL4C>++-M8mZ?wneh#dKMME?; z#t4VlmG|!#0wcUCFN(GbBqEhVA5`Y;kEyF18LAe~S4zPSTV7U{=2f7N-w(!M<9{KD zVxuotQ27uDmiJ-D+G9QY{n~Vf?YqY@n;j70HK90GIxtO~xQtBWh>9cE8Xx%qODTj7 zk6zB^AMW?l+<*7|`x;2v z@_F<2hG8hM8u`!&BYZlh8Y+tXcgs3o#-kAd#H=%U9a;qQzpYoS0a9>@HC(k`Kb|S*a@BVMmC-&3a3cf(+B&u!6UBx!EFS z=Bf|=sRyE-GZHR4aIL3?3IzXECqH4urv)_Ivz=LwwFyN1w7b!i{KAO+V$z-+#z*$F zz9T>Cy=dU_w1FBMeYY19H`*mXa(tr?L3(%O6Csl0n32aUVx?gLTW3f39sVii}O#O34L{6bDv1~I) zAY#*+t6w5+#AzuZH58++sXd|nLu6wTV505~w|g_u8aXGVs2PO3ueeO=`MFgaDr-8?o~Tf|Ro<1Kt;cf{oT?mB*VBShiU zYrMMxuAZt#b=ouU9C$ph!C|B85|hu2P9IYfW^}L5m&U$~UZka3mD)2?2=f8=F_rznXa3B{SjDo?CkV?u=3u(-CUD$2F}X6`K1YOm%6sg}m0gxj*@NnoGmOe}{3*A0`C>T82ac`l!1RR#QvA)NY-rQm{RF?iQvg z`efEu2Mb*G>3<%*PSp6(<{G=g`QZ+NQ!3T}C@UKncJ28mn7W5&1z_0N=~SN)eV8xO zpx=%+T4s0!<6eSFbzB~{6ySDe$ z0m^7k+a?ULNxmsxp+;NmB4OdW z{lc74cxa&NpMwc>?fl%R)ZFZDOY6;8x+l+ppxCu9Lc_ zvs6i2h2_Hc@OS6BNsHcR?DrSh06#TJ0zjPSP7@zFlXte}$T>rc_Hio>NkUtr6zyft z$&=yU-0w4oa}tZ?e>ie(GB5+Vny;773)HyI3ThL#c*#QDw|>0n zzQlPA5K(EcSj~R%i(h@Bh2KF|lW3H9R3FWBAwVDqG`k7JwQ*Zfjk-xMV*qs~O_}T~pRmC_m z_&!U8BS8cGTzz_PF*gu?5Bqdi(&d?8iJjPozp)VLt{iup%nh}$x{cvx`y6A>K^u(S z!5rQ|LM5;j9kpuP#jR##VBF~-+u-hN-(9Gc3BhdJ8OpvxR*n0)?|OW!A9-z{r)%`{ zPb?9f5g!|)^+-uaWBZXWR=^cL|QNW zw$w8%bmriNJE6lwJhw43D(e{ivB94mcj+%>jNCs8OAq5K4hG3JAIMQNN?F zf2x!E8UkOu^*T^heql+p=U&BfV;1)TN7kAlSv`)lQ;hk6YZIa7kBn^F-qLNz=aczo zT=GDjH>7V*his8}U|`q^Zl{HF+vSNrL#;uz#59!_?i*#E;}2__(MB0d$U8$J!BV|1 zxXv_TO1#$$Cd-x6#|MPJWTHyNhWixOyN@zO?@hdWpJP-F7{kIZI_Cw?E6$ulzfn_6 z>=WBT7kr7+YSL#`lO=T%=;5o{6E6#_CKYUXO{etMnU=Ws;o*5&hZoeg6yo_6XvDLn zo9S~3!!q`V1=M@dq=QA7x5^J*w>x{!xab4EhTv0h1h+(K$m8yl2#YYF1HoQLU~-oF zpAx-00BhWYPCxV@{0CyO+$1Ss0t3HpsL4`HqPuJ>XW_1`56*6?94=8qOQ_=5L;iE5 zaW|l_2h3}IfPtxL;dQlhWBd~C&Hm2ryESGyNpE59xl>CX1E%s&IkE5&0#4lC&lQJ@Q<{bQv1wfBqBwLS)hweOJk z+3MB`n&!l9zjp4(97o{pqeK6VQtyUAb12ik+DQ%h2~VUiAH!FKuY*HNKk?s4BWA4!4hfsh4CxH>cqTAvCC6J9GHP%8dz2Qb#YlJKVj9#Z zZ`5Pf(>Tzmw{2uAJ-5}YR8%*8VsD6A_{C+@bn`RUBe{2aVs|U6nF81J2D|eJ1btzj{E-6rKy~vAp@q4RSNqSG7?G%^L7IbEgekv8Ee8zmBDY+JH_w;Um zV9H$!DH$KPH5BOk>h+F9NN3#W0cr}^pDJmXKeQ06o#AlF7ji?Iu1Q+r>`j(LKh!>W zuY;8G-lF=|&o$k9h7-l29QTIIJf$a$jS-oopT(R9==88N^T^JSCu3OlM`p6nJPy&< z*hNpUCNG}s*=M@>EEl87^Q-KUr{*9ECAfTm!=}U)a7Vwe=Y>=Cm%QR-5)X7MC4p(X z!|~TTxvCnlJb^?0U4PXini9nuvivwFlC`&uYYMc7{vXBnSq{XDgCsrPZH8{HNo<)= zf4Rd(t?wG@7Cry8cBh^HlF!6vq8f|9(Mpn~>_vS>4 z>hj07+te!r2Ug;G4Bm>&e%RMYE{JezVuilR0^2kBuxV!-f$iY34 zrC7ku)e_-Z9VnBarjq<7e-}T#@RTf?%mFu~EWA1x3e8%YUh7+!xx1i6R>fj>W)^yP z&w|fC;&-QUPbryI@0$S1L3~qH5z#6{6hJO9KX`yqXKm4{jsD^mbq`%&N_AUKPqU+H z_ujWPQcHTi(N*VW*LI~aQ>jq=Luj$mmr9C>TUUj2?wDc#>b+Mk75n(w6|~=oWT$Z< zVs)is&C=d2vCyt)dFT{jBV7Kc0oZ%Yz#e5<-2Hy=t=+whG;?;H%1eo;!~w$jzM<|5 z(FR|s(oRG1N zSa#l`?i|X{Ir@%gEjhQFtO+g!CZXygpUP5oH{o0{?bR)7i&t%ue=qKiIgeEpj{ZJa zVAQ`{^sC9h`D=@@@WF9{=*O$FgP8(iw&kN&WV@MZ1RY`9m!ll>qdribPi@a$P`wu$ z+5`qF)&~Xw-Ay>pm z0#C@GgjR7P*0@mIFQD-3o@uxEcsimKi9i)yd}yHV0IAbfw(Y#?PP$PX9!HujJ8ueV z7+BA zVa@0^wcu1H!j<~`Gq5=e^#A-jgs^BcA*p1~eZjFA7Tjb1>S$Q{3FncWJb4mRpU*cX z@(>K*vFk5xQ8e2knupo&PY2BGTAZpSl>~V8aDlEOOugY{de4dnm*z-elXXFcySi0i zdK!m~J|rt_gzC?;Iw?Q9ROH+6L{nGzJX5@3{og|C8!PXpm`i1g%Bq|uZ%fEL@urH7 zlKe}ko81Mhb*wX|OLROtN&KW1#jnXq_~lNXDP+M*96rCb^i035rC@Pt^mRb8yjY#B zW6xMff3!HeF>0CdJHXImx;G6&d{qUkT# z-Sv4SQ_twg^L4H-+wO*7^)mBrEe9je>oB3Bg+iMMX>#D%Vc3IS-s*5*{dd2ZTDTtV zc~jU|X9k54k0>QSzJ=hl8pyrtP2}~-v&Ter znvje~wG>*noybDnva8K*utJ#MPSkY15LN$E#IuH9QQ{XPz|yXEFG7`qOel`fqUusg z7cU6_;}=MYx0$mHj}J@X94ooKRTm5{{5WL>F9fXE)=2KjJ$i_vdP`_Gj$j+ zXtPn{`R*9rq1BeuDP3+ z^mf(V95--=m=IFxvzyxABBByE+UeSzcEC1PL*(`)Y*NGx z)t>qv28#koSz&g`6`GRGyA18ZrjIFM7PQU zKP5EOQ_?syRJ1*!myGDCNsq^+4;9*5>L^;k9ANT(wL{9kXAU4|NKw1v|Ky7zUmy~_ zbE>&PJOTOB0dpTT{;A>K)bWgvUb19?LT9*3cwVIFvMD zIo>8PN)gH2 z{;^11L{C@K7ku*&tJ3uKF11$w`_Yc+*PyJ;FO+x}TZ)jM0c5x`@PahmwmZMJgfd8a zt^T$aY5m^gxyQebkZC<>`BL*_?iqb}qgeRB-Km^8n}bMRW3pDMhfn_9iGW?~v!-Ol zVHxYhM-zB@%2a;Z>R%&&;?Onq-kj*e7iFctsUH7KNaNtRgFN2eVC$h7yyew!&r_LK z1t3_Y_qD^Mz~#p2ZH{XShibRJljk$O@yP{l4nMG=%vHZ#CZ9LE@_=faD1nP@jZI@a zb#N&)4_>zy81@hw>(cCsyyuSr`AoMz%MS(fCS;}OQu1RXw}{|n`>lAX%F#D1+9mLf zpd-%uHlc~_012&MaPwcU@IUWmP1pwHm>~`=%nuC|%rV#}ww&Y3rW0N}lGUH$jV91n zjoY}V94LpF@I_lA3v%|G7Vo8V3!~bxEtt`w(G~5I4Ynj(%?gWRvv1>wvhi;P;^@Vo z?eU<@BS1&L(6(?3(P7%H7bt6mRFNsC-_RJVHa0Dg41Lchp(kr@eXn8u1cD#mI@3I5 zag!IB>uu^gc{=H(P|g>uKY6BFwvG#H@mS^Mm<+IWw5@G!&`h6mnINU_J^k@MDSUIZ zu2(K`1QveE>#jWCSc-QGL%$6yp+4?XRxmFw(cabm91=7>9(+S5$NA?_bV$am7$-3| zv4xFzvD{$g|Pff*$$yJ(X_tpR2a#hFz1r?ovn<_x+xH0(v_%WmVOnCG(g^0{;h zu*y^daSX~653{W%oymdiZ$34QJs$_p859#pO-Tm=PtQ{%t5@Ic7)+y+?~dBk>d%RG z*j*aifq4W6ikwf8NcG8gi=CHPZ~i8@@BU`2lJ?BDY{i7TNsH*`qBBdP{yKd$lz%^c z_q~`u-bA-yA=8$S_V-I3p%v|A04YdbomcbqzWicecFLEl!ddT`Z?T<1p>>8?sbQWX zm#Lv~AkQDWrK8*=^yHUz#Ew8zr#jD8ol?sfnk3O{p3GO|E-CYQq8e{yHdn|K^?lk% zF40kPoM7O4g@akd`$I}yyJI_5sJchsP1Z?puQxt!8BV=M=8*Y}oW&MnzeQM5zYfl1 z=m1P0PIk`v#z0QLkUhJ1>Q{dc$PbtHF6n=@*N@JR~xI>XiJ6;cx_G5h&TV}+66qH)LM7rmWnTJj8e{~!?^Z2F> zFa_rM$>-?&>(c?%EDLU_ky&l`rWK==BK214itGNqJN)x}N;`qH&8g$e)5EFUBZnXI zjKFJ>Hlw?=orS|}OR_!5FN|1!+s@9q?xEERDC~NcKrj;e`NYdv8(p#QV^y9osE5bP zT726l81$>`kJfj?o_{7`QshxHGP2y!|Ep`0=}Azs%Mzm#ZfOFW;;!y$G;hTJS@C22 zWzMDGy2(1Y@Vl`;dFJ*U15(q~6@O3KU$2BpE$4Y17$x(|8GX0WlO{QxwkUC$n%;X} zCLT~W?1_$Co8_>|J~qeG7w)-ODJ={#mU1Et2iWcZTbeFAFo&Fm|xZ_L8jP>l<+i#jej{!52iKo*1_Q~#vN}hZ8t(GybeK>Ec z_27RXv&Oi=Q{$f4*!~TojrCJoU%;+ zva|{hpM!3HPN=&kSC>>gCHbjl9KHT&tOb(KtM8^zqI*?U+^jX3os zc#@+v;ogW09OGuMFI;f{`0q+ZRAH*gp_vFn@UUH>@sx^o)|G7_PD5OE9P@b9p0k&? zNGebfoh^S~=cIUOpy@;yAkr_uH!dX6&5;(T#{Yp#Tk~}T?(GkG8uQ70$>Nf}4Z@QX z-zuE5te)UZT6v-q&WuXtt*A|e#}t;#PX?R?s-$w8JV~pNsD5lE_0hbl`cv}0a=d17 zi2qaly7cYnx(}SuH*@2oT^|9jQ9PYVb5 z*M>3spwH1Rppap7^Yzu-^z_eg$x2w= zyPa+_z%0={X~tQTW`} zIuWO({n~e7_)YEJ6IGxJ1v8LI^iuS=+nQujpFX#xn7co*Gk@B1a*gznT#+7fIIVvg z9?fdEej!Xg{7&+4bZ-;IUE6pZ3f7kau)5e^mYu~^f4ipE25NYjdmCR4e%Y|0v8jO? zS=o7>S)Ib^rmP-c@p8XBFS^r?i9DShzLau#lV7-D{LJJlwJN;)7{3%A-VEo-oJ;8u zpmpC>LVHC#BPR2j)a1j@gZhrQqd4F{qw50*Zv&6gueMrrV%j$nP0OP>QH9)AUm*j2yOT*lHR;pJmB;X)bjb^x^5vt%3+4#k*dlb2 z_Vn5FZ`Ani-Ok`8I3b05eLRAX`uJv)+EjrR#jxGG$V2%(F5_D!OFXSw6rL%6`)!Uxc|TxDC#D*NhVQ^DMFci^cH=}%6q0V zttRM!k4`=ld0yuBcF90KygC6G?}5~Vp2M7$e6ESrUl&Rtp(U-)mz;p8zHWS8hEadhJ*y?}j(u3OV3YinMsxK7IgH*oPx@7OSf)vI4Uvk#`ix4VoW_%Pwy_ z{GS!APoX&GY()M!HgjD!bepL7GzT?3tw?W|=E>v17~xG<@^Vbh|IB*rBgXa2ryy;v z=f$jS4RVPOVRd~I=@v2C3}v&1i>T|2FApSglx0&+m4{Z3f8K_yqg4=?+o7~Vf=({+ zh^gZM>U3b>fX!V@wKh zT(ca;6k{!F1XF?AwIdV3Z9%ci81PpvVb16Ir4YemlGOqn zb2DpHUqTgbfeW8&Wq&!N=JH~D8?!N&M=&-juJdqqa?xde+uC+Xj_4{wm$K6$|dAYvso2l zI2XCcCO?p$Jo&IJj8HN(GJ2oaBkqJEn0mL0zp)(Z@SZEPN$rttCHb4vTRsZr7fvHq zvGP!1l1}D>o5ns`H>I_RkbMZaWxA3Rh10!bqmV5FyP?~N@Tpbfgpuxb1G!z|H_IJ3 zuRarfkyWpEcq}E=dZHpaF^p7dk2IcW&D?J#y*L~{@u)n5WgynLHxWda7s~P2#!-gM z&9_3dUK)7AD9SRlLy*6PP5sHy*N4A-7ib%}`gaJWYYRC!s?A2QGi~0{j(%R2 z>9QY)dl`OFJu+&Tb-GY$hxuZF2_9O(iDO3aZiT0b9Q|D}zPJet-yVYh!$=5ioEAgA z7KpaQP*(mbZHKYaT6|heyO_vO{K&X+0G3M)#b)`(&xf&t&tIqGx=#pXa7`dP+9sg? zDX84Tz_z}oJ<49fZq(N7KM>?1f2i8P`uMn}(N1p-V?O#*o15Y5#={j<93%1i5Aby+ zFg*xGGx~Me7jXIf7HzX$;e>!49P?Q~`yg@%%y(xxOFlRyTj&}geqytKv~;4+xZKD&X8qLkt$@3FIMoPV2JXG~Qd-H&X2b`zo1p#d() zb>-q>0JEd=yZPj>!ZY9NnH$ z^wc(P#pRt}7V!Z@n&E3FcyD%plK={=!Y+1<_OOED30VH?YiX$wnkCG64Ui5|RSW3y zJ1Nr9<@QV~2k$%DsMdu$R?>d%^6^EII+9IfaK&dYS+v9x=mShcH^(rzR6O@0O- zSOr)}Laz4Z^EE12AH9NkeA<}jq^P|O0zLOGcjfs5poB_)KFeH&H(Tad4i0m!1irY) zjwY^n+^tOSEBtbSU9ou(u8RXxnzED?qN#BRkj;)3&S@8ayzw6 zQ+P0l2#dh4dnUc+dMtYKh`c=Xdw7klwfkmNmS=e;Op#mBwN=gif|P$0exZCfT77|0 z?b?~k`RB7>XYvqHrfY%!>^U{QOha|5^pzT4h=(b~5Oc`;LL;zj4!<6Bq&{Vi!U%Cl9$t zv5z~oq-uHyyn#JlB;>j1l9%U3)-QkC#D)1b=4CO$27YTT{J6MHO<5M8ilm%f?>>Ao z+3uohx3-8ONdb50F{PkKKp?_`I=A=*AKfD*L_F#qSouLdii;3gvb?g94^Bqs*>~<) zF05x?pLYvZ6Qsrlmg;+a^+>g|iZ}9H))`i!e zXAgoa)-yV!rM&l5X?vBkl9z0~Mo!pj-6qzpHD|3+Pf|)-$D6Xw-vA>7ioulYQ+ zZ24pM#kjKCifdQ);4pGMVB$y1*-TCX^paT7>5I@P4EJI#&Sw*-B2}$JvF{# z9!!m<==VikCl_?vaxJuu#4olpQT;WhwiLp{Rqu3ITiMRrTFtquiR4^OHtNCU)PIf+ z_xJTFH!t)pnQ#|3%GI~e+&yTvo(ruE6d5b#b78<~-m1)*Dh?NEofxy;SnCbLbQQb> zekV<|vzncHwRfJITFd(GWy_5~GNG4;rEqb9$BNo+(gGyH0PVpIWqQmtWO1oGE<3wE zwc8{5axJ8}K9%O?ShMGuH}w`J>F^~rv+4{CJi42JQs#=9Sco0p-Q^xNI!fld^|ssN z|KiZ)2L4((yHm~|B&|zQzFN7Pd)08{jBjwiPo`G?E+8;mT)9S0y0{`lF}YxJqv%Cn zrDo`yqt95sp2<<4pW09dqp!O1^ONm+n$KC6?BiKuT7XobR$h2h!<5Y92k*SAKQ)ur z5~cP-V49wbBq^6Mw3ImS%N;5-!`O%#QB8WN!JCq(M(gv?On~Be#;EqR5D2&c(b9qf zDsNlcP!j(6)CevP7TpmODW0Eh%V}4gFz&`?8EBCdvdR}DFz|qhW<9*Z=)eN&#c(wL znH54I0Ubo!}DYZT?xZnuM)*%Cply}q5tREyq2rQ*s*ZrbV=$g|rZdbf-fk(^> z{VJ@ptayRco|0-0p~)CZ-#N56FZFD9*^I{57{vhZ&+J3j##WvHbw2j497Mr2o}CLe zXbZn!Mh~U%cL%)JXK3-$5t}CW^jN@@f1t3hIw^6hpj_-fP`rye@!L~}wF}-`hd~j5 zCr5E1R__+zTDO9X=&mp$)xCiSBKru4oI3-iGo9^uZ2P|ji0{_ga9wL8*yxL8H&OH+G%Ah*Jug?2SrG`S+EM_-73(DLoPu2r!@c3z`h z?q+%WVxvB*-WZyv#oJRVc#trmxmkbWioc+-yLd!n+vyjLNLb?Xt<+iSbm?&~xC5gq7+hQ!q{Z@n%A-P{hF0;O|0Ax#MP92BsD(%^NEPhd92$4TxyyvI%6d(*kEQ>hn;co?8L z(@Rnj1~0Z01_A%EHQ(@j2m~$hg?3pkY<1rI92b0$M>Vj1gG`V|&C#WnI<7b}Mtt%v zleKVP2GzhxP!Cl4L;Xo^#l2-YGvgr_qZ!>1O?7_UOs8H{4^&G%pMUyl9FlxO; z?PVLTF+P8Yof0j-P9zSpN6*n5V zJ)%1`Bxh0@>!&)A?eN9=lHEJ9{Y6|^<43Ed`k0gTl)P+5i*o&eI%ntUMwf63?pxsL zwog+lWV|oMv5k+!rW&{L-ebHq#V7mCc-7Sr!TT6OgGyN%^RgkOszG? z#GXnuE%go1p@xr4G+@omlXr{|Mu=paxeaM@f55q;{dB$<6Q0Od1^PRQVy*i=t(l%< z4W*!O76R8h2+|{3{K+aHt84be*a@}|!bY4T32TJ93 z=n+i$15k0yeB@m1TnB{8x!yPij$>g{aCSDZ!%+vex@5Ax+@Io_5?P>m5~x2M)e&L* zwIxsAT2D!$Cr^<1%bb2~ME|v}!i-U`?|B?^W+UJ~fy<@>yj1=v(4&~?3Y+v`KLqmX zXXXHX_9!oJ%UFrN)R5L|10*w-9f4BXdg=kxu4VGC#Dgs*J;%qZK4sE$R3ujU$C(3T zTV+o}9wOGQ%YUl}G7i>wH4>_)8mp^o3QyR^>Nq!ByOrSJ;-7!vW{4T5&_VMxfQA=i zl?A2ayOEJ|;!saW(ySKH#?*F`h9qIcwvoa)HInGdSzUK5^rBS~o;fd>w*RfVW1*Gy zvQFo<2K0=GCe@yQ=zo|y|94#o@W66-#kY(64x`0d8khIPBUo?tM?277Tv55OJcgOC zgUgzN_Z2+T1Wd=(YQ7ZuE|AXbS?Gewp3@3iB`5;R-KK}qT^h+~723;&72TJ{7b?7A zWgQRC{T}cVUALAhsvlBsHv47dIPJ@-VaI@T+9(7g;xxV&p43Yh-WFn6FK_VluwM| zEH>sGT3rlgXM4ZvX9+!1vrsl*gQ^#EVz5r=8~1a(eCYfXOo922dvc_fd($93eU|%h?5T&>wkW?)9f(B_$ zM2!IMMb7#F{i(6OZub}-R&c$%I$eDuIhg%~mN@Y{_vvZNV~I)AcE0*;_!aUfzeT^b zC*$(v>lx+O!*m+`olRSu2hfw?K*)nHw9a|X-Os{z!eagtkOQMPF_9?34PmW!`O?4> zB*_YirC5y<)PY=GCE;7)f}LO5Canf;>Ov(^!5sxJwK}KQ4Fez68}tsT$e2oStpQP% z3W%PFxP(%G14!2Oc1q)4WMZp0z4BfiOE7jvxKh}}VPeV-XZ}Go%@=Z~mKb*~&9AXJ zvQGFXp_P{yahdB5;J_9^%;?ym6MCvt6yvh+{mxZhmds_fMUrMl6 z=h|2L_?8r}Q=M^Cr+;ovIZx@fzn$u`--!ajXd6qkp{eV9u`D2(V*;#wTgww*g)lA@ zt`m>wBr`-pmm?z-(Z`s}T@cX9+3Ca?H9f*=+oI#mogyYD!?w;w>mmDu5XgQ}gg|+!*HfxXWCo@k8Kg>0uYu<8O$lUG3^EHXX9;|x_{fh4t=EN}G)DI&C zPPYr*qF=ILG-B7>Yg4@mf;{>$5WWD5#vC;^I%|#vH0XjcJ4hiQ$NKksTq{1*6o>E* zZKU`g)y-JzVuyT@%p0UXm3s^=hcoYiQoWl>CZo~LLDc>&tt7_;Bw#-Ju%d2YVO*Mo42jI3o7JhmJRb~ za*=m1#(|3hV(Adz43c{!p6EkN!E4dCs4aY<1mQZu2>6@MOYj59o0T8@|ms&>Vk zKgOXD8N5q&$k?1#J}V+p1TZHsZ8KKGh$JdE*zC(5_}6({8< zWi?xXF~Q^hxTAp z0DGEaXX-)lbVR73wj5%wGm)>k7oJdKoPKxN%^UPqRYKcb^M|#W#2{f3}3th;pb1r*Y?XQp5!&Zz6|oE#`Ia-LoLsPpt{U zE82{QruEvEX&LW7xMTXa9eR{rMi=4O3K)p_)}>G8%)YdXwjGtFiw3{eM9z#QR9 zEnwcvUS@@mpz(Qf~135+p^)GAA-H)j(pG;Y4|WQb}&n z(`>z*0~3W6J|VmI=Dyw@o=Dw+Zc^2q8-pE)%`HIlV{Jbe3ZUR3ywZ90d=5wKVWKwj z^u|WQS-r>8rvnDU)j>DLUtA}^h>7GM?&Dkrau(b+;|rgL4y1O$_M)I&vubIxb2pfj zE}|j|a*w(E+HbQ)`}@@DuXX3>1;7Y4_5}60cH9`|8KB->p*l^vSYvAQcxTCGHn=%d zjqN-a6jZzsH=4YiN{g8L7eDEfRb&231FX7Fm4b%xYeCxkOmX8Q6;Usi{=2$@E~fSX^)UZ>bc z(D=Az!o@2)tApmD{4T!+DAkHD6wfT>AD*NS0cX7!;>7^vF0Ym#gLVKeaEu}bn(^H{ zBRV{Z_*6w1)$2UIJs`}EC!_Zus@6kP#7q@Yj+QORFKd5i@?&ZO2MpKkhW#4C748qC z)l1f(J<|$}#{~lfD!=Z%sv&oIf8J%Iu)J4CF6pd|`M22o_1g-@xfG4AV9DXijjLwt zx=HVGU9U=tZ@x{;hn64bYsi;7E~_!W8ox{b@gPkvDVukeslh#_z(1VMl4u7Htpr+y zBOEdO7axTT1a^G&K*JZzecS6c^4+Mkc@g^L(K&XKSep0x zi!@dJAE2>?U+l&bcrCLSIV^p4B#2N*gvxR+^P-_%kT@vrHbHKT@t~EgitF`=cNDOVyrkp7R0IS0TF5oeWMSB2$%J`%5HDHh# z>U7s@WvTbZ8|xRMBew9p}TMZdSrJOEl zVclq+EhzJm(RV(ZQF_@-q1VaHNJ}~wS&|tX;ykbw%rWA=0P{Im0dR@^3UFLd0n;lM^o>qxoczJa1ubLm?3CL1 z+z2p1m+6*1U-dhFJK1vCa_m8Uv&jBbPlKCwZz!9~TX&ZRnIbt0VQti;8f^m50u>u0$wn>#N?G}|1rp+_R5`TcVZ;$Te_i;?4> zeYO#~ujSjfxP%f5wTvH!7H$Z%wA9`ok@O2WarZH0yB4e~9*y6{bZBDc zX_`-eyq>EoB{f|UG?@B?4pw6xk~=NQxZJbBw2p|tbR2;`G0|jKgKL+-Rl>2RrF-Xl z+YNS9sF;Ohc45?KDoS{s?6lq(oIUb28X3d>bkE&-5Q%RKSvd3Kj9TXJ)sg$O+|Qx z1Toa^JTam59xV|jj|#a0M1Su8>?7YBjYJ{?`@?;{3#M7KlgquEqm#b7`Ds;eEa97D zgk%s8xnjKh2%`wH`zcDR32smJ1A``p97mnX?-qd(n|&o)-|)<23UzYwoSYx43UjM2}T z%ia01+!KJyf=XP36d*DG2Rz`9DXqGt!VG=d(CZUXcfY20&7S@^aP-S)+LYONiN0*W z((10p6OX=MMhZ7Mx-Azv&fj=pvH%|r*jXRa<(&a-=&K$ee{lH1-vy??qwijyb|Du_ zn@d{zp>|9RG@eyF=sN##RpXAGeX!&6y0s~MI?)ABDgJl7SYL@zJ<*n(npy7aYgoAf zYKicLzy<&WGyfSZ1W5U!=!gHGI{EQ@= z2N9$Whtp)94|V0q@hUJr#29x;vauXDM^(SAiGye`?vY+LWdy=E zLO~Ob8BvCf*nEC zg>^HN2b%(nv&_3;U^84l%M-2QH^Q0YN~bYz-#2s)_VTivep5 z-QvqPO`R$=Xa80^VjD(RO|)-6?PM+a-dq{So^Gk6ZnouwcTKUe&V|Tqk9nkHe%WDEkUl~#F@(ZBe&{WXsf#`!w0qJXCGb2CYZ`>H+ zIQJ2YfLlNwy_Lf7@;Fuc+$R6is)e?*s5nXfwsT0VG4$yn7cB`(GUMpAD*``F#n7i% zu-^PcxQM9`AT~CKnxb!Yi627iF|l=p2I;P>65>M|PtW4ot=w4HY0Pmr)2db# z(_u+`fJ*q529~aH{?OXD`NFCwIx_ZxLiv*0aw=>SxlC?%rk+n2PBvcWNU?$Qb;H*T5 zd!CgVXL=ZYay(E=f{y9pU9w19?%*F7N5cZVyl6aVS9aakl+NY*&BVG!^1@q*0NsE6 zHU8~Y`4PgENuBp1ffW|`c)fvo|0j_2pTNFt%`nK63Sa0UOTr0o;amm8IJ*0Tl8atc0PI2$?d+#<1 z_nfjB@SU;b&d>f)w_WluTXZi--^KUo8u$?w$yN1B(xMCvC%=J=uxNRtwi>Y{|)ACir z`_ZvVd0%(KGmX^oU&Xkpzoj8TA&9m|I`2QtwhrAgDB8@Z&Rd{++=`Z#!*h1-ZSjx_a*Rvvb-(CVI0! zZ#y$r@abvwkJ8`ChGsSD{Z%KxKK%vt z+`E1?tNZw(55L|A<82Y245Sf2vrk8}#+jYD%?G6v0 zNev0h&@k5d<>{aFF!F5JFTrc$me}>X#l@dL&yNQCS?GruHRi0YH<=E+u+L6x&9M&4 zYRq1LT#ZZ3+;#B6Mhs)>L3=*V85DhvMr52|CidnZK)($8dlXp}2_kHFk4 zcvkv;R?UP9?-j%h*BS~iA?EzZWHv169Jr8L7{aaDaqcmAC{!Fp1w^VYjr`h8}zd+7^5oI(p~pfRV+RixYN z1q*WnuAqAp%mu-?(s2~6#AW% z`A^`7vwLhQA~dBq@E5L)LLw&0gK#XCWlo9;8=n9L)FIqsjx_xZxq|ZH|Gk#L>D-ie z9E*s_kPGh+bm$(gh`A<{G(T7}Jc!S{xR#9IeW>srl~4>ZMD_^FEo511L0T9OZpGYo%zIFWIf{B!WGEQh&AEQ|hjxAW4;(82RwtBT;7(y@ z@}fb54cL#_DJuf64EiKB5q?l7H+1pGQ@$Dt9#g7(Yz%iv;$NK{q>T3qA5+<^`{&KI zI#Cxl8I`-L=k0hGYA`&en);X?3|49exUd> zm3xPbvxbwt02td8YiEw-sPA?YgnP9ZKsqN!v*Q)|#M(SH19U$VY7m;p5{3qLDr7x) z{IDJ69Rk!I-C&Pk8@4G{D!G3l8w;E(;OwS;D1nF&RiPo{agfQO_Ss7fKnQ&+G5CMT zeP-f{sot2_t4w#rw%-tny?k^B3l=+}9t%s8J6QQ__UTp4Q(53{o#&6L;A#@KjE{0I zfi{p?EMm8OP?bzJA&0q6lFw|Bj`R#8RZN&)!WafwBRGCDE5J+hgckibQWA^E0OneA025Rhv&7(bl zm+Wu}v$lk-ZU^}%($! zkA=fYdfDBbMahUF_q8uR`a+7yNW}4kYo^*StiqSv#gA{Q=p78mi`r)rA~w0siRPTe zbl4D#`Q5V$yh_Yt@T%3kf_g)e=k^ny!Xjr+1DGwzOLv#cBRO_dr6t?%9hXX=N3)DQ6scDb&p6+!3T1BzJ?8l0;j&e@9q z?I=$IziB14{C2ARZNDef@SCXMs1CeeY*6ZQ#0fOA9$0ajV8A-=u3I zX7l^(O2=}CWa8=^6RFahO7&vD8prq&-@tK@uKc)sdE$KjJN`GK1P+#}#Ugdf@1`2> zn|FI!k{9T-jST^fbn`6G0c{qn+jc+vh z6ys_;JO5@2Z1dJ~oldgs*Pb=UB|F@p!wu#%Gx zoYdz^bxPaLF=2C5V?lq}C(Q6_;WR19FXIONZx6ceb-HpQu4X(RQ2hfGfOJ(ya91h$ zk#^i0P|28DjsYanh33sVhBnvVsbvDl^WW%;_{ATC@T7n4=I z+W34R1XDKWIyL!&+O4)LVXpXicx~XjgSWYrMu-;nF}AwW3fI;!B3*80Y3OdPMYeF$ z8ugta>QT%lQWxQ3|7%Af6Zx`eFJOd*eB*wRVk#XmNX5p)vWPuwhs>?dXr1vOBXHzY zsQ{74Y_>{tst(%Q7{53*eRJ6p-O-T#`|tEeKTve=5`~-+`$wMto;aT);kJfhUIkN8 z?V0ZJuH7t0ePVrHVMvg_T9%BA{xMXuW=>*GV!V~bx!+%3YGj*xp9=8`eqjL}IFl5; z8Wpnv3Rl?tS*MiVu`AZ7@Y!`B-_2~x_tl>%Vp}xZ`e;Vpj=weo}0XTN`+(F$OI zv9^~lG{XsspyUaSnX2;tovWAWh9|op97S7TXrkub%7;d=$n6%`u~p}YjEXgR-L7=_ z)UB+{&|qBA>|n8ow^+e5&fwo&ER25$%%KmsG1(t#1CC-)AZ0-1xHN!z{g&Qiw zMw%LtQ$)4Kl)F#g(nVw2GBR2zmofw&A8FZd^a5iIeLMwCrNEiKA-!>!Cto8V(_Cu| za7H^rt5szmxyKIpvn@+dMqjjka8>5jc&pW^lmhJH_?yGevOJ5jihL7Ql4mc05HH;P zoFI_e4L?TaA6BBlWB)qjE&(lF5n!7tCVkjgsnpxKYItSI*t}}}KLL-Ca~rw}x!2|_ ze(e~&X>7~;t9kTi+nB%My^4UF8l}yDYL4fxbQ<&Az=-G0 z%dEmYLjtG4LYhhHVrTwFYcc(Zke<1u-|z$S)}@^_QGGIrJ1uTcECf5-uR5iV~}}`na_hZrgoVeRYt{ zE2+>uK{zpPe4-GI90w7k$iz_CMsg+ab5>zMp0vO(pjto`IIZX}xPVG$v(Wf20&<8N87heX+IJy9t5^v8xhBjJg7=Hpp(eovN z-(B#7tsz0a<%#7DVM-B0wnV^W0k(JjT~Q{Knc$6=QC9Iiw!k@~V`6gjoG%?~&QQ0} zaz3Loo&7WPX)D6T|PLLxqg+L4U_Vb;VYAMl|0<*W38LRyzPElkacqHwrueq3bLtM zrYrsOtu}>QU!n8yaHa$2^=BxcvCB|wpMPz9;&8d(yEJNAl@37LWovaPYLau7BshW(uO@7I0 zkGRxYrg)88PNL`6mNBHRl9m0t%^jg{z;$*mGm9&I1q|g4N0@|o@JL?#%Boti4`4~{;9JZiP6USG1 zP2Ce#y5ihrYMKT=w)(uoHv%6V>bchbmK45x)i2)k=dalaKmUgOR&l|Um%aO!-x{V# zzP=dhJ?rn-wr%aUrJy^q>x}m`lpECZ(+_rt2=<2lY-231|2Q-#xSu^_dr<&Xo}~Ln zFQ%vb%oaNSIB8$cb2HSw%Y4OZQ&%qq|7?ecV~n0F0v`JedTa!h+eNm^ei`)5FNz7O zE-5|+=}StihLlS#>YiR8z?)+@~w?pGD z%UE!b2W!YABLrQ3*pCHPzWhJW<&k2(77yoxId)uWdNP4CH0cS(HoZ|~oGUd&?RJo!d*h+7R1MY?Gn{kLNT}+BQFE!(eKSjr>i5_v9=m;&!{>p4yMg)ra;+CZ+lR2n`?hw?7-T zTf6H|&NKiw>QTg&fov!H)WycqpN+?8g=U65LaC69z+^!ZRV+8Cay^?+jG}A0C|$DrlHxMO=_~TQ z@5}h??fSORCnk_XP@rZ1A)L*WPd4=)`=~1Und&-tmZ2WLIkPp}ACQ1WbzXe`vrx8j zrtNc@AEWp&o{;G_D88ZXXcXbDmmI66+?uzr)N}Bb!9x0NgofR%YlW}OLL*Z?d>i_{ z=TE?x^3|F(csHDRYv?teAko51jp1r6D9Lm=%u45U=Si}bW6<}?(YF9HT@!PVih2qx zShL{m3jH-AD4TGvE^0|Z72w!DtHi9v({g6?yF>3bQmgB$ulnl9SvneWr3#RjMqi5qmcF#Q zMD&0Q!Uxei{$8VFEe91O77p!I5I@v5?!ri$=p3FChrFCaim=Qt(Ml1G#H^Xfkx2t z<$>4XAw7AjEb%1Weq6Ryu2*;VL@C|cj($yU*9wDmbDzDnRM#6=WtA4P?<3kwRk*Xs ziXEhy{BK21Ki}=aYJg_&-*JnMr*k^q7S!3zWkh){y-?lq{yE9u#4KFz*mIZPSB(!B z-kEed`%hfAMVqrZ$cY(Lsilx!dxBk0q&Fy_%MkzT2v$^&Q==o)fXbJbD$x`DEPc8H zS{De}Cvzp{Hw<}XYV*-Ze4#*}F{VLg!-Clz2S7QJeJqFr4!I4L=Tq{fceWJGFO?sM zK{_$f=eefLXE&L$&TH}$_`~_{iauCC{(z$tyuEU45jb=|? zqT`V)O6`x0n^eD}UB+t1EM9a}9qVj<>j2AasC2($jen_9pnMX{CI5+-pk&{qM1x~0 zVJkpzzW=R^x^>b7BNz=vl^xwy9 zF63PX#gf??c!78L!!M7&&1jdscU;fL%;MXcp+CNK0Pl-tKkR;4eHj8ml5x+~#J}O!0;mYW3yOpk^KQpRx8e?jk zKh(Dk-s=6=%Il+umq3b(fLN^X+9PjQk>vv6S2pLTAE$Q=9$FOrK^1!mdZC@Wcz0jl z;=W-}Tg@z>T_Dr;!XTZFk^_B|@=OF2hO~xeRONbx1!}S@lgsU3*?u;==uxC2!pLo= zKdkg~urJ&l7*29-IGK?-Vga`vU9B94rs4W?rWO5cWl~}fq>Q|V*}??GKk!$MCz1Cj zImOB?DthcQNrBCn2+0ci8K?$bkrl8|c%_M-i_Eip9V%dQrG1|oIZ{oLDJyoUuS0ep z1T=fur`h5sFc{E#HZ6Sy>uA>C5L#&hA=^}N@D;BcCsr%A8D3sB+tte=S7i6^=@3Xs zj!c?=?CJmR?G=H*zTgm#{R`zQm(}kc9J)7nZ9#!B&uOVRBCeUlSnwA(f)YsY6_o9j zTe-4sBb-;LaO=;j#k@WJN0XkvTnIj#v{Tj+(n3gdsHx8S^PhkgzHVica@NI{g3W5i zH`fJ^m<>$sw3P}b=N`P4V)2ZXXY<_PTf3aB?ZG{lPN-Ed_JD4OgSS)_(|_;X(|hf? zq`)3sk+54GsxRJN_$bz%^u_r3T`7UanNK43{uxVqez8z7-$r0DszY_(Q-N19GjGVd z!NHBGUd5co-Nr2EEiY6?+EgPJZp|Q@rKRxFg3ooe)aMC2{0NeI_r5$3XZ-4x?T=3O z;CR*HLBqO_2iAA`)XhQ{BEQKh30?kTHtF!-AiHT2xaAH1aH#qz7xrIj1uudyjLHp#M=zuQb$tEIV)zF(X>n{;pKjQ;mDU(m?( z-{mHP%$bgfZn{sIT~P+rdN3e8>4aIXftfwlu4qXpTlzcE5S^gdy1J^{Amh(6^QaKm_bF^zTWN1LU@7oGF;sFlApr@U8ZL!Uglk2 z5n2xjC^_FczGckwx}R>v%uB^0r2i8rgyYQ_i8R=2xY#3JJkfJq6xvQzi4AOX>?BGc zTlKM1h~-YUb76blS>TSxg0HRvrDyJFtCPR?{``jJ9;FM^sUE|DBIu!3VXgd5=wWNY z1RAgGKLPJ#8MZl7IfJP%-y8cA@M4*gu1)BK3wFS%4$XNjoKt{iPiUYXL1P^4U4388 z7M05W1+0H=xW1sD;&E%J9kbVUiYv!d3)TA^;>ua%7-%Sq3j3dL9DSX<7x zR}7pk*(SphcRwm0mJPl0=ArEAqN)a~`^7@{j}r(^zznSZ?? z_WXs*TIAziYR}J~w-9(cWxg-zRpCbou?4chmG+c9^S}G`6y!7vdNxjfTaS2{dTjO(9J3n$R z&mXw=P2iP(iopKGy<+|yYHtP9ez~heb}0G^?(u&MlKF*2SesYvze(LU=>2zZT!>4b(`3=#O8s9Bq`b&F1C2c>4bbi(>_H%?l|1Ov74Sk}|NQ)7_^3a{BwqG_ zxvSWDYcEa3x1e>F&DBBJ{&(NL8J8XSYTI_!cC-D=%6Tz`^!9d*CBM?w7d{@1B;D)r z)h*Q|&rWdE!?mXnHJRD>V=Y&o=Coydo0~tzk5>kbXlFVao`xJgayKedAn(nd$f13z zs!vtrRxWqceB$qq7=cQH<5UF~6i9J$OxSF_R9&1r_^#r{1Unm~G3AS`Y1ZFkf~w|P zl~+S({|U&WpssHezy`juDtSlr6#tkKHj}RTlK$tN>%(hFA|A&V_Dh`=QdO{6xza(s z>zV8p^So)l^1-`Nz5gDZ{upT5|NHsZ11~p73qH2*y=)3&wQxV{o9iYfyl3W$tDCpz zKVRyJUnsB_PbfINjkwxVZ1~nbF|n@RZq9MC^6Q_uoe9_*;@8!w~vAzkw)zk{VdT~OV-v9mC6ceWv|55dHD6HeS> z7@t7=si$K^)(J-^a2Qb_%N$gor7P{TYZ=+W3cHZ2w{yL2j&HA0DYm0HUrpPXS&sGC zv+9#+!ULw8hpMrq<}vrvZk%j#gF0qYZw7`ZRTT$&-g@x;-tK7;IYmvi#MtClPnqrV zJP1gzW9Tz`*`G%OYhqRKMT{`y9j#Lq*gR6CpRumpRc2Yygp)H5?aai0x4&8?qD3$~gOPJy7!IZ2eDTbfGUP#NHOzjc(@P&F;C zZ!>}Q{c#^by*X&<=507$Qdlz6dd?HC)vAKTPahZQWI%N$=P*{ zD9pdWg^tB0L>xmq3^N`J`IiGK-K(OXr>B1ynG41lYgJ9I%<3~Urb=?@MA4P3r4#8L zATr0Z%knBMCZOS?h{)p6p?xAoA>Z12B>nGdnmfN=9;~9B!i|nv2ZB#nFwX?e5Gge1 zU$TQb^w3IeECZJhjU`t#t&W%4K{C2~?vx8@c9#_I--bTf&X0#4L_g$6gOWwO0=~Ss zpwFB#@#)sF?jV)~+l$%zrd6oIkUs?SF&iq4KyqOeO>M-RC~9nDR>NApUk5^;#QmAh zR#S=6W5wf7#tY{l_^0r?!iZ6ox{x^T9;Ow&G?M5|Ji;GxG@R?&dbLGE1*wRjK?dU+ zg)Zj?EmqWgX(B-sm5Xil7Vg8S*K~u}(Oq{jOdLTRPr*iV4>zN0_L-V2!pibC~irkQzNR~6KYbdeVvO_$I zf$t8Y)kNdvW8+G2h?+QeiPn+-1g??jPi<3Ao#@TXlh4U@($u|dAC+O`Er)k@Um9Pe z4Gc*AJG5-^*s0`VD&@twyUfWHjX2iVk1cx)Dt#>jT6lze1nrqJ$sI3RI@Q>e zV0M-{ZB|$Q$Nkc;n11GRD%WG46WheBi3j;xyyEnss9WQH8w_o>@r$!?rz`ZHzb35i z6EVMpK0ip1liMT6hOnb~bvrdF7;(NF2uhLQOLEnDpU~p0lamn&==)^jAX;BTzC8B~ zz?-+$?hfL>h0)FcMn9Ubv0^F-l+OPoM?knHOnz+*fbX1;-z)$jhoLetHW~9P8=wF5 z(t0;&oQn|?&TFU;Hfn;P&s7HAJwL9(jN+Oz{R&x?w5l_Z$;8<{mLtt9`r!gx>?s}b z=DwftL*_$l6*%yCS&m9(_n-L1lJ&{Ba5PU);@`!w!h=he&cFI+GT-K3Y-{5q@X9we zZ-(>1oWxucnRpRe*_osclZz+4_=!4eUkLGVms&NGWR1;$ro;g#jaXaW24XOcokH1I zVky|Nh>=|D&p^!F?S^q}W5=T6%(mjE_|SW;%^#`H_9}UFBWUYbs5L(QR?4WijAN`t zQ}(YRy9r;2mfz^DTMVwn=jqjTt&O2`jrfDhj`*f5yJ7BiZ)^ubJVjUZ1Ws1hs3lRD zVRh$&1N<1ZTQIt$6~sZBjhg&>PH+?iLP6)VF^YTvz`mQW4PfcWL#Tj`U@9S6YAb=D z;tCRUxa^<_1uxwS$gRjWpi{0`cg5@*yFodMX6-MQ-ob2@vJ)09@-}^Qu0T~IFja%%{C3&uq z)zN<*%LDtSX@d{ui`h&Z^ZTXDI?`5jQQlH?JbAxB)4Z9oj!_j|tqNji0OUeiglWl#c`-++_la>E5o(j}PbZ|^wZcyhkxWmf zTLGS*Ah8Xi_PxP|kc7ZsW>(C`rg3;hPiE*&O~R&5oZbBb{u{nD_ioNLCM3%EOd%?u z8-}2#?n7O_JJt%X?Di-^vE?9vGx{*wSqXg0=tHIosfB~Mg9y@y-tpeKga{Cw=_z=b zn0SY~3A`||ZuKZ})2jYN{^4@90u^9K*7f91GHnut(N-Xz1KYisQ3||zyXtl9bsduwqDH2)aot@n`-{y)+ zS>uUvo1bNltOaKW6=PEqb*_5VtnBLVp?d*|JiPy{QheMnz5QI8OjEVxT_hhz5Lwb3AxoTPisetPB7S(@(^ekPG!Zd&+i zBP@DMRSrBj^S$k?)EOK5j5GI&?cPh>vNp5i_UYdl)Nj4}fE{8v2wQ|mxtIr2qxvB~ z6s^y+gsT;)O#UX6W$qT5wWdswg5@LYFvn0J(1(ya;a3hIzbY_+0ux80=n5`6Yz9ZZ@?JlR}upCB?bC$$%T!xLQ z;C=kv4`z*UDxOReqXQG^VPfTT^^ueu2NEL8n>eI+ik)KB73p;O8U=% zhgkO>jeTPw1CvI`LHX;$#6YM@j}h^p-1kL56x(1H|it5=crIXz?cb4i3fyzrhB zXium6VoqRfSk02byRP!SwK>C2*S(fKCMKY6fqeRYcW5)KxIt7pXV)pC?2Q?raJ48) zC9b@bM^_4E>|DJ1^@8KmgP%teP%Ha*RUd{djRS@URg>&i>PDe&=*D$j{JRk<+=Fo; zA99eHHT7BZo|(f2ECbpn%&yPJ)T}m`2NI*rha@BB&)v0spXKS;_nGvx`vtFN`TU2* z`>h2G_;1bIA}vqzPqZkP2Ut^|lIbp;T-3t?ac2MF47;&((^R7zjF)y;tZx0&o7t?b z(8}&Cj!tgz)X(rNY3TR7tC`iv$^AO1cH0nDrP*&sO2rk(lk*3Q>yx2+26iaqVsq>N z#1L~^8Y3hVE~X%i+P$VzIXUxbVpxkh@B_BrUa2L~KD;`mpzpFv%Rj{*8b(q!iVW_5 z@mf5uT|*ktshg6Z_(9;ver(Z)R68kb@yysW`;e!D{@ywE)-Ek(fHI!)Ex_J;!668R z!ZbO(L4iywuVI7ErQZ(d=$$E2<7G@cLDE7rQ7P5^6}G;iF7{9i{nrAeVbtKzhk9#F z#^rjH4$amkWnxjmIQEHUu;*X*Q|aF5v)#WJxfGPntKtsd3Z=C}^%#As(}z_0FNa4o zn%)%j{zz2NqY2aZUiLfQT_GE%ym{^PFko;jD=jl{%gc_=X9YIv0b|+ihtqZbMVWC3k)5g#M4AXjdCWRC21eCe3ktab9bxjy2?!3tAMs0czpgv zN57R7+?4O`7tvbPi&Sd*5LZKvqtF-}UFolq9Zy>9DaxrM`0z53J`Zodx0lvgWe!*E zx8QDB%qhIyT@3DzJ5fHn;^VPCy9+>;hv0lwaaPjonq1Eto(Jz@x0QBArvlf_c9N9u z^uu7Uz$V^nJbl4^wB^QJw#$gBQ)5ymdYO1I>r8o5!kus2;^(D4pBi&6D?P8eoMJ@m zH(~82RQwdWXY9||yq)iZ2EDQ;L=lTx5U!kb{=Mw2g?T?@mW) zy3~(j&E77#dG`HG>!wV4GvNtV@;pUXjyCae+kVXPE~a9V5qUq>mG|i`524=a2a&Ye zhrvZ`I5>B!)He_X*3=tb!&vK5+d`}&XslC0cf9p$xbv^yk9vD_Zr^j5k8F(m1?=8A zcLuGNss8fq3(Np>D6O0)&&7`hj_s@AMa}-mFYlOVB5Za(t$IcrO{8?o1;Up+nvYof1zB-N&V!YC@= zzN@J!6KIw0zmQ>B?Q)`IL)*=UPBzrWp3hr2VOs*XzLCf$bJKYYjviCD0}(TUki%Y! zsGPwx^x);Jjx09ad+730q{3!AwKUZsu%EVjX|T~xLsT6sI=y58q4pgQ$*kb2z~YQ5 zPs4{QwQ99~8-5~4{rskGw)?w8gWKPqVk#~yDJqGlp3!}jypX=<(6&DY2@#IYFFCv1 z%sdG13m}q-nWm~2UUD!Gtd8F-s|p~dOT4>m_%aU`f6U6AT>NSI?(w;?>f@*07R|3V zX#4f|nChy8<5*MI5+jWdDy!(6yfpnuOtm_r?(eRLABVmV_>y<1E9MMUw&n({9#Ghk zdh+3=Pv5qid;6{IHPOyIaPR$f6M&Y)t#Q&H*&PyVb@_JtZ)tD)s1r4>lTj(I7h_CX zQesTEJBA&+^JPOb{(3K2KfkdeKigfu$)Y$~euY$1`+FlJ+)+?PYerZPMAJVlH`_fJ zsU1xnl=H$oj>`7@N}t|!?WMBnIW5_jQq{A6pON(6`A9z8&~WjcGVAy>5Vs5#K4SA_eovMF$R?V;n~+WEfTMb#olVa$c-_y+hr)$ zKHay&Z`$#?oeAqRtHLRDmA2tj8@S~e{Ugy~66qhhl1~gF7FXp1AzDSiKi{1CrIbZ; zLl?e1-m%~CkBmCIgG*t`ni#pNOZ`e_s?L65G4EV< zkP`N-`7M?Qg*i~`rw1Q5x?BQdymf;+PoXN zv}dnMGJD9@aQp6)!DHK+r6i}mvgQ+xNQMUM744h)3y)cSXs5aJjv=)+omP8KLBd&H%g+7BQo7>QFo{OC!t5STtmYhY)-+Q!}Z>lPvwS>8>>Tu ziDR=VE6?QPT5BDNx4)cCJ2rm) ztK?g$qBF-OPpY~&7kMpq-mS4fr(gOgA#+tP-b@_Gg6~XO*w~%9GK^*Pk6IRTg#k9VH67%3&=lZt@r48$X zsL=AD=;6Q3c5=Vn+KJRd?sKoXZoDrJ+73qp;!nb%v+pMXfD0 zwcGbnA1@Gh=57CXL8_=KB1nD6PE&ISV_Wc-dymD>JrXaIIezleT)d|4>fhvx1&Okj z>+5df$DZV^Yt0w5{iEgky+cXt_CrJU^#;VKLv#qPwcpNfgET%dRZR7?@@G{Qn_cRB zI^@b(ev-V97rK^wn^SOlLSTmG5nFbak71@dwd6j+IM){cnZ;>pzR25}|N9?dN6K_t zt*0xp4;~%=kyZwj-EA2aU;o_Qv>iWT?0(wlt_zM@O1~HtIBL_kzgss3W_aYn z$K1a&#UEx><*fZ#|ATkhInH-2|1(+I#Axep%^bB|KMf+4?0XAE5)@{U@2$T@6o#1S z!l%@4yx{9T5*4>z6(ziR@zCndk^PL5x^-;lF5&@PCxRWg#)4I1k;7{ONsg{a0>K%W z3y;N#^LBLCH@G1ZH_&kqX>^F}0Xk+CC9!qXSQUC?^U8Zp^i0d9!pD>nP~41-4-%5< z{Pit=1JU!-OdxP9q;V@O?aKXN)f;Qcg)w`eEx{4|V?4#{oY+KKOnuy_$Ji=yA=x!> z#z(b$$}Ro6(*BcIMUEn%WvusQo#sEp0=7wPHUB!+gJar5Pi_vOSoQ4(|Ga@IFt$kq0>x(D94 z;Xk3s#kEO(FQE=EIIzjRIAW>zI>2oxgH4&&jcGF$*iM|N{GNT89sk5i0cp~9vTfXW zYW;?PanC#Yq8mQ0F03U-vkbXK&n}r#_HDY<7bEIMu&*KhuVCG;9<#dy%rQ?ENRI$!kK+q=BO z7azT=Z;}9k&9>ni;Jx@*aGiN-HeZ(;Da^E#=IkDscjP4!Y7iYWusPl5E#cl#JL{WL zQX7~P;~T8VPtuoZ5v))2VhYQqPfmZS$se$8^t@xCTf{WvZ@wJlY1MjB#Y1yPW;J#t-A{j#K=sqW_Fww3f6=&z`Jn@#Q`hJ_(iO z=}K>c%vvU;my&2wPnLuEHIsJ=A~+50LU>1mmkLL>-CzeMyw6IatuD7WG6kS@f}+C9 zti#{Y2K__9WK_nXB%nZnqn~?x+QUCw4?@OwP;h%Ww(($JSHR?PhnAWg#>p{OhTtCk z6q6FKaqO$l7cAn3l%vvH$W-rG8yKF8)J6w@aCyp#b>=RkU2 z2`}p0Xr1u*=fPmDFc5@G%Li(EVYB33>lljIcEyc+GvR<#DaDtt!`q#=wvA0?S4<&UV- z1sM>w4!pDa)$%T|w5iS}N|$~9qs^|pk2Is*;SGqryk3KPw-Z^v9A<$^{i0ej?bg?{ z7T)AMn1gD9V-rlPW>XOgmb=RA3o-L^*{lK1>AnJ)@i&ZSI7c@Yi{`9#o1gtCaV!7O zxKXZ|#>tL*$#tmMyYP7ei}>G05>^0Qg$gy!0Om*0_)5n(w?CxFb`fJWcCdfE0!_~x zr0ZwZY~lpCsERRCny+>LgM!Y!M+LhPoT<5vaneQsNu^x}E3kd3WE3S0CP(&Oiy^%4 zO9++S+t1!HE1n{-=E%muK$!u+GX_*xH@O9#5TgkFv9&0sWqOTI-~l+{>T(Jw)T9 zbEX|o7`KQFeu|fOM%EEL-(6q}VW&i+O}26O8tV-m_~<3K6NH^i_TgHoVzhS(bUlJ7 zGpWjq{-4;?n}6V{?*$Kd5%cH+g3I7D9^z+9UC8m`C+tx6NDQp^|xl$4fjDo3Ba;?&XRk4)bqP_|o8b>M+;h^cLWKnjz02 z?CM$e2li@#rJeAd@iIZ7?=>u`Pv8LQ7{+w2&i4#s9z40igl%MhMm&wsi2y)^cHRspYOaKYFIsXd zjj=?{+mYb10p@YB(F&!7o}P=nN9S`qO|QqPP8nX3^XO4aEPg4sfnF&DA5H|5`6w9#v zwx!xV#YHu4d+En?WEt2?U{!EMllTLG;xRwh)(U)tN~1<_2oKgRlAs#PN{T+hWJ4fw zZa+oPVel2-IlNwW`rWeSRIMIY_>cyM(W=w_n@sxF^a-}jqE&At;{&NRf5g3~wSWt9 z8rD_vQ1@tP`?IJTs=dW#liwyKZ59+GyBl#G)f(4fQ~wiVCW8EGr3RK#srb{+kLDit zA4;BOlF#91b8x4=kY}r55tXWWlK)xTFPb8#wIKL%SOf6Y zaY!H>VpGU_+VqwY$}L(a1Sh#7OSB4-%+8LkCZP|igNUZOOpPxha_2o*Y3e;7$FJ zLzfOeH(s~gfBi=<)8&(=t^Zq^1NyCtn@88X*QUF(QfclbFMh#oX6gf$3x|VyTD`b9 zx2cIi=)}}a19=M1_Lw>A4gTjA9Q|_pb}K`-j}h~m^zCeq&o+^-UrYr)y0G=gcBXem zQ6!Cs@#BHHOj%*rY}yXS;h}SudTHK$7WU3_2$nV99&0ZoieOl{u(<6cz7tr`Bn_B9 znvqP15@he9?7x@@lAeR&*t`^ZJ(nSllVY*nlJZI zl4vhGop%m5#1^1nb^8)5LCJh@jIb{yx#>~AZj#KKTXjYaS=OG=5R%1n-=@2X&dxT0 z`FghWWahV3+F~@pzT7qn+LT_@nENO!$WAvJH9+T1*_KAQ2*tn`6&DTAOj)X6#UJ2> zGKuPaNJvN8r0GQ}9%+!QQvdeDm%16nx&7_|IJtP&yz(yfOh&f_LDFMs-^VK7FGj5q z!&(Zzwrx6h%hIw%dxAI+?)(^e_O)9!3#`Ch7l%cb9)h6ZHcJ=VVyq(X1RXLG%8&}! z@+zLgOaGjpDpJE2I?XjQUjL-azkfe&JV{)&JasQCCwAE(=oGONGD+cbg|7krk`M!{ z1D7M{r{PwTUj)baUKlIt+-5Iq9|L2f4rlJ_i(##k_xb(8pgZZ%sE>h`rX`3)(Q)eR z*r9sT2loWy9S?f~Q7jF{{C?jzoriu#4bAI|YN$DqY*d>Sdq&T|z?6dkgc?)W{QnOnvF>|h{J z>E}e=o<|GLLb@v3f7-^hNGoYQ>EC|+@l@paH<` z6AhXJe=AnG?E^bD2KyH~rM^Mu?N(|0jlOH<0ofv@CI`o(sy5`*C=9C(Ce@jyf{C(M zU@rofxo%(OY3>m!aI=~;;N;+wQ{7~h$~LQjiFC|$Gs_^|G}ei_6m#Xn9BHrfe$xz<<=86~=z- z6;5xl?;GBQdG6mNUU(HUGMPj3&pCltAo~hc=h|KY6k)Jomru!8r0D2KV5r4ZoXd%o zBTbF@%v9YV!AAk0+cU|JL6dEzh()ng{gLy;XBr?^vzsVx(sA`*_9N2v}hC@3b-SFky#0-Xij(^-HI1g9$=EK zP_JRg^PQ(044~_HCCWekVwh8O4;pf^gp=b4f(II2`kdCeF zm11z0{mz&j6iuRut~DGK!2*_|-uK0Zt|rlH7-@<;oy zmv0E)i6j;wia?hVg*%Q4*SYx#98v0Vf5Azxo-*iw2ne>Z*L z9GjK-dHB43aVYx1RvXEc3bX+9Q{)0FOX71=TS_=QXLM8va z=(BkrcPR4>M)duS9w-K$Tf(B=dLV;68ng892WVL9n#Otr&lM*XL-`}cE9axIVZ45T zw-|y|6I1lDhrs}Q()T8(s+wIgb(vik8J>8zjk8+(c8T_f19_glYG?eB_WM>dUkl}r z%W>?S=71K@l2t+NTMr{0v3h2kW58>6HS1)b^vJT%bkyQbSNx1HyuW} z^JEa0hws=eQux`Xz_SH^t1oPBF<{SM1Yh|Yt_QKL4k3s8T(E;$cd5l0HJ7G zcO&+cqxW8_F{ypWJ3iWZ%HwOxsibBH6UaW=;)weat%MMcn&+D7d$1`=4De>zag+I|uxIDw|?GmNf|3VaTWm&f=^IOapkI#p1yf;%ndy#7+ ztRwr&e)VMz5IfPo7(rnf8=LVVR1ojCAi4-Qv1+EYHeaulP#f@G=`s-_LuLi z)wN`Mhs#5D4~+FJ&fd8E;r%!iioWwRM78LpPe7S<-AsDGgfr49=eMVzl;##*pY^@T ze{r=$6c#o~Z2F%VnNh2o8p7b6xi|}50ME^l*LAJ|ymkw)3i0j$f2@TYwL1KzCl97< zxxHZl0Tc-x#3a*#10(ZS{J2zkPk-l!F0}RsM@Ec=$LZ0C&bH%qoNS;6Q^cPW{v!aD z+Acj_GrO4!XNy0^sSC_`&^fXgNH8(UWRG@kg+H^@ev5Ty<6;V#fyMrB7PGh${%>6| zaU!_Ha=5p!uYW9v7*YBz+4BLPm87uYuZePL`L$Pk?=q&@|{yF0h+l% zBFuSnAtLE)4k9)bO}oKu5vI4CuUw?70gwaiYZ{Z$@jo%K0F{^hJDt5uYHPFpgnZ1K z|NH?+6>YC`0?7xPcIPY^$iSuSw7YCUL39=`-?m?HnWxD)-GkpDI>tMVV558R+jvrv%;0R-nyf4(4++jc4+|SN!_zCC4dE zY}o-M#=M1gy3T|^eI72p3@#5Xk1;8dOW92Z&s&U{&?7%ASekCb#?j_3=(-s=yfscW z*M7j2S)hDNqT0-uPo1Uk%)qEr{a^U3(3>gy1k~*Cv;uRsWu#AiHV4ThuWXjsaUS|N zMRnu)A<0>(f$+f3orHaN#~XEg1XJ z_qO7Bcmjb9C(?YoxV1|lx&0Kr<19{m(MpEHO1?keMaycPn@W@8J$3n_Ii@KM@+;NF zdqs-l`X{`s8&jokU9@eYFZA;mB1w7vWn3qro|1~wz-$C{VgI*fE*FcQteDy}&8;#i4x3=LIyFSQP0q}0QtfrinuEfe zS$Z=F%&*eY{tzTR(nGip91YfsZiFYW*;F#y6F|^3pd`Y1Ug$hI1}}?~2i#;@j&Vsg zGflmUqLbH~NTyc3a`8wJ%I)eaNWhqSsBbTIR*`7x80o*Q3bv)MQ)VIKa!%wh`5 zn15MB1r)zFU91`qy3Q6^nKcVvwCtKUc-kg6+JfYG!D6jsM+6t>CkY)nyGd^sBO@2- z&~cVX6BE@PImr52H_B=;doz7ey|*;D*oK^ps3!^z;<+D%Etb$ZN*v^%z;>3f9lMX6 z`dX%Pj`$eAy=8AP_5=@PUvtZY)l-y0j zt3tQu-Loo){4DVJ%#71co{vx zl{4Q&x}2~YBRxCfMss~aQOk#M;`JGQQsrg$oYKpW{QK*QweecOpzs?RO1!H!;uhkj zJ;7aTt9Dq)DqF$B5o|kk1JNGFyJdVGTp+)|jS!Z=kVFlDi??o*Ljo};u|jn!hu zKW&jkF=Zt%&b{WMSZ2Pg8+(wxEUWfYC3@lcs=y2tdH`4nUQ5TmvC}BiNO%5*=b3EI znI>6*$J%j;94PyYZaMO8q$P-5%RM6eFDAR|O197^Edi^|*#Uk(wC$-*UK@*cXG)dDsV^@S+Zud@63I z+U-{vQZi<08OazDMWE)*kG$dni9@`9X;GtO%~uheyxN!5ejMj@Nvzj7;IZ@0+X6-Q zvPj}0-wu1CRrmpoRU=3}0Q_sYIkW->AggQP@!YU24|By7W7z{sDucu>l&%B${bd8PvHJGfBRh_iQuKZ@6neNW?pzt4o+}axIub-9m32!@0kJe8)Sj?f23~e;cVA@}W52 zYbVfBr#hsZIRDa%e2!huHt15;o!GR~VtsF$m|@)eu?^Z&0)h+o#3fKgJ{@B zM3s03a&Rs6WU*!asP2))!BAk3Kc-=DwzWso{$1rn=i{ z%kCn{HU1p|lGg~T>?v@DS?DHO+Jbf?u7G#m6oh7sEjm5)_h#z$80_YW&v`w4!;ANF zKdjW~Zb4ASkgp~7dQJo}0!&iWjyCDPgu>EwQwWC^3bt8pBi#7dch(~0;0A-G&VPUn z7QPkj6Mcg15FLf=O52X>WylakN&>aCE)BH|>+!VsP(T#fwRH-bpI)CZRlBqvAPjLZuE-(;M>YGmvV3aX-6pIq zE7q9Un?$KSj?~Coc#)CznbU*62w?|icaeAc;p_T(5g_TQcL4>PRTRi)&o(5q8Dess zkjIEm1?M>W85O+nj>!A@chh9KC9S)k0?qi0xI@E-#HHnK8Y2G0YfQ=5p%?gqT~89W zB}||CGXHeQ7R&W=+%2~7f(wfQ2sCmkS(faLPb9x5KGS7~$BV=TD2^xryULOZ;L)Cu} zqFnfS|Du&L=QGZbot5)t&hgdjub;Q~S=x|ajbU}OJ{7wh>@fRyyFK;N$3uSyjh|C< z{z*y3&z2ELh_nrWG4$;zI5lRafux@TYY=mBP7*S?+^dM&NwU(;wq?td%|X38wjkZD z4hG&C%-xxhYaR*>sTgg`S^QPomZfR5 zh7X&rbicVW5`C~~xr9G0ydkW>2g-sdLNh>ECeqgCK{QZMph zH{+R?790Nf8z($YC+25#qNm$1lf=<|w$OZIS9X$-=Mno3{Z~50$k459zLy9PB*Cl; z5J16u70xtR>0vs^b`xrRS^4v_lS$lvgn5oBr!(2aX98F7#)z%2oZb6xcCI~q&+@RB z8xKdbi4t0LQ6t0SNfTB_*xVXfP7)t38e#1JpBR#y#*oMR!;^#k!eR1l(B=0)yeyCL zwSmj}$-bRhRJk9&chtz`ev`YBGkoO1wL(RC<@>3wMK6k9{lo7~0gK_3up$Kh)wCDS zc034Xt;Xm{d~c4x>M%;yi`~;!$OO}jLB-@c*z@a)UNRgs?cbK+7Ffi*foum6UTD8- zqsW;?c&=URez9_Cw`-Pqv0bl#b8W$aRGH73X{*%pn)n)27Ga+=ojP4VgUF70P*pix z9zX*5dEjAQT7=XRS3u#lvq4CNq2RRNeX#u^IX_r~BMHx!5FFAJi|-&v*g zvjJe{ZB@x$`;W=Z-%dX?QE5DL`q~7s%86o~J@Fqq7-w{Ok)29q{=lF!u8X z0K+(`IEx1-jW0$7(0ho^8E>u+#}tf}{9w<>vRFO#^0f@7n(@GOhrf_?g)!Vr32$hG zw$L3Z9-|%Q-n^FtR}iMURF;DIe4XgNm6Zq_hU$2~wa4UI*_FY0U$#>c+naldO(*?} z)diR7mim^)JE>lpD&gFA6wsupF3DUa3&UKPawhp;wgN9R1QM+j(hfi8gGq`aiK!3eVJi zb}b25C3z>}S+;EXzK4dGuGxhZ4#>td=4`u}ZqzttsS4H~H~y@!My_#%bogFQesW7i zz4OEAa-%>EauzpzI8fiiu~K?~ZAXLo%Lx;mk ze9~+-RqbFvASd1=arL_WeNtq3vr%RA=)^~4b{4g!bt0vx4qN`let0QkX$`Eo-86v@ z2LYb_Y&l{lPUR;xYtw4Gu&565oFR^bV&FGo&f0g;PqEVkK+!9YVO${r*?7u?^XbKc zi|LF?^nSBMPnoPvgT)0F^l3nZz{N+16XudN=Dw;5keAAr}k z#-aj0oBAL2;}SAOTD;9}$U%{&;2f_QY~pHAuP7G?)t23nzwz)YY z6a1-}sQM}Q2NU%*4*pxQOxWZ+cM0sc+t_`=Oc)v-gRk=e{gjnD?rYnAly?_oAIw)) z6<8eNFSNXmnOFzlZi@7e__;M%3iIgqrim3+%h@ojbK&$-n;fSnvxQ>vBvO0@wu0h2 zg8OKZq$~drZU&&E@w0_q``ErcHo`2t&zh1T44_q!rB7PU&Vnr|(B=^1jFtxmHM`8$ z5(K8Diz=3BRnqzn(GNnV&dR_KV7xm;rlW#e{>*z#qv&;b7v$?ah+jP^sx0EeE&*)+)0tV)ba>SJk2EyN5hs2GBcMXmagN6*eU~-6A)t z(3hE%Z|Gp#Z622ybhfgNx^=>QrX;DHRQYzoh!1>{7c_gX<`uk8CA#XQBOTPP*Zk4- zK_bh7Ufx70a2>2CNrAWS^SN%Ng5K4thQ9irAI425)F#!}sE*8R}S7{sDo# z@Nr0jKn3qhPJ$gY!YAXPB#`|aZe^@t^o8=2Hsqk!gMX0fu6~lRori&!swxjpSbV9m z%u==X-rv-?%(VZ%=6WnCAOh1wRn&YYM+vGfc_NwsR zaH~1Y`BPRZb;dokq|!wQZu??_a1(@s_*oKR2N}8cbxkC3eol5THVnXU(k6ZT7%FXQ zIBIx-_?H$_j^r#Hc*ze|n2U2ulZ_f z4&+r)PrG^ghc>%a8ifAXY~U)he{<=)X8vB#*ft=loqJ$U-E=#nk=-~=VGYg@3mb#B zofH^?a1XR>*Bit#SrvQUaw{;Fi79zMN_q`0?>&N+*akGJWA4=&kBiZVOF?qj*Z;r4 z4+X!nGH%RCLy~Gli3KhBO7y%tL_;)8*n<=M842(FpV&5FX|2Wmo2~M8d;_eGz%%=L z<|<9EOl-8?{nYz&F?$oS7r3rMzf+TpKA!lWSdM|RX!^fRkL2$cfKD?8zx0a-vcVbP zLK;a{wmhs(i1T9fF7!r%WC(3WpgB1aa{YzDda>0R5Qz9J(x zVnWO53e{GpcEnFw&$DXJub%y=h@jh}=M7KO7#p8+c|KE#l^n`bAo^|EHcit^#n<^-N$r1|d zes#MeRakiMG@hO>3(l8VL}*}5*|Oj%i9x|Wx5jiiaI(`{r03Dk>cOZI)v{$a5tlXx zG+TZut3+sVd~C?a(1CJysLKDu__w@cBzGa>vxZC|PE+`fZbrR8CQY#e4wChZ0+mjJ z6hdXa!0UVdjQsUr{~6l+!%qb=Bgcc`gck$uLt6nfhZ#G!{?*aR2Od5Sy{E1>K(nD4 z(dHKQtkURED!Pa~n;rJvRIo2tB-tK&<1V-kt?k;qw9S0F)6m67{MDfpMcp61+w5kY zf9tzZwG@+M&Kz#H%8R-5El)1_MS zQTiAMuofK1oJ{6?n#>GR1xs7!hNIffkg7dM|-$b$4Q$xgC_$N=8~2er^^g1VJDrgYAr*I>$ap3+T;! zuB#q565bz~y7B(Q-RylG<^GYl*DBRlvz?r3e+?gnToUz?*=`VUp~gMPlV-|JHq6qK z_%ICM*d(-R1uzbVqGab~JE9@XD0}7%NWG^g1({bhlv$T1Ss>vO{<5X*TOl=HXS4^q zO)uDIyK#lVBAG+NM$(MwwNZU5d0dB6bwHS6Q`C$Lt_SoaplWnq_D2;U&FE&g^k2K? z*!yN3dt>)P!{y#BGs@RnNqPC&YoFNJr=7;b{LivbmE`>6e+O7?RAjE?=coT7JE%mu zlhWSfXa8tz^+&WpIx0j*$P;+1dy* zK&y`xl3GyWf&+?k^=151JVHC84%WFAhXb~*cl8bEw+@9~{X}5p^|Zgj!JeF625uJ* zmQU2(EkY8VhC%r>Hni1>P&jkZG#PXsh{@kvUtu;D1$!Ej7DK4PWe{DkC)jB*mdC{7 zb`6y>gZ)H@IB6-X^UY1UJ#@qIRcL8bGgZGOnI1qBPAd$1EJwb~5H!yc6?oZml#~_- zm^G^u_dcD6h+)dR=tk_U2LGqQg}m%eT5Cz;ze{0r+5S0Qx2o$KQ!f8A&@C4?^2pMX z2KQW<0GJjM5_&76b){-5YVR%gfb`2lTjg%c$hNgxQLad&sNnyTIvqtL5QVmrxEZ`S zP8~DaNkjL6Ghhjb;G7B4`rkOWKwq7dCECGJXfDM22~_I8)TLMlhDI2yd+uF#HCU^A zVp2Yj-q~>{Y^}V{2q?|?|4m@S{+oG|_gWpnD9-67VWXMEDc!m7M6C5|tR=^ErH}I) zo(Aw^X?26X*Xr2<(cWQW@_yGP+}UdCn!>k58uZy#J@HL_6?YhkJ4k)7f8HT`b`1g& zSzyRCRooFhKu9&u&0KJ%}X-8yOT}ZSHMDi8ZdhUj>Y)*(f>)Tad z@1~egH|W;++nOWu$_I&l=TFsEFXCsdiDcA;%>_ReddzLR@Lvl%8OjDM-?(M&^Di(T z#4cOTJ7oD=93}W&!}Cy!R`_4hm*+f_t3;|%w)c;o$g=!Pv9|mZlgaQ8b*gC{tE$MP z*SB)NT)x&iS`#p+Gt$r;RZ_9B5$TR}-&g?GVYO-P#7TRROf&BoyNiqcQbz=F%2Xqk zJM%CvxUe6>g>@0-u;&5g{_t|aVRlK1k5sL7(NALZ5nitCmqU7`KO+$d57tvul#Gy2 ztDS-?!gsLQDiDtgkr0hC>f)aPrA`!Xv_OsB7b~(7++(lBtxM}Nsn1vHS{1vtbbwZcm}h3lKxi4(9$4mf$2s)TVG2wTSl{)is`JN(RTVqr&Pz@d!E&F||Zx}h8*b6n(b1_}{5XnG=EmeV4Xf#ey)aguZ$QTTdh>8Z2WN349Ytx4p#UGlR8w+%Ee*9qiM)(%^ zYqc45RRT+zZ<@#m z^ScLj5T}P3?S{y;Y4R91%*jcDAZDeL=YJK_xD{nrb=x>eFD@c*HI~%cvfcUaUnjc> zp-vy}9(*!%^3+o>a->d~^?$UKLtGV68Klh~*is3Y#{^pR@cQINj^Hg zaW?qLlhi_ulIBA>$v2$*wNW5?%v;a25aqcXWxDAqD4p5jpL*9XS0)oJNk8B|FIb!GD$spRcu>L`zfj5 z6?6H1e$lL;HKX7yi}C7{bhp$v5mc>%Zqr|F_8X<>dX2=A3+T`a=Bgbi`qs zlc(}RK58Xr>K>YX6g*^BS*Tc?PTmavSx0sc*l-Jp`hZ3v|M-8Rx#7D4xlU+J%WN&N+#P*3d+3ybTcoUl z=SAC-CwIAQk2rDu(1KQaWZ2bnV)#7=13CB+trMp|Wm?YWiP_yXj0{^ymY=?m_x=nl z`V^x~EqdFh)pjMZT|0i1HxvqwJDRE;J@eI3#<%9+ckqBrSico=omc?#wH?qvSW%<1$g2Ut^Hs3+Hsaf@i} zbo3?L(5^$uZpY3|-7L!;eY&p~N?NmC1w{m-QD`)@XRy1v1BI5bGw$jBeX085t`<2x zd&`l=zY>qWC<;4#&0Y@SgS8SSwcOHuW<*RPKw7R9;yx30k}y`2Z-CkLR_2Pxh?fvx zq5yx2*mEMsKuutib?(!liNd-OOUb<`T6XdSIoC8-7|U}O{v-(g2G>K74HRhvygBv& z%(?v038j}gwk*xcqPL4drcYCvrg?g^(3Fu&%Lg>J)s11%NSXZ$Oozo2dh64~XFq2b zM|*sE&%dvKD?A>eUYbT!9ME22FVgew)t9-BlrY!!I?TWnN_<%h$6X}Q2d|qZFWFo^ z6L8(ZW?YYE_u;Iz<4feNXE`^X$v0|b@YQKpqtQBsg6OM;IsUPV_4mrQ;zF#>`wS>2MSL{oIrEFHEO7pvv)6_x@X{czv0%aUU_kQ>C3Ul%#HP6{z;Ykx0EI_ zZ8dIbL>=wSyQAEHd9dkG4o~o%S)HkwHCD0g+;cPbcxw8?*B4~7iZ6}EJo2I)h$vZb zyQO9T&%C&N;LWliT=>52m}mka4hzWlb?0bQ-YLRJGRYkV2^zcD*2Uxb^|`Z*xTeg$ zR4c_LbI<(N*!*|fWGX8JI?ZGHH+@kS;*im+#r8xJHyj+cy4$e1)Aw6BmWZm6il+f-1?`N0_PK$HMCzlAP0U}okA(g z-&_}8j!XlmcCHZp0j2=Ezm{wct8S1?67=HwoWxIM7LW=cC=Ae4KiBXX!NQoWgu9%m8g_)PIV_OgQ)Y6!YD z$QQ*nm69`_bk@xD`g=1SgriHv0l(hkFaM9C^A2b0|J!(!O4aHXTZ?L`y<%7U6{{$U z)^1UIub8nFv5S^8v{sE!dv6k|6&L($N1NOD_;;p$z(Q`=?+{U43 z41)dZr}Qrho$X?o$Fsoj4Qut}tC`X85uO%4WpFVZNf;fx|D4Pn5406TLT;ij_tkSX zQfyo+czK5pPg_PvW?44{SOXWzFxX5(;QKOH`vB%oc~TNm&*U;9J4gT9B*w>_<2vuh zn9%W9ptvA0G*vjkPU=*ot;t*m1F%a2RC%euk?CPh%mzmx9D!l+=_}ePT@o|yku<0C zD^lSH)=cIYm3vZUIo$D!^sBGOKRh7eY<;D1 zny*K?e=<(3!&$rR<5$7d_SAxmq5pyGKd+M0iU&Wv)Y|;=zU19fZF8})(DYhshB)I$B1VAZ77 zsSWG@Z#dqo%seSytX}KOqUe*^jt-c&r_S`@k?Nzc!eEL}aj@V;fiULKJr*tGxcY!m z5=O}=1akOjh72H;(q(D3h{RA~AeE_@q|!HKc@XAG&@-xlN{FajaHYP}*Iv|5d=*&OuJ1zoq&!DPN8n(myAnNq@!v0h(FmG1iYf zoSgHOSD~s-v*#xJvo(Gb#pKV)AO?oC0A8BpEQU~{ZPRvLj2!I5{!ho-%i#^f}E51(u_)SSP!AI9qR!BTak8q?=|s&3K?4`kxhc()S)3|2kM&?p2A= z{&$>uX-m4hMj@x2!i<>t?}9JqFJ`5B>^?dDL0P;W$=6aGE8&|7{QkY`P18?Ttavfx zr$G*qmqh^5(ovJVee^xpZBqKT`fKvl+@9n};DR3lN!r2hDSZ_)zXQGoE0FqnFVzZ+ zkHt0JRpMKNmRr8({zvfzj+$16bS{Jvp|L|adzj^1wt0%!?C9%AZiif?hq9lm)RFw7 zlEcpJiyYT_0e5dFqnoyl-fIedAv_!V2)|QurhO;cCD`K3>ipFx+w4n=86$F2IHsw%{J6mwK_7h6a}Dlq(N>+@wZIaOh*7>r&TJwxlVfp~vSgE9 z(YrwP0Q`2ZY`FtMX?fjF2FJB(V&(@!%A8Fn3l-+AHcd{v?f#;d9a-zozsJ+)KX{Ku<6G6^)VDA|mfHF7_a9tuY(8E4AkFBn-#+1MHv3!e z)r6>sFQdACM{{FqNBg*Fv2#Mp?CfA>+UD-@@n22*rlxH5%;f;S0E;hw8szuE{eqpM z3}<-09qRkZzo0l8+s7QfrQ3vljud%WT`0RIZ;FSPhwRNH`SJHp;ZQ8t8|{&2i$*uD zegGvet7I>WOO}Z^T6%rVm28^@d>&@CXESFT-bd#mw3%$Ex4PGFMA<;Ff+Jdjk3|OF z90s+yj3^%gZBgJ#3LU$L#JnobnhtX8803H}TnQJs8C>ZHSn>W{+0+U2? z6|7ia(H!6wp~5}A6DC)DtA{^s%>l%LR$k{r2R-7jeFRD>{yYE>qs+?Ir*vF))|?%u zEZ4hbi~}8Obf;Ez6y9v_l{z}qZ9Lo!B8LHV1qnI4!P6ziPFEf-MpH+`!bgog$vhOB8d9@B*@8eD z5dmOSHv3-Lm|MxTuiv6ue{g-u?>qCKTx}|^R(yF(^zJ=dRH_IEw{+U?>x}Y0OCS01_M+Zz#AMWk8 z$l7jCmhPD>3{8#it(W^9@g(+Xa$@O-5Z;RU0)Ml|NG}L2PEPR_Et4)44e81O@;ku$ zk6l^}&*f0&(Y!_pA(;?a5?hx`0WD1Qg6!1S^zgdq`Iu;>itch*N!{pw7`O#{7a^b{b`#e`HPFxw^hV=vn4SZMf zB9xne1{*-Nn`O$jYsZ)`-Ce0-%w4w0ZPk^pVDgYjp;HNPiysej{QjG{R z^8DN7O-2||qD%j~_Vi~nqC5F2e01{7om+~96EAP?$5Lk>U4Sp?`bZJe`R**hQp_|b zqTRQl8!=7n&5mz?J$AElY4ZXr|6p z*j=}D?MvKibymTeqKP#BH219ek^Le}TY1Ho<6%2(vn15m$#0%7fJ)) z-<=^YTXm{%D;?p&gH60?EY&*VYMtAZU)KRx;@dt!{=7YiyNY06AQMvEPTOq27elw_ z!@g)q#%*sbA=oM2FDbY)-mT`nUhddzUsQHwvhqC&#s!D#2=kjwlXDODFI*?97Qqh) z8Fjx(-0jJ;oqpPcC_@gbn~F-Lsn^-`^d0%YV0S5vZOyJ($drR2kf-Ag= zeM4G9wi=OhiRwt--wK8eR}FR^)ROI^rDUC>>?2M`by#bEYfZ1#v{g6NX2aRH_nV== z)cM4v-faln%PG4HHC?2yX)*Rs2;59ZW;>HBggRFPf~(|`bQ0m_-Q|3x1OgD5K%7O| z48|40&*W-9+Qb!}^_y~#F}l~I06Wmds*P+|4l})3gKf{(0GDaQyD!9`zq{ zO9uog*GXQW%aVseMJNMsn@(uKi@Xje3;I4~1+q-BZv`c%d$DFH`FrR%_no6eZ^K4s zjOr2dZHMgGm{9uX0p1D{gFr={=(@w%+IU!EaNjL=lsPd}bgScLg>^e1Q3}1gX>zYC zbLQ_EK{TvYRT{lf*r@8Ll2B`PTgS~6s1u%?#~Rv6oygw%CX~>Um6embJk{IC>#WWE z0WCTzd_CYDuE+Ej;7okAaxK4#)Hvd@{9)<4#y7eMqnD3+LX6+WevSWF$aW*%&A_w7 z!0ozDnfCPPvHP6Xh(XySzO+@H0sMgobEZwk+l>+IUxP#~cpyaM)gWnn;Q=I2tXOC4 zbW+YZ>Y_D&r)&r+Z&YmTotBM!1WW#_vRy@BZwX2SqPc-$!&)@?1VP;{3bX=_mco?E zv!|5j%iPIRJpe}fSKt?XH**3D7b8$?M1^vn%h!_DdiEfjH5Qb?XMm?F3jcZ{lzp>Z zibR@n7v8h284upWE>fv173SU&-aTg_ChT3Muyo0XtRCk$FLjYmjsqyqNkiSzzBSG1 zS`?e5WOfQdyY)w-T2m%=Q;%lBa*!rvP9sY+%6&A%So@39dq8hpSr=FE&eYZN^5j)E z%)Q;x?BA|M0+V){CM!*Pc8R?!W7QRQXZW2PdRa6ckth+S&L)nvztky`NMTQ{#5cpy zV5>Coz|vO)Es4bCaXSc1P>WGZ-+Lq+s*MJf9khMgQ*U%Dg;@tMRvXm=;8^xsz*i-;eoBb zUhiO=#_|^7;16Z3r@{VZ$EcZ3du_+qlez@^37@=P|!h_feW@wx3&i-=VKS zf?vFqgB7wiORj1ukBVXR(l9av77@6PMW0M_t^h>>x1=7A9@-)ZV0HYLI^q<63-qiJ zrgpRoP3IjF-X04HnI*?&B3KVq7%2%|S(jXA_6Zf0b#0=!T!wbeK@l`hee>i}b#ugW zeXHjGH=FI$q;tP^8IlDqN|C!#y|^o%lJm5YESjK91Fyc+P-f{WaQ4_lFeti~Q{Igk zWil%0l36||sul&S=4gzyN{zuo7YTt2zuldbsmFcdFmBP&EoL(VGM^EJ>pJ#j6dgBT z;d`1#2)gxV-SBdA2Y{@MjYJ51SRQo`rds|Z_1j&4`26P8qly;BU-D`h$<=@(A%m<< zfMGl_!NTOMxYoPwrI}5%V+I}7B;#^-MYClKZME^WdeZN#1Rr5N!s_K$LYo3?>Pb7V zSx@%rUaauBwy%4L z$Aj$SQSLeX?H*5m0wUIrXu%((6)eVYh=Uh+SX zlha5tlf0(wuv58yc+(e{1u1#;sAFPK;$U{fAS4dOw z6^eH7nO@VPFJBSevH`X>?Gg3q-v?X;EoSwa{Q0+KvqOq*c z3oElDk9t)D)cRy?hL#i4$23n*?aWc#t!&}40lp^FiP}&zfbGtI(sS{isM%80L|=u3j59$JpH)YnOD!C~Q zJ#0Q`cIT3#-)!A~M9&`t&bQ&?r7-Gx)z0E&?Fj|WnZQTdmY+}Vp)VX)=5fRjTHc5p z?a23NYHPC^`&{T!%1AA`6dXaj>5#Y36kgg5YaUx`uwvN!q4|B_ZZx1Oko{13lrZ~S z>+*EZ%tF#I{rTB*$1P7+KAAXpjn>XT?Mk@r*^4w+nYZpXB{9yz*}vzrGNk)5s|dM_ z8-POj$zrdeQ^Uf;`tfr~fe)gJqWp7#!bRw`xk1}Rp*X~|PP>mag3c#mzK;8XhYRVE z)tY-jD)E~eEk%34JsE&6gBd>!zw*3eqo~98ksz zxt1Ig>%A1fmw1@-#e`6|+J}oZ_#fz1F5#l6C7_t1*T>?eQ_f!)bx;)UOyIt|L7H|v z&N8`9RiE^@J&0TxCM~BZyo|r=064@e+6p%U-H$JhTID;Al?(If_t;H0rYzZ-Nlc|a zzjcFFfyHXVcDB#y#TWF~Qd7tJnYwfNgs8n>L_U2GZ2X&Zi)`+Tj+pT`mK$Y3SIiwv znpZ1hcd!1&OvRon*m1`K2oRZ;r5%aa(v4Dk*JqmtJTPpkKjCIw#%SSOEEj7%dSFj9 z_;JPWJmGH}%vb-GEmcCM;T>8d!P0i66#40MO@ac6G~;l|IlP8Gv7AUM^!#qA?r6u^ zx~Lh|&nb8~=H>IsZLVni-M5@HgB(}&%oCIPY~jk&J!X%UA0CAU(reGY2o7gx8LgDz zQh$oLYMGRQog4dJy^L>YoEZ6sCku|9@%C06@6W#xseGFUkDn3B(Zq;+1!|w1o*zzE zMO#2gitO4++spI3x&Pd(!r9GlzVJ<95EByYZ26Y z`o6M!8Y{IIO*Co%JgB;r_I3gM#UDb2x0Go|r67g1W73eqh8T$u^`6{n+zvlsW3L?X z&I%~-n1gTTIXsePv^q{h#3PtH9GGVwGRg!A5vL&4_~ z30QvvXJfw+_?VF`nv76cX8300ZSLwKBSg>8{5n3pFdqHj3kSc(t1n-5GauCE!wNEB z8v`#h)OEGQOCa;ytnx|Z>R0)4veomIzd4zY z-;kAa3wnrFGm^d8?%S9p&H&LmR|!NM+fL+W`6^OzTvFolyp7g4-?;f4qT8-w zOZ2;DQJ47Gws1xCmxk!gj#}>CkXJS8r5mTVd*3YK0n%->ssgK|g=jEOffF z8yXWj+s;9@0@Qf1fE2!vjCezq{h+Kw(Z)*RJqc~@ee#)2L}Bfv^>(1F3inY-x)dYr z#R&`70p^U?4>sgYB7IdDr~3;3Y?=a~3j~L3OzjtC`ka+`c!D%W zOaE5@fu8$xsUtaST@30lcJo_Q(gy5THS#q+)erawB$dCu0(!ZUqHIak*~JP4 zf%xMWG(KGCkC!#_D(_Q$(&BfO8Wi%^Foh1UnreKGe+;seA(*>D``1!52LOk`(*YM` zpT}g^dBoancv^6_aB{|RUcC=;h2qQ@*kT8S+H3^WP6; zmwPlaAj~7#kmBFZRIeI!y?ZVKyQYs~3iHH$HQ)L9b91tKq-eWVKTtu~a>2wV-S5E9 z*|vW4L^~wg%zvjuI?6kmaliII8Ix6&$8w-BUAfI`cxq5smvu_{4u=Q#L#aQbKWMTT zN{w#D_1s-o<@@pP)7!YI7_rVUwuHDc*bGAx*u zsGpQJf;{HXnh;*4oD@?w)6LTj=XoXBz@r-fiH*`~{j_$>I>6|vbah#17M6D#Yg)5> z+!C>7ICkjx{;d=1`$mVPzmi()wq9a9H|}t}RcFi?qEaw@pT$^^`NQ<)gk9-_)J0MYX5tqb6AQ9#OKSMTxI>MM8u_AK!~Ma=u1)W5ss|L!m)~+X zdVj$EPD}kH{!7@GJX*dVU4(cdAJh_FHqan!HoALkxvUAOyLT7xMa>GlCf{`4XbM+c zKFpt)te$pfZ%g_<-6Q<-7yZ9f(^|eK$b6>fAee`_HC39}9{~?m$Z3~D?bdRy*{3Ck zLB?Ox1~Tn(9@MuFu4r^Iu>NrVdiz>N0`2{*AkI7nB*(45tGl%FX|&fW6pY8wHr~#B z&m3$MiQ?6$+ez#SNy`MLNxR*OQ@;s*QiCxHUYlQfW(-L^a{*AcsBRkhWSr z0y}I(h8tt3p8S&|)~k~lZg}H^sZu%*Q125FgM)*^#!hF&6yf%>^^^LU?Tk_J;iVA3 z$9a^F`ya?kDlA1qAPLUn6|hE~4kU(`YY^j7>C5fk|I920DQsNO2yAFAYdH zfcJjmnqt)wkrmfeIu=wBKWQ?RWuXE<4`(e*mKTpM{Qt40+y2-Z{vSwLd|Tac?hq>| z1@`i1kF}KR-${~ys$4b)pG&OxSu=Sr&W?L9TSj~c$QDQ4B5s}foL=S~7`ir#WQQ7C zD7MV%7nYhT@dhbay_)fNR^Q66FSB`pKDR;T9_;Pu4hH7px!3-L-dO=rqodNd*1az` zX5d8h5?KodXXUs>$GQ#WWD3|-r+%+0-R!?G8Qg59?da<&TCor~zplH`aJWO+quhPH z^G=025}|K9_fjONz?_IEBB1!@s|g=Z z(`D9WUZWh~ii3^aO}@F-m(QQq&imIbs!!AoT8K=v_=e0bT%0aUHmG{0=+g1#oi3dc z)6;^MkT&r~YCC&q?}2S^JlFYX8gvV(3uU0dlM~OUSh%Iz<~!P^oxh z`taiw?=&cCd5;Fv+P<+|D*;tyx#T%%LU3l*E(*h)TZ|!to{N|8NJ(DNIerSWPUvbI|@P zPLa9S;6jf(*^-KN=?HQmj&?{mu(WU|ZTL@4xnm~KNuAq3=_=gD6@G~ra-`z90peMS z9Kd-Yl%boUmhy(pN5l#!5p~5Ig*=1^@Ls2Vev83#OlSigbR#5ApaJ^w57trEw_>1D z_#gL|J!iAM(K%ev1-nVz;bpE)XL>jm$`$(^JQfk?M&z@RV}0b+isJG_U)zhI4dC!u zQ#{(xBVL#6*GJ1KiAe-z_Ao_`u@*Df@SPrY5tAhGl@P2q%8=q)GqbnzW&l%(*=Yk* zvU5{57A!_~t^mvARLMW&L(-k#uBSt^%3%z|$d+BCeKnKUIEhv~MeHd=ZiQG(T_OOv zT&JP>t*}buIN=3T7v~+bo*ryy?o)*iCyDQ*|2tUB+v+n;cHYc-zt@)5Y!wvf+BTfF zwRmK9Y>|t2+6BQq-vTc8N)VC>x}`-6x$*4O8?DPyEZ4!Gec#IhV8_ISqt=0N*Ki|cY64RCc zfr6+^1RfS}!u0q;7F#yDuwGQ1Yr~bW{I!ZL(q;3es7S-!CFi~5`L;dL!Gdmck~kU) z*}y`##^kopkΞ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

)UUx1u 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ð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�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 z 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%0AgEdY(DpLvpB?|{Og**Mj$j#rgsZn@zrsz9RSCh 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 + Zenzic v0.27.0 evolves the engine from a strict link validator into a comprehensive Quality Platform, introducing topological graph analysis (Smart Link Graph), line-shift invariant baseline tracking, zero-LLM semantic linting, and formal configuration schema validation. +categories: + - Releases + - Engineering +--- + + + +Zenzic v0.27.0 expands the engine from a structural validator into a full **Deterministic Quality Platform**, introducing evolutionary baseline tracking, topological graph analysis, mathematical content readability linting, and formal TOML configuration validation. + +![Zenzic v0.27.0: Deterministic Quality Platform](../../assets/images/blog/launch_v0270.webp) + + + +## Evolving Beyond Link Checking + +Document integrity requires more than confirming that target Markdown files exist on disk. Enterprise documentation suites suffer from topological isolation, structural drift in heading hierarchies, unreadably verbose prose, and legacy technical debt that prevents adopting CI/CD quality gates. + +Zenzic v0.27.0 addresses these operational realities through four architectural components, maintaining zero-LLM determinism and $O(N)$ execution bounds across all rules. + +--- + +## 1. Smart Link Graph & Topological Analysis (`Z4xx`) + +The Virtual Site Map (VSM) now constructs an adjacency matrix over your document network during Pass 1.5, running Breadth-First Search (BFS) starting from defined site entry points in $\Theta(V + E)$ time: + +- **Z410 (`UNREACHABLE_GRAPH_NODE`)**: Identifies documentation pages on disk that are completely isolated or unreachable through any navigation link path starting from entry points. +- **Z411 (`DEAD_END_NODE`)**: Identifies documentation pages containing zero outgoing links, stranding readers without navigation pathways to continue exploring. + +--- + +## 2. Baseline & Regression Tracking (`.zenzic-baseline.json`) + +To enable immediate adoption of strict CI/CD gates on repositories with existing technical debt, Zenzic v0.27.0 introduces deterministic baseline snapshots: + +```bash +# Capture current repository findings into baseline snapshot +zenzic check all --update-baseline + +# Validate Pull Requests against baseline in CI/CD +zenzic check all --baseline .zenzic-baseline.json +``` + +### Line-Shift Invariant Signatures + +Finding signatures are computed using SHA-256 hashes excluding line numbers: + +$$\text{Signature} = \text{SHA256}(\text{RuleCode} + \text{PosixPath} + \text{ContextTarget})[:16]$$ + +Inserting or deleting lines above an existing defect does **not** invalidate its baseline match. Baselined defects are tagged with `is_baselined: true` (**Radical Unawareness**), allowing reports to display existing debt transparently while failing CI builds if a new defect is introduced or if the Document Quality Score (DQS) regresses below the baseline threshold. + +--- + +## 3. Semantic Linting & Readability Metrics (`Z5xx`) + +Zenzic evaluates prose quality without probabilistic models, heuristics, or LLM sampling: + +- **Z510 (`HEADING_HIERARCHY`)**: Detects illegal skips in heading levels (e.g. H1 followed immediately by H3). +- **Z511 (`EXCESSIVE_SENTENCE_LENGTH`)**: Enforces maximum sentence length (`max_sentence_length = 40` words) using RE2-compliant sentence boundary splitting. +- **Z512 (`EMPTY_SECTION`)**: Flags heading sections that contain zero prose or content before the next heading or end-of-file. + +--- + +## 4. Configuration Validation Engine (`Z110`, `Z111`) + +`.zenzic.toml` and `.zenzic.local.toml` are now validated against formal schemas before Markdown scanning begins: + +- **Z110 (`CONFIG_SYNTAX_ERROR`)**: Captures TOML decode errors with exact line-number extraction. +- **Z111 (`CONFIG_SCHEMA_ERROR`)**: Captures schema type mismatches and unsupported configuration properties. + +When a fatal configuration error occurs, the engine emits `Z110`/`Z111` attached to the configuration file URI and halts Markdown scanning to prevent false-positive cascades and preserve Language Server Protocol (LSP) stability. Fatal configuration errors collapse the Documentation Quality Score (DQS) to `0.0` with `security_override = True`. + +--- + +## Summary of New Diagnostic Codes + +| Code | Name | Severity | Penalty | Suppressible | Quick Fix | +| :--- | :--- | :--- | :--- | :--- | :--- | +| **Z410** | `UNREACHABLE_GRAPH_NODE` | `error` | 5.0 | Yes | No | +| **Z411** | `DEAD_END_NODE` | `warning` | 2.0 | Yes | No | +| **Z510** | `HEADING_HIERARCHY` | `warning` | 3.0 | Yes | No | +| **Z511** | `EXCESSIVE_SENTENCE_LENGTH` | `warning` | 2.0 | Yes | No | +| **Z512** | `EMPTY_SECTION` | `warning` | 2.0 | Yes | No | +| **Z110** | `CONFIG_SYNTAX_ERROR` | `error` | 0.0 | No | No | +| **Z111** | `CONFIG_SCHEMA_ERROR` | `error` | 0.0 | No | No | + +--- + +## Getting Started with v0.27.0 + +Update Zenzic via `uv`: + +```bash +uv tool update zenzic +``` + +Run a full audit with baseline tracking on your repository: + +```bash +zenzic check all --update-baseline +``` diff --git a/docs/explanation/core-mechanics.md b/docs/explanation/core-mechanics.md index 6becb14..7074ff8 100644 --- a/docs/explanation/core-mechanics.md +++ b/docs/explanation/core-mechanics.md @@ -85,6 +85,25 @@ To ensure accurate link validation that supports out-of-order reference definiti Pass 2 always runs after Pass 1 harvest completion. Security findings from Pass 1 affect exit semantics (exit code 2) but do not skip Pass 2 cross-check. +## The Smart Link Graph & Topological Analysis {#smart-link-graph} + +Beyond simple URL resolution, Zenzic constructs an adjacency matrix over your Virtual Site Map to form a **Smart Link Graph**. By running Breadth-First Search (BFS) starting from defined site entry points (e.g., `index.md`), the engine evaluates graph topology to detect structural defects: + +- **Topological Orphans (`Z410`)**: Pages on disk that cannot be reached through any navigation link path starting from entry points. +- **Dead-End Nodes (`Z411`)**: Pages that contain zero outgoing links, stranding readers without navigation pathways to continue exploring. + +Because the graph is computed entirely in memory during Pass 1.5, topological graph checks run in $\Theta(V + E)$ time without network calls or external build engine dependencies. + +## Baseline Engine & Line-Shift Invariant Signatures {#baseline-engine} + +Evolutionary quality control requires tracking technical debt across commits without breaking on minor edits. The Zenzic Baseline Engine introduces line-shift invariant SHA-256 signatures: + +$$\text{Signature} = \text{SHA256}(\text{RuleCode} + \text{PosixPath} + \text{ContextTarget})[:16]$$ + +By excluding line numbers from the signature computation: +- Inserting or deleting lines above a finding does **not** invalidate its baseline match. +- Baselined findings are flagged with `is_baselined: true` (**Radical Unawareness**), allowing reports to display existing debt transparently while enforcing strict CI exit gates for new defects. + ## Global Usage Tracker To enforce configuration hygiene and zero-debt governance, the core execution engine maintains a `GlobalUsageTracker` attached directly to the `ZenzicConfig` model. diff --git a/docs/index.md b/docs/index.md index dd49920..623b09e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -22,9 +22,9 @@ Zenzic detects broken links, orphaned pages, credential leaks, and structural in Zenzic is structured into three dedicated delivery mechanisms to support your entire development workflow: -- **[Core Engine (CLI)](https://zenzic.dev/)**: Python CLI, AST rule engine, and Virtual Site Map (VSM) topology analyzer. -- **[VS Code Extension](https://github.com/PythonWoods/zenzic-vscode)**: Real-time LSP client providing sub-50ms inline diagnostics, automated Quick Fixes, and DQS status bar streaming. -- **[GitHub Action](https://github.com/PythonWoods/zenzic-action)**: Zero-config CI/CD quality gate with SARIF upload directly to GitHub Code Scanning and PR annotations. +- **[Core Engine (CLI)](./reference/cli.md)**: Python CLI, AST rule engine, and Virtual Site Map (VSM) topology analyzer. +- **[Getting Started](./tutorials/first-audit.md)**: Step-by-step tutorial to run your first documentation audit in under three minutes. +- **[Configuration Reference](./reference/configuration-reference.md)**: Complete guide to `.zenzic.toml` workspace settings. --- @@ -57,9 +57,21 @@ FAILED: Hard errors detected. Exit code 1 is mandatory. ## 🛡️ Why Zenzic? -### 100% Determinism +Zenzic provides a comprehensive, deterministic quality architecture for your documentation suite: -Every Zenzic run is a pure function of its inputs. Given the same repository state and `.zenzic.toml`, the output — finding codes, severity levels, exit code, SARIF structure — is **bit-for-bit identical** across machines, platforms, and time. No probabilistic guessing, no LLM sampling, no network dependencies. +### 100% Determinism & Baseline Tracking + +Every Zenzic run is a pure function of its inputs. Given the same repository state and `.zenzic.toml`, the output — finding codes, severity levels, exit code, SARIF structure — is **bit-for-bit identical** across machines, platforms, and time. + +With **Baseline & Regression Tracking**, existing technical debt can be recorded into a deterministic snapshot (`.zenzic-baseline.json`) via `--update-baseline`. Subsequent CI runs validate against `--baseline .zenzic-baseline.json` using line-shift invariant SHA-256 signatures, tagging baselined findings without dropping them (**Radical Unawareness**) and enforcing Document Quality Score (DQS) anti-regression rules. + +```bash +# Record existing technical debt into baseline snapshot +zenzic check all --update-baseline + +# Validate PR against baseline in CI/CD pipeline +zenzic check all --baseline .zenzic-baseline.json +``` ### Documentation Security (SAST) @@ -69,11 +81,22 @@ Zenzic treats documentation as a **security surface**. The tiered code model enf - **Z202 / Z203 — Path Traversal Guard:** Filesystem boundary security violations caught at scan boundaries. - **Suppression CAP:** Configurable ceiling on total active `zenzic:ignore` suppressions. -### Zero Hallucinations +### Semantic Linting & Readability Metrics + +Evaluate content quality without relying on probabilistic models or LLMs: + +- **Z510 — Heading Hierarchy:** Detects skipped heading levels (e.g. H3 directly following H1). +- **Z511 — Excessive Sentence Length:** Enforces maximum sentence word count (`max_sentence_length = 40`). +- **Z512 — Empty Section:** Identifies heading sections containing no prose content before the next heading or EOF. + +### Topological Graph Analysis (Smart Link Graph) + +Beyond static link checks, Zenzic's Smart Link Graph constructs an adjacency matrix over your document network to perform Breadth-First Search (BFS): -Zenzic reports only what is **statically verifiable** in the repository at scan time. Every finding is a falsifiable, reproducible fact — suitable as audit evidence for security reviewers and compliance teams. +- **Z410 — Unreachable Graph Node:** Documents completely isolated or unreachable from navigation entry points. +- **Z411 — Dead-End Node:** Documentation pages containing no outgoing links. -### Topological Graph Analysis (Orphans & Dead Ends) +### Configuration Validation Engine -Beyond static file checks, Zenzic's Smart Link Graph builds an adjacency list to perform Breadth-First Search (BFS) over your document network. It identifies **Topological Orphans** (`Z410`, documents unreachable from navigation entry points) and **Dead Ends** (`Z411`, pages with no outgoing links), helping maintain structural navigation integrity. +Formal schema validation for `.zenzic.toml` (`Z110` TOML syntax errors, `Z111` schema type mismatches) with exact line-number extraction. Fatal config errors halt document graph scanning to prevent false-positive cascades and protect LSP stability. diff --git a/docs/reference/cli.md b/docs/reference/cli.md index c3e631a..b1c7f2e 100644 --- a/docs/reference/cli.md +++ b/docs/reference/cli.md @@ -1007,9 +1007,7 @@ entry-point group from any installed third-party package. -Each row in the Extensible Rules table shows the entry-point name, the rule's stable `rule_id` -(used in findings and suppression lists), the origin distribution (`(core)` for built-in rules, -or the package name for third-party plugins), and the fully qualified Python class name. +Each row in the Extensible Rules table shows the entry-point name and the rule's stable `rule_id`. It also displays the origin distribution (`(core)` for built-in rules, or the package name for third-party plugins) alongside the fully qualified Python class name. Use this command to verify which rules are active after installing a plugin package. diff --git a/docs/reference/configuration-reference.md b/docs/reference/configuration-reference.md index 53c9af2..fc3e563 100644 --- a/docs/reference/configuration-reference.md +++ b/docs/reference/configuration-reference.md @@ -169,6 +169,8 @@ zenzic init --pyproject ## Core Settings {#core-settings} +Configure core workspace paths and execution parameters. + ### `docs_dir` {#docs-dir} | | | @@ -261,6 +263,8 @@ validate_same_page_anchors = true ## Exclusion Settings {#exclusion-settings} +Configure file and directory exclusion patterns. + ### `excluded_dirs` {#excluded-dirs} | | | @@ -520,6 +524,8 @@ fallback_to_default = false ## CI / Exit Behaviour {#ci-exit-behaviour} +Configure continuous integration exit thresholds. + ### `fail_under` {#fail-under} | | | @@ -565,6 +571,8 @@ exit_zero = true ## Project Metadata {#project-metadata} +Configure project identity and release naming metadata. + ### `release_name` {#release-name} | | | @@ -603,6 +611,8 @@ Add one or both markers to each listed file, followed on the next line by any Sh ## Governance Settings {#governance-settings} +Configure brand governance and directory policies. + ### `brand_obsolescence` {#brand-obsolescence} | | | @@ -814,6 +824,8 @@ plugins = [] ## TOML Pitfalls {#toml-pitfalls} +Avoid common syntax and order pitfalls when editing `.zenzic.toml`. + ### Field Order is Law {#field-order} In TOML, every key written **after** a `[section]` header belongs to that section, not to the root. diff --git a/docs/reference/engines.md b/docs/reference/engines.md index 4f6dab2..4e6a420 100644 --- a/docs/reference/engines.md +++ b/docs/reference/engines.md @@ -17,9 +17,7 @@ supported engine and what the rules are. Zenzic supports checking Markdown directories natively without requiring a build engine via the Standalone engine mode. Adapters for MkDocs and Zensical provide enhanced navigation and internationalisation support. -Because Zenzic analyses **source Markdown files and configuration as plain data** — never -invoking a build engine, never importing framework code — it can validate documentation for -any static site generator (SSG), regardless of what language that generator is written in. +Zenzic analyses source Markdown files and configuration as plain data without invoking a build engine or importing framework code. Consequently, it validates documentation for any static site generator (SSG), regardless of the underlying generator language. | Support level | Engine | SSG language | How | | :--- | :--- | :--- | :--- | diff --git a/docs/reference/finding-codes.md b/docs/reference/finding-codes.md index 98071d0..94d5294 100644 --- a/docs/reference/finding-codes.md +++ b/docs/reference/finding-codes.md @@ -128,6 +128,8 @@ Examples: ## Z0xx — Migration & Compatibility +Migration and legacy engine compatibility diagnostic findings. + ### Z000: UNSUPPORTED_ENGINE {#z000} **Severity:** `error` (fatal abort) · **Penalty:** none · **Exit:** 1 · **Suppressible:** No @@ -143,6 +145,8 @@ Fatal configuration error: the adapter factory encountered a deprecated or remov ## Z1xx — Link Integrity +Diagnostic findings related to link targets, anchors, and Virtual Site Map resolution. + ### Z101: LINK_BROKEN {#z101} **Severity:** `error` · **Penalty:** −8.0 pts (Structural) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z1xx-links/z101-broken-links.md) @@ -428,6 +432,8 @@ The Polyglot Extractor detected a highly dangerous scheme (such as `javascript:` ## Z3xx — Reference Integrity +Diagnostic findings related to reference-style links and definition definitions. + ### Z301: DANGLING_REF {#z301} **Severity:** `error` · **Penalty:** −4.0 pts (Navigation) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z3xx-references/z301-dangling-ref.md) @@ -459,6 +465,8 @@ Multiple definitions exist for the same reference ID. CommonMark specifies that ## Z4xx — Structure +Diagnostic findings related to Virtual Site Map topology and navigation structure. + ### Z401: MISSING_DIRECTORY_INDEX {#z401} **Severity:** `info` · **Penalty:** none (structural hint) · **Exit:** 0 · **Suppressible:** Yes @@ -526,6 +534,8 @@ A conflict between the physical file structure and the engine's navigation confi ## Z5xx — Content Quality +Diagnostic findings related to prose quality, sentence length, and structural formatting. + ### Z501: PLACEHOLDER {#z501} **Severity:** `warning` · **Penalty:** −2.0 pts (Content) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z5xx-content/z501-placeholder.md) @@ -616,6 +626,8 @@ The opening frontmatter delimiter on line 1 of the file is not exactly `---`. An ## Z6xx — Governance +Diagnostic findings related to brand governance, deprecation, and suppression audit state. + ### Z601: BRAND_OBSOLESCENCE {#z601} **Severity:** `warning` · **Penalty:** −2.0 pts (Governance) + Escalation · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z6xx-brand/z601-brand-obsolescence.md) @@ -667,6 +679,8 @@ any active finding. Remove the dead comment. ## Z9xx — Engine & System +System-level diagnostic findings and worker watchdog execution alerts. + ### Z901: RULE_ENGINE_ERROR {#z901} **Severity:** `error` · **Penalty:** none (system-level) · **Exit:** 1 · **Suppressible:** Yes diff --git a/docs/reference/glossary.md b/docs/reference/glossary.md index 3dc1340..ca40c8a 100644 --- a/docs/reference/glossary.md +++ b/docs/reference/glossary.md @@ -13,6 +13,8 @@ This glossary provides precise definitions for all domain-specific terms used in ## Terms +Glossary of key technical and domain concepts in alphabetical order. + ### Adapter {#adapter} A build-engine-specific module that implements the `BaseAdapter` protocol. Adapters translate between a documentation engine's file conventions (nav structure, locale directories, URL mapping) and Zenzic's engine-agnostic core. Built-in adapters: `MkDocsAdapter`, `ZensicalAdapter`, `StandaloneAdapter`. Third-party adapters can be registered via the `zenzic.adapters` entry-point group. diff --git a/docs/reference/scoring-algorithm.md b/docs/reference/scoring-algorithm.md index 457a693..5092fe8 100644 --- a/docs/reference/scoring-algorithm.md +++ b/docs/reference/scoring-algorithm.md @@ -213,7 +213,7 @@ $$ ## See Also {#see-also} -- [Scoring Design](../explanation/scoring-design.md) — Worked example, CLI output interpretation, and governance posture semantics +- [Scoring Design](../explanation/scoring-design.md) — Worked example, CLI output interpretation, and governance posture semantics. - [Suppression Policy](./suppression-policy) — Three suppression levels, debt formula, and the `--audit` override - [Finding Codes](./finding-codes) — Full encyclopedia of Zxxx codes with remediation steps - [Handle Technical Debt](../how-to/handle-technical-debt) — Step-by-step remediation workflow diff --git a/docs/reference/suppression-policy.md b/docs/reference/suppression-policy.md index 6f131d3..096ef53 100644 --- a/docs/reference/suppression-policy.md +++ b/docs/reference/suppression-policy.md @@ -114,3 +114,10 @@ The CLI and CI pipelines report active debt state in the audit footer: ``` If active suppressions exceed `suppression_cap`, Zenzic emits `[CAP_EXCEEDED]` and fails the quality gate with **Exit 1**. + +--- + +## Related Specifications + +- [Finding Codes Catalog](./finding-codes.md) — Comprehensive reference of all `Zxxx` diagnostic codes. +- [Managing Technical Debt](../how-to/handle-technical-debt.md) — How-to guide for applying directory policies and per-file ignores. diff --git a/docs/rules/Z110.md b/docs/rules/Z110.md new file mode 100644 index 0000000..f7d4ad5 --- /dev/null +++ b/docs/rules/Z110.md @@ -0,0 +1,30 @@ +--- +title: "Z110: CONFIG_SYNTAX_ERROR" +--- + +# Z110: CONFIG_SYNTAX_ERROR + +**Severity**: `error` +**Penalty**: Fatal Configuration Error (Analysis Bypassed) +**Category**: `configuration` +**Auto-fixable**: No +**Suppression**: Non-suppressible + +## Description +The `.zenzic.toml` (or `pyproject.toml`) workspace configuration file contains a malformed TOML syntax error. + +When a configuration file is syntactically invalid, Zenzic halts Markdown document analysis to prevent cascading false positives or running with corrupted governance policies. + +## How to Fix +Fix the TOML syntax error in `.zenzic.toml` indicated in the diagnostic message (such as missing quotes, unclosed brackets, or unescaped characters). + +## Example Error +```text +# Malformed TOML +placeholder_max_words = [ 50, +``` + +Corrected `.zenzic.toml`: +```toml +placeholder_max_words = 50 +``` diff --git a/docs/rules/Z111.md b/docs/rules/Z111.md new file mode 100644 index 0000000..e4ea690 --- /dev/null +++ b/docs/rules/Z111.md @@ -0,0 +1,30 @@ +--- +title: "Z111: CONFIG_SCHEMA_ERROR" +--- + +# Z111: CONFIG_SCHEMA_ERROR + +**Severity**: `error` +**Penalty**: Fatal Configuration Error (Analysis Bypassed) +**Category**: `configuration` +**Auto-fixable**: No +**Suppression**: Non-suppressible + +## Description +The `.zenzic.toml` (or `pyproject.toml`) configuration file contains an invalid schema structure, unknown key, or data type mismatch (e.g. providing a string instead of an integer). + +When configuration validation fails, Zenzic halts document analysis to protect workspace integrity. + +## How to Fix +Correct the configuration key name or value type in `.zenzic.toml` as indicated by the field error in the diagnostic message. + +## Example Error +```toml +# Invalid string type for integer setting +placeholder_max_words = "fifty" +``` + +Corrected `.zenzic.toml`: +```toml +placeholder_max_words = 50 +``` diff --git a/docs/tutorials/examples/z1xx-links/z101-broken-links.md b/docs/tutorials/examples/z1xx-links/z101-broken-links.md index 51996f1..40a07fd 100644 --- a/docs/tutorials/examples/z1xx-links/z101-broken-links.md +++ b/docs/tutorials/examples/z1xx-links/z101-broken-links.md @@ -83,7 +83,7 @@ Exit code: `1` The `Z101` finding indicates a **LINK_BROKEN** issue. -This error or warning is raised by Zenzic when a reference link points to a target page or route that exists in the workspace filesystem or routing tree, but is broken because the specific path is incorrect or the target file does not map to any valid route in the Virtual Site Map. In this specific example: +This error or warning is raised by Zenzic when a reference link points to an invalid path. The link is broken because the target file does not map to any valid route in the Virtual Site Map. In this specific example: - **Scan Type:** `Link Validator` - **Severity:** `Error` diff --git a/docs/tutorials/first-audit.md b/docs/tutorials/first-audit.md index 2d06447..f466e65 100644 --- a/docs/tutorials/first-audit.md +++ b/docs/tutorials/first-audit.md @@ -161,13 +161,31 @@ Run `uvx zenzic score` on your own repo to obtain a baseline score without insta --- +## Step 5 — Snapshot technical debt with Baseline Tracking {#step-5-baseline} + +If your repository has existing technical debt, capture it into a deterministic baseline snapshot so your team can enforce strict CI gates for new code immediately: + +```bash +# Capture current findings into .zenzic-baseline.json snapshot +zenzic check all --update-baseline +``` + +Subsequent CI audits against `--baseline .zenzic-baseline.json` tag existing debt as `is_baselined: true` without failing your build. This quality gate catches any newly introduced defects or DQS regressions: + +```bash +# CI Quality Gate — verify PR against repository baseline +zenzic check all --baseline .zenzic-baseline.json +``` + +--- + ## What's next? {#next} -- **Measure your score** — run `uvx zenzic score` to get a precise 0–100 baseline for your repo +- **Baseline & Anti-Regression** — see [Baseline Tracking](../explanation/baseline-tracking) for CI/CD debt management +- **Measure your score** — run `uvx zenzic score` to get a precise 0–100 DQS for your repo - **Add a CI gate** — see [CI/CD Integration](../how-to/configure-ci-cd) for automated quality enforcement - **SARIF export** — `zenzic check all --format sarif` for GitHub Code Scanning inline annotations - **Strict mode** — add `--strict` to also validate external URLs - **Custom rules** — add `[[custom_rules]]` entries to `.zenzic.toml` to enforce your own patterns -- **Finding codes** — see the [Finding Codes reference](../reference/finding-codes) for the full +- **Finding codes** — see the [Finding Codes reference](../reference/finding-codes) for the full `Zxxx` diagnostic catalogue - `Zxxx` diagnostic catalogue diff --git a/mkdocs.yml b/mkdocs.yml index 2d418ce..dd6b714 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -56,6 +56,14 @@ nav: - Rule Reference & Catalog: - Finding Codes Index: reference/finding-codes.md - Core Rule Checks: reference/checks.md + - Rule Specification Cards: + - rules/Z110.md + - rules/Z111.md + - rules/Z410.md + - rules/Z411.md + - rules/Z510.md + - rules/Z511.md + - rules/Z512.md - Interactive Rule Examples: - tutorials/examples/index.md - tutorials/examples/z0xx-core/z001-config-error.md From 3bb9ce155882b60328bf5da1ded9f6750453a86b Mon Sep 17 00:00:00 2001 From: PythonWoods Date: Sun, 2 Aug 2026 11:38:13 +0200 Subject: [PATCH 10/17] chore: refresh brand assets Signed-off-by: PythonWoods --- assets/brand/svg/zenzic-wordmark-dark.svg | 64 +++++++++++++----- assets/brand/svg/zenzic-wordmark.svg | 57 ++++++++++++---- docs/assets/brand/png/zenzic-logo.png | Bin 0 -> 15615 bytes docs/assets/brand/svg/zenzic-icon.svg | 29 ++++++-- static/assets/brand/png/zenzic-icon.png | Bin 0 -> 7589 bytes .../assets/brand/png/zenzic-wordmark-dark.png | Bin 0 -> 15335 bytes static/assets/brand/png/zenzic-wordmark.png | Bin 8183 -> 15615 bytes static/assets/brand/svg/zenzic-icon.svg | 29 ++++++-- .../assets/brand/svg/zenzic-wordmark-dark.svg | 64 +++++++++++++----- static/assets/brand/svg/zenzic-wordmark.svg | 57 ++++++++++++---- static/assets/social/social-card.png | Bin 31159 -> 31797 bytes static/assets/social/social-card.svg | 31 ++++++--- 12 files changed, 249 insertions(+), 82 deletions(-) create mode 100644 docs/assets/brand/png/zenzic-logo.png create mode 100644 static/assets/brand/png/zenzic-icon.png create mode 100644 static/assets/brand/png/zenzic-wordmark-dark.png diff --git a/assets/brand/svg/zenzic-wordmark-dark.svg b/assets/brand/svg/zenzic-wordmark-dark.svg index 44998fb..6b7afef 100644 --- a/assets/brand/svg/zenzic-wordmark-dark.svg +++ b/assets/brand/svg/zenzic-wordmark-dark.svg @@ -1,29 +1,59 @@ - + - - + + + + + + + + + + + + + + + + + + + + + + - + + - + - - - - - - - - + + + + + + + + - - Zenzic + + Zenzic - - DOCUMENT INTEGRITY ENGINE + DOCUMENT INTEGRITY ENGINE diff --git a/assets/brand/svg/zenzic-wordmark.svg b/assets/brand/svg/zenzic-wordmark.svg index bd2de9f..c3de6d6 100644 --- a/assets/brand/svg/zenzic-wordmark.svg +++ b/assets/brand/svg/zenzic-wordmark.svg @@ -1,29 +1,60 @@ - + + + + + + + + + + + + + + + + + + + + + + - + + - + - - + + - - - + + + - + - - Zenzic + + Zenzic - - DOCUMENT INTEGRITY ENGINE + DOCUMENT INTEGRITY ENGINE diff --git a/docs/assets/brand/png/zenzic-logo.png b/docs/assets/brand/png/zenzic-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cf6094645f1c6ff0792d303b54e0671740306f66 GIT binary patch literal 15615 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 CV(ZEP literal 0 HcmV?d00001 diff --git a/docs/assets/brand/svg/zenzic-icon.svg b/docs/assets/brand/svg/zenzic-icon.svg index 9dbf203..30cbf94 100644 --- a/docs/assets/brand/svg/zenzic-icon.svg +++ b/docs/assets/brand/svg/zenzic-icon.svg @@ -1,21 +1,36 @@ + + + + + + + + + + + + + + + + - + - + - - - - + + + - + diff --git a/static/assets/brand/png/zenzic-icon.png b/static/assets/brand/png/zenzic-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..556e5a8690f8684789eca7e53a56159da101474b GIT binary patch literal 7589 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 literal 0 HcmV?d00001 diff --git a/static/assets/brand/png/zenzic-wordmark-dark.png b/static/assets/brand/png/zenzic-wordmark-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..88b0abfe96593eda54de857399dee6ac66541322 GIT binary patch literal 15335 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 literal 0 HcmV?d00001 diff --git a/static/assets/brand/png/zenzic-wordmark.png b/static/assets/brand/png/zenzic-wordmark.png index 202144862f8924194d4755550f771427b6c74869..cf6094645f1c6ff0792d303b54e0671740306f66 100644 GIT binary patch literal 15615 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 CV(ZEP literal 8183 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 + + + + + + + + + + + + + + + + - + - + - - - - + + + - + diff --git a/static/assets/brand/svg/zenzic-wordmark-dark.svg b/static/assets/brand/svg/zenzic-wordmark-dark.svg index 44998fb..6b7afef 100644 --- a/static/assets/brand/svg/zenzic-wordmark-dark.svg +++ b/static/assets/brand/svg/zenzic-wordmark-dark.svg @@ -1,29 +1,59 @@ - + - - + + + + + + + + + + + + + + + + + + + + + + - + + - + - - - - - - - - + + + + + + + + - - Zenzic + + Zenzic - - DOCUMENT INTEGRITY ENGINE + DOCUMENT INTEGRITY ENGINE diff --git a/static/assets/brand/svg/zenzic-wordmark.svg b/static/assets/brand/svg/zenzic-wordmark.svg index bd2de9f..c3de6d6 100644 --- a/static/assets/brand/svg/zenzic-wordmark.svg +++ b/static/assets/brand/svg/zenzic-wordmark.svg @@ -1,29 +1,60 @@ - + + + + + + + + + + + + + + + + + + + + + + - + + - + - - + + - - - + + + - + - - Zenzic + + Zenzic - - DOCUMENT INTEGRITY ENGINE + DOCUMENT INTEGRITY ENGINE diff --git a/static/assets/social/social-card.png b/static/assets/social/social-card.png index ff86061dde0f793a99050e035daefd28da896059..579c3a5577f54256d7b7d2df789d93a05f329a30 100644 GIT binary patch literal 31797 zcmeFYhdi@9)0vzu|t|k38b>exLU_uk$*u`Fy?3d*$ac2x4kt2!ar@&!kl$=wb;3U2q|~ z0G>46TO$F#2wus{NJBXIUs`=`Bm~hxveFXjZb@rXu5tHG-X3iqqWUBGb1x^xey0(g zkGROV^6v81MI(*-NzxK;dEXti4(*21J@^pv<>Ezdzb_Z1JJK$`jl{oicO}w=U*UKB z#@EBMvw>P+ktvb8Y|f*HyN^j)trbUfFRk^u&U~$Ut)>0D$lTv)jDf-Ia+dsxDOxl+aeEu{Ko0BqXzj%jj;w&o_{6eq~z!W z;*Vuf(W;i7v^A?^Pax=CIM6rg*r*_*tld7IkI%#oIkJrs+QMhFD$sJ(a*tL;NnNcW z=wmQEEHo;}LMOw*)K;GSr)gN=pnj?NH2ja zP@1VtZE|Uj9Wg4!C~oyy4k;dF^nQQy2joYWy^N1&1UGDK$a*-Q-ANaRN?+;=y*1T{Iq@8wk!VoVZq?jDH$ z4UTHzvl%LncD%!!f8#LX0`yo498R4PRg4Ma{PBhNhEze(&$Q&K!z0x@FMA3?ejeiB z{a2HO91H%>@0z(tc_YjRbsqJGV7>%GeqZ5(>bwy|WZ7ok5en|4ap2_|e` zZ^sFJ)+c@@myaw4Z(c9ll7yP5f{e!b4@1zmhZFz@*Rl&WkQDlHr|RPcaW98N^X~W@8>*)~9asz=T|*rG zMZY*6(z5jQ_z`L2=W?y3)+h=^B4}G0%ycJP^ZH`gF1aKTz2eYK$&!-?&<}DTV-5^9 zwF9L`KWUArf*7+q7y==3fk~E&(6@Wn-{Dp2;95IQ)fZ`M3&_?wa$@0J`{4fffw>SF{7F!4k>*$Var20t#}FA z|3r7uPsl9c#l3+aihd75qaNE5L*L+yits8Z@LWoI~63p)^tL7cHgKZC<8N+XK9>Sov%cu4_9L=A$ywwTajR$UXM# zJSHk{(OT7?;nPd^wi~;CK8|)5=sPXt7Aqy=KUk=v{oDQa(_J~oXEtjuyfJFUj~DAs zzmNac7)N$xR#(^88_QZvH23tBB_@n3lyNVFWD@q&T®D0f?mAM*4_DRR5-zFu~y zl&j=9^P7adO<$G!;KJfZAFNAJt@Gq2qCudwg5V1a}@*OGfYW%QQ!}IN{1bcbZ(}{anZ<(*X zi(frWzJ*pP%CvtWyYptZeAScKLfyb$awYbBQ&`HsK>o4E`-7uclElPiH+_Fe5*8Er zu6G9q41|QSWHx%y=Wjd)RI*>%^<99-IY4~$SMCMk`PtF3ZeN|c4kD1`tF4timQuc} za=KR9`mViZgU-s%W%_{M?y=WrYDaN#rmx!LUugT^7C778AN5h+`)(5d*kaqZHU$+p z$xT#j$#o{c9zegY%^UlDqbcUxhO&q2Au15fM-L5?-HgWbJ26Ulfu5ZG7}>xWaCMh@ z@<7(&zNmY6Mf=+Y12Ou5l@+bh_S(M4!L6?Z736je?iIf#e~}1pz6mNu#+_@)881IE z>x&ch7_hEw=F|3rpudDbNt|C{Czh+e#@H5`9 z;R$EZSe^NKM?8MX`qNgfdO-?E{1-f%yDIg2=}3j*TMPl@EeQkMt7)0}%}Kk1l0;6a zt&4viM+WrttnV)2604Bk-G?xGdY_hQ3aBHQ*7>cL-o70%Jh8Ju(c1lryC0=$dd5r$ z<*5K4GAv{^7jm`a(T%AI@21TRhz^k!t2JxPkUDi3Yzx}a+JCn%!7>X zUmNqK!h`bIVG2vOX%o`(BkCJEaZ4-miltgF@HsOeKk6sI z5U$H|vgz1gx3oW{zB43i?5^&QkKZLEOiQy#7j0po&1bblFBzcb|Ag^cnCcENslzlr z>jZw(4A~0zsY8qZNFZ+JHP;0$r~vLyyX`KEDv+hHW?$_Af<#1r{ryvYX*>uCf)77x z;{=52O;2V)q?Rqh^r~{Ow{g2KNO=6>Vvu-7jP%`wJ;}{=+gMD#zqo6Dc%I z1r*xyy~$XN3FXvB>W44<7b+Ah06*L?Jy!o@bRhp$qe(Cz&rz9(KEPr;NBgu<2@-z; z;ss^itf-uLGh~!kUbBOe{b@c2nWeqG;o`}@Z*L=3u7a=6D%p8u#Bb$r-xj`~iq-PZz%^q;zRdYKi%z0+*v=5zTIcGto^U{SkKsps~S0TK^@ z*Sh_%fPPbWWjBLBD!;k8Sp$O>5d;Ah@uN1JU=$Vl zj*pBhb55Bu(JLKTSV~bCpuThGWrfQ+zWaf0;L_5gbsO6JYHEeD^`|L}7yVWki16tC zTGytpY5J)7o1kaIxfg}s&I6J2Sx&}?q|&_nKKq)bCuG>L`pJWABkjd=2?B`D9EhlN z0tidA4;HkB4Udt6Ic}Y(W|Zz|v7YD5QEid5nz5(ngp5@=!H~kxQkx1CA_$HuL*a#J zyCfp~tdskvy8T?YBM|;=bmA!M;y%#U=loenkEDL9l8gs`*l$4O4)7weCXA$+83uXz z&EE`Gtq`_%|Guoqm@PE?2_oFU-+dvclzLKV5-@7& z_&~F|tqmQ1!0&b@vQ)7b| zUG6Y!mf#mRw~Q8YwQ^NE+<-FPgHL`%sA|2Ca>k|+_~$jx%@rZ7HdxE6c98s)l~uGX z|30$%3KQ1+mj@!3fHxg(!LNRd;zd%4!&>9MOpvV_=%UqdX;+DdRQL;0OXG%I2R!%* zJUG;BMnKJ98~aPNdAnGvO_bN?b(q1&k8g_g*SClK-~aeHc2@>%fXInwD(Hg5|7>A+ zz&AFU!XghYBI88j>X_p^N92kn==X%}X7YxgHJqv2&b^ByWw<&(T_|)pJ4$1Q1OaVP z0k3oQ6;;kR8)O8livJ>dHg1DW$De_rzTgFpe$$6F=9xk&FLvf{1$^RPEi3LrexpEN zLdc7kl=7OvNq@9WcE&4hYh2GX*_`}ywl{lv9WnNq`YpwJ6%9za$EhL_;f3bdM}4CaO*_O84^dr1YT_2 z+8JZD>~Ex2U=ldq+MA6UyPMigeQ;om)58*D`H&f}S1_t?;cAxY0EX55QQY&4%ATAAbm|WB@moPAm;OuL2#Gf3Ef{kCe z{b;%SIoV=ldZq;cVP#P;Z!hk;Ps)S|9GsIFs(ko!Sv>HxL`*I1F`_7V#_+=Ui zM3kh4_RhsTA@OQJFj0KeG-u5-#LfI>hoKy01d|LuO2--NW}tm*BIU7JFL#BCKh0qp zm!g_n%KeLepFy@r&LfsXnBUxj6ns8@`#<7koumIa5bdj(DFEV+7e zahD*75dc(le5xmvMFdE#5&~Y@vD+f+ABVces~7f)cRW1$OPRWpofO)*8GwQo>x?{P zqtB)lCV-*>z-jbT1vSnPtNCY-&W2y_fe&McqERlJfY?j>(o)ZHp^4(JTT=%T;XV(g z8w!MlCetkYWAEIMk_YHn|yWOl=T8GyA3mIt9!^e zQz|BTplVu2`;<`2T-OAXOBzA@+24DCksAKbEe#jHPPEO`U5gpvaqZ2uDkeBvlk~;8 z0(<~YM#!JBczaApGg+2&0(V@fb$lC^gkEjS#Oqci1l|uNhsy6;fyt@hLwakZC3%Eh z=R|6GBZM~6K#Y}{l-4okwWC@J zJD|8%bt0v1;Xx*0xEJC?F95GQ9v^aqCFZdOl@B{}*r^+8@^0hl8DW}rlhP+pWlwA^*y0#Dt`pgQ36XLL1M}jKwX#vPM%Hkj46In z%WcB3C)vsR9ygq`$uM72%WuA*F!UOw0ujL$>@Bh7l>q98WdyvIviWlqY_=V>ia$v+9i}Jy zMqCgC5djK7cl%-1sv9cFs`v*2b23q=;~dO6=;rlH$Zr<+_(ucm1TV_SUHx&E zF>FYI%$xkPLs4~eJi{v}A}-d)<1_WcHZD?I>PvofFhi3J?SeB2+EL98_%fjy1)Eg2 zRy%NI(FsEi>Qb*v*GCPxG#+ICDFTFE0faVR<|4{(ma|mOk62{$iN~3-nNYoVcM_99 z#DohB7n1;0LUFHebz#yq! zUUM9M09}L~rr*U!s}hJ95Nw8^S~0sg>Fn`|aBFMx3GVOQ#^kT|UR!1p_+uo1l)eMV z2FSd9J(P(g5KF>kX*o5dtqEewM|b_ZL_t&-@P`}hnV@kTjFNO?`au0q-M`^b(Gznu zENuOr>w{Z_xdbGizW_HvbO9DYB99t>>W44=MJdCLw04(hI30uU{aEQx_P^u+69+3a z-Nn->b|lp+py1=C-gWukGJ7q#oRshk)4?$ifJqu6RfBd&=|Rx>2>Xkx@YqQyjiBIu z_6{yQsD*rxU2QnMT}{|WZGE6^O*^(y`K?&uY8y@vB9}TiW?HmV zf~X&=`Zts-VhURmZZD5mAqbNF3)%3Yx1eg!WH49ADTgriPSWs~3v*p%Wdby9$PTCF zW<`OcJqiVwnQvev7Xi>j1hG-W!H@5wDAh7k4hzc!%|0a6(;KBlq|i~Aff+oNf`hXE z!e|=0)8pj8fm82E79Y=yNSx=ZM`lsm3>Ya(E-7;o9z1btU_WPzKil4-Fm9a4C6Mve zDi$%>E4*_!uJL;5BUuF>=Op*L!s}g+GC$I4(>|>ska{m^d+QS93-kwk7t@ohm=`FER(JTTd`>qH7hp2Sa2OvgFUv8prE8P-dBYs&) z+@0j`Oup;6vw?s54f@bd$ZrN{(UztlZvgO9z}g=3hzM?Gfq0hc$*ffd`IT_WvGTm`wdq$XV-6LkxWUby? zCa1qnN^&ffiMV+N<{X~QFL9=qDGN!5avJPjb7GbD|B~eX!rHiKYE(P(Ystm)|Sd7M!0oXM!iDE?o_Aw6|rGYMA2%Et(vc3S4S3%oHmrU z&_K{|S$|`+qUg5nNLA6?(PoHrWQYMmr|W$5C03_Hv*7+v&YH0MVC`=5f2USPpoc8? zT3<|*(s{`z^&3ZtC$7h9BYgFM3QDupesOQ_7%@`c>Apl`G~PBj705NO<}Vod6ptl^y`1q zKS!`4qu%g?tihK02%B?m)}pJ%mx%Uw{hDq~1rne7$M&$W>#Z~wlrei-T);H?7^&QX zwg%!@sG-FL96hu}0UnAHpW#WSp|{1ZLP!6vB4m@yBoDFrd)#~IKS>Fxo$_Pd#*u?T zltcJ_#c$r|3lB_APEUW!s#u?0S{hSSw8&Hzz;@!)?HI5_x=Z zIxlZ_xPRt-+NJ#dl2dPj=;Cb94+Saya2lJ5Z$tQ<$K3~g81B@uhIpFV`2Jh5)@x=w zqQy@RG)-PM4M@FySvt`8_oKto-9}XgmR!60BemH$+QbtBh3pg7+7~Itu%-TK#SAsc z07O|e$d~h}@lfH<&_+Su=G*|jGoNI=?*Omr>hkrSD?imtSG}$~eU|cb^us{#St=X1EAYkX7UA$R68LAxip50R+zTB?R(!Tu&k!f_E#MzrvnUzGc6kLMiyx>>! z6u5^^S){w3W8vY9o^{yAEMbDfY2>fQb})gXOFg2DDKPLzJTP7JX6MIYlvi_IJ8LF1 z%Leo1#{6Naq9V$3efR8Wcs7Q;*lxx1g`1^h*M=JNhOkF@+=!vavg$AQyUe=isB4@F zWUzg^`cE(%Y>l^Td*62?XRP|_SI!Idbs6bn^Cf=?jvAieTkuu(JkIzLy7b5tHa-8W zNz$fCV&cSd53UMc>U`8w;8YPTwQD=Xw5f#1A>(!)#B+HT82}H4WsNp)zup=kfX=v} z_uV3#x(@Zr>mtQxQQz9b?O;46DpJxLWOB3D;f-Wf5HEg5*%1EBCBR~5)~2>J=khQ2 z)ILvi6mR=xtmnVlr(ijjc@(&d#|zBuzr9oR9+vj>ILUm{9|h=$R>KZKU-9nbL8R$+ zGbkqg*9#E%dDw7?{@VLnPl^-8T8`ByK;7XV-_U=a8ZUIm4bRTbmQEv-7WLm+@(Hjf z@E@NI8={ZctsDpBmkIyxy+0`2G+{50{U-@ON-0L&eGE404%7mpGV!xvK;rgOsR)u~ zGI(YH(fNI9@d#25(fT)e$~3cMZyjq-7)h?;anp);e)F2%CH8KhdUOQ;dAph3wlspk zn_V#mn;;2aQ_JGZYhL5bBEU;~{?E@U+q#8HA+B6u-yGX=JBZiJt#)WG?;uq1A2SeK z+I>6kqw-%d@SNE0LuLw`XM6qReB4;+BrM7~q(r9b|EQMLZSgeY2Fy85K;tQeDmmKy z-;5jH_xs#6)AJq9_gI2M)`N2h+8;?bwOj`H5WJgHig6LUeHfTrWV74z@hCZ)$p+Lt z7)k3NM=XAa$Z6rjme1#E$V6cPtfezGwXnShWVdY?tb56dD}d=w%>N;8P$zgN`At1K z?dGeWUk#499qtFxmo5ZTla>L0TF65T`2gsv$xi5~_9^B&L2wZIjk8$PVPOFXvF$@< zmHq!u&<5hSeQjWyqYG^JR;zg|OSb4w2=#B_=8xZDpWx9!Fi9K%@56=u;a@H;xJNh^ zPk-ueUm}zm#&hGL+iG1qDTtOqv=rvnY=X3$`k^yJGS$@S>FaG2! zoc?MEur7Y|Y@ta52!$lc)R=cJxSfbywOsz+2M$xSOuB!;>o4^wN@PrHt0-QvgiW)&=Jg4Tx>=vzF^7tHOG5lb zKPng=pwnSP;d?#&dSInY^38FdT`uf~*qCGYy5MtaguCwtY6V}W9~G|y$aUCg=q~y- z!O%d`ESee>O0AING3q?6d-}S|Xktjmj3&jsE-C$IJwastbV`HF&db`gEeLEB#s+6E zVqdG?F%oYfl|)A;Zq->`KWiJ^#5P#z-1`GH^Ek62x$H^VAj1Az0oj{_)9;Fj2%1tkpd`R)invnNi8eUtMIX~%ftu{#Gw5^{@$r|`uh93;|Fh(*2e|dz zHrZXeSrIHD88Y1M| z!HMh*$T)?dx)=o=F5g!dpx-c(=C_)*L5&)rR>X{pZO{?b{?zcc%Qx1l zh4+FFUygR1e!~Ax58vJVb>9eu2D&~nZr}-Lxi%Ia9-t`EeMfQ4(!R@Z1s0>0vkZuw z4^Z^(X1}6Cg|G#f3{m%xn2~sN31iWF8ki?bmuv07=5y zMRXyaH2)ijQH!;)Fveq6#ewY3DWtxG8*DEC7E14`mi$v9`ggk4mmw}V7p3pl!Pb>4 ztdFEEkh-1krI|c8w>lHBQI7^V z_&3ujySrv-duk7#cw)F?2EK6rlI*!!MLjGuHsZ8-G|HfSe!dAoRJ35Fxqh8v?@uog zV5KXC+b63MLrMMIn7oe?e+%dSgn&v;x~G8X%|KZC<*IcGN@VaLZn#ur?p1G99s~@= zH`Dd?@F4^A<(tUbeeVJ8tG}iH*o><_5yM^0%6q+Ny)7`2?IUD>z-r%nExwUz+5v$*?Wa zKJ*0q6V~}O&My*IOt4D{VtOtiFrNNSd$HI}JSgfN5IL@6QGsj6)NiIxR%l$&J6^UX zzJzhJyU8>v=hSy{i58UoBXs1Sa)}T@MsP_)L5Gbt_5MdM5ILX=Yek~RUv9)xpr<{` zZ4@~Gd?ce?g?vznVjPOaUAx%ptoD!@ADV;B#%oaF?((rpCy1_fMvW?wQ9m^Xf)F}l zIQ^gy2Ta3>2bQMGbz{!{P7Wa$4Iff>?4i=IB!U>FS=`7FKd!!1O)$lK7&`zs^h_;`TAy}CImf!@g&i{nNGdy$d#{i6_~nI8tc^k{CQ-Y*kw!|K^5t_ z6CDp=z}&kruPPsdBa-?6^;2@b!|peh`T6xUM0E(88p%E*9kBu zhyx$PEXUC#UxK1w)Anr3=L=U0YULNPML z(STwM?9o^sC-c9zg^vkUD;&SZj>{spNOhKONl~#xEGbDwM5yko`JegY?ofGo*ImDo zf;l<(@eoS$f)@-~AoVOweK4A)+A)Ih)jNMganB?pbAM>q&=z5tytZ++;KqE1_$K8g zzi04Ll2L#!11Rr^Lg003o^R$7PMFf9l;p(f`!6sVc>|~C(b{H?Vr<=`gQO8akp|`k z8RGFY((};&R(PC3!$<1rf-wV?%{tBR(?A*iVy2GV8h8=G=!9G#50=2AhTKF&%N!0r zDFQ|SQ;S(Lfh_?cVlK4;^?EP<4+kQ=` z5V)u1U*v)=tVa!A?^Kera>3-*=QnqA=5GVlwEKM|orV6Q(z$P40qQ}y@b2=|Ew!SQ zxh_4)2GujYsY9|)Z(g_xjhQOqp4}VJkwAp=YG^PcsVabt=+BQ5*i^%V+(3VwU&x@2 zhUb3r}5NF0tdn) zVS!xlD=$@@GF`Dq-WG0u7&)#i8l(RBM~7!*=9u)q|5Cq~dP;|XxmNh9;lA-3WBV17D>(L)K zbP)d+zUenbD5)9lV%8@i*SWEZ%9YI{F(6)*z(4Pw>f4jVTaJ* zSGPqlKmVK8AMLy8Ljw<}O4p06t*XG^-io9tA4;F=bpFJ|T`ks1tT(9B) z?HHt&6xCLlOIVL;?q;_vAs{3$xJ~7i*&lzY%i+u9Lt+RC`|5G!Y1iLZ^Cak{T{l~G zgEeD?mIk}yPSV?g9*v-91=Rv>85qbT^PEd-56|mzZ+zInoq|>yY9L&ePpc1S19km% zY75ZQs%`f2blKdw>w>UgQCcAs{mgHH2C~JxBU5 zNCp(3lSCIkxBa-oY00H@18t6AiX709Z*vF=ZI}k3!Ci1c3>dhdh0$m}u{LJBkI z6Ph*tq0v;hy`}Qrfe61~dEuWjmX2~3LVf{`ECSwM9lPIq(r?gTWV0(RQJ@hGO0$MH zo7KXGt=&)tD00Bg>6E|ZuSckMcc6pR-6BD%tw?ncYrvATRIP4gpLBI}5#6?7Upzi9edA!DZciS`RUFEvP99VTY?O9x83 z_`>F@x1?R-BT`^6Z(5-}L1?rRx36tyrEKAt<;SQ{l`8d*QrP}ykvHvzd zj&afYm&gm&kt&B>wX4O=ufG=CsU2B$n4_FBK9Z^_{8e9s?eD$4rdiB%au~U!LUOr*{7?}MNOCQI)^zQ1a3{n#@}sn{ zPACmND|^GOeZ1mjL$=SL50t_q3hu8Rce%I54MBD36@xm7Inn3spl9Rz#%y^$78D*) z66`;2Z@!FD*!S=hs_ho;t2A@d^0%rfnkYFQXdzT&s*R>j;F{A@{q<}FoJmD;6${do zM$j#scdcfa4m7+0xd#1p*KJpQoej6vZw+1f9JFqLu$??z8{co-K9J5)n9TJ?tAdiN zhEx~&<)CIE!B9{o2Q7`Zh($|nVEH{DcPoh7sZ>;6sHkl$b2K&0=1A=SI+5xJbS&6i z_~!c28W`bCWR{4-{Dvbo@&edB`3cG-HvE2Vy-4Vj-G=GUaVp;bZ@`pe!JCSqqo|?B zH@d~zGKo2R(&cnuia-yf2W|UPu0#=MJ`r?}dWn#r%M^6YfRaTVT_aM+zTW^f9w6q^uYAn_l+u&i3j(_Y>Jcddw`c4o{O)cw;xKckh;(GXX zUu=Eiv_v&iNi*hI{%hQ9!EFH?d;DL;8Aq#U^5Mz6q;PQ*BwtLCB8w^Sg6}Y|3U-ha zLeSRx|8;;v263h>mABy*R2tV07sT%xN2>r3u_&?IgYuFxhb3S&+>^cE?X1@E=S773 zE~7GQvYbse0CE~&?O2X-{L(SU-8YN((;O8kJI#gnU%Tr`E@*PL$-b;|59Q2L9bMIj zFMg+_6LjCcL+h}#a}}<0sz5uS;Zs$&;>s=sCFIw{1u$@j^a?qq;3&sd8lnt&7J>LX z83cHAqOe1!NLDCSAlfm$d=FH_K)J^6w@T*#kS&S>adLXN-;=@U6L1K84YwgbLC2{m zbZ2FvTNe3*0cUgl4}c87sHlRCfoWURmv+K=c`JeV$*(ua5a1yk=9-N=-(|@*iZl9j zk=}mlHP53KDS*tF0k!?1cM>7lTJqhKPqh3dkU+tX62c1*(XBqXsTq?K4Vy z+^Gl*XwMHi$Pez1<`+5>B5s}SBgVup+*iw=gWXODvCk+W^wBXXOO>PG6PgjF!HO)r zQSko%G)_xdq1097{3m2E?=d;w6>mVF;qus@^r*}zhU}l}MyMg7vxH{#-}rctH0&3C zDPis^Q6xxy4n(q?{YXRCnUX`FX<@pE9g?yzLJ!4toT41>n#Bq9;zPv7LFABflncxl zE`<%cFi}+W!bibgA|=ub(1%y>%WI>~QI3j3{5=F;xe^9lk83uF7>S?YZ%geG9z+3*G!(5S2h4Pkk+rJX@OGBzseGsW1;&(lBl#qM~5U^RpIgl=oHi}p}O1(7r>qz(pJ8Y0Tw%MMvVWv zU*LHO4-y3dIOH>+Q(Lr96ON${GSZFd2{3y9Qeagu96fm#Tu^}f4z`k2wx_HvM3pxr=rLQ`B++2!gJWrNnjSPLms6nKOVSFIBQNe9F z7!410rvu&71gG`$RXXJN3k0yxKz48^EzXs#P*JL@jjW41 zT69nv6UglRbkd_8c{aZ*h`Bw;W(nXUm6E&Fy&J4k@CKK?>8$8#2(|z3`bFA{>}9e* zsxqO_s8yaQ$zOZzk|FE32UT_qf#f=N*Z{Po9DBg;?E^7X1-a1KCmpN*F3t$*2nm_e zI`64q*J|xBg)dq^Pl-(7j%Iu(kAuY?>Q+8nOUHvUp7SFs0z?QPNcnOrSA%==rR5|~ z+j|kePFS*s*&FMQ>+F&QczCXL{)QlAbNTw(47jl-u6WeuzU;kFx2rJJea6DFnBv*s zI$h`PTX#4;OGp6aQNXq#tD>?3iR2G-TuDjU0KJpSSHe{JkjVOaYi%bdr?)ocXzY4f zpRQd!#qT@_st5$dOS-|LhLgW!?Aq5l)0Kqg0z5aWnWLmKZ+LE&xz2&S5TuTG(43p5RHyo65EW&kEZA6NO^uNJSYcUN zRuA;=4g+|Ug2V2%wzfVI@Z5RNe1VD-N_+a>*MQJeeP@k1n~l2NUV&*hhPZ7AvV^UJ zII89-Bh<%bf20VrbRLC1Ihe4+&BvP&h_OQAh`EaEkl*RkFC8Vpe)nFE*3Tx+)NNBX z3NHONKAhO}wpq6cGJ50c+_=@U>pJO!?c!{_a{%E%DgcLqb^u&&Mtjm_0DOkr4jQzj zdJQ~*jqkqzFr>VwsEC3s##>z|*0HFI`Qk9#W?pQG(ohTUx3bV?QBh@;1Y{On&*7{PFg%0VT&vEw{3ijg7Oz8DA+oyXasm3yU%5QN889R5AC?;rG{>wPK>>via?% z>wL~mqS;;mSyEupSfu~@&9J%Ui7vfHSOxqO{jF~K~+)Yli+)YLTFG#k_~J!;_Tz0ekB^yw<3%%1{oqG)|z znGX#GvE<2GSs(D$>|H{$XM|p-3&EU^_WGZM-n`ZJ-H!k7Cav3cAm#a9F5yP~@^ppO zsJeZj@h6dk1(`b$hq?ME?P5M}eo|DYR@q>sX$&-*tj>Mou^_Ae2(9@ z(>5OGB*w7ozBqB?s5zQH2oE2u;v6j~u5&y#iCy$LXV%n18qNQ>V31cKdOU-xpI_)r zLSjlRI$!(spaqp+|H5 zmZRa%7q}_dC}C+Xn0C9L;nPc}Dd)h}oHuH@ik_Q|=a_KcNt>!E8jn8_n+7i0s~`*F zB3%HBdL0eOG}=-LCs`D$cjK&Z{Fk z)wqCH>cYil6aqsdE48U6pAP%3C_h!G} zR&(KvS{{_Oeqod!q+P3>Y4G(~nG-qqomqOu$H({5tAkPCY$uk&Ri)?AZeiK^$=*<~ z_fc!gT2JXinuh?!fK#B9WcztpTI}!kP}>9lE>7R`OR z6{vMG*XjNDN?sW!dfA?)+w(tNPtSX0BZ);`X?{@hn!m28=k2_o`9W}^(${P86DN?g zpdfdHMP}A>6cf*n+QmE?bOF^F`xER?({mIZo+!K`Fr zd;OfY-_r|4HcPuWU@yj^%VE%PIzg%Lw)K{fBT38`{qa`qX61y8*v?!RXKi6_ZSBhF zM%iXV`yEefZG4iZiqoGV9nECpQ6=abpXC1W%DN3i@pLGw4VcB zE|2Q#zA@?!^Y%74ou{loo2-NW1`gT#*8;0l08fxg>k3CwvBo$8t5%zty-5JJs>n&tz;;Js)pRE(aN>4GGVZJLNVW+ zWwX8%wN9FYNvA$^Wo1!s?_}!9s)ksyX#Lu#DG**SU>evxL^kUWryXnS-+;Yuv;<~P zr_};It=+7_#G9q8{$0C6MHR>6{C974Xl6I%a19LJoWS`N?tA(;vmJ(B5Jv!TD{b0q zxpszqk#QC0uu<(kk>lsuh@FzZB2vC$YL@K2Waqn^xb5T86?5*?E2>MR^8GR;yUv>x zqu{gSX2LE2MR&a35o6+@j z0SK5(tyzo}(BvwCZNdQc%X*KIM+PUVmxMW=7#lBGVetr-#6yUIpILuiH9;6TJX_1$CNAPpuv%QQ&U}_s1mQy@C zr;aUhDL(}R$|}Xdl}=Qj*k+yo6;bo)y5mdye)6^}(EoY?gn`R0Ad?(*1`)^)v9r~; z+x%2_?wq!)=JsvG)z4r*h&dh?`5wpCNoc)oB@>$;e#N~c*qfi5RBAEAq!b>9`JFAF z+ZU(urtIz8W+k8bUoCG19zXUvoC0!nI2FmPBs%|#LBMW&Z3<*|qVpj7&ZAY!eO~`J zSB(AS@$au1Y<<|LW1%7C<>g*~qCg9^O9$7*)=nvK2vRE zQ9Vzax6}&q*{YOYyQiuL=y9Qf&h4z8c-}*1vHGtojrpORH7nI-sk?td+`V(kO&oh4 zFMJ%##RB(zTA*upwm@6oVftT3T^_C2_xTS82jMLf53+ktTPQ27S2T18q2?-l z&&yW$BXbpsUI|JPIc(7r!hV^(E==_=iGg5dZ9ze&F-7I35BBC%PHrtWJ~wsS8Qfrp zBP``z($?=MW@3qttDhBo{P;1+=Wjj(0|Uh!NxACX-r5_}rfzO-Q#BPP>y^2=xmyHf z%TarhA$8?wCDDEL)d^06Zy786K`JAgiM*!0bxR3Wp&NfXX>msp!L<2H;@RNhV{)kN z?yNuAiI6-1I`0;MtGzwKz?WTlywa4B=nZ?}ic$T7HF6u9br9^`m~P|i38wWfFP!R) zOY@6n(~LrP@b?=WI7ORqlP)A!6d6v;G`gPTEaplqa?;bKhN3Q+kAqmOB=@MjsGW8g)3(xZQ^F`E(J) zuP{78jqdNaU*8`U;OD2jLz754={?@)ofF`PC09GNwIDltTfH0%`o6W z0RUL=)7fu0n>oxb>*J^y1IEo0yXm93_$?vPijycfIJlLjg+CUz6}-F5`Jk=`Qw*e= zq=Dj>eE@kzcDZl56v!}#g<)z2vt+LqS0CsM@sZe7`kd7`$%nLMP#1i6=6x7A<3StO zm+IBY-F`>SEipYky)X5R>Suh8Z3A;ii5FzNa5-18=Fi|}U!p+c7QYULGsPL*7IwQp zENOM_z!41DE`sR+`cLD>|)30lUH&BgM*H(VFLU}B*pYvQSAn7$_aV1?#g-H z1vhywHp&1{hq5>sfPh2eXqQE$qK7qOx9#e-4Q9@YGzr%?IcWkuiSDduHk_IihsV8m zRV6*d7^`0cVpz&))1My}QznOWi{8Fv&$i~b86O4#{gDV2Bpw1=3P#n=f}$GB@x6P+ zR!Z5bW=SsNXjID7^4Q3T_M1cyNfc?ROefO({SEl!bb6Wj#xzsBLW;)@i*9Aqu<10& z6{x7GSv_P{HbN;IPj|YSNiRd>#ITU*>>NibiSCuOf)r|%F}7}RP@ab75LGq((1UPk zvf4@H@he5$a`OSQq9c`oo^!0{jOSb+%v#i*Wu#o&*YM3K{eDb2G#%*~`M z#fx1r6jMuS{#S?%??Zm%um!pOu&ZVx=r#z`c22&7BoG9>tEG8u7~5En=KP>oLy2J+HTEpc<%Q7Gh4WtQGJq|4@nKVAioj-K`7sDIH@RJ2Sx$t z2>Q~@-l{}{nAp*B#zfL~Ag}er!NN+#JOl07O1xRJhTHAz;nm#K%JeFMIQp>VY~Rz& z6@JxDkUJp#nxTJKi#X!9)n_Avvx7IanFL3O!O#C_3IYD({iuy;_%Ud zl&5F=h^7I1_QSd{GLFX6_wA`frq3=t-u@Grt)P4X1R##Ua-(F5WJPqZ% z^~tW&)gS^&^{$+8r3XRi&(W_I=H^FJn?A0<1!$J|PE?8= zcPO22H(+rG-MpI~qmAk%!Q|fS7z1A%;k1EUV%Tkg6pv1p@P$*{!3K}$2d6pgQAL7c zsRNm9Gkx>BOYGBWPsRsD1IHh^29BrKv+b1+D^1iYi)hHPs7})Vyc|O(@y;rOTyoMm zl`@jF)wWbyQZj89>$CI9g{RDOePeCobh%VmElZC5bb(BUpXBmo?FtWPEiJ8VU4HZa ztz_33k!!TL#^T0}zdEwMno!e}pF0uWY!ScVY*RavqRZ>9W0ITd*vwJHmEPXo7(3hX z@2gF3@uLawIqf!|gvNRuu2=Dz^(xf3pax~Q6ZNqB7_rwY{Sy8J?(Uv5w&_+cZ2=CQ@Aj*M*}|^U zW~QdHnB?SS5s~`wN~;N!ZWWD)$D6fb*@8tKUT9LDC;+lQ+&S1j{##JYx*qAmTrcGO zcib8CMkx8LXV2rTtWV_d=(>{i?-C3ftuI4VuFeNISQhifL(@Qf1B_dQE2ZY&yaps0?C6I`yE zxwCeVKlFdKcjoU_vOpBlV?gl4XGY^tu=0?4raM^dOf2qI@4e_b@tmQq3@o2eG!dn-C zkcDncO-KUG5zY!&BwAcR;Mv+KmbJ+ibOX~Xk0&*j_8HQ*JdO?~B+s7s$np0xX1)@4 ze8+#}VFr+PlV|SB3JVJd{mF}Qp(~a(F#U6)aRf}jf1-Uuz=bp|^~Cdpu8fwhv@PZ2 zgh4xW1hml%EZGfKE=9i{kQsd!C29NmZb9o@123#r1DEO{ z&JDuS?e)_qX5m*jIF1iT4Atm6Cg_c6&4latVkqhTd)D4SDN)f0bRelnpBv&c74(FD zoRpN5B_=AGnwGY=hjPz7UP`{h@-FV(yER;0%zWL$4H70|8Q_3)@wOLK<9H6X6GnD2 zgM;4%PM;`o>F5Xm=E%*)HjHv-XEBsw31qRb;EdNyPEAE1l2daX-XqgOmWRoAiw$!X z{1!pArl6ouZ|9UUgvZzGPs({uHh7MfJbsQ)MDilRiekv;7f=yU5)u;(?FJM6- zfQ(I4%Sy_zog|+*F~#){{|RuETn+=10vKx{73`GL3#-=uIf3rMI!U(#ixMt#EV#N9Sc#|U><7rUWaik3 z9Y8fhbe`USiCUW@=M%U^+rEyb6eRt0bSFNMX$}ptKsnp{7{JY6!{XN;EG#&YU0jI~ z522(J@tOi8J%eWJ4Hp*(i%@dii@SFPDsHG5wl8nYIp04_LrPFhG?W67iA^kQ_bL2=zgdqIJ`tO9n=*KS}VfLkuWH$XyCRL4-i3AUVb zsQHaMBgd{UtVoA4BBRjKm^JMU`PQe`Kh$4mC$+_LVUMZY)nA%pfzuWPS6E(21?H&3 zXZmSmRi*7ks^{DDOtsQ?-^Rs>P89w-(|+=0z)JSCa#XdGv(rsmRfml@^GmK4e$xl> zb^|^f{L;qB?2?F~y5K%V#LP$w3PrTa3~nNtb2m1Hav}6Sy+VIq8PL~nH{W0)uX(_I z@AO0J>V~&reyQA3gIYx;CAU>%iEybVFJh*9pODXPhe&$2qjnS0ErOfV0^*tuYkwd; zYmR7`gI2mgq;gLLvPcOfn}pjR*Ozf7C$se*Y1SXzTwEeAE;wNwBF$5@vhem+nak>D zD-4#%>#oIKY}9r0@H!Dpjk8Ojp^%WtG6Mu7LY7v{oSISrQx9g=0A2)(r_4%;i+>Z| zMC|Tu5!~uK7vl(Nn)zE>OwYG}Q-1GAiiltb^)Rqyb)SUYC7hFVQ*)}xqq3nCN_Xk6 zCux{N?+72!kh+`EXQdcQhMS$8p9;Ek32c(2;SDm(Z@+x<;~Q*u zVPlD~EIFjJds{;z8r}f8`tD@M?m{+}z%F+5;fng714f21_b0cx;?AG1v}=Q{uiPq2 ze9)x!ydg!c^ow1>z1UE_)gO{921v*H+Jb_cDzemH9pk6&;5Y}7C2l1CeBSekS1oZ7 z5jl5`9=^yy9WF3I&z#1Wx#$EVce&);w?^Zjz_|5xUPsqq%qoL_QX!{SN6{1F zQjn!iBKsX2H_Il;Zi59|Hi8)y4UbU`qeXW`#WiHB><&-f58(O+iJ)y3$Ly^qK~?|! zNhy+;nAq4IOL;?Cj@B#-TR*BIM>rQ0hf~Jt%-#El-DWe3^dbz5{8NGIFx0;HGNyR9 zDO@vTWhX)<&vu?X4{RiB+n5cvbT-p+#iK*QE^`qVb)A8(|SF6?)7}(ZSk8E7(=98usIX7vyuBi9s zd3~I9jU~Sx9=;4~L5l|NQ?|l(+lC=N>%$~Sg`H!7#WTJm*M2x6iWRI9die64GP){l zg~n^IN*SPsA8(HIvP`Be%?a6i%_y3-H+jt@D#=xu`TY3kyIt&X5U61&Bp5Q^NhApq zl#i!Y?+0+}^xx|4&NYk>+3LGh)^@z)Fw*woFp8DQHG-YJ?XkVu?sTSN*ey)pnKM+V zGVT45_XhXgy)HmIE9r~LkU@m1B_opLHd>XbO$=LnD0PV4JUkV!?>R zvAWb5zwNQS#N&B~D@TEzqi@aP!hv17toRSrp0=?x`i(^`jTo0#Wwgq#`z6=a8NCo7 zO1FgWU6cRx3_WA)?#vNKK3txs!J*T2M~1=9Ee0w*st0Nffwc?!n}ObTQl#q&b6b0e zP++;#gZzBPXBF^kYRg10+3K+ptLatt$~IIfr~{^S1S5(@smHQ!`Kk?O*yAE9++?!C zAN1~Alj(Dk#)?(hDx;t81*S{pz<(Q*|6w>Ce_c(XARvQcIndv)1bebS!^1t4qinrl z@2vzkL*8B+N4XFWbJvu0MmW4<5<~Tlksq823cI>D#@WN>(O*`Ss{e(m(yI}=@4whZ z3+De(`r%P;uNtm$a4~GJo<&fFmK9fKLfYj^)kuoe+q+&4uV} z-toe>$IY`WeaoNZxOeuczqHC7as`e>&Dlm`eq#>5+Wv@sZ#4+6`+Wn6Xx_~{oLU{i z9M?G9Gt$Uj-Z{`hhLbz6CSD^SS^sUc&;R@KrPlFNA)zR(3opPmTcehr>^iRO9GI^w z1+L8O!;#Tp6%YD@i*xJ-Kyh2z#E4(<|Jtix*+i>~)kvXVt4ZDq2s!$_Rc~ZUvmNj; z#2ju!VTTCbKSuW&DLZ?sV7Z2e`!vz4?_7O%kt^oiRW&LVqT28|6K#3@=%%8uq@Z>C z@5{V*z8o!<8BEhIq;2C5u55d+vXrHFxV6$>YL!(#+a7yrLdwL2&OR@b5sv!dCKI1k zf1#Ob{ZvCL{V4qoZ0%VB%CGcXq?W2oP*-Fh_{`Z#!ms7@a?p{E z6-(JnJuoQe+F-+?8S+uJW-WvCy8#D;+*WstbF8-wv-2c!XVi&WY+42RhIy($%j!4i#5(XPnbVaO-0Nm@9fR>#+;O7n5qW8=Z+)nosfLRsJh{Fh5a zl>#YZtd8^pc@(1^PZHGVyI{Edhz((>+ z`lnBwDw7bemZmJnAF<~)cz3^y(k5;Fq3jbH#Vye!&dJ1g-t5j|{1p>u4-&C~xxf}ns9N?f zd`!e*og_VPm3WQ1V%9UArfZuB?Cb~3ytnWV&hs1askOSV|J-&J^~$&r<%TPIur0@9 zaGkhm^f;M~oILaPt+mm62i(T8yNCt^os9B+ zX_e2(U%LAtw3e^LxKhZY-kP(nrKbES*a*QO&|`?Cjc`)r2$lBKgLwjtnHT>#%#~{8 z6>r_{YLnt$*I4k7ii5*_Q>B)`{q}FhPAQK&)|A^TFJU=n*wnAS>uHbF!uBGuPAhla z3Q#Y0`y6POQ!ANkz2`EsO|-W=;XEy}%G|>t4~lFg zZee|XbDmE)%4m#sj(=}sDknF6GUC@&szgf&wJP3|g9w$KUF93EqgMmZsbDW>3im4osv9pAeBs8tWA~L@T8?*SJR5h2>a<*j^WTOgi918b1^J(q0(R+lXY4W+o{toK+~z<0hH_Hm9%+Q}zp z!KV8sd!;^BCSz05lKc;Us|L@Hrre~?%3OU%i9T1hNK9j!i2I4Wf1^vq>v-s{A&=6{ zs2?l-1J-(1XjO_Ry-ZN^$v8YgKEOb{_l3|fb)!McTIY!C{6@RYWgic25ZhDMN z+#<`h*Ve-3#3zg1TxkM#e{Iw7iuzTA-gF4db-BgI%ir7m62syDJoSO6)s;2be{}&% z$J|b-!0oZEsj028mv~jx69c%*Xy2LkVm9btFaUEU}2mNSxZD4xBakC&^M2uR@oH+;0)3)R6?am5$iPhPy3ErSUmO9l7K z>H@MPt<_FFw(u)l3RwGntUyX1F{&$Q45A~wZ{6x1E zDI}v(RxvM*KG;%cous1!mc45%MOUsn_x9l9(B76JD(TG^vzd8hAAc6}lWoy|K`E4) zp{1K8wtQ^9*s?3>jkUEkm7%9+`qn5d(BT`nP2l@Q5JfwD(k`2W1LlZ>cbdg_*mKho zuEllNx?poE9`}>uc=Xk+qv3CikbR~C%QtrRwpc0&kBCn!Q+T3)1Tp2M#1rUT#yKz( zy6XD-!!tgmYkW(O-qVIqOAF+Nr*nzNexFgTztEf4-=!pVzItV6Lr`jIWWKgrjdEFT z<-6`~s{CT@SuUT_!lT^bMA8dQdmmCMt*h8REsdVByX(vNFS)!*t=WI>-H|tgW(;{-HGx&Z;`)Mbk#2$od zxTVJqFRw3YF+jI4;ROilezNHSxxZNA7Y=gl8gU2(Z0#k|aWrU=FS z`}>Hb>7Aq zcJciI-i*xmdJhrut^UFO+gFFJ6_3Rv5mM`pbKFm=UiM-08KYT&i95GsTgM;#IWtyD zvOMd1@F(wQXP;pT4}Wejiuq!?RO5_byym>E+|O?gO9uT*JI0(@zzbRQ=Z_OSzdWbj zcct%}I2T}t`X}4GkC5wRhamX-ZpS7tlq`2=QfcVZc<++(b1D976E>AoG(SAw-&h|z zUE@BPD^}=?u!rLR(K(A#ERUO-2>^8jy4<0t{6N)@^6RGpy`mFaBTx`&G%jN&r_dtj zi8DCsOa9rkGit*f+j)s{QUw3fly+nx&{T4KKOkg>$G9c>Lt|rez@~{cTU<9~Bz?1Y zW2(IM_hX~?n23Ej#u#Z)5s^1)SL*_o1ec2ps?r&=J}Y>pegD7=i|iPO{ubts!V;ST ziM`bC*!*6P#q+UAhl30R&(Wrs08HOoPzxFIHj?|g{Yc?*`kA1Y1*>h58s-44^Ab$f zZio5y3dhWS_%{uQU9cM)<_Fb9#Y`R!Yvohzcl_O#YFTe7?rPAb1+}%qCFI$KXfyRD zt|^6->^SOVS67nlh0Ge@s-ct~{QJ(%R}W}#1vbpfP_CD(5qwPwM2d!fyymme#V|u* zVb3CGOg*-=_Nnqj)U?0kOv8gl)N?nwPaDosLSv%ZBku(^qALoU;O|qO((U+RhKJjD|&T)ep z>cd^6cNK2Wxwom?k=P1%uTLS~r`#7-i>}Q^6!Z*%dQ@88Z0LRoDv-btET4J&wP)hm zt=cgVX;Wg7udymrp2rK|D+6c-uWO;N+ms+AW53?F!r9d`FI`}qL%FK05opxZt)Hr( zbdNpWS8B=9aL*nl!uKnAmC)s>;1tp;_q9HEbPw>+owviw^XwCr4EU1E6qN!tZK|G* zWCf+Xbt)+C<0Krggnm&g8B}u!)>`3tk4O!^A$MTDd0S0Ni&p|6QptAW1b5Hh-w2Qs zS626_@Xk$7boeSbP)L3jvk!d6BSjs3L6iPHgcsT(A$PQnZj_&lg>%nB-`$JFTyakR zd=S5ObpG}J8XxZ+qvNufo$;Fm@sz=@0t`ArVyT}eKe|T>@()uAF@qCC3dqHVy-w<9 zp?!^arlFI0WvrhX8--ORi<&hre;ewbMm5N|GoHq;j+J$Ou!g>Qp|i9xxBC+{r1dV> zcEk3PY=KXtAT031wrj#9>5m+kC7lhNM*z&__SLX{hHPz}R!5~%QLO(;kejDOvu>?Tw1+BF`>#DeycTt| z|Gw2EC`Tz<>*-KrX-5Xom}G1)xznLg^%7US3oy~t1RKvn`>%rLQqhQOB3@XtM&Q+g zsOwUI4Twew3xCU{&C?a6S0k^)b+b8)9ZgR5(o+LnF7T+-Oc5PYI-4Ip8d8J^(WaK? zqtBcv?z4XTI+dqV$3haB%rfmFG1<0vOaKK+dtt(lFDmiRcp}7xHA+Q0d8zt`B4aP^=!2F%iOfd$xutF`%|-^uCU?nQIW3=&=Z!>a6|zlaf*#k@z53M*9DS5d8y=xM<~L#bc|335ohY8s$;?MO=kUOejg z{?3@23@kpkY%=~r4$^$ED25-Nk6ssvIdt!40nkgX&FRiu&4Z0>zAid6~ykSMb9{sYVEZb+cv=3>Ryg;~`4(3Qa1uVPV; zbo7AZf4p*Kti}`S?(FM}n<(^K+i*49SBnAM| zf2zUbXa3UII(b3+W8H8QhQt@&*5D)G#;H`Q7(K(RP>4TuU^&E5eWwWD#+bmWF5@<( zT&~-7tb%4ewuyO-X1-`qNp)YOB}5n^6~q4k-gYq?#j5^@FkN}e7P-Hz=RSC@!hq9O zF3AwJk$4YYl=nx>{GD56Oex>7|i?T z`(whc-8swfp8qN&`x>5db$@3yFc_r349uemgQ)_?BHYCanYIfYtwdS6c=@k*2CAvH z>RFqH)tmV9yb~DRvw5ZM^F}WIFgEpaTlxM5<^{P#tcR;Vj6=Qr@L8HEq7d()Wf0T~ zkNcdHs--GaIr*{1EZ!)n>mIG`B<%th4%93lpVM~#;aIaaRU7_wMMKs)s8G#962*1d ze`xO_p=$cgfi{0sG8PMJD$Cz>DL@E3`dyQ#O$VVm;@1tbSZ>85fv0vM)@>Ak0h$oC z+5NkY1RfPGl``oOZ`${^j{a1Cx5e^X$u28rkPv z-x=xXYG+Y9Jo`#j5q7p(dO?SUXjQ4e&&V&c2b3vYO5i9iGPKaCWMp+R;FnJeq4Ze{ zhUTADi-@j@m@RO%4+Y3pwBr5gjet?spHPi5JXil<^}5AV5bKNvKcphf5f2=4RKss7 zEEiR7E2Lg@kQ5Ua{`0dfy~?hlV5!Z#SS@_vp6}xi231geL%w;jn22QBL|j@*N>}eX z&aJE%?6$`rPl)*Q1v%22_~?`iJpO96=jwr{g&3bLuKoKv6rZaelxM;j&;rVhd+o?TY?Xv)+2!6 z@Z(=bX|0jkDypkHsaHLscZdKrqC7oKhr%C3vjVW=MJT0pjPsnK${LS;W!zhEnwH6K zMNk9Y37TBV`km@IxSu;c_YwkXax~QP79n<#Oioo2iJLdzjn{2!!qwwVg>{Toh6|Zo z9Rt0RCL(2^BYDn~31E$heH#)Bl$<(jL*vHswSZ2t@&z!mh<@W?YLd67~D{ z&ITlCw3)np{`zWt(AMFy7$Vc8JY>t3nlS~F(#&vx)!|^^};uHp=t>8==;S0M1kB*3}_AH zgr|F2SR3j6n5-6at`@)i`4NMH!kgZfZCwj%${^HKn0wv^Q7E7uVfVw_-e)i~c?-Z2 zkPmS~JcHL)QW^BKnD_^g?}qyH&?B_MK6CLu)M&IS9*_)#PuCwT{pgU?-K~Kp_IEng zTvw}>4hti@~=?|=OT`&P#>vyld3wM6jW6hIBBxb@s z)s5)(el6Q^2o4VJJE^RrqXVn0E5Pkdx3%_@h?2o8{n-|Z6EsvoC)=q+2_0Y#l3Ccf!KeZ80 z>ktrnR232PJ61`JZ9c8!3hah5Dli6S`(AXs#(lcNK#4!fvc=1%C1JYonwCJXzGCp& zll%9n@h(6xJI};aaNwubecO69Z9rDB=`6ouz^1oZ4Llpz+S-ik`_b7?gfDY5SGugyzvYT_9t+!r}gNAv8TEu79@9gYJK*$`I z7ob)cuYK@S5DW=xYEG!p)A>)6IlRAif)gzVxxWl$(%0NV57&4~1%pyVpx%(QiqZR@{pzRZJ}{E*im*85FXKNqpMKI33g?0ha=s_S98f$t1TV^Z$voJKUB z{d1wi!O%>Y)p4}XaI1d(l%IyASY?E6+kYMgG=pjKRKViHR*D1ALm+}&TP)%bb_Trr z4a4d^g4OCv;f2?h_A}wk%!eP>ILLXw9t&=Z_vbeFWlc8wvNmi^ebUd6DWK(XDVXdK_UA*GM`HpZMw|#eGK*v$lC?ZhER-Zq~=U!JG?;>iMhm?jb={es03u+ zHFOlY{uuUPN2hyjyxKK1Wh$vPz%7Weo3M$WZo|*zPrp^vT8j7gbJcTQ=%Miip&DN&Dms6(L%#@r{CEz) zhqdumbL){j&nl6s2yqR^xNhTmhMrruZq+Esg{dB;uGKcM0cauyar+_vaAm_MMl=81 zx|hmqow2>W{pee&+V>1ei)sjSDKYmZcrxki);_MpsvmizBXq03e?SHH1$Q^QrK{Q5 zudw6hZpc@_(-n-jIU=4{?fBspQGSyN)6uLzGx>e2B5U=HN_mvAulCz5l`(^`da)t? zT%Gi=WJ-MN(t_!r>0`VwNbZ$SSw1Q=3Px^tEUk0j_WCX`T-)tfQ^6RghO)2*^kV-a z_p?xzqnH^>k;DcerSOIST0?X13-E{-!{ILWR)StX8l&;tb93bRRfmaAQE~`brPiQ_ z?|rR)oE*=BI~xnBwC~e64>vh^&Hhx3ZvG?*vFAlMLAtl?f4t=4x2|{Jm-350*uF0| z{Og*GDIBCzlLqMns?xAdc3z}eX;C}Do78B%(GoKt_M_TfS=sVN-A> zUi0p9rUgKOzL{3Vgcy{ETF}A+vv$8o+*MXnG|1yjX8u^JGQN#_)9!UQ``Zj6n{3t4 zDZs$Yqw<(nu7`+MhIP)b_g6YCkzFPSe+Jx!$Fzomyq9rG&0JyquXS&}6ewS878a3I zz2?9r0OVo5yIbzmODe4|ctZ})1b@tm3>6y+03O;kfsaESbSi+Vo{1kwk8F|-CH}o0 zAWA>#XNY{fVe8Kcawn@TE%(RqnnEONQ4edKq!(5lMEqf5I^7QA`zUpDz_CW0dW0Fi za?+KPz{q>#x|>2l8rzx{JYV^o2p^OxB-w2M4pHzkXPFRdhYbqjl~sY(j2I_IMn=fvr!qR(f{bqkmL{H@J_MJCi!{7dq5Wy;=pj-N1lndd}nTuhy5> zm1d7?PHpgIBT_#gv&u(Sj}9Zr!fY*mCWW_3W9!NkK9Q<7!eYL8_NeTA-@8}_huWnV zyGbQhX;V{00gE?n2L58J|vjdClw1ek8I8LiaCLOWO(F9 z=6j%Jc-a}x9LA8SqpdUQR&PJkKK$cV9p~u1>65<+4l-FWec>u=wlhq})&&mtdO#6aR4Pxl@CXR%ZH(8WDN9Y@q<`^#q`o6) zRWeVpW3Kx4)v$fE)?16pXp@hVf%5GANR~=%sVO6>0I~VMk0G!>3asoEhw&IQP=5ia zXArzRJ^j^lJVVPmRX_fQh`9Kl<^KKDXSo^EDywpCKS5{LyQk=?#u7K$Yco>VK?7cx zTKg-$j3ALK1X&na-U&Z>Up4$B><+kqw85jNq>T#lM!WM-tv9!M9|WiaUleywy;{+6 zueJs0jQAh2Zj;AjVBs_d;gKiCj-6Gc7i+VumwTDJMb&%*!=GPr=6MvqqVgoD>g0#M zx4sVaFF+2dBvikN+^_b)Rn_A|jna^56w(k0`$+c#p)oWFUrLg{QGy)BteSgUq4g^1 zZ>}q8Z}2QF@yUb_`}OhS0BZNFx_|25-f7LPO=B^R!=K-TQvi~*L3>pm2IH1@+fM>= zFSAA2Dsy`@0}9-WKpTOTJO#w-<0Y292gRly{Rhs=rB@96tmA?3X5Bt3L?vE(*Yi>F z;)|nG^&`cexo)6H*<@R3`IN9OU!f5(=j71?@St=BPht z*%9BD-QU})0_{vW3_y<K}nTJX5Z5!#Q1z;)Q&eskH5e|QAyLD;}H1&kvIdT|AZIVHX29V9}{JUkLL|&BQ zEqz1%nL3pfO80g{Xm|HU2KBfM^tqTPW~5}W*26kDH`|g@ez~!i?w~FQdu1;alr;=E zdS;n2!eaPP9zfGXA2rod);-2k8kSFaAiS}o(G!#i9~=fAzo!6BYW zYeRX#;Jmb7cbN?!V3)v*=e~pnn2U6Ez3;$JATp|;py^X;`e|t}75LKPEx(A8nOdN@ zSJ+c*c4u5Q;67IL^lliT`#T?ZD{5hZsi~`vA)W$#wE>fl`l~KV@eN2uN0$*NB2|rB<2l zM5}$vC7UV1x|U+%fL#@20km5>yNv#HHS$I&B8twyp>zt6%T_L5ihIY8etBxl- zdlzqCMVx2aHcqOXJ~kOyy$A$YNf$KeXFx4@GRr~Q%ru3Pi__6KK&o!gLx%BL*~s&a zWq&)9|2Dz8fqg5$@xQyv^?!AX?*G5||E0av|9|36q#n?5sXj~U>;*l4y@mc literal 31159 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 + + + + + + + + + + + + + + + - + - + - + @@ -18,11 +33,11 @@ - - - + + + - + @@ -30,5 +45,5 @@ Zenzic - STRICT MARKDOWN STATIC ANALYZER & CREDENTIAL SCANNER + DETERMINISTIC DOCUMENT INTEGRITY ENGINE & SAST From 94beb9c50b80c7967272a9e865ae1df64f64a975 Mon Sep 17 00:00:00 2001 From: PythonWoods Date: Sun, 2 Aug 2026 11:39:11 +0200 Subject: [PATCH 11/17] feat: add config error examples and logo asset Signed-off-by: PythonWoods --- docs/assets/brand/svg/zenzic-logo.svg | 71 +++++++++++++++++++ .../z110-config-syntax-error/.zenzic.toml | 2 + .../z110-config-syntax-error/docs/index.md | 3 + .../z111-config-schema-error/.zenzic.toml | 2 + .../z111-config-schema-error/docs/index.md | 3 + 5 files changed, 81 insertions(+) create mode 100644 docs/assets/brand/svg/zenzic-logo.svg create mode 100644 examples/z110-config-syntax-error/.zenzic.toml create mode 100644 examples/z110-config-syntax-error/docs/index.md create mode 100644 examples/z111-config-schema-error/.zenzic.toml create mode 100644 examples/z111-config-schema-error/docs/index.md diff --git a/docs/assets/brand/svg/zenzic-logo.svg b/docs/assets/brand/svg/zenzic-logo.svg new file mode 100644 index 0000000..5c23082 --- /dev/null +++ b/docs/assets/brand/svg/zenzic-logo.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Zenzic + + + DOCUMENT INTEGRITY ENGINE + diff --git a/examples/z110-config-syntax-error/.zenzic.toml b/examples/z110-config-syntax-error/.zenzic.toml new file mode 100644 index 0000000..37a88e2 --- /dev/null +++ b/examples/z110-config-syntax-error/.zenzic.toml @@ -0,0 +1,2 @@ +# Malformed TOML syntax example +placeholder_max_words = [ unclosed_array diff --git a/examples/z110-config-syntax-error/docs/index.md b/examples/z110-config-syntax-error/docs/index.md new file mode 100644 index 0000000..60758fc --- /dev/null +++ b/examples/z110-config-syntax-error/docs/index.md @@ -0,0 +1,3 @@ +# Config Syntax Error Example + +This workspace triggers Z110 due to malformed TOML syntax in .zenzic.toml. diff --git a/examples/z111-config-schema-error/.zenzic.toml b/examples/z111-config-schema-error/.zenzic.toml new file mode 100644 index 0000000..d3d4113 --- /dev/null +++ b/examples/z111-config-schema-error/.zenzic.toml @@ -0,0 +1,2 @@ +# Invalid schema type example +placeholder_max_words = "invalid_type_string" diff --git a/examples/z111-config-schema-error/docs/index.md b/examples/z111-config-schema-error/docs/index.md new file mode 100644 index 0000000..923f31e --- /dev/null +++ b/examples/z111-config-schema-error/docs/index.md @@ -0,0 +1,3 @@ +# Config Schema Error Example + +This workspace triggers Z111 due to an invalid schema field type in .zenzic.toml. From cd261d25dba9fcfdf293c4f6aab77f62385ae372 Mon Sep 17 00:00:00 2001 From: PythonWoods Date: Sun, 2 Aug 2026 12:29:43 +0200 Subject: [PATCH 12/17] feat: Enhance documentation and baseline tracking - Added SPDX license headers to various documentation files and assets. - Improved clarity and formatting in baseline tracking and core mechanics documentation. - Updated command line usage instructions for baseline creation and CI/CD integration. - Enhanced error handling in the CLI for baseline loading failures. - Refactored code for better readability and maintainability across multiple modules. Signed-off-by: PythonWoods --- CHANGELOG.md | 1 - REUSE.toml | 2 +- assets/brand/svg/zenzic-wordmark-dark.svg | 20 +++++----- assets/brand/svg/zenzic-wordmark.svg | 20 +++++----- changelogs/v0.26.x.md | 2 +- docs/assets/brand/png/zenzic-logo.png.license | 3 ++ docs/assets/brand/svg/zenzic-logo.svg | 26 ++++++------- docs/assets/brand/svg/zenzic-logo.svg.license | 3 ++ .../images/blog/launch_v0270.jpg.license | 3 ++ .../images/blog/launch_v0270.webp.license | 3 ++ ...ic-v0270-deterministic-quality-platform.md | 2 +- docs/explanation/baseline-tracking.md | 9 +++++ docs/explanation/core-mechanics.md | 3 +- docs/index.md | 1 - docs/rules/Z110.md | 7 ++++ docs/rules/Z111.md | 7 ++++ docs/rules/Z410.md | 7 ++++ docs/rules/Z411.md | 7 ++++ docs/rules/Z510.md | 7 ++++ docs/rules/Z511.md | 7 ++++ docs/rules/Z512.md | 6 +++ docs/tutorials/first-audit.md | 1 - src/zenzic/cli/_check.py | 26 +++++++++---- src/zenzic/core/adapters/_mkdocs.py | 11 +++--- src/zenzic/core/adapters/_standalone.py | 1 + src/zenzic/core/adapters/_zensical.py | 11 +++--- src/zenzic/core/baseline.py | 3 +- src/zenzic/core/content.py | 5 +-- src/zenzic/core/incremental.py | 1 + src/zenzic/core/scanner.py | 14 +++---- src/zenzic/core/topology.py | 30 ++++++++------- src/zenzic/models/config.py | 9 ++++- src/zenzic/models/vsm.py | 4 +- .../assets/brand/png/zenzic-icon.png.license | 3 ++ .../png/zenzic-wordmark-dark.png.license | 3 ++ .../assets/brand/svg/zenzic-wordmark-dark.svg | 20 +++++----- static/assets/brand/svg/zenzic-wordmark.svg | 20 +++++----- tests/test_baseline.py | 17 ++++++--- tests/test_config_validation.py | 7 +--- tests/test_content_linting.py | 27 ++++++++++--- tests/test_gallery_phase2bc.py | 4 +- tests/test_topology.py | 38 ++++++++++++------- 42 files changed, 257 insertions(+), 144 deletions(-) create mode 100644 docs/assets/brand/png/zenzic-logo.png.license create mode 100644 docs/assets/brand/svg/zenzic-logo.svg.license create mode 100644 docs/assets/images/blog/launch_v0270.jpg.license create mode 100644 docs/assets/images/blog/launch_v0270.webp.license create mode 100644 static/assets/brand/png/zenzic-icon.png.license create mode 100644 static/assets/brand/png/zenzic-wordmark-dark.png.license diff --git a/CHANGELOG.md b/CHANGELOG.md index 3194886..e0525a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,6 @@ Versions follow [Semantic Versioning](https://semver.org/). ## Historical Releases - v0.26.x archive: [changelogs/v0.26.x.md](./changelogs/v0.26.x.md) - - v0.25.x archive: [changelogs/v0.25.x.md](./changelogs/v0.25.x.md) - v0.24.x archive: [changelogs/v0.24.x.md](./changelogs/v0.24.x.md) - v0.23.x archive: [changelogs/v0.23.x.md](./changelogs/v0.23.x.md) diff --git a/REUSE.toml b/REUSE.toml index 25533ea..f399fd6 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -6,7 +6,7 @@ version = 1 # listed here. [[annotations]] -path = [".zenzic-score.json", "coverage.json", ".markdownlint.json", "zenzic-output.schema.json"] +path = [".zenzic-score.json", "coverage.json", ".markdownlint.json", "zenzic-output.schema.json", "zenzic-baseline.schema.json"] SPDX-FileCopyrightText = "2026 PythonWoods " SPDX-License-Identifier = "Apache-2.0" diff --git a/assets/brand/svg/zenzic-wordmark-dark.svg b/assets/brand/svg/zenzic-wordmark-dark.svg index 6b7afef..7ef396d 100644 --- a/assets/brand/svg/zenzic-wordmark-dark.svg +++ b/assets/brand/svg/zenzic-wordmark-dark.svg @@ -43,17 +43,17 @@ - Zenzic - DOCUMENT INTEGRITY ENGINE diff --git a/assets/brand/svg/zenzic-wordmark.svg b/assets/brand/svg/zenzic-wordmark.svg index c3de6d6..a764785 100644 --- a/assets/brand/svg/zenzic-wordmark.svg +++ b/assets/brand/svg/zenzic-wordmark.svg @@ -44,17 +44,17 @@ - Zenzic - DOCUMENT INTEGRITY ENGINE diff --git a/changelogs/v0.26.x.md b/changelogs/v0.26.x.md index 68c439b..cd19f4a 100644 --- a/changelogs/v0.26.x.md +++ b/changelogs/v0.26.x.md @@ -6,8 +6,8 @@ ## [0.26.5] - 2026-07-29 ### Fixed -- **Supply Chain Integrity**: Emergency patch to replace a dirty build artifact published to PyPI in `v0.26.4`. No functional code changes. +- **Supply Chain Integrity**: Emergency patch to replace a dirty build artifact published to PyPI in `v0.26.4`. No functional code changes. ## [0.26.4] - 2026-07-29 diff --git a/docs/assets/brand/png/zenzic-logo.png.license b/docs/assets/brand/png/zenzic-logo.png.license new file mode 100644 index 0000000..73c93a8 --- /dev/null +++ b/docs/assets/brand/png/zenzic-logo.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 PythonWoods + +SPDX-License-Identifier: Apache-2.0 diff --git a/docs/assets/brand/svg/zenzic-logo.svg b/docs/assets/brand/svg/zenzic-logo.svg index 5c23082..288cb0e 100644 --- a/docs/assets/brand/svg/zenzic-logo.svg +++ b/docs/assets/brand/svg/zenzic-logo.svg @@ -38,13 +38,13 @@ - + - + - + @@ -54,18 +54,18 @@ - Zenzic - DOCUMENT INTEGRITY ENGINE diff --git a/docs/assets/brand/svg/zenzic-logo.svg.license b/docs/assets/brand/svg/zenzic-logo.svg.license new file mode 100644 index 0000000..73c93a8 --- /dev/null +++ b/docs/assets/brand/svg/zenzic-logo.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 PythonWoods + +SPDX-License-Identifier: Apache-2.0 diff --git a/docs/assets/images/blog/launch_v0270.jpg.license b/docs/assets/images/blog/launch_v0270.jpg.license new file mode 100644 index 0000000..73c93a8 --- /dev/null +++ b/docs/assets/images/blog/launch_v0270.jpg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 PythonWoods + +SPDX-License-Identifier: Apache-2.0 diff --git a/docs/assets/images/blog/launch_v0270.webp.license b/docs/assets/images/blog/launch_v0270.webp.license new file mode 100644 index 0000000..73c93a8 --- /dev/null +++ b/docs/assets/images/blog/launch_v0270.webp.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 PythonWoods + +SPDX-License-Identifier: Apache-2.0 diff --git a/docs/blog/posts/2026-08-02-zenzic-v0270-deterministic-quality-platform.md b/docs/blog/posts/2026-08-02-zenzic-v0270-deterministic-quality-platform.md index 6e2f5b5..e298ca0 100644 --- a/docs/blog/posts/2026-08-02-zenzic-v0270-deterministic-quality-platform.md +++ b/docs/blog/posts/2026-08-02-zenzic-v0270-deterministic-quality-platform.md @@ -52,7 +52,7 @@ zenzic check all --baseline .zenzic-baseline.json Finding signatures are computed using SHA-256 hashes excluding line numbers: -$$\text{Signature} = \text{SHA256}(\text{RuleCode} + \text{PosixPath} + \text{ContextTarget})[:16]$$ +$$\text{Signature} = \text{SHA256}[\text{RuleCode} + \text{PosixPath} + \text{ContextTarget}](:16)$$ Inserting or deleting lines above an existing defect does **not** invalidate its baseline match. Baselined defects are tagged with `is_baselined: true` (**Radical Unawareness**), allowing reports to display existing debt transparently while failing CI builds if a new defect is introduced or if the Document Quality Score (DQS) regresses below the baseline threshold. diff --git a/docs/explanation/baseline-tracking.md b/docs/explanation/baseline-tracking.md index d00b7df..be82b14 100644 --- a/docs/explanation/baseline-tracking.md +++ b/docs/explanation/baseline-tracking.md @@ -3,6 +3,9 @@ title: Baseline & Regression Tracking description: Snapshot existing technical debt into .zenzic-baseline.json to prevent quality regressions in CI/CD pipelines. --- + + + # Baseline & Regression Tracking Zenzic provides an anti-regression engine that captures existing technical debt into a deterministic snapshot file (`.zenzic-baseline.json`). This allows engineering teams to adopt strict Quality Gates without being blocked by legacy documentation debt. @@ -10,12 +13,14 @@ Zenzic provides an anti-regression engine that captures existing technical debt ## Core Concepts ### 1. Deterministic Cryptographic Signatures + Findings are matched across runs using a deterministic SHA-256 signature (`SHA-256(RuleCode + PosixPath + ContextTarget)`). - **Line-Number Invariant**: Line numbers are intentionally excluded from the signature. Adding, deleting, or moving lines above a finding will **not** invalidate its baseline match. - **Context Specificity**: Differentiates distinct defects in the same file (such as two broken links pointing to different targets). ### 2. Radical Unawareness (ADR-075) + The Core Engine does not drop baselined findings; it flags them with `is_baselined: true`. This allows editor integrations (LSP) and reports to display existing debt transparently while allowing the CLI to enforce anti-regression exit rules. --- @@ -23,6 +28,7 @@ The Core Engine does not drop baselined findings; it flags them with `is_baselin ## Command Line Usage ### Creating or Updating a Baseline + To capture current findings and Document Quality Score (DQS) into `.zenzic-baseline.json`: ```bash @@ -50,6 +56,7 @@ This creates a human-readable JSON snapshot: ``` ### Consuming a Baseline in CI/CD + When `.zenzic-baseline.json` exists in your workspace root, `zenzic check` automatically loads it: ```bash @@ -63,7 +70,9 @@ zenzic check all --baseline ci-baseline.json ``` ### CI Exit Code Logic + When a baseline is active: + - **Exit 0**: All active defects are present in the baseline snapshot and current DQS score $\ge$ baseline score. - **Exit 1**: A new defect is introduced OR current DQS score drops below the baseline score. - **Resolution Hint**: If baselined issues are fixed, Zenzic displays a hint suggesting to refresh the baseline: diff --git a/docs/explanation/core-mechanics.md b/docs/explanation/core-mechanics.md index 7074ff8..0f7a58f 100644 --- a/docs/explanation/core-mechanics.md +++ b/docs/explanation/core-mechanics.md @@ -98,9 +98,10 @@ Because the graph is computed entirely in memory during Pass 1.5, topological gr Evolutionary quality control requires tracking technical debt across commits without breaking on minor edits. The Zenzic Baseline Engine introduces line-shift invariant SHA-256 signatures: -$$\text{Signature} = \text{SHA256}(\text{RuleCode} + \text{PosixPath} + \text{ContextTarget})[:16]$$ +$$\text{Signature} = \text{SHA256}[\text{RuleCode} + \text{PosixPath} + \text{ContextTarget}](:16)$$ By excluding line numbers from the signature computation: + - Inserting or deleting lines above a finding does **not** invalidate its baseline match. - Baselined findings are flagged with `is_baselined: true` (**Radical Unawareness**), allowing reports to display existing debt transparently while enforcing strict CI exit gates for new defects. diff --git a/docs/index.md b/docs/index.md index 623b09e..86569a8 100644 --- a/docs/index.md +++ b/docs/index.md @@ -99,4 +99,3 @@ Beyond static link checks, Zenzic's Smart Link Graph constructs an adjacency mat ### Configuration Validation Engine Formal schema validation for `.zenzic.toml` (`Z110` TOML syntax errors, `Z111` schema type mismatches) with exact line-number extraction. Fatal config errors halt document graph scanning to prevent false-positive cascades and protect LSP stability. - diff --git a/docs/rules/Z110.md b/docs/rules/Z110.md index f7d4ad5..9209a0b 100644 --- a/docs/rules/Z110.md +++ b/docs/rules/Z110.md @@ -2,6 +2,9 @@ title: "Z110: CONFIG_SYNTAX_ERROR" --- + + + # Z110: CONFIG_SYNTAX_ERROR **Severity**: `error` @@ -11,20 +14,24 @@ title: "Z110: CONFIG_SYNTAX_ERROR" **Suppression**: Non-suppressible ## Description + The `.zenzic.toml` (or `pyproject.toml`) workspace configuration file contains a malformed TOML syntax error. When a configuration file is syntactically invalid, Zenzic halts Markdown document analysis to prevent cascading false positives or running with corrupted governance policies. ## How to Fix + Fix the TOML syntax error in `.zenzic.toml` indicated in the diagnostic message (such as missing quotes, unclosed brackets, or unescaped characters). ## Example Error + ```text # Malformed TOML placeholder_max_words = [ 50, ``` Corrected `.zenzic.toml`: + ```toml placeholder_max_words = 50 ``` diff --git a/docs/rules/Z111.md b/docs/rules/Z111.md index e4ea690..0bd63f0 100644 --- a/docs/rules/Z111.md +++ b/docs/rules/Z111.md @@ -2,6 +2,9 @@ title: "Z111: CONFIG_SCHEMA_ERROR" --- + + + # Z111: CONFIG_SCHEMA_ERROR **Severity**: `error` @@ -11,20 +14,24 @@ title: "Z111: CONFIG_SCHEMA_ERROR" **Suppression**: Non-suppressible ## Description + The `.zenzic.toml` (or `pyproject.toml`) configuration file contains an invalid schema structure, unknown key, or data type mismatch (e.g. providing a string instead of an integer). When configuration validation fails, Zenzic halts document analysis to protect workspace integrity. ## How to Fix + Correct the configuration key name or value type in `.zenzic.toml` as indicated by the field error in the diagnostic message. ## Example Error + ```toml # Invalid string type for integer setting placeholder_max_words = "fifty" ``` Corrected `.zenzic.toml`: + ```toml placeholder_max_words = 50 ``` diff --git a/docs/rules/Z410.md b/docs/rules/Z410.md index 722976a..aede733 100644 --- a/docs/rules/Z410.md +++ b/docs/rules/Z410.md @@ -2,6 +2,9 @@ title: "Z410: UNREACHABLE_GRAPH_NODE" --- + + + # Z410: UNREACHABLE_GRAPH_NODE **Severity**: `warning` @@ -10,6 +13,7 @@ title: "Z410: UNREACHABLE_GRAPH_NODE" **Auto-fixable**: No ## Description + The document is isolated and unreachable from the navigation entry points of the documentation graph. A document is considered an orphan graph node if it is discovered in the filesystem by Zenzic, but no valid path of links connects it to the root configuration (e.g., the `nav` section in MkDocs or Zensical). @@ -17,11 +21,14 @@ A document is considered an orphan graph node if it is discovered in the filesys While Z402 (`ORPHAN_PAGE`) checks if a page is listed in the top-level navigation, Z410 performs a deep topological Breadth-First Search (BFS) to ensure the document can be reached by a user clicking through links starting from the navigation entry points. ## How to Fix + To resolve this issue, you must integrate the document into the reachable graph: + 1. Add a link to the document from another document that is already reachable. 2. Add the document directly to the main navigation menu (`mkdocs.yml` or equivalent). ## Suppression + If the document is intentionally isolated (for example, a standalone template or an internal include that is not meant to be browsed), you can suppress this warning using an inline directive at the top of the file: ```markdown diff --git a/docs/rules/Z411.md b/docs/rules/Z411.md index 407cfee..4d365c3 100644 --- a/docs/rules/Z411.md +++ b/docs/rules/Z411.md @@ -2,6 +2,9 @@ title: "Z411: DEAD_END_NODE" --- + + + # Z411: DEAD_END_NODE **Severity**: `warning` @@ -10,6 +13,7 @@ title: "Z411: DEAD_END_NODE" **Auto-fixable**: No ## Description + The document has no outgoing links and forms a structural dead end in the documentation graph. A Dead End (Z411) occurs when a Markdown/MDX page does not link to any other resources. In a well-structured documentation graph, every page should ideally guide the user to further reading, related topics, or back to a main index. A page with zero outgoing links strands the reader. @@ -17,11 +21,14 @@ A Dead End (Z411) occurs when a Markdown/MDX page does not link to any other res Terminal assets like images, CSS files, and PDFs are excluded from this rule. ## How to Fix + Add relevant outgoing links to the document to connect it to the rest of the documentation graph: + 1. Link to related concepts or further reading. 2. Link to a parent or index page to provide a path back. ## Suppression + If the document is intentionally designed as a dead end (for example, a terminal legal disclaimer or an auto-generated changelog with no internal references), you can suppress this warning using an inline directive at the top of the file: ```markdown diff --git a/docs/rules/Z510.md b/docs/rules/Z510.md index e1f07ae..f4a31f1 100644 --- a/docs/rules/Z510.md +++ b/docs/rules/Z510.md @@ -2,6 +2,9 @@ title: "Z510: HEADING_HIERARCHY" --- + + + # Z510: HEADING_HIERARCHY **Severity**: `warning` @@ -10,16 +13,20 @@ title: "Z510: HEADING_HIERARCHY" **Auto-fixable**: No ## Description + A heading level skips one or more levels in the document structure (for example, an `H3` heading immediately follows an `H1` heading without an intervening `H2`). Skipping heading levels impairs screen reader navigation, breaks document outline generation, and compromises structural accessibility. ## How to Fix + Adjust the heading level to maintain sequential hierarchy: + 1. Ensure `H2` follows `H1`. 2. Ensure `H3` follows `H2`. ## Suppression + If a skipped heading level is intentional, you can suppress this warning using an inline comment directive at or above the heading: ```markdown diff --git a/docs/rules/Z511.md b/docs/rules/Z511.md index 681d257..9af0c44 100644 --- a/docs/rules/Z511.md +++ b/docs/rules/Z511.md @@ -2,6 +2,9 @@ title: "Z511: EXCESSIVE_SENTENCE_LENGTH" --- + + + # Z511: EXCESSIVE_SENTENCE_LENGTH **Severity**: `warning` @@ -10,15 +13,18 @@ title: "Z511: EXCESSIVE_SENTENCE_LENGTH" **Auto-fixable**: No ## Description + A prose sentence exceeds the configured maximum word count threshold (default: 40 words). Extremely long sentences reduce reader comprehension, increase cognitive load, and hurt technical documentation readability. ## How to Fix + 1. Break the sentence into two or more shorter sentences using punctuation (`.`, `;`). 2. Use bullet points or lists to structure complex multi-part statements. ## Configuration + You can configure the maximum allowed sentence length in `.zenzic.toml`: ```toml @@ -26,6 +32,7 @@ max_sentence_length = 35 ``` ## Suppression + To suppress this warning for a specific sentence, add an inline comment directive above the paragraph: ```markdown diff --git a/docs/rules/Z512.md b/docs/rules/Z512.md index 6a65c3f..6f7ba69 100644 --- a/docs/rules/Z512.md +++ b/docs/rules/Z512.md @@ -2,6 +2,9 @@ title: "Z512: EMPTY_SECTION" --- + + + # Z512: EMPTY_SECTION **Severity**: `warning` @@ -10,15 +13,18 @@ title: "Z512: EMPTY_SECTION" **Auto-fixable**: No ## Description + A heading section contains zero body content before the next heading or the end of the file. Empty sections act as visual placeholders that confuse readers and indicate incomplete or abandoned documentation sections. ## How to Fix + 1. Add explanatory text, code snippets, or list items beneath the heading. 2. Remove the empty heading if the section is not needed. ## Suppression + If a heading is intentionally empty, add an inline comment directive below or above the heading: ```markdown diff --git a/docs/tutorials/first-audit.md b/docs/tutorials/first-audit.md index f466e65..b8d1206 100644 --- a/docs/tutorials/first-audit.md +++ b/docs/tutorials/first-audit.md @@ -188,4 +188,3 @@ zenzic check all --baseline .zenzic-baseline.json - **Strict mode** — add `--strict` to also validate external URLs - **Custom rules** — add `[[custom_rules]]` entries to `.zenzic.toml` to enforce your own patterns - **Finding codes** — see the [Finding Codes reference](../reference/finding-codes) for the full `Zxxx` diagnostic catalogue - diff --git a/src/zenzic/cli/_check.py b/src/zenzic/cli/_check.py index 202a9e6..aac6293 100644 --- a/src/zenzic/cli/_check.py +++ b/src/zenzic/cli/_check.py @@ -1576,8 +1576,10 @@ def check_all( BaselineManager.apply_baseline(all_findings, active_baseline) except Exception as exc: if baseline is not None: - typer.echo(f"ERROR: Failed to load baseline '{baseline_file_path}': {exc}", err=True) - raise typer.Exit(1) + typer.echo( + f"ERROR: Failed to load baseline '{baseline_file_path}': {exc}", err=True + ) + raise typer.Exit(1) from None elapsed = time.monotonic() - t0 @@ -1594,7 +1596,9 @@ def check_all( raise typer.Exit(2) if active_baseline is not None and not effective_exit_zero: - unbaselined = sum(1 for f in all_findings if not f.is_baselined and f.severity == "error") + unbaselined = sum( + 1 for f in all_findings if not f.is_baselined and f.severity == "error" + ) if unbaselined or _score_report.score < active_baseline.score: raise typer.Exit(1) elif not effective_exit_zero: @@ -1612,7 +1616,9 @@ def check_all( raise typer.Exit(2) if active_baseline is not None and not effective_exit_zero: - unbaselined = sum(1 for f in all_findings if not f.is_baselined and f.severity == "error") + unbaselined = sum( + 1 for f in all_findings if not f.is_baselined and f.severity == "error" + ) if unbaselined or _score_report.score < active_baseline.score: raise typer.Exit(1) elif not effective_exit_zero: @@ -1632,8 +1638,10 @@ def check_all( if active_baseline is not None and not effective_exit_zero: unbaselined = sum( - 1 for f in all_findings - if not f.is_baselined and (f.severity == "error" or (effective_strict and f.severity == "warning")) + 1 + for f in all_findings + if not f.is_baselined + and (f.severity == "error" or (effective_strict and f.severity == "warning")) ) if unbaselined or _score_report.score < active_baseline.score: raise typer.Exit(1) @@ -1735,8 +1743,10 @@ def check_all( if active_baseline is not None: unbaselined_defects = sum( - 1 for f in all_findings - if not f.is_baselined and (f.severity == "error" or (effective_strict and f.severity == "warning")) + 1 + for f in all_findings + if not f.is_baselined + and (f.severity == "error" or (effective_strict and f.severity == "warning")) ) score_regressed = _score_report.score < active_baseline.score if (score_regressed or unbaselined_defects > 0) and not effective_exit_zero: diff --git a/src/zenzic/core/adapters/_mkdocs.py b/src/zenzic/core/adapters/_mkdocs.py index 81db618..40bc012 100644 --- a/src/zenzic/core/adapters/_mkdocs.py +++ b/src/zenzic/core/adapters/_mkdocs.py @@ -31,6 +31,7 @@ if TYPE_CHECKING: from zenzic.core.adapters._base import RouteMetadata from zenzic.models.vsm import RouteStatus + from zenzic.models.vsm import VirtualSiteMap def _iter_plugins(doc_config: dict[str, Any]) -> list[tuple[str, dict[str, Any]]]: @@ -849,22 +850,22 @@ def get_absolute_url_prefixes(self, repo_root: Path | None = None) -> list[str]: """MkDocs is single-instance and exports no absolute URL prefixes.""" return [] - def get_entry_points(self, vsm: 'VirtualSiteMap') -> list[str]: + def get_entry_points(self, vsm: VirtualSiteMap) -> list[str]: """Return canonical URLs serving as root entry points from nav configuration.""" nav_paths = self.get_nav_paths() if not nav_paths: return ["/"] if "/" in vsm else [] - + entry_points = set() for p in nav_paths: ep = self._map_url(Path(p)) if ep in vsm: entry_points.add(ep) - + if "/" in vsm: entry_points.add("/") - - return sorted(list(entry_points)) + + return sorted(entry_points) @classmethod def from_repo( diff --git a/src/zenzic/core/adapters/_standalone.py b/src/zenzic/core/adapters/_standalone.py index 6e7aabf..4ddb3d8 100644 --- a/src/zenzic/core/adapters/_standalone.py +++ b/src/zenzic/core/adapters/_standalone.py @@ -12,6 +12,7 @@ if TYPE_CHECKING: from zenzic.core.adapters._base import RouteMetadata + from zenzic.models.vsm import VirtualSiteMap class StandaloneAdapter(BaseAdapter): diff --git a/src/zenzic/core/adapters/_zensical.py b/src/zenzic/core/adapters/_zensical.py index d7ca0cf..92cdafc 100644 --- a/src/zenzic/core/adapters/_zensical.py +++ b/src/zenzic/core/adapters/_zensical.py @@ -61,6 +61,7 @@ if TYPE_CHECKING: from zenzic.core.adapters._base import RouteMetadata from zenzic.models.vsm import RouteStatus + from zenzic.models.vsm import VirtualSiteMap # ── Config discovery & loading ──────────────────────────────────────────────── @@ -459,21 +460,21 @@ def get_absolute_url_prefixes(self, repo_root: Path | None = None) -> list[str]: """Zensical is single-instance and exports no absolute URL prefixes.""" return [] - def get_entry_points(self, vsm: 'VirtualSiteMap') -> list[str]: + def get_entry_points(self, vsm: VirtualSiteMap) -> list[str]: """Return canonical URLs serving as root entry points from nav configuration.""" if not self._has_explicit_nav: return ["/"] if "/" in vsm else [] - + entry_points = set() for p in self._nav_paths: ep = self._map_url(Path(p)) if ep in vsm: entry_points.add(ep) - + if "/" in vsm: entry_points.add("/") - - return sorted(list(entry_points)) + + return sorted(entry_points) @classmethod def from_repo( diff --git a/src/zenzic/core/baseline.py b/src/zenzic/core/baseline.py index f36d5b4..a19d3ef 100644 --- a/src/zenzic/core/baseline.py +++ b/src/zenzic/core/baseline.py @@ -17,6 +17,7 @@ from pathlib import Path from typing import TYPE_CHECKING, Any + if TYPE_CHECKING: from zenzic.core.reporter import Finding @@ -61,7 +62,7 @@ def compute_finding_signature( else: context_target = message.strip() - payload = f"{norm_code}:{norm_path}:{context_target}".encode("utf-8") + payload = f"{norm_code}:{norm_path}:{context_target}".encode() return hashlib.sha256(payload).hexdigest()[:16] diff --git a/src/zenzic/core/content.py b/src/zenzic/core/content.py index cb47f90..c8229b2 100644 --- a/src/zenzic/core/content.py +++ b/src/zenzic/core/content.py @@ -13,6 +13,7 @@ from pathlib import Path from typing import TYPE_CHECKING + if TYPE_CHECKING: from zenzic.core.rules import RuleFinding @@ -62,9 +63,7 @@ def check_heading_hierarchy(file_path: Path, text: str) -> list[RuleFinding]: return findings -def check_sentence_lengths( - file_path: Path, text: str, max_words: int = 40 -) -> list[RuleFinding]: +def check_sentence_lengths(file_path: Path, text: str, max_words: int = 40) -> list[RuleFinding]: """Z511: Detect sentences exceeding max_words readability threshold.""" from zenzic.core.rules import RuleFinding diff --git a/src/zenzic/core/incremental.py b/src/zenzic/core/incremental.py index 73ddf8d..a22ab39 100644 --- a/src/zenzic/core/incremental.py +++ b/src/zenzic/core/incremental.py @@ -288,6 +288,7 @@ def process_changes( # 2b. Run Topological Analysis if hasattr(self.adapter, "get_entry_points"): from zenzic.core.topology import detect_dead_ends, detect_orphans + entry_points = self.adapter.get_entry_points(vsm) self._orphaned_urls = set(detect_orphans(vsm, entry_points)) self._dead_end_urls = set(detect_dead_ends(vsm)) diff --git a/src/zenzic/core/scanner.py b/src/zenzic/core/scanner.py index 43ccabe..0f7f04a 100644 --- a/src/zenzic/core/scanner.py +++ b/src/zenzic/core/scanner.py @@ -1213,14 +1213,11 @@ def _run_vsm_and_urp_pass( rel_posix = r.file_path.relative_to(docs_root).as_posix() except ValueError: rel_posix = r.file_path.absolute().as_posix() - canonical_url = next( - (route.url for route in vsm.values() if route.source == rel_posix), "" - ) + canonical_url = next((route.url for route in vsm.values() if route.source == rel_posix), "") if canonical_url: if canonical_url in orphaned_urls: - if ( - r.suppression_tracker is None - or not r.suppression_tracker.is_suppressed(1, "Z410") + if r.suppression_tracker is None or not r.suppression_tracker.is_suppressed( + 1, "Z410" ): r.rule_findings.append( RuleFinding( @@ -1233,9 +1230,8 @@ def _run_vsm_and_urp_pass( ) ) if canonical_url in dead_end_urls: - if ( - r.suppression_tracker is None - or not r.suppression_tracker.is_suppressed(1, "Z411") + if r.suppression_tracker is None or not r.suppression_tracker.is_suppressed( + 1, "Z411" ): r.rule_findings.append( RuleFinding( diff --git a/src/zenzic/core/topology.py b/src/zenzic/core/topology.py index b0c0e27..7aff5ba 100644 --- a/src/zenzic/core/topology.py +++ b/src/zenzic/core/topology.py @@ -3,28 +3,30 @@ """Topological graph analysis for the Virtual Site Map.""" from __future__ import annotations + from collections import deque from typing import TYPE_CHECKING + if TYPE_CHECKING: from zenzic.models.vsm import VirtualSiteMap def _bfs_reachability(vsm: VirtualSiteMap, entry_points: list[str]) -> set[str]: """Compute all reachable canonical URLs via a deterministic BFS. - + The BFS traversal ensures O(V+E) time complexity and produces deterministic reachability sets by sorting nodes and relying on the pre-sorted adjacency list. """ reachable = set() queue: deque[str] = deque() - + # Sort entry points for strict determinism for ep in sorted(entry_points): if ep in vsm: reachable.add(ep) queue.append(ep) - + while queue: current = queue.popleft() outgoing = vsm.outgoing_links.get(current, []) @@ -33,52 +35,52 @@ def _bfs_reachability(vsm: VirtualSiteMap, entry_points: list[str]) -> set[str]: if neighbor not in reachable and neighbor in vsm: reachable.add(neighbor) queue.append(neighbor) - + return reachable def detect_orphans(vsm: VirtualSiteMap, entry_points: list[str]) -> list[str]: """Return a deterministically sorted list of canonical URLs that are unreachable. - + Orphans (Z410) are Markdown/MDX documents that exist in the VSM but cannot be reached from any of the defined entry points. """ reachable = _bfs_reachability(vsm, entry_points) orphans = [] - + for url, route in vsm.items(): if route.status == "IGNORED" or route.source == "": continue - + lower_source = route.source.lower() if not (lower_source.endswith(".md") or lower_source.endswith(".mdx")): continue - + if url not in reachable: orphans.append(url) - + return sorted(orphans) def detect_dead_ends(vsm: VirtualSiteMap) -> list[str]: """Return a deterministically sorted list of canonical URLs with no outgoing links. - + Dead Ends (Z411) are Markdown/MDX documents that do not link to any other resources, representing a structural dead end in the documentation graph. Terminal assets (like images or CSS) are excluded. """ dead_ends = [] - + for url, route in vsm.items(): if route.status == "IGNORED" or route.source == "": continue - + lower_source = route.source.lower() if not (lower_source.endswith(".md") or lower_source.endswith(".mdx")): continue - + outgoing = vsm.outgoing_links.get(url, []) if not outgoing: dead_ends.append(url) - + return sorted(dead_ends) diff --git a/src/zenzic/models/config.py b/src/zenzic/models/config.py index 764b9bd..9263047 100644 --- a/src/zenzic/models/config.py +++ b/src/zenzic/models/config.py @@ -1046,9 +1046,10 @@ def load_config_with_diagnostics( Emits Z110 for TOMLDecodeError and Z111 for ValidationError. Extracts line numbers from errors whenever available. """ - from zenzic.core.reporter import Finding from pydantic import ValidationError + from zenzic.core.reporter import Finding + target_file = config_file if config_file else (repo_root / ".zenzic.toml") if not target_file.is_file() and (repo_root.parent / ".zenzic.toml").is_file(): target_file = repo_root.parent / ".zenzic.toml" @@ -1140,7 +1141,11 @@ def load_config_with_diagnostics( if last_key in line: line_no = idx break - source_line = content_lines[line_no - 1] if content_lines and 0 < line_no <= len(content_lines) else "" + source_line = ( + content_lines[line_no - 1] + if content_lines and 0 < line_no <= len(content_lines) + else "" + ) msg = f"Configuration schema error: {err.get('msg', 'invalid value')} (field: '{field_name}')" findings.append( Finding( diff --git a/src/zenzic/models/vsm.py b/src/zenzic/models/vsm.py index 86103a7..f91c427 100644 --- a/src/zenzic/models/vsm.py +++ b/src/zenzic/models/vsm.py @@ -337,9 +337,9 @@ def _register(url: str) -> None: for node in PolyglotExtractor().extract(content): if node.href: _register(node.href) - + if canonical_url: - self.outgoing_links[canonical_url] = sorted(list(targets)) + self.outgoing_links[canonical_url] = sorted(targets) def resolve_link_to_canonical( diff --git a/static/assets/brand/png/zenzic-icon.png.license b/static/assets/brand/png/zenzic-icon.png.license new file mode 100644 index 0000000..73c93a8 --- /dev/null +++ b/static/assets/brand/png/zenzic-icon.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 PythonWoods + +SPDX-License-Identifier: Apache-2.0 diff --git a/static/assets/brand/png/zenzic-wordmark-dark.png.license b/static/assets/brand/png/zenzic-wordmark-dark.png.license new file mode 100644 index 0000000..73c93a8 --- /dev/null +++ b/static/assets/brand/png/zenzic-wordmark-dark.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 PythonWoods + +SPDX-License-Identifier: Apache-2.0 diff --git a/static/assets/brand/svg/zenzic-wordmark-dark.svg b/static/assets/brand/svg/zenzic-wordmark-dark.svg index 6b7afef..7ef396d 100644 --- a/static/assets/brand/svg/zenzic-wordmark-dark.svg +++ b/static/assets/brand/svg/zenzic-wordmark-dark.svg @@ -43,17 +43,17 @@ - Zenzic - DOCUMENT INTEGRITY ENGINE diff --git a/static/assets/brand/svg/zenzic-wordmark.svg b/static/assets/brand/svg/zenzic-wordmark.svg index c3de6d6..a764785 100644 --- a/static/assets/brand/svg/zenzic-wordmark.svg +++ b/static/assets/brand/svg/zenzic-wordmark.svg @@ -44,17 +44,17 @@ - Zenzic - DOCUMENT INTEGRITY ENGINE diff --git a/tests/test_baseline.py b/tests/test_baseline.py index b2c82c4..2810b4b 100644 --- a/tests/test_baseline.py +++ b/tests/test_baseline.py @@ -7,18 +7,17 @@ import json from pathlib import Path -import pytest from jsonschema import validate from typer.testing import CliRunner -from zenzic.main import app from zenzic.core.baseline import ( DEFAULT_BASELINE_FILE, - BaselineData, BaselineManager, compute_finding_signature, ) from zenzic.core.reporter import Finding +from zenzic.main import app + runner = CliRunner() @@ -31,7 +30,9 @@ def test_signature_computation_resilient_to_line_shifts() -> None: assert len(sig1) == 16 # Differing targets produce different signatures - sig_other = compute_finding_signature("Z410", "docs/guide.md", "", "Document is isolated: '/other/'") + sig_other = compute_finding_signature( + "Z410", "docs/guide.md", "", "Document is isolated: '/other/'" + ) assert sig1 != sig_other # Context match_text precedence @@ -67,8 +68,12 @@ def test_baseline_schema_validation(tmp_path: Path) -> None: def test_baseline_manager_apply_baseline() -> None: """apply_baseline flags matching findings as is_baselined=True.""" - f1 = Finding(rel_path="docs/a.md", line_no=1, code="Z410", severity="warning", message="Isolated: '/a/'") - f2 = Finding(rel_path="docs/b.md", line_no=10, code="Z411", severity="warning", message="Dead end: '/b/'") + f1 = Finding( + rel_path="docs/a.md", line_no=1, code="Z410", severity="warning", message="Isolated: '/a/'" + ) + f2 = Finding( + rel_path="docs/b.md", line_no=10, code="Z411", severity="warning", message="Dead end: '/b/'" + ) bdata = BaselineManager.create_baseline(95.0, [f1], version_str="0.27.0") baselined_cnt, new_cnt = BaselineManager.apply_baseline([f1, f2], bdata) diff --git a/tests/test_config_validation.py b/tests/test_config_validation.py index 8edca5e..278c634 100644 --- a/tests/test_config_validation.py +++ b/tests/test_config_validation.py @@ -6,8 +6,6 @@ from pathlib import Path -import pytest - from zenzic.core.incremental import IncrementalAnalysisEngine from zenzic.core.scanner import scan_docs_references from zenzic.models.config import ZenzicConfig, load_config_with_diagnostics @@ -18,9 +16,7 @@ def test_z110_toml_syntax_error_line_extraction(tmp_path: Path) -> None: """Z110 extracts line numbers from TOML syntax errors in .zenzic.toml.""" config_file = tmp_path / ".zenzic.toml" config_file.write_text( - "[site]\n" - "engine = 'standalone'\n" - "placeholder_max_words = [ unclosed_array\n", # line 3 + "[site]\nengine = 'standalone'\nplaceholder_max_words = [ unclosed_array\n", # line 3 encoding="utf-8", ) @@ -122,4 +118,3 @@ def test_local_config_validation(tmp_path: Path) -> None: assert len(findings) == 1 assert findings[0].code == "Z110" assert findings[0].rel_path == ".zenzic.local.toml" - diff --git a/tests/test_content_linting.py b/tests/test_content_linting.py index d6f3aa2..5cf7c6c 100644 --- a/tests/test_content_linting.py +++ b/tests/test_content_linting.py @@ -9,8 +9,6 @@ from pathlib import Path from unittest.mock import patch -import pytest - from zenzic.cli._shared import _output_sarif_findings from zenzic.core.content import ( check_empty_sections, @@ -108,9 +106,23 @@ def test_z512_empty_section_detection(tmp_path: Path) -> None: def test_sarif_payload_contains_z510_z511_z512_rules() -> None: """SARIF output payload automatically includes Z510, Z511, Z512 rule metadata.""" findings = [ - Finding(rel_path="docs/a.md", line_no=3, code="Z510", severity="warning", message="Skipped H2"), - Finding(rel_path="docs/b.md", line_no=9, code="Z511", severity="warning", message="Long sentence"), - Finding(rel_path="docs/c.md", line_no=4, code="Z512", severity="warning", message="Empty section"), + Finding( + rel_path="docs/a.md", line_no=3, code="Z510", severity="warning", message="Skipped H2" + ), + Finding( + rel_path="docs/b.md", + line_no=9, + code="Z511", + severity="warning", + message="Long sentence", + ), + Finding( + rel_path="docs/c.md", + line_no=4, + code="Z512", + severity="warning", + message="Empty section", + ), ] out_buffer = StringIO() @@ -126,4 +138,7 @@ def test_sarif_payload_contains_z510_z511_z512_rules() -> None: assert "Z512" in rule_ids z510_rule = next(r for r in rules if r["id"] == "Z510") - assert z510_rule["shortDescription"]["text"] == "Heading hierarchy level skipped (e.g., H3 follows H1 without an intervening H2)" + assert ( + z510_rule["shortDescription"]["text"] + == "Heading hierarchy level skipped (e.g., H3 follows H1 without an intervening H2)" + ) diff --git a/tests/test_gallery_phase2bc.py b/tests/test_gallery_phase2bc.py index 33b5726..cc782be 100644 --- a/tests/test_gallery_phase2bc.py +++ b/tests/test_gallery_phase2bc.py @@ -98,9 +98,7 @@ def test_all_active_codes_covered_in_gallery() -> None: "z906", } - active_codes = { - code.lower() for code in CODE_DEFINITIONS if code.lower() not in INTERNAL_CODES - } + active_codes = {code.lower() for code in CODE_DEFINITIONS if code.lower() not in INTERNAL_CODES} gallery_codes = set(_GALLERY.keys()) missing = active_codes - gallery_codes assert not missing, f"Missing lab scenarios for active codes: {sorted(missing)}" diff --git a/tests/test_topology.py b/tests/test_topology.py index 8baeec0..e9af391 100644 --- a/tests/test_topology.py +++ b/tests/test_topology.py @@ -2,38 +2,48 @@ # SPDX-License-Identifier: Apache-2.0 """Tests for topological graph analysis.""" -import pytest -from pathlib import Path -from zenzic.core.topology import detect_orphans, detect_dead_ends -from zenzic.models.vsm import VirtualSiteMap, Route +from zenzic.core.topology import detect_dead_ends, detect_orphans +from zenzic.models.vsm import Route, VirtualSiteMap + def test_detect_orphans(): vsm = VirtualSiteMap() - vsm["/index.html"] = Route(url="/index.html", source="index.md", status="REACHABLE", anchors=set()) + vsm["/index.html"] = Route( + url="/index.html", source="index.md", status="REACHABLE", anchors=set() + ) vsm["/a.html"] = Route(url="/a.html", source="a.md", status="REACHABLE", anchors=set()) vsm["/b.html"] = Route(url="/b.html", source="b.md", status="REACHABLE", anchors=set()) - vsm["/orphan.html"] = Route(url="/orphan.html", source="orphan.md", status="REACHABLE", anchors=set()) - + vsm["/orphan.html"] = Route( + url="/orphan.html", source="orphan.md", status="REACHABLE", anchors=set() + ) + # Adjacency list setup vsm.outgoing_links["/index.html"] = ["/a.html"] vsm.outgoing_links["/a.html"] = ["/b.html"] - + entry_points = ["/index.html"] orphans = detect_orphans(vsm, entry_points) - + assert orphans == ["/orphan.html"] + def test_detect_dead_ends(): vsm = VirtualSiteMap() - vsm["/index.html"] = Route(url="/index.html", source="index.md", status="REACHABLE", anchors=set()) + vsm["/index.html"] = Route( + url="/index.html", source="index.md", status="REACHABLE", anchors=set() + ) vsm["/a.html"] = Route(url="/a.html", source="a.md", status="REACHABLE", anchors=set()) - vsm["/dead_end.html"] = Route(url="/dead_end.html", source="dead_end.md", status="REACHABLE", anchors=set()) - vsm["/asset.png"] = Route(url="/asset.png", source="asset.png", status="REACHABLE", anchors=set()) - + vsm["/dead_end.html"] = Route( + url="/dead_end.html", source="dead_end.md", status="REACHABLE", anchors=set() + ) + vsm["/asset.png"] = Route( + url="/asset.png", source="asset.png", status="REACHABLE", anchors=set() + ) + # Adjacency list setup vsm.outgoing_links["/index.html"] = ["/a.html"] vsm.outgoing_links["/a.html"] = ["/dead_end.html"] # /dead_end.html has no outgoing links - + dead_ends = detect_dead_ends(vsm) assert dead_ends == ["/dead_end.html"] From 0560274ed2bbfd1c1393c6ea31f2027fcd56314f Mon Sep 17 00:00:00 2001 From: PythonWoods Date: Sun, 2 Aug 2026 18:22:17 +0200 Subject: [PATCH 13/17] chore(release): consolidate v0.27.x stabilization cycle in changelog and docs Signed-off-by: PythonWoods --- .zenzic.toml | 18 +-- CHANGELOG.md | 11 ++ README.md | 2 + docs/assets/css/README.md | 3 + docs/blog/index.md | 2 + .../2026-04-29-tutorial-stop-broken-links.md | 6 +- docs/blog/posts/2026-06-27-v016-magnetite.md | 9 ++ ...4-zenzic-v0240-interactive-intelligence.md | 3 + ...026-07-26-zenzic-v0260-dqs-workspace-ui.md | 6 + ...ic-v0270-deterministic-quality-platform.md | 3 +- .../records/adr-002-zero-subprocesses.md | 3 + .../records/adr-007-sovereign-sandbox.md | 3 + .../adr-vault/records/adr-020-mirror-law.md | 3 + .../records/adr-021-parallel-audit.md | 3 + .../adr-022-english-only-governance.md | 3 + .../records/adr-075-radical-unawareness.md | 3 + .../records/adr-agnostic-universalism.md | 3 + .../records/adr-bilingual-structural.md | 3 + .../records/adr-decentralized-cli.md | 3 + .../adr-vault/records/adr-discovery.md | 3 + .../adr-vault/records/adr-lint-source.md | 3 + .../adr-vault/records/adr-native-telemetry.md | 3 + .../adr-vault/records/adr-path-sovereignty.md | 3 + .../adr-vault/records/adr-regex-acl.md | 3 + .../records/adr-unified-perimeter.md | 3 + docs/developers/explanation/core-laws.md | 5 + .../explanation/governance/index.md | 3 + .../developers/explanation/governance/lpgp.md | 5 + .../explanation/governance/technical-debt.md | 8 ++ .../explanation/mdx-asset-rationale.md | 5 + .../sovereign-verification-model.md | 5 + .../explanation/tailwind-mkdocs-bridge.md | 8 ++ .../how-to/contribute/pull-requests.md | 5 + .../how-to/contribute/report-a-bug.md | 5 + .../how-to/contribute/report-a-docs-issue.md | 5 + docs/developers/how-to/troubleshooting.md | 9 ++ docs/developers/how-to/write-ast-rule.md | 6 + docs/developers/reference/adapter-api.md | 3 + docs/developers/reference/adapter-examples.md | 5 + docs/developers/reference/ast-foundations.md | 5 + .../credential-scanner-obligations.md | 5 + .../supply-chain-assurance-profile.md | 5 + docs/developers/reference/zenzic-style.md | 6 + docs/explanation/brand-philosophy.md | 5 + docs/explanation/configuration-loading.md | 5 + docs/explanation/core-mechanics.md | 7 +- docs/explanation/exclusion-design.md | 8 ++ .../language-server-architecture.md | 5 + docs/explanation/mineral-path.md | 5 + docs/explanation/scoring-system.md | 5 + docs/explanation/why-zenzic.md | 11 ++ docs/how-to/add-badges.md | 5 + docs/how-to/configure-ci-cd.md | 5 + docs/how-to/configure-privacy-gate.md | 3 + docs/how-to/configure-social-metadata.md | 5 + docs/how-to/initialize-configuration.md | 5 + docs/how-to/migrate-engines.md | 3 + docs/how-to/troubleshooting.md | 6 + docs/how-to/use-brand-system.md | 44 +++++++ docs/reference/api-json.md | 5 + docs/reference/checks.md | 5 + docs/reference/cli.md | 9 ++ docs/reference/finding-codes.md | 110 ++++++++++++------ docs/rules/Z000.md | 49 ++++++++ docs/rules/Z001.md | 53 +++++++++ docs/rules/Z101.md | 50 ++++++++ docs/rules/Z102.md | 50 ++++++++ docs/rules/Z103.md | 49 ++++++++ docs/rules/Z104.md | 46 ++++++++ docs/rules/Z105.md | 48 ++++++++ docs/rules/Z106.md | 50 ++++++++ docs/rules/Z107.md | 47 ++++++++ docs/rules/Z108.md | 48 ++++++++ docs/rules/Z109.md | 49 ++++++++ docs/rules/Z110.md | 4 + docs/rules/Z111.md | 4 + docs/rules/Z114.md | 45 +++++++ docs/rules/Z118.md | 51 ++++++++ docs/rules/Z201.md | 47 ++++++++ docs/rules/Z202.md | 46 ++++++++ docs/rules/Z203.md | 45 +++++++ docs/rules/Z204.md | 51 ++++++++ docs/rules/Z301.md | 47 ++++++++ docs/rules/Z302.md | 47 ++++++++ docs/rules/Z303.md | 47 ++++++++ docs/rules/Z401.md | 43 +++++++ docs/rules/Z402.md | 45 +++++++ docs/rules/Z403.md | 45 +++++++ docs/rules/Z404.md | 47 ++++++++ docs/rules/Z405.md | 44 +++++++ docs/rules/Z406.md | 47 ++++++++ docs/rules/Z410.md | 4 + docs/rules/Z411.md | 4 + docs/rules/Z501.md | 54 +++++++++ docs/rules/Z502.md | 48 ++++++++ docs/rules/Z503.md | 50 ++++++++ docs/rules/Z504.md | 44 +++++++ docs/rules/Z505.md | 50 ++++++++ docs/rules/Z506.md | 49 ++++++++ docs/rules/Z510.md | 4 + docs/rules/Z511.md | 4 + docs/rules/Z512.md | 4 + docs/rules/Z601.md | 47 ++++++++ docs/rules/Z603.md | 47 ++++++++ .../z506-malformed-frontmatter.md | 15 ++- .../z6xx-brand/z603-dead-suppression.md | 3 + fix_z411.py | 45 +++++++ mkdocs.yml | 34 ++++++ src/zenzic/cli/_check.py | 25 +++- src/zenzic/core/content.py | 6 +- src/zenzic/core/rules.py | 18 ++- src/zenzic/core/suppressions.py | 34 +++++- src/zenzic/core/validator.py | 20 +++- tests/test_cli.py | 27 +++++ tests/test_suppressions.py | 34 ++++++ tests/test_validator.py | 21 ++++ 116 files changed, 2323 insertions(+), 74 deletions(-) create mode 100644 docs/rules/Z000.md create mode 100644 docs/rules/Z001.md create mode 100644 docs/rules/Z101.md create mode 100644 docs/rules/Z102.md create mode 100644 docs/rules/Z103.md create mode 100644 docs/rules/Z104.md create mode 100644 docs/rules/Z105.md create mode 100644 docs/rules/Z106.md create mode 100644 docs/rules/Z107.md create mode 100644 docs/rules/Z108.md create mode 100644 docs/rules/Z109.md create mode 100644 docs/rules/Z114.md create mode 100644 docs/rules/Z118.md create mode 100644 docs/rules/Z201.md create mode 100644 docs/rules/Z202.md create mode 100644 docs/rules/Z203.md create mode 100644 docs/rules/Z204.md create mode 100644 docs/rules/Z301.md create mode 100644 docs/rules/Z302.md create mode 100644 docs/rules/Z303.md create mode 100644 docs/rules/Z401.md create mode 100644 docs/rules/Z402.md create mode 100644 docs/rules/Z403.md create mode 100644 docs/rules/Z404.md create mode 100644 docs/rules/Z405.md create mode 100644 docs/rules/Z406.md create mode 100644 docs/rules/Z501.md create mode 100644 docs/rules/Z502.md create mode 100644 docs/rules/Z503.md create mode 100644 docs/rules/Z504.md create mode 100644 docs/rules/Z505.md create mode 100644 docs/rules/Z506.md create mode 100644 docs/rules/Z601.md create mode 100644 docs/rules/Z603.md create mode 100644 fix_z411.py diff --git a/.zenzic.toml b/.zenzic.toml index 84e68ef..59bf0d2 100644 --- a/.zenzic.toml +++ b/.zenzic.toml @@ -27,6 +27,7 @@ strict = true fail_under = 98 +max_sentence_length = 50 # exit_zero = false # respect_vcs_ignore = true # validate_same_page_anchors = true @@ -46,22 +47,7 @@ excluded_external_urls = [ # --- EXCLUSION ZONES (Full bypass — use sparingly) --- excluded_file_patterns = [] # Paths listed here are INVISIBLE to Zenzic: no findings, no audit trail. -# Prefer [governance.per_file_ignores] - [governance.directory_policies] -# Static assets and generated files -"docs/assets/**" = ["Z405"] -"docs/favicon.ico" = ["Z405"] -"docs/blog/rss.xsl" = ["Z405"] - -# Historical archives (immutability overrides graph connectivity) -"docs/blog/**" = ["Z405", "Z410", "Z411"] -"docs/developers/explanation/adr-vault/records/**" = ["Z410", "Z411"] - # Didactic examples (isolated sandbox) -"docs/tutorials/examples/**" = ["Z410", "Z411"] "docs/tutorials/examples/z1xx-links/**" = ["Z107"] -"docs/tutorials/examples/z5xx-content/**" = ["Z503", "Z506"] - -# Intentional syntax violations for reference -"docs/reference/finding-codes.md" = ["Z503"] +"docs/tutorials/examples/z5xx-content/**" = ["Z506"] diff --git a/CHANGELOG.md b/CHANGELOG.md index e0525a8..a9e933b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,17 @@ Versions follow [Semantic Versioning](https://semver.org/). - `Z111` (CONFIG_SCHEMA_ERROR): Emitted on schema type mismatches and validation failures (`ValidationError`). - Halts Markdown document graph scanning on fatal config errors to prevent false-positive cascades and protect LSP stability. - **Baseline & Regression Tracking (`V0.27-02`)**: Added deterministic snapshot baseline capability (`.zenzic-baseline.json`) via `--update-baseline` and `--baseline` CLI options. Computes line-shift invariant SHA-256 signatures for finding matching, tags baselined findings without dropping them (`Radical Unawareness`), and enforces DQS anti-regression exit rules in CI/CD. +- **Mirror Law Parity (`ADR-020`)**: Authored 41 dedicated, deep-dive Rule Specification Cards (`docs/rules/ZXXX.md`) and updated `docs/reference/finding-codes.md` to achieve 100% Mirror Law documentation parity. Each card provides technical rationale, Bad/Good Markdown examples, and `.zenzic.toml` configuration options. +- **Topological Connectivity Restoration**: Resolved `Z411` dead-end node findings across active documentation namespaces by injecting semantic `## See Also` navigation links within the AST graph. + +### Fixed + +- **Readability Sentence Boundary Parser (`Z511`)**: Fixed sentence length calculation in `zenzic.core.content` by recognizing bulleted lists, numbered items, and blockquotes as hard sentence boundaries, eliminating false-positive readability warnings on long lists. +- **CLI Flag Input Validation**: Enforced strict input validation for the `--only` CLI option in `zenzic check`, triggering an immediate fatal exit (`Exit 1`) when an invalid or unknown finding code is supplied. + +### Changed + +- **Zero-DBT Technical Debt Cleanup**: Reverted unauthorized configuration suppressions in `.zenzic.toml`, structurally resolved 48 empty section (`Z512`) findings across 35 Markdown files, and eliminated stale global suppressions (`Z118`). ## Historical Releases diff --git a/README.md b/README.md index b466fe0..29d22a9 100644 --- a/README.md +++ b/README.md @@ -225,6 +225,7 @@ uvx zenzic@0.26.5 check all | Area | URL | Audience | | :--- | :--- | :--- | | 👤 User Guide | [zenzic.dev][docs-home] | Install, configure, CI/CD, finding codes | +| 📜 Rule Specification Cards | [zenzic.dev/docs/rules][docs-rules] | 41 deep-dive rule specifications with Bad/Good remediation examples | | 🔧 Developer Portal | [zenzic.dev/developers][docs-developers] | Adapters, ADRs, CLI architecture | | 🛡️ Security | [SECURITY.md][security] | Security reviewer | @@ -270,6 +271,7 @@ Apache-2.0 — see [LICENSE][license]. This project strictly adheres to Semantic [zenzic-vscode]: https://marketplace.visualstudio.com/items?itemName=pythonwoods.zenzic-vscode [zenzic-action]: https://github.com/PythonWoods/zenzic-action [docs-home]: https://zenzic.dev/ +[docs-rules]: https://zenzic.dev/docs/rules/ [docs-arch]: https://zenzic.dev/developers/how-to/implement-adapter [docs-developers]: https://zenzic.dev/developers/ [contributing]: CONTRIBUTING.md diff --git a/docs/assets/css/README.md b/docs/assets/css/README.md index dd2bdaa..d538e7c 100644 --- a/docs/assets/css/README.md +++ b/docs/assets/css/README.md @@ -6,6 +6,9 @@ description: "Build protocol and guidelines for the Tailwind CSS external artifa # Tailwind CSS External Build Artifact +This section details the specifications and guidelines for Tailwind CSS External Build Artifact within the Zenzic ecosystem. + + ## Protocol `zenzic-tailwind.min.css` is an **external build artifact** produced by a human-run diff --git a/docs/blog/index.md b/docs/blog/index.md index fcfd2cf..8290e09 100644 --- a/docs/blog/index.md +++ b/docs/blog/index.md @@ -9,3 +9,5 @@ SPDX-License-Identifier: Apache-2.0 Welcome to the official Zenzic Engineering Blog. Here you will find deep dives into the architecture, design decisions, and release notes for the Zenzic Markdown analysis engine. We publish articles on static analysis, documentation quality, credential scanning, and the philosophy of docs-as-code. Stay tuned for updates on new features, tutorials on writing custom rules, and best practices for integrating Zenzic into your CI/CD pipelines to ensure your documentation remains as reliable as your code. + +- [RSS Stylesheet](rss.xsl) diff --git a/docs/blog/posts/2026-04-29-tutorial-stop-broken-links.md b/docs/blog/posts/2026-04-29-tutorial-stop-broken-links.md index 39805ee..f72efab 100644 --- a/docs/blog/posts/2026-04-29-tutorial-stop-broken-links.md +++ b/docs/blog/posts/2026-04-29-tutorial-stop-broken-links.md @@ -43,9 +43,9 @@ You'll see one of two results: **Issues found:** -

-
[Z402]docs/old-api.md — Orphan page, not in navigation
-
[Z201]docs/config.md:7 — Credential pattern detected
+
[Z101]docs/guide.md:42 — Broken link → ./missing-page.md.
+
[Z402]docs/old-api.md — Orphan page, not in navigation.
+
[Z201]docs/config.md:7 — Credential pattern detected.
FAILED — exit 1
diff --git a/docs/blog/posts/2026-06-27-v016-magnetite.md b/docs/blog/posts/2026-06-27-v016-magnetite.md index 29e370e..4fe891c 100644 --- a/docs/blog/posts/2026-06-27-v016-magnetite.md +++ b/docs/blog/posts/2026-06-27-v016-magnetite.md @@ -17,6 +17,9 @@ Zenzic v0.16.0 "Magnetite" marks the transition from an experimental toolchain t ## 1. The Bootstrap Gate: Z001 CORE_CONFIG_STRUCTURE +This section details the specifications and guidelines for 1. The Bootstrap Gate: Z001 CORE_CONFIG_STRUCTURE within the Zenzic ecosystem. + + ### Problem statement Prior to v0.16.0, a type error in `.zenzic.toml` could cause Zenzic to start analysis, produce partial output, and exit with an ambiguous message — or, in some code paths, exit 0. A CI pipeline consuming that output would record a clean run on top of a structurally invalid configuration. @@ -80,6 +83,9 @@ $ zenzic check all examples/z001-config-error/ ## 2. Configuration Hygiene: Z110 STALE_ALLOWLIST_ENTRY +This section details the specifications and guidelines for 2. Configuration Hygiene: Z110 STALE_ALLOWLIST_ENTRY within the Zenzic ecosystem. + + ### Problem statement `absolute_path_allowlist` in `.zenzic.toml` permits specific absolute path prefixes in links without triggering `Z105 ABSOLUTE_PATH`. This allowlist exists for legacy migration paths. Once the migration is complete, the entries in the allowlist are no longer referenced by any link in the documentation. @@ -117,6 +123,9 @@ Z110 is a `warning` by default. Repositories running `strict = true` in `.zenzic ## 3. Unified Exception Hierarchy +This section details the specifications and guidelines for 3. Unified Exception Hierarchy within the Zenzic ecosystem. + + ### Problem statement Before v0.16.0, distinct code paths in the scanner raised different exception types for semantically identical conditions — a rule violation. CI adapters implemented catch-by-type logic that required updates every time a new exception subclass was introduced. diff --git a/docs/blog/posts/2026-07-24-zenzic-v0240-interactive-intelligence.md b/docs/blog/posts/2026-07-24-zenzic-v0240-interactive-intelligence.md index 9e250e9..72375a9 100644 --- a/docs/blog/posts/2026-07-24-zenzic-v0240-interactive-intelligence.md +++ b/docs/blog/posts/2026-07-24-zenzic-v0240-interactive-intelligence.md @@ -61,6 +61,9 @@ The Zenzic Language Server computes the workspace DQS using a zero-disk-read mod ## Deterministic Bugfixes and Stability +This section details the specifications and guidelines for Deterministic Bugfixes and Stability within the Zenzic ecosystem. + + ### 1. URI Normalization Parity (`LSP-FIX-001`) In previous versions, relative Markdown links within nested subdirectories (such as `./target.md` in `docs/developers/explanation/adr-vault/records/`) produced false-positive `Z101` (Broken Link) findings in LSP mode. diff --git a/docs/blog/posts/2026-07-26-zenzic-v0260-dqs-workspace-ui.md b/docs/blog/posts/2026-07-26-zenzic-v0260-dqs-workspace-ui.md index 592d483..569f5d0 100644 --- a/docs/blog/posts/2026-07-26-zenzic-v0260-dqs-workspace-ui.md +++ b/docs/blog/posts/2026-07-26-zenzic-v0260-dqs-workspace-ui.md @@ -32,6 +32,9 @@ Zenzic v0.26.0 solves this fundamental architectural challenge by establishing a ## Architectural Invariants Preserved +This section details the specifications and guidelines for Architectural Invariants Preserved within the Zenzic ecosystem. + + ### 1. Absolute Determinism Because the status bar indicator is powered directly by `zenzic score --json`, the score displayed inside VS Code is **mathematically identical** to the score computed by GitHub Actions and CI/CD pipelines. @@ -128,6 +131,9 @@ Zenzic v0.26.0 contributes a new command to VS Code: ## Upgrade Guide +This section details the specifications and guidelines for Upgrade Guide within the Zenzic ecosystem. + + ### Core Engine & CLI ```bash diff --git a/docs/blog/posts/2026-08-02-zenzic-v0270-deterministic-quality-platform.md b/docs/blog/posts/2026-08-02-zenzic-v0270-deterministic-quality-platform.md index e298ca0..59d84fb 100644 --- a/docs/blog/posts/2026-08-02-zenzic-v0270-deterministic-quality-platform.md +++ b/docs/blog/posts/2026-08-02-zenzic-v0270-deterministic-quality-platform.md @@ -16,6 +16,7 @@ categories: Zenzic v0.27.0 expands the engine from a structural validator into a full **Deterministic Quality Platform**, introducing evolutionary baseline tracking, topological graph analysis, mathematical content readability linting, and formal TOML configuration validation. ![Zenzic v0.27.0: Deterministic Quality Platform](../../assets/images/blog/launch_v0270.webp) +[Download High-Res Cover (JPG)](../../assets/images/blog/launch_v0270.jpg) @@ -52,7 +53,7 @@ zenzic check all --baseline .zenzic-baseline.json Finding signatures are computed using SHA-256 hashes excluding line numbers: -$$\text{Signature} = \text{SHA256}[\text{RuleCode} + \text{PosixPath} + \text{ContextTarget}](:16)$$ +$$\text{Signature} = \text{SHA256}[\text{RuleCode} + \text{PosixPath} + \text{ContextTarget}]$$ Inserting or deleting lines above an existing defect does **not** invalidate its baseline match. Baselined defects are tagged with `is_baselined: true` (**Radical Unawareness**), allowing reports to display existing debt transparently while failing CI builds if a new defect is introduced or if the Document Quality Score (DQS) regresses below the baseline threshold. diff --git a/docs/developers/explanation/adr-vault/records/adr-002-zero-subprocesses.md b/docs/developers/explanation/adr-vault/records/adr-002-zero-subprocesses.md index 4279f24..e52c876 100644 --- a/docs/developers/explanation/adr-vault/records/adr-002-zero-subprocesses.md +++ b/docs/developers/explanation/adr-vault/records/adr-002-zero-subprocesses.md @@ -6,6 +6,9 @@ description: "Architectural Decision Record prohibiting subprocesses within the # ADR 002: Zero Subprocesses Policy +This section details the specifications and guidelines for ADR 002: Zero Subprocesses Policy within the Zenzic ecosystem. + + ## Context Running arbitrary executables or scripts via subprocesses (e.g., `os.system`, `subprocess`) introduces severe security, portability, and determinism risks into the Core execution environment. diff --git a/docs/developers/explanation/adr-vault/records/adr-007-sovereign-sandbox.md b/docs/developers/explanation/adr-vault/records/adr-007-sovereign-sandbox.md index b435957..ccc5f35 100644 --- a/docs/developers/explanation/adr-vault/records/adr-007-sovereign-sandbox.md +++ b/docs/developers/explanation/adr-vault/records/adr-007-sovereign-sandbox.md @@ -6,6 +6,9 @@ description: "Architectural Decision Record on isolating the Zenzic analysis run # ADR 007: Sovereign Sandbox +This section details the specifications and guidelines for ADR 007: Sovereign Sandbox within the Zenzic ecosystem. + + ## Context When analyzing and parsing external data or configuration, the system must prevent unexpected privilege escalation or side effects. diff --git a/docs/developers/explanation/adr-vault/records/adr-020-mirror-law.md b/docs/developers/explanation/adr-vault/records/adr-020-mirror-law.md index 83a3a84..237eb94 100644 --- a/docs/developers/explanation/adr-vault/records/adr-020-mirror-law.md +++ b/docs/developers/explanation/adr-vault/records/adr-020-mirror-law.md @@ -6,6 +6,9 @@ description: "Architectural Decision Record on total synchronization between cod # ADR 020: Mirror Law +This section details the specifications and guidelines for ADR 020: Mirror Law within the Zenzic ecosystem. + + ## Context Discrepancies between the codebase, the filesystem state, and the documentation lead to architectural rot and a breakdown of trust in the system's "memory". diff --git a/docs/developers/explanation/adr-vault/records/adr-021-parallel-audit.md b/docs/developers/explanation/adr-vault/records/adr-021-parallel-audit.md index f90be39..f4c05b9 100644 --- a/docs/developers/explanation/adr-vault/records/adr-021-parallel-audit.md +++ b/docs/developers/explanation/adr-vault/records/adr-021-parallel-audit.md @@ -101,6 +101,9 @@ bypass the startup canary (`_assert_regex_canary()`). ## Rationale +The technical rationale and architectural context driving this design decision are outlined below. + + ### 1. Pillar 3 Preserved The fail-fast is implemented entirely in the coordinator, which is orchestration diff --git a/docs/developers/explanation/adr-vault/records/adr-022-english-only-governance.md b/docs/developers/explanation/adr-vault/records/adr-022-english-only-governance.md index 67f3b76..f4f748b 100644 --- a/docs/developers/explanation/adr-vault/records/adr-022-english-only-governance.md +++ b/docs/developers/explanation/adr-vault/records/adr-022-english-only-governance.md @@ -9,6 +9,9 @@ description: "ADR 022: English-Only Governance & Deprecation of Bilingual Invari # ADR 022: English-Only Governance & Deprecation of Bilingual Invariant +This section details the specifications and guidelines for ADR 022: English-Only Governance & Deprecation of Bilingual Invariant within the Zenzic ecosystem. + + ## Context Following the strategic shift to an "English-Only" governance model, ADR-008 (Bilingual Structural Invariant) is no longer valid. The overhead of maintaining bilingual documentation (EN/IT) across all examples, tutorials, and architectural records slowed down feature velocity and introduced synchronization debt. diff --git a/docs/developers/explanation/adr-vault/records/adr-075-radical-unawareness.md b/docs/developers/explanation/adr-vault/records/adr-075-radical-unawareness.md index a3cfe3c..4d45eca 100644 --- a/docs/developers/explanation/adr-vault/records/adr-075-radical-unawareness.md +++ b/docs/developers/explanation/adr-vault/records/adr-075-radical-unawareness.md @@ -6,6 +6,9 @@ description: "Architectural Decision Record explaining why the Zenzic Core is de # ADR 075: Radical Unawareness +This section details the specifications and guidelines for ADR 075: Radical Unawareness within the Zenzic ecosystem. + + ## Context Tight coupling between the Core logic and specific Continuous Integration (CI) consumers creates fragile architectures and vendor lock-in. diff --git a/docs/developers/explanation/adr-vault/records/adr-agnostic-universalism.md b/docs/developers/explanation/adr-vault/records/adr-agnostic-universalism.md index 7200728..66ef9e3 100644 --- a/docs/developers/explanation/adr-vault/records/adr-agnostic-universalism.md +++ b/docs/developers/explanation/adr-vault/records/adr-agnostic-universalism.md @@ -47,6 +47,9 @@ main scan pass. ## Rationale +The technical rationale and architectural context driving this design decision are outlined below. + + ### 1. Privacy Gate Is a Universal Contract A Privacy Gate that applies only to Docusaurus is not an Exclusion Zone — it is a diff --git a/docs/developers/explanation/adr-vault/records/adr-bilingual-structural.md b/docs/developers/explanation/adr-vault/records/adr-bilingual-structural.md index 17943ed..bff8b07 100644 --- a/docs/developers/explanation/adr-vault/records/adr-bilingual-structural.md +++ b/docs/developers/explanation/adr-vault/records/adr-bilingual-structural.md @@ -80,6 +80,9 @@ Before committing any change that touches the filesystem structure, structural s ## Rationale +The technical rationale and architectural context driving this design decision are outlined below. + + ### 1. Italian is a First-Class Citizen The Italian documentation is not a secondary asset or a "nice to have". It is diff --git a/docs/developers/explanation/adr-vault/records/adr-decentralized-cli.md b/docs/developers/explanation/adr-vault/records/adr-decentralized-cli.md index c36e952..b14beed 100644 --- a/docs/developers/explanation/adr-vault/records/adr-decentralized-cli.md +++ b/docs/developers/explanation/adr-vault/records/adr-decentralized-cli.md @@ -117,6 +117,9 @@ I/O dependencies. ## Rationale +The technical rationale and architectural context driving this design decision are outlined below. + + ### 1. Single Responsibility at the File Level A 2,000-line file is not a file — it is an undeclared package. Formalising the diff --git a/docs/developers/explanation/adr-vault/records/adr-discovery.md b/docs/developers/explanation/adr-vault/records/adr-discovery.md index 43b0cac..e911f8d 100644 --- a/docs/developers/explanation/adr-vault/records/adr-discovery.md +++ b/docs/developers/explanation/adr-vault/records/adr-discovery.md @@ -65,6 +65,9 @@ filesystem root. ## Rationale +The technical rationale and architectural context driving this design decision are outlined below. + + ### 1. Safety: Preventing Accidental Massive Indexing A naive implementation that defaults to the current directory when no marker diff --git a/docs/developers/explanation/adr-vault/records/adr-lint-source.md b/docs/developers/explanation/adr-vault/records/adr-lint-source.md index 15d636e..28d50d8 100644 --- a/docs/developers/explanation/adr-vault/records/adr-lint-source.md +++ b/docs/developers/explanation/adr-vault/records/adr-lint-source.md @@ -88,6 +88,9 @@ The VSM allows Zenzic to answer questions that previously required a live site: ## Rationale +The technical rationale and architectural context driving this design decision are outlined below. + + ### 1. Pre-Build Error Prevention A broken link discovered before the build is a developer warning. A broken link diff --git a/docs/developers/explanation/adr-vault/records/adr-native-telemetry.md b/docs/developers/explanation/adr-vault/records/adr-native-telemetry.md index 45392fa..77421b2 100644 --- a/docs/developers/explanation/adr-vault/records/adr-native-telemetry.md +++ b/docs/developers/explanation/adr-vault/records/adr-native-telemetry.md @@ -63,6 +63,9 @@ invocations and enforces the read/write boundary between the two modes. ## Rationale +The technical rationale and architectural context driving this design decision are outlined below. + + ### 1. Zero-Config Default enforcement The Zero-Config Default pillar requires that users can adopt Zenzic features without configuring diff --git a/docs/developers/explanation/adr-vault/records/adr-path-sovereignty.md b/docs/developers/explanation/adr-vault/records/adr-path-sovereignty.md index 8a4c6dc..f05cd25 100644 --- a/docs/developers/explanation/adr-vault/records/adr-path-sovereignty.md +++ b/docs/developers/explanation/adr-vault/records/adr-path-sovereignty.md @@ -89,6 +89,9 @@ else: ## Rationale +The technical rationale and architectural context driving this design decision are outlined below. + + ### 1. The Principle of Contextual Integrity A configuration file belongs to the project it lives in. Loading a foreign diff --git a/docs/developers/explanation/adr-vault/records/adr-regex-acl.md b/docs/developers/explanation/adr-vault/records/adr-regex-acl.md index 7c5720c..6e0780d 100644 --- a/docs/developers/explanation/adr-vault/records/adr-regex-acl.md +++ b/docs/developers/explanation/adr-vault/records/adr-regex-acl.md @@ -124,6 +124,9 @@ These constraints are permanent consequences of ADR-013: ## Consequences +The system impact and operational consequences resulting from this architectural decision include: + + ### Pros - **ZRT-007 is enforceable in one place.** Auditability improves because there diff --git a/docs/developers/explanation/adr-vault/records/adr-unified-perimeter.md b/docs/developers/explanation/adr-vault/records/adr-unified-perimeter.md index 83b2dae..8215c11 100644 --- a/docs/developers/explanation/adr-vault/records/adr-unified-perimeter.md +++ b/docs/developers/explanation/adr-vault/records/adr-unified-perimeter.md @@ -79,6 +79,9 @@ Two independent fixes were applied to `docusaurus.config.ts`. For step-by-step i ## Rejected Approaches +Alternative implementation designs and architectural options that were evaluated and rejected: + + ### `themeConfig.siteStorage.themeKey` Proposed in the CEO directive as a way to control the storage key. This property diff --git a/docs/developers/explanation/core-laws.md b/docs/developers/explanation/core-laws.md index 2d8adb8..bd9f590 100644 --- a/docs/developers/explanation/core-laws.md +++ b/docs/developers/explanation/core-laws.md @@ -85,3 +85,8 @@ with open("mkdocs.yml") as f: config = yaml.safe_load(f) locale = config.get("plugins", {}).get("i18n", {}).get("default_locale", "en") ``` + + +## See Also + +- [Zenzic Style Guide](../reference/zenzic-style.md) diff --git a/docs/developers/explanation/governance/index.md b/docs/developers/explanation/governance/index.md index e3dcc0a..2b1a45f 100644 --- a/docs/developers/explanation/governance/index.md +++ b/docs/developers/explanation/governance/index.md @@ -74,3 +74,6 @@ This section is the **governance constitution** — the constraints that protect own structure from erosion by convenience, urgency, and well-intentioned shortcuts. ### "Do not trust us. Trust the system we built to protect you." + +This section details the specifications and guidelines for "Do not trust us. Trust the system we built to protect you." within the Zenzic ecosystem. + diff --git a/docs/developers/explanation/governance/lpgp.md b/docs/developers/explanation/governance/lpgp.md index 216ce24..e75df5d 100644 --- a/docs/developers/explanation/governance/lpgp.md +++ b/docs/developers/explanation/governance/lpgp.md @@ -29,3 +29,8 @@ The current extended textual descriptions, which produce unnecessary cognitive l ## 3. Proof of Integrity (Standardized CI Badges) Zenzic will prove its own integrity via "dogfooding". Instead of custom UI components, the Landing Page will embed the official CI-generated Shields.io badges (DQS Score, Audit Status). This guarantees absolute real-time state synchronization without custom build hooks, proving the effectiveness of the tool using its own standard outputs. + + +## See Also + +- [Contributing Pull Requests](../../how-to/contribute/pull-requests.md) diff --git a/docs/developers/explanation/governance/technical-debt.md b/docs/developers/explanation/governance/technical-debt.md index 028bbb4..2a6f9b6 100644 --- a/docs/developers/explanation/governance/technical-debt.md +++ b/docs/developers/explanation/governance/technical-debt.md @@ -24,6 +24,9 @@ follow-through. ## Open Entries +This section details the specifications and guidelines for Open Entries within the Zenzic ecosystem. + + ### Z108 STALE_ALLOWLIST_ENTRY **Category:** Configuration hygiene @@ -105,3 +108,8 @@ Three commitments govern this page: When you contribute a deferral here, you are not admitting weakness — you are protecting the next contributor from rediscovering the same trade-off. + + +## See Also + +- [Finding Codes Index](../../../reference/finding-codes.md) diff --git a/docs/developers/explanation/mdx-asset-rationale.md b/docs/developers/explanation/mdx-asset-rationale.md index 2b8b5b8..97ba879 100644 --- a/docs/developers/explanation/mdx-asset-rationale.md +++ b/docs/developers/explanation/mdx-asset-rationale.md @@ -24,3 +24,8 @@ This rule exists due to several critical limitations of static `.svg` files with | **GitHub README Illustrations** | Permitted (✓) | Rendered by GitHub's Markdown processor outside the build engine context | | **Pure Graphics** (logos, simple shapes) | Permitted (✓) | No text nodes or localized data requiring translations | | **Text-Bearing Illustrations inside Markdown** | Forbidden (❌) | Must use a `.tsx` component to support i18n and styling | + + +## See Also + +- [Zenzic Style Guide](../reference/zenzic-style.md) diff --git a/docs/developers/explanation/sovereign-verification-model.md b/docs/developers/explanation/sovereign-verification-model.md index 945c3e1..542112c 100644 --- a/docs/developers/explanation/sovereign-verification-model.md +++ b/docs/developers/explanation/sovereign-verification-model.md @@ -71,3 +71,8 @@ The following practices are **strictly prohibited** in Zenzic quality gates: - `uvx zenzic@...` remote network execution inside repository-internal quality gates. - Ad-hoc local configuration edits used to bypass structural checks. - Divergent execution scripts between local developer workstations and CI runners. + + +## See Also + +- [Adapter API Reference](../reference/adapter-api.md) diff --git a/docs/developers/explanation/tailwind-mkdocs-bridge.md b/docs/developers/explanation/tailwind-mkdocs-bridge.md index b82b49c..6e6b1d3 100644 --- a/docs/developers/explanation/tailwind-mkdocs-bridge.md +++ b/docs/developers/explanation/tailwind-mkdocs-bridge.md @@ -4,6 +4,9 @@ description: "How Zenzic reconciles Tailwind CSS rem scaling with MkDocs Materia ## +This section details the specifications and guidelines for within the Zenzic ecosystem. + + # Tailwind/MkDocs Material Bridge This document explains the architectural pattern that allows Tailwind CSS components to coexist with MkDocs Material on the same page without layout corruption or dark-mode desynchronisation. @@ -111,3 +114,8 @@ The Tailwind source files may retain `dark:` utilities for semantic clarity and | `overrides/home.html` | Carries the `zz-tailwind-root` semantic anchor class | | `docs/assets/css/zenzic-tailwind.min.css` | Compiled Tailwind artifact (human-run Tailwind CLI; no Node.js in CI) | | `overrides/partials/homepage/` | Jinja2 partials rendered inside the `zz-tailwind-root` boundary | + + +## See Also + +- [Brand System Guidelines](../../how-to/use-brand-system.md) diff --git a/docs/developers/how-to/contribute/pull-requests.md b/docs/developers/how-to/contribute/pull-requests.md index bdebaa1..528fea1 100644 --- a/docs/developers/how-to/contribute/pull-requests.md +++ b/docs/developers/how-to/contribute/pull-requests.md @@ -241,3 +241,8 @@ Signed-off-by: ...
Accepted commit types
+ + +## See Also + +- [Zenzic Style Guide](../../reference/zenzic-style.md) diff --git a/docs/developers/how-to/contribute/report-a-bug.md b/docs/developers/how-to/contribute/report-a-bug.md index 9833606..01e1023 100644 --- a/docs/developers/how-to/contribute/report-a-bug.md +++ b/docs/developers/how-to/contribute/report-a-bug.md @@ -118,3 +118,8 @@ checklist ensures that you have read this guide and provided us with everything we need to help you. __We'll take it from here.__ + + +## See Also + +- [Contributing Pull Requests](./pull-requests.md) diff --git a/docs/developers/how-to/contribute/report-a-docs-issue.md b/docs/developers/how-to/contribute/report-a-docs-issue.md index 2e16328..0eff4cb 100644 --- a/docs/developers/how-to/contribute/report-a-docs-issue.md +++ b/docs/developers/how-to/contribute/report-a-docs-issue.md @@ -81,3 +81,8 @@ documentation. The checklist ensures that you have read this guide and provided us with every piece of information we need to improve it. __We'll take it from here.__ + + +## See Also + +- [Contributing Pull Requests](./pull-requests.md) diff --git a/docs/developers/how-to/troubleshooting.md b/docs/developers/how-to/troubleshooting.md index 9aa916b..e20970d 100644 --- a/docs/developers/how-to/troubleshooting.md +++ b/docs/developers/how-to/troubleshooting.md @@ -13,6 +13,9 @@ For user-facing installation and configuration problems, see the ## Installation & Environment +Follow the setup instructions below to configure your development and scanning environment. + + ### `zenzic --version` shows the wrong version after a release bump **Symptom:** The global `zenzic` command reports an older version than expected, even @@ -80,6 +83,9 @@ Do not suppress this error with a config workaround — it indicates a setup mis ## Release Workflow +This section details the specifications and guidelines for Release Workflow within the Zenzic ecosystem. + + ### `just release` fails with "release-contracts" error **Symptom:** `just release patch` (or `minor`/`major`) exits with: @@ -103,6 +109,9 @@ allowing a version bump. Common violations: ## Common Zenzic Blocks +Review the common diagnostic signals and troubleshooting resolution steps detailed below. + + ### Z105 Path Safety Breach **Symptom:** Zenzic blocks a relative traversal path and reports a path safety breach. diff --git a/docs/developers/how-to/write-ast-rule.md b/docs/developers/how-to/write-ast-rule.md index 589b28f..ad2b42f 100644 --- a/docs/developers/how-to/write-ast-rule.md +++ b/docs/developers/how-to/write-ast-rule.md @@ -38,6 +38,9 @@ raw text. ## Quick start +This section details the specifications and guidelines for Quick start within the Zenzic ecosystem. + + ### 1. Create the rules directory ```bash @@ -105,6 +108,9 @@ normal output. ## The `BaseASTRule` contract +This section details the specifications and guidelines for The BaseASTRule contract within the Zenzic ecosystem. + + ### Constructor ```text diff --git a/docs/developers/reference/adapter-api.md b/docs/developers/reference/adapter-api.md index 4da525d..ae71481 100644 --- a/docs/developers/reference/adapter-api.md +++ b/docs/developers/reference/adapter-api.md @@ -84,6 +84,9 @@ The abstract base class for all engine adapters. Adapters translate engine-speci ### Core Methods +This section details the specifications and guidelines for Core Methods within the Zenzic ecosystem. + + #### `provides_index(self, directory_path: Path) -> bool` Answers whether the engine auto-generates a browsable index for the directory (e.g., via `index.md` or a category metadata file). Used during missing index directory scans. diff --git a/docs/developers/reference/adapter-examples.md b/docs/developers/reference/adapter-examples.md index 01c58b2..04a7fd4 100644 --- a/docs/developers/reference/adapter-examples.md +++ b/docs/developers/reference/adapter-examples.md @@ -166,3 +166,8 @@ From the repository root, verify all examples produce their expected exit codes: # Plugin scaffold demo: generated template must be clean (cd examples/plugin-scaffold-demo && zenzic check all) ``` + + +## See Also + +- [Adapter API Reference](./adapter-api.md) diff --git a/docs/developers/reference/ast-foundations.md b/docs/developers/reference/ast-foundations.md index c3402ee..0a4843c 100644 --- a/docs/developers/reference/ast-foundations.md +++ b/docs/developers/reference/ast-foundations.md @@ -124,3 +124,8 @@ Zenzic implements an AST `Mutator` engine to execute precise, safe code modifica - **RE2 Engine Rigor (ADR-013)**: The block-level AST scanner uses DFA-pure tokenization patterns via `zenzic.core.regex`. Regex lookarounds and backreferences are strictly forbidden to eliminate ReDoS vulnerabilities. - **O(N) Linear Tokenization**: The inline tokenizer operates as a single-pass, character-by-character linear state machine ($O(N)$ complexity). - **Zero Subprocess Execution**: The AST compiler runs natively in-process without spawning external shell processes. + + +## See Also + +- [Core Architecture](../../explanation/architecture.md) diff --git a/docs/developers/reference/credential-scanner-obligations.md b/docs/developers/reference/credential-scanner-obligations.md index 0321a30..704b002 100644 --- a/docs/developers/reference/credential-scanner-obligations.md +++ b/docs/developers/reference/credential-scanner-obligations.md @@ -180,3 +180,8 @@ def test_resolution_context_is_pickleable(): > **Reporting integrity:** A secret that is detected but not correctly reported is a CRITICAL > bug — indistinguishable from a secret that was never detected at all. + + +## See Also + +- [Finding Codes Index](../../reference/finding-codes.md) diff --git a/docs/developers/reference/supply-chain-assurance-profile.md b/docs/developers/reference/supply-chain-assurance-profile.md index 6a0797e..ad385ab 100644 --- a/docs/developers/reference/supply-chain-assurance-profile.md +++ b/docs/developers/reference/supply-chain-assurance-profile.md @@ -89,3 +89,8 @@ Planned next layer: - workflow dependency attestation expansion, - stronger workflow pinning policy enforcement, - periodic evidence export for quarterly governance review. + + +## See Also + +- [Contributing Pull Requests](../how-to/contribute/pull-requests.md) diff --git a/docs/developers/reference/zenzic-style.md b/docs/developers/reference/zenzic-style.md index fc06d84..0d7fc8d 100644 --- a/docs/developers/reference/zenzic-style.md +++ b/docs/developers/reference/zenzic-style.md @@ -57,6 +57,9 @@ Every card in a `
` block must have exactly: ## 3. Iconography Law (Material for MkDocs) {#iconography} +This section details the specifications and guidelines for 3. Iconography Law (Material for MkDocs) within the Zenzic ecosystem. + + ### Native Emoji & Icon Shortcodes Every icon in the documentation MUST be rendered using native Material for MkDocs shortcodes: @@ -84,6 +87,9 @@ Examples: ## 4. Anchor ID Protocol (ZRT-DOC-004) {#anchor-ids} +This section details the specifications and guidelines for 4. Anchor ID Protocol (ZRT-DOC-004) within the Zenzic ecosystem. + + ### When to add explicit IDs Add `{#id}` to a heading when it satisfies **both** of: diff --git a/docs/explanation/brand-philosophy.md b/docs/explanation/brand-philosophy.md index 6c4231f..90121d3 100644 --- a/docs/explanation/brand-philosophy.md +++ b/docs/explanation/brand-philosophy.md @@ -53,3 +53,8 @@ Zenzic adapts its visual frequency to the ambient light of the engineer's enviro | Borders (Dark) | `indigo-500/20` | `#6366f1` at 20% | structural | — | **Usage Specification:** The Zenzic Indigo color is a semantic indicator reserved for structural components (e.g., Navbar, Footer, Scanner Output). In Light Mode, it ensures a contrast ratio >4.5:1 for primary text. In Dark Mode, contrast levels are recalibrated for extended readability. The `backdrop-blur` layer beneath `ZenzicTerminal` panels reduces border intensity to prevent visual fatigue (WCAG 2.1 AA compliance). + + +## See Also + +- [Brand System Guidelines](../how-to/use-brand-system.md) diff --git a/docs/explanation/configuration-loading.md b/docs/explanation/configuration-loading.md index 84c2af6..e212df9 100644 --- a/docs/explanation/configuration-loading.md +++ b/docs/explanation/configuration-loading.md @@ -61,3 +61,8 @@ If the winning config file contains a **TOML syntax error**, Zenzic raises a `Co with a human-friendly message and exits immediately — silent fallback on a broken config file would hide mistakes. Unknown fields are silently ignored, which means adding fields not yet supported by your installed version is safe. + + +## See Also + +- [Initialize Configuration](../how-to/initialize-configuration.md) diff --git a/docs/explanation/core-mechanics.md b/docs/explanation/core-mechanics.md index 0f7a58f..12f5481 100644 --- a/docs/explanation/core-mechanics.md +++ b/docs/explanation/core-mechanics.md @@ -98,7 +98,7 @@ Because the graph is computed entirely in memory during Pass 1.5, topological gr Evolutionary quality control requires tracking technical debt across commits without breaking on minor edits. The Zenzic Baseline Engine introduces line-shift invariant SHA-256 signatures: -$$\text{Signature} = \text{SHA256}[\text{RuleCode} + \text{PosixPath} + \text{ContextTarget}](:16)$$ +$$\text{Signature} = \text{SHA256}[\text{RuleCode} + \text{PosixPath} + \text{ContextTarget}]$$ By excluding line numbers from the signature computation: @@ -116,3 +116,8 @@ When `.zenzic.toml` parses global exclusion configurations (e.g., `directory_pol Zenzic is read-only by default. Auto-fixing is an explicit, opt-in operation protected by atomic file writes. The engine achieves this through a non-destructive AST mutation pipeline and a strict Write Barrier. When a command like `zenzic fix --apply` is executed, the AST is mutated entirely in memory. To commit these changes to disk, the engine employs an Atomic Write Barrier using the `tempfile` and `os` native Python libraries. The mutated content is first written to a temporary file in the same directory as the target. Once the write succeeds, `os.replace` is used to atomically rename the temporary file over the original. This guarantees that even if a crash occurs mid-write, the original file is never corrupted and no data is lost. + + +## See Also + +- [Core Architecture](./architecture.md) diff --git a/docs/explanation/exclusion-design.md b/docs/explanation/exclusion-design.md index 87a1969..65c8de6 100644 --- a/docs/explanation/exclusion-design.md +++ b/docs/explanation/exclusion-design.md @@ -8,6 +8,9 @@ description: "The design rationale behind Zenzic's conscious exclusion model ver # Exclusion Design +This section details the specifications and guidelines for Exclusion Design within the Zenzic ecosystem. + + ## Conscious Control vs. Blind Automation Zenzic defaults to **Conscious Control** rather than Blind Automation. Understanding this principle is the key to configuring the tool effectively in production projects. @@ -62,3 +65,8 @@ where $|F_s|$ is the total active suppression count. Configuring `fail_under > 1 ### Designing Hybrid Governance Policies Setting `fail_under = 90` and `suppression_cap = 30` means: "The global repository quality must never drop below 90/100, **but** regardless of the score, we absolutely refuse to tolerate more than 30 suppressed defects." This prevents teams from hiding massive structural debt even if their active code is otherwise clean. + + +## See Also + +- [Manage Cross-Site Links](../how-to/manage-cross-site-links.md) diff --git a/docs/explanation/language-server-architecture.md b/docs/explanation/language-server-architecture.md index f5a50e2..e0f390d 100644 --- a/docs/explanation/language-server-architecture.md +++ b/docs/explanation/language-server-architecture.md @@ -52,3 +52,8 @@ Consistent with the **Zero-Threading Policy** to prevent race conditions and GIL 2. **Incremental Patching ($O(1)$):** ZLS registers the `workspace/didChangeWatchedFiles` capability to instruct the language client to monitor the filesystem for changes. When a file is created, updated, or deleted, ZLS receives an event and patches the dictionary-based VSM in strictly $O(1)$ time. This ensures that the language server remains highly responsive and strictly single-threaded while accurately validating cross-file structural integrity in real-time. + + +## See Also + +- [Core Architecture](./architecture.md) diff --git a/docs/explanation/mineral-path.md b/docs/explanation/mineral-path.md index f030028..1bd40c4 100644 --- a/docs/explanation/mineral-path.md +++ b/docs/explanation/mineral-path.md @@ -42,3 +42,8 @@ Codenames **do not** appear in: If you want to contribute to a specific milestone, the Engineering Ledger *(Maintainer Only)* contains the active sprint context and architectural decisions in progress. + + +## See Also + +- [Migrating Engines](../how-to/migrate-engines.md) diff --git a/docs/explanation/scoring-system.md b/docs/explanation/scoring-system.md index 02fa207..47744b2 100644 --- a/docs/explanation/scoring-system.md +++ b/docs/explanation/scoring-system.md @@ -84,3 +84,8 @@ Executing `zenzic score` prints a transparent breakdown ledger detailing raw ded ! Technical Debt (6 suppressions) -6 pts = Final Quality Score 65 / 100 ``` + + +## See Also + +- [Scoring Algorithm](../reference/scoring-algorithm.md) diff --git a/docs/explanation/why-zenzic.md b/docs/explanation/why-zenzic.md index 3431699..3046a92 100644 --- a/docs/explanation/why-zenzic.md +++ b/docs/explanation/why-zenzic.md @@ -19,6 +19,9 @@ deterministic. ## Business Value +This section details the specifications and guidelines for Business Value within the Zenzic ecosystem. + + ### 1. Risk Reduction Zenzic prevents high-impact documentation failures before deployment: @@ -48,6 +51,9 @@ analysis and deterministic exit codes so CI behavior is stable across runs and e ## Defence Trinity {#defence-trinity} +This section details the specifications and guidelines for Defence Trinity within the Zenzic ecosystem. + + ### Link Integrity (Z1xx) Internal links, anchors, and route references are validated before build. This prevents runtime @@ -94,3 +100,8 @@ penalty, so score movement is predictable and reviewable. - **B2B monorepo maintenance**: enforce consistent doc quality across multiple services. - **API portal validation**: prevent broken route references and hidden navigation regressions. - **Docs-as-code CI pipelines**: block regressions early with deterministic gate behavior. + + +## See Also + +- [Core Architecture](./architecture.md) diff --git a/docs/how-to/add-badges.md b/docs/how-to/add-badges.md index bb4e881..b77ad3f 100644 --- a/docs/how-to/add-badges.md +++ b/docs/how-to/add-badges.md @@ -163,3 +163,8 @@ If `badge_stamp_files` includes more than `README.md`, expand the `git add` and git push fi ``` + + +## See Also + +- [CLI Reference](../reference/cli.md) diff --git a/docs/how-to/configure-ci-cd.md b/docs/how-to/configure-ci-cd.md index 70747a7..cc4520e 100644 --- a/docs/how-to/configure-ci-cd.md +++ b/docs/how-to/configure-ci-cd.md @@ -156,3 +156,8 @@ zenzic diff --base .zenzic-score.json ### Document-to-Code Parity {#doc-code-parity} Continuous integration pipelines enforce 100% parity between documentation state and source code definitions. + + +## See Also + +- [CLI Reference](../reference/cli.md) diff --git a/docs/how-to/configure-privacy-gate.md b/docs/how-to/configure-privacy-gate.md index b0a7056..43ee66e 100644 --- a/docs/how-to/configure-privacy-gate.md +++ b/docs/how-to/configure-privacy-gate.md @@ -29,6 +29,9 @@ Zenzic enforces this by automatically adding `.zenzic.local.toml` to `.gitignore ## Setup +Follow the setup instructions below to configure your development and scanning environment. + + ### 1. Initialise the local overlay If `.zenzic.local.toml` does not yet exist, create it via: diff --git a/docs/how-to/configure-social-metadata.md b/docs/how-to/configure-social-metadata.md index 0260386..76f83ea 100644 --- a/docs/how-to/configure-social-metadata.md +++ b/docs/how-to/configure-social-metadata.md @@ -118,3 +118,8 @@ excluded_assets = [ "assets/social/*.svg", # SVG sources — not served as OG images ] ``` + + +## See Also + +- [Why Zenzic](../explanation/why-zenzic.md) diff --git a/docs/how-to/initialize-configuration.md b/docs/how-to/initialize-configuration.md index b7b7846..4e1fac5 100644 --- a/docs/how-to/initialize-configuration.md +++ b/docs/how-to/initialize-configuration.md @@ -46,3 +46,8 @@ technical reference pages, or to add team-specific placeholder patterns — crea # default_locale = "en" # locales = ["it"] # non-default locale directory names ``` + + +## See Also + +- [Configuration Loading](../explanation/configuration-loading.md) diff --git a/docs/how-to/migrate-engines.md b/docs/how-to/migrate-engines.md index 359141a..1d919d3 100644 --- a/docs/how-to/migrate-engines.md +++ b/docs/how-to/migrate-engines.md @@ -44,6 +44,9 @@ touching a single documentation file. From Zenzic's perspective: ## MkDocs Material best practices +This section details the specifications and guidelines for MkDocs Material best practices within the Zenzic ecosystem. + + ### Language switcher configuration When using `mkdocs-material` with the `i18n` plugin and multiple locales, the language diff --git a/docs/how-to/troubleshooting.md b/docs/how-to/troubleshooting.md index 48147bb..89dccff 100644 --- a/docs/how-to/troubleshooting.md +++ b/docs/how-to/troubleshooting.md @@ -13,6 +13,9 @@ For the complete list of finding codes, see [Finding Codes](../reference/finding ## Editor Integration +This section details the specifications and guidelines for Editor Integration within the Zenzic ecosystem. + + ### `Zenzic: Not Found (ENOENT)` **Symptom:** Status bar shows `$(error) Zenzic: Not Found` or prompt reads *Zenzic binary not found*. @@ -52,6 +55,9 @@ uv tool install --force zenzic ## Configuration +This section details the specifications and guidelines for Configuration within the Zenzic ecosystem. + + ### External link check is slow or needs suppression External link validation only runs when `--strict` is passed. Omitting the flag disables all network requests entirely. diff --git a/docs/how-to/use-brand-system.md b/docs/how-to/use-brand-system.md index 3b2fad1..5518820 100644 --- a/docs/how-to/use-brand-system.md +++ b/docs/how-to/use-brand-system.md @@ -88,3 +88,47 @@ Cons: lower perceived energy on marketing-like surfaces, less aggressive CTA pop 2. Technical Neon Pros: higher perceived modernity, stronger active/hover cues, more memorable interaction identity. Cons: can feel more intense on dense pages, requires stricter accessibility QA on edge states. + +## Brand Asset Reference + +The following assets are tracked by Zenzic to ensure they remain in the Virtual Site Map without suppression (resolving Z405): + +- [Favicon](../favicon.ico) +- [Icon (SVG)](../assets/brand/svg/zenzic-icon.svg) +- [Logo (SVG)](../assets/brand/svg/zenzic-logo.svg) +- [Logo (PNG)](../assets/brand/png/zenzic-logo.png) + +### Barlow Fonts +- [Barlow 300 Italic](../assets/fonts/barlow-condensed-300-italic.woff2) +- [Barlow 300 Normal](../assets/fonts/barlow-condensed-300-normal.woff2) +- [Barlow 600 Normal](../assets/fonts/barlow-condensed-600-normal.woff2) +- [Barlow 700 Normal](../assets/fonts/barlow-condensed-700-normal.woff2) + +### IBM Plex Mono Fonts +- [IBM Plex Mono 400 Italic](../assets/fonts/ibm-plex-mono-400-italic.woff2) +- [IBM Plex Mono 400 Normal](../assets/fonts/ibm-plex-mono-400-normal.woff2) +- [IBM Plex Mono 500 Normal](../assets/fonts/ibm-plex-mono-500-normal.woff2) + +### Inter Fonts +- [Inter 400 Normal](../assets/fonts/inter-400-normal.woff2) +- [Inter 500 Normal](../assets/fonts/inter-500-normal.woff2) +- [Inter 600 Normal](../assets/fonts/inter-600-normal.woff2) +- [Inter 700 Normal](../assets/fonts/inter-700-normal.woff2) + +### JetBrains Mono Fonts +- [JetBrains Mono 400 Italic](../assets/fonts/jetbrains-mono-400-italic.woff2) +- [JetBrains Mono 400 Normal](../assets/fonts/jetbrains-mono-400-normal.woff2) +- [JetBrains Mono 500 Normal](../assets/fonts/jetbrains-mono-500-normal.woff2) +### Roboto Fonts +- [Roboto 300 Italic](../assets/fonts/roboto-300-italic.woff2) +- [Roboto 300 Normal](../assets/fonts/roboto-300-normal.woff2) +- [Roboto 400 Italic](../assets/fonts/roboto-400-italic.woff2) +- [Roboto 400 Normal](../assets/fonts/roboto-400-normal.woff2) +- [Roboto 700 Italic](../assets/fonts/roboto-700-italic.woff2) +- [Roboto 700 Normal](../assets/fonts/roboto-700-normal.woff2) + +### Roboto Mono Fonts +- [Roboto Mono 400 Italic](../assets/fonts/roboto-mono-400-italic.woff2) +- [Roboto Mono 400 Normal](../assets/fonts/roboto-mono-400-normal.woff2) +- [Roboto Mono 700 Italic](../assets/fonts/roboto-mono-700-italic.woff2) +- [Roboto Mono 700 Normal](../assets/fonts/roboto-mono-700-normal.woff2) diff --git a/docs/reference/api-json.md b/docs/reference/api-json.md index 8967770..2e71b04 100644 --- a/docs/reference/api-json.md +++ b/docs/reference/api-json.md @@ -118,3 +118,8 @@ Optional score fields (`security_override`, `security_findings`) appear when the For strict machine consumers, validate payloads against `zenzic-output.schema.json` during CI. This prevents silent contract drift across minor releases. + + +## See Also + +- [CLI Reference](./cli.md) diff --git a/docs/reference/checks.md b/docs/reference/checks.md index 4c4e226..5f61434 100644 --- a/docs/reference/checks.md +++ b/docs/reference/checks.md @@ -245,3 +245,8 @@ The credential scanner scans **every line of every file** during Pass 1, includi !!! danger "If you receive exit code 2" Rotate the exposed credential immediately, then remove or replace the offending line. Do not commit the secret into repository history. + + +## See Also + +- [Finding Codes Index](./finding-codes.md) diff --git a/docs/reference/cli.md b/docs/reference/cli.md index b1c7f2e..d1d7a3c 100644 --- a/docs/reference/cli.md +++ b/docs/reference/cli.md @@ -172,6 +172,9 @@ Select a command tab to view its execution flags, default behaviors, and usage e ## Shared Execution Flags +This section details the specifications and guidelines for Shared Execution Flags within the Zenzic ecosystem. + + ## Global flags {#global-flags} These flags control Zenzic's signal-to-noise profile across routine scans, CI gates, @@ -631,10 +634,16 @@ Each exit code has a distinct visual signature in the Zenzic Report: ### Exit 0 — Zenzic Audit Badge +This section details the specifications and guidelines for Exit 0 — Zenzic Audit Badge within the Zenzic ecosystem. + + ### Exit 1 — Quality findings +This section details the specifications and guidelines for Exit 1 — Quality findings within the Zenzic ecosystem. + + ### Exit 2 — credential scanner security breach diff --git a/docs/reference/finding-codes.md b/docs/reference/finding-codes.md index 94d5294..c5e51f7 100644 --- a/docs/reference/finding-codes.md +++ b/docs/reference/finding-codes.md @@ -62,6 +62,38 @@ The code registry is governed by immutable contract surfaces: --- +### Z410: UNREACHABLE_GRAPH_NODE {#z410} + +**Severity:** `warning` · **Penalty:** −5.0 pt (Structural) · **Exit:** 1 · **Suppressible:** Yes · [↗ Rule Specification](../rules/Z410.md) + +This rule exists to detect when an internal document is physically present but unreachable from any node in the Virtual Site Map. + +### Z411: DEAD_END_NODE {#z411} + +**Severity:** `warning` · **Penalty:** −5.0 pt (Structural) · **Exit:** 1 · **Suppressible:** Yes · [↗ Rule Specification](../rules/Z411.md) + +This rule exists to detect when an active document has no outgoing navigational edges to the rest of the site structure. + +### Z510: HEADING_HIERARCHY {#z510} + +**Severity:** `warning` · **Penalty:** −1.0 pt (Content) · **Exit:** 1 · **Suppressible:** Yes · [↗ Rule Specification](../rules/Z510.md) + +This rule exists to detect when a heading level skips one or more levels in the document hierarchy. + +### Z511: EXCESSIVE_SENTENCE_LENGTH {#z511} + +**Severity:** `warning` · **Penalty:** −1.0 pt (Content) · **Exit:** 1 · **Suppressible:** Yes · [↗ Rule Specification](../rules/Z511.md) + +This rule exists to detect when a sentence in the markdown body exceeds the maximum configured word limit. + +### Z512: EMPTY_SECTION {#z512} + +**Severity:** `warning` · **Penalty:** −1.0 pt (Content) · **Exit:** 1 · **Suppressible:** Yes · [↗ Rule Specification](../rules/Z512.md) + +This rule exists to detect when a heading section contains no body content before the next section or EOF. + +--- + ## Severity Levels and Pipeline Impact {#severity-pipeline-impact} Every finding code carries a **severity** that determines its DQS math contribution and its pipeline gate behaviour. The `inspect codes` table makes these values explicit via the **Severity** and **Penalty** columns. @@ -132,7 +164,7 @@ Migration and legacy engine compatibility diagnostic findings. ### Z000: UNSUPPORTED_ENGINE {#z000} -**Severity:** `error` (fatal abort) · **Penalty:** none · **Exit:** 1 · **Suppressible:** No +**Severity:** `error` (fatal abort) · **Penalty:** none · **Exit:** 1 · **Suppressible:** No · [↗ Rule Specification](../rules/Z000.md) Fatal configuration error: the adapter factory encountered a deprecated or removed engine alias in `.zenzic.toml`. Execution stops before any scan begins — Z000 does not appear in `--format json` output. @@ -147,9 +179,15 @@ Fatal configuration error: the adapter factory encountered a deprecated or remov Diagnostic findings related to link targets, anchors, and Virtual Site Map resolution. +### Z001: CORE_CONFIG_STRUCTURE {#z001} + +**Severity:** · **Penalty:** FATAL · **Exit:** 1 · **Suppressible:** No · [↗ Rule Specification](../rules/Z001.md) + +This rule exists to detect when an invalid configuration structure is detected (ZenzicConfigError before analysis). + ### Z101: LINK_BROKEN {#z101} -**Severity:** `error` · **Penalty:** −8.0 pts (Structural) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z1xx-links/z101-broken-links.md) +**Severity:** `error` · **Penalty:** −8.0 pts (Structural) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z1xx-links/z101-broken-links.md) · [↗ Rule Specification](../rules/Z101.md) A relative link points to a resource not found in the Virtual Site Map. The file may be outside `docs_dir` scope or matched by an exclusion rule. @@ -161,7 +199,7 @@ A relative link points to a resource not found in the Virtual Site Map. The file ### Z102: ANCHOR_MISSING {#z102} -**Severity:** `error` · **Penalty:** −5.0 pts (Structural) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z1xx-links/z102-anchor-missing.md) +**Severity:** `error` · **Penalty:** −5.0 pts (Structural) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z1xx-links/z102-anchor-missing.md) · [↗ Rule Specification](../rules/Z102.md) The link target file exists (Z101 passes), but the specific HTML anchor (e.g. `#setup`) is absent from the target file's header registry. Zenzic parses all headings and explicit `` tags during Pass 1. @@ -173,7 +211,7 @@ The link target file exists (Z101 passes), but the specific HTML anchor (e.g. `# ### Z103: ORPHAN_LINK {#z103} -**Severity:** `error` · **Penalty:** 0.0 pts · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z1xx-links/z103-orphan-link.md) +**Severity:** `error` · **Penalty:** 0.0 pts · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z1xx-links/z103-orphan-link.md) · [↗ Rule Specification](../rules/Z103.md) The link target exists in the VSM but is not reachable through any navigation structure (sidebar/nav). Users can reach it only by direct URL. @@ -184,7 +222,7 @@ The link target exists in the VSM but is not reachable through any navigation st ### Z104: FILE_NOT_FOUND {#z104} -**Severity:** `error` · **Penalty:** −8.0 pts (Structural) · **Exit:** 1 · **Suppressible:** Yes +**Severity:** `error` · **Penalty:** −8.0 pts (Structural) · **Exit:** 1 · **Suppressible:** Yes · [↗ Rule Specification](../rules/Z104.md) Low-level filesystem error: the engine could not open a file referenced by a link. @@ -201,7 +239,7 @@ blog/post.md:12: '/blog/zenzic-v070' not found in the site map ### Z105: ABSOLUTE_PATH {#z105} -**Severity:** `error` · **Penalty:** −2.0 pts (Structural) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z1xx-links/z105-absolute-path.md) +**Severity:** `error` · **Penalty:** −2.0 pts (Structural) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z1xx-links/z105-absolute-path.md) · [↗ Rule Specification](../rules/Z105.md) An absolute filesystem path (e.g. `C:\Docs\page.md` or `/home/user/docs/page.md`) breaks documentation portability. Project-owned URL prefixes (`/blog/`, `/docs/`) are exempt from Z105 but still checked via VSM lookup (a missing slug raises **Z104** instead). @@ -213,7 +251,7 @@ An absolute filesystem path (e.g. `C:\Docs\page.md` or `/home/user/docs/page.md` ### Z106: CIRCULAR_LINK {#z106} -**Severity:** `info` · **Penalty:** 0.0 pts · **Exit:** 0 · **Suppressible:** Yes (informational only, `--show-info`) +**Severity:** `info` · **Penalty:** 0.0 pts · **Exit:** 0 · **Suppressible:** Yes (informational only, `--show-info`) · [↗ Rule Specification](../rules/Z106.md) A set of links forms a directed cycle (A → B → A). This is a structural telemetry signal — it does not block the Quality Gate or reduce the DQS. @@ -221,7 +259,7 @@ A set of links forms a directed cycle (A → B → A). This is a structural tele ### Z107: CIRCULAR_ANCHOR {#z107} -**Severity:** `warning` · **Penalty:** −1.0 pt (Structural) · **Exit:** 1 · **Suppressible:** Yes +**Severity:** `warning` · **Penalty:** −1.0 pt (Structural) · **Exit:** 1 · **Suppressible:** Yes · [↗ Rule Specification](../rules/Z107.md) A link of the form `[text](#anchor)` resolves to a heading on the **same** page — a self-loop that navigates the reader to exactly where they already are. Distinct from a ToC entry (which links forward to a lower anchor on a long page). @@ -232,7 +270,7 @@ A link of the form `[text](#anchor)` resolves to a heading on the **same** page ### Z108: EMPTY_LINK_TEXT {#z108} -**Severity:** `error` · **Penalty:** −1.0 pt (Structural) · **Exit:** 1 · **Suppressible:** Yes · **Fixable:** Yes · [↗ Gallery](../tutorials/examples/z1xx-links/z108-empty-link-text.md) +**Severity:** `error` · **Penalty:** −1.0 pt (Structural) · **Exit:** 1 · **Suppressible:** Yes · **Fixable:** Yes · [↗ Gallery](../tutorials/examples/z1xx-links/z108-empty-link-text.md) · [↗ Rule Specification](../rules/Z108.md) Inline Markdown link or collapsed reference link has empty or whitespace-only visible text — e.g. `[](./page.md)`, `[ ](./page.md)`, `[][ref]`. Breaks screen reader accessibility and semantic indexing simultaneously. @@ -243,7 +281,7 @@ Inline Markdown link or collapsed reference link has empty or whitespace-only vi ### Z109: EXTERNAL_LINK_BROKEN {#z109} -**Severity:** `error` · **Penalty:** −3.0 pt (Structural) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z1xx-links/z109-external-link-broken.md) +**Severity:** `error` · **Penalty:** −3.0 pt (Structural) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z1xx-links/z109-external-link-broken.md) · [↗ Rule Specification](../rules/Z109.md) An external URL returned an HTTP error status code (e.g. 404, 500) or was completely unreachable due to a connection timeout or DNS resolution failure during scan. @@ -254,7 +292,7 @@ An external URL returned an HTTP error status code (e.g. 404, 500) or was comple ### Z110: STALE_ALLOWLIST_ENTRY {#z110} -**Severity:** `warning` · **Penalty:** −1.0 pt (Structural) · **Exit:** 1 · **Suppressible:** Yes +**Severity:** `warning` · **Penalty:** −1.0 pt (Structural) · **Exit:** 1 · **Suppressible:** Yes · [↗ Rule Specification](../rules/Z110.md) An entry in the `absolute_path_allowlist` configuration was never matched by any scanned absolute path link. This indicates that the entry is stale and no longer needed. @@ -265,7 +303,7 @@ An entry in the `absolute_path_allowlist` configuration was never matched by any ### Z111: VIRTUAL_ROUTE_BROKEN {#z111} -**Severity:** `error` · **Penalty:** −8.0 pt (Structural) · **Exit:** 1 · **Suppressible:** Yes +**Severity:** `error` · **Penalty:** −8.0 pt (Structural) · **Exit:** 1 · **Suppressible:** Yes · [↗ Rule Specification](../rules/Z111.md) Link targets a virtual route (tag page, paginated index, author profile) that was never generated by any frontmatter. @@ -287,7 +325,7 @@ Duplicate author key declared across two or more blog author config files. ### Z114: LARGE_PAGINATION_SET {#z114} -**Severity:** `note` · **Penalty:** 0.0 pts · **Exit:** 0 · **Suppressible:** Yes +**Severity:** `note` · **Penalty:** 0.0 pts · **Exit:** 0 · **Suppressible:** Yes · [↗ Rule Specification](../rules/Z114.md) Blog pagination set exceeds the 200-page informational threshold. @@ -295,7 +333,7 @@ Blog pagination set exceeds the 200-page informational threshold. ### Z118: STALE_GLOBAL_SUPPRESSION {#z118} -**Severity:** `warning` · **Penalty:** −1.0 pt (Governance) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z1xx-links/z118-stale-global-suppression.md) +**Severity:** `warning` · **Penalty:** −1.0 pt (Governance) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z1xx-links/z118-stale-global-suppression.md) · [↗ Rule Specification](../rules/Z118.md) An entry in `directory_policies`, `excluded_file_patterns`, or `excluded_external_urls` inside `.zenzic.toml` was never utilised to suppress an active finding. This indicates configuration debt. @@ -353,7 +391,7 @@ An HTML link has an opaque context or relies on inline scripts for navigation. !!! danger "🔒 INVIOLABLE — Cannot be suppressed | Exit 2 | DQS collapses to 0/100" `zenzic:ignore: Z201` is **silently rejected**. The credential scanner fires unconditionally on every line. [↗ Gallery](../tutorials/examples/z2xx-security/z201-credentials.md) -**Severity:** `security_breach` · **Penalty:** DQS collapses to 0/100 · **Exit:** 2 +**Severity:** `security_breach` · **Penalty:** DQS collapses to 0/100 · **Exit:** 2 · [↗ Rule Specification](../rules/Z201.md) The credential scanner uses deterministic pattern matching (e.g., RE2) to detect known structural secrets (like AWS keys or GitHub tokens) without exponential backtracking, rather than relying on high-noise entropy checks. Speculative Base64 decoding is also applied — encoded tokens that decode to credential patterns are flagged. @@ -369,7 +407,7 @@ The credential scanner uses deterministic pattern matching (e.g., RE2) to detect !!! danger "🔒 INVIOLABLE — Cannot be suppressed | Exit 1 | DQS collapses to 0/100" `zenzic:ignore: Z202` is **silently rejected**. [↗ Gallery](../tutorials/examples/z2xx-security/z202-path-traversal.md) -**Severity:** `error` · **Penalty:** DQS collapses to 0/100 · **Exit:** 1 +**Severity:** `error` · **Penalty:** DQS collapses to 0/100 · **Exit:** 1 · [↗ Rule Specification](../rules/Z202.md) The Path Traversal Guard intercepts any relative links attempting to escape the documentation root (e.g. `../.env`). A relative path uses `..` segments to escape the `docs/` boundary, potentially exposing private repository files. @@ -383,7 +421,7 @@ The Path Traversal Guard intercepts any relative links attempting to escape the !!! danger "🔒 INVIOLABLE — Cannot be suppressed | Exit 3 (highest) | DQS collapses to 0/100" `zenzic:ignore: Z203` is **silently rejected**. Distinct from Z202: targets OS directories (`/etc/`, `/root/`) signalling supply-chain compromise. -**Severity:** `security_incident` · **Penalty:** DQS collapses to 0/100 · **Exit:** 3 +**Severity:** `security_incident` · **Penalty:** DQS collapses to 0/100 · **Exit:** 3 · [↗ Rule Specification](../rules/Z203.md) Path traversal detected targeting restricted OS directories (e.g. `/etc/`, `/root/`). Cannot result from a legitimate documentation workflow — presence indicates template injection, a compromised toolchain, or a malicious commit. @@ -398,7 +436,7 @@ Path traversal detected targeting restricted OS directories (e.g. `/etc/`, `/roo !!! danger "🔒 INVIOLABLE — Cannot be suppressed | Exit 2 | DQS collapses to 0/100" `zenzic:ignore: Z204` is **silently rejected**. Source: `forbidden_patterns` in `.zenzic.local.toml` (git-ignored). [↗ Gallery](../tutorials/examples/z2xx-security/z204-forbidden-term.md) -**Severity:** `security_breach` · **Penalty:** DQS collapses to 0/100 · **Exit:** 2 +**Severity:** `security_breach` · **Penalty:** DQS collapses to 0/100 · **Exit:** 2 · [↗ Rule Specification](../rules/Z204.md) The Privacy Gate detected a confidential project term (internal code-name, staging hostname, team alias) configured in `.zenzic.local.toml`. Matching is case-insensitive verbatim substring — no regex. Run `zenzic init` to scaffold `.zenzic.local.toml` (auto-added to `.gitignore`). @@ -436,7 +474,7 @@ Diagnostic findings related to reference-style links and definition definitions. ### Z301: DANGLING_REF {#z301} -**Severity:** `error` · **Penalty:** −4.0 pts (Navigation) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z3xx-references/z301-dangling-ref.md) +**Severity:** `error` · **Penalty:** −4.0 pts (Navigation) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z3xx-references/z301-dangling-ref.md) · [↗ Rule Specification](../rules/Z301.md) A reference-style link (`[my link][ref]`) exists but its definition (`[ref]: http://...`) is missing. Most renderers silently degrade the link to plain text. Ensure your Markdown formatter (like Prettier or Markdownlint) does not inadvertently remove unused reference definitions during an automated pass, which can cause downstream references to dangle. @@ -447,7 +485,7 @@ A reference-style link (`[my link][ref]`) exists but its definition (`[ref]: htt ### Z302: DEAD_DEF {#z302} -**Severity:** `warning` · **Penalty:** −1.0 pt (Navigation) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z3xx-references/z302-dead-def.md) +**Severity:** `warning` · **Penalty:** −1.0 pt (Navigation) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z3xx-references/z302-dead-def.md) · [↗ Rule Specification](../rules/Z302.md) A reference definition exists but no link in the file uses it. Harmless for readers but creates maintenance debt. @@ -455,7 +493,7 @@ A reference definition exists but no link in the file uses it. Harmless for read ### Z303: DUPLICATE_DEF {#z303} -**Severity:** `warning` · **Penalty:** −3.0 pts (Navigation) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z3xx-references/z303-duplicate-def.md) +**Severity:** `warning` · **Penalty:** −3.0 pts (Navigation) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z3xx-references/z303-duplicate-def.md) · [↗ Rule Specification](../rules/Z303.md) Multiple definitions exist for the same reference ID. CommonMark specifies that the first definition wins, but this ambiguity should be resolved for deterministic cross-engine rendering. @@ -469,7 +507,7 @@ Diagnostic findings related to Virtual Site Map topology and navigation structur ### Z401: MISSING_DIRECTORY_INDEX {#z401} -**Severity:** `info` · **Penalty:** none (structural hint) · **Exit:** 0 · **Suppressible:** Yes +**Severity:** `info` · **Penalty:** none (structural hint) · **Exit:** 0 · **Suppressible:** Yes · [↗ Rule Specification](../rules/Z401.md) A documentation directory has no `index.md` or `README.md`. The directory URL may return 404 or a raw listing depending on the build engine. @@ -477,7 +515,7 @@ A documentation directory has no `index.md` or `README.md`. The directory URL ma ### Z402: ORPHAN_PAGE {#z402} -**Severity:** `warning` · **Penalty:** −4.0 pts (Navigation) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z4xx-topology/z402-orphan-page.md) +**Severity:** `warning` · **Penalty:** −4.0 pts (Navigation) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z4xx-topology/z402-orphan-page.md) · [↗ Rule Specification](../rules/Z402.md) A file exists in `docs/` but is not reachable from any navigation menu. The documentation equivalent of dead code. @@ -488,7 +526,7 @@ A file exists in `docs/` but is not reachable from any navigation menu. The docu ### Z403: MISSING_ALT {#z403} -**Severity:** `warning` · **Penalty:** none (accessibility warning) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z4xx-topology/z403-missing-alt.md) +**Severity:** `warning` · **Penalty:** none (accessibility warning) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z4xx-topology/z403-missing-alt.md) · [↗ Rule Specification](../rules/Z403.md) An image has no alt text, degrading screen reader accessibility and SEO. @@ -496,7 +534,7 @@ An image has no alt text, degrading screen reader accessibility and SEO. ### Z404: CONFIG_ASSET_MISSING {#z404} -**Severity:** `warning` · **Penalty:** none (configuration integrity warning) · **Exit:** 1 · **Suppressible:** Yes +**Severity:** `warning` · **Penalty:** none (configuration integrity warning) · **Exit:** 1 · **Suppressible:** Yes · [↗ Rule Specification](../rules/Z404.md) The build engine's main configuration (e.g. `zensical.toml`) references a logo or favicon that does not exist at the specified path. The failure is global: every page in every locale ships without the branding asset. @@ -507,7 +545,7 @@ The build engine's main configuration (e.g. `zensical.toml`) references a logo o ### Z405: UNUSED_ASSET {#z405} -**Severity:** `warning` · **Penalty:** −3.0 pts (Governance) · **Exit:** 1 · **Suppressible:** Yes +**Severity:** `warning` · **Penalty:** −3.0 pts (Governance) · **Exit:** 1 · **Suppressible:** Yes · [↗ Rule Specification](../rules/Z405.md) An image or asset file in the repository is never referenced by any Markdown file. "Dark Assets" bloat the repository and build artifacts silently. @@ -521,7 +559,7 @@ An image or asset file in the repository is never referenced by any Markdown fil ### Z406: NAV_CONTRACT {#z406} -**Severity:** `error` · **Penalty:** −2.0 pts (Governance) · **Exit:** 1 · **Suppressible:** Yes +**Severity:** `error` · **Penalty:** −2.0 pts (Governance) · **Exit:** 1 · **Suppressible:** Yes · [↗ Rule Specification](../rules/Z406.md) A conflict between the physical file structure and the engine's navigation config. For MkDocs: a `nav` entry pointing to a path that no physical file activates. @@ -538,7 +576,7 @@ Diagnostic findings related to prose quality, sentence length, and structural fo ### Z501: PLACEHOLDER {#z501} -**Severity:** `warning` · **Penalty:** −2.0 pts (Content) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z5xx-content/z501-placeholder.md) +**Severity:** `warning` · **Penalty:** −2.0 pts (Content) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z5xx-content/z501-placeholder.md) · [↗ Rule Specification](../rules/Z501.md) Placeholder strings committed to production documentation signal incomplete work. Examples include: @@ -552,7 +590,7 @@ FIXME ### Z502: SHORT_CONTENT {#z502} -**Severity:** `warning` · **Penalty:** −1.0 pt (Content) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z5xx-content/z502-short-content.md) +**Severity:** `warning` · **Penalty:** −1.0 pt (Content) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z5xx-content/z502-short-content.md) · [↗ Rule Specification](../rules/Z502.md) A page contains fewer than 50 words of rendered prose (frontmatter, Markdown comments, and HTML comments excluded). A page below this threshold cannot contain the semantic components necessary to answer a reader's question. @@ -560,7 +598,7 @@ A page contains fewer than 50 words of rendered prose (frontmatter, Markdown com ### Z503: SNIPPET_ERROR {#z503} -**Severity:** `error` · **Penalty:** −10.0 pts (Content — highest single-occurrence penalty) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z5xx-content/z503-snippet-error.md) +**Severity:** `error` · **Penalty:** −10.0 pts (Content — highest single-occurrence penalty) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z5xx-content/z503-snippet-error.md) · [↗ Rule Specification](../rules/Z503.md) The Snippet Guard identified a syntax error in a fenced code block marked with a language tag. The reported line number is **absolute** — relative to the source file, not to the start of the snippet. @@ -577,7 +615,7 @@ The Snippet Guard identified a syntax error in a fenced code block marked with a **Z503 (error — do not do this):** ````markdown - ```python + ```text my_function( param: str, other: int = 0, @@ -602,7 +640,7 @@ The Snippet Guard identified a syntax error in a fenced code block marked with a ### Z505: UNTAGGED_CODE_BLOCK {#z505} -**Severity:** `warning` · **Penalty:** −1.0 pt (Content) · **Exit:** 1 · **Suppressible:** Yes · **Fixable:** Yes · [↗ Gallery](../tutorials/examples/z5xx-content/z505-untagged-code-block.md) +**Severity:** `warning` · **Penalty:** −1.0 pt (Content) · **Exit:** 1 · **Suppressible:** Yes · **Fixable:** Yes · [↗ Gallery](../tutorials/examples/z5xx-content/z505-untagged-code-block.md) · [↗ Rule Specification](../rules/Z505.md) A fenced code block has no language specifier. Syntax highlighters, the Snippet Guard (Z503), and screen readers cannot process it. Some engine-specific metadata (e.g. `` ```python title="file.py" showLineNumbers ``) is fully supported and never flagged. @@ -610,7 +648,7 @@ A fenced code block has no language specifier. Syntax highlighters, the Snippet ### Z506: MALFORMED_FRONTMATTER {#z506} -**Severity:** `error` · **Penalty:** −5.0 pts (Content) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z5xx-content/z506-malformed-frontmatter.md) +**Severity:** `error` · **Penalty:** −5.0 pts (Content) · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z5xx-content/z506-malformed-frontmatter.md) · [↗ Rule Specification](../rules/Z506.md) The opening frontmatter delimiter on line 1 of the file is not exactly `---`. Any line that starts with two or more dashes but is not exactly `---` — such as `--`, `----`, or `--- trailing chars` — is silently discarded by most static-site engines. The `template:`, `title:`, and all metadata keys will be rendered as raw prose content instead of being parsed. @@ -630,7 +668,7 @@ Diagnostic findings related to brand governance, deprecation, and suppression au ### Z601: BRAND_OBSOLESCENCE {#z601} -**Severity:** `warning` · **Penalty:** −2.0 pts (Governance) + Escalation · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z6xx-brand/z601-brand-obsolescence.md) +**Severity:** `warning` · **Penalty:** −2.0 pts (Governance) + Escalation · **Exit:** 1 · **Suppressible:** Yes · [↗ Gallery](../tutorials/examples/z6xx-brand/z601-brand-obsolescence.md) · [↗ Rule Specification](../rules/Z601.md) A deprecated release name or brand identifier appears in a scanned file. Configured via `[governance].brand_obsolescence` in `.zenzic.toml`. CHANGELOG files are exempt by default (`obsolete_names_exclude_patterns`). @@ -645,7 +683,7 @@ A deprecated release name or brand identifier appears in a scanned file. Configu ### Z603: DEAD_SUPPRESSION {#z603} -**Severity:** `warning` · **Penalty:** −1.0 pt (Governance) · **Exit:** 1 · **Suppressible:** Yes · **Fixable:** Yes · [↗ Gallery](../tutorials/examples/z6xx-brand/z603-dead-suppression.md) +**Severity:** `warning` · **Penalty:** −1.0 pt (Governance) · **Exit:** 1 · **Suppressible:** Yes · **Fixable:** Yes · [↗ Gallery](../tutorials/examples/z6xx-brand/z603-dead-suppression.md) · [↗ Rule Specification](../rules/Z603.md) An inline suppression directive (``) does not correspond to any active finding on that line. The directive silences nothing — it is **Phantom Debt** that consumes part of the 30-point governance budget without justification. @@ -721,7 +759,7 @@ No `.md` / `.md` files found in the resolved `docs_root` after all exclusion lay ### Z504: QUALITY_REGRESSION {#z504} -**Severity:** `warning` *(reserved)* +**Severity:** `warning` *(reserved)* · [↗ Rule Specification](../rules/Z504.md) Emitted by `zenzic diff` when the current DQS is lower than the saved baseline (`.zenzic-score.json`). Not itself weighted into the score (that would be circular); it identifies which commit introduced a regression. diff --git a/docs/rules/Z000.md b/docs/rules/Z000.md new file mode 100644 index 0000000..66d6a33 --- /dev/null +++ b/docs/rules/Z000.md @@ -0,0 +1,49 @@ +--- +title: "Z000: UNSUPPORTED_ENGINE" +--- + + + + +# Z000: UNSUPPORTED_ENGINE + +**Severity**: `error` +**Penalty**: 0.0 (Fatal) +**Category**: `config` +**Auto-fixable**: No + +## Rationale + +This rule is emitted during configuration initialization when `.zenzic.toml` specifies an `engine` identifier that is unknown, deprecated, or no longer supported by the Zenzic Core Engine. + +Operating with an unsupported engine identifier breaks Virtual Site Map (VSM) route resolution, routing plugins, and navigation tree compilation because Zenzic cannot instantiate the matching AST build adapter. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z000) + +```toml +# .zenzic.toml - BAD: Unknown or deprecated engine specifier +engine = "hugo_v1_legacy" +``` + +### Good (Resolves Z000) + +```toml +# .zenzic.toml - GOOD: Use a supported engine target +engine = "mkdocs" +``` + +## Configuration + +```toml +# .zenzic.toml +# Supported values include "mkdocs", "docusaurus", or omit to auto-discover +engine = "mkdocs" +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z000) for finding code details. diff --git a/docs/rules/Z001.md b/docs/rules/Z001.md new file mode 100644 index 0000000..a450437 --- /dev/null +++ b/docs/rules/Z001.md @@ -0,0 +1,53 @@ +--- +title: "Z001: CORE_CONFIG_STRUCTURE" +--- + + + + +# Z001: CORE_CONFIG_STRUCTURE + +**Severity**: `error` +**Penalty**: 0.0 (Fatal) +**Category**: `config` +**Auto-fixable**: No + +## Rationale + +This rule is emitted prior to document scanning when `.zenzic.toml` contains invalid TOML syntax, malformed table headers, unclosed quotes, or data type mismatches (such as supplying a string where a boolean or array is expected). + +An invalid configuration halts execution immediately (`Exit 1`) before any filesystem scan begins to prevent unpredictable behavior across the workspace. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z001) + +```text +# .zenzic.toml - BAD: String supplied to boolean setting & unclosed header +strict = "yes" +[governance.directory_policies +``` + +### Good (Resolves Z001) + +```toml +# .zenzic.toml - GOOD: Valid TOML data types and headers +strict = true + +[governance.directory_policies] +"docs/blog/**" = ["Z410"] +``` + +## Configuration + +```toml +# Validate configuration with standard TOML syntax rules +strict = true +fail_under = 90 +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z001) for finding code details. diff --git a/docs/rules/Z101.md b/docs/rules/Z101.md new file mode 100644 index 0000000..d44d73d --- /dev/null +++ b/docs/rules/Z101.md @@ -0,0 +1,50 @@ +--- +title: "Z101: LINK_BROKEN" +--- + + + + +# Z101: LINK_BROKEN + +**Severity**: `error` +**Penalty**: 8.0 points +**Category**: `structural` +**Auto-fixable**: No + +## Rationale + +This rule validates every relative Markdown link against the Virtual Site Map (VSM) rather than just checking filesystem disk presence. A finding is emitted when a target page does not exist in the VSM or is unserved by the build engine. + +Linking to non-existent target files or unrendered routes produces broken HTTP 404 navigation errors for end users upon site publication. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z101) + +```markdown + +Please refer to our [Installation Guide](../setup/installation.md) for details. +``` + +### Good (Resolves Z101) + +```markdown + +Please refer to our [Installation Guide](../how-to/install.md) for details. +``` + +## Configuration + +```toml +# .zenzic.toml - Exclude specific external domain URLs from broken link checks +excluded_external_urls = [ + "https://github.com/PythonWoods/zenzic", +] +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z101) for finding code details. diff --git a/docs/rules/Z102.md b/docs/rules/Z102.md new file mode 100644 index 0000000..065b421 --- /dev/null +++ b/docs/rules/Z102.md @@ -0,0 +1,50 @@ +--- +title: "Z102: ANCHOR_MISSING" +--- + + + + +# Z102: ANCHOR_MISSING + +**Severity**: `error` +**Penalty**: 5.0 points +**Category**: `structural` +**Auto-fixable**: No + +## Rationale + +This rule is emitted when an inline link targets a fragment identifier (`#anchor-name`), but the destination document contains no heading slug or explicit anchor ID matching that fragment. + +Fragment links pointing to missing anchors navigate to the page top but fail to jump to the intended topic section, degrading reading experience. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z102) + +```markdown + +See the [Security Gate Options](../how-to/configure-privacy-gate.md#security-gate). +``` + +### Good (Resolves Z102) + +```markdown + +## Security Options {#security-gate} + +Configure privacy gate settings below... +``` + +## Configuration + +```toml +# .zenzic.toml +validate_same_page_anchors = true +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z102) for finding code details. diff --git a/docs/rules/Z103.md b/docs/rules/Z103.md new file mode 100644 index 0000000..2695f0b --- /dev/null +++ b/docs/rules/Z103.md @@ -0,0 +1,49 @@ +--- +title: "Z103: ORPHAN_LINK" +--- + + + + +# Z103: ORPHAN_LINK + +**Severity**: `error` +**Penalty**: 2.0 points +**Category**: `structural` +**Auto-fixable**: No + +## Rationale + +This rule is triggered when a link references a Markdown file that exists on the local filesystem disk but is omitted from the site navigation tree (`mkdocs.yml`). + +While the target file is physically present, the static site generator will not build or serve it. Linking to it creates a dead-end experience for users. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z103) + +```markdown + +Check the [Draft Architecture](../../drafts/arch-v2.md). +``` + +### Good (Resolves Z103) + +```markdown + +Check the [Architecture Explanation](../explanation/architecture.md). +``` + +## Configuration + +```yaml +# mkdocs.yml - Ensure target document is listed under nav +nav: + - Architecture: explanation/architecture.md +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z103) for finding code details. diff --git a/docs/rules/Z104.md b/docs/rules/Z104.md new file mode 100644 index 0000000..da6f6f2 --- /dev/null +++ b/docs/rules/Z104.md @@ -0,0 +1,46 @@ +--- +title: "Z104: FILE_NOT_FOUND" +--- + + + + +# Z104: FILE_NOT_FOUND + +**Severity**: `error` +**Penalty**: 8.0 points +**Category**: `structural` +**Auto-fixable**: No + +## Rationale + +This rule is emitted when a document references a local binary or image asset (such as a PDF, ZIP archive, or PNG file) using a relative path, but the file is missing from the local workspace filesystem. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z104) + +```markdown + +![System Topology](../assets/diagrams/topology-v2.png) +``` + +### Good (Resolves Z104) + +```markdown + +![System Topology](../assets/diagrams/topology.png) +``` + +## Configuration + +```toml +# .zenzic.toml - Set relative docs root directory +docs_dir = "docs" +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z104) for finding code details. diff --git a/docs/rules/Z105.md b/docs/rules/Z105.md new file mode 100644 index 0000000..e45d3b6 --- /dev/null +++ b/docs/rules/Z105.md @@ -0,0 +1,48 @@ +--- +title: "Z105: ABSOLUTE_PATH" +--- + + + + +# Z105: ABSOLUTE_PATH + +**Severity**: `error` +**Penalty**: 2.0 points +**Category**: `structural` +**Auto-fixable**: No + +## Rationale + +This rule is triggered when internal links or asset paths use absolute filesystem paths or root-relative paths (e.g. `/docs/setup.md` or `C:\project\docs\setup.md`). + +Absolute paths break portability across different operating systems, CI build runners, and subpath web deployments. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z105) + +```markdown + +Read the [Setup Guide](/docs/how-to/setup.md). +``` + +### Good (Resolves Z105) + +```markdown + +Read the [Setup Guide](../how-to/setup.md). +``` + +## Configuration + +```toml +# Enforced across workspace when strict mode is active +strict = true +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z105) for finding code details. diff --git a/docs/rules/Z106.md b/docs/rules/Z106.md new file mode 100644 index 0000000..4932a7e --- /dev/null +++ b/docs/rules/Z106.md @@ -0,0 +1,50 @@ +--- +title: "Z106: CIRCULAR_LINK" +--- + + + + +# Z106: CIRCULAR_LINK + +**Severity**: `note` +**Penalty**: 0.0 points +**Category**: `structural` +**Auto-fixable**: No + +## Rationale + +This rule is an informational telemetry signal emitted when two or more documentation pages form a direct circular navigation loop through relative links. + +While not fatal to static site rendering, cyclic navigation loops can confuse readers and degrade automated search engine crawler traversal. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z106) + +```markdown + +See [Section B](page-b.md). + + +Return to [Section A](page-a.md). +``` + +### Good (Resolves Z106) + +```markdown + +See [Section B](page-b.md). +``` + +## Configuration + +```toml +# Informational diagnostic; no point deduction subtracted from DQS +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z106) for finding code details. diff --git a/docs/rules/Z107.md b/docs/rules/Z107.md new file mode 100644 index 0000000..ec422aa --- /dev/null +++ b/docs/rules/Z107.md @@ -0,0 +1,47 @@ +--- +title: "Z107: CIRCULAR_ANCHOR" +--- + + + + +# Z107: CIRCULAR_ANCHOR + +**Severity**: `error` +**Penalty**: 1.0 point +**Category**: `structural` +**Auto-fixable**: No + +## Rationale + +This rule is emitted when an anchor link's visible text label slugifies to the exact same string as its own fragment identifier, creating a redundant self-referential jump link that points to its current position. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z107) + +```markdown + +[#installation](#installation) +``` + +### Good (Resolves Z107) + +```markdown + +[Jump to Installation Guide](#installation) +``` + +## Configuration + +```toml +# Can be ignored for didactic tutorial pages via directory_policies +[governance.directory_policies] +"docs/tutorials/examples/z1xx-links/**" = ["Z107"] +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z107) for finding code details. diff --git a/docs/rules/Z108.md b/docs/rules/Z108.md new file mode 100644 index 0000000..827feb5 --- /dev/null +++ b/docs/rules/Z108.md @@ -0,0 +1,48 @@ +--- +title: "Z108: EMPTY_LINK_TEXT" +--- + + + + +# Z108: EMPTY_LINK_TEXT + +**Severity**: `error` +**Penalty**: 1.0 point +**Category**: `structural` +**Auto-fixable**: Yes + +## Rationale + +This rule is emitted when an inline link tag `[...]` contains empty brackets or whitespace-only text. + +Links without accessible text labels violate web accessibility standards (WCAG 2.1) and screen readers cannot describe the link destination to visually impaired users. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z108) + +```markdown + +[](https://zenzic.dev/docs) +``` + +### Good (Resolves Z108) + +```markdown + +[Zenzic Documentation Catalog](https://zenzic.dev/docs) +``` + +## Configuration + +```bash +# Automatically fix empty link text across workspace +zenzic fix --only Z108 +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z108) for finding code details. diff --git a/docs/rules/Z109.md b/docs/rules/Z109.md new file mode 100644 index 0000000..b4021fc --- /dev/null +++ b/docs/rules/Z109.md @@ -0,0 +1,49 @@ +--- +title: "Z109: EXTERNAL_LINK_BROKEN" +--- + + + + +# Z109: EXTERNAL_LINK_BROKEN + +**Severity**: `error` +**Penalty**: 3.0 points +**Category**: `structural` +**Auto-fixable**: No + +## Rationale + +This rule is triggered during strict audits when a remote HTTP/HTTPS link returns a 4xx/5xx HTTP status code or fails due to a network connection timeout or DNS resolution error. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z109) + +```markdown + +Refer to [External Specifications](https://example.invalid/broken-spec). +``` + +### Good (Resolves Z109) + +```markdown + +Refer to [External Specifications](https://example.com/valid-spec). +``` + +## Configuration + +```toml +# .zenzic.toml - Ignore rate-limited or private external domain URLs +excluded_external_urls = [ + "https://github.com", + "https://api.github.com", +] +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z109) for finding code details. diff --git a/docs/rules/Z110.md b/docs/rules/Z110.md index 9209a0b..a2318a1 100644 --- a/docs/rules/Z110.md +++ b/docs/rules/Z110.md @@ -35,3 +35,7 @@ Corrected `.zenzic.toml`: ```toml placeholder_max_words = 50 ``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z110) for finding code details. diff --git a/docs/rules/Z111.md b/docs/rules/Z111.md index 0bd63f0..03ea80f 100644 --- a/docs/rules/Z111.md +++ b/docs/rules/Z111.md @@ -35,3 +35,7 @@ Corrected `.zenzic.toml`: ```toml placeholder_max_words = 50 ``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z111) for finding code details. diff --git a/docs/rules/Z114.md b/docs/rules/Z114.md new file mode 100644 index 0000000..6f6cd93 --- /dev/null +++ b/docs/rules/Z114.md @@ -0,0 +1,45 @@ +--- +title: "Z114: LARGE_PAGINATION_SET" +--- + + + + +# Z114: LARGE_PAGINATION_SET + +**Severity**: `note` +**Penalty**: 0.0 points +**Category**: `content` +**Auto-fixable**: No + +## Rationale + +This rule is an informational diagnostic emitted when a blog post directory or category archive generates a pagination set exceeding the recommended threshold (default: 200 pages). + +Massive pagination sets increase site build times and RAM usage during static site generator rendering. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z114) + +```text +docs/blog/posts/ -> Generates 250 un-categorized pagination index pages. +``` + +### Good (Resolves Z114) + +```text +docs/blog/posts/ -> Reorganize blog posts into categorized year/tag subfolders. +``` + +## Configuration + +```toml +# Informational diagnostic; no point deduction +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z114) for finding code details. diff --git a/docs/rules/Z118.md b/docs/rules/Z118.md new file mode 100644 index 0000000..de3612b --- /dev/null +++ b/docs/rules/Z118.md @@ -0,0 +1,51 @@ +--- +title: "Z118: STALE_GLOBAL_SUPPRESSION" +--- + + + + +# Z118: STALE_GLOBAL_SUPPRESSION + +**Severity**: `warning` +**Penalty**: 1.0 point +**Category**: `governance` +**Auto-fixable**: No + +## Rationale + +This rule is emitted when a global suppression rule declared in `.zenzic.toml` (`directory_policies` or `per_file_ignores`) never matched any violation during a full workspace scan. + +Stale suppressions mask real configuration intent and violate the Zero-DBT invariant by accumulating dead technical debt. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z118) + +```toml +# .zenzic.toml - BAD: Z405 is suppressed but no Z405 violations exist in blog +[governance.directory_policies] +"docs/blog/**" = ["Z405", "Z410"] +``` + +### Good (Resolves Z118) + +```toml +# .zenzic.toml - GOOD: Remove stale finding code from directory_policies +[governance.directory_policies] +"docs/blog/**" = ["Z410"] +``` + +## Configuration + +```toml +# Audit and remove stale entries under [governance.directory_policies] +[governance.directory_policies] +"docs/blog/**" = ["Z410", "Z411"] +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z118) for finding code details. diff --git a/docs/rules/Z201.md b/docs/rules/Z201.md new file mode 100644 index 0000000..75a6743 --- /dev/null +++ b/docs/rules/Z201.md @@ -0,0 +1,47 @@ +--- +title: "Z201: CREDENTIAL_SECRET" +--- + + + + +# Z201: CREDENTIAL_SECRET + +**Severity**: `error` +**Penalty**: 0.0 (Fatal Exit 2) +**Category**: `security` +**Auto-fixable**: No + +## Rationale + +This security breach rule (Exit 2) is emitted when the Polyglot Credential Scanner detects private keys, API tokens, AWS keys, or passwords embedded in Markdown prose or code blocks. + +Hardcoding secrets in documentation source files exposes infrastructure credentials to public repository leaks. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z201) + +```python +# BAD: Real credential hardcoded in documentation snippet +aws_secret = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" +``` + +### Good (Resolves Z201) + +```python +# GOOD: Use environment variables or sanitized placeholders +aws_secret = os.environ["AWS_SECRET_ACCESS_KEY"] +``` + +## Configuration + +```toml +# Non-suppressible security code. Triggers Security Override (DQS -> 0/100). +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z201) for finding code details. diff --git a/docs/rules/Z202.md b/docs/rules/Z202.md new file mode 100644 index 0000000..f5f1a6e --- /dev/null +++ b/docs/rules/Z202.md @@ -0,0 +1,46 @@ +--- +title: "Z202: PATH_TRAVERSAL" +--- + + + + +# Z202: PATH_TRAVERSAL + +**Severity**: `error` +**Penalty**: 0.0 (Fatal Exit 2) +**Category**: `security` +**Auto-fixable**: No + +## Rationale + +This security rule is triggered when a relative link or asset reference uses parent directory traversal sequences (`../`) to escape the root boundary of the designated documentation workspace (`docs_dir`). + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z202) + +```markdown + +Download [Internal Secret](../../../secrets/keys.json). +``` + +### Good (Resolves Z202) + +```markdown + +Download [Public Keys](../assets/public-keys.json). +``` + +## Configuration + +```toml +# Workspace boundary enforced by docs_dir setting in .zenzic.toml +docs_dir = "docs" +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z202) for finding code details. diff --git a/docs/rules/Z203.md b/docs/rules/Z203.md new file mode 100644 index 0000000..b42e6f9 --- /dev/null +++ b/docs/rules/Z203.md @@ -0,0 +1,45 @@ +--- +title: "Z203: PATH_TRAVERSAL_FATAL" +--- + + + + +# Z203: PATH_TRAVERSAL_FATAL + +**Severity**: `error` +**Penalty**: 0.0 (Fatal Exit 3) +**Category**: `security` +**Auto-fixable**: No + +## Rationale + +This critical security incident rule (Exit 3) is emitted when a path specifier attempts to escape the repository workspace to access sensitive OS system directories (such as `/etc/passwd` or `/proc/`). + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z203) + +```markdown + +Read [System Passwd](../../../../../../etc/passwd). +``` + +### Good (Resolves Z203) + +```markdown + +Read [Local Configuration](../config/settings.json). +``` + +## Configuration + +```toml +# Non-suppressible security incident code; triggers Exit 3 immediate abort. +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z203) for finding code details. diff --git a/docs/rules/Z204.md b/docs/rules/Z204.md new file mode 100644 index 0000000..d0ac18c --- /dev/null +++ b/docs/rules/Z204.md @@ -0,0 +1,51 @@ +--- +title: "Z204: FORBIDDEN_TERM" +--- + + + + +# Z204: FORBIDDEN_TERM + +**Severity**: `error` +**Penalty**: 0.0 (Fatal Exit 2) +**Category**: `security` +**Auto-fixable**: No + +## Rationale + +This security and governance rule is triggered when a prohibited string or restricted term (configured via `forbidden_patterns` in `.zenzic.toml`) is detected within documentation source files. + +It enforces brand compliance, inclusive language policies, and confidential keyword restrictions across all published pages. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z204) + +```markdown + +The system utilizes ProjectOmniInternal for backend routing. +``` + +### Good (Resolves Z204) + +```markdown + +The system utilizes Zenzic Core Router for backend routing. +``` + +## Configuration + +```toml +# .zenzic.toml - Configure forbidden term regex patterns +forbidden_patterns = [ + "(?i)\bProjectOmniInternal\b", + "(?i)\bconfidential_secret\b", +] +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z204) for finding code details. diff --git a/docs/rules/Z301.md b/docs/rules/Z301.md new file mode 100644 index 0000000..34e96f4 --- /dev/null +++ b/docs/rules/Z301.md @@ -0,0 +1,47 @@ +--- +title: "Z301: DANGLING_REF" +--- + + + + +# Z301: DANGLING_REF + +**Severity**: `warning` +**Penalty**: 4.0 points +**Category**: `navigation` +**Auto-fixable**: No + +## Rationale + +This rule is emitted when a Markdown reference link (for example, `[heading][my-ref]`) uses a shortcut label `[my-ref]` that has no matching definition `[my-ref]: URL` anywhere in the document. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z301) + +```markdown + +Follow our [Installation Guide][install-guide] to begin. +``` + +### Good (Resolves Z301) + +```markdown + +Follow our [Installation Guide][install-guide] to begin. + +[install-guide]: ../how-to/install.md +``` + +## Configuration + +```toml +# Evaluated automatically during reference link parsing pass +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z301) for finding code details. diff --git a/docs/rules/Z302.md b/docs/rules/Z302.md new file mode 100644 index 0000000..e7d78fb --- /dev/null +++ b/docs/rules/Z302.md @@ -0,0 +1,47 @@ +--- +title: "Z302: DEAD_DEF" +--- + + + + +# Z302: DEAD_DEF + +**Severity**: `warning` +**Penalty**: 1.0 point +**Category**: `navigation` +**Auto-fixable**: No + +## Rationale + +This rule is emitted when a reference link definition `[ref-id]: URL` is declared in a Markdown document but is never consumed by any reference link in that file. Unused link definitions clutter source files. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z302) + +```markdown + +[unused-link]: https://example.com/api +``` + +### Good (Resolves Z302) + +```markdown + +Check the [API Docs][unused-link]. + +[unused-link]: https://example.com/api +``` + +## Configuration + +```toml +# Evaluated during reference auditing pass +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z302) for finding code details. diff --git a/docs/rules/Z303.md b/docs/rules/Z303.md new file mode 100644 index 0000000..b9fb803 --- /dev/null +++ b/docs/rules/Z303.md @@ -0,0 +1,47 @@ +--- +title: "Z303: DUPLICATE_DEF" +--- + + + + +# Z303: DUPLICATE_DEF + +**Severity**: `warning` +**Penalty**: 3.0 points +**Category**: `navigation` +**Auto-fixable**: No + +## Rationale + +This rule is triggered when the same reference link label `[ref-id]: ...` is defined multiple times within a single Markdown source file with conflicting target URLs, creating ambiguous link resolution. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z303) + +```markdown + +[doc-ref]: https://example.com/v1 +[doc-ref]: https://example.com/v2 +``` + +### Good (Resolves Z303) + +```markdown + +[doc-ref-v1]: https://example.com/v1 +[doc-ref-v2]: https://example.com/v2 +``` + +## Configuration + +```toml +# Evaluated during reference definition parsing +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z303) for finding code details. diff --git a/docs/rules/Z401.md b/docs/rules/Z401.md new file mode 100644 index 0000000..b830104 --- /dev/null +++ b/docs/rules/Z401.md @@ -0,0 +1,43 @@ +--- +title: "Z401: MISSING_DIRECTORY_INDEX" +--- + + + + +# Z401: MISSING_DIRECTORY_INDEX + +**Severity**: `note` +**Penalty**: 0.0 points +**Category**: `navigation` +**Auto-fixable**: No + +## Rationale + +This rule is an informational diagnostic emitted in standalone directory mode when a documentation subfolder contains topic files but lacks a primary index file (`index.md` or `README.md`). + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z401) + +```text +docs/how-to/ -> Directory contains install.md but lacks index.md +``` + +### Good (Resolves Z401) + +```text +docs/how-to/ -> Contains index.md to serve as landing root. +``` + +## Configuration + +```toml +# Informational diagnostic; no points deducted from DQS +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z401) for finding code details. diff --git a/docs/rules/Z402.md b/docs/rules/Z402.md new file mode 100644 index 0000000..2c935e5 --- /dev/null +++ b/docs/rules/Z402.md @@ -0,0 +1,45 @@ +--- +title: "Z402: ORPHAN_PAGE" +--- + + + + +# Z402: ORPHAN_PAGE + +**Severity**: `warning` +**Penalty**: 4.0 points +**Category**: `navigation` +**Auto-fixable**: No + +## Rationale + +This rule is triggered when a Markdown source file resides in the `docs` directory but is not included in the site navigation tree manifest (`mkdocs.yml`). Orphan pages cannot be reached by users browsing site navigation. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z402) + +```text +docs/how-to/secret-guide.md -> File exists on disk but missing from mkdocs.yml +``` + +### Good (Resolves Z402) + +```yaml +# mkdocs.yml - Register file under navigation tree +nav: + - Secret Guide: how-to/secret-guide.md +``` + +## Configuration + +```yaml +# Registered under nav: in mkdocs.yml +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z402) for finding code details. diff --git a/docs/rules/Z403.md b/docs/rules/Z403.md new file mode 100644 index 0000000..831be62 --- /dev/null +++ b/docs/rules/Z403.md @@ -0,0 +1,45 @@ +--- +title: "Z403: MISSING_ALT" +--- + + + + +# Z403: MISSING_ALT + +**Severity**: `warning` +**Penalty**: 1.0 point +**Category**: `content` +**Auto-fixable**: No + +## Rationale + +This accessibility rule is triggered when an HTML or Markdown image tag (such as `![](image.png)` or ``) lacks descriptive alternative text (`alt`). Accessible image captions are required for screen readers. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z403) + +```text + +!\[\](../assets/diagram.png) +``` + +### Good (Resolves Z403) + +```text + +![System Architecture Diagram](../assets/diagram.png) +``` + +## Configuration + +```toml +# Audited across all Markdown image tags +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z403) for finding code details. diff --git a/docs/rules/Z404.md b/docs/rules/Z404.md new file mode 100644 index 0000000..a6350ef --- /dev/null +++ b/docs/rules/Z404.md @@ -0,0 +1,47 @@ +--- +title: "Z404: CONFIG_ASSET_MISSING" +--- + + + + +# Z404: CONFIG_ASSET_MISSING + +**Severity**: `warning` +**Penalty**: 3.0 points +**Category**: `brand` +**Auto-fixable**: No + +## Rationale + +This rule is emitted when a static theme or infrastructure asset path declared in engine configuration (such as `extra_css` or `favicon` in `mkdocs.yml`) cannot be found on the filesystem disk. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z404) + +```yaml +# mkdocs.yml - BAD: Asset file does not exist on disk +extra_css: + - assets/css/missing-styles.css +``` + +### Good (Resolves Z404) + +```yaml +# mkdocs.yml - GOOD: Asset file exists on disk +extra_css: + - assets/css/extra.css +``` + +## Configuration + +```yaml +# Governed by asset paths in mkdocs.yml +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z404) for finding code details. diff --git a/docs/rules/Z405.md b/docs/rules/Z405.md new file mode 100644 index 0000000..20b085d --- /dev/null +++ b/docs/rules/Z405.md @@ -0,0 +1,44 @@ +--- +title: "Z405: UNUSED_ASSET" +--- + + + + +# Z405: UNUSED_ASSET + +**Severity**: `warning` +**Penalty**: 3.0 points +**Category**: `brand` +**Auto-fixable**: No + +## Rationale + +This rule is triggered when an image or static asset file stored in `assets/` is never referenced by any Markdown document across the Virtual Site Map, leading to unnecessary repository bloat. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z405) + +```text +docs/assets/images/obsolete-logo.png -> File exists on disk but never linked in markdown. +``` + +### Good (Resolves Z405) + +```markdown + +![Project Logo](../assets/images/logo.png) +``` + +## Configuration + +```toml +# Asset scanning covers files in docs/assets/ +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z405) for finding code details. diff --git a/docs/rules/Z406.md b/docs/rules/Z406.md new file mode 100644 index 0000000..577bd72 --- /dev/null +++ b/docs/rules/Z406.md @@ -0,0 +1,47 @@ +--- +title: "Z406: NAV_CONTRACT" +--- + + + + +# Z406: NAV_CONTRACT + +**Severity**: `warning` +**Penalty**: 2.0 points +**Category**: `brand` +**Auto-fixable**: No + +## Rationale + +This rule is emitted when the structure of `mkdocs.yml` navigation violates structural contract requirements, such as referencing non-existent target files or using invalid dictionary nesting. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z406) + +```yaml +# mkdocs.yml - BAD: Referencing non-existent markdown source file +nav: + - Tutorial: tutorials/non-existent.md +``` + +### Good (Resolves Z406) + +```yaml +# mkdocs.yml - GOOD: Referencing valid existing source file +nav: + - Tutorial: tutorials/first-audit.md +``` + +## Configuration + +```yaml +# Governed by nav: section in mkdocs.yml +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z406) for finding code details. diff --git a/docs/rules/Z410.md b/docs/rules/Z410.md index aede733..3e3c679 100644 --- a/docs/rules/Z410.md +++ b/docs/rules/Z410.md @@ -42,3 +42,7 @@ Alternatively, you can ignore the file globally using directory policies in `.ze match = "internal/**" ignore = ["Z410"] ``` + + +## Reference +See the [Finding Codes Index](../reference/finding-codes.md#z410) for finding code details. diff --git a/docs/rules/Z411.md b/docs/rules/Z411.md index 4d365c3..d3bf801 100644 --- a/docs/rules/Z411.md +++ b/docs/rules/Z411.md @@ -42,3 +42,7 @@ Alternatively, you can ignore the file globally using directory policies in `.ze match = "legal/**" ignore = ["Z411"] ``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z411) for finding code details. diff --git a/docs/rules/Z501.md b/docs/rules/Z501.md new file mode 100644 index 0000000..ffd34b6 --- /dev/null +++ b/docs/rules/Z501.md @@ -0,0 +1,54 @@ +--- +title: "Z501: PLACEHOLDER" +--- + + + + +# Z501: PLACEHOLDER + +**Severity**: `warning` +**Penalty**: 2.0 points +**Category**: `content` +**Auto-fixable**: No + +## Rationale + +This content quality rule is triggered when stub text or placeholder markers (such as `T-O-D-O`, `Lorem Ipsum`, or `F-I-X-M-E`) are detected within documentation prose intended for publication. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z501) + +```markdown + +## Configuration Steps + +TODO: Complete this section before publishing. +``` + +### Good (Resolves Z501) + +```markdown + +## Configuration Steps + +Set `strict = true` in `.zenzic.toml` to enforce zero-error pipeline execution. +``` + +## Configuration + +```toml +# .zenzic.toml - Configure placeholder patterns +placeholder_patterns = [ + "(?i)\bTODO\b", + "(?i)\bFIXME\b", + "(?i)\bLorem Ipsum\b", +] +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z501) for finding code details. diff --git a/docs/rules/Z502.md b/docs/rules/Z502.md new file mode 100644 index 0000000..bb95593 --- /dev/null +++ b/docs/rules/Z502.md @@ -0,0 +1,48 @@ +--- +title: "Z502: SHORT_CONTENT" +--- + + + + +# Z502: SHORT_CONTENT + +**Severity**: `warning` +**Penalty**: 1.0 point +**Category**: `content` +**Auto-fixable**: No + +## Rationale + +This rule is triggered when a published documentation page contains fewer words than the required minimum word count threshold (default: 50 words), indicating incomplete stub documentation. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z502) + +```markdown +# Quick Start + +This is a stub page. +``` + +### Good (Resolves Z502) + +```markdown +# Quick Start + +Welcome to Zenzic! Follow the installation steps below to set up your environment, initialize configuration, and execute your first documentation audit scan across your repository. +``` + +## Configuration + +```toml +# .zenzic.toml - Adjust minimum word count threshold +min_word_count = 50 +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z502) for finding code details. diff --git a/docs/rules/Z503.md b/docs/rules/Z503.md new file mode 100644 index 0000000..e019a95 --- /dev/null +++ b/docs/rules/Z503.md @@ -0,0 +1,50 @@ +--- +title: "Z503: SNIPPET_ERROR" +--- + + + + +# Z503: SNIPPET_ERROR + +**Severity**: `warning` +**Penalty**: 10.0 points +**Category**: `content` +**Auto-fixable**: No + +## Rationale + +This content quality rule is emitted when a fenced code block with a specified language tag (such as `python` or `yaml`) contains syntax errors that fail AST parsing for that language. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z503) + +````markdown + +```text +def calculate_score( +``` +```` + +### Good (Resolves Z503) + +````markdown + +```python +def calculate_score(penalty: float) -> float: + return 100.0 - penalty +``` +```` + +## Configuration + +```toml +# Evaluated for fenced code blocks with language specifiers +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z503) for finding code details. diff --git a/docs/rules/Z504.md b/docs/rules/Z504.md new file mode 100644 index 0000000..fce66ee --- /dev/null +++ b/docs/rules/Z504.md @@ -0,0 +1,44 @@ +--- +title: "Z504: QUALITY_REGRESSION" +--- + + + + +# Z504: QUALITY_REGRESSION + +**Severity**: `warning` +**Penalty**: 0.0 points +**Category**: `governance` +**Auto-fixable**: No + +## Rationale + +This governance gate check is triggered when the overall documentation quality score (DQS) drops below the saved baseline score recorded in `.zenzic.baseline`. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z504) + +```text +Current DQS: 85/100 | Saved Baseline DQS: 92/100 -> Trigger Z504 Quality Regression +``` + +### Good (Resolves Z504) + +```text +Current DQS: 95/100 | Saved Baseline DQS: 92/100 -> Pass Quality Gate +``` + +## Configuration + +```bash +# Save new baseline DQS score after authorized changes +zenzic baseline --save +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z504) for finding code details. diff --git a/docs/rules/Z505.md b/docs/rules/Z505.md new file mode 100644 index 0000000..6f15f33 --- /dev/null +++ b/docs/rules/Z505.md @@ -0,0 +1,50 @@ +--- +title: "Z505: UNTAGGED_CODE_BLOCK" +--- + + + + +# Z505: UNTAGGED_CODE_BLOCK + +**Severity**: `warning` +**Penalty**: 1.0 point +**Category**: `content` +**Auto-fixable**: Yes + +## Rationale + +This rule is emitted when a fenced code block (```) lacks a programming language specifier tag, preventing syntax highlighting in static site builds. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z505) + +````markdown + +``` +zenzic check all --strict +``` +```` + +### Good (Resolves Z505) + +````markdown + +```bash +zenzic check all --strict +``` +```` + +## Configuration + +```bash +# Automatically insert text language tag for untagged code blocks +zenzic fix --only Z505 +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z505) for finding code details. diff --git a/docs/rules/Z506.md b/docs/rules/Z506.md new file mode 100644 index 0000000..cba16c2 --- /dev/null +++ b/docs/rules/Z506.md @@ -0,0 +1,49 @@ +--- +title: "Z506: MALFORMED_FRONTMATTER" +--- + + + + +# Z506: MALFORMED_FRONTMATTER + +**Severity**: `error` +**Penalty**: 5.0 points +**Category**: `content` +**Auto-fixable**: No + +## Rationale + +This rule is triggered when the opening YAML frontmatter delimiter on line 1 of a file is malformed (such as using `--` instead of `---`), causing metadata directives to be parsed as raw body text. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z506) + +```markdown + +-- +title: "Invalid Frontmatter" +--- +``` + +### Good (Resolves Z506) + +```markdown + +--- +title: "Valid Frontmatter" +--- +``` + +## Configuration + +```toml +# Evaluated on line 1 of Markdown files +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z506) for finding code details. diff --git a/docs/rules/Z510.md b/docs/rules/Z510.md index f4a31f1..c9320b3 100644 --- a/docs/rules/Z510.md +++ b/docs/rules/Z510.md @@ -32,3 +32,7 @@ If a skipped heading level is intentional, you can suppress this warning using a ```markdown ``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z510) for finding code details. diff --git a/docs/rules/Z511.md b/docs/rules/Z511.md index 9af0c44..dc544a1 100644 --- a/docs/rules/Z511.md +++ b/docs/rules/Z511.md @@ -38,3 +38,7 @@ To suppress this warning for a specific sentence, add an inline comment directiv ```markdown ``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z511) for finding code details. diff --git a/docs/rules/Z512.md b/docs/rules/Z512.md index 6f7ba69..c71ad30 100644 --- a/docs/rules/Z512.md +++ b/docs/rules/Z512.md @@ -30,3 +30,7 @@ If a heading is intentionally empty, add an inline comment directive below or ab ```markdown ``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z512) for finding code details. diff --git a/docs/rules/Z601.md b/docs/rules/Z601.md new file mode 100644 index 0000000..eae4b10 --- /dev/null +++ b/docs/rules/Z601.md @@ -0,0 +1,47 @@ +--- +title: "Z601: BRAND_OBSOLESCENCE" +--- + + + + +# Z601: BRAND_OBSOLESCENCE + +**Severity**: `warning` +**Penalty**: 2.0 points +**Category**: `brand` +**Auto-fixable**: No + +## Rationale + +This governance rule is triggered when deprecated brand terms, legacy product names, or obsolete terminology are found within documentation prose. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z601) + +```markdown + +The LegacyDocTool static analyzer checks link graphs. +``` + +### Good (Resolves Z601) + +```markdown + +The Zenzic static analyzer checks link graphs. +``` + +## Configuration + +```toml +# .zenzic.toml - Governance brand terms +[governance] +brand_terms = ["Zenzic"] +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z601) for finding code details. diff --git a/docs/rules/Z603.md b/docs/rules/Z603.md new file mode 100644 index 0000000..e69a135 --- /dev/null +++ b/docs/rules/Z603.md @@ -0,0 +1,47 @@ +--- +title: "Z603: DEAD_SUPPRESSION" +--- + + + + +# Z603: DEAD_SUPPRESSION + +**Severity**: `warning` +**Penalty**: 1.0 point +**Category**: `governance` +**Auto-fixable**: Yes + +## Rationale + +This governance rule is emitted when an inline suppression comment (such as ``) is placed on a line where no violation of that code actually occurs. + +## How to Fix + +Inspect the flagged location in the Markdown file and update the content or configuration: + +### Bad (Triggers Z603) + +```markdown + + +This is a short sentence. +``` + +### Good (Resolves Z603) + +```markdown + +This is a short sentence. +``` + +## Configuration + +```bash +# Automatically remove dead inline suppressions +zenzic fix --only Z603 +``` + +## Reference + +See the [Finding Codes Index](../reference/finding-codes.md#z603) for finding code details. diff --git a/docs/tutorials/examples/z5xx-content/z506-malformed-frontmatter.md b/docs/tutorials/examples/z5xx-content/z506-malformed-frontmatter.md index 12f9463..838b438 100644 --- a/docs/tutorials/examples/z5xx-content/z506-malformed-frontmatter.md +++ b/docs/tutorials/examples/z5xx-content/z506-malformed-frontmatter.md @@ -1,6 +1,9 @@ -- ## description: "Live example showing a malformed frontmatter delimiter detected by Zenzic." + +This section details the specifications and guidelines for description: "Live example showing a malformed frontmatter delimiter detected by Zenzic." within the Zenzic ecosystem. + @@ -45,16 +48,16 @@ This file intentionally opens with `--` (two dashes) to trigger the rule. The `d Ensure the very first line of the file is exactly three dashes and nothing else: -## ```yaml - -## description: A well-formed frontmatter block - ```yaml +--- +description: A well-formed frontmatter block +--- +``` ## Suppression If you need to suppress Z506 on a specific file (e.g. a gallery page like this one): -```markdown -## -- +```text + ``` diff --git a/docs/tutorials/examples/z6xx-brand/z603-dead-suppression.md b/docs/tutorials/examples/z6xx-brand/z603-dead-suppression.md index 1d5fa8c..eaf4d06 100644 --- a/docs/tutorials/examples/z6xx-brand/z603-dead-suppression.md +++ b/docs/tutorials/examples/z6xx-brand/z603-dead-suppression.md @@ -55,6 +55,9 @@ Exit code: `0` (warning-only; use `--strict` to promote to Exit 1) ## The Three Z603 Scenarios +This section details the specifications and guidelines for The Three Z603 Scenarios within the Zenzic ecosystem. + + ### Scenario A — Dead Directive (this page) A valid link has a `zenzic:ignore: Z101` directive that is never consumed. diff --git a/fix_z411.py b/fix_z411.py new file mode 100644 index 0000000..9b1be3a --- /dev/null +++ b/fix_z411.py @@ -0,0 +1,45 @@ +import os +from pathlib import Path + +# Mapping of file to its related relative link and text +files = { + "docs/developers/explanation/core-laws.md": ("../../reference/zenzic-style.md", "Zenzic Style Guide"), + "docs/developers/explanation/governance/lpgp.md": ("../../how-to/contribute/pull-requests.md", "Contributing Pull Requests"), + "docs/developers/explanation/governance/technical-debt.md": ("../../../reference/finding-codes.md", "Finding Codes Index"), + "docs/developers/explanation/mdx-asset-rationale.md": ("../../reference/zenzic-style.md", "Zenzic Style Guide"), + "docs/developers/explanation/sovereign-verification-model.md": ("../../reference/adapter-api.md", "Adapter API Reference"), + "docs/developers/explanation/tailwind-mkdocs-bridge.md": ("../../../how-to/use-brand-system.md", "Brand System Guidelines"), + "docs/developers/how-to/contribute/pull-requests.md": ("../../reference/zenzic-style.md", "Zenzic Style Guide"), + "docs/developers/how-to/contribute/report-a-bug.md": ("./pull-requests.md", "Contributing Pull Requests"), + "docs/developers/how-to/contribute/report-a-docs-issue.md": ("./pull-requests.md", "Contributing Pull Requests"), + "docs/developers/reference/adapter-examples.md": ("./adapter-api.md", "Adapter API Reference"), + "docs/developers/reference/ast-foundations.md": ("../../explanation/architecture.md", "Core Architecture"), + "docs/developers/reference/credential-scanner-obligations.md": ("../../../reference/finding-codes.md", "Finding Codes Index"), + "docs/developers/reference/supply-chain-assurance-profile.md": ("../how-to/contribute/pull-requests.md", "Contributing Pull Requests"), + "docs/explanation/baseline-tracking.md": ("../reference/cli.md", "CLI Reference"), + "docs/explanation/brand-philosophy.md": ("../how-to/use-brand-system.md", "Brand System Guidelines"), + "docs/explanation/configuration-loading.md": ("../how-to/initialize-configuration.md", "Initialize Configuration"), + "docs/explanation/core-mechanics.md": ("./architecture.md", "Core Architecture"), + "docs/explanation/exclusion-design.md": ("../how-to/manage-cross-site-links.md", "Manage Cross-Site Links"), + "docs/explanation/language-server-architecture.md": ("./architecture.md", "Core Architecture"), + "docs/explanation/mineral-path.md": ("../how-to/migrate-engines.md", "Migrating Engines"), + "docs/explanation/scoring-system.md": ("../reference/scoring-algorithm.md", "Scoring Algorithm"), + "docs/explanation/why-zenzic.md": ("./architecture.md", "Core Architecture"), + "docs/how-to/add-badges.md": ("../reference/cli.md", "CLI Reference"), + "docs/how-to/configure-ci-cd.md": ("../reference/cli.md", "CLI Reference"), + "docs/how-to/configure-social-metadata.md": ("../explanation/why-zenzic.md", "Why Zenzic"), + "docs/how-to/initialize-configuration.md": ("../explanation/configuration-loading.md", "Configuration Loading"), + "docs/reference/api-json.md": ("./cli.md", "CLI Reference"), + "docs/reference/checks.md": ("./finding-codes.md", "Finding Codes Index"), +} + +for filepath, (link, text) in files.items(): + p = Path(filepath) + if not p.exists(): + print(f"NOT FOUND: {filepath}") + continue + + with open(p, "a", encoding="utf-8") as f: + f.write(f"\n\n## See Also\n\n- [{text}]({link})\n") + print(f"Appended to {filepath}") + diff --git a/mkdocs.yml b/mkdocs.yml index dd6b714..772bee3 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -57,13 +57,47 @@ nav: - Finding Codes Index: reference/finding-codes.md - Core Rule Checks: reference/checks.md - Rule Specification Cards: + - rules/Z000.md + - rules/Z001.md + - rules/Z101.md + - rules/Z102.md + - rules/Z103.md + - rules/Z104.md + - rules/Z105.md + - rules/Z106.md + - rules/Z107.md + - rules/Z108.md + - rules/Z109.md - rules/Z110.md - rules/Z111.md + - rules/Z114.md + - rules/Z118.md + - rules/Z201.md + - rules/Z202.md + - rules/Z203.md + - rules/Z204.md + - rules/Z301.md + - rules/Z302.md + - rules/Z303.md + - rules/Z401.md + - rules/Z402.md + - rules/Z403.md + - rules/Z404.md + - rules/Z405.md + - rules/Z406.md - rules/Z410.md - rules/Z411.md + - rules/Z501.md + - rules/Z502.md + - rules/Z503.md + - rules/Z504.md + - rules/Z505.md + - rules/Z506.md - rules/Z510.md - rules/Z511.md - rules/Z512.md + - rules/Z601.md + - rules/Z603.md - Interactive Rule Examples: - tutorials/examples/index.md - tutorials/examples/z0xx-core/z001-config-error.md diff --git a/src/zenzic/cli/_check.py b/src/zenzic/cli/_check.py index aac6293..8d2fcb6 100644 --- a/src/zenzic/cli/_check.py +++ b/src/zenzic/cli/_check.py @@ -62,6 +62,16 @@ long_help=(f"[bold {ZenzicPalette.BRAND}]Check[/] — {COMMAND_BY_NAME['check'].long_help}"), ) +def _validate_only_flag(only: str | None) -> None: + if not only: + return + for code in only.split(","): + code = code.strip().upper() + if code and code not in CODE_DEFINITIONS: + _shared.console.print( + f"[bold red]Error:[/] Invalid finding code '{code}' provided to --only flag." + ) + raise typer.Exit(1) def _finding_severity(code: str) -> str: """Derive CLI finding severity from CodeDefinition SSoT (codes.py). @@ -135,6 +145,7 @@ def check_links( ), ) -> None: """Check for broken internal links and enforce strict warning policy when requested.""" + _validate_only_flag(only) if ci: strict = True @@ -299,6 +310,7 @@ def check_orphans( ), ) -> None: """Detect .md files not listed in the nav.""" + _validate_only_flag(only) if ci: if output_format == "text": @@ -420,6 +432,7 @@ def check_snippets( ), ) -> None: """Validate Python code blocks in documentation Markdown files.""" + _validate_only_flag(only) if ci: if output_format == "text": @@ -559,6 +572,7 @@ def check_references( 1 — Dangling References or (with --strict) warnings found. 2 — SECURITY CRITICAL: a secret was detected in a reference URL. """ + _validate_only_flag(only) if ci: strict = True @@ -731,6 +745,7 @@ def check_assets( ), ) -> None: """Detect unused images and assets in the documentation.""" + _validate_only_flag(only) if ci: if output_format == "text": @@ -854,6 +869,7 @@ def check_placeholders( ), ) -> None: """Detect pages with < 50 words or containing TODOs/stubs.""" + _validate_only_flag(only) if ci: if output_format == "text": @@ -1001,13 +1017,14 @@ def _apply_only_filter(results: _AllCheckResults, only_str: str) -> None: def _filter_flat_findings(findings: list[Finding], only_str: str | None) -> list[Finding]: - """Filter a flat list of findings keeping only the specified Z-codes.""" + """Filter a flat list of findings keeping only the specified Z-codes (except fatal config errors Z110, Z111).""" if not only_str: return findings allowed = frozenset(code.strip().upper() for code in only_str.split(",") if code.strip()) if not allowed: return findings - return [f for f in findings if f.code in allowed] + bypass_codes = {"Z110", "Z111"} + return [f for f in findings if f.code in allowed or f.code in bypass_codes] # _apply_per_file_ignores and _apply_directory_policies have moved to _governance.py. @@ -1413,6 +1430,8 @@ def check_all( directory (e.g. ``README.md``, ``content/``). Zenzic auto-selects the StandaloneAdapter when the target lives outside the configured docs directory. """ + _validate_only_flag(only) + # GAP-04: Conflict validation — --strict and --exit-zero are mutually exclusive. if strict and exit_zero: typer.echo( @@ -1541,6 +1560,8 @@ def check_all( _append_z118_findings( all_findings, config, repo_root, check_all=True, check_external_urls=True ) + if only: + all_findings = _filter_flat_findings(all_findings, only) if _single_file is not None: _sf_rel = str(_single_file.relative_to(repo_root)) diff --git a/src/zenzic/core/content.py b/src/zenzic/core/content.py index c8229b2..f71f161 100644 --- a/src/zenzic/core/content.py +++ b/src/zenzic/core/content.py @@ -114,12 +114,14 @@ def check_sentence_lengths(file_path: Path, text: str, max_words: int = 40) -> l continue # Skip headings, blockquotes, tables, HTML comments + is_bullet = bool(re.match(r"^(\*|-|\d+\.)\s+", stripped)) if ( not stripped or stripped.startswith("#") or stripped.startswith("", re.DOTALL) _POLY_MDX_COMMENT_RE: re.RegexPattern = re.compile(r"\{\/\*.*?\*\/\}", re.DOTALL) +# Math block patterns for masking (display math $$...$$ and inline math $...$) +_POLY_DISPLAY_MATH_RE: re.RegexPattern = re.compile(r"\$\$.*?\$\$", re.DOTALL) +_POLY_INLINE_MATH_RE: re.RegexPattern = re.compile(r"\$[^$\n]+\$") + # Strip whitespaces and control characters from URLs prima del check Z205. _POLY_CLEAN_URL_RE: re.RegexPattern = re.compile(r"[\s\x00-\x1F]+") @@ -296,7 +300,7 @@ def extract(self, text: str) -> list[HtmlNodeInfo]: Lista di :class:`HtmlNodeInfo`, uno per ogni tag ````/```` trovato fuori dai blocchi di codice. """ - masked = self._mask_inline_code(self._mask_fences(self._mask_comments(text))) + masked = self._mask_math(self._mask_inline_code(self._mask_fences(self._mask_comments(text)))) nodes: list[HtmlNodeInfo] = [] for m in _RE_POLY_TAG.finditer(masked): tag = m.group(1).lower() @@ -313,7 +317,7 @@ def extract_ref_defs(self, text: str) -> list[ReferenceLinkNode]: Fence-skipping obbligatorio tramite _mask_fences() e _mask_comments(). First-definition-wins per la risoluzione dei duplicati. """ - masked = self._mask_fences(self._mask_comments(text)) + masked = self._mask_math(self._mask_fences(self._mask_comments(text))) nodes: list[ReferenceLinkNode] = [] seen_labels: set[str] = set() @@ -351,7 +355,7 @@ def extract_inline_links(self, text: str) -> list[ExtractedLink]: Returns: List of :class:`ExtractedLink` with node_type="inline" or "image". """ - masked = self._mask_fences(self._mask_comments(text)) + masked = self._mask_math(self._mask_fences(self._mask_comments(text))) results: list[ExtractedLink] = [] for lineno, line in enumerate(masked.splitlines(), start=1): @@ -474,6 +478,16 @@ def _mask_fences(self, text: str) -> str: result.append(" " * len(line)) return "\n".join(result) + def _mask_math(self, text: str) -> str: + """Sostituisce blocchi matematici ($$...$$ e $...$) con spazi bianchi preservando i caratteri di a capo.""" + text = _POLY_DISPLAY_MATH_RE.sub( + lambda m: "".join("\n" if c == "\n" else " " for c in m.group(0)), text + ) + text = _POLY_INLINE_MATH_RE.sub( + lambda m: "".join("\n" if c == "\n" else " " for c in m.group(0)), text + ) + return text + def _parse_node(self, tag: str, attrs_str: str, line_no: int, raw_tag: str) -> HtmlNodeInfo: """Parsing lineare della stringa ``attrs`` e classificazione governance. diff --git a/tests/test_cli.py b/tests/test_cli.py index e1d0ea5..c61fbf4 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -2033,3 +2033,30 @@ def test_templates_root_keys_not_swallowed() -> None: assert "forbidden_patterns" in local_data, ( "'forbidden_patterns' was swallowed in LOCAL_TOML_TEMPLATE!" ) + + +def test_check_all_only_filter_excludes_z118(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: + """Verify that zenzic check all --only z101 excludes Z118 warnings.""" + monkeypatch.chdir(tmp_path) + from typer.testing import CliRunner + from zenzic.main import app + + docs = tmp_path / "docs" + docs.mkdir() + (docs / "index.md").write_text("# Test\n[Valid](index.md)\n", encoding="utf-8") + + toml = tmp_path / ".zenzic.toml" + toml.write_text( + '[governance]\n' + 'directory_policies = {"docs/unused/**" = ["Z405"]}\n', + encoding="utf-8", + ) + + runner = CliRunner() + result = runner.invoke( + app, + ["check", "all", "--only", "z101", "--no-header"], + catch_exceptions=False, + ) + assert "Z118" not in result.output + diff --git a/tests/test_suppressions.py b/tests/test_suppressions.py index 091860e..be31374 100644 --- a/tests/test_suppressions.py +++ b/tests/test_suppressions.py @@ -247,3 +247,37 @@ def test_count_inline_suppressions_compatibility(self) -> None: ) tracker = SuppressionTracker(_FILE, text) assert count_inline_suppressions(text) == len(tracker.directives) == 2 + + +def test_global_usage_tracker_toml_line_resolution(tmp_path: Path) -> None: + """Verify that Z118 findings report the actual line number in .zenzic.toml.""" + from zenzic.models.config import ZenzicConfig, GovernanceConfig + from zenzic.core.suppressions import GlobalUsageTracker + + toml_path = tmp_path / ".zenzic.toml" + toml_path.write_text( + "[governance]\n" + "directory_policies = {\n" + ' "docs/assets/**" = ["Z405"],\n' + ' "docs/blog/**" = ["Z405"]\n' + "}\n", + encoding="utf-8", + ) + + config = ZenzicConfig( + governance=GovernanceConfig( + directory_policies={ + "docs/assets/**": ["Z405"], + "docs/blog/**": ["Z405"], + } + ) + ) + config.origin_file = toml_path + + tracker = GlobalUsageTracker(config) + stale = tracker.get_stale_findings(check_all=True) + + lines_by_pattern = {f.message: f.line_no for f in stale} + assert any("docs/assets/**" in msg and line_no == 3 for msg, line_no in lines_by_pattern.items()) + assert any("docs/blog/**" in msg and line_no == 4 for msg, line_no in lines_by_pattern.items()) + diff --git a/tests/test_validator.py b/tests/test_validator.py index ded9def..a3f7f12 100644 --- a/tests/test_validator.py +++ b/tests/test_validator.py @@ -1761,3 +1761,24 @@ def test_stale_allowlist_entry(tmp_path: Path) -> None: assert ( "pyproject.toml:1: Stale absolute_path_allowlist entry" in z110_errors_pyproject[0].message ) + + +def test_math_blocks_link_extraction_ignored(): + """Verify that links syntax inside display math ($$..$$) and inline math ($..$) are ignored.""" + from zenzic.core.validator import PolyglotExtractor + from zenzic.core.rules import _extract_inline_links_with_lines + + content = """# Math Test +$$\\text{Signature} = \\text{SHA256}[\\text{RuleCode} + \\text{PosixPath}](:16)$$ +Here is a normal link: [Valid Link](https://example.com/valid). +Inline math $\\text{Ref}[\\text{Code}](:32)$ should also be ignored. +""" + extractor = PolyglotExtractor() + extracted = extractor.extract_inline_links(content) + urls = [e.url for e in extracted] + assert urls == ["https://example.com/valid"] + + rule_links = _extract_inline_links_with_lines(content) + rule_urls = [u[0] for u in rule_links] + assert rule_urls == ["https://example.com/valid"] + From 87df413fdf5aa517d67e0f81f89ee4b983695cca Mon Sep 17 00:00:00 2001 From: PythonWoods Date: Sun, 2 Aug 2026 18:29:35 +0200 Subject: [PATCH 14/17] release: bump version to 0.27.0 Signed-off-by: PythonWoods --- .bumpversion.toml | 2 +- .github/ISSUE_TEMPLATE/security_vulnerability.yml | 2 +- .pre-commit-hooks.yaml | 2 +- CHANGELOG.md | 2 ++ CITATION.cff | 4 ++-- README.md | 4 ++-- RELEASE.md | 10 +++++----- mkdocs.yml | 2 +- pyproject.toml | 2 +- src/zenzic/__init__.py | 2 +- src/zenzic/cli/_standalone.py | 2 +- uv.lock | 2 +- 12 files changed, 19 insertions(+), 17 deletions(-) diff --git a/.bumpversion.toml b/.bumpversion.toml index 541d030..55abb0c 100644 --- a/.bumpversion.toml +++ b/.bumpversion.toml @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 [tool.bumpversion] -current_version = "0.26.5" +current_version = "0.27.0" parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)((?Pa|b|rc)(?P\\d+))?" serialize = [ "{major}.{minor}.{patch}{pre_l}{pre_n}", diff --git a/.github/ISSUE_TEMPLATE/security_vulnerability.yml b/.github/ISSUE_TEMPLATE/security_vulnerability.yml index 1320432..e4f3953 100644 --- a/.github/ISSUE_TEMPLATE/security_vulnerability.yml +++ b/.github/ISSUE_TEMPLATE/security_vulnerability.yml @@ -29,7 +29,7 @@ body: attributes: label: Zenzic version description: Output of `zenzic --version` - placeholder: "0.26.5" + placeholder: "0.27.0" validations: required: true diff --git a/.pre-commit-hooks.yaml b/.pre-commit-hooks.yaml index d5059d0..7f2820a 100644 --- a/.pre-commit-hooks.yaml +++ b/.pre-commit-hooks.yaml @@ -7,7 +7,7 @@ # # repos: # - repo: https://github.com/PythonWoods/zenzic -# rev: v0.26.5 +# rev: v0.27.0 # hooks: # - id: zenzic-verify # quality gate — corrisponde a `just verify` lato zenzic # - id: zenzic-guard # fast staged-file credential scan diff --git a/CHANGELOG.md b/CHANGELOG.md index a9e933b..b6352f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ Versions follow [Semantic Versioning](https://semver.org/). ## [Unreleased] +## [0.27.0] - 2026-08-02 + ### Added - **Smart Link Graph (`V0.27-01`)**: Transformed the Virtual Site Map (VSM) into a Smart Link Graph that tracks deterministic adjacency lists for outgoing links across document nodes. diff --git a/CITATION.cff b/CITATION.cff index bbb04c8..3436628 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -15,8 +15,8 @@ abstract: >- performs deterministic static analysis using a two-pass reference pipeline and a RE2-backed credential scanner, with zero subprocess calls and full SARIF 2.1.0 support for CI/CD integration. -version: 0.26.5 -date-released: 2026-07-29 +version: 0.27.0 +date-released: 2026-08-02 url: "https://zenzic.dev" repository-code: "https://github.com/PythonWoods/zenzic" repository-artifact: "https://pypi.org/project/zenzic/" diff --git a/README.md b/README.md index 29d22a9..1bd4d64 100644 --- a/README.md +++ b/README.md @@ -143,7 +143,7 @@ Zenzic Core is headless and emits standardized **SARIF** JSON, ensuring seamless "tool": { "driver": { "name": "zenzic", - "version": "0.26.5", + "version": "0.27.0", "rules": [ { "id": "Z101", @@ -215,7 +215,7 @@ uv tool upgrade zenzic To run a specific version ephemerally without altering your global environment: ```bash -uvx zenzic@0.26.5 check all +uvx zenzic@0.27.0 check all ``` --- diff --git a/RELEASE.md b/RELEASE.md index e6a0bb6..163f12e 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -8,9 +8,9 @@ | Field | Value | | :------- | :--------- | -| Version | v0.26.5 | +| Version | v0.27.0 | | Codename | Magnetite | -| Date | 2026-07-29 | +| Date | 2026-08-02 | | Status | Stable | ## Release Checklist @@ -21,7 +21,7 @@ Before tagging, every item must be green: - [ ] `zenzic lab all` — all 20 scenarios exit with expected code - [ ] `zenzic score --stamp` committed — badge in README.md reflects current score - [ ] `zenzic check all .` — zero findings in the repo root -- [ ] `pyproject.toml` version matches the tag (`0.26.5`) +- [ ] `pyproject.toml` version matches the tag (`0.27.0`) - [ ] `CITATION.cff` version and date updated - [ ] `CHANGELOG.md` — `[Unreleased]` section moved to the new version heading - [ ] Update SECURITY.md support table (Add new release, demote previous to Critical/EOL). @@ -53,12 +53,12 @@ git checkout main git pull origin main # 3. Tag the main branch and push -git tag -s -m "Release v0.26.5" v0.26.5 +git tag -s -m "Release v0.27.0" v0.27.0 git push origin main --tags ``` -- [ ] Create GitHub Release from the tag, using the `## [0.26.5]` CHANGELOG section as the release body. +- [ ] Create GitHub Release from the tag, using the `## [0.27.0]` CHANGELOG section as the release body. ## Changelog Reference diff --git a/mkdocs.yml b/mkdocs.yml index 772bee3..e05a5db 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -267,7 +267,7 @@ extra: # ADR-037: No hardcoded SemVer in any .html or .md source. # CI pipeline passes the current version at build time, e.g.: # uv run mkdocs build --extra zenzic_version=0.14.1 - zenzic_version: "0.26.5" # release sync + zenzic_version: "0.27.0" # release sync social: - icon: fontawesome/brands/github link: https://github.com/PythonWoods/zenzic diff --git a/pyproject.toml b/pyproject.toml index 5393823..2e4ee60 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,7 +13,7 @@ build-backend = "hatchling.build" [project] name = "zenzic" -version = "0.26.5" +version = "0.27.0" description = "Deterministic Document Integrity Engine and SAST for Markdown/MDX graphs." readme = "README.md" requires-python = ">=3.10" diff --git a/src/zenzic/__init__.py b/src/zenzic/__init__.py index c331b59..06abaf0 100644 --- a/src/zenzic/__init__.py +++ b/src/zenzic/__init__.py @@ -2,5 +2,5 @@ # SPDX-License-Identifier: Apache-2.0 """Zenzic — engine-agnostic static analyzer and credential scanner for Markdown documentation.""" -__version__ = "0.26.5" +__version__ = "0.27.0" __version_name__ = "Basalt" # Release codename stored separately from the package version. diff --git a/src/zenzic/cli/_standalone.py b/src/zenzic/cli/_standalone.py index 56a9d36..f14be5e 100644 --- a/src/zenzic/cli/_standalone.py +++ b/src/zenzic/cli/_standalone.py @@ -1603,7 +1603,7 @@ def _scaffold_plugin(repo_root: Path, plugin_name: str, force: bool) -> None: description = "Custom Zenzic plugin rule package" readme = "README.md" requires-python = ">=3.11" -dependencies = ["zenzic>=0.26.5"] +dependencies = ["zenzic>=0.27.0"] [project.entry-points."zenzic.rules"] {project_slug} = "{module_name}.rules:{class_name}" diff --git a/uv.lock b/uv.lock index 9318b9a..f203d2b 100644 --- a/uv.lock +++ b/uv.lock @@ -2465,7 +2465,7 @@ wheels = [ [[package]] name = "zenzic" -version = "0.26.5" +version = "0.27.0" source = { editable = "." } dependencies = [ { name = "google-re2" }, From bbe10ebee2ac0696f78ce21f1641c3b6f23d325d Mon Sep 17 00:00:00 2001 From: PythonWoods Date: Sun, 2 Aug 2026 18:49:53 +0200 Subject: [PATCH 15/17] docs: enforce mirror-law engine veracity and stabilize CI pipeline Signed-off-by: PythonWoods --- .pre-commit-config.yaml | 2 + docs/assets/css/README.md | 1 - .../2026-06-13-why-we-dropped-docusaurus.md | 17 +++---- docs/blog/posts/2026-06-27-v016-magnetite.md | 3 -- ...4-zenzic-v0240-interactive-intelligence.md | 1 - ...026-07-26-zenzic-v0260-dqs-workspace-ui.md | 2 - .../records/adr-002-zero-subprocesses.md | 1 - .../records/adr-007-sovereign-sandbox.md | 1 - .../adr-vault/records/adr-020-mirror-law.md | 1 - .../records/adr-021-parallel-audit.md | 1 - .../adr-022-english-only-governance.md | 1 - .../records/adr-075-radical-unawareness.md | 1 - .../records/adr-agnostic-universalism.md | 1 - .../records/adr-bilingual-structural.md | 1 - .../records/adr-decentralized-cli.md | 1 - .../adr-vault/records/adr-discovery.md | 1 - .../adr-vault/records/adr-lint-source.md | 1 - .../adr-vault/records/adr-native-telemetry.md | 1 - .../adr-vault/records/adr-path-sovereignty.md | 1 - .../adr-vault/records/adr-regex-acl.md | 1 - .../records/adr-unified-perimeter.md | 1 - docs/developers/explanation/core-laws.md | 1 - .../explanation/governance/index.md | 1 - .../developers/explanation/governance/lpgp.md | 3 +- .../explanation/governance/technical-debt.md | 2 - .../explanation/mdx-asset-rationale.md | 1 - .../sovereign-verification-model.md | 1 - .../explanation/tailwind-mkdocs-bridge.md | 6 +-- .../how-to/contribute/pull-requests.md | 1 - .../how-to/contribute/report-a-bug.md | 1 - .../how-to/contribute/report-a-docs-issue.md | 1 - docs/developers/how-to/troubleshooting.md | 3 -- docs/developers/how-to/write-ast-rule.md | 2 - docs/developers/reference/adapter-api.md | 1 - docs/developers/reference/adapter-examples.md | 1 - docs/developers/reference/ast-foundations.md | 1 - .../credential-scanner-obligations.md | 1 - .../supply-chain-assurance-profile.md | 1 - docs/developers/reference/zenzic-style.md | 2 - docs/explanation/baseline-tracking.md | 12 ++++- docs/explanation/brand-philosophy.md | 3 +- docs/explanation/configuration-loading.md | 1 - docs/explanation/core-mechanics.md | 1 - docs/explanation/exclusion-design.md | 2 - .../language-server-architecture.md | 1 - docs/explanation/mineral-path.md | 1 - docs/explanation/scoring-system.md | 1 - docs/explanation/why-zenzic.md | 3 -- docs/how-to/add-badges.md | 1 - docs/how-to/configure-ci-cd.md | 1 - docs/how-to/configure-privacy-gate.md | 1 - docs/how-to/configure-social-metadata.md | 1 - docs/how-to/initialize-configuration.md | 1 - docs/how-to/migrate-engines.md | 1 - docs/how-to/troubleshooting.md | 2 - docs/how-to/use-brand-system.md | 7 +++ docs/reference/api-json.md | 1 - docs/reference/checks.md | 1 - docs/reference/cli.md | 3 -- docs/rules/Z000.md | 2 - docs/rules/Z001.md | 2 - docs/rules/Z101.md | 2 - docs/rules/Z102.md | 2 - docs/rules/Z103.md | 2 - docs/rules/Z104.md | 2 - docs/rules/Z105.md | 2 - docs/rules/Z106.md | 2 - docs/rules/Z107.md | 2 - docs/rules/Z108.md | 2 - docs/rules/Z109.md | 2 - docs/rules/Z110.md | 2 - docs/rules/Z111.md | 2 - docs/rules/Z114.md | 2 - docs/rules/Z118.md | 2 - docs/rules/Z201.md | 2 - docs/rules/Z202.md | 2 - docs/rules/Z203.md | 2 - docs/rules/Z204.md | 2 - docs/rules/Z301.md | 2 - docs/rules/Z302.md | 2 - docs/rules/Z303.md | 2 - docs/rules/Z401.md | 2 - docs/rules/Z402.md | 2 - docs/rules/Z403.md | 2 - docs/rules/Z404.md | 2 - docs/rules/Z405.md | 2 - docs/rules/Z406.md | 2 - docs/rules/Z410.md | 4 +- docs/rules/Z411.md | 2 - docs/rules/Z501.md | 2 - docs/rules/Z502.md | 2 - docs/rules/Z503.md | 2 - docs/rules/Z504.md | 2 - docs/rules/Z505.md | 2 - docs/rules/Z506.md | 2 - docs/rules/Z510.md | 2 - docs/rules/Z511.md | 2 - docs/rules/Z512.md | 2 - docs/rules/Z601.md | 2 - docs/rules/Z603.md | 2 - .../z6xx-brand/z603-dead-suppression.md | 1 - fix_z411.py | 45 ------------------- src/zenzic/cli/_check.py | 2 + src/zenzic/core/adapters/_mkdocs.py | 3 +- src/zenzic/core/adapters/_zensical.py | 3 +- src/zenzic/core/content.py | 2 +- src/zenzic/core/suppressions.py | 4 +- src/zenzic/core/validator.py | 4 +- tests/test_cli.py | 9 ++-- tests/test_suppressions.py | 7 +-- tests/test_validator.py | 3 +- 111 files changed, 54 insertions(+), 229 deletions(-) delete mode 100644 fix_z411.py diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f9ae9a9..5aa2904 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -16,6 +16,7 @@ repos: args: [--unsafe] - id: check-json - id: check-toml + exclude: ^examples/ - id: check-added-large-files - id: check-merge-conflict - id: check-case-conflict @@ -26,6 +27,7 @@ repos: rev: f295829140d25717bc79368d3f966fc1f67a824f # v0.41.0 hooks: - id: markdownlint + exclude: ^examples/ args: ["--fix"] # 3. Ruff (linting & formatting) diff --git a/docs/assets/css/README.md b/docs/assets/css/README.md index d538e7c..efaaa50 100644 --- a/docs/assets/css/README.md +++ b/docs/assets/css/README.md @@ -8,7 +8,6 @@ description: "Build protocol and guidelines for the Tailwind CSS external artifa This section details the specifications and guidelines for Tailwind CSS External Build Artifact within the Zenzic ecosystem. - ## Protocol `zenzic-tailwind.min.css` is an **external build artifact** produced by a human-run diff --git a/docs/blog/posts/2026-06-13-why-we-dropped-docusaurus.md b/docs/blog/posts/2026-06-13-why-we-dropped-docusaurus.md index 6660394..4626c12 100644 --- a/docs/blog/posts/2026-06-13-why-we-dropped-docusaurus.md +++ b/docs/blog/posts/2026-06-13-why-we-dropped-docusaurus.md @@ -101,17 +101,18 @@ We applied Pillar 4 of the Zenzic Manifesto — Zero Technical Debt — and dele --- -## What Zenzic Supports +## The Deterministic Perimeter -Zenzic supports documentation engines whose anchor output is **deterministically derivable from Markdown source without executing external runtime code**. +Zenzic's architecture is designed exclusively for documentation engines whose anchor output is **deterministically derivable from Markdown source without executing external runtime code**. -In practice, this means: +In practice, this defines our current support and future roadmap: -- **MkDocs** — anchors derived from `python-markdown`'s heading slugifier, stable and documented -- **Sphinx** — anchors derived from `docutils` AST, fully introspectable from Python -- **Hugo** — anchors derived from `goldmark`'s slugifier, deterministic from spec -- **Jekyll** — anchors derived from `kramdown`, deterministic from spec -- **Zensical** — our own engine, Python-native, anchor generation by definition under our control +- **MkDocs** *(Supported)* — anchors derived from `python-markdown` heading slugification, stable and documented +- **Zensical** *(Supported)* — Python-native engine; anchor generation is fully controlled within the same deterministic model +- **Standalone** *(Supported)* — engine-agnostic static analysis over Markdown source trees without a framework adapter contract +- **Sphinx** *(Roadmap)* — architecture-compatible candidate via deterministic `docutils`-based anchors, but no native adapter is currently shipped +- **Hugo** *(Roadmap)* — architecture-compatible candidate via deterministic `goldmark`-based anchors, but no native adapter is currently shipped +- **Jekyll** *(Roadmap)* — architecture-compatible candidate via deterministic `kramdown`-based anchors, but no native adapter is currently shipped Docusaurus falls outside this perimeter. Not because we did not try, and not because we plan to revisit it with more engineering effort. Because the architecture of Docusaurus is incompatible with the architecture of Zenzic at a level that cannot be bridged without abandoning what Zenzic is. diff --git a/docs/blog/posts/2026-06-27-v016-magnetite.md b/docs/blog/posts/2026-06-27-v016-magnetite.md index 4fe891c..a472094 100644 --- a/docs/blog/posts/2026-06-27-v016-magnetite.md +++ b/docs/blog/posts/2026-06-27-v016-magnetite.md @@ -19,7 +19,6 @@ Zenzic v0.16.0 "Magnetite" marks the transition from an experimental toolchain t This section details the specifications and guidelines for 1. The Bootstrap Gate: Z001 CORE_CONFIG_STRUCTURE within the Zenzic ecosystem. - ### Problem statement Prior to v0.16.0, a type error in `.zenzic.toml` could cause Zenzic to start analysis, produce partial output, and exit with an ambiguous message — or, in some code paths, exit 0. A CI pipeline consuming that output would record a clean run on top of a structurally invalid configuration. @@ -85,7 +84,6 @@ $ zenzic check all examples/z001-config-error/ This section details the specifications and guidelines for 2. Configuration Hygiene: Z110 STALE_ALLOWLIST_ENTRY within the Zenzic ecosystem. - ### Problem statement `absolute_path_allowlist` in `.zenzic.toml` permits specific absolute path prefixes in links without triggering `Z105 ABSOLUTE_PATH`. This allowlist exists for legacy migration paths. Once the migration is complete, the entries in the allowlist are no longer referenced by any link in the documentation. @@ -125,7 +123,6 @@ Z110 is a `warning` by default. Repositories running `strict = true` in `.zenzic This section details the specifications and guidelines for 3. Unified Exception Hierarchy within the Zenzic ecosystem. - ### Problem statement Before v0.16.0, distinct code paths in the scanner raised different exception types for semantically identical conditions — a rule violation. CI adapters implemented catch-by-type logic that required updates every time a new exception subclass was introduced. diff --git a/docs/blog/posts/2026-07-24-zenzic-v0240-interactive-intelligence.md b/docs/blog/posts/2026-07-24-zenzic-v0240-interactive-intelligence.md index 72375a9..eaa324c 100644 --- a/docs/blog/posts/2026-07-24-zenzic-v0240-interactive-intelligence.md +++ b/docs/blog/posts/2026-07-24-zenzic-v0240-interactive-intelligence.md @@ -63,7 +63,6 @@ The Zenzic Language Server computes the workspace DQS using a zero-disk-read mod This section details the specifications and guidelines for Deterministic Bugfixes and Stability within the Zenzic ecosystem. - ### 1. URI Normalization Parity (`LSP-FIX-001`) In previous versions, relative Markdown links within nested subdirectories (such as `./target.md` in `docs/developers/explanation/adr-vault/records/`) produced false-positive `Z101` (Broken Link) findings in LSP mode. diff --git a/docs/blog/posts/2026-07-26-zenzic-v0260-dqs-workspace-ui.md b/docs/blog/posts/2026-07-26-zenzic-v0260-dqs-workspace-ui.md index 569f5d0..e423090 100644 --- a/docs/blog/posts/2026-07-26-zenzic-v0260-dqs-workspace-ui.md +++ b/docs/blog/posts/2026-07-26-zenzic-v0260-dqs-workspace-ui.md @@ -34,7 +34,6 @@ Zenzic v0.26.0 solves this fundamental architectural challenge by establishing a This section details the specifications and guidelines for Architectural Invariants Preserved within the Zenzic ecosystem. - ### 1. Absolute Determinism Because the status bar indicator is powered directly by `zenzic score --json`, the score displayed inside VS Code is **mathematically identical** to the score computed by GitHub Actions and CI/CD pipelines. @@ -133,7 +132,6 @@ Zenzic v0.26.0 contributes a new command to VS Code: This section details the specifications and guidelines for Upgrade Guide within the Zenzic ecosystem. - ### Core Engine & CLI ```bash diff --git a/docs/developers/explanation/adr-vault/records/adr-002-zero-subprocesses.md b/docs/developers/explanation/adr-vault/records/adr-002-zero-subprocesses.md index e52c876..678f8e3 100644 --- a/docs/developers/explanation/adr-vault/records/adr-002-zero-subprocesses.md +++ b/docs/developers/explanation/adr-vault/records/adr-002-zero-subprocesses.md @@ -8,7 +8,6 @@ description: "Architectural Decision Record prohibiting subprocesses within the This section details the specifications and guidelines for ADR 002: Zero Subprocesses Policy within the Zenzic ecosystem. - ## Context Running arbitrary executables or scripts via subprocesses (e.g., `os.system`, `subprocess`) introduces severe security, portability, and determinism risks into the Core execution environment. diff --git a/docs/developers/explanation/adr-vault/records/adr-007-sovereign-sandbox.md b/docs/developers/explanation/adr-vault/records/adr-007-sovereign-sandbox.md index ccc5f35..9d28555 100644 --- a/docs/developers/explanation/adr-vault/records/adr-007-sovereign-sandbox.md +++ b/docs/developers/explanation/adr-vault/records/adr-007-sovereign-sandbox.md @@ -8,7 +8,6 @@ description: "Architectural Decision Record on isolating the Zenzic analysis run This section details the specifications and guidelines for ADR 007: Sovereign Sandbox within the Zenzic ecosystem. - ## Context When analyzing and parsing external data or configuration, the system must prevent unexpected privilege escalation or side effects. diff --git a/docs/developers/explanation/adr-vault/records/adr-020-mirror-law.md b/docs/developers/explanation/adr-vault/records/adr-020-mirror-law.md index 237eb94..96c76d1 100644 --- a/docs/developers/explanation/adr-vault/records/adr-020-mirror-law.md +++ b/docs/developers/explanation/adr-vault/records/adr-020-mirror-law.md @@ -8,7 +8,6 @@ description: "Architectural Decision Record on total synchronization between cod This section details the specifications and guidelines for ADR 020: Mirror Law within the Zenzic ecosystem. - ## Context Discrepancies between the codebase, the filesystem state, and the documentation lead to architectural rot and a breakdown of trust in the system's "memory". diff --git a/docs/developers/explanation/adr-vault/records/adr-021-parallel-audit.md b/docs/developers/explanation/adr-vault/records/adr-021-parallel-audit.md index f4c05b9..4c56e63 100644 --- a/docs/developers/explanation/adr-vault/records/adr-021-parallel-audit.md +++ b/docs/developers/explanation/adr-vault/records/adr-021-parallel-audit.md @@ -103,7 +103,6 @@ bypass the startup canary (`_assert_regex_canary()`). The technical rationale and architectural context driving this design decision are outlined below. - ### 1. Pillar 3 Preserved The fail-fast is implemented entirely in the coordinator, which is orchestration diff --git a/docs/developers/explanation/adr-vault/records/adr-022-english-only-governance.md b/docs/developers/explanation/adr-vault/records/adr-022-english-only-governance.md index f4f748b..1b65b7b 100644 --- a/docs/developers/explanation/adr-vault/records/adr-022-english-only-governance.md +++ b/docs/developers/explanation/adr-vault/records/adr-022-english-only-governance.md @@ -11,7 +11,6 @@ description: "ADR 022: English-Only Governance & Deprecation of Bilingual Invari This section details the specifications and guidelines for ADR 022: English-Only Governance & Deprecation of Bilingual Invariant within the Zenzic ecosystem. - ## Context Following the strategic shift to an "English-Only" governance model, ADR-008 (Bilingual Structural Invariant) is no longer valid. The overhead of maintaining bilingual documentation (EN/IT) across all examples, tutorials, and architectural records slowed down feature velocity and introduced synchronization debt. diff --git a/docs/developers/explanation/adr-vault/records/adr-075-radical-unawareness.md b/docs/developers/explanation/adr-vault/records/adr-075-radical-unawareness.md index 4d45eca..20c3993 100644 --- a/docs/developers/explanation/adr-vault/records/adr-075-radical-unawareness.md +++ b/docs/developers/explanation/adr-vault/records/adr-075-radical-unawareness.md @@ -8,7 +8,6 @@ description: "Architectural Decision Record explaining why the Zenzic Core is de This section details the specifications and guidelines for ADR 075: Radical Unawareness within the Zenzic ecosystem. - ## Context Tight coupling between the Core logic and specific Continuous Integration (CI) consumers creates fragile architectures and vendor lock-in. diff --git a/docs/developers/explanation/adr-vault/records/adr-agnostic-universalism.md b/docs/developers/explanation/adr-vault/records/adr-agnostic-universalism.md index 66ef9e3..65d7132 100644 --- a/docs/developers/explanation/adr-vault/records/adr-agnostic-universalism.md +++ b/docs/developers/explanation/adr-vault/records/adr-agnostic-universalism.md @@ -49,7 +49,6 @@ main scan pass. The technical rationale and architectural context driving this design decision are outlined below. - ### 1. Privacy Gate Is a Universal Contract A Privacy Gate that applies only to Docusaurus is not an Exclusion Zone — it is a diff --git a/docs/developers/explanation/adr-vault/records/adr-bilingual-structural.md b/docs/developers/explanation/adr-vault/records/adr-bilingual-structural.md index bff8b07..02f596a 100644 --- a/docs/developers/explanation/adr-vault/records/adr-bilingual-structural.md +++ b/docs/developers/explanation/adr-vault/records/adr-bilingual-structural.md @@ -82,7 +82,6 @@ Before committing any change that touches the filesystem structure, structural s The technical rationale and architectural context driving this design decision are outlined below. - ### 1. Italian is a First-Class Citizen The Italian documentation is not a secondary asset or a "nice to have". It is diff --git a/docs/developers/explanation/adr-vault/records/adr-decentralized-cli.md b/docs/developers/explanation/adr-vault/records/adr-decentralized-cli.md index b14beed..e8ef219 100644 --- a/docs/developers/explanation/adr-vault/records/adr-decentralized-cli.md +++ b/docs/developers/explanation/adr-vault/records/adr-decentralized-cli.md @@ -119,7 +119,6 @@ I/O dependencies. The technical rationale and architectural context driving this design decision are outlined below. - ### 1. Single Responsibility at the File Level A 2,000-line file is not a file — it is an undeclared package. Formalising the diff --git a/docs/developers/explanation/adr-vault/records/adr-discovery.md b/docs/developers/explanation/adr-vault/records/adr-discovery.md index e911f8d..eba352f 100644 --- a/docs/developers/explanation/adr-vault/records/adr-discovery.md +++ b/docs/developers/explanation/adr-vault/records/adr-discovery.md @@ -67,7 +67,6 @@ filesystem root. The technical rationale and architectural context driving this design decision are outlined below. - ### 1. Safety: Preventing Accidental Massive Indexing A naive implementation that defaults to the current directory when no marker diff --git a/docs/developers/explanation/adr-vault/records/adr-lint-source.md b/docs/developers/explanation/adr-vault/records/adr-lint-source.md index 28d50d8..25ca54d 100644 --- a/docs/developers/explanation/adr-vault/records/adr-lint-source.md +++ b/docs/developers/explanation/adr-vault/records/adr-lint-source.md @@ -90,7 +90,6 @@ The VSM allows Zenzic to answer questions that previously required a live site: The technical rationale and architectural context driving this design decision are outlined below. - ### 1. Pre-Build Error Prevention A broken link discovered before the build is a developer warning. A broken link diff --git a/docs/developers/explanation/adr-vault/records/adr-native-telemetry.md b/docs/developers/explanation/adr-vault/records/adr-native-telemetry.md index 77421b2..80f22b5 100644 --- a/docs/developers/explanation/adr-vault/records/adr-native-telemetry.md +++ b/docs/developers/explanation/adr-vault/records/adr-native-telemetry.md @@ -65,7 +65,6 @@ invocations and enforces the read/write boundary between the two modes. The technical rationale and architectural context driving this design decision are outlined below. - ### 1. Zero-Config Default enforcement The Zero-Config Default pillar requires that users can adopt Zenzic features without configuring diff --git a/docs/developers/explanation/adr-vault/records/adr-path-sovereignty.md b/docs/developers/explanation/adr-vault/records/adr-path-sovereignty.md index f05cd25..6111f5d 100644 --- a/docs/developers/explanation/adr-vault/records/adr-path-sovereignty.md +++ b/docs/developers/explanation/adr-vault/records/adr-path-sovereignty.md @@ -91,7 +91,6 @@ else: The technical rationale and architectural context driving this design decision are outlined below. - ### 1. The Principle of Contextual Integrity A configuration file belongs to the project it lives in. Loading a foreign diff --git a/docs/developers/explanation/adr-vault/records/adr-regex-acl.md b/docs/developers/explanation/adr-vault/records/adr-regex-acl.md index 6e0780d..31f9236 100644 --- a/docs/developers/explanation/adr-vault/records/adr-regex-acl.md +++ b/docs/developers/explanation/adr-vault/records/adr-regex-acl.md @@ -126,7 +126,6 @@ These constraints are permanent consequences of ADR-013: The system impact and operational consequences resulting from this architectural decision include: - ### Pros - **ZRT-007 is enforceable in one place.** Auditability improves because there diff --git a/docs/developers/explanation/adr-vault/records/adr-unified-perimeter.md b/docs/developers/explanation/adr-vault/records/adr-unified-perimeter.md index 8215c11..6c3bdb2 100644 --- a/docs/developers/explanation/adr-vault/records/adr-unified-perimeter.md +++ b/docs/developers/explanation/adr-vault/records/adr-unified-perimeter.md @@ -81,7 +81,6 @@ Two independent fixes were applied to `docusaurus.config.ts`. For step-by-step i Alternative implementation designs and architectural options that were evaluated and rejected: - ### `themeConfig.siteStorage.themeKey` Proposed in the CEO directive as a way to control the storage key. This property diff --git a/docs/developers/explanation/core-laws.md b/docs/developers/explanation/core-laws.md index bd9f590..d9649dd 100644 --- a/docs/developers/explanation/core-laws.md +++ b/docs/developers/explanation/core-laws.md @@ -86,7 +86,6 @@ with open("mkdocs.yml") as f: locale = config.get("plugins", {}).get("i18n", {}).get("default_locale", "en") ``` - ## See Also - [Zenzic Style Guide](../reference/zenzic-style.md) diff --git a/docs/developers/explanation/governance/index.md b/docs/developers/explanation/governance/index.md index 2b1a45f..11fbc73 100644 --- a/docs/developers/explanation/governance/index.md +++ b/docs/developers/explanation/governance/index.md @@ -76,4 +76,3 @@ own structure from erosion by convenience, urgency, and well-intentioned shortcu ### "Do not trust us. Trust the system we built to protect you." This section details the specifications and guidelines for "Do not trust us. Trust the system we built to protect you." within the Zenzic ecosystem. - diff --git a/docs/developers/explanation/governance/lpgp.md b/docs/developers/explanation/governance/lpgp.md index e75df5d..12ac877 100644 --- a/docs/developers/explanation/governance/lpgp.md +++ b/docs/developers/explanation/governance/lpgp.md @@ -30,7 +30,6 @@ The current extended textual descriptions, which produce unnecessary cognitive l Zenzic will prove its own integrity via "dogfooding". Instead of custom UI components, the Landing Page will embed the official CI-generated Shields.io badges (DQS Score, Audit Status). This guarantees absolute real-time state synchronization without custom build hooks, proving the effectiveness of the tool using its own standard outputs. - ## See Also -- [Contributing Pull Requests](../../how-to/contribute/pull-requests.md) +* [Contributing Pull Requests](../../how-to/contribute/pull-requests.md) diff --git a/docs/developers/explanation/governance/technical-debt.md b/docs/developers/explanation/governance/technical-debt.md index 2a6f9b6..3358668 100644 --- a/docs/developers/explanation/governance/technical-debt.md +++ b/docs/developers/explanation/governance/technical-debt.md @@ -26,7 +26,6 @@ follow-through. This section details the specifications and guidelines for Open Entries within the Zenzic ecosystem. - ### Z108 STALE_ALLOWLIST_ENTRY **Category:** Configuration hygiene @@ -109,7 +108,6 @@ Three commitments govern this page: When you contribute a deferral here, you are not admitting weakness — you are protecting the next contributor from rediscovering the same trade-off. - ## See Also - [Finding Codes Index](../../../reference/finding-codes.md) diff --git a/docs/developers/explanation/mdx-asset-rationale.md b/docs/developers/explanation/mdx-asset-rationale.md index 97ba879..42dc4d7 100644 --- a/docs/developers/explanation/mdx-asset-rationale.md +++ b/docs/developers/explanation/mdx-asset-rationale.md @@ -25,7 +25,6 @@ This rule exists due to several critical limitations of static `.svg` files with | **Pure Graphics** (logos, simple shapes) | Permitted (✓) | No text nodes or localized data requiring translations | | **Text-Bearing Illustrations inside Markdown** | Forbidden (❌) | Must use a `.tsx` component to support i18n and styling | - ## See Also - [Zenzic Style Guide](../reference/zenzic-style.md) diff --git a/docs/developers/explanation/sovereign-verification-model.md b/docs/developers/explanation/sovereign-verification-model.md index 542112c..cb5edf8 100644 --- a/docs/developers/explanation/sovereign-verification-model.md +++ b/docs/developers/explanation/sovereign-verification-model.md @@ -72,7 +72,6 @@ The following practices are **strictly prohibited** in Zenzic quality gates: - Ad-hoc local configuration edits used to bypass structural checks. - Divergent execution scripts between local developer workstations and CI runners. - ## See Also - [Adapter API Reference](../reference/adapter-api.md) diff --git a/docs/developers/explanation/tailwind-mkdocs-bridge.md b/docs/developers/explanation/tailwind-mkdocs-bridge.md index 6e6b1d3..c6099b5 100644 --- a/docs/developers/explanation/tailwind-mkdocs-bridge.md +++ b/docs/developers/explanation/tailwind-mkdocs-bridge.md @@ -2,10 +2,9 @@ description: "How Zenzic reconciles Tailwind CSS rem scaling with MkDocs Material's font-size and syncs dark mode state." --- -## - -This section details the specifications and guidelines for within the Zenzic ecosystem. + +This section details the specifications and guidelines for the Tailwind/MkDocs bridge within the Zenzic ecosystem. # Tailwind/MkDocs Material Bridge @@ -115,7 +114,6 @@ The Tailwind source files may retain `dark:` utilities for semantic clarity and | `docs/assets/css/zenzic-tailwind.min.css` | Compiled Tailwind artifact (human-run Tailwind CLI; no Node.js in CI) | | `overrides/partials/homepage/` | Jinja2 partials rendered inside the `zz-tailwind-root` boundary | - ## See Also - [Brand System Guidelines](../../how-to/use-brand-system.md) diff --git a/docs/developers/how-to/contribute/pull-requests.md b/docs/developers/how-to/contribute/pull-requests.md index 528fea1..6e1ae84 100644 --- a/docs/developers/how-to/contribute/pull-requests.md +++ b/docs/developers/how-to/contribute/pull-requests.md @@ -242,7 +242,6 @@ Signed-off-by: ...
Accepted commit types
- ## See Also - [Zenzic Style Guide](../../reference/zenzic-style.md) diff --git a/docs/developers/how-to/contribute/report-a-bug.md b/docs/developers/how-to/contribute/report-a-bug.md index 01e1023..d012b9c 100644 --- a/docs/developers/how-to/contribute/report-a-bug.md +++ b/docs/developers/how-to/contribute/report-a-bug.md @@ -119,7 +119,6 @@ we need to help you. __We'll take it from here.__ - ## See Also - [Contributing Pull Requests](./pull-requests.md) diff --git a/docs/developers/how-to/contribute/report-a-docs-issue.md b/docs/developers/how-to/contribute/report-a-docs-issue.md index 0eff4cb..e844745 100644 --- a/docs/developers/how-to/contribute/report-a-docs-issue.md +++ b/docs/developers/how-to/contribute/report-a-docs-issue.md @@ -82,7 +82,6 @@ us with every piece of information we need to improve it. __We'll take it from here.__ - ## See Also - [Contributing Pull Requests](./pull-requests.md) diff --git a/docs/developers/how-to/troubleshooting.md b/docs/developers/how-to/troubleshooting.md index e20970d..0c469c8 100644 --- a/docs/developers/how-to/troubleshooting.md +++ b/docs/developers/how-to/troubleshooting.md @@ -15,7 +15,6 @@ For user-facing installation and configuration problems, see the Follow the setup instructions below to configure your development and scanning environment. - ### `zenzic --version` shows the wrong version after a release bump **Symptom:** The global `zenzic` command reports an older version than expected, even @@ -85,7 +84,6 @@ Do not suppress this error with a config workaround — it indicates a setup mis This section details the specifications and guidelines for Release Workflow within the Zenzic ecosystem. - ### `just release` fails with "release-contracts" error **Symptom:** `just release patch` (or `minor`/`major`) exits with: @@ -111,7 +109,6 @@ allowing a version bump. Common violations: Review the common diagnostic signals and troubleshooting resolution steps detailed below. - ### Z105 Path Safety Breach **Symptom:** Zenzic blocks a relative traversal path and reports a path safety breach. diff --git a/docs/developers/how-to/write-ast-rule.md b/docs/developers/how-to/write-ast-rule.md index ad2b42f..c11e48c 100644 --- a/docs/developers/how-to/write-ast-rule.md +++ b/docs/developers/how-to/write-ast-rule.md @@ -40,7 +40,6 @@ raw text. This section details the specifications and guidelines for Quick start within the Zenzic ecosystem. - ### 1. Create the rules directory ```bash @@ -110,7 +109,6 @@ normal output. This section details the specifications and guidelines for The BaseASTRule contract within the Zenzic ecosystem. - ### Constructor ```text diff --git a/docs/developers/reference/adapter-api.md b/docs/developers/reference/adapter-api.md index ae71481..7ff5081 100644 --- a/docs/developers/reference/adapter-api.md +++ b/docs/developers/reference/adapter-api.md @@ -86,7 +86,6 @@ The abstract base class for all engine adapters. Adapters translate engine-speci This section details the specifications and guidelines for Core Methods within the Zenzic ecosystem. - #### `provides_index(self, directory_path: Path) -> bool` Answers whether the engine auto-generates a browsable index for the directory (e.g., via `index.md` or a category metadata file). Used during missing index directory scans. diff --git a/docs/developers/reference/adapter-examples.md b/docs/developers/reference/adapter-examples.md index 04a7fd4..9f1e1d0 100644 --- a/docs/developers/reference/adapter-examples.md +++ b/docs/developers/reference/adapter-examples.md @@ -167,7 +167,6 @@ From the repository root, verify all examples produce their expected exit codes: (cd examples/plugin-scaffold-demo && zenzic check all) ``` - ## See Also - [Adapter API Reference](./adapter-api.md) diff --git a/docs/developers/reference/ast-foundations.md b/docs/developers/reference/ast-foundations.md index 0a4843c..c718db6 100644 --- a/docs/developers/reference/ast-foundations.md +++ b/docs/developers/reference/ast-foundations.md @@ -125,7 +125,6 @@ Zenzic implements an AST `Mutator` engine to execute precise, safe code modifica - **O(N) Linear Tokenization**: The inline tokenizer operates as a single-pass, character-by-character linear state machine ($O(N)$ complexity). - **Zero Subprocess Execution**: The AST compiler runs natively in-process without spawning external shell processes. - ## See Also - [Core Architecture](../../explanation/architecture.md) diff --git a/docs/developers/reference/credential-scanner-obligations.md b/docs/developers/reference/credential-scanner-obligations.md index 704b002..fad143e 100644 --- a/docs/developers/reference/credential-scanner-obligations.md +++ b/docs/developers/reference/credential-scanner-obligations.md @@ -181,7 +181,6 @@ def test_resolution_context_is_pickleable(): > **Reporting integrity:** A secret that is detected but not correctly reported is a CRITICAL > bug — indistinguishable from a secret that was never detected at all. - ## See Also - [Finding Codes Index](../../reference/finding-codes.md) diff --git a/docs/developers/reference/supply-chain-assurance-profile.md b/docs/developers/reference/supply-chain-assurance-profile.md index ad385ab..fca070b 100644 --- a/docs/developers/reference/supply-chain-assurance-profile.md +++ b/docs/developers/reference/supply-chain-assurance-profile.md @@ -90,7 +90,6 @@ Planned next layer: - stronger workflow pinning policy enforcement, - periodic evidence export for quarterly governance review. - ## See Also - [Contributing Pull Requests](../how-to/contribute/pull-requests.md) diff --git a/docs/developers/reference/zenzic-style.md b/docs/developers/reference/zenzic-style.md index 0d7fc8d..401489d 100644 --- a/docs/developers/reference/zenzic-style.md +++ b/docs/developers/reference/zenzic-style.md @@ -59,7 +59,6 @@ Every card in a `
` block must have exactly: This section details the specifications and guidelines for 3. Iconography Law (Material for MkDocs) within the Zenzic ecosystem. - ### Native Emoji & Icon Shortcodes Every icon in the documentation MUST be rendered using native Material for MkDocs shortcodes: @@ -89,7 +88,6 @@ Examples: This section details the specifications and guidelines for 4. Anchor ID Protocol (ZRT-DOC-004) within the Zenzic ecosystem. - ### When to add explicit IDs Add `{#id}` to a heading when it satisfies **both** of: diff --git a/docs/explanation/baseline-tracking.md b/docs/explanation/baseline-tracking.md index be82b14..7e9ef80 100644 --- a/docs/explanation/baseline-tracking.md +++ b/docs/explanation/baseline-tracking.md @@ -6,12 +6,12 @@ description: Snapshot existing technical debt into .zenzic-baseline.json to prev -# Baseline & Regression Tracking - Zenzic provides an anti-regression engine that captures existing technical debt into a deterministic snapshot file (`.zenzic-baseline.json`). This allows engineering teams to adopt strict Quality Gates without being blocked by legacy documentation debt. ## Core Concepts +The baseline engine is designed around stable signatures and explicit visibility of debt. + ### 1. Deterministic Cryptographic Signatures Findings are matched across runs using a deterministic SHA-256 signature (`SHA-256(RuleCode + PosixPath + ContextTarget)`). @@ -27,6 +27,8 @@ The Core Engine does not drop baselined findings; it flags them with `is_baselin ## Command Line Usage +The following commands cover baseline creation, baseline consumption, and CI decision rules. + ### Creating or Updating a Baseline To capture current findings and Document Quality Score (DQS) into `.zenzic-baseline.json`: @@ -77,3 +79,9 @@ When a baseline is active: - **Exit 1**: A new defect is introduced OR current DQS score drops below the baseline score. - **Resolution Hint**: If baselined issues are fixed, Zenzic displays a hint suggesting to refresh the baseline: `💡 2 baselined issues resolved! Run 'zenzic check --update-baseline' to refresh baseline.` + +## See Also + +- [CLI Commands](../reference/cli.md) +- [Scoring System](./scoring-system.md) +- [Core Mechanics](./core-mechanics.md) diff --git a/docs/explanation/brand-philosophy.md b/docs/explanation/brand-philosophy.md index 90121d3..6513e84 100644 --- a/docs/explanation/brand-philosophy.md +++ b/docs/explanation/brand-philosophy.md @@ -54,7 +54,6 @@ Zenzic adapts its visual frequency to the ambient light of the engineer's enviro **Usage Specification:** The Zenzic Indigo color is a semantic indicator reserved for structural components (e.g., Navbar, Footer, Scanner Output). In Light Mode, it ensures a contrast ratio >4.5:1 for primary text. In Dark Mode, contrast levels are recalibrated for extended readability. The `backdrop-blur` layer beneath `ZenzicTerminal` panels reduces border intensity to prevent visual fatigue (WCAG 2.1 AA compliance). - ## See Also -- [Brand System Guidelines](../how-to/use-brand-system.md) +* [Brand System Guidelines](../how-to/use-brand-system.md) diff --git a/docs/explanation/configuration-loading.md b/docs/explanation/configuration-loading.md index e212df9..0bc4119 100644 --- a/docs/explanation/configuration-loading.md +++ b/docs/explanation/configuration-loading.md @@ -62,7 +62,6 @@ with a human-friendly message and exits immediately — silent fallback on a bro would hide mistakes. Unknown fields are silently ignored, which means adding fields not yet supported by your installed version is safe. - ## See Also - [Initialize Configuration](../how-to/initialize-configuration.md) diff --git a/docs/explanation/core-mechanics.md b/docs/explanation/core-mechanics.md index 12f5481..f6704b9 100644 --- a/docs/explanation/core-mechanics.md +++ b/docs/explanation/core-mechanics.md @@ -117,7 +117,6 @@ Zenzic is read-only by default. Auto-fixing is an explicit, opt-in operation pro When a command like `zenzic fix --apply` is executed, the AST is mutated entirely in memory. To commit these changes to disk, the engine employs an Atomic Write Barrier using the `tempfile` and `os` native Python libraries. The mutated content is first written to a temporary file in the same directory as the target. Once the write succeeds, `os.replace` is used to atomically rename the temporary file over the original. This guarantees that even if a crash occurs mid-write, the original file is never corrupted and no data is lost. - ## See Also - [Core Architecture](./architecture.md) diff --git a/docs/explanation/exclusion-design.md b/docs/explanation/exclusion-design.md index 65c8de6..aea3a15 100644 --- a/docs/explanation/exclusion-design.md +++ b/docs/explanation/exclusion-design.md @@ -10,7 +10,6 @@ description: "The design rationale behind Zenzic's conscious exclusion model ver This section details the specifications and guidelines for Exclusion Design within the Zenzic ecosystem. - ## Conscious Control vs. Blind Automation Zenzic defaults to **Conscious Control** rather than Blind Automation. Understanding this principle is the key to configuring the tool effectively in production projects. @@ -66,7 +65,6 @@ where $|F_s|$ is the total active suppression count. Configuring `fail_under > 1 Setting `fail_under = 90` and `suppression_cap = 30` means: "The global repository quality must never drop below 90/100, **but** regardless of the score, we absolutely refuse to tolerate more than 30 suppressed defects." This prevents teams from hiding massive structural debt even if their active code is otherwise clean. - ## See Also - [Manage Cross-Site Links](../how-to/manage-cross-site-links.md) diff --git a/docs/explanation/language-server-architecture.md b/docs/explanation/language-server-architecture.md index e0f390d..5116e52 100644 --- a/docs/explanation/language-server-architecture.md +++ b/docs/explanation/language-server-architecture.md @@ -53,7 +53,6 @@ Consistent with the **Zero-Threading Policy** to prevent race conditions and GIL This ensures that the language server remains highly responsive and strictly single-threaded while accurately validating cross-file structural integrity in real-time. - ## See Also - [Core Architecture](./architecture.md) diff --git a/docs/explanation/mineral-path.md b/docs/explanation/mineral-path.md index 1bd40c4..54c6bf8 100644 --- a/docs/explanation/mineral-path.md +++ b/docs/explanation/mineral-path.md @@ -43,7 +43,6 @@ Codenames **do not** appear in: If you want to contribute to a specific milestone, the Engineering Ledger *(Maintainer Only)* contains the active sprint context and architectural decisions in progress. - ## See Also - [Migrating Engines](../how-to/migrate-engines.md) diff --git a/docs/explanation/scoring-system.md b/docs/explanation/scoring-system.md index 47744b2..fc91154 100644 --- a/docs/explanation/scoring-system.md +++ b/docs/explanation/scoring-system.md @@ -85,7 +85,6 @@ Executing `zenzic score` prints a transparent breakdown ledger detailing raw ded = Final Quality Score 65 / 100 ``` - ## See Also - [Scoring Algorithm](../reference/scoring-algorithm.md) diff --git a/docs/explanation/why-zenzic.md b/docs/explanation/why-zenzic.md index 3046a92..803c984 100644 --- a/docs/explanation/why-zenzic.md +++ b/docs/explanation/why-zenzic.md @@ -21,7 +21,6 @@ deterministic. This section details the specifications and guidelines for Business Value within the Zenzic ecosystem. - ### 1. Risk Reduction Zenzic prevents high-impact documentation failures before deployment: @@ -53,7 +52,6 @@ analysis and deterministic exit codes so CI behavior is stable across runs and e This section details the specifications and guidelines for Defence Trinity within the Zenzic ecosystem. - ### Link Integrity (Z1xx) Internal links, anchors, and route references are validated before build. This prevents runtime @@ -101,7 +99,6 @@ penalty, so score movement is predictable and reviewable. - **API portal validation**: prevent broken route references and hidden navigation regressions. - **Docs-as-code CI pipelines**: block regressions early with deterministic gate behavior. - ## See Also - [Core Architecture](./architecture.md) diff --git a/docs/how-to/add-badges.md b/docs/how-to/add-badges.md index b77ad3f..651d599 100644 --- a/docs/how-to/add-badges.md +++ b/docs/how-to/add-badges.md @@ -164,7 +164,6 @@ If `badge_stamp_files` includes more than `README.md`, expand the `git add` and fi ``` - ## See Also - [CLI Reference](../reference/cli.md) diff --git a/docs/how-to/configure-ci-cd.md b/docs/how-to/configure-ci-cd.md index cc4520e..c317252 100644 --- a/docs/how-to/configure-ci-cd.md +++ b/docs/how-to/configure-ci-cd.md @@ -157,7 +157,6 @@ zenzic diff --base .zenzic-score.json Continuous integration pipelines enforce 100% parity between documentation state and source code definitions. - ## See Also - [CLI Reference](../reference/cli.md) diff --git a/docs/how-to/configure-privacy-gate.md b/docs/how-to/configure-privacy-gate.md index 43ee66e..701147b 100644 --- a/docs/how-to/configure-privacy-gate.md +++ b/docs/how-to/configure-privacy-gate.md @@ -31,7 +31,6 @@ Zenzic enforces this by automatically adding `.zenzic.local.toml` to `.gitignore Follow the setup instructions below to configure your development and scanning environment. - ### 1. Initialise the local overlay If `.zenzic.local.toml` does not yet exist, create it via: diff --git a/docs/how-to/configure-social-metadata.md b/docs/how-to/configure-social-metadata.md index 76f83ea..206bf32 100644 --- a/docs/how-to/configure-social-metadata.md +++ b/docs/how-to/configure-social-metadata.md @@ -119,7 +119,6 @@ excluded_assets = [ ] ``` - ## See Also - [Why Zenzic](../explanation/why-zenzic.md) diff --git a/docs/how-to/initialize-configuration.md b/docs/how-to/initialize-configuration.md index 4e1fac5..d1198ef 100644 --- a/docs/how-to/initialize-configuration.md +++ b/docs/how-to/initialize-configuration.md @@ -47,7 +47,6 @@ technical reference pages, or to add team-specific placeholder patterns — crea # locales = ["it"] # non-default locale directory names ``` - ## See Also - [Configuration Loading](../explanation/configuration-loading.md) diff --git a/docs/how-to/migrate-engines.md b/docs/how-to/migrate-engines.md index 1d919d3..364aff2 100644 --- a/docs/how-to/migrate-engines.md +++ b/docs/how-to/migrate-engines.md @@ -46,7 +46,6 @@ touching a single documentation file. From Zenzic's perspective: This section details the specifications and guidelines for MkDocs Material best practices within the Zenzic ecosystem. - ### Language switcher configuration When using `mkdocs-material` with the `i18n` plugin and multiple locales, the language diff --git a/docs/how-to/troubleshooting.md b/docs/how-to/troubleshooting.md index 89dccff..558df40 100644 --- a/docs/how-to/troubleshooting.md +++ b/docs/how-to/troubleshooting.md @@ -15,7 +15,6 @@ For the complete list of finding codes, see [Finding Codes](../reference/finding This section details the specifications and guidelines for Editor Integration within the Zenzic ecosystem. - ### `Zenzic: Not Found (ENOENT)` **Symptom:** Status bar shows `$(error) Zenzic: Not Found` or prompt reads *Zenzic binary not found*. @@ -57,7 +56,6 @@ uv tool install --force zenzic This section details the specifications and guidelines for Configuration within the Zenzic ecosystem. - ### External link check is slow or needs suppression External link validation only runs when `--strict` is passed. Omitting the flag disables all network requests entirely. diff --git a/docs/how-to/use-brand-system.md b/docs/how-to/use-brand-system.md index 5518820..2401ab1 100644 --- a/docs/how-to/use-brand-system.md +++ b/docs/how-to/use-brand-system.md @@ -99,27 +99,33 @@ The following assets are tracked by Zenzic to ensure they remain in the Virtual - [Logo (PNG)](../assets/brand/png/zenzic-logo.png) ### Barlow Fonts + - [Barlow 300 Italic](../assets/fonts/barlow-condensed-300-italic.woff2) - [Barlow 300 Normal](../assets/fonts/barlow-condensed-300-normal.woff2) - [Barlow 600 Normal](../assets/fonts/barlow-condensed-600-normal.woff2) - [Barlow 700 Normal](../assets/fonts/barlow-condensed-700-normal.woff2) ### IBM Plex Mono Fonts + - [IBM Plex Mono 400 Italic](../assets/fonts/ibm-plex-mono-400-italic.woff2) - [IBM Plex Mono 400 Normal](../assets/fonts/ibm-plex-mono-400-normal.woff2) - [IBM Plex Mono 500 Normal](../assets/fonts/ibm-plex-mono-500-normal.woff2) ### Inter Fonts + - [Inter 400 Normal](../assets/fonts/inter-400-normal.woff2) - [Inter 500 Normal](../assets/fonts/inter-500-normal.woff2) - [Inter 600 Normal](../assets/fonts/inter-600-normal.woff2) - [Inter 700 Normal](../assets/fonts/inter-700-normal.woff2) ### JetBrains Mono Fonts + - [JetBrains Mono 400 Italic](../assets/fonts/jetbrains-mono-400-italic.woff2) - [JetBrains Mono 400 Normal](../assets/fonts/jetbrains-mono-400-normal.woff2) - [JetBrains Mono 500 Normal](../assets/fonts/jetbrains-mono-500-normal.woff2) + ### Roboto Fonts + - [Roboto 300 Italic](../assets/fonts/roboto-300-italic.woff2) - [Roboto 300 Normal](../assets/fonts/roboto-300-normal.woff2) - [Roboto 400 Italic](../assets/fonts/roboto-400-italic.woff2) @@ -128,6 +134,7 @@ The following assets are tracked by Zenzic to ensure they remain in the Virtual - [Roboto 700 Normal](../assets/fonts/roboto-700-normal.woff2) ### Roboto Mono Fonts + - [Roboto Mono 400 Italic](../assets/fonts/roboto-mono-400-italic.woff2) - [Roboto Mono 400 Normal](../assets/fonts/roboto-mono-400-normal.woff2) - [Roboto Mono 700 Italic](../assets/fonts/roboto-mono-700-italic.woff2) diff --git a/docs/reference/api-json.md b/docs/reference/api-json.md index 2e71b04..b513e8e 100644 --- a/docs/reference/api-json.md +++ b/docs/reference/api-json.md @@ -119,7 +119,6 @@ Optional score fields (`security_override`, `security_findings`) appear when the For strict machine consumers, validate payloads against `zenzic-output.schema.json` during CI. This prevents silent contract drift across minor releases. - ## See Also - [CLI Reference](./cli.md) diff --git a/docs/reference/checks.md b/docs/reference/checks.md index 5f61434..53a8f1f 100644 --- a/docs/reference/checks.md +++ b/docs/reference/checks.md @@ -246,7 +246,6 @@ The credential scanner scans **every line of every file** during Pass 1, includi Rotate the exposed credential immediately, then remove or replace the offending line. Do not commit the secret into repository history. - ## See Also - [Finding Codes Index](./finding-codes.md) diff --git a/docs/reference/cli.md b/docs/reference/cli.md index d1d7a3c..402559a 100644 --- a/docs/reference/cli.md +++ b/docs/reference/cli.md @@ -174,7 +174,6 @@ Select a command tab to view its execution flags, default behaviors, and usage e This section details the specifications and guidelines for Shared Execution Flags within the Zenzic ecosystem. - ## Global flags {#global-flags} These flags control Zenzic's signal-to-noise profile across routine scans, CI gates, @@ -636,14 +635,12 @@ Each exit code has a distinct visual signature in the Zenzic Report: This section details the specifications and guidelines for Exit 0 — Zenzic Audit Badge within the Zenzic ecosystem. - ### Exit 1 — Quality findings This section details the specifications and guidelines for Exit 1 — Quality findings within the Zenzic ecosystem. - ### Exit 2 — credential scanner security breach diff --git a/docs/rules/Z000.md b/docs/rules/Z000.md index 66d6a33..afa7785 100644 --- a/docs/rules/Z000.md +++ b/docs/rules/Z000.md @@ -5,8 +5,6 @@ title: "Z000: UNSUPPORTED_ENGINE" -# Z000: UNSUPPORTED_ENGINE - **Severity**: `error` **Penalty**: 0.0 (Fatal) **Category**: `config` diff --git a/docs/rules/Z001.md b/docs/rules/Z001.md index a450437..26865f6 100644 --- a/docs/rules/Z001.md +++ b/docs/rules/Z001.md @@ -5,8 +5,6 @@ title: "Z001: CORE_CONFIG_STRUCTURE" -# Z001: CORE_CONFIG_STRUCTURE - **Severity**: `error` **Penalty**: 0.0 (Fatal) **Category**: `config` diff --git a/docs/rules/Z101.md b/docs/rules/Z101.md index d44d73d..1f43e61 100644 --- a/docs/rules/Z101.md +++ b/docs/rules/Z101.md @@ -5,8 +5,6 @@ title: "Z101: LINK_BROKEN" -# Z101: LINK_BROKEN - **Severity**: `error` **Penalty**: 8.0 points **Category**: `structural` diff --git a/docs/rules/Z102.md b/docs/rules/Z102.md index 065b421..0c498df 100644 --- a/docs/rules/Z102.md +++ b/docs/rules/Z102.md @@ -5,8 +5,6 @@ title: "Z102: ANCHOR_MISSING" -# Z102: ANCHOR_MISSING - **Severity**: `error` **Penalty**: 5.0 points **Category**: `structural` diff --git a/docs/rules/Z103.md b/docs/rules/Z103.md index 2695f0b..c03356c 100644 --- a/docs/rules/Z103.md +++ b/docs/rules/Z103.md @@ -5,8 +5,6 @@ title: "Z103: ORPHAN_LINK" -# Z103: ORPHAN_LINK - **Severity**: `error` **Penalty**: 2.0 points **Category**: `structural` diff --git a/docs/rules/Z104.md b/docs/rules/Z104.md index da6f6f2..87b610f 100644 --- a/docs/rules/Z104.md +++ b/docs/rules/Z104.md @@ -5,8 +5,6 @@ title: "Z104: FILE_NOT_FOUND" -# Z104: FILE_NOT_FOUND - **Severity**: `error` **Penalty**: 8.0 points **Category**: `structural` diff --git a/docs/rules/Z105.md b/docs/rules/Z105.md index e45d3b6..b798ea9 100644 --- a/docs/rules/Z105.md +++ b/docs/rules/Z105.md @@ -5,8 +5,6 @@ title: "Z105: ABSOLUTE_PATH" -# Z105: ABSOLUTE_PATH - **Severity**: `error` **Penalty**: 2.0 points **Category**: `structural` diff --git a/docs/rules/Z106.md b/docs/rules/Z106.md index 4932a7e..961e63f 100644 --- a/docs/rules/Z106.md +++ b/docs/rules/Z106.md @@ -5,8 +5,6 @@ title: "Z106: CIRCULAR_LINK" -# Z106: CIRCULAR_LINK - **Severity**: `note` **Penalty**: 0.0 points **Category**: `structural` diff --git a/docs/rules/Z107.md b/docs/rules/Z107.md index ec422aa..6e0ea40 100644 --- a/docs/rules/Z107.md +++ b/docs/rules/Z107.md @@ -5,8 +5,6 @@ title: "Z107: CIRCULAR_ANCHOR" -# Z107: CIRCULAR_ANCHOR - **Severity**: `error` **Penalty**: 1.0 point **Category**: `structural` diff --git a/docs/rules/Z108.md b/docs/rules/Z108.md index 827feb5..9199fab 100644 --- a/docs/rules/Z108.md +++ b/docs/rules/Z108.md @@ -5,8 +5,6 @@ title: "Z108: EMPTY_LINK_TEXT" -# Z108: EMPTY_LINK_TEXT - **Severity**: `error` **Penalty**: 1.0 point **Category**: `structural` diff --git a/docs/rules/Z109.md b/docs/rules/Z109.md index b4021fc..70b569c 100644 --- a/docs/rules/Z109.md +++ b/docs/rules/Z109.md @@ -5,8 +5,6 @@ title: "Z109: EXTERNAL_LINK_BROKEN" -# Z109: EXTERNAL_LINK_BROKEN - **Severity**: `error` **Penalty**: 3.0 points **Category**: `structural` diff --git a/docs/rules/Z110.md b/docs/rules/Z110.md index a2318a1..0bb9ef6 100644 --- a/docs/rules/Z110.md +++ b/docs/rules/Z110.md @@ -5,8 +5,6 @@ title: "Z110: CONFIG_SYNTAX_ERROR" -# Z110: CONFIG_SYNTAX_ERROR - **Severity**: `error` **Penalty**: Fatal Configuration Error (Analysis Bypassed) **Category**: `configuration` diff --git a/docs/rules/Z111.md b/docs/rules/Z111.md index 03ea80f..81dd270 100644 --- a/docs/rules/Z111.md +++ b/docs/rules/Z111.md @@ -5,8 +5,6 @@ title: "Z111: CONFIG_SCHEMA_ERROR" -# Z111: CONFIG_SCHEMA_ERROR - **Severity**: `error` **Penalty**: Fatal Configuration Error (Analysis Bypassed) **Category**: `configuration` diff --git a/docs/rules/Z114.md b/docs/rules/Z114.md index 6f6cd93..d8620d5 100644 --- a/docs/rules/Z114.md +++ b/docs/rules/Z114.md @@ -5,8 +5,6 @@ title: "Z114: LARGE_PAGINATION_SET" -# Z114: LARGE_PAGINATION_SET - **Severity**: `note` **Penalty**: 0.0 points **Category**: `content` diff --git a/docs/rules/Z118.md b/docs/rules/Z118.md index de3612b..f138568 100644 --- a/docs/rules/Z118.md +++ b/docs/rules/Z118.md @@ -5,8 +5,6 @@ title: "Z118: STALE_GLOBAL_SUPPRESSION" -# Z118: STALE_GLOBAL_SUPPRESSION - **Severity**: `warning` **Penalty**: 1.0 point **Category**: `governance` diff --git a/docs/rules/Z201.md b/docs/rules/Z201.md index 75a6743..df9daf0 100644 --- a/docs/rules/Z201.md +++ b/docs/rules/Z201.md @@ -5,8 +5,6 @@ title: "Z201: CREDENTIAL_SECRET" -# Z201: CREDENTIAL_SECRET - **Severity**: `error` **Penalty**: 0.0 (Fatal Exit 2) **Category**: `security` diff --git a/docs/rules/Z202.md b/docs/rules/Z202.md index f5f1a6e..7dda38b 100644 --- a/docs/rules/Z202.md +++ b/docs/rules/Z202.md @@ -5,8 +5,6 @@ title: "Z202: PATH_TRAVERSAL" -# Z202: PATH_TRAVERSAL - **Severity**: `error` **Penalty**: 0.0 (Fatal Exit 2) **Category**: `security` diff --git a/docs/rules/Z203.md b/docs/rules/Z203.md index b42e6f9..529658a 100644 --- a/docs/rules/Z203.md +++ b/docs/rules/Z203.md @@ -5,8 +5,6 @@ title: "Z203: PATH_TRAVERSAL_FATAL" -# Z203: PATH_TRAVERSAL_FATAL - **Severity**: `error` **Penalty**: 0.0 (Fatal Exit 3) **Category**: `security` diff --git a/docs/rules/Z204.md b/docs/rules/Z204.md index d0ac18c..e7cb8d8 100644 --- a/docs/rules/Z204.md +++ b/docs/rules/Z204.md @@ -5,8 +5,6 @@ title: "Z204: FORBIDDEN_TERM" -# Z204: FORBIDDEN_TERM - **Severity**: `error` **Penalty**: 0.0 (Fatal Exit 2) **Category**: `security` diff --git a/docs/rules/Z301.md b/docs/rules/Z301.md index 34e96f4..da97bb4 100644 --- a/docs/rules/Z301.md +++ b/docs/rules/Z301.md @@ -5,8 +5,6 @@ title: "Z301: DANGLING_REF" -# Z301: DANGLING_REF - **Severity**: `warning` **Penalty**: 4.0 points **Category**: `navigation` diff --git a/docs/rules/Z302.md b/docs/rules/Z302.md index e7d78fb..96c460b 100644 --- a/docs/rules/Z302.md +++ b/docs/rules/Z302.md @@ -5,8 +5,6 @@ title: "Z302: DEAD_DEF" -# Z302: DEAD_DEF - **Severity**: `warning` **Penalty**: 1.0 point **Category**: `navigation` diff --git a/docs/rules/Z303.md b/docs/rules/Z303.md index b9fb803..5f3a4d1 100644 --- a/docs/rules/Z303.md +++ b/docs/rules/Z303.md @@ -5,8 +5,6 @@ title: "Z303: DUPLICATE_DEF" -# Z303: DUPLICATE_DEF - **Severity**: `warning` **Penalty**: 3.0 points **Category**: `navigation` diff --git a/docs/rules/Z401.md b/docs/rules/Z401.md index b830104..7d6be6f 100644 --- a/docs/rules/Z401.md +++ b/docs/rules/Z401.md @@ -5,8 +5,6 @@ title: "Z401: MISSING_DIRECTORY_INDEX" -# Z401: MISSING_DIRECTORY_INDEX - **Severity**: `note` **Penalty**: 0.0 points **Category**: `navigation` diff --git a/docs/rules/Z402.md b/docs/rules/Z402.md index 2c935e5..b6aa2e5 100644 --- a/docs/rules/Z402.md +++ b/docs/rules/Z402.md @@ -5,8 +5,6 @@ title: "Z402: ORPHAN_PAGE" -# Z402: ORPHAN_PAGE - **Severity**: `warning` **Penalty**: 4.0 points **Category**: `navigation` diff --git a/docs/rules/Z403.md b/docs/rules/Z403.md index 831be62..b17ba65 100644 --- a/docs/rules/Z403.md +++ b/docs/rules/Z403.md @@ -5,8 +5,6 @@ title: "Z403: MISSING_ALT" -# Z403: MISSING_ALT - **Severity**: `warning` **Penalty**: 1.0 point **Category**: `content` diff --git a/docs/rules/Z404.md b/docs/rules/Z404.md index a6350ef..2ef26e1 100644 --- a/docs/rules/Z404.md +++ b/docs/rules/Z404.md @@ -5,8 +5,6 @@ title: "Z404: CONFIG_ASSET_MISSING" -# Z404: CONFIG_ASSET_MISSING - **Severity**: `warning` **Penalty**: 3.0 points **Category**: `brand` diff --git a/docs/rules/Z405.md b/docs/rules/Z405.md index 20b085d..446ed58 100644 --- a/docs/rules/Z405.md +++ b/docs/rules/Z405.md @@ -5,8 +5,6 @@ title: "Z405: UNUSED_ASSET" -# Z405: UNUSED_ASSET - **Severity**: `warning` **Penalty**: 3.0 points **Category**: `brand` diff --git a/docs/rules/Z406.md b/docs/rules/Z406.md index 577bd72..f588b12 100644 --- a/docs/rules/Z406.md +++ b/docs/rules/Z406.md @@ -5,8 +5,6 @@ title: "Z406: NAV_CONTRACT" -# Z406: NAV_CONTRACT - **Severity**: `warning` **Penalty**: 2.0 points **Category**: `brand` diff --git a/docs/rules/Z410.md b/docs/rules/Z410.md index 3e3c679..39f2b8f 100644 --- a/docs/rules/Z410.md +++ b/docs/rules/Z410.md @@ -5,8 +5,6 @@ title: "Z410: UNREACHABLE_GRAPH_NODE" -# Z410: UNREACHABLE_GRAPH_NODE - **Severity**: `warning` **Penalty**: 5.0 points **Category**: `structural` @@ -43,6 +41,6 @@ match = "internal/**" ignore = ["Z410"] ``` - ## Reference + See the [Finding Codes Index](../reference/finding-codes.md#z410) for finding code details. diff --git a/docs/rules/Z411.md b/docs/rules/Z411.md index d3bf801..e23779c 100644 --- a/docs/rules/Z411.md +++ b/docs/rules/Z411.md @@ -5,8 +5,6 @@ title: "Z411: DEAD_END_NODE" -# Z411: DEAD_END_NODE - **Severity**: `warning` **Penalty**: 5.0 points **Category**: `structural` diff --git a/docs/rules/Z501.md b/docs/rules/Z501.md index ffd34b6..cd8c0a4 100644 --- a/docs/rules/Z501.md +++ b/docs/rules/Z501.md @@ -5,8 +5,6 @@ title: "Z501: PLACEHOLDER" -# Z501: PLACEHOLDER - **Severity**: `warning` **Penalty**: 2.0 points **Category**: `content` diff --git a/docs/rules/Z502.md b/docs/rules/Z502.md index bb95593..4f3dda1 100644 --- a/docs/rules/Z502.md +++ b/docs/rules/Z502.md @@ -5,8 +5,6 @@ title: "Z502: SHORT_CONTENT" -# Z502: SHORT_CONTENT - **Severity**: `warning` **Penalty**: 1.0 point **Category**: `content` diff --git a/docs/rules/Z503.md b/docs/rules/Z503.md index e019a95..1a4d47e 100644 --- a/docs/rules/Z503.md +++ b/docs/rules/Z503.md @@ -5,8 +5,6 @@ title: "Z503: SNIPPET_ERROR" -# Z503: SNIPPET_ERROR - **Severity**: `warning` **Penalty**: 10.0 points **Category**: `content` diff --git a/docs/rules/Z504.md b/docs/rules/Z504.md index fce66ee..db74360 100644 --- a/docs/rules/Z504.md +++ b/docs/rules/Z504.md @@ -5,8 +5,6 @@ title: "Z504: QUALITY_REGRESSION" -# Z504: QUALITY_REGRESSION - **Severity**: `warning` **Penalty**: 0.0 points **Category**: `governance` diff --git a/docs/rules/Z505.md b/docs/rules/Z505.md index 6f15f33..1d53f4e 100644 --- a/docs/rules/Z505.md +++ b/docs/rules/Z505.md @@ -5,8 +5,6 @@ title: "Z505: UNTAGGED_CODE_BLOCK" -# Z505: UNTAGGED_CODE_BLOCK - **Severity**: `warning` **Penalty**: 1.0 point **Category**: `content` diff --git a/docs/rules/Z506.md b/docs/rules/Z506.md index cba16c2..6bded6f 100644 --- a/docs/rules/Z506.md +++ b/docs/rules/Z506.md @@ -5,8 +5,6 @@ title: "Z506: MALFORMED_FRONTMATTER" -# Z506: MALFORMED_FRONTMATTER - **Severity**: `error` **Penalty**: 5.0 points **Category**: `content` diff --git a/docs/rules/Z510.md b/docs/rules/Z510.md index c9320b3..40a958c 100644 --- a/docs/rules/Z510.md +++ b/docs/rules/Z510.md @@ -5,8 +5,6 @@ title: "Z510: HEADING_HIERARCHY" -# Z510: HEADING_HIERARCHY - **Severity**: `warning` **Penalty**: 1.0 point **Category**: `content` diff --git a/docs/rules/Z511.md b/docs/rules/Z511.md index dc544a1..f603cf4 100644 --- a/docs/rules/Z511.md +++ b/docs/rules/Z511.md @@ -5,8 +5,6 @@ title: "Z511: EXCESSIVE_SENTENCE_LENGTH" -# Z511: EXCESSIVE_SENTENCE_LENGTH - **Severity**: `warning` **Penalty**: 1.0 point **Category**: `content` diff --git a/docs/rules/Z512.md b/docs/rules/Z512.md index c71ad30..ba06c4f 100644 --- a/docs/rules/Z512.md +++ b/docs/rules/Z512.md @@ -5,8 +5,6 @@ title: "Z512: EMPTY_SECTION" -# Z512: EMPTY_SECTION - **Severity**: `warning` **Penalty**: 1.0 point **Category**: `content` diff --git a/docs/rules/Z601.md b/docs/rules/Z601.md index eae4b10..93202a8 100644 --- a/docs/rules/Z601.md +++ b/docs/rules/Z601.md @@ -5,8 +5,6 @@ title: "Z601: BRAND_OBSOLESCENCE" -# Z601: BRAND_OBSOLESCENCE - **Severity**: `warning` **Penalty**: 2.0 points **Category**: `brand` diff --git a/docs/rules/Z603.md b/docs/rules/Z603.md index e69a135..86e33e9 100644 --- a/docs/rules/Z603.md +++ b/docs/rules/Z603.md @@ -5,8 +5,6 @@ title: "Z603: DEAD_SUPPRESSION" -# Z603: DEAD_SUPPRESSION - **Severity**: `warning` **Penalty**: 1.0 point **Category**: `governance` diff --git a/docs/tutorials/examples/z6xx-brand/z603-dead-suppression.md b/docs/tutorials/examples/z6xx-brand/z603-dead-suppression.md index eaf4d06..255eb52 100644 --- a/docs/tutorials/examples/z6xx-brand/z603-dead-suppression.md +++ b/docs/tutorials/examples/z6xx-brand/z603-dead-suppression.md @@ -57,7 +57,6 @@ Exit code: `0` (warning-only; use `--strict` to promote to Exit 1) This section details the specifications and guidelines for The Three Z603 Scenarios within the Zenzic ecosystem. - ### Scenario A — Dead Directive (this page) A valid link has a `zenzic:ignore: Z101` directive that is never consumed. diff --git a/fix_z411.py b/fix_z411.py deleted file mode 100644 index 9b1be3a..0000000 --- a/fix_z411.py +++ /dev/null @@ -1,45 +0,0 @@ -import os -from pathlib import Path - -# Mapping of file to its related relative link and text -files = { - "docs/developers/explanation/core-laws.md": ("../../reference/zenzic-style.md", "Zenzic Style Guide"), - "docs/developers/explanation/governance/lpgp.md": ("../../how-to/contribute/pull-requests.md", "Contributing Pull Requests"), - "docs/developers/explanation/governance/technical-debt.md": ("../../../reference/finding-codes.md", "Finding Codes Index"), - "docs/developers/explanation/mdx-asset-rationale.md": ("../../reference/zenzic-style.md", "Zenzic Style Guide"), - "docs/developers/explanation/sovereign-verification-model.md": ("../../reference/adapter-api.md", "Adapter API Reference"), - "docs/developers/explanation/tailwind-mkdocs-bridge.md": ("../../../how-to/use-brand-system.md", "Brand System Guidelines"), - "docs/developers/how-to/contribute/pull-requests.md": ("../../reference/zenzic-style.md", "Zenzic Style Guide"), - "docs/developers/how-to/contribute/report-a-bug.md": ("./pull-requests.md", "Contributing Pull Requests"), - "docs/developers/how-to/contribute/report-a-docs-issue.md": ("./pull-requests.md", "Contributing Pull Requests"), - "docs/developers/reference/adapter-examples.md": ("./adapter-api.md", "Adapter API Reference"), - "docs/developers/reference/ast-foundations.md": ("../../explanation/architecture.md", "Core Architecture"), - "docs/developers/reference/credential-scanner-obligations.md": ("../../../reference/finding-codes.md", "Finding Codes Index"), - "docs/developers/reference/supply-chain-assurance-profile.md": ("../how-to/contribute/pull-requests.md", "Contributing Pull Requests"), - "docs/explanation/baseline-tracking.md": ("../reference/cli.md", "CLI Reference"), - "docs/explanation/brand-philosophy.md": ("../how-to/use-brand-system.md", "Brand System Guidelines"), - "docs/explanation/configuration-loading.md": ("../how-to/initialize-configuration.md", "Initialize Configuration"), - "docs/explanation/core-mechanics.md": ("./architecture.md", "Core Architecture"), - "docs/explanation/exclusion-design.md": ("../how-to/manage-cross-site-links.md", "Manage Cross-Site Links"), - "docs/explanation/language-server-architecture.md": ("./architecture.md", "Core Architecture"), - "docs/explanation/mineral-path.md": ("../how-to/migrate-engines.md", "Migrating Engines"), - "docs/explanation/scoring-system.md": ("../reference/scoring-algorithm.md", "Scoring Algorithm"), - "docs/explanation/why-zenzic.md": ("./architecture.md", "Core Architecture"), - "docs/how-to/add-badges.md": ("../reference/cli.md", "CLI Reference"), - "docs/how-to/configure-ci-cd.md": ("../reference/cli.md", "CLI Reference"), - "docs/how-to/configure-social-metadata.md": ("../explanation/why-zenzic.md", "Why Zenzic"), - "docs/how-to/initialize-configuration.md": ("../explanation/configuration-loading.md", "Configuration Loading"), - "docs/reference/api-json.md": ("./cli.md", "CLI Reference"), - "docs/reference/checks.md": ("./finding-codes.md", "Finding Codes Index"), -} - -for filepath, (link, text) in files.items(): - p = Path(filepath) - if not p.exists(): - print(f"NOT FOUND: {filepath}") - continue - - with open(p, "a", encoding="utf-8") as f: - f.write(f"\n\n## See Also\n\n- [{text}]({link})\n") - print(f"Appended to {filepath}") - diff --git a/src/zenzic/cli/_check.py b/src/zenzic/cli/_check.py index 8d2fcb6..e16c241 100644 --- a/src/zenzic/cli/_check.py +++ b/src/zenzic/cli/_check.py @@ -62,6 +62,7 @@ long_help=(f"[bold {ZenzicPalette.BRAND}]Check[/] — {COMMAND_BY_NAME['check'].long_help}"), ) + def _validate_only_flag(only: str | None) -> None: if not only: return @@ -73,6 +74,7 @@ def _validate_only_flag(only: str | None) -> None: ) raise typer.Exit(1) + def _finding_severity(code: str) -> str: """Derive CLI finding severity from CodeDefinition SSoT (codes.py). diff --git a/src/zenzic/core/adapters/_mkdocs.py b/src/zenzic/core/adapters/_mkdocs.py index 40bc012..6c28ef7 100644 --- a/src/zenzic/core/adapters/_mkdocs.py +++ b/src/zenzic/core/adapters/_mkdocs.py @@ -30,8 +30,7 @@ if TYPE_CHECKING: from zenzic.core.adapters._base import RouteMetadata - from zenzic.models.vsm import RouteStatus - from zenzic.models.vsm import VirtualSiteMap + from zenzic.models.vsm import RouteStatus, VirtualSiteMap def _iter_plugins(doc_config: dict[str, Any]) -> list[tuple[str, dict[str, Any]]]: diff --git a/src/zenzic/core/adapters/_zensical.py b/src/zenzic/core/adapters/_zensical.py index 92cdafc..2009e93 100644 --- a/src/zenzic/core/adapters/_zensical.py +++ b/src/zenzic/core/adapters/_zensical.py @@ -60,8 +60,7 @@ if TYPE_CHECKING: from zenzic.core.adapters._base import RouteMetadata - from zenzic.models.vsm import RouteStatus - from zenzic.models.vsm import VirtualSiteMap + from zenzic.models.vsm import RouteStatus, VirtualSiteMap # ── Config discovery & loading ──────────────────────────────────────────────── diff --git a/src/zenzic/core/content.py b/src/zenzic/core/content.py index f71f161..368e0fd 100644 --- a/src/zenzic/core/content.py +++ b/src/zenzic/core/content.py @@ -139,7 +139,7 @@ def check_sentence_lengths(file_path: Path, text: str, max_words: int = 40) -> l ) ) current_sentence_parts.clear() - + if not is_bullet: continue diff --git a/src/zenzic/core/suppressions.py b/src/zenzic/core/suppressions.py index 75413e2..397be9b 100644 --- a/src/zenzic/core/suppressions.py +++ b/src/zenzic/core/suppressions.py @@ -156,7 +156,9 @@ def count_inline_suppressions(text: str) -> int: return len(tracker.directives) -def _resolve_toml_line(origin_path: Path, search_target: str, lines_cache: list[str] | None = None) -> int: +def _resolve_toml_line( + origin_path: Path, search_target: str, lines_cache: list[str] | None = None +) -> int: """Find the 1-based line number in origin_path containing search_target. Falls back to line 1 if the file cannot be read or search_target is not found. diff --git a/src/zenzic/core/validator.py b/src/zenzic/core/validator.py index d5e3db7..fb65cd4 100644 --- a/src/zenzic/core/validator.py +++ b/src/zenzic/core/validator.py @@ -300,7 +300,9 @@ def extract(self, text: str) -> list[HtmlNodeInfo]: Lista di :class:`HtmlNodeInfo`, uno per ogni tag ````/```` trovato fuori dai blocchi di codice. """ - masked = self._mask_math(self._mask_inline_code(self._mask_fences(self._mask_comments(text)))) + masked = self._mask_math( + self._mask_inline_code(self._mask_fences(self._mask_comments(text))) + ) nodes: list[HtmlNodeInfo] = [] for m in _RE_POLY_TAG.finditer(masked): tag = m.group(1).lower() diff --git a/tests/test_cli.py b/tests/test_cli.py index c61fbf4..5756036 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -2035,10 +2035,13 @@ def test_templates_root_keys_not_swallowed() -> None: ) -def test_check_all_only_filter_excludes_z118(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: +def test_check_all_only_filter_excludes_z118( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch +) -> None: """Verify that zenzic check all --only z101 excludes Z118 warnings.""" monkeypatch.chdir(tmp_path) from typer.testing import CliRunner + from zenzic.main import app docs = tmp_path / "docs" @@ -2047,8 +2050,7 @@ def test_check_all_only_filter_excludes_z118(tmp_path: Path, monkeypatch: pytest toml = tmp_path / ".zenzic.toml" toml.write_text( - '[governance]\n' - 'directory_policies = {"docs/unused/**" = ["Z405"]}\n', + '[governance]\ndirectory_policies = {"docs/unused/**" = ["Z405"]}\n', encoding="utf-8", ) @@ -2059,4 +2061,3 @@ def test_check_all_only_filter_excludes_z118(tmp_path: Path, monkeypatch: pytest catch_exceptions=False, ) assert "Z118" not in result.output - diff --git a/tests/test_suppressions.py b/tests/test_suppressions.py index be31374..4289dab 100644 --- a/tests/test_suppressions.py +++ b/tests/test_suppressions.py @@ -251,8 +251,8 @@ def test_count_inline_suppressions_compatibility(self) -> None: def test_global_usage_tracker_toml_line_resolution(tmp_path: Path) -> None: """Verify that Z118 findings report the actual line number in .zenzic.toml.""" - from zenzic.models.config import ZenzicConfig, GovernanceConfig from zenzic.core.suppressions import GlobalUsageTracker + from zenzic.models.config import GovernanceConfig, ZenzicConfig toml_path = tmp_path / ".zenzic.toml" toml_path.write_text( @@ -278,6 +278,7 @@ def test_global_usage_tracker_toml_line_resolution(tmp_path: Path) -> None: stale = tracker.get_stale_findings(check_all=True) lines_by_pattern = {f.message: f.line_no for f in stale} - assert any("docs/assets/**" in msg and line_no == 3 for msg, line_no in lines_by_pattern.items()) + assert any( + "docs/assets/**" in msg and line_no == 3 for msg, line_no in lines_by_pattern.items() + ) assert any("docs/blog/**" in msg and line_no == 4 for msg, line_no in lines_by_pattern.items()) - diff --git a/tests/test_validator.py b/tests/test_validator.py index a3f7f12..ecaacd8 100644 --- a/tests/test_validator.py +++ b/tests/test_validator.py @@ -1765,8 +1765,8 @@ def test_stale_allowlist_entry(tmp_path: Path) -> None: def test_math_blocks_link_extraction_ignored(): """Verify that links syntax inside display math ($$..$$) and inline math ($..$) are ignored.""" - from zenzic.core.validator import PolyglotExtractor from zenzic.core.rules import _extract_inline_links_with_lines + from zenzic.core.validator import PolyglotExtractor content = """# Math Test $$\\text{Signature} = \\text{SHA256}[\\text{RuleCode} + \\text{PosixPath}](:16)$$ @@ -1781,4 +1781,3 @@ def test_math_blocks_link_extraction_ignored(): rule_links = _extract_inline_links_with_lines(content) rule_urls = [u[0] for u in rule_links] assert rule_urls == ["https://example.com/valid"] - From 7369fddb997ad0a38484a634ff00f13d54581458 Mon Sep 17 00:00:00 2001 From: PythonWoods Date: Sun, 2 Aug 2026 19:10:14 +0200 Subject: [PATCH 16/17] fix(governance): track topology directory policies correctly for Z118 Signed-off-by: PythonWoods --- .zenzic.toml | 4 +++- src/zenzic/core/scanner.py | 8 ++++++++ src/zenzic/core/suppressions.py | 9 ++++++++- tests/test_suppressions.py | 16 ++++++++++++++++ 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/.zenzic.toml b/.zenzic.toml index 59bf0d2..857005b 100644 --- a/.zenzic.toml +++ b/.zenzic.toml @@ -48,6 +48,8 @@ excluded_external_urls = [ excluded_file_patterns = [] # Paths listed here are INVISIBLE to Zenzic: no findings, no audit trail. [governance.directory_policies] -# Didactic examples (isolated sandbox) +"docs/blog/posts/**" = ["Z410", "Z411"] +"docs/developers/explanation/adr-vault/records/**" = ["Z410", "Z411"] +"docs/tutorials/examples/**" = ["Z410", "Z411"] "docs/tutorials/examples/z1xx-links/**" = ["Z107"] "docs/tutorials/examples/z5xx-content/**" = ["Z506"] diff --git a/src/zenzic/core/scanner.py b/src/zenzic/core/scanner.py index 0f7f04a..40264e3 100644 --- a/src/zenzic/core/scanner.py +++ b/src/zenzic/core/scanner.py @@ -1160,11 +1160,19 @@ def _run_vsm_and_urp_pass( inc_engine.anchors_cache = anchors_cache use_dir_urls = getattr(config, "use_directory_urls", True) + parent_global_tracker = getattr(config, "_global_tracker", None) for r in reports: if not r.file_path.is_file(): continue + # In parallel mode, each report is deserialized from a worker process and + # may carry a detached GlobalUsageTracker snapshot. Rebind to the parent + # process tracker so directory-policy consumption (Z118 accounting) + # is recorded on the canonical tracker instance. + if r.suppression_tracker is not None: + r.suppression_tracker.global_tracker = parent_global_tracker + try: text = r.file_path.read_text(encoding="utf-8") except OSError: diff --git a/src/zenzic/core/suppressions.py b/src/zenzic/core/suppressions.py index 397be9b..43fb42a 100644 --- a/src/zenzic/core/suppressions.py +++ b/src/zenzic/core/suppressions.py @@ -26,6 +26,9 @@ #: ADR-084 — Strip backtick inline code spans before counting suppressions. _INLINE_CODE_STRIP_RE = re.compile(r"``[^`\n]+``|`[^`\n]+`") +#: Topological findings are governed as a paired policy family. +_TOPOLOGY_POLICY_CODES: frozenset[str] = frozenset({"Z410", "Z411"}) + @dataclass class SuppressionDirective: @@ -201,7 +204,11 @@ def __init__(self, config: "ZenzicConfig"): self.unused_ext_urls.add(url) def mark_directory_policy_used(self, pattern: str, code: str) -> None: - self.unused_dir_policies.discard((pattern, code.upper())) + normalized = code.upper() + self.unused_dir_policies.discard((pattern, normalized)) + if normalized in _TOPOLOGY_POLICY_CODES: + for sibling in _TOPOLOGY_POLICY_CODES: + self.unused_dir_policies.discard((pattern, sibling)) def mark_excluded_file_pattern_used(self, pattern: str) -> None: self.unused_file_patterns.discard(pattern) diff --git a/tests/test_suppressions.py b/tests/test_suppressions.py index 4289dab..8da1b1e 100644 --- a/tests/test_suppressions.py +++ b/tests/test_suppressions.py @@ -282,3 +282,19 @@ def test_global_usage_tracker_toml_line_resolution(tmp_path: Path) -> None: "docs/assets/**" in msg and line_no == 3 for msg, line_no in lines_by_pattern.items() ) assert any("docs/blog/**" in msg and line_no == 4 for msg, line_no in lines_by_pattern.items()) + + +def test_global_usage_tracker_topology_policy_pair_consumption() -> None: + """Using either topological code must consume the paired directory policy family.""" + from zenzic.core.suppressions import GlobalUsageTracker + from zenzic.models.config import GovernanceConfig, ZenzicConfig + + config = ZenzicConfig( + governance=GovernanceConfig(directory_policies={"docs/historical/**": ["Z410", "Z411"]}) + ) + tracker = GlobalUsageTracker(config) + + tracker.mark_directory_policy_used("docs/historical/**", "Z411") + + assert ("docs/historical/**", "Z410") not in tracker.unused_dir_policies + assert ("docs/historical/**", "Z411") not in tracker.unused_dir_policies From 8b310a00c5a12c0dc1354c1d0e741ce3de8ba7ba Mon Sep 17 00:00:00 2001 From: PythonWoods Date: Sun, 2 Aug 2026 19:10:26 +0200 Subject: [PATCH 17/17] docs(changelog): record Z118 topology policy tracking fix in v0.27.0 Signed-off-by: PythonWoods --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6352f3..1aa2348 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ Versions follow [Semantic Versioning](https://semver.org/). - **Readability Sentence Boundary Parser (`Z511`)**: Fixed sentence length calculation in `zenzic.core.content` by recognizing bulleted lists, numbered items, and blockquotes as hard sentence boundaries, eliminating false-positive readability warnings on long lists. - **CLI Flag Input Validation**: Enforced strict input validation for the `--only` CLI option in `zenzic check`, triggering an immediate fatal exit (`Exit 1`) when an invalid or unknown finding code is supplied. +- **Topological Directory-Policy Tracking (`Z118`)**: Fixed a Core Engine governance bug where topological suppressions (`Z410`/`Z411`) could leave false-positive dead-policy findings by ensuring canonical tracker rebinding in scanner passes and paired topology policy consumption in `GlobalUsageTracker`. ### Changed