Phase II: Architecting the Knowledge Graph (Modules 21-40)
Focus: Developing a systematic approach to knowledge capture, organization, and presentation. This phase moves from "getting the tools to work" to "using the tools effectively."
Modules 21-25: Knowledge Ingestion Framework
With the foundational infrastructure in place, the focus now shifts to establishing a structured process for exploring the 150 bucket-list topics. This involves leveraging GitHub's project management tools to create a systematic knowledge ingestion pipeline.
- Creating the "Topic Exploration" Project Board: A new GitHub Project will be created specifically for managing the 150 learning topics. This project will be configured as a Kanban board, providing a visual workflow for tracking topics as they move from idea to exploration.2
- Designing a Standardized Issue Template for Topics: To ensure consistency, a GitHub Issue template will be designed for new topics. This template, stored as a Markdown file in the .github/ISSUE_TEMPLATE directory, will pre-populate new issues with a standardized structure.3 Sections will include "Topic Summary," "Key Questions to Answer," "Initial Resources," and "Potential Connections," guiding the initial phase of research for any new subject.
- Populating the Backlog with Initial Topics: As a practical exercise, the first 10-15 topics from the user-provided list of 150 will be created as new Issues using the template designed in the previous module. These issues will form the initial "backlog" in the "Topic Exploration" project board.3
- Using Custom Fields for Topic Metadata: The project board will be enhanced with custom fields tailored for knowledge exploration. Fields like "Topic Category" (e.g., "Technology," "History," "Science"), "Priority" (e.g., "High," "Medium," "Low"), and "Status" (e.g., "Backlog," "Researching," "Synthesizing," "Published") will be added to provide richer metadata for each topic.5
- Linking Issues to a Milestone: To group related learning goals, a GitHub Milestone will be created, for example, "Q3 Learning Goals." A subset of the topic issues will be assigned to this milestone. This introduces another layer of organization, allowing for tracking progress against larger, time-bound objectives.2
Modules 26-30: Advanced Foam Techniques
This section moves beyond the basics of Foam to leverage its more powerful features for structuring and maintaining a high-quality knowledge graph.9
- Creating and Using Note Templates: To standardize the format of different types of notes, Foam's template feature will be implemented. Templates for various knowledge artifacts—such as book summaries, biographies, project overviews, or technology explainers—will be created. Using the Foam: Create New Note from Template command will then become the standard workflow, ensuring consistency and reducing repetitive work.9
- Mastering the Tag Explorer and Hierarchical Tags: Tags are a crucial tool for non-hierarchical organization. This module focuses on using the Tag Explorer panel to navigate the knowledge base. A tagging convention will be established, and the power of hierarchical tags (e.g., #tech/python/automation) will be explored to create more granular and organized connections between notes.9
- Managing Orphans and Placeholders: A healthy knowledge graph is a connected one. This module addresses graph maintenance by focusing on the "Orphans" and "Placeholders" panels in Foam.9 Orphans (notes with no links) and Placeholders (links to non-existent notes) will be regularly reviewed. A workflow will be established to either integrate orphaned notes into the graph or create new notes for placeholders, ensuring the knowledge base remains coherent and interconnected.10
- Embedding Note Content: To create composite documents and avoid content duplication, Foam's note embedding feature (![[note-name]]) will be utilized. This allows the content of one note to be dynamically included within another. This is particularly useful for creating "Maps of Content" (MOCs) or summary pages that pull in information from multiple atomic notes.9
- Leveraging Section Linking and Aliases: For more precise connections, linking to specific sections within a note (]) will be practiced.9 Additionally, link aliasing (
[[note-name|custom display text]]) will be used to make links more readable and context-friendly within the body of a note, improving the overall narrative flow of the written content.9
Modules 31-35: Python for PKM - The First Scripts
This section marks the introduction of custom automation with Python. The initial scripts will focus on automating common maintenance and organization tasks within the knowledge base, demonstrating the power of scripting to manage the PKM at scale.21
- Setting Up the Python Environment: A local Python development environment will be configured. This includes installing a recent version of Python and using a virtual environment manager like venv to isolate project dependencies. The first script will be a simple "hello world" to verify the setup.
- Script 1: File Organizer based on Frontmatter: The first practical script will be a file organizer. This Python script will iterate through all Markdown files in the /notes directory. It will parse the YAML frontmatter of each file to read metadata (e.g., category: 'Technology'). Based on this metadata, the script will automatically move the file into a corresponding subdirectory (e.g., /notes/technology/). This automates a tedious organization task and introduces file system operations with Python's os module.22
- Script 2: Batch Tagging Utility: Building on the previous script, a batch tagging utility will be created. This script will take a directory and a tag as command-line arguments. It will then scan all files in that directory and append the specified tag to their frontmatter tag list. This is useful for applying a new project tag or category to a group of existing notes simultaneously.21
- Reading and Consolidating Notes: A script will be developed to demonstrate content processing. This script will read multiple text files (e.g., daily log files named YYYY-MM-DD.md) and consolidate their content into a single weekly or monthly summary file. This introduces file reading and writing operations and is a foundational step for more complex content analysis later on.21
- Integrating Scripts with the Command Line: The scripts will be enhanced to be more user-friendly by using Python's argparse module to handle command-line arguments. This makes them more flexible and reusable, transforming them from simple scripts into proper command-line tools for PKM management.
Modules 36-40: Enhancing mdBook Presentation
The final part of this phase focuses on customizing the appearance and functionality of the public-facing mdBook site, ensuring it is not just a repository of information but a polished and professional presentation of knowledge.
- Creating a Custom Theme: While mdBook comes with default themes, creating a custom look is essential for personalization. This module involves creating a theme directory and adding custom CSS files to override the default styles. This could involve changing colors, fonts, and layout to match a personal aesthetic.15
- Adding Custom JavaScript for Interactivity: To add dynamic behavior, custom JavaScript files will be integrated. This could be used for simple enhancements like adding a "back to top" button, or more complex features like integrating an external analytics service or adding interactive UI elements.15
- Integrating Preprocessors for Rich Content: mdBook's functionality can be extended with preprocessors. This module will explore adding support for features not natively included in Markdown. For example, the mdbook-mermaid preprocessor will be configured to allow for the rendering of Mermaid.js diagrams and flowcharts directly from code blocks, and MathJax support will be enabled for rendering complex mathematical equations.15
- Configuring a Professional Deployment: To ensure the deployed site functions correctly, especially with custom domains or subdirectories, the site-url option in book.toml will be properly configured. This is crucial for ensuring that links, CSS, and JavaScript files load correctly on the live server.16
- Customizing the 404 Error Page: A professional site needs a helpful error page. A custom 404.md file will be created in the src directory. mdBook will automatically convert this into a 404.html page that provides better navigation and user experience for visitors who encounter a broken link, which is a significant improvement over a generic server error.16
Works cited
- Automating Projects using Actions - GitHub Docs, accessed September 1, 2025, https://docs.github.com/en/issues/planning-and-tracking-with-projects/automating-your-project/automating-projects-using-actions
- Planning and tracking with Projects - GitHub Docs, accessed September 1, 2025, https://docs.github.com/en/issues/planning-and-tracking-with-projects
- GitHub Issues · Project planning for developers, accessed September 1, 2025, https://github.com/features/issues
- Using GitHub issues to manage my tasks because I got tired of all the markdown files. : r/ClaudeAI - Reddit, accessed September 1, 2025, https://www.reddit.com/r/ClaudeAI/comments/1mozlq0/using_github_issues_to_manage_my_tasks_because_i/
- About Projects - GitHub Docs, accessed September 1, 2025, https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects
- kamranahmedse/developer-roadmap: Interactive roadmaps, guides and other educational content to help developers grow in their careers. - GitHub, accessed September 1, 2025, https://github.com/kamranahmedse/developer-roadmap
- I saved 10+ of repetitive manual steps using just 4 GitHub Actions workflows - Reddit, accessed September 1, 2025, https://www.reddit.com/r/devops/comments/1jbajbr/i_saved_10_of_repetitive_manual_steps_using_just/
- A personal knowledge management and sharing system for VSCode - Foam, accessed September 1, 2025, https://foambubble.github.io/foam/
- foambubble/foam: A personal knowledge management and sharing system for VSCode - GitHub, accessed September 1, 2025, https://github.com/foambubble/foam
- Foam - Visual Studio Marketplace, accessed September 1, 2025, https://marketplace.visualstudio.com/items?itemName=foam.foam-vscode
- Recommended Extensions | Foam, accessed September 1, 2025, https://foam-template-gatsby-kb.vercel.app/recommended-extensions
- Recommended Extensions - Foam, accessed September 1, 2025, https://foambubble.github.io/foam/user/getting-started/recommended-extensions.html
- Visual Studio Code Extensions - thecrumb, accessed September 1, 2025, https://www.thecrumb.com/posts/2022-12-21-my-vscode-extensions/
- Introduction - mdBook Documentation, accessed September 1, 2025, https://rust-lang.github.io/mdBook/
- Renderers - mdBook Documentation - GitHub Pages, accessed September 1, 2025, https://rust-lang.github.io/mdBook/format/configuration/renderers.html
- Continuous Integration - mdBook Documentation - GitHub Pages, accessed September 1, 2025, https://rust-lang.github.io/mdBook/continuous-integration.html
- Creating Your First CI/CD Pipeline Using GitHub Actions | by Brandon Kindred - Medium, accessed September 1, 2025, https://brandonkindred.medium.com/creating-your-first-ci-cd-pipeline-using-github-actions-81c668008582
- peaceiris/actions-gh-pages: GitHub Actions for GitHub Pages Deploy static files and publish your site easily. Static-Site-Generators-friendly., accessed September 1, 2025, https://github.com/peaceiris/actions-gh-pages
- Step by step to publish mdBook in gh-pages · Issue #1803 - GitHub, accessed September 1, 2025, https://github.com/rust-lang/mdBook/issues/1803
- How to build mdBook with Github Actions | by katopz | Medium - Level Up Coding, accessed September 1, 2025, https://levelup.gitconnected.com/how-to-build-mdbook-with-github-actions-eb9899e55d7e
- Beginner's Guide To Python Automation Scripts (With Code ..., accessed September 1, 2025, https://zerotomastery.io/blog/python-automation-scripts-beginners-guide/
- 19 Super-Useful Python Scripts to Automate Your Daily Tasks - Index.dev, accessed September 1, 2025, https://www.index.dev/blog/python-automation-scripts
- OpenRouter: A unified interface for LLMs | by Dagang Wei | Medium, accessed September 1, 2025, https://medium.com/@weidagang/openrouter-a-unified-interface-for-llms-eda4742a8aa4
- Community Providers: OpenRouter - AI SDK, accessed September 1, 2025, https://ai-sdk.dev/providers/community-providers/openrouter
- Models - OpenRouter, accessed September 1, 2025, https://openrouter.ai/models
- Google AI Studio | Gemini API | Google AI for Developers, accessed September 1, 2025, https://ai.google.dev/aistudio
- Google AI Studio, accessed September 1, 2025, https://aistudio.google.com/
- Google AI Studio quickstart - Gemini API, accessed September 1, 2025, https://ai.google.dev/gemini-api/docs/ai-studio-quickstart
- Google AI Studio for Beginners - YouTube, accessed September 1, 2025, https://www.youtube.com/watch?v=IHOJUJjZbzc
- OpenRouter API Reference | Complete API Documentation ..., accessed September 1, 2025, https://openrouter.ai/docs/api-reference/overview
- Completion | OpenRouter | Documentation, accessed September 1, 2025, https://openrouter.ai/docs/api-reference/completion
- Summarizing Text Using Hugging Face's BART Model - DEV Community, accessed September 1, 2025, https://dev.to/dm8ry/summarizing-text-using-hugging-faces-bart-model-14p5
- How to Build A Text Summarizer Using Huggingface Transformers - freeCodeCamp, accessed September 1, 2025, https://www.freecodecamp.org/news/how-to-build-a-text-summarizer-using-huggingface-transformers/
- Pipelines - Hugging Face, accessed September 1, 2025, https://huggingface.co/docs/transformers/main_classes/pipelines
- How to Run LLMs Locally with Ollama - Medium, accessed September 1, 2025, https://medium.com/cyberark-engineering/how-to-run-llms-locally-with-ollama-cb00fa55d5de
- Running LLM Locally: A Beginner's Guide to Using Ollama | by Arun Patidar | Medium, accessed September 1, 2025, https://medium.com/@arunpatidar26/running-llm-locally-a-beginners-guide-to-using-ollama-8ea296747505
- ollama/ollama: Get up and running with OpenAI gpt-oss ... - GitHub, accessed September 1, 2025, https://github.com/ollama/ollama
- Learn Ollama in 15 Minutes - Run LLM Models Locally for FREE - YouTube, accessed September 1, 2025, https://www.youtube.com/watch?v=UtSSMs6ObqY
- usememos/memos: A modern, open-source, self-hosted knowledge management and note-taking platform designed for privacy-conscious users and organizations. - GitHub, accessed September 1, 2025, https://github.com/usememos/memos
- siyuan-note/siyuan: A privacy-first, self-hosted, fully open source personal knowledge management software, written in typescript and golang. - GitHub, accessed September 1, 2025, https://github.com/siyuan-note/siyuan
- Best Open Source Personal Knowledge ... - OpenAlternative, accessed September 1, 2025, https://openalternative.co/categories/personal-knowledge-management-pkm/using/rust
- Modular: A Fast, Scalable Gen AI Inference Platform, accessed September 1, 2025, https://www.modular.com/
- Modular Documentation | Modular, accessed September 1, 2025, https://docs.modular.com/
- Get started with Mojo - Modular docs, accessed September 1, 2025, https://docs.modular.com/mojo/manual/get-started/
- The Modular Platform (includes MAX & Mojo) - GitHub, accessed September 1, 2025, https://github.com/modular/modular