2025.12.28.

My Mind Is Not the CPU for Bureaucracy

I don’t usually do New Year’s resolutions, but this year I made an exception. It’s not a goal but a boundary, and it’s that I want to stop spending thinking capacity on problems AI can handle well enough.

Things like passport renewals, car maintenance, and health insurance paperwork aren’t intellectually hard problems for me. They’re high-friction re-entries into suspended projects that steal the same executive function I need for creative work. So I’m experimenting with an approach where Claude Code does the thinking and I become the hands and feet that execute.

You might be wondering why I’d give up that much control, but the thing is that I’m not giving up control over outcomes, just over the tedious context-reconstruction that precedes every action.

The Problem Isn’t Time, It’s Context

The standard productivity narrative says “do things faster.” But I’ve realized that for life admin, speed isn’t the bottleneck. The bottleneck is cognitive re-entry.

Every time I return to a bureaucratic project (health insurance setup, car inspection scheduling, government ID renewal), I pay a tax, and it’s not a time tax but a thinking tax. I have to reload the entire context: What did I do last time? Where’s that document? What’s the phone number? What did the person say?

This context reconstruction drains the exact same mental resource I need for interesting problems like creative work and engineering challenges, the stuff that actually benefits from my personal attention.

The insight is simple, which is that most life admin problems are not hard. They’re just high-friction re-entries. The thinking required isn’t creative; it’s reconstructive. And in my experience, Claude Code handles reconstructive thinking reasonably well (though I still verify critical details).

Flipping the Collaboration

For knowledge work, everyone talks about AI as a copilot where the human captain does the thinking and the AI assistant helps with execution.

For life admin, I flipped this around so that Claude does the thinking while I handle the execution.

In my early experiments, this architecture shows promise:

  • Claude does the thinking (loads context, synthesizes history, generates call scripts, decides what to say)
  • Human does the grunt work (physically holds the phone, drives to the government office, signs the document)

It might sound like I’m demoting myself to grunt work, but for me the hard part of life admin was never the physical execution. It was always the mental overhead of figuring out where I left off and what to do next. Once I know what to say and have my documents ready, making the call is easy (though I still need to think on my feet when conversations go sideways).

Ghost in the Shell

Now let’s talk about how this actually works. For Claude to be useful, it needs context. It can’t just be a chatbot I explain things to each time. It needs to temporarily inhabit the project’s accumulated knowledge.

I call this approach “Ghost in the Shell” (borrowing from the anime, where consciousness can inhabit different bodies). In my version, the “shell” is the project’s accumulated data and the “ghost” is Claude’s reasoning capability that temporarily inhabits it.

Each project has a brain: notes, meeting transcripts, task history, linked documents. When I trigger a task, Claude loads this brain and reasons from that context.

I should mention the technical setup, which is that I use Claude with MCP integrations that can read from my document database and task manager. I use Mac-specific tools (DEVONthink for documents, OmniFocus for tasks, Hookmark for cross-app links), but the principle should be tool-agnostic since any setup that can aggregate project context and feed it to an LLM would work.

When I select a task in OmniFocus, Claude follows the project hierarchy upward to find the parent project, then loads all linked documents and notes. It builds a timeline of what happened. Then it can act with full context, not just respond to isolated prompts. Sure, Claude doesn’t truly “understand” the project, but it synthesizes the available information well enough for bureaucratic tasks.

The One Question Rule

You might ask whether managing AI becomes its own overhead, and yes, it can. I’ve found that AI assistants can become another attention sink through clarifications, follow-ups, and re-prompts, and before you know it, managing the AI becomes a new kind of bureaucracy.

So I built in what I call the “one question rule.” If Claude is missing information, it can ask one question maximum. Then it has to provide a best-effort plan with assumptions stated. If it’s still stuck, it downgrades by first moving from doing the task to proposing a plan, and then to explaining how this type of problem generally works so I can handle it myself.

This prevents Claude from becoming needy. It forces decisive action with explicit assumptions rather than endless clarification loops.

I also added risk-based escalation. “Autopilot” here means Claude proceeds without asking for confirmation:

  • High risk (finance, medical, identity): never autopilot
  • Medium risk: autopilot only for prep work (drafts, research)
  • Low risk: full autopilot allowed

This doesn’t prevent all errors. I still need to review what Claude produces, and I’ve caught it confidently stating wrong details. But the guardrails prevent the worst-case scenarios while keeping friction low for routine tasks.

Closing the Loop

Claude doesn’t just prep and disappear but waits for me to come back with results.

Here’s a typical flow:

Claude: "Here's your call script for the mechanic. Key points to cover:
     timing, parts availability, price estimate. Come back when done."

[I make the call]

Me: "Done. He said Tuesday at 10am works, and the part needs to be ordered."

Claude: Creates follow-up task that surfaces on the appointment date,
    logs the outcome to project notes (so next time I have this
    context), links everything together.

This conversational loop keeps Claude as the orchestrator throughout. Every interaction gets logged back to the project’s brain, so next time the context is even richer.

What I Actually Delegate

The action types fall into three modes based on how much autonomy Claude gets:

Autopilot (Claude does the work, I review results): Research tasks where Claude queries Perplexity or analyzes code. Processing tasks where it extracts key points from articles or documents. Documentation tasks where it saves findings to DEVONthink and creates links between related items.

Propose (Claude preps, I decide and act): Phone calls where Claude loads my last conversation with someone, generates a script, and tells me what questions to ask. Emails where it drafts messages based on project context. Setup tasks where it researches best practices and generates step-by-step guides. Decisions where it builds comparison matrices and recommends options.

Teach (Claude explains, I learn): Learning tasks where Claude curates resources, creates a study plan, and suggests hands-on exercises, but I do the actual learning.

The key insight is that even when Claude can’t do the task, it can reduce my cognitive load significantly. For a phone call, I usually don’t have to remember anything because Claude already looked up my last interaction with that person and what we discussed. I just read the script (though I still need to adapt when the conversation goes sideways).

Action Types

I built a library of action types as markdown files that Claude reads when working on a task. Each type (research, review, process, draft, analyze, document, setup, learn, coordinate, execute, spec) defines a prep pattern for what Claude should do before I act, a capture pattern for logging results afterward, and which tools to use. For example, the “draft” type handles phone calls and emails by loading contact details and past conversations, then generating a script or message draft.

The process of building this library is ongoing. I pay attention to what types of actions I do repeatedly, then figure out how Claude could help with each one. Some actions start in Propose mode and graduate to Autopilot once I trust the pattern. The goal is to keep expanding what can be delegated as I discover new friction points.

Claude generates plans fresh each time using these patterns plus the project’s accumulated context. In theory, this gets smarter with each use because the context compounds. I haven’t measured this rigorously, but I’ve noticed Claude’s prep work improving as project histories grow richer.

The Real Risk of AI Assistants

What I’ve found is that the real risk of AI assistants isn’t that they make you lazy but that they make you a manager of an intern that asks infinite questions.

I prevent that by design through a kind of contract with Claude that includes clear modes of operation, risk-based guardrails, explicit definitions of done, and a hard cap on questions, so it behaves like a capable assistant rather than a needy one.

Is this worth the setup time? I spent a day building the infrastructure. Whether it pays off depends on how many bureaucratic projects I run through it. Ask me in six months.

For now, I’m experimenting with reserving my thinking capacity for interesting problems. Everything else gets delegated to the ghost in the shell.

2025.08.26.

Solving Token Waste with Claude Code Personas

