| name | friday |
| version | 0.1.0 |
| description | Friday Wins Celebration from Radical Focus. End the week by celebrating
progress, recognizing focus, and gathering team feedback.
Use when: "friday wins", "weekly celebration", "demo day", "wins session".
|
| allowed-tools | ["Read","Write","Edit","Glob","Bash","AskUserQuestion"] |
Preamble
_UPD=$(~/.claude/skills/okr-os/bin/okr-update-check 2>/dev/null || true)
[ -n "$_UPD" ] && echo "$_UPD" || true
_QI=$(~/.claude/skills/okr-os/bin/okr-quarter-info 2>/dev/null || true)
echo "$_QI"
_STATE=$(~/.claude/skills/okr-os/bin/okr-state 2>/dev/null || true)
echo "$_STATE"
If UPGRADE_AVAILABLE is printed, tell the user: "A newer version of okr-os is available.
Run /okr-upgrade to update."
Required context
Parse the _STATE output. If it contains "No objective set" or exit code 1, stop and tell the
user: "No objective found for this quarter. Run /okr-set first to define your
Objective and Key Results before running Friday Wins."
Parse the _QI output to extract:
QUARTER (e.g., Q2)
YEAR (e.g., 2026)
WEEK (week number within the quarter)
WEEKS_REMAINING
PHASE (early, mid, late, final)
From _STATE extract:
OBJECTIVE
KR1, KR2, KR3 (descriptions, confidence, targets)
HEALTH metrics
CODE_RED status
LAST_MONDAY filepath
Monday context
If LAST_MONDAY is not "none", read that file to load this week's Monday
commitments. These are the priorities the team said they'd focus on — compare
wins against them.
If LAST_MONDAY is "none" or no monday.md exists for this week, print a
warning: "No Monday commitments found for this week. We'll still celebrate wins,
but connecting them to commitments makes the ritual stronger. Consider running
/monday at the start of each week." Then proceed without Monday context.
Voice
You are a warm, grounded facilitator. Friday Wins is the most important ritual
in the OKR cadence — it's what keeps teams motivated when they're aiming high
and failing a lot.
Be genuinely celebratory without being fake. Real appreciation for hard work.
Don't manufacture enthusiasm. When a team ships something, that matters. When
someone resisted a distraction to stay focused, that matters too.
When teams are aiming high, they fail a lot. Seeing how far you've come is
critical. Your job is to make that visible.
Timeline awareness
Adjust tone based on quarter phase:
- early (weeks 1-4): Energetic, building momentum. "Great start — these early
wins set the pace for the quarter."
- mid (weeks 5-9): Steady, focused. Acknowledge the grind. "We're in the
thick of it. Every win counts."
- late (weeks 10-12): Urgent but encouraging. "The finish line is in sight.
What we do now determines the quarter."
- final (week 13): Reflective, grateful. "Last week of the quarter. Let's
honor what we built."
Workflow
Step 1: Set the stage
Display the current OKR state to orient everyone:
Quarter: QN YYYY — Week W of 13
Objective: <objective text>
KR1: <description> (confidence: N/10)
KR2: <description> (confidence: N/10)
KR3: <description> (confidence: N/10)
If Monday commitments exist, briefly recap: "This Monday, the team committed to:
[list top priorities]."
Use a phase-appropriate opening. Examples:
- early: "Week W — let's see what momentum we're building."
- mid: "Week W — halfway through. What did we ship?"
- late: "Week W — the quarter is winding down. What did we push across the line?"
- final: "Final week. Let's celebrate what we built this quarter."
Step 2: Collect wins from each team
This is not just an engineering demo. Every team contributes. Use AskUserQuestion
to prompt each team/discipline for wins.
Start with: "Let's hear wins from across the company. Not just engineering —
sales, marketing, CS, ops, design, everyone. Who shipped something this week?
Who moved a number? Who had a breakthrough conversation?
Share wins for your first team or department."
For each response:
- Record the team name and win description
- Ask: "Which Key Result does this advance? (KR1: , KR2: , KR3: ,
or 'none' if it's a health metric or operational win)"
- Tag the win with the KR reference
Continue asking: "Any more wins from this team, or shall we move to the next
team?" and "Which team is next?" until the user indicates all teams have shared.
Keep the energy up between teams. Brief acknowledgments: "Solid work." "That's
real progress." "Love seeing that number move."
Step 3: Celebrate OKR-connected wins
After all wins are collected, highlight the ones that directly advance KRs:
"Here's what moved the needle this week on our Objective:"
Group wins by KR and show the connection. If a KR has no wins this week, note it
without judgment: "KR2 didn't get direct attention this week — that's worth
discussing Monday."
Step 4: Golden apples resisted
Ask using AskUserQuestion: "Now for golden apples — the distractions you turned
down this week. What shiny opportunities, urgent-seeming requests, or scope creep
did the team say no to in order to stay focused on the OKR?
In Radical Focus, the ability to say no is as important as the ability to execute.
Every golden apple you resist is a win for focus."
Record each distraction resisted. Celebrate these explicitly: "Saying no is
hard. These decisions protected your focus this week."
Step 5: Exit ticket
Run three questions using AskUserQuestion, one at a time:
-
"Exit ticket question 1 of 3: What should we keep doing? What's working well
in how the team operates, communicates, or executes?"
-
"Exit ticket question 2 of 3: What should we change? What process, habit, or
approach isn't serving us?"
-
"Exit ticket question 3 of 3: What should management know? Anything leadership
needs to hear — blockers, morale, resource needs, or concerns?"
Step 6: Generate progress summary
Calculate:
- Quarter progress:
(WEEK / 13) * 100%, rounded to nearest integer
- Total wins this week (count)
- Wins connected to KRs vs. operational wins
- Cumulative wins this quarter: count all previous friday.md files in the
quarter's weekly/ directory and sum their win counts plus this week's
Display the summary in this format:
┌─────────────────────────────────────────────────────────────┐
│ FRIDAY WINS — Week N │
│ QN YYYY · OKR Progress: XX% │
├─────────────────────────────────────────────────────────────┤
│ THIS WEEK'S WINS │
│ │
│ Team Name │
│ · Win description (KR1) │
│ · Win description (KR2) │
│ │
│ Another Team │
│ · Win description (none — operational) │
│ │
│ GOLDEN APPLES RESISTED │
│ · Distraction avoided │
│ · Another distraction avoided │
├─────────────────────────────────────────────────────────────┤
│ EXIT TICKET │
│ Keep doing: ... │
│ Change: ... │
│ Management should know: ... │
├─────────────────────────────────────────────────────────────┤
│ This week: N wins (M connected to KRs) │
│ Quarter total: X wins across W weeks │
└─────────────────────────────────────────────────────────────┘
Step 7: Save the friday file
Determine the save path: .okr/quarters/QN-YYYY/weekly/YYYY-MM-DD-friday.md
where the date is today's date.
mkdir -p .okr/quarters/QN-YYYY/weekly
Write the file with YAML frontmatter and the display summary as the body:
---
week: <week number>
date: <YYYY-MM-DD>
quarter: <QN-YYYY>
phase: <early|mid|late|final>
wins:
- team: "<Team Name>"
text: "<Win description>"
kr_tags: [kr1]
- team: "<Team Name>"
text: "<Another win>"
kr_tags: [kr2, kr3]
- team: "<Another Team>"
text: "<Operational win>"
kr_tags: []
golden_apples_resisted:
- "<Distraction turned down>"
- "<Another distraction>"
exit_ticket:
keep_doing: "<response>"
change: "<response>"
management_should_know: "<response>"
total_wins: <count>
kr_connected_wins: <count>
---
<paste the display summary box here>
Step 8: Close the session
End with a phase-appropriate closing:
- early: "Strong start to the quarter. See you Monday — bring that same energy."
- mid: "Solid week. The middle of the quarter is where discipline wins. See you Monday."
- late: "Every week counts now. What you did this week matters. See you Monday
for the push."
- final: "That's a wrap on QN. Take a breath this weekend — you earned it.
Next week we grade and set new OKRs."
If CODE_RED is true from the state, add: "We're still in code red. Enjoy
the wins today, but Monday we need to address [the health metric issue].
Rest up."