@@ -40,7 +40,7 @@ SPDX-License-Identifier: Apache-2.0
4040</p >
4141
4242<p align =" center " >
43- <img src =" docs/assets/screenshots/screenshot.svg " alt =" Zenzic Sentinel — engineering-grade documentation linter " width =" 700 " >
43+ <img src =" docs/assets/screenshots/screenshot-hero .svg " alt =" Zenzic Sentinel — engineering-grade documentation linter " width =" 700 " >
4444</p >
4545
4646---
@@ -63,30 +63,31 @@ referenced ecosystem tools are third-party projects.
6363
6464---
6565
66- ## v0.5.0a1 Highlights — The Sentinel
67-
68- - ** Hybrid Adaptive Engine** : ` scan_docs_references ` is the single unified
69- entry point for all scan modes. The engine selects sequential or parallel
70- execution automatically based on repository size (threshold: 50 files). No
71- flags required — Zenzic is fast by default.
72- - ** ` AdaptiveRuleEngine ` with eager pickle validation** : all rules are validated
73- for pickle-serializability at construction time. A non-serialisable rule raises
74- ` PluginContractError ` immediately — before any file is scanned.
75- - ** ` zenzic.rules ` entry-point group** : core rules (` VSMBrokenLinkRule ` ) are
76- registered as first-class plugins. Third-party packages can extend Zenzic by
77- registering under the same group and enabling their plugin ID in ` zenzic.toml ` .
78- - ** ` zenzic plugins list ` ** : new command that displays every rule registered in
79- the ` zenzic.rules ` entry-point group — Core rules and third-party plugins.
80- - ** ` pyproject.toml ` support (ISSUE #5 )** : embed Zenzic config in ` [tool.zenzic] `
81- when ` zenzic.toml ` is absent. ` zenzic.toml ` always wins if both exist.
82- - ** Performance telemetry** : ` scan_docs_references(verbose=True) ` prints engine
83- mode, worker count, elapsed time, and estimated speedup to stderr.
84- - ** ` PluginContractError ` ** : new exception for rule contract violations.
85- - ** Plugin documentation** : ` docs/developers/plugins.md ` (EN + IT) — full
86- contract, packaging instructions, and ` pyproject.toml ` registration examples.
87- - ** Release-track clarification** : the 0.4.x cycle is considered abandoned
88- (exploratory with repeated breaking changes); 0.5.x is the active
89- stabilization line.
66+ ## v0.5.0a3 Highlights — The Sentinel
67+
68+ - ** Smart Initialization** : ` zenzic init ` detects ` pyproject.toml ` and offers to
69+ embed config as ` [tool.zenzic] ` instead of a standalone ` zenzic.toml ` . Use
70+ ` --pyproject ` to skip the prompt. Engine auto-detection in both modes.
71+ - ** Sentinel UI** : monolithic Indigo banner, traceback gutter with 2-space
72+ padding (` │ 16 ❱ ` ), surgical caret underlines, and vertical breathing
73+ between findings.
74+ - ** Agnostic Target** : ` zenzic check all README.md ` or ` zenzic check all content/ `
75+ scopes audits to a single file or directory. ` VanillaAdapter ` auto-selected for
76+ out-of-docs targets.
77+ - ** Plugin SDK** : ` zenzic init --plugin <name> ` scaffolds a ready-to-edit rule
78+ package. ` zenzic.rules ` public namespace is stable — ` BaseRule ` , ` RuleFinding ` ,
79+ ` CustomRule ` , ` Violation ` , ` Severity ` .
80+ - ** Hybrid Adaptive Engine** : ` scan_docs_references ` selects sequential or parallel
81+ execution automatically based on repository size (threshold: 50 files).
82+ Deterministic two-phase anchor validation eliminates race-induced false positives.
83+ - ** Z001/Z002 Split** : broken links (Z001 error) vs orphan-page links (Z002 warning).
84+ Without ` --strict ` , orphan warnings don't block the build.
85+ - ** Mutation-tested** : 86.7% mutation score (242/279 killed on ` rules.py ` ).
86+ 706 tests, Hypothesis property-based testing with tiered profiles.
87+ - ** ` pyproject.toml ` config** : embed Zenzic config in ` [tool.zenzic] ` when
88+ ` zenzic.toml ` is absent. ` zenzic.toml ` always wins if both exist.
89+ - ** Zenzic Shield** : credential detection (7 secret families) + path traversal
90+ protection. Exit code 2 reserved for security events.
9091
9192---
9293
@@ -106,10 +107,6 @@ Zenzic provides an extensive, engineering-grade documentation portal:
106107
107108---
108109
109- ![ Zenzic CLI Output] [ screenshot ]
110-
111- ---
112-
113110## What Zenzic checks
114111
115112| Check | CLI command | What it detects |
@@ -331,25 +328,25 @@ fallback — for all documentation systems.
331328
332329` ` ` bash
333330# Zero-install, one-shot audit
334- uvx zenzic check all
331+ uvx --pre zenzic check all
335332
336333# Global CLI tool — available in any project
337- uv tool install zenzic
334+ uv tool install --pre zenzic
338335
339336# Project dev dependency — version-pinned in uv.lock
340- uv add --dev zenzic
337+ uv add --dev --pre zenzic
341338` ` `
342339
343340# ## With `pip`
344341
345342` ` ` bash
346343# Global install (consider a virtual environment)
347- pip install zenzic
344+ pip install --pre zenzic
348345
349346# Inside a virtual environment (recommended)
350347python -m venv .venv
351348source .venv/bin/activate # Windows: .venv\S cripts\a ctivate
352- pip install zenzic
349+ pip install --pre zenzic
353350` ` `
354351
355352# ## Lean & Agnostic by Design
@@ -509,10 +506,10 @@ silently collapsed into a generic "file not found".
509506
510507` ` ` yaml
511508- name: Lint documentation
512- run: uvx zenzic check all
509+ run: uvx --pre zenzic check all
513510
514511- name: Check references and run Shield
515- run: uvx zenzic check references
512+ run: uvx --pre zenzic check references
516513` ` `
517514
518515Full workflow : [`.github/workflows/zenzic.yml`][ci-workflow]
@@ -569,6 +566,16 @@ nox -s preflight # zenzic check all (self-check)
569566
570567---
571568
569+ # # Visual Tour
570+
571+ The full Sentinel audit : banner, gutter context, caret underlines, and quality score breakdown.
572+
573+ <p align="center">
574+ <img src="docs/assets/screenshots/screenshot.svg" alt="Zenzic Sentinel — full audit output with quality score" width="700">
575+ </p>
576+
577+ ---
578+
572579# # Contributing
573580
574581We welcome bug reports, documentation improvements, and pull requests. Before you start :
@@ -606,7 +613,6 @@ Apache-2.0 — see [LICENSE][license].
606613[docs-cicd] : https://zenzic.pythonwoods.dev/ci-cd/
607614[docs-arch] : https://zenzic.pythonwoods.dev/architecture/
608615[docs-contributing] : https://zenzic.pythonwoods.dev/community/contribute/
609- [screenshot] : docs/assets/screenshots/screenshot.svg
610616[ci-workflow] : .github/workflows/zenzic.yml
611617[contributing] : CONTRIBUTING.md
612618[license] : LICENSE
0 commit comments