The new /context command in Claude Code revealed how I’m wasting tokens by having all MCP (Model Context Protocol) tools loaded into one session for every conversation. When I’m in the middle of development, I don’t need OmniFocus task management or DEVONthink database tools.

Based on subagents I had the following idea: what if I split Claude into specialized personas, each loading only the tools it actually needs?

Creating Focused Personas

Instead of one bloated agent trying to do everything, I created three specialized personas:

Main Persona (cc): The clean, focused default. Just filesystem, bash, and macOS automation via one MCP server. This handles most of my daily coding tasks with minimal tool overhead.

Research Persona (ccr): The deep investigation specialist. Loads Zen for multi-model reasoning (GPT-5, O3, Gemini Pro), Context7 for library docs, Octocode for code search and analysis, and Codex for deep code research. When I need to debug something complex or review architecture, this persona has the tools.

GTD Persona (ccg): The productivity workflow expert. Connects to OmniFocus for tasks, Obsidian for notes, DEVONthink for documents, and HyperContext for calendar management. This persona focuses on productivity workflows and task management.

Each persona also has access to subagents for specialized tasks, adding another layer of capability without wasting more tokens.

The implementation lives in my dotfiles as simple shell functions:

# Main persona - clean and fast
cc() {
  claude ${*} --dangerously-skip-permissions
}

# Research persona with specialized tools
ccr() {
  claude ${*} --dangerously-skip-permissions \
    --model opus \
    --mcp-config ~/.claude/mcp-research.json \
    --append-system-prompt "You are a code research and analysis specialist \
focused on deep technical investigation, multi-model reasoning, and \
comprehensive code review. Your expertise includes security auditing, \
architecture analysis, debugging complex issues, and researching best \
practices across codebases. You leverage multiple AI models for consensus \
building, use Context7 to fetch up-to-date library documentation, analyze \
GitHub repositories for patterns with Octocode, and generate thorough \
technical documentation."
}

# GTD persona with productivity tools
ccg() {
  claude ${*} --dangerously-skip-permissions \
    --model opus \
    --mcp-config ~/.claude/mcp-gtd.json \
    --append-system-prompt "You are a GTD specialist orchestrating a \
multi-layered knowledge system where OmniFocus drives project execution, \
Obsidian captures notes and knowledge, and DEVONthink archives reference \
materials. You excel at processing inboxes across all three systems, \
organizing projects with proper next actions, capturing meeting notes \
with task extraction, and maintaining a trusted system for all personal \
and professional information. Your expertise includes creating bidirectional \
links between systems using Hook and maintaining clear separation between \
active project work and archived reference materials."
}

Each persona loads its own MCP configuration file, containing only the relevant tool servers. The --append-system-prompt flag gives each persona a specialized identity and deep expertise in their domain.

The Delegation Pattern

The most powerful aspect isn’t just the separation. It’s the ability for personas to delegate to each other. This creates a network of specialized expertise without loading unnecessary tools.

When delegation happens, I must approve it first. The main persona will say something like: “I’d like to ask the research persona to analyze this Rails controller for N+1 queries using its specialized tools.” Once I type “approved” or “go”, the delegation proceeds.

The delegation always runs in the background using the Bash tool:

// How the main persona actually delegates
Bash({
  command: 'ccr -p "Analyze this Rails controller for N+1 queries and performance issues"',
  description: "Ask research persona to analyze Rails performance",
  run_in_background: true
})

This pattern works both ways. I can also delegate GTD tasks with a simple OmniFocus link:

# Ask GTD persona for comprehensive project review
ccg -p "/gtd:project-review omnifocus:///task/jP9S4CFgPin"

The GTD persona doesn’t just fetch tasks. It discovers linked resources through Hookmark, pulls references and meeting notes from DEVONthink, reads project plans from Obsidian, builds a complete timeline, and suggests concrete next actions based on the full project context. All while the main persona continues with development work.

The background execution is key. The delegating persona doesn’t block waiting for results. It can continue working on other aspects while the specialized persona handles its domain-specific task.

What Changed

The token savings are significant, but the real benefit is focus. Each persona does one thing well with the right tools for that job. The system prompts shaped distinct behaviors. The main persona stays lean and fast. The research persona leverages multiple AI models for deep analysis. The GTD persona navigates my entire productivity stack.

2025.07.13.

On Deleting Second Brains

Joan Westenberg:

Two nights ago, I deleted everything.

Every note in Obsidian. Every half-baked atomic thought, every Zettelkasten slip, every carefully linked concept map. I deleted every Apple Note I’d synced since 2015. Every quote I’d ever highlighted. Every to-do list from every productivity system I’d ever borrowed, broken, or bastardized. Gone. Erased in seconds.

What followed: Relief.

Sometimes it’s good to delete things, but a second brain isn’t an end goal. The sole purpose of a second brain is to help achieve some form of output. It serves as a tool to organize thinking for the future.

The problem with output is that we often don’t know what it will look like when we start. What a Zettelkasten (and GTD too) acknowledges is that you’ll have an outcome of some kind and you need a framework to manage it. That’s all.

People who capture their ideas then leave them there are still doing the same thing, but can probably think through their output in their head. I do that sometimes too, and it’s fast.

But as soon as I’m working on anything that requires more thinking capacity than I currently have, I reach for PKMs and task managers to handle it.

I usually split my long-term project-specific Zettelkastens off from my main one, though.

Previously:

2025.02.08.

Read “The Field Notes Thing”

I try to operate on the “Nothing Doesn’t Go in Here” principle. Flipping through the notebook that is on my desk right now, I see shopping lists, notes from conference calls, sermon notes, a little chart I made when working on some invoices for Relay, a doodle of the Widgetsmith icon I made for some reason, and a lot more. A receipt for a recent meal with a friend fell out of it onto my lap; I’ll probably tape that into the notebook for safekeeping.

The good thing about Field Notes is that you don’t have to care about it. It doesn’t feel pristine like some other brands. So, I mainly capture similar things, but I group them by date. I have meeting notes, programming session notes, random ideas, outlines, journal entries, etc.

These notebooks are a trail of breadcrumbs dating back almost 15 years. If I flip through an old one, I get a glimpse of what was going on in my life at that time. I can go to the notebook I was using when we launched Relay, or when I quit my job. I like having them on hand; seeing them in my studio each day makes me happy.

I never scanned my old Field Notes but kept them safe in a wooden box. I don’t care if they are destroyed someday since I use my notebooks as a temporary capture tool. If something is interesting, I’ll transfer it to my GTD system or just scan that part of the notebook.

Otherwise, the notebook can be discarded.

Previously:

2025.01.24.

2025.01.15.

2025.01.07.

Drafts alternatives

I still use Drafts and am not planning to switch, but in recent years, I’ve seen a couple of nice quick-capture app alternatives pop up. Since I just stumbled upon the new version of Funnel, I thought I would share some quick thought-capture apps.

  • Funnel
    • It captures text, transcribes voice, and even uses Shazam, which is pretty nice. Unfortunately, it is available only on iPhones.
  • Bebop
    • It is optimized for text file capturing, but it can be a pretty nice tool if you have a file-based system with The Archive. Again, iPhone only.
  • Capture
    • This seems to be the most interesting alternative to Drafts since it works on most Apple platforms (no Watch, though) and can capture stuff into a timeline-like format.

2024.11.21.

Read “Pluralistic: Keeping a suspense file gives you superpowers (26 Oct 2024) – Pluralistic: Daily links “

