Changelog
Structural decisions that shaped ROOT. Not a per-commit log — a record of why the program is the way it is.
2026-06-15: site live + content polish
ROOT graduates from “scaffolded markdown” to a deployed, branded docs site. Stack chosen, theme finalized, content expanded across ~140 files.
What landed:
-
Site live at root.abukix.dev. Astro 5 + Starlight 0.30, deployed to Cloudflare Pages on every push to
main. Private behind Cloudflare Access (email allowlist) — the “preview deployment public-by-default” gotcha called out in the initialization entry is now mitigated end-to-end. -
Stack chosen: Astro + Starlight. Resolves the “stack-portable markdown / stack chosen later” decision from initialization. Markdown stays portable; Astro/Starlight is the rendering layer. Frontmatter format unchanged across the migration — the same files would still render in MkDocs or Eleventy.
-
Brand visual system locked. Dark + light themes, both first-class. JetBrains Mono Variable across body and code (self-hosted via
@fontsource-variable)./rootfilesystem-path logo, theme-conditional SVGs (public/logo-dark.svg+logo-light.svg). Year-color palette: Y1 cyan, Y2 yellow, Y3 pink, Y4 green, Y5 purple. Brand tokens centralized insrc/styles/custom.css. -
Custom homepage hero. Splash page is custom HTML in
src/content/docs/index.mdx(not Starlight’s frontmatterhero:block). Capsule pill (5-YEAR PROGRAM · KERNEL TO LLM), gradientROOTheadline, stat grid (5 / 30 / 59 / 10), Year 1 → Year 5 arc callout, status pills (STUB/OUTLINE/DEEP) reusable across the pattern library. -
PageTitle component override.
src/components/PageTitle.astrorenders a brand kicker line above each page’s H1, color-coded by year. Reads frontmatteryear/phase/tags/statusto drive the display. Skips rendering on splash so the custom hero is the canonical homepage. -
Content expansion across ~140 files. Master Plan rewrite + Story + AI Learning Protocol + Platform Patterns + 5 year overviews + 30 phase pages + 5 final exams + 60 pattern STUBs + 12 project PLANs + 5 homelab docs + 8 writing templates + 6 brand docs. Each got:
description:frontmatter, framing-paragraph opener, Starlight asides for non-obvious insights (:::tip,:::note,:::caution), dense cross-links to related docs. -
Authoring rules locked. No body H1 in markdown — page titles render from frontmatter via PageTitle. Em-dashes in section headings → colons (em-dashes inside body prose preserved as voice). Cross-links use absolute Starlight paths, not relative
.md. Patterns stay STUBs unless the user does the work. -
Sidebar relabeled for clarity.
Program — 5-year curriculum→Program.Year N — Topic→Year N: Topic. Phase items dropped thePhase N —prefix (year context comes from group).Meta — Writing Templates→Writing Templates. Em-dash separators eliminated; em-dashes only appear inside descriptive subtitles. -
Conventional Commits adopted. Every commit uses
<type>(<scope>): <description>format. Types: feat, fix, docs, style, refactor, chore. Scopes per area: homepage, program, patterns, projects, brand, homelab, meta, theme, routing, seo, deps, build, ci. Body explains why, not what. -
GitHub navbar icon uses GitHub brand colors instead of inheriting the site accent — monochrome at rest (matches github.com itself), GitHub-blue (
#0969da) on hover. Brand-recognizable without breaking theme cohesion. -
Meta docs refreshed to codify the new conventions.
CLAUDE.mdnow carries an Authoring rules subsection (no body H1, em-dash → colon, splash hero inindex.mdx, patterns stay STUBs, absolute cross-link paths), a Conventional Commits reference with type/scope tables, and a Build & deploy section noting the Cloudflare setup.README.mdgot a centered favicon hero + tagline, refreshed file layout, local dev commands, and an updated frontmatter conventions table that reflects the actual schema (withdescription:, withoutslug:).
Status at site launch:
- ~140 markdown files expanded; ~25,000 lines of content
- 0 broken internal links across 450+ cross-references
- 0 body H1 leaks (every page title rendered from frontmatter)
- 0 employer leakage; only approved aesthetic references retained (Apple Silicon hardware + Apple product film aesthetic, both public)
- Public surface: site live behind Cloudflare Access at root.abukix.dev
- Repo surface: README + CLAUDE.md in sync with the deployed state and the conventions actually being followed
2025-10-21: ROOT initialized
ROOT is a 5-year career program from SRE Support to Staff/Principal AI Platform Engineer. Built on patterns, not tools — so the knowledge survives when the tools change.
Design decisions locked at initialization:
-
5 years, 60 months, self-contained yearly exits. Each year ends with a credible CV milestone (Y1 → Junior SRE; Y2 → DevOps; Y3 → Senior DevOps/Data Platform; Y4 → ML Platform; Y5 → Staff/Principal AI Platform). Life can interrupt at any year boundary without wasting the prior years.
-
Pattern-first teaching contract. Every phase doc follows: Problem → Principles → Trade-offs → Tools → Mastery → Compare → Operate → Contribute. Tools point you in the right direction via
Starter hints:lines; you write the actual commands. No spoon-feeding. -
Pattern library is the durable artifact. 59 patterns across 10 categories, scaffolded as STUB entries from day one so any phase can reference them. They deepen STUB → OUTLINE → DEEP as phases hit them. By Year 5 the library is the durable knowledge base; phases are the journey to populate it.
-
Abukix Studio is the public brand. ROOT is the curriculum; basecamp is the platform; Abukix Studio is the user-facing surface (Portal + command palette + platform-ctl + 5 composition recipes). Launches Y5 Phase 29.
-
Three loud launches across 5 years — terralabs (Y2 P9), basecamp (Y3 P19), Abukix Studio + platform-ctl + aiops + mlship v2 (Y5 P29-P30). Sustainable cadence; loud-launch energy is reserved for artifacts that earn it.
-
Y4 staging discipline:
llm-gatewaystaged across P21 (skeleton) → P24 (RAG/streaming/multi-model) → P25 (drift + auto-rollback). No single-phase mega-build.mlshipv0/v0.5 lands in Y4; v2 capstone launch is Y5 P30 with 2 frameworks done excellently (sklearn + HF text-gen), not 6.
-
Personal services tier on basecamp — basecamp serves you, not just demos. personal-blog (Y2) → personal-api (Y3) → notes-rag (Y4) → home-dash (Y5). One per year. Cinematic content payoff.
-
Year 1 Phases 4-5 framed as fluency, not mastery. Saves ~40 hrs across the year while still shipping rxp/konfig/pulse. The patterns (text processing, schema validation, concurrency) get touched; mastery comes later when you operate something complex written in each language.
-
SLI/SLO discipline pulled forward to Y2 P12. Discipline first, telemetry second. Y3 P14 then lands the eBPF + advanced telemetry that backs the SLOs with real data.
-
Y2 Phase 12 split into UX + Security halves within a single phase doc — preserves the 30-phase total while pacing the two thematic halves clearly.
-
The Cloudflare preview-deployment-access gotcha is documented prominently in
src/content/docs/brand/hosting-plan.md. This single setting (preview deployments default to Public, bypassing zone-level Access) is the most common reason “my Access policy isn’t working” — caught at the start. -
Stack-portable markdown. Every file uses consistent YAML frontmatter so the same content can render in Astro, MkDocs, Eleventy, or anything else without rewriting. Stack chosen later.
The single-sentence thesis:
ROOT is a 5-year process to make me the engineer past-me wanted to learn from — by building the platform that future-me would want to operate, while documenting the journey publicly so other engineers can follow.
Status at initialization:
- 133 markdown files, ~15,500 lines
- 30 phase docs + 5 final exams (the curriculum)
- 59 STUB patterns across 10 categories (the durable knowledge artifact)
- 10 project plans (Studio + 9 OSS) + Studio composition recipes
- 7 writing templates + style guide (the meta layer)
- Homelab + brand + hosting plans (the operational context)
- All cross-references resolve; frontmatter consistent across the repo