The primitives BWK video has been edited and I'm happy with it: https://www.dropbox.com/scl/fi/nfbiarhfajok8wz0pjiez/10-agent-primitives.mp4?rlkey=4ou4xwrstzcrthtlth7yvpxzi&st=2jkqb2va&e=1&dl=0
Please update planning docs etc and help me get this going on publishing.
Worked for 5s
1 search
Thinking
Final cut is already on Dropbox — skip Remotion. Stage publish artifacts, then get Notion to Ready to publish before anything irreversible.
First thing the agent does with Kody — every time — is search: ask what's already wired up (integrations, packages, capabilities) before writing any code. Shown here exactly as the agent sends it:
Back comes the saved notion OAuth integration and the @kentcdodds/notion package — exact import specifiers and call shapes, no guessing at API docs. Local episode metadata already has the Notion page id. First durable move: mark it ready to publish.
Worked for 7s
1 params·1 @kentcdodds/notion/request
Thinking
Happy with the cut — flip Notion to Ready to publish with ball on Kent, then keep staging metadata and thumbnail.
Editor cut approved. Update planning state: title locked, status Ready to publish, ball with Kent.
Writes go through execute — same tool shape, shown in full once. conversationId ties the night's calls together (search results get slimmer once it's established), memoryContext carries the task, and params + code are the module:
Every call after this has the same shape. The deck just shows params and the module as separate blocks — and surfaces memoryContext.task as a small tag when the agent starts a new task. It's declared once per task, on the first call; follow-up calls omit it and lean on conversationId:
memoryContext.taskMove BWK episode 10-agent-primitives from approved editor cut into publishing
We're going to publish this one tomorrow morning so I can send an early access email to the mailing list.
Worked for 4s
1 params·1 @kentcdodds/notion/request
Thinking
Target tomorrow morning for public publish. Early-access Kit email needs the YouTube watch URL once Transistor/YouTube has it — don’t schedule an empty Transistor episode.
We need a square version of artwork for BWK videos. Please update the notion to handle creating a default square canva and have a section for the square version of the thumbnail.
I already made one for this one: https://www.canva.com/design/DAHPa2weGlA/qp4YXtCegUB75o8Udu_diw/edit?ui=e30 '/Users/kentcdodds/Desktop/BWK 10 — Design Primitives Agents Can Actually Use (square).png'
Worked for 4s
1 params·1 @kentcdodds/notion/request
Thinking
Paired artwork contract: every BWK thumbnail card gets both 16:9 and square Canva/image. Update the live thumbnail databases, then ep 10’s row with the Canva URL and exported PNG.
Here's the published youtube video: https://youtu.be/kbmv3HIuKyk
Please create the broadcast linking to that (add the playlist query param to it). Follow the process. Link me to the broadcast. This is another early access thing (will publish officially tomorrow) which we should mention to make them feel special for being on the mailing list. Make sure to use Sonnet 5 for the writing of the email.
Sorry to interrupt your previous task. Please do this first then continue your previous task.
this has been published. Please update all the things. Also, did you make a post on linkedin and bluesky with a link to this video (with the playlist on the link)? Please do (use Sonnet 5 with the writing skills).
Worked for 1s
Thinking
Episode is public — confirm Kit early access, then post Bluesky and LinkedIn with the playlist URL and thumbnail card so the link isn’t a bare string.
Launch morning. Confirm Kit, then Bluesky + LinkedIn via packages — link card and thumbnail included.
memoryContext.taskPublish BWK episode launch posts to LinkedIn and Bluesky
executejson
{
"text": "Better prompts won't fix a coding agent that's stuck with bad primitives. I walk through four moves - create, combine, delete, expand - with real examples: RBAC, downshift, and Instagram deleting most of Burbn.\n\nhttps://www.youtube.com/watch?v=kbmv3HIuKyk&list=PLV5CVI1eNcJhP4nrJt85L7PxHjebFpDfY",
"externalCard": {
"uri": "https://www.youtube.com/watch?v=kbmv3HIuKyk&list=PLV5CVI1eNcJhP4nrJt85L7PxHjebFpDfY",
"title": "Your Coding Agent Needs Better Primitives",
"description": "Intentional system primitives make coding agents more reliable, efficient, composable, and auditable.",
"thumbnailUrl": "https://i.ytimg.com/vi/kbmv3HIuKyk/maxresdefault.jpg"
}
}
@kentcdodds/bluesky/create-posttypescript
import createPost from 'kody:@kentcdodds/bluesky/create-post'
export default async function main(input) {
return createPost({
text: input.text,
externalCard: input.externalCard,
confirm: true,
})
}
{
"text": "If your coding agent keeps producing garbage, the model probably isn't the problem. It's the system: the APIs, data entities, UI components, and workflows the agent has to work inside of. Bad primitives force bad output no matter how good the prompt is.\n\nI lay out four moves for fixing that: create the primitive that's missing, combine the ones that overlap, delete the ones that are rigid or unused, and expand the ones that should cover more ground. The examples are real - Kody's role based access control, PayPal's three combobox implementations becoming downshift, and Instagram winning by deleting most of Burbn.\n\nSmaller action space, less guessing, fewer brittle workarounds, and behavior you can actually audit. That's the payoff, and it applies as much to how you set up your own codebase for an agent as it does to how you design any system for people.\n\nhttps://www.youtube.com/watch?v=kbmv3HIuKyk&list=PLV5CVI1eNcJhP4nrJt85L7PxHjebFpDfY",
"url": "https://www.youtube.com/watch?v=kbmv3HIuKyk&list=PLV5CVI1eNcJhP4nrJt85L7PxHjebFpDfY",
"title": "Your Coding Agent Needs Better Primitives",
"description": "Intentional system primitives make coding agents more reliable, efficient, composable, and auditable.",
"thumbnailUrl": "https://i.ytimg.com/vi/kbmv3HIuKyk/maxresdefault.jpg"
}