GTD is a collection of relatively simple tactics for coping with, prioritizing, and organizing the things you want to do. Many of the methods relate to organizing your own projects, using a handful of context-based to-do lists (e.g. a list of things to do at the office, at home, while waiting in line, etc). These lists consist of simple tasks. Those tasks are, in turn, derived from another list, of “projects” – things that require more than one task, which can be anything from planning dinner to writing a novel to helping your kid apply to university.

I have never seen next actions mentioned like this: tasks that are derived from another list, a list called projects. The thing I like about OmniFocus (and TaskPaper) is that projects are outline headings, and next actions are simple rows. It naturally blends the two together.

Read “Pluralistic: Tabs give me superpowers (25 Jan 2024) – Pluralistic: Daily links from Cory Doctorow”

Most of the internet is still on the web, which means it can be bookmarked, which means that it takes me one second to add it to the group of things I’m staying on top of, and one second to remove from that group. I get up in the morning, middle-click the “unfucked rota” item in my bookmarks pane, make a cup of coffee, and then sit down and race through those tabs, close-close-close.

It takes less than a second to scan a tab to see if it’s changed (and if I close a tab too quickly, the ctrl-shift-T “unclose” shortcut is there in muscle-memory, another habit). The whole process takes between one and 15 minutes (depending on whether there’s anything useful and new in one of those tabs).

I like the idea of using tabs as a list for next actions; however, my main concern with this approach is that it doesn’t clarify why I need to open a specific tab. It feels like a variation of the “Waiting for” list, which can serve a similar purpose. I can access this list daily, quickly scan it, open links from the task notes, and even update it with new information.

It’s interesting that Cory discusses how he utilizes the “Waiting for” list in another article.

2024.09.03.

Trying out Strflow for project-related status updates

I used Strflow today with OmniFocus, which is pretty good for an interstitial journal. I can quickly bring it up and leave a status update about projects. It is handy when making a phone call and logging what we discussed.

I made two shortcuts, which work on the selected action’s project:

  1. Journal About Selected OmniFocus Project: ask for a quick status update, then it automatically tags the note with the project name converted to a hashtag.
  2. Open Selected OmniFocus Project Timeline: opens the timeline based on the project name.

I created a journaling shortcut for OmniFocus a couple of months ago, but it is built on top of DEVONthink. It doesn’t automatically get the project, and storing these entries in DEVONthink will make my status updates get mixed with project-related assets, which I don’t like.

By the way, I can also add pictures to Strflow entries, which is kind of hard to do in DEVONthink.

I used to do interstitial journaling in TaskPaper, and I’m not sure yet if Strflow is better or worse than TaskPaper, but at least it is available on iOS, too.

These days, I’m using TaskPaper for “brainstorming,” not journaling. TaskPaper is a pretty cool outliner, so I can quickly create session notes related to the selected OmniFocus action. But these are just fleeting notes… I’m using TaskPaper as a temporary thinking tool.

I can also share Strflow notes with other apps, like Day One, or add them to Drafts, where I can process and export them to other places, transforming Drafts into a tool that migrates text-based information between apps.

Also, I like how the Strflow timeline was made to look like a chat app. In a way, it feels like the old Twitter feed, where we posted random thoughts to get them out of our heads. It is a private version of that.

2024.09.01.

2024.07.03.

David Allen’s GTD System Up Close

A few years ago, I found a hidden video series about how David Allen does GTD. I instantly downloaded it and merged it into one video.

While browsing today on YouTube, I stumbled upon two existing videos from this series that are still available. The rest are removed or marked as private, I don’t know… Edit: actually I checked the video and these in fact are the same ones. But I wanted to share them because they are pretty interesting.

Luckily, I saved the full video, although I can’t share it here. If you are interested, maybe you can ping me via email. Otherwise, I embedded the two existing videos here as an introduction.

2024.05.11.

Read “Bookending | everything changes”

Mandy Brown on ending your day:

Here’s a small trick that worked for me over the dozen years I led remote teams: at the end of your working day, shut down every app on your machine. Yes, all of them. Stash your tabs somewhere if you must, but close them all down. The only exception that may be made is for a simple note-taking app—the kind that lacks any kind of notifications. Then, spend ten or perhaps fifteen minutes reflecting on your day, whether in said note-taking app or, even better, on paper. This needn’t be anything formal or structured, just jot a few things down—maybe short phrases, maybe just some key words. The only hard rule is to do your best to keep any sense of judgement out. Then, in the morning, when you open up your machine, there should be nothing yelling at you—no unread badges, no cluster of notifications calling for your attention.

This is the best shutdown routine you can do.

2024.01.06.

2024.01.05.

Texting yourself for capturing ideas

  • A couple of months ago I started to use Messages for talking to myself.

  • Why do I want to do that?

    • When I want to figure something out, I noticed that the best way to do it is to start writing in freeform text.

    • It feels like talking to myself, which helps me to externalize my ideas, and find solutions quickly to problems. It’s like a pre-thinking phase for capturing ideas in a timeline format, then organizing them later in a mindmap or an outline.

    • Slack has a similar idea of why you should start to message yourself. When you open your profile and press the Direct Message button, the following message appears on the top.

      • This is your space. Draft messages, list your to-dos, or keep links and files handy. You can also talk to yourself here, but please bear in mind you’ll have to supply both sides of the conversation.

    • Others also wrote about this idea in more detail. It is the modern version of emailing ourselves.

    • Messages is actually a pretty cool candidate for this workflow. It is available on all my devices, I can pin messages for reviewing them later, and it is still the best way to share information between my devices when AirDrop and Handoff farts themselves.

  • How to set it up?

    • Texting with ourselves in Messages is a bit weird since every message will be sent back in the same thread duplicating everything. We can avoid that by registering a new iCloud account and sending messages to there.

    • I have a sparse iCloud sandbox account which I use for testing. I logged in from my old MacBook Air, then I started to write thoughts for myself over iMessage.

      • We have to log into a separate iCloud account at least once, otherwise, Messages won’t pick up the account as a proper recipient.

  • This is yet another version of the capture step in GTD

    • This idea was cool, but for me it quickly fell apart. People get the idea of writing stuff down, but they forget that it needs to be processed later.

    • When I had to pull out data from Messages, it was hard to mark my processed position in the timeline.

    • I started to use a marker message by typing 5 equal signs which is similar to how I mark my processed position in my notebook using a double line.

    • When I process, I usually reference information between apps, which means that I like to link to the source or at least copy the text out into a place that I can link to.

      • There is a hidden URL scheme in Messages, but it is really hard to link to messages.

        • sms://open?message-guid=UUID

        • If there is a data detector visible in your message (like the text of “tomorrow 9:00am”), Messages will underline it, and you can create a new event or a reminder by clicking on it. Creating a new reminder will also add the link to the message which you can copy.

    • Getting links or text out of Messages is actually bit convoluted.

  • Strflow, an actual app made for texting yourself

    • I just found a unique new app today called Strflow, which mixes note-taking with a messaging interface. It works exactly like I wanted to use Messages.

    • Why it is better than Messages?

      • There is a “Copy Note Link” command for every note.

      • Notes can be edited after they are created.

      • There is a minimal Markdown-like syntax available, which lets me have the right amount of formatting for quick notes like these.

    • I love unique apps like this one – that’s one the reasons I love the Mac, since you can always find interesting tools like this – although it still has some missing pieces.

      • iOS version (the developer mentioned that he’s working on it).

      • Spotlight integration: it just feels right to index and search snippets of information in Spotlight.

      • Better export: we get a JSON file on export, but since the app uses Markdown for formatting, why not export proper Markdown notes?

        • It would be even better if I could define a date range for exporting, so processing information can be done outside of Strflow.

      • Although there are unique links for each note, getting them is a bit hard. I have to ⌃Click and choose the “Copy Link to Note” command from the context menu which is not available in the app’s menubar.

        • strflow://show-note?id=UUID

      • Selecting notes can be done using the trackpad, but having keyboard shortcuts for navigating up and down would be useful to select one or multiple notes.

  • So what am I using Strflow for?

    • As I mentioned, I mostly use this app for talking with myself to figure out something by writing.

      • I started the draft of this post there.

      • I saved couple of links which I want to revisit later.

      • It is like a private version of Mastodon.

    • It is going to be another inbox/journal/status update tool next to my interstitial journal in TaskPaper.

