Overview
Self-discovering documentation systems automatically identify, research, and integrate new topics without manual curation. They combine web search, AI content generation, and static site generation to create living documentation that evolves over time.
Core Concepts
1. Autonomous Research Loop
| |
The system runs on a schedule (typically daily), researching predefined topics and updating content. New topics can be added by editing the research script’s topic list.
2. Topic Discovery
Topics can be discovered through:
- Trending searches: What people are searching for in your domain
- Gap analysis: Comparing existing content against a knowledge graph
- User queries: Analyzing what users search for on the site
- External signals: GitHub trending, HN top posts, arXiv papers
3. Content Evolution
Each topic page tracks its own evolution:
- Last updated: Date of most recent research
- Next review: Scheduled review date
- Evolution notes: What changed and why
This creates an audit trail and prevents content from going stale.
4. Quality Signals
Automated quality checks:
- Source attribution: Every claim should have a source
- Freshness: Content older than N days gets flagged
- Completeness: Pages with empty “Key Findings” are stubs
- Tag validity: Tags must be arrays, not comma-separated strings
LLM-Wiki Implementation
The LLM-Wiki is a self-discovering docs site:
| Component | Technology | Role |
|---|---|---|
| Static generator | Hugo v0.140+ | Build HTML + JSON |
| Research engine | Python + DuckDuckGo API | Gather topic research |
| Dashboard | Vanilla JS SPA | Render searchable cards |
| Scheduler | Hermes cron | Daily evolution cycle |
| Server | Nginx + Let’s Encrypt | Serve with SSL |
Data Flow
research-automation.pysearches for each topic- Results โ Hugo markdown with front matter
hugo --minifyโpublic/(HTML + JSON)- Dashboard fetches
/topics/index.json - Vanilla JS renders cards with search + tag filters
Svelte 5 Enhancement Layer
Add interactive discovery features via Svelte 5 components:
| |
Key Svelte 5 patterns used:
$statefor reactive UI state$derivedfor computed filtered lists{#each}for rendering lists- Event handlers with
onclick
Anti-Patterns
- Separate dashboard build: Don’t use Svelte/Vite for the dashboard โ adds Node.js dependency to deploy pipeline
- Absolute URLs in JSON:
.Permalinkbreaks when domain differs; always use.RelPermalink - Taxonomy overuse: Don’t declare
topic = "topics"in taxonomies โ it breaks section JSON output - Global page lists:
.Site.RegularPagesin section templates shows unrelated content; use.Pages
Related Topics
- Hugo Documentation Automation
- LLM-Powered Knowledge Bases
- AI Content Evolution
- Svelte 5 Best Practices
- Svelte 5 Migration Guide
Evolution Notes
Content last updated: 2026-06-05 Next review: 2026-06-12