Procrastination

What People Think It Means

You're putting off what you should do, probably because you're lazy or don't care enough or have bad priorities. Procrastinators are self-sabotaging flakes who just need to stop making excuses and start working. It's a character flaw, a choice, a moral deficiency.

This framing is pure punishment with zero diagnostic value. It locates the problem in your character, which can't be debugged, instead of in your system architecture, which can.

What It Actually Is

Procrastination is what happens when work_launch_script fails to load and default_script runs instead. That's the whole thing.

You're not choosing to procrastinate – your state machine is executing exactly as programmed.

Why work_launch_script Fails to Load

  1. The task has ambiguous success criteria – What does "work on project" actually mean? What's the concrete next action?
  2. No trigger condition exists – "I should work" isn't a trigger, it's a vague intention that has no execution pathway
  3. The work environment contains high-salience competing stimuli – Phone is visible, YouTube tab is open, bed is right there. See Salience: distinguishable stimuli win attention auctions. Vague "work on project" (no edges) loses to concrete "phone right there" (distinguishable).
  4. The task is genuinely aversive – Your brain is running an avoidance subroutine (which might be informational – maybe the task actually is wrong)
  5. You don't have enough activation energy to breach the threshold – Morning work launch costs 4-6 Willpower units, you woke up with 3

What Runs Instead

When work_launch_script == null, what runs? default_script.

For most people this is:

  • lounge_script (phone, YouTube, lying around)
  • distraction_script (compulsive task-switching, email checking, "research" that goes nowhere)

These scripts run automatically because they have near-zero activation cost and immediate dopamine hits.

This is why "just start" doesn't work as advice. You haven't actually described how to load work_launch_script. You've just repeated the instruction to execute a program that isn't loaded into memory.

How to Build It

Debug the launch failure.

1. Make the Task Concrete

Not "work on idyllic" but "write 300 words of documentation for the skills API."

Specificity eliminates ambiguity, which lowers cognitive load at the decision point.

2. Install a Trigger Condition

This can be:

  • Time-based: "At 9am I work"
  • Location-based: "When I enter the library I work"
  • Ritual-based: "After 10-minute braindump I work"

The trigger needs to be unambiguous and automatic – when condition X occurs, work_launch_script runs.

3. Remove Competing Stimuli During Launch Window

  • Phone goes in drawer
  • Browser tabs close except the 3 you need
  • You're in a room with just your work setup

You're not resisting distractions, you're making them inaccessible so resistance is unnecessary.

4. Build a Bridge Script

Cold start launches are expensive. You need a sequence that transitions default_state → work_state without requiring a massive willpower spike.

Example bridge script:

  1. Morning mantra (15 min)
  2. 10 min braindump of what I'm working on
  3. Pre-work checklist (phone off, timer set, OBS streaming)
  4. Work happens automatically after that

The key: Once the bridge script completes, you're in work_state and continuing is cheaper than stopping. The activation energy spike is just crossing the threshold. After that, inertia carries you.

The Bottom Line

If you're "procrastinating," you don't need motivation or discipline. You need a debugged launch sequence.

Key Principle

Triggers over intentions – Install unambiguous execution conditions rather than relying on "I should work" motivation.