2023.12.08.

2023.12.06.

2023.11.23.

Reviewing append-only workflows

There are multiple systems where you can only append new information at the end of the chain. There is no chance to modify the history in these workflows (or it’s very convoluted).

But why is it beneficial to use an append-only workflow? I’ve been fascinated by these systems lately since we can learn so much about our workflows by keeping previous states around.

The core idea of an append-only information storage system is to only add new information without removing existing data, which has excellent benefits: we can see ideas getting developed, we can keep versions of a file, or we can capture information for the historical sake of it.

Analog systems like the Antinet Zettelkasten or the Bullet Journal force us to organize information by appending it. Digital systems can be used like this too, but they need the right mindset from us so we don’t remove mistakes.

In this post, I’ll discuss using email, Zettelkasten, and Git in the append-only information organization context.

Email is a popular workflow for developing ideas

In essence, idea development leverages the fact that you rely on the history of the idea as you progress it. Its history serves as a breadcrumb to go back in time and see how it was developed.

Drafting something is a long process, and the most apparent tool some people use is email. It can be a great append-only note-taking tool and storage medium. Here’s an excerpt from How I use append-only log to store information:

If you are working on a piece of text for a long time, you can just keep it as a draft and keep working. It will be auto-saved.

I am a fan of the bullet journal method. Handwritten text is immutable. The same goes for emails. Once you send it, it becomes immutable.

To show another example of how email can be used for drafting, here’s how Steve Jobs used email to write his Stanford commencement speech:

In January 2005, John Hennessy, the president of Stanford, asked Steve to give the commencement address to that spring’s graduating class. Steve agreed.

On and off for the next six months, Steve took stabs at writing his talk. He emailed stories and memories to himself. He asked friends, Apple colleagues, and the screenwriter Aaron Sorkin for their thoughts. In the end, however, he wrote the speech on his own. Even three days before the event, Steve was unsatisfied with his talk. He sent it to a friend, warning, “I’ll send it to you, but please don’t puke. I never do stuff like this.” He was still refining the speech the morning that he gave it. Uncharacteristically, Steve read from the lectern, rather than memorizing his text (as he did with Apple keynotes) or speaking extemporaneously from a few scrawled notes (as he did in nearly every other talk).

Steve was happy with the speech—he emailed himself a copy a few days after giving it—but he generally deflected the praise that he received for it. “I bought it on CommencementSpeeches.com,” he joked to one person. The commencement address has been viewed millions of times online and is included[…]

Steve Jobs once mentioned that he constantly sends notes to himself in his inbox as a reminder. This process is similar to the capture method used in Getting Things Done (GTD). However, GTD does not address how we can use our inboxes to develop ideas further.

Using our email Inbox effectively to develop ideas

Sometimes, I also use email to develop ideas in my inbox during the GTD capture phase. Although I think there are better tools for this – like Drafts or my Zettelkasten – some conversations are present only in email, so I can leave notes for myself in a thread by starting a reply to a message and sending it to my address. This workflow feels like a poor man’s version of HEY’s sticky notes.

I have a separate “Inbox” contact card saved with the +captured text appended to my email address (someone+captured@domain.com), so when I want to remind myself about a message, I’m emailing ideas to this address and use the conversation view in Mail to develop them further by replying in place.

I can also schedule these messages, which act like an integrated Tickler File. I can leverage that Mail has an excellent conversations view, so the Send Later feature can resurface any thread when I’m scheduling a forwarded message to myself. It will reappear in my Inbox with the whole conversation, which gives me the context to figure out what the note is about.

A quick aside about Remind Me and Follow-up in Mail: We have features in Mail in iOS and macOS that could be useful for emailing follow-ups, but they have two problems.

  1. Remind Me only works for emails in the inbox, so if I archive an email, it silently moves it to the top of the Archive mailbox which is useless.
  2. Follow-up is a black box driven by “AI,” and there is no way to set it up manually for specific emails that I want to track.
    • It uses three days by default, but I’m not sure if it works for every sent email.
    • On the other hand, I also use a GTD “Waiting for…” list to track items waiting for a reply. → 2.7.8

To conclude, emailing notes to ourselves is semi-private. We’ll see the email as part of the thread, but others won’t. This way, we can leave notes in place, even in threads with others.

Here are some concrete contexts where I’m adding notes in an email thread:

  • code review comments
  • ideas about a project we’re discussing
  • capture an idea on the phone, which can be seen later on the desktop when I’m processing emails

Appending information in a bottom-up system like GTD and Zettelkasten

Both GTD and Zettelkasten are bottom-up approaches for getting a grasp on ideas. These frameworks don’t start with what we want to achieve but what we have now.

In GTD, the idea development process is the Natural Planning Model. In a Zettelkasten, this is the follow-up note method (or Folgezettel): letting ideas be developed naturally.

The outline-based Zettelkasten

As I mentioned, follow-up notes show how an idea was sparked and developed over time. Understanding this development process heavily depends on the context of the actual Folgezettel.

Since follow-up notes show us the idea development, we can safely say that we aren’t storing the result of our thinking but the thinking itself.

What’s more important is to keep these ideas structured so we can follow their line of thinking even for years to come.

I can’t say that Luhmann’s Zettelkasten implementation was a big outline because it is way more complicated than that. But I still like to organize notes in a master outline structure for my version of the Zettelkasten since high-level branches are what get me started on an idea that becomes something more complex later.

The Zettelkasten outline shows me the history of idea development. When I add a new note to the Zettelkasten outline, its place will define the order of the note relative to others. It means that the note is connected to a parent and/or a sibling so that I can see the development of an idea in a thread-like structure.

I only append to the Zettelkasten outline and never move stuff around since I use numeric IDs to mark their fixed position. This is a customized version of the alphanumeric note ID that Luhmann used in his Zettelkasten.

Since mine is organized in an outline structure, there is no need to link all notes to every direction. In the tree structure, all notes can be connected to a parent, next, and previous sibling. Not all of these connections are present, but one will be there since a note needs to be appended somewhere in the outline.

Because we usually organize conversations around threads, our thought development can be understood as a conversation with ourselves (or our Zettelkasten, if we use the analogy by Niklas Luhmann).

The outline-based Zettelkasten will force us to think about the place of a note in relation to other notes. Much like the physical Zettelkasten, in an outline-based digital version, we have to append the note to a tree structure. This method will ensure that we automatically have follow-up notes.

The capture log

One of the most interesting steps of GTD is the capture step. A capture log is a journal-based version of the inbox, where ideas are appended in a timeline-based manner.

