diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 18385e8..c50e20c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -91,7 +91,7 @@ maintainer (or an attacker) can move a tag silently, poisoning the local Gate 2 without any diff in this repository. This is an **internal CI policy for the zenzic-action project**, not a public -Zenzic linter rule. Enforcement: `just check-pinning` (dependency of +Zenzic rule. Enforcement: `just check-pinning` (dependency of `just verify`); violations raise `[ADR-089] FATAL` at pre-push. The local exposure window is smaller than the GHA one because `pre-commit` diff --git a/README.md b/README.md index c3f476b..29521ed 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@
-The deterministic enforcement point for documentation integrity in CI. Exit codes are contractual — exits 2 and 3 survive fail-on-error: false.
Deterministic Document Integrity Engine and SAST for Markdown/MDX graphs.
@@ -28,22 +28,22 @@
---
-Run Zenzic checks in CI and surface results directly in GitHub Code Scanning — without reading logs.
+Run Zenzic SAST and graph integrity analysis in CI — surfacing results directly in GitHub Code Scanning without reading logs.
**Exit code contract.** The wrapper propagates Zenzic's exit codes without remapping. Exit 1 (quality) obeys `fail-on-error`. Exit 2 (credential) and exit 3 (path traversal) terminate the job regardless of `fail-on-error: false` or `--exit-zero` — security findings are never suppressed at the enforcement boundary.
## Core Features
-| Feature | Description |
-|---|---|
-| Zero-setup install | `uvx zenzic` — no Python toolchain required on the runner |
-| SARIF output | Findings feed directly into GitHub Code Scanning |
-| Exit Code Contract | Security incidents (exit 2/3) are never suppressed by `fail-on-error` |
-| Sovereign Audit mode | `audit: "true"` bypasses all suppressions — surfaces the true documentation state |
-| SARIF integrity check | Validates JSON before upload; emits `::warning` if truncated by SIGKILL |
-| PR annotations | Inline findings on the diff, colour-coded by severity |
-| Version pinning | Pin to an exact release for deterministic, reproducible CI gates |
-| **Clean prose** | `[governance.directory_policies]` in `.zenzic.toml` grants zero-debt exemptions to path patterns |
+| Feature | Category | Description |
+|---|---|---|
+| **Security Scanning (SAST)** | Security | Detects hardcoded tokens (Z201) and path traversal (Z202/Z203); exits 2/3 survive `fail-on-error: false` |
+| **Graph Topology Analysis** | Topology | Virtual Site Map (VSM) verifies cross-file links, orphan pages, and dead navigation graph nodes |
+| **Deterministic CI/CD Enforcement** | CI/CD | Zero-DBT quality gate ensuring bit-for-bit reproducible enforcement across build environments |
+| **Zero-setup install** | Execution | `uvx zenzic` — no Python toolchain required on the runner |
+| **SARIF output** | Integration | Findings feed directly into GitHub Code Scanning |
+| **Sovereign Audit mode** | Security | `audit: "true"` bypasses suppressions to reveal unfiltered documentation graph state |
+| **PR annotations** | Feedback | Inline findings on diffs, colour-coded by severity |
+| **Version pinning** | Governance | Pin to exact release for deterministic, reproducible CI gates |
## Quick Start
@@ -81,8 +81,8 @@ Zenzic Action surfaces findings directly where you work. No more digging through
## Integration Blueprints
-### 1. Baseline Check (Standard Link/Topology Validation)
-This blueprint provides standard documentation linting, link validation, and structural verification. It executes during pushes and PRs, ensuring no broken links or invalid configurations enter the repository.
+### 1. Baseline Check (SAST & Topology Verification)
+This blueprint provides static application security testing (SAST), link validation, and graph topology verification. It executes during pushes and PRs, ensuring no broken links, credential leaks, or invalid configurations enter the repository.
```yaml title=".github/workflows/docs-baseline.yml"
name: Zenzic Baseline Audit
diff --git a/action.yml b/action.yml
index 5be0944..c1d07c6 100644
--- a/action.yml
+++ b/action.yml
@@ -1,7 +1,7 @@
# SPDX-FileCopyrightText: 2026 PythonWoods