Each PKM tool should have one role
The organizing principle is simple: each tool gets one job. When tools mix roles (Craft handling both input AND output, for instance), things get messy.

The pipeline
CAPTURE → ANNOTATE → PROCESS → DESTINATION → OUTPUT
Here’s what each stage looks like for me:
- Capture: Drafts on mobile, Bike on desktop
- Annotate: PDF Viewer (I convert web articles to PDF first)
- Process: Tinderbox or Claude Code (synthesis happens in conversation)
- Destination: Zettelkasten (knowledge), OmniFocus (action), or DEVONthink (reference)
- Output: Craft for project plans, iA Writer for polished blog posts, Bike for raw thinking posts
What I learned
Processing happens in one place. I use either Tinderbox or Claude Code for synthesis (like this conversation right now).
DEVONthink is infrastructure, not a step. It’s the glue that connects tools (storage, extraction, archive), but it’s not where I do thinking work.
The Zettelkasten triple-frontend is intentional. I use The Archive for quick search, Obsidian for visualization, and iA Writer for writing. Same data, different access modes depending on what I’m doing.
Craft is output only. It’s for project plans and writings that come out of processed ideas, not for refinement.
Three destinations from processing
2.6.6.1.2 Refinement is a missing GTD stage talks about why ideas need development time. This audit clarifies where they go when they’re done:
- Knowledge → Zettelkasten (permanent notes)
- Action → OmniFocus, then Craft for planning
- Reference → DEVONthink (just stays in the archive)
Some ideas never exit. They compost, get deleted, or merge into other stuff. That’s fine (it’s the filtering function working).