The capture log was an idea first mentioned by Merlin Mann, where he explained that he wanted to yell into the void and let Siri capture his ideas with automatic metadata like creation date, location, and, optionally, the weather. It’s yet another inbox that we have to process.

The inbox is a medium that stores items that change frequently. It is a temporary holding place for new information in the short term. We mainly change information in it (add and remove), but in the append-only workflow, these items can be kept as an idea log, too. If we use inbox items as a trigger to create new projects and/or next actions in our GTD system, after creating these, we can complete source items in the inbox and log them. In that sense, we have a capture log as an automatic journal where we keep a history of our ideas. As Merlin said, it’s like the tail of our life.

Keeping versions

There are two ways people keep file versions around. If you worked on any source material like Word or Photoshop documents, you are probably familiar with versioning your files using the “Save As…” command.

There is an ongoing meme about sending the “final final final” version to a client, so in theory, this is not a desirable workflow. Still, with a proper workflow in place, we can use it to mark milestones in a document lifecycle.

But before we go there, let’s talk about Git since it’s a tool created for this exact task: keeping versions of files.

Versioning with Git

Git is an append-only information storage system, too, because when we change code in the software development context or update any text kept in a Git repository, we’re adding a new state to a source material. We pack it up in a commit, which is then appended to the log.

Versioning makes software development more manageable since we don’t have to worry about how changes are looking in our working copy: the code is constantly forming. The state stored in Git will show changes, mistakes, refactorings, and removals, which is the natural part of everyday work. Git lets us see the natural evolution of the code base, which is similar to other examples mentioned here.

Git can be used for keeping the history of non-code-based source files, too, like photos, illustrations, PSD files, Markdown writings, etc. My Zettelkasten is a Git-based source material, which I use as a starting point to write about interesting ideas.

People forget that Git isn’t just tied to store source code. We can create a Git repository for almost any source material we’re working on and keep a history of the evolution of these files.

Keeping manual versions

Sadly, keeping a Git repository works only with file-based apps. It doesn’t work for database-based apps like Ulysses, which I’m writing this article in.

On top of Git, it’s still worth keeping manual writing versions, especially after reaching milestones like the first draft, the first edit, or the version before spell-checking. We can usually keep manual versions around in database-based applications by simply duplicating the primary resource of the app.

I like how Aaron Draplin duplicates layers in Illustrator to keep a history of changes and branch out new ideas. In the same way, I duplicate groups in Ulysses for writing projects so that I can have a trackable / branchable writing workflow. Ulysses also keeps versions of projects, but manual versioning can be tied to milestones in the writing workflow.

My versioning system is based on the following rules:

  • I keep a group where all sections are sheets, then I duplicate these groups before significant edits and assign version numbers for each group, like v1, v2, etc. These names have no meaning other than having a version number for the group.
  • The triggers for duplicating groups can be the following:
    • Collected and sorted my Zettelkasten notes.
    • Finished the first draft.
    • Checking grammar with Grammarly (which is just another form of editing).
    • The final version before publishing the post.
      • It can change, so this group will allow me to compare what type of changes I usually make after I publish something.

Conclusion

In this post, I collected many workflows that follow the append-only organization system. To recap:

  • Email can capture information and take notes in conversation threads.
  • The outlined-based Zettelkasten allows us to create follow-up notes for long-term thinking and idea development.
  • Git and manual versioning is a great way to try out new ideas on source files.

These workflows are appending new information at the end of a stack, so we will have a breadcrumb to see how changes affect our work over time.

The main idea I would like to highlight is that by appending information, we don’t delete anything; we add new information at the end. Having all changes visible in the chain (even the bad ones) makes it harder to erase mistakes.

Read “Ben’s Journal: Cutting the electronic cord: Setting up a fully paper TODO list tracking strategy”

While git + emacs + org-mode was certainly functional, I never had cause to do anything particular sexy with the setup. In fact, I was hoping this experience would convert me from a fan of subversion to a fan of git, but alas, it only reinforced my appreciation for the simplicity of subversion.

The index cards, on the other hand, were a joy to use. I love that each project is represented by a single card, and that spreading out the cards gives me an overview of all possible tasks to work on:[…]

Append-only storage and developing ideas

There are multiple ways to develop ideas. Sometimes the best one is where you can’t change the history of an idea. It’s there as breadcrumbs to go back in time and see how an idea was developed.


Other people use email as an append-only note-taking tool and storage medium. From How I use append-only log to store information:

Choose any email client you like and basically dump all your PDFs, notes, digitized papers, files into it as it arrives from various sources. Just write a meaningful subject that you can search for later. You can use labels or folders to organize, but mostly just send it to an email address of your choice and archive it. Usually, you will not even read it again after you have saved it.

The E-mail format itself is well understood and has many features. The max attachment size of most service providers is around 20 MB. It’s more than enough. Try to use plain text for just taking short notes and messages to yourself. If you want to dump more than 20mb of files, just archive it or split into many emails or upload it to cloud storage and copy and paste the link to email.

When you need the information. It’s there. Always.

No more fiddling with the file managers, renaming. It is saved as it is.

Even if you would like to edit, you can just forward the message again to yourself with the edit and delete the original one.

You can also use it to schedule mails and track future tasks, TV shows, anime, movies or Reminder to yourself in the future. If you are working on a piece of text for a long time, you can just keep it as a draft and keep working. It will be auto-saved.

I am a fan of the bullet journal method. Handwritten text is immutable. The same goes for emails. Once you send it, it becomes immutable.

I don’t know if other use emails to store all their digital content in emails like me. But it’s a pretty neat trick.


Here’s how Steve Jobs used email to write his Stanford commencement speech:

In January 2005, John Hennessy, the president of Stanford, asked Steve to give the commencement address to that spring’s graduating class. Steve agreed.

On and off for the next six months, Steve took stabs at writing his talk. He emailed stories and memories to himself. He asked friends, Apple colleagues, and the screenwriter Aaron Sorkin for their thoughts. In the end, however, he wrote the speech on his own. Even three days before the event, Steve was unsatisfied with his talk. He sent it to a friend, warning, “I’ll send it to you, but please don’t puke. I never do stuff like this.” He was still refining the speech the morning that he gave it. Uncharacteristically, Steve read from the lectern, rather than memorizing his text (as he did with Apple keynotes) or speaking extemporaneously from a few scrawled notes (as he did in nearly every other talk).

Steve was happy with the speech—he emailed himself a copy a few days after giving it—but he generally deflected the praise that he received for it. “I bought it on CommencementSpeeches.com,” he joked to one person. The commencement address has been viewed millions of times online and is included[…]


These use cases are similar to how I use email threads to develop ideas in the GTD capture phase, where I’m leaving notes for myself within an email thread. All I have to do is send a reply to my own address by replying to an email, so Apple Mail keeps the message in the same thread.

One of the benefits of using this method is that I can still see the email as part of the thread, but my notes will be kept private.

This is helpful for various purposes, such as making code review comments or jotting down ideas by replying to email notifications but changing the recipient to my own address, which acts a bit like the poor men’s version of HEY’s sticky notes

I also have another app where I keep journal entries called Everlog. I’m thinking about applying the same append-only storage idea there and never editing my Everlog entries after I added them. It is also an append-only app, where entries shouldn’t be changed afterward, only deleted. I can always add a follow-up to an entry but I should never change it, so I can see how something was developed over time.

This is why I like to use Drafts for capturing and drafting ideas. I can easily edit them while I’m working on the idea, but I shouldn’t change them too much after I share them with their destination app (except when I continue working on them).


Related posts

Zettelkasten Note

