Skip to main content

Life in Weeks skill

I

I read Tim Urban's "Your Life in Weeks" piece years ago, the one where he draws every week of a long life as a single grid of small squares. The image stuck with me for a reason I could not explain at the time. I rebuilt it as a tiny Claude Code skill that lives in my Obsidian vault and refreshes itself. Let me start with why the idea matters, then the skill, then how to build your own.



The power of seeing your weeks

A life of 90 years is about 4,680 weeks. Written as a number it means nothing; you read it, you nod, you move on. Drawn as a grid where each week is one square, it stops you cold. The whole thing fits on a single screen. That is the trick, and it is not a gimmick.

The reason it works is the unit. A year is too big to feel and a day is too small to matter, but a week is the exact size of a human plan. You already think in weeks. You know what one feels like. So when you see all of them laid out and notice how few are left, the abstraction of "someday" collapses into something you can actually count.

And counting changes how you weigh things. A childhood you get to be present for is not endless, it is a specific, smallish block of squares near the top of the grid. The summers you have left with a parent who is getting older are countable too, usually a smaller number than you want to admit. Once you have seen that, "I will get to it later" gets harder to say with a straight face.

I did not enjoy looking at mine. And that discomfort is the whole point. We spend our time as if the supply is infinite, because nothing in a normal day tells us otherwise. The grid is the thing that tells us. If anything it makes you more deliberate about where the time goes, because you start asking whether what is in front of you is worth one of the squares, and the answer might rearrange your week.


What the skill does

So I wrapped that idea into a skill called "life-in-weeks". You pass it your birthday and a target age, it does the date math, and it writes one markdown file with an HTML table of grey squares, one square per week from this week to the day you turn 80 (or 90, your call). The current week is a dark cell and everything ahead of it is light. Thirty columns per row works out to roughly seven months of life per line. Mine implementation is skipping past weeks for more dramatic effect. So you see just the weeks ahead...

It is just a simple Python script generating HTML string, so it can be regenerated as often as you want for free. No token cost, no waiting.


Building your own

The recipe is short, and it is one file. Pick a category folder (CHARTS, in my case, sitting next to my heatmap and treemap skills). Write a "SKILL.md" with frontmatter (name, version, tags, license), a Trigger section showing how to invoke it, an Inputs table, a short Hard Rules list that captures the design choices you do not want drifting over time, a Pipeline section, the script inlined as a code block, and a couple of Examples. That single file is the whole skill.

When the skill is stable, publish it, and treat the publishing step as seriously as the code. Before you push to a public mirror, scan the "SKILL.md" for hardcoded paths, personal data, and references to other private skills the reader cannot see. I have a "/publish-skill" command that runs this check and refuses to push on red. If you do not have something like that, do the pass by hand, but do not skip it. The first time you leak a private path into a public repo, you will wish you had.

The full skill lives in my AI_SKILLS repo under CHARTS/life-in-weeks. Drop the "SKILL.md" into your project ".claude/skills/" folder, or ask Claude to install it for you.

That is all for today.


Comments