provisioning/scripts/audit-docs.nu
2026-01-14 02:59:52 +00:00

48 lines
1.3 KiB
Plaintext

#!/usr/bin/env nu
# Documentation Audit Script
# Identifies quality issues in 201 documentation files
def main [] {
let docs_root = "provisioning/docs/src"
# Find all markdown files
let all_files = (glob $"($docs_root)/**/*.md")
let audit_results = (
$all_files | par-each {|file|
let content = (open $file | str trim)
let size = ($file | stat | get size)
let basename = ($file | path basename)
# Detect issues
let is_stub = ($size < 100)
let kcl_refs = ($content | grep -i "kcl" | length)
let claude_refs = ($content | grep '.claude/' | length)
let adr_uppercase = ($basename =~ r'^ADR-')
let bare_urls = ($content | grep -E r'https?://[^\[]*$' | length)
{
file: $file,
basename: $basename,
size: $size,
status: (
if $is_stub { "STUB" }
else if ($claude_refs > 0) { "CROSS-REF-VIOLATION" }
else if ($kcl_refs > 0 and ($file !~ "adr-010|adr-011")) { "KCL-DEPRECATED" }
else if $adr_uppercase { "ADR-NAMING" }
else if ($bare_urls > 0) { "BARE-URLS" }
else { "OK" }
),
kcl_count: $kcl_refs,
claude_refs: $claude_refs,
bare_urls: $bare_urls
}
}
)
# Output results
$audit_results | to json
}
main