2023.08.09.

How I get shit done (or at least get started) while having executive dysfunction

I like these ideas, but especially gathering all information.

Let’s say I need to reply to an email. I start by reading the email I’m supposed to reply to. If there’s any more information I need to be able to answer that email, I go and get that information. I then dump all the information I have into an email draft for easy reference, and write my email from there.

I learned this behavior by keeping a Zettelkasten for writing. It is always easier to start with existing content rather than starting from scratch.

These days I even use journaling as a tool for getting started. If I have no idea what’s the next action on something, I begin to write about it in my notebook. Sooner than later, I figure out something by rambling about the problem in my journal.

2023.03.23.

My Notebook System – ratfactor

This year is going to see my journal/log’s 10th anniversary and 100th notebook.

I read the whole article and took a lot of notes which inspired me to think about how I can consolidate my capture (logging) habit a bit more into one place, but still keep multiple capture tools.

After finishing this essay, it feels like Dave accidentally invented GTD for himself in a different form based on a stream of captured ideas that are moved up in the chain to have projects and next actions.

The part at the end where he writes about weekly, monthly, and yearly recaps feels very GTD-esque.

I actually tracked my time in a notebook like this before. I had a timestamp of when I started and when I ended a session of work. I have a long history of working in sessions, as I used to do a lot of freelance work, which requires time tracking (a session means that I focus on one task for a more extended period of time). My only question is how Dave transcribes his notebook entries into his digital system? I did it by hand, and it was awful.

Anyway, this is an excellent write-up of a fantastic system that I’m going to use as inspiration.

2023.03.19.

2023.02.01.

My Clearing Out My Work Inbox

We can watch Chris Coyier going for a 13 minutes ride of cleaning newsletters and spam from his work inbox.

I usually try to unsubscribe from these type of emails too.

If I can, it goes into the trash. If I can’t, then it goes into spam. I don’t archive these like Chris does.

2023.01.29.

Numbers can be used to store next actions and projects in a GTD system

I was thinking about making a more advanced GTD system in Numbers other than just using Reminders in macOS. This post lays out this idea in more detail.

First, create two tables for lists

We can store next actions of a GTD system in Apple Numbers by creating two tables for “Next Actions” and “Projects”.

  • The Projects list is just a list of projects with a completion checkbox, a title, and an optional due date field.
    • We could add optional notes or a project support field to link notes and other assets or link them using the title field.
  • The Next Actions list contains a completion checkbox, a title, a due date, a context, and an optional project field.
    • The context field can be a drop-down listing of all of our contexts.
    • The project field can be linked using a formula for the projects table title field.

Add groups for contexts

  • Grouping on the next actions table can be used to group next actions by context.
    • Contexts groupings can be folded, depending on where we are and what we want to see.
    • We can create sums for the number of next actions in a group.

Optionally, sync with Reminders

Writing an AppleScript for syncing with Reminders should be possible.

  • The script can create different Reminders lists for each context like Kinless GTD did for iCal back in the day.
  • The due date field should be assigned as a Reminders due date.
  • Next actions can be added to each Reminders list using the following format:
    • ✓ Next action title [Project Title]

Questions

  • Could it be possible to sync changes from Reminders back to Numbers using AppleScript?
  • How would we store task-related notes?
    • A new field can be long, but we can’t have fields under row without merging rows or columns.
  • What would be the benefit of this system other than just using a proper task management app like OmniFocus or Things?
    • I guess the reason is that Numbers is more flexible than Reminders and comes with every Mac.

2023.01.11.

Re-reading 43folders.com

I recently started making read/review-related GTD projects to be more disciplined about consuming websites and books. I do this because I want to extract information from them and not just read and forget it.

The current one is 43folders.com, which is old, but still contains many valuable tips and tricks regarding Mac productivity. I’m unsure if there is anything like that today like the Mac blogging scene was from 2003-2008 – maybe MPU Talk — when everybody was obsessed with GTD, QuickSilver, Mac OS X, and productivity. Good times!

Anyway… I started to archive interesting articles linked on 43 Folders into DEVONthink. Sadly, many of those blogs are no longer around, but archive.org has them saved.

Screenshot 2023 01 11 at 11 46 54

2022.09.03.

Using Apple Reminders for GTD

The built-in tools of macOS are capable of serving a complete GTD system, making it possible to fully automate it without additional software.

These tools aren’t made for GTD per se, so we must strive to implement a simple system for ourselves. We have to focus on achieving goals using our GTD system, not perfectly organizing our stuff.

There aren’t many people who use macOS tools to their full potential. It happens probably because not many people can think in systems; they expect the tool to give them a system. macOS doesn’t provide you with systems. It is a general OS that needs to be bent to the GTD way of things.

The new features of Apple Reminders make it capable of replacing more serious task management apps. There is no better time to consider using Reminders as a free alternative to OmniFocus or Things.

I will show you how to set up Reminders for a GTD-inspired workflow in this post.


Creating two groups for our lists

We can create two types of lists in the Reminders app: traditional lists, which can be used for planning, and smart lists, which are best used for everyday work.

Traditional lists are simple containers where we can organize and store reminders. It’s similar to having a list of reminders written down on paper, but a digital reminder can do way more than its analog relative. It is essential to mention that we can indent reminders under each other on these lists, which we will use later.

Compared to this, smart lists can be updated automatically. They can sort and display reminders for us based on predefined parameters, which makes them the perfect candidate for creating context-based lists. There is no way to show a reminder with sub-tasks on a smart list. Fortunately, we don’t need to manage sub-tasks in a GTD system by default because every project should have concrete next actions. If you need a checklist for a next action, you can store that inside the reminder’s notes field.

To organize our lists appropriately, we have to create two groups that will split our lists by type.

  1. First, we have to create a “Planning” group that will organize our lists used for project-based planning.
  2. Second, we need to add another group called “Doing,” which will contain our context lists.

Using the “Planning” group

The “Planning” group represents one of the two horizons of GTD, where we see our next actions grouped by projects.

We will keep our traditional lists organized inside the “Planning” group so that each planning-related list will be in one place. It can help if you create separate lists for each of your responsibilities, like personal or work projects.

These lists will contain projects by keeping top-level reminders for every project, and then its next actions will be listed as a sub-task under the project’s reminder. By organizing content this way, we will connect projects to next actions.

Contexts will be assigned using tags, which is one of the new features of Reminders running macOS Monterey and iOS 15. If there aren’t any tags set on a reminder, we should consider it as a future next action, which we can’t do anything about immediately, but we want to avoid forgetting it. Keeping project plans in Reminders is fine for smaller projects, but for more significant projects/goals, we should keep our notes, possible next actions, plans, assets, and ideas in a separate app.

If we assign dates for these reminders, they will show up on the Today list on the day we set; also, we can keep track of upcoming reminders on the Scheduled list as their date is approaching, basically using this feature as a digital Tickler File.


Connecting next actions to projects

Lists inside the “Planning” and “Doing” groups are used to sort our next actions by project and context. I should mention some caveats though related to this list organization method.

  1. First, our events/appointments/meetings are still kept separately on our calendar, so we have to review them individually.
  2. Second, there is no logical difference between a project-related reminder and a next action-related reminder inside Reminders. If you are coming from a dedicated task management app like OmniFocus or Things, it can feel weird at first when we use the same type of reminder for projects and next actions as well.
  3. Third, relating next actions and projects can be challenging, resulting in more time spent on system administration than necessary (I write about this in more detail below).

