A personal knowledge base and documentation platform for labs, class notes, case studies, journal entries, and governance documentation. Built with Docusaurus and hosted at chrisnewcomb.name.
| Section | Description |
|---|---|
journal/ |
Dated engineering notes, lab notes, architecture decisions, and retrospectives |
notes/class/ |
Class notes from BYU-Pathway Worldwide coursework |
personal/ |
Faith reflections and personal writing |
labs/ |
Hands-on lab exercises and walkthroughs |
case-studies/ |
Troubleshooting write-ups and root cause analysis |
decisions/ |
Architecture Decision Records (ADRs) |
governance/ |
Repo standards, content contracts, taxonomy, and lifecycle rules |
engineering/ |
Reference architecture and automation documentation |
operations/ |
Runbooks and incident response procedures |
library/ |
Reading notes and reference material |
resources/ |
External links and curated references |
experiments/ |
Exploratory work and proof-of-concepts |
changelog/ |
Site and platform change history |
drafts/ |
Work in progress |
templates/ |
Governed content templates for all 19 categories |
- Docs platform: Docusaurus 3.9
- Hosting: GitHub Pages → Cloudflare CDN →
chrisnewcomb.name - CI/CD: GitHub Actions
- Linting: MegaLinter (JS, CSS, Python, secrets, vulnerabilities)
- Content governance: Custom Python validators, pre-commit hooks
- Spell checking: cspell with custom dictionary
- Security scanning: Gitleaks, Secretlint, Trivy
Every document requires a governed frontmatter block:
title: ""
description: ""
content_type: doc|journal|lab|case-study
type: doc|journal|lab|case-study
status: draft|active|deprecated
lifecycle: draft|active|deprecated
created_at: "YYYY-MM-DD"
last_reviewed: "YYYY-MM-DD"
owners:
- "@newcomb-labs"
tags:
- notes
primary_domain: networking|security|systems|...
category: journal|lab-notes|class-notes|...See Governance Docs for full schema.
The generate_content_artifacts.py script produces deterministic, metadata-driven
content that stays in sync with governed frontmatter on every commit:
- Section TOCs — every
index.mdlanding page gets an auto-generated table of contents listing its docs between managed markers - Related links — content files receive a
## Related Contentsection computed from weighted tag/domain/category overlap - Site-wide index — a single page at
/indexes/all-contentlisting every published document grouped by section - Area indexes — per-section indexes under
_generated/indexes/ - Glossary — central glossary built from governed tags and terms
- Content manifest — machine-readable JSON of all docs and metadata
Use the content scaffolding CLI:
# New journal entry
python3 scripts/new_content.py journal "My Entry Title"
# New class notes
python3 scripts/new_content.py doc "My Notes Title" --category class-notes
# New lab notes
python3 scripts/new_content.py journal "My Lab Title" --category lab-notes
# New ADR
python3 scripts/new_content.py doc "ADR: My Decision" --category decisionsBranches: feat/<name>, fix/<name>, chore/<name>, docs/<name>
Commits must follow Conventional Commits:
feat(scope): description
fix(scope): description
docs(scope): description
chore(scope): description
PRs must have a type:* label, an area:* label, and link to an issue.
# Install dependencies
cd website && npm install
# Start dev server
npm start
# Build
npm run build
# Run content validation
python3 scripts/validate_content.py website/docs/...
# Run pre-commit hooks
pre-commit run --all-filesAll 18 GitHub Actions workflows have inline documentation. Key pipelines:
- docs-ci — validates governance, lints markdown, checks prettier, builds site
- content-validation — validates governed frontmatter on changed files
- megalinter — JS, CSS, Python, YAML linting with auto-fix on PRs
- spell-check — cspell on markdown/MDX plus legacy docs drift guard
- link-check — lychee broken link scanner (PR, push, weekly schedule)
- conventional-commits — enforces PR title format
- pr-preview — deploys Cloudflare Pages preview on every PR
- gitleaks — secret scanning on every PR and push
All CI workflows post GITHUB_STEP_SUMMARY tables for at-a-glance results.
Current version: 0.3.0 — see CHANGELOG.md
Versioning is managed by Commitizen
via bumpversion.yml (creates release PRs) and release-tag.yml (creates Git tags
on merge).