The 12 Week Year is a planning system that compresses annual goals into 90-day cycles. The math is simple. You get four “years” per calendar year instead of one. Every week feels load-bearing because the deadline is six weeks away instead of nine months away. The framework caps you at 2-3 Rocks (cycle goals), demands you score on lead measures (behavior) instead of lag measures (outcomes), and asks for one ritual: a 15-minute Sunday meeting where you score last week and plan next week. The book calls it a Weekly Accountability Meeting, or WAM.
The WAM is the system. Everything else is paperwork.
The framework’s biggest failure mode, named explicitly in Brian Moran’s book, is “skipping the Sunday WAM.” Without the review, the plan becomes wallpaper. You start strong, miss a Sunday, the cycle quietly turns into a list of intentions, and at Week 13 you realize you ran a $0 cycle on a $0 plan.
The intended fix is a peer. Someone who shows up at the same time every Sunday, asks the same four questions, and doesn’t accept “it was a busy week” as a score.
Most people don’t have that peer. I don’t either. So I gave the seat to Claude.
Four slash commands
I built the system as four user-invocable skills in Claude Code, each handling one phase of the cycle:
~/.claude/skills/
pa90/ - main entry, status dashboard, vision interview
pa90rocks/ - Week 1 + Week 13 ceremony, set the 2-3 Rocks
pa90week/ - Sunday WAM, score last week + plan next week
pa90day/ - morning push + evening score (light touch)
Each is a SKILL.md file with explicit steps. They share a vault folder at ~/Documents/Brett Omarchy/Projects/12 Week Year/ (Vision, Rocks, Tactics, Scorecard) and a Todoist label (12wy-rock-1, -2, -3) that ties weekly tactic instances back to their parent Rock.
The vault is the plan. Todoist is the executor. Claude is the peer.

The Vision interview is the part that matters
You can find a 12 Week Year worksheet on any productivity blog. They all skip the hardest part: getting an honest answer to “what does your life look like in 3 years?”
The framework calls for two vision horizons. A 3-year aspirational vision and a 1-year concrete milestone. Most people will write three bullet points of MBA-flavored fog (“grow the business, get healthier, spend more time with family”) and call it done.
The /pa90 setup wizard runs the interview interactively. It does not batch the questions and it does not accept vague answers on the first pass. The literal instruction in the skill file:
3. Walk the Vision interview interactively (do NOT batch — ask, wait, refine):
- 3-Year Aspirational Vision — life/business/identity 3 years from today.
Specific. Push back on vague answers. Probe: "What does a typical
workday look like? Where do you live? Who's around you? What are
you paid? What identity are you living into?"
- 1-Year Vision — concrete milestone toward the 3-year. Measurable.
The phrase “push back on vague answers” is the whole game. The AI’s job in this seat isn’t to be encouraging. It’s to refuse to write Vision.md until the answer is specific enough that future-me can use it as a filter.
I ran the wizard yesterday. It took 45 minutes. I rewrote my 3-year answer three times before it stopped probing. The version that finally went into the file has a specific city, a specific income number, a specific company role, and a specific identity filter for the current cycle. The bullet-point fog answer I would have written on a worksheet is not in there.
The Rocks ceiling is the framework’s hill to die on
Then /pa90rocks runs the Rock-setting ceremony. There are three rules and the first one is non-negotiable:
Hard cap: 3 Rocks. Push back if Brett tries to set more.
"Pick which 3 matter most. The rest can wait 12 weeks."
Productivity systems fall apart at the goal-count step. Everyone wants 5-7 goals because cutting feels like loss. The 12 Week Year framework is explicit that the system breaks past three, and the skill is explicit that the assistant’s job is to enforce the cap, not negotiate around it.
For each Rock you define a lag measure (the outcome — “1 paying customer,” “$5K MRR,” “first hire onboarded”) and 3-6 tactics (the weekly behaviors that drive it — “send 5 outbound emails,” “publish 1 case study,” “do 2 customer interviews”). Tactics have counts. “Grow revenue” is not a tactic. “Send 5 pitches/week” is a tactic.
Those tactic instances get written into Todoist with the appropriate 12wy-rock-N label so the executor (Todoist) knows which Rock each weekly task is feeding.
The Sunday dashboard
/pa90 (no arguments) prints the current state of the cycle as a dashboard:
12 Week Year — Cycle started 2026-05-11 · Week 1 of 12 (83 days left)
Vision (1-year):
{one-line summary from Vision.md}
Rocks:
1. {Rock 1} — on track
2. {Rock 2} — on track
3. {Rock 3} — on track
Last week execution: NN% (target 85%)
{Tactic A}: X/Y
{Tactic B}: X/Y
Next ritual:
- /pa90day (today's check-in)
- /pa90week (Sunday review — week ends YYYY-MM-DD)
That dashboard is the answer to the cold-start question “where am I on goals?” — which used to mean opening four documents and squinting. Now it’s one slash command.

Lead measures > lag measures
The most useful idea in the whole framework is this one: score yourself on behavior done, not outcomes achieved.
You cannot control whether a client signs next week. You can control whether you sent five sharp pitches. Score the pitch count, not the signature. The framework promises that consistent lead-measure execution will eventually produce the lag measures — but the daily fuel is execution %, not deal close.
This is the part the AI peer is best at, because it doesn’t have feelings about the lag measure. It doesn’t get discouraged when a Rock didn’t move because nobody signed. It just asks: did you hit your tactic counts? Score that. Plan next week. Move on.
A human peer with their own incentives will sometimes commiserate when the outcome doesn’t land. A slash command will not. It will run the protocol.
That’s the entire point.
The takeaway
If you have a planning system that depends on a ritual, and the ritual depends on a peer, and you don’t have a peer — you don’t have a planning system. You have a worksheet.
The interesting move isn’t building elaborate AI workflows. It’s identifying the one human role your system needs and asking whether an LLM can sit in that seat well enough. For the WAM seat the answer is yes, because the role is structural, not emotional. The peer’s job is to run a 15-minute protocol on Sunday and refuse to let you off when you handwave the answer.
That’s a slash command’s job description. It always shows up on Sunday. It never forgets the protocol. It pushes back on vague answers because it’s been told to.
Week 1 is done. Twelve to go.