Now, it’s time to talk about the nuances of the connection between projects and next actions. In the original GTD implementation, there is no connection between them; everything is on separate lists; we are the ones who logically connect these once a week during the Weekly Review.

Nowadays, task management apps are training us to see tasks listed directly under their project. But what about other types of next actions that we keep in other apps, like our calendar? We can only assign next actions to projects that we hold in our task management app; these apps don’t keep track of our calendar events. During Weekly Reviews, we can be under the impression that all we have to think about related to a project are the tasks listed under it, forgetting about other places like our calendar. We have to connect those to their corresponding projects manually in our head. It would be a better workflow to let the software handle these connections automatically; sadly, no such software exists yet, so we have to find the logical connection between things, so our minds can see the whole picture.

Connecting next actions to projects can also slow down inputting information into our system. In the classic GTD implementation, all we have to do to add a new item is append it to the appropriate context list. Suppose you want to keep track of the relationship between projects and next actions. Additional information will be needed—usually in a different form field—which slows down the input process. When the only thing that we have to fill in is the task’s name, we think more about how we should name it (knowing that we won’t see the project related to it). We will phrase more precise next actions, so we can imagine the physical activity better before we start doing it, which results in less procrastination, and more work being done without much thinking.

It is good to know (from the UI point of view) that Reminders won’t display the projects on context lists because—compared to OmniFocus and Things, where the project and the context are actual properties of the to-do—in Reminders, the project is just a structural connection (the parent of a reminder).

As you can see, connecting next actions to projects inside Reminders can be cumbersome because we have to set up a tree-like structure where next steps are nested under projects using drag-and-drop. When you have an Inbox list (which we will talk about later), you have to drag the reminder to the corresponding list inside “Planning,” then click on the list again in the sidebar, find the reminder, and drag it under its project. The last step can be done using keyboard shortcuts, but it is far from being as intuitive as assigning projects to next actions in OmniFocus or Things; people accustomed to these apps can feel like this step is a chore in Reminders which results in more time spent on system administration than necessary.


The tag

As I mentioned before, there is no difference between project reminders and next action reminders, so it’s a good idea to set the tag for reminders which are representing projects. You are right to ask: why is there a need for this tag when every next action is a sub-task of a project reminder defined as a parent?

First, not every next action is related to a project. You will create a bunch of singular to-dos which doesn’t need to be assigned to a project because they can be completed alone, for example, “refill paper in the printer,” “clean the desk,” “moan the grass,” etc. Since these reminders are not represented as sub-tasks, they will show up at the same level as projects, so it’s a good idea to differentiate these singular next actions from projects.

The second thing which can make the tag useful is highlighting orphaned projects. As we complete the five steps of GTD, we will end up with projects with no remaining next actions because (if we are lucky) we’ve completed the project, or (which happens more frequently) we forgot to capture a next step about the project. There is nothing wrong with that: this is why we keep the project list around, so we can remind ourselves to define next actions for every one of our goals. If our project reminders are marked with the tag, we can find orphaned projects more quickly in a long list; we don’t have to stop and think about if the reminder represents a project or a singular next action.


The Someday/Maybe list

The goal of the Someday/Maybe list is to have a place where we can collect things that we aren’t engaged in right now. This list can contain stuff that we’re are “cooking”: can be ideas, inactivated projects, dreams, goals that need to be achieved in the future, etc. We don’t think of them as “active” right now, but any one of them could be activated, “maybe someday.” We keep the Someday/Maybe list in the “Planning” group, so we’ll have a place to save these items later.

Here’s a good idea to integrate into your habits when a project becomes inactive: remove every tag of every reminder representing the inactive project and its next actions, then move these over to the Someday/Maybe list. This way, our project list is kept clean, so we will not think about outcomes that aren’t available right now; also, next actions from inactive projects will not show up on our contexts lists inside the “Doing“ group. We know that our context lists show only to-dos, which are actionable right now.

It is crucial to review the Someday/Maybe list from time to time (ideally weekly) since it can quickly turn into a dumping ground for random ideas, which we never review. If you use the Someday/Maybe list this way, you’ll become a compulsive collector: you capture things, but you throw them into a never-reviewed self, and in the end, you’ll end up with a lot of unused stuff.

According to GTD, your mind can’t let go of something until you give that thing the proper attention. We have to review our whole system habitually because that’s how our mind can relax and be sure that it will encounter information stored in an external system regularly.

When you introduce a new habit, you have to prove that you do it regularly. The only way to integrate a new behavior into your identity is to make your brain trust that it is done habitually (trusted system). When this happens, we change our identity and turn the habit into autopilot mode; our brain will rest and let go of the burden of reminding.

As you can see, you have to agree with yourself that the Someday/Maybe list needs the same attention and maintenance as the whole system so it doesn’t turn into a place of forgotten ideas.


Using the “Doing” group

We have to be in constant motion to gain back control. Rather than starting from stillness, it’s way easier to change the direction of something that already moves. One of the fundamental aspects of being in control is taking the appropriate next action at the right moment, which could propel you to the final goal.

You achieve change with a bunch of small steps, done consistently. It is similar when comparing the directions of two vectors starting from the same point. Over time, the endpoint of two vectors can get far from each other, even when you have a couple of degrees difference in their directions at the starting point.

Using next actions, we can slice and dice otherwise hard-to-do processes into smaller pieces, so over time, our life will be in a state where we can declare a project done. Because a next action is atomic, it has to formulate an actual physical activity.

If the meaning of an activity (tracked in an external system) is not apparent, then the brain has the burden of thinking about it again, which uses up a lot of unnecessary brainpower to figure out stuff you already figured out. You should be able to imagine any next action physically without thinking about it too much. You are more likely to complete a physical activity if you can imagine it in your head, which reduces the chance of procrastination.

When you start to do real work, next actions have to be obvious, so you can quickly scan through a list of tasks on a context list. The best thing to do is find similar steps, then do those in batches to avoid multitasking with many unrelated activities.

It’s easy to slice your work into different situations, like when you are at the office and want to accomplish something quickly or have a phone and 10 minutes to do one or two short calls. These situations are called contexts which we represent with tags in Reminders.

We mainly use smart lists inside the “Doing” group to filter reminders that have at least one context tag assigned (I also like to keep other lists inside the “Doing” group, like my Groceries list, which I share with my wife); we set tags up for every next action when we add them inside the “Planning” group. You can organize next actions via drag-and-drop as well: when you drag a reminder onto a smart list, Reminders will apply every tag from the smart list’s filter.

The goal of keeping context lists is to remember if you have a list for different situations. If you do, you can open it and review your possible next actions. You do this multiple times a day; every time, you have to ask yourself: what’s the next thing to do?


Reviewing the system

Using the “Doing” and “Planning” groups, you can sort your content by projects or contexts. This way, you can immediately review your system in any situation based on the nature of the work.

The “two horizons” based sorting is usually available in serious task management apps like OmniFocus, but with the system described here, you can have a similar setup with Reminders.

We discussed the importance of reviewing context lists in the previous section: we sort our next actions by context because we should see only tasks that we can pick in the current situation (considering the limits of the context). The classic example of situational limitations is when you sit on a plane, and you see “moan the lawn” on your “Home” list… well, you can’t do that since you’re on a plane.

Usually, there are two types of next actions on our context lists:

  1. Activity-based next actions, which can be done within the limits of the context. A descriptive next step can help you imagine how the activity will look when you do it.
  2. Verb-based next actions, where we are doing something about or something with the item that the reminder directly mentions. Usually, you can do these activities in one sitting, like utilities to pay, articles to read, receipts to organize, etc.

If we look at contexts, we can see natural and artificial contexts.

  • When you’re in a natural context, you automatically reach for the list at the right moment.
  • For artificial context, you need an external reminder to check the proper list (such a reminder can be your calendar, where you can create an event to check the context list; this way, you can block out a couple of hours to do just one type of work).

We use project-based sorting in planning mode to answer higher-level questions. Projects are adding directions to otherwise seemingly dumb processes. You can’t keep a process under control without a concrete project—a project is like a stake in the ground. During planning, you can get a project under control using the following process in your head (or for complex projects, using external tools such as mind maps and outlines):

  1. A brief description will automatically make you imagine a successful outcome for the project: try to phrase it in one sentence.
  2. By creating next actions, you slice the project into smaller, achievable pieces. If you do these next actions, your project will become a reality after a while.

Project planning can give you a direction, but it doesn’t mean you will accomplish your goal the way you planned.


Linking external assets

There are project-related assets like project plans, emails, and references which you may want to access quickly. Reminders is one of those Apple apps (next to Notes) which integrates with the “User Activity” system.

If an app supports Handoff, its content is probably linkable from Reminders. You can create such links in two ways:

  • You can open Siri and tell her to “Remind me about this.”
  • You can select any text in the source app, control-click on it, and share it with Reminders using its share extension. Some apps can share their content directly with Reminders.

Above that, we can link to content using URL schemes and deep links.

  • If we paste a link into a reminder’s notes field, it will turn into a clickable link.
  • Also, every reminder has a dedicated URL field that can contain web and application links. If you paste a link here, Reminders will show a small thumbnail under the reminder. You have to click on the link, and the resource will be loaded.

You are right to ask, what’s the point of connecting reminders with related assets? If you think about it, the asset is the noun, and the reminder is the verb which clears up what we should do about or with the noun. As you can see, the two go hand-in-hand, making our life easier by giving us a shortcut from the verb to the noun.

Writing down our thoughts on paper is the best way to untangle and give order to them. Paper has a tactile feel, and its freeform nature makes it a natural tool for this task. Digital tools are better at making information searchable; they can also store the results of our thinking, so we can naturally use them in conjunction with paper.

Knowledge is distributed between our mind and external tools supporting it. These tools can rely on our brain’s recognition capabilities to remind us of things; you can harvest this unique relationship between tools when you have to recollect a context, a project, an action, or any other project support material.

Supporting our minds with external tools gives us a shared system between the two, where the sum of the two results in knowledge. This way, you can use the best tool for the job: your mind to figure things out and external tools to store that knowledge.

As you can see, managing the connection between reminders and related support material can shorten the time between a thought and an accomplishment.


Setting up and using an optional Inbox list

We can’t let go of something until we pay attention to it. We need to have directed awareness, so we must write down potentially meaningful stuff floating around in our minds. GTD can help you with that, but you need to be mindful. Our brain constantly thinks about unclear stuff to indicate open loops: you must pay attention to that.

You have to collect (write down) ideas, have to’s, should to’s, anything that is potentially meaningful to you, then review and decide about what each item means, what you’re going to do about it (if anything), and finally pick where is the result of your thinking is going to be stored.

When everything is in its place, your brain can let go of this mess, relax and accept the current reality.

Almost every task management app includes a section for unprocessed items (called the Inbox), which makes the collection and processing GTD step easier; you can store things in your Inbox which are still uncleared. You can adapt something like this in Reminders, too, by creating a new list called Inbox. You can set this as the default list, so you can instantly start collecting things you haven’t decided about yet.

Using the Handoff integration mentioned in the previous section, you can add new items system-wide to Reminders similarly to other GTD apps. New reminders added via Siri and the Share Sheet will automatically appear on the Inbox list.

You can also use the Inbox list as a form of a temporary notepad to plan a project and its next actions. On this list, you can unpack a whole project with all related next steps, which can be dragged to their final places at the end.


Simple GTD

The workflow I introduced to you above is just one way to integrate GTD with the free Reminders app built into Apple’s platforms.

The point of GTD is to make sure that what you do at the moment is the right choice from your options, so your brain can focus on the current moment and stop worrying about the past and the future. We have to trust our system and use its list habitually.

When we’re reviewing our lists, we will trust that by storing the results of thinking in an external system, we will pick the right thing to do in the proper context—having a system that works like well-oiled machine guarantees that we will reach the goals that we picked for ourselves.

2022.07.04.

Answering follow-up questions about the Process perspective

I linked yesterday’s post on the Process perspectives in a bunch of places and generated a bit more negative feedback than I expected. I was confused because I still think this is a cool trick to have in your toolbox. As “cornchip” said it on the MPU forums:

This is a nice tactic to add to the swiss army knife of tools needed to break up a stagnant list.

I see great questions emerging in the discussion around this trick, which I wanted to answer here to provide a bit more logic.

Should I replace this with the GTD Clarify and Organize step?

Don’t use a remixed version until you are confident that all the habits around GTD are wired into your brain. Afterward, you can use this perspective to enhance your existing inbox emptying habit progressively.

Do I have to tag everything that goes into OmniFocus?

No, but you can. There is a setting in OmniFocus called “Clean up inbox items which have” which controls when OmniFocus should remove items from your inbox on clean-up. Mine is set to projects; otherwise, the Process perspective won’t show actions grouped by project.

Kourosh mentioned that this could lead to untagged/unprocessed items leaking into the system from the inbox, which is technically accurate, but don’t forget if you use this trick:

  • a: the Process perspective always shows unprocessed items which you can clean up,
  • b: if you do Weekly Reviews properly, you should trust your system, but more importantly, you’ll review everything again and catch these items.

Do you still use the OmniFocus Inbox?

Yes. As I mentioned, this perspective is great for breaking down a long list of unknown stuff, but sometimes I straight use the Inbox because it’s easier.

Isn’t it an unnecessary step?

It depends. I wouldn’t call it “productivity p0rn” because it genuinely helps to clarify the unknown.

Imagine you have to clean up a messy kitchen. First, you start to pre-organize: collect the dishes, throw away junk into a trash bag, etc. Then, you wash the dishes, clean the kitchen table’s surface, and get the trash out; sooner than later, you end up with a clean kitchen.

We do the same thing here: we’re pre-organizing a long list of stuff, so we can make sense of how much cleaning we have to do, then we clean each item in context with their related entities. This way, we keep our attention a bit more focused and keep support material easily reachable (especially if you link associated things in the notes field of your projects).

The point is to reduce the unknown and add structure to the inbox processing habit. You don’t need to do this all the time, but after, let’s say, 20 unprocessed items, this can be a beneficial step.

Don’t you keep too much stuff in your OmniFocus Inbox?

As David Allen says, I keep everything in the inbox which is “potentially meaningful” to me. Maybe, in the end, I only save 10% and throw away 90%, but the point of using an inbox (and GTD, for the matter) is to empty our head, and keep it that way.

There is an excellent video about this topic from the Next Action Associates called “What’s The Difference Between An Input And An Inbox?“.

Why do you need access to projects when you process your inbox?

It’s simple. Because I have support materials linked to projects in their notes field. I need to access them via links (and Hook) to store future actions, notes, etc. Having a list of items grouped by projects lets me easily select the project in the list, invoke Hook, or click on the links in the notes.


I hope this post answers your questions about the Process perspective and makes you reconsider adding it to your OmniFocus toolbox.