Astro v5 personal portfolio and technical writings site, deployed via GitHub Pages.
- Live: https://twyoon.com
- Repo: https://github.com/tyoon10/tyoon10.github.io (branch:
main) - Engine: Astro v5 (Static Site Generator)
- Active Directory:
/home/taewan/workspace/initiatives/twyoon-com/repos/site(WSL) - Legacy Backup:
/home/taewan/workspace/archive/twyoon-backup(WSL)
Content is organized inside type-safe collections matching the Zod schemas configured in src/content.config.ts.
- Writings (
src/content/writings/): Folders containing anindex.mdentry. - Projects (
src/content/projects/): Folders containing anindex.mdentry.
Every entry must be a folder with index.md inside:
src/content/
projects/access-to-experts/index.md
writings/tracing-the-minds-behind-claude-code/index.md
Note: The loader matches **/index.{md,mdx} to automatically ignore helper draft files like REVIEW.md inside content folders.
title: "Tracing the Minds Behind Claude Code"
date: 2026-04-06
description: "I spent a weekend reading two Claude Code source trees side by side."
featured: true
tags:
- "Claude Code"
- "Anthropic"title: "Causal Inference — Interactive Study Guide"
date: 2026-03-01
description: "A single-page interactive guide detailing potential outcomes."
featured: true
tags:
- "Double ML"
- "JavaScript"
links:
- name: "Live App"
url: "https://tyoon10.github.io/causal-inference/"
icon: "globe"
- name: "Codebase"
url: "https://github.com/tyoon10/causal-inference"
icon: "github"Keep tags to 20 characters or fewer.
The canonical writing-voice guide lives at private/writing/identity/voice.md (gitignored — local-only, not published). It is the source of truth for tone, structure, and phrasing across all writings.
Before drafting or substantially editing any src/content/writings/**/index.md:
- Read
private/writing/identity/voice.mdfirst and apply it. If a sibling*-outline.mdexists in the article folder, read that too — the outline is the brief, the voice guide is the style contract. - If
voice.mdis absent (e.g., a fresh clone without the localprivate/module), say so and proceed with the article's existing voice rather than inventing one.
After the user makes direct/manual edits to a draft:
- Isolate the user's own changes:
git diff HEAD -- <file>(or compare against the last Claude-authored version). - Distill any recurring signal — tone, structure, phrasing, emphasis, punctuation — and update
voice.md. Reconcile, don't just append: if a new preference supersedes an old rule, flag and revise it (bump the "Last updated" line + provenance). Ignore one-off content edits. - In the prose itself, preserve the user's voice — flag only genuine grammar issues; never restyle.
Run /voice-sync to perform the after-edits review on demand.
The active visual system is defined in src/styles/design-system.css, which is the source of truth for the site's tokens and visual primitives:
- Canvas & surfaces: Parchment canvas
#fefefc, with#fdfdfafor surfaces,#eef1f6for full-bleed washes, and#f6f6f3for inset wells. - Ink & actions: Near-black ink carries headings and body copy. Ink navy
#17324dis reserved for actions and action-oriented interactive states, not decorative treatment. - Typography: Newsreader is the variable serif for display and body typography. Inter is reserved for UI chrome, while JetBrains Mono serves metadata and code. These presets belong to
design-system.css. - Elevation & shape: The system uses zero shadows and exactly three role-bound radii:
2pxfor surfaces,6pxfor actions, and999pxfor metadata pills. - Brand Affiliate Logos: Rendered as physical images in
src/components/LogoTray.astroloaded from/media/logos/with premium grayscale transition rules.
- Always use standard relative Markdown syntax to load local images from inside the entry folder:
 - Follow up the image block with a captioned paragraph for visual anchors.
.captioncarries the type and colour fromdesign-system.css— never hand-setfont-sizeorcolorhere:<p class="caption" style="text-align: center; margin-top: -8px; margin-bottom: 24px;">Compaction stages caption...</p> - At compile time, Astro v5 automatically checks, compresses, and outputs optimized
.webpcopies of your images into server assets.
Ensure you are inside the native /home/taewan/workspace/initiatives/twyoon-com/repos/site directory and have NVM node environment sourced:
npm run dev # Launch local dev server at http://localhost:4321
npm run build # Trigger production static HTML compiling (outputs to dist/)
npm run preview # Preview compiled dist/ build locally
npx astro check # Run schema checks and type validation- The auxiliary script
scripts/migrate-content.cjsis retained temporarily for workspace migration reference. - Do not delete
/home/taewan/workspace/archive/twyoon-backupas it acts as your absolute safety net backup of the original Hugo site.