CHRON-0005: Day Five -- Knowledge Base and Knowledge Graph Expansion
What Happened
Perplexity executed a coordinated breadth-then-depth expansion of the Knowledge Base and Knowledge Graph. The session ran as a single sustained operation: audit content gaps, generate entries in bulk, wire relations, enrich library connections, and back-fill cross-references. The entire expansion was committed as a single atomic commit (76fda27) and pushed to main.
Content Architecture Audit
Perplexity read all eight series outlines (episode titles, subtitles, theme descriptions) from site/lib/series-data.ts and cross-referenced against the existing KB index. The audit identified 35 missing concepts and 40 missing figures that the episode content would require. Two detailed generation specs were written: concept-generation-spec.md and figure-generation-spec.md, each containing entry-level instructions, field mappings, required cross-references, and editorial constraints.
Concept Generation (CON-0021 through CON-0055)
A subagent generated 35 new concept entries covering domains the series content demands: Western esotericism (prisca theologia, chain of being, solve et coagula, ars memoria), depth psychology (archetype, anima mundi, shadow integration), phenomenology of religion (sacred-profane, mysterium tremendum, liminality), Barfieldian evolution of consciousness (original participation, final participation), contemplative practice (theosis, dhikr, catharsis, self-remembering), and technology critique (gestell, cosmotechnics). CON-0050, "Dissolution of Subject-Object," was designated as the project's meta-concept -- the point where the form of the project (AI-mediated knowledge construction) touches the content it examines.
Figure Generation (FIG-0021 through FIG-0060)
A parallel subagent generated 40 new figure entries spanning the traditions the project investigates: Renaissance Hermetists (Ficino, Pico, Bruno, Dee), Romantic philosophers (Goethe, Novalis, Schelling), psychologists of the sacred (Jung, Campbell, Kerenyi), Islamic mystics (Rumi, Ibn Arabi), esoteric practitioners and systematizers (Gurdjieff, Ouspensky, Tomberg, Blavatsky), figures requiring editorial distance per docs/editorial-guidance.md (Evola, Dugin), and boundary figures bridging esotericism with technology and science (Stiegler, Yuk Hui, Prigogine, Llull, Leibniz).
Banned Word Cleanup
After generation, Perplexity ran a sed-based cleanup pass removing all instances of the project's banned vocabulary: "utilize," "facilitate," "moreover," "crucial," "comprehensive," and "realm." These words were replaced inline or sentences restructured.
Relation Generation (REL-0031 through REL-0090)
A Python script (scripts/generate-relations.py) generated 60 new relations between existing and new entries. The script read the full KB index and produced typed semantic connections: influenced_by, teacher_student, concept_development, parallel_development, opposition, and synthesis. Each relation includes a description contextualizing the connection within the project's interpretive framework.
Library Enrichment
A second script (scripts/enrich-library-connections.py) enriched 37 library books with concept_coverage and figure_coverage arrays, connecting each book to the concepts and figures it most directly addresses. The enrichment targeted books already existing in the KB but lacking structured connections to the concept and figure layers.
Cross-Reference Back-Fill
A third script (scripts/add-reverse-refs.py) walked every entry in the KB and ensured all cross-references were bidirectional. If CON-0025 referenced FIG-0030, FIG-0030 now references CON-0025 back. 244 reverse references were added.
Index Rebuild
scripts/rebuild-index.py regenerated kb/_index.yaml from the filesystem, producing correct counts and full entry listings for all five entry types.
Agent Contributions
| Agent | What |
|---|---|
| Perplexity | Content audit, generation specs, concept subagent coordination, figure subagent coordination, banned word cleanup, relation generation script, library enrichment script, cross-reference script, index rebuild, chronicle entry, delegation notes |
| Human | Direction ("do both in sequence"), editorial constraints (banned words list), agent role assignment |
Stats
| Metric | Before | After |
|---|---|---|
| Concepts | 20 | 55 (+35) |
| Figures | 20 | 60 (+40) |
| Relations | 30 | 90 (+60) |
| Library books with concept/figure connections | ~0 | 37 |
| Bidirectional cross-references added | 0 | 244 |
| Graph nodes (estimated) | ~97 | ~200+ |
| Graph edges (estimated) | ~207 | ~500+ |
| Timeline entries | 10 | 10 (unchanged) |
| Total library entries | 347 | 347 (unchanged) |
| Scripts written | 0 | 4 (generate-relations.py, enrich-library-connections.py, add-reverse-refs.py, rebuild-index.py) |
| Commit | -- | 76fda27 (242 files, 11384 insertions) |
Delegation Flags
The following tasks arise from this expansion and fall outside Perplexity's role:
-
Cursor: Lint pass on 75 new entries -- Run
make lintormake lint-reportacross all new CON, FIG, and REL files. Fix mechanical issues: YAML indentation, trailing whitespace, markdown structure, any Valeerror-level flags. Do not rewrite prose. -
Claude Code: Editorial voice pass on new entries -- After Cursor's lint pass, review all 75 new entries for AI-generated prose patterns that passed the banned word filter but still read as machine-written. Check that descriptions maintain the project's voice: direct, specific, grounded in primary texts, no filler. Pay particular attention to the
descriptionandsignificancefields in concept entries, and thebiographyandsignificancefields in figure entries. -
Claude Code: Review Evola (FIG-0032) and Dugin (FIG-0051) editorial framing -- These entries include explicit editorial distance language per docs/editorial-guidance.md. Verify the framing is precise, fair, and consistent with the project's stated position.
-
Site graph: No action needed -- The /explore page reads KB at build time via site/lib/graph-data.ts. New entries will appear automatically on next Vercel deploy. The MCP server similarly reads from the same kb.ts library. No schema changes are needed.