Automation Tools
This page documents all automation tools available for maintaining and improving the knowledge base.
Quick Reference
Section titled “Quick Reference”| Tool | Purpose | Command |
|---|---|---|
| Page Improver | Improve pages to Q5 quality | node scripts/page-improver.mjs <page-id> |
| Content Grader | Auto-grade pages via AI | node scripts/grade-content.mjs |
| Validators | Check content quality | npm run validate |
| Knowledge Base | Scan content, generate summaries | npm run kb:scan |
| Data Builder | Regenerate entity data | npm run build:data |
| Document Enhancer | Unified content management CLI | node scripts/document-enhancer.mjs |
Page Improvement
Section titled “Page Improvement”Purpose: Improve wiki pages to quality level 5.
Quick Start:
node scripts/page-improver.mjs --list # List candidatesnode scripts/page-improver.mjs economic-disruption # Get prompt for pageView All Commands & Q5 Requirements
Commands:
# List pages that need improvement (sorted by priority)node scripts/page-improver.mjs --list
# Get improvement prompt for a specific pagenode scripts/page-improver.mjs economic-disruption
# Show page info only (no prompt)node scripts/page-improver.mjs racing-dynamics --info
# Filter by quality and importancenode scripts/page-improver.mjs --list --max-qual 3 --min-imp 50Q5 Requirements:
| Element | Requirement |
|---|---|
| Quick Assessment Table | 5+ rows, 3 columns (Dimension, Assessment, Evidence) |
| Substantive Tables | 2+ additional tables with real data |
| Mermaid Diagram | 1+ showing key relationships |
| Citations | 10+ real URLs from authoritative sources |
| Quantified Claims | Replace “significant” with “25-40%” etc. |
| Word Count | 800+ words of substantive content |
Cost: $3-5 (Opus), $0.50-1.00 (Sonnet)
Reference Examples:
- Gold standard:
src/content/docs/knowledge-base/risks/misuse/bioweapons.mdx - Good example:
src/content/docs/knowledge-base/risks/structural/racing-dynamics.mdx
Content Grading
Section titled “Content Grading”Purpose: Auto-grade pages with importance, quality, and AI-generated summaries using Claude Sonnet.
Quick Start:
node scripts/grade-content.mjs --dry-run # Previewnode scripts/grade-content.mjs --page scheming # Grade one pagenode scripts/grade-content.mjs --apply --limit 10 # Grade and applyView All Options & Grading Criteria
Commands:
# Preview what would be graded (no API calls)node scripts/grade-content.mjs --dry-run
# Grade a specific pagenode scripts/grade-content.mjs --page scheming
# Grade pages and apply to frontmatternode scripts/grade-content.mjs --limit 10 --apply
# Grade a category with parallel processingnode scripts/grade-content.mjs --category responses --parallel 3
# Skip already-graded pagesnode scripts/grade-content.mjs --skip-graded --limit 50Options:
| Option | Description |
|---|---|
--page ID | Grade a single page |
--dry-run | Preview without API calls |
--limit N | Only process N pages |
--parallel N | Process N pages concurrently (default: 1) |
--category X | Only process pages in category |
--skip-graded | Skip pages with existing importance |
--apply | Write grades to frontmatter (caution) |
--output FILE | Write results to JSON file |
Importance (0-100):
- 90-100: Essential (core interventions, key risk mechanisms)
- 70-89: High value (concrete responses, major risk categories)
- 50-69: Useful context (supporting analysis, secondary risks)
- 30-49: Reference material (historical, profiles, niche)
- 0-29: Peripheral (internal docs, stubs)
Quality (0-100):
- 80-100: Comprehensive (2+ tables, 1+ diagram, 5+ citations)
- 60-79: Good (1+ table, 3+ citations, mostly prose)
- 40-59: Adequate (structure but lacks tables/citations)
- 20-39: Draft (poorly structured, heavy bullets)
- 0-19: Stub (minimal content)
Cost: ~$0.02 per page, ~$6 for all 329 pages
Validation Suite
Section titled “Validation Suite”Purpose: Check content quality across multiple dimensions.
Quick Start:
npm run validate # Run all validatorsnpm run validate:mdx # Just MDX syntaxView All Validators
Main Commands:
npm run validate # Run all validatorsnpm run validate:ci # CI mode (JSON output)Individual Validators:
| Command | Description |
|---|---|
npm run validate:style | Style guide compliance (sections, structure) |
npm run validate:staleness | Content freshness (review dates, age) |
npm run validate:consistency | Cross-page consistency (estimates, terminology) |
npm run validate:data | Entity data integrity (references, required fields) |
npm run validate:links | Internal link validation |
npm run validate:mdx | MDX syntax errors |
npm run validate:sidebar | Sidebar configuration (index pages) |
npm run validate:types | UI components handle all entity types |
npm run validate:quality | Content quality metrics |
Advanced Usage:
# Skip specific checksnode scripts/validate-all.mjs --skip=orphans,staleness
# Stop on first failurenode scripts/validate-all.mjs --fail-fastKnowledge Base System
Section titled “Knowledge Base System”Purpose: SQLite-based system for managing content, sources, and AI summaries.
Quick Start:
npm run kb:scan # Scan MDX files, populate databasenpm run kb:stats # Show database statisticsSetup: Requires ANTHROPIC_API_KEY in .env file.
View All Commands & Details
Commands:
npm run kb:scan # Scan MDX files, extract sources, populate databasenpm run kb:summarize # Generate AI summariesnpm run kb:stats # Show database statisticsDetailed Usage:
# Scan content (run after editing MDX files)node scripts/scan-content.mjsnode scripts/scan-content.mjs --force # Rescan all filesnode scripts/scan-content.mjs --verbose # Show per-file progress
# Generate summariesnode scripts/generate-summaries.mjs --batch 50 # Summarize 50 articlesnode scripts/generate-summaries.mjs --type sources # Summarize sourcesnode scripts/generate-summaries.mjs --model sonnet # Use Sonnetnode scripts/generate-summaries.mjs --id deceptive-alignment # Specific articlenode scripts/generate-summaries.mjs --dry-run # Preview onlyDatabase Location: .cache/ (gitignored)
.cache/knowledge.db- SQLite database.cache/sources/- Fetched source documents
Cost Estimates:
| Task | Model | Cost |
|---|---|---|
| Summarize all 311 articles | Haiku | ~$2-3 |
| Summarize all 793 sources | Haiku | ~$10-15 |
Data Layer
Section titled “Data Layer”Purpose: Build and regenerate entity data files.
Quick Start:
npm run build:data # Regenerate all data filesImportant: Data build must run before site build. npm run dev and npm run build auto-run this.
View Generated Files & Other Scripts
Generated Files:
src/data/database.json- Main entity databasesrc/data/entities.json- Entity definitionssrc/data/backlinks.json- Cross-referencessrc/data/tagIndex.json- Tag indexsrc/data/pathRegistry.json- URL path mappingssrc/data/pages.json- Page metadata for scripts
Other Data Scripts:
npm run sync:descriptions # Sync model descriptions from filesnpm run extract # Extract data from pagesnpm run generate-yaml # Generate YAML from datanpm run cleanup-data # Clean up data filesDocument Enhancer CLI
Section titled “Document Enhancer CLI”Purpose: Unified tool for managing and improving content quality.
Quick Start:
node scripts/document-enhancer.mjs list --sort gap --limit 20 # List priority pagesnode scripts/document-enhancer.mjs show scheming # Show page detailsView All Commands & Options
Commands:
# List pages by priority (gap = importance - quality × 20)node scripts/document-enhancer.mjs list --sort gap --limit 20
# Show details for a specific pagenode scripts/document-enhancer.mjs show scheming
# Grade pages using Claude APInode scripts/document-enhancer.mjs grade --limit 5 --dry-runnode scripts/document-enhancer.mjs grade --apply
# Enhance low-quality pagesnode scripts/document-enhancer.mjs enhance --min-imp 70 --max-qual 2 --dry-runnode scripts/document-enhancer.mjs enhance --page language-modelsOptions:
| Option | Description |
|---|---|
--dry-run | Preview without API calls |
--limit N | Process only N pages |
--apply | Apply changes directly to files |
--model X | Use specific Claude model |
--min-imp N | Minimum importance (enhance) |
--max-qual N | Maximum quality (enhance) |
--page ID | Target specific page |
Resource Linking
Section titled “Resource Linking”Purpose: Convert URLs to <R> components for hover tooltips and bidirectional tracking.
Quick Start:
node scripts/map-urls-to-resources.mjs --stats # Show statisticsView All Commands
Convert URLs to R Components:
# Find URLs that can be converted to <R> componentsnode scripts/map-urls-to-resources.mjs expertise-atrophy # Specific filenode scripts/map-urls-to-resources.mjs # All filesnode scripts/map-urls-to-resources.mjs --stats # Statistics only
# Auto-convert markdown links to R componentsnode scripts/convert-links-to-r.mjs --dry-run # Previewnode scripts/convert-links-to-r.mjs --apply # Apply changesExport Resources:
node scripts/export-resources.mjs # Export resource datanode scripts/fix-resource-summaries.mjs # Fix summary issuesContent Generation
Section titled “Content Generation”Purpose: Generate new pages from YAML input.
View Commands
# Generate a model page from YAML inputnode scripts/generate-content.mjs --type model --file input.yaml
# Generate a risk pagenode scripts/generate-content.mjs --type risk --file input.yaml
# Generate a response pagenode scripts/generate-content.mjs --type response --file input.yaml
# Batch summariesnode scripts/batch-summaries.mjsTesting & Linting
Section titled “Testing & Linting”View Commands
Testing:
npm run test # Run all testsnpm run test:lib # Test library functionsnpm run test:validators # Test validator functionsLinting and Formatting:
npm run lint # Check for linting issuesnpm run lint:fix # Fix linting issuesnpm run format # Format all filesnpm run format:check # Check formatting without changingCommon Workflows
Section titled “Common Workflows”Improve a Low-Quality Important Page
-
Find candidates
Terminal window node scripts/page-improver.mjs --list --max-qual 3 -
Get improvement prompt
Terminal window node scripts/page-improver.mjs economic-disruption -
Run in Claude Code with the generated prompt
-
Validate the result
Terminal window npm run validate:mdxnpm run validate:style
Grade All New Pages
-
Preview what will be graded
Terminal window node scripts/grade-content.mjs --skip-graded --dry-run -
Grade and apply to frontmatter
Terminal window node scripts/grade-content.mjs --skip-graded --apply --parallel 3 -
Review results
Terminal window cat .claude/temp/grades-output.json
Check Content Quality Before PR
npm run validateUpdate After Editing entities.yaml
npm run build:datanpm run validate:dataTemporary Files: All temporary/intermediate files go in .claude/temp/ (gitignored). Scripts that generate intermediate output write here by default.