feat: Integrate knowledge decay checks into lint-genomes script
This commit is contained in:
parent
c807b0f732
commit
92e68fff00
1 changed files with 33 additions and 12 deletions
|
|
@ -2,6 +2,8 @@
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# scripts/lint-genomes.sh
|
# scripts/lint-genomes.sh
|
||||||
# Executes quality control across all registered genomes.
|
# Executes quality control across all registered genomes.
|
||||||
|
# Iterates from the GENOMES registry in config.env — not from filesystem patterns —
|
||||||
|
# so all genomes are covered regardless of their naming convention.
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
@ -12,27 +14,46 @@ source "lib/lint.sh"
|
||||||
step "Starting Knowledge Genome Linting"
|
step "Starting Knowledge Genome Linting"
|
||||||
|
|
||||||
TOTAL_ERRORS=0
|
TOTAL_ERRORS=0
|
||||||
|
TOTAL_STALE=0
|
||||||
|
|
||||||
# Iterate through genome submodules inside the Master repo
|
for entry in "${GENOMES[@]}"; do
|
||||||
for genome_dir in "${WORK_DIR}/${MASTER_REPO}"/genome-*/; do
|
IFS='|' read -r GENOME_NAME _ <<< "$entry"
|
||||||
[[ -d "$genome_dir" ]] || continue
|
genome_dir="${WORK_DIR}/${MASTER_REPO}/${GENOME_NAME}"
|
||||||
|
|
||||||
|
if [[ ! -d "$genome_dir" ]]; then
|
||||||
|
warn "Genome directory not found locally, skipping: ${genome_dir}"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
GENOME_NAME=$(basename "$genome_dir")
|
|
||||||
info "Auditing genome: ${GENOME_NAME}..."
|
info "Auditing genome: ${GENOME_NAME}..."
|
||||||
|
|
||||||
# Find all .md files, excluding AGENTS.md and external references
|
# Lint all .md files except AGENTS.md and core-karpathy reference
|
||||||
while IFS= read -r md_file; do
|
while IFS= read -r md_file; do
|
||||||
# Run validations
|
|
||||||
lint_markdown_file "$md_file" "$GENOME_NAME" || TOTAL_ERRORS=$((TOTAL_ERRORS + $?))
|
lint_markdown_file "$md_file" "$GENOME_NAME"
|
||||||
check_privacy_consistency "$md_file" || TOTAL_ERRORS=$((TOTAL_ERRORS + $?))
|
file_errors=$?
|
||||||
|
TOTAL_ERRORS=$((TOTAL_ERRORS + file_errors))
|
||||||
|
|
||||||
|
check_privacy_consistency "$md_file"
|
||||||
|
TOTAL_ERRORS=$((TOTAL_ERRORS + $?))
|
||||||
|
|
||||||
|
check_knowledge_decay "$md_file"
|
||||||
|
stale=$?
|
||||||
|
TOTAL_STALE=$((TOTAL_STALE + stale))
|
||||||
|
|
||||||
check_broken_links "$md_file"
|
check_broken_links "$md_file"
|
||||||
|
|
||||||
done < <(find "$genome_dir" -name "*.md" ! -name "AGENTS.md" ! -path "*/core-karpathy/*")
|
done < <(find "$genome_dir" -name "*.md" \
|
||||||
|
! -name "AGENTS.md" \
|
||||||
|
! -path "*/core-karpathy/*")
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ $TOTAL_ERRORS -eq 0 ]]; then
|
echo ""
|
||||||
success "Linting passed: All files are consistent and secure."
|
if [[ $TOTAL_ERRORS -eq 0 && $TOTAL_STALE -eq 0 ]]; then
|
||||||
|
success "Linting passed: all files are consistent, secure, and current."
|
||||||
|
elif [[ $TOTAL_ERRORS -eq 0 && $TOTAL_STALE -gt 0 ]]; then
|
||||||
|
warn "Linting passed with ${TOTAL_STALE} stale file(s). Review and re-validate flagged pages."
|
||||||
else
|
else
|
||||||
error "Linting failed: Found ${TOTAL_ERRORS} critical issues."
|
error "Linting failed: ${TOTAL_ERRORS} critical issue(s), ${TOTAL_STALE} stale file(s)."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue