Fragmented - 10 Tips and a silent audio file that almost won
Welcome back to the Fragmented Podcast newsletter!
In this letter we’ll cover:
Quick Episode Recap
Fragmented 🌭 Info
5 Tips from Iury & Kaushik
Episodes Recap
Ever since our big AI reboot in episode 300, we’ve pushed 5 brand new episodes. Here’s the quick rundown:
301 - The AI Coding Ladder
Where would you grade yourself on the AI coding spectrum? In this episode, we walk through four paradigms, from autocomplete to agent orchestration, each with different workflows and mental models.
302 - MCPs Explained
MCPs are everywhere but are they worth the token cost? We break down what Model Context Protocol actually is, how it differs from CLIs, and when MCPs make sense for your workflow.
303 - How LLMs Work
Tokenization, embeddings, inference – everything you need to understand LLMs well enough to explain them at your next dinner party. We’re really proud of this one and it took a lot of work to get it within that time limit.
304 - Agent Skills
Deceptively simple, but one of the most powerful building blocks in AI coding. We break down when to use skills, how progressive disclosure works, and how skills compare with commands, instructions, and MCPs.
305 - Subagents Explained
Subagents are becoming a core primitive for serious AI-assisted development. We disambiguate agent terminology, unpack plan mode vs subagents, and explain how parallel scoped workers can level up your workflow.
Fragmented 🌭 info
In this section, we share some fun or funny snippets about the making of Fragmented episodes. Ever wonder how the sausage is made? Here you go.
Episode 301 was Iury and Kaushik’s first ever recording together. We promised y’all 20 minute episodes… and then the first session landed at 57 minutes 😅. The editing was brutal, but we managed to trim it down to 20 minutes of content. Turns out sticking to a time limit is way way harder when you’re both excited and riffing off each other for the first time.
podsync
We record using a double-ender setup: each person records locally for studio-quality audio, while a master reference track (on Adobe Podcast) captures everyone. The catch? You have to manually align the local tracks every single time using that master file as the reference. It’s 10-15 minutes of fiddly, ear-straining work per episode.
And because we don’t hit record (or stop) at the same time, the files can be way off. Kaushik had tried to write a script for this before (in Java! if you can believe it), but the audio signal processing was genuinely hard.
This time, he decided to go Rust and use Claude to build it. The first version got the architecture right… and computed wildly wrong offsets. After some back-and-forth debugging, we found a sign bug buried in the cross-correlation math. Once that was fixed, podsync was born. Look out for a future blog post from Kaushik on this.
lipsync ?!
So then naturally, Adobe Podcast decided to test our faith.
While recording episode 305, Adobe's new beta video feature silently nuked all the audio. Every file came back completely silent. We just had video of us miming the entire episode. Our local recordings were fine, but without the master reference track, podsync had nothing to align against. With the back and forth rapport between Iury & Kaushik, if you’re off even by a second or two, it can sound extremely unnatural. This is exactly why podsync (with the master track) is so useful. But without that master track, podsync was blind.
Then Kaushik noticed something: the silent video still had 58 minutes of footage showing our faces. With Claude he built a script that detected mouth movements frame-by-frame, correlated that motion signal against the audio energy in each local recording, and recovered the exact timing offsets 🤯. We wouldn’t ever attempt something like this before, but with AI this was an overnight experiment that panned out beautifully!
“lipsync” saved the episode and was a fun way to solve this problem (probably not going to be releasing this as a tool though).
We here at Fragmented AI are dogfooding AI in the most real way possible!
5 Tips from Iury & Kaushik
We promised in earlier episodes, we’ll be sharing these tips, so here you go!
Iury’s picks
Treat your AGENTS.md as a table of contents. Use it to refer to other markdown files so that the LLM can itself look for the information. Think of it as a map your agent reads to navigate your codebase.
ByCloud is an awesome channel for getting more in-depth content about LLMs. If you want to go deeper on how these models actually work, this is one of the best resources out there.
Use dictation software. Tools like Wisprflow, VoiceInk, and others are incredibly fast nowadays. The more info you give the model when prompting, the better, and dictation software makes that so much easier.
Automate repeatable AI workflows. Every time you solve a recurring problem with AI, turn it into a command or skill. Your future self will thank you.
Build your own Plan Mode. It can be a command, skill or subagent (ideally a subagent). Before your agent dives into a task, have it think through the approach first. Matt Pocock has some great ideas on this.
Kaushik’s picks
Ask the agent to clarify your prompt. I have a text snippet called “cclarify” that auto-expands to: “Confirm if my requirements are clear. If you have follow up questions, ask me first and clarify before executing anything.” Adding this to the end of my prompts has dramatically improved results. It’s also backed by legit research on conversational probing.
Use pseudo-XML fence blocks in your prompts. If you’re just using markdown and triple backticks to separate info in your prompt, there’s a more pro move: wrap sections in XML-like tags (e.g. <context>, <example 1>, <example 2>). It doesn’t even have to be proper XML, as you see. This works because LLMs are trained on the entire internet, which is built on HTML-structured data – so those < > brackets act as strong mathematical anchors for the model’s attention mechanism.
Always follow a prompt structure. For any task that’s more than a quick search, I construct my prompt using a template and I even have a text snippet “pprompt” that quickly auto-expands to a scaffold with relevant sections for me to fill in. This forces me to think through the problem before the AI does, and the results are often vastly better. (Side tip: you’ll notice my snippets intentionally repeat the first character – cclarify, pprompt, xxml – so they never collide with real words.)
Use NotebookLM to passively learn long-form content. Former cohost Donn Felker wrote a great post about this. Feed any long article, white paper, or even a codebase analysis into Google’s NotebookLM, and it generates a podcast-style audio summary you can listen to while driving, walking, or doing dishes. I’ve been using this for a lot of research papers and super long articles from smart people.
Try OpenCode! It’s essentially an open-source alternative to Claude Code or Codex CLI. I’ve been using it more and more and it’s been life-changing. It unlocked Agent fluidity for me, where I’m able to send instructions from my phone to the desktop running any model on my computer. I wrote about why I think it’s a safer bet for coding workflows in this blog post.
That’s it for this week!
We love hearing feedback, so please tell us what you’re enjoying, what you want to hear more of!
We remain grateful for your ears and now your eyes 🙇♂️
See you next Monday with a new episode.
Best,
Kaushik & Iury