skills/write-tbp/SKILL.md
This skill covers how to write technical blog posts about tldraw's implementation details.
Create an assets folder for this topic in this skill directory:
assets/<topic>/
├── research.md # Gathered context and notes
└── draft.md # The blog post draft
Use a short, kebab-case name for the topic (e.g., scribbles, arrow-routing, dash-patterns).
Use an Explore subagent to gather all relevant information:
Task (subagent_type: Explore, thoroughness: very thorough)
Find all code, documentation, and context related to [TOPIC] in the tldraw codebase.
Look for:
- Implementation files in packages/editor and packages/tldraw
- Type definitions in packages/tlschema
- Related examples in apps/examples
- Any existing documentation in apps/docs/content
- Tests that reveal behavior
- Comments explaining why things work the way they do
For each relevant file, note:
- What it does
- Key functions/classes
- Interesting implementation details
- Any "why" comments or non-obvious decisions
Output a comprehensive summary of how [TOPIC] works. This document will be read by another agent. No need to over-optimize for human readability.
Save the research output to assets/<topic>/research.md.
Before writing, answer these questions from the research:
If you can't find an interesting angle, the topic may not be suitable for a technical blog post.
Create assets/<topic>/draft.md following the blog-guide structure:
Target 800-1500 words.
The draft is raw material for a human editor, not the finished post. Keep it clean and let the content carry it. The editor will add the personality, anecdotes, and punch where they want them; that is much easier to do on top of a plain, correct draft than to strip out of an overwritten one.
Concretely:
Check the draft against the blog-guide checklist:
Revise the draft to address any gaps.
Present the final draft to the user for review, and point out where a human editor is most likely to want to add color (usually the opening, any provenance or bug story, and the tradeoffs). The draft remains in assets/<topic>/draft.md until the user is satisfied, at which point they can move it to the appropriate location.
../shared/blog-guide.md for voice, tone, and structure.../../VOICE.md for general writing conventions.