Creates journal entries or project pages for a personal knowledge site...
Creates structured journal entries or project pages following a cognitive engineering philosophy and Astro content schema.
Core Mission: Apply enterprise-grade engineering discipline to the messy reality of being human. Debug sleep, focus, and decision-making as if they were mission-critical infrastructure.
The Lens: Every human problem is reframed as a systems engineering problem. We don't moralize; we diagnose. We don't motivate; we architect.
The Promise: No hype. Just honest metrics. If something failed, log it. If a belief was wrong, document the update.
USE THIS SKILL when the user:
IMPORTANT: This skill creates content files. After content is finalized:
create-script skill to condense + add paralinguistic tags β saves .txtvoiceover skill on the .txt file β generates .mp3 + deploys + pushesYour role as the main agent is REVIEWER, not drafter.
The google-search subagent handles:
You handle:
User provides topic/content
β
Step 0: Git pull + determine entry number
β
Step 1: Spawn google-search subagent to DRAFT
- Subagent researches topic
- Subagent writes complete journal entry
- Subagent returns full markdown
β
Step 2: YOU review for tone/consistency
- Does it match the voice?
- Engineering metaphors present?
- Fallacy β Model β Protocol structure?
- Memorable one-liner ending?
β
Step 3: If lacking, send back to subagent with feedback
β
Step 4: Save final draft to entry-XXX.md
β
Step 5: Present to user for approval
β
Step 6: Audio pipeline (create-script β voiceover)
cd ~/projects/your-site && git pull origin main
ls src/content/journal/
date +%Y-%m-%d # Get today's date for the entry
Determine the next entry number (e.g., if entry-013.md exists, next is entry-014.md).
CRITICAL: Use TODAY'S DATE as the publish date. Run date +%Y-%m-%d to get the current date. Do NOT use the date from the user's notes - that is their draft date, not the publish date.
Spawn the subagent with the user's content and request a complete draft:
Task(subagent_type="google-search", prompt="Draft a journal entry on the following topic:
[USER'S CONTENT/IDEAS HERE]
Requirements:
1. Research the topic thoroughly - find relevant studies, frameworks, and opposing viewpoints
2. Write a complete journal entry following the style guide (see your instructions)
3. Use the Fallacy β Model β Protocol structure
4. Include at least 3 citations with proper references
5. End with a memorable one-liner
6. Return the complete markdown file ready for publication
Entry number: entry-XXX
Date: YYYY-MM-DD")
When the subagent returns, check:
Voice Checklist:
Red Flags (send back for revision):
If the draft doesn't match the voice, spawn the subagent again with specific feedback:
Task(subagent_type="google-search", prompt="Revise this draft:
[PASTE DRAFT HERE]
Issues to fix:
1. [Specific issue - e.g., 'Opening hook is too generic, needs a specific incident']
2. [Specific issue - e.g., 'Missing engineering metaphor for willpower concept']
3. [Specific issue - e.g., 'Protocol section needs concrete metrics']
Return the revised complete markdown.")
Once the draft passes review, save it:
# Write to entry file
~/projects/your-site/src/content/journal/entry-XXX.md
Show the user:
Once user approves, execute the two-step audio pipeline:
Use the create-script skill to condense and add paralinguistic tags.
Run the voiceover command and only verify it started (do not poll for progress):
cd ~/projects/chatterbox && nohup uv run python archive/voiceover_script.py \
-i archive/entry-XXX.txt \
-o archive/entry-XXX.mp3 \
--entry entry-XXX \
--push > voiceover.log 2>&1 &
Then verify it started:
sleep 5 && head -10 ~/projects/chatterbox/voiceover.log
DO NOT poll for progress repeatedly. Trust that the script will complete and push. The user will receive a desktop notification when done.
Tell the user:
tail -f ~/projects/chatterbox/voiceover.logRepository Path: ~/projects/your-site (configure to your setup)
src/content/journal/entry-XXX.mdsrc/content/projects/[slug].md---
title: "The [Metaphor]: [Subtitle with Engineering Framing]"
date: "YYYY-MM-DD"
summary: "[1-2 sentence hook with systems/engineering lens]"
status: "Published"
category: "Relearn [Life|Engineering|Work] / [Subcategory]"
highlights:
- "Key Takeaway 1: [Actionable insight]"
- "Key Takeaway 2: [Framework or model]"
- "Key Takeaway 3: [Protocol or implementation]"
audioUrl: "/audio/entry-XXX.mp3"
---
---
title: "[Project Name]: [Subtitle]"
date: "YYYY-MM-DD"
description: "[1-2 sentence description]"
repoUrl: "https://github.com/yourusername/[repo]"
demoUrl: "[URL]"
techStack: ["Tech1", "Tech2", "Tech3"]
audioUrl: "/audio/[slug].mp3"
---
Titles:
Summaries:
One-Liners:
| Human Concept | Engineering Metaphor |
|---|---|
| Decision fatigue | Memory leak, garbage collection failure |
| Willpower | Battery charge, finite resource pool |
| Habits | Compiled routines, cached functions |
| Procrastination | System deadlock, CPU thrashing |
| Attention | Single-core processor, context switching |
| Goals | Function signatures, API contracts |
| Feedback | Control loops, negative feedback systems |
| Learning | Compiling, updating dependencies |
| Forgetting | Cache invalidation, memory volatility |
| Burnout | Thermal throttling, system overload |
The Workflow:
Git Pull β Subagent Drafts β You Review β Iterate if Needed β Save β User Confirms β create-script β voiceover (fire and forget) β Done!