hosette.
← Back to projects

2025 · productivity · saas · sprint planning

SPF, Sprint Protection Factor

A sprint tool that treats the product manager's mind as the client, not a to-do list

Role
Product manager, designer, builder
Stack
ReactTypeScriptTailwindSupabaseLovable AI
Live
spf.hosette.net ↗
SPF: A sprint tool that treats the product manager's mind as the client, not a to-do list
Status
live
Tier
free
Demo
open
Hard part
hold two horizons

why

The first thing I do every Monday is open Jira and try to think about next sprint while the current one is still mid-flight. Jira shows me one board. Linear shows me one board. Every sprint tool I’ve used flattens both horizons into a single column, and the column always loses to whichever sprint is shouting louder — the active one, every time. The work that gets dropped is the work that hadn’t shouted yet.

SPF is built around the gap between this sprint and next sprint, which is where the dropped work lives. Jira’s burndown and Linear’s velocity dashboard are very good at telling someone else how the team is doing. This one is built for the product manager’s own week. Live at spf.hosette.net: the demo loads in a populated workspace with no signup.

what I built

Horizons
2
Modes
2
Demo
live
Auth
none
Tier
free

A two-sprint dashboard you can’t collapse into a single view, because the discipline is the layout. The whole tool loads with a live demo workspace that re-seeds nightly. Front door, not a feature.

Dashboard
Active sprint left, planning sprint right. The two horizons sit side by side because that's where the work that gets dropped tends to live.
Focus Mode
Single-task triage: one card, no list, no peripheral vision. Standalone version runs without auth, free for anyone.
Quick Catch
Slash-key shortcut from anywhere on the page, into the right sprint by default. Capture without context-switching.
Ceremony Gen
Planning agenda, retro doc, weekly status, all written from the sprint state. The recurring meetings stop being a recurring tax.
Recurring Tasks
Standing work that doesn't need re-creation each cycle. Set once, surfaces in the right sprint automatically.
Weekly Summary
AI stitches the closed-out work into a 1:1-ready paragraph for your manager.
SPF two-sprint dashboard with active and planning columns
Active sprint left, planning sprint right. The discipline is the layout.

the two-horizon problem

The two-sprint frame isn’t a UI choice — it’s the visible shape of a real problem: people weight near-term outcomes more heavily than distant ones, which is why current sprint gets foregrounded and next sprint gets quietly deferred even when you know better. A single-board sprint tool flatters that bias. SPF’s two-column layout fights it by giving both horizons the same physical real estate.

The agile literature has a name for this: sprint planning vs. backlog refinement, separate activities meant to do separate cognitive work. Most teams collapse them, and refinement is always the meeting that keeps getting cancelled — which is the next sprint’s loss. You can’t promote yourself to a separate role that forces the split, and you can’t make your team protect a meeting they keep skipping. You can put two sprints side by side and refuse to let the layout collapse them.

decisions I’d defend

Cut the kanban. Most sprint tools default to a status-column board with drag-and-drop. SPF defaults to a list with one focused task and the next sprint visible at a glance. Product managers don’t drag; they decide what’s next, then defend the decision. The board flatters status updates. The list flatters decisions.

Memory before features. Before adding a third or fourth surface, I built a mem:// decision log. Every rejected idea, every guardrail, every “we already discussed this” lives in one file the AI tooling consults on every change — same pattern in Omunikorudo’s style memory and Celine AI’s statute layer. Rejected features stay rejected.

Demo over signup wall. Most SaaS tools ask for an email before showing you anything that proves they work. SPF flips it: the front door is a live, populated workspace that reseeds nightly. Same shape as Omunikorudo loading without a “Start Audio” button and Inventor Strudel saving by URL with no login. Conversion happens after the user feels the product working.

SPF landing page loads directly into a populated workspace
The front door is the workspace. No marketing pitch, no signup wall.

the receipts

The actual mem://decision-log file isn’t published; the portable shape lives at /decisions-starter.md. Three real cuts the template ships with:

YYYY-MM-DD Pomodoro mode as a separate feature. Cut; the single-task focus shape did the work without a timer.

YYYY-MM-DD Per-task estimator. Cut. Estimates are a category error for this product.

YYYY-MM-DD Third sprint column. Cut. Two columns is the discipline; a third would let me defer indefinitely.

The pomodoro line is what eventually became Focus Mode: the cut wasn’t of the idea but of the feature shape. The third-sprint cut is the rule the two-horizon argument is built on. The estimator cut taught me category error is a useful thing to write down about a product.

what I learned

AI collapses spec into prototype, so the bottleneck moves to taste. With Lovable, the gap between “I want a Quick Catch shortcut” and “it works” is minutes. The slow part isn’t building — it’s deciding which of the next ten features should not be built. Most of my time on SPF goes to cuts.

Institutional memory is a tooling problem, not a discipline problem. Senior PMs don’t simply remember more decisions. They write them down somewhere that gets re-read every time, instead of trusting recall.

Solo shipping forces ruthless scope cuts. No team, no committee, no compromise version. If a feature can’t justify itself to a tired PM at 11pm, it doesn’t ship. The third sprint column and the per-task estimator both died there. The pomodoro idea survived — as Focus Mode.

Optimizing for the practitioner inverts almost every default. Sprint tools are written to surface progress upward. Build for the PM’s own week and you get fewer columns, no aggregate metrics, and a focus mode that hides the rest of the team. Feels wrong against Linear. Feels right to the person actually running the sprint.

SPF focus mode showing one task at a time with no peripheral vision
Focus mode: one card, no peripheral vision. The list flatters decisions.

try it yourself

The portable shape is at /decisions-starter.md: same pattern as the receipts above. Drop it at the root of your repo, rename to decisions.md (or paste into your CLAUDE.md), and add the agent prompt at the bottom to your tool’s system instructions. Sections cover rejected ideas, design rules, naming conventions, scope guardrails. Reversals are noted in place rather than deleted, so the file ages legibly. The file does nothing without the agent prompt that says read this on every change, treat entries as binding — ship them together. The reason it eats style guides is that it’s consulted at the moment of decision, not pulled out at sprint planning.

what’s next

Three integration arcs:

  • Google Calendar so ceremonies actually land on the schedule
  • An agent inbox for coding tools
  • Persona-aware Jira/Linear/Shortcut connectors moving from “recommend” to “import”

A paid tier is on the table once the integration story is real. The demo stays free either way. Then there’s generalizing the two-sprint frame beyond product managers: designers and founders both run on the same horizon problem. Live at spf.hosette.net: no signup, no email gate.

See also

All projects

Working on something similar?

I take a small handful of consulting briefs a year and am always up for trading notes with anyone shipping in this space — send a note.

Or: values behind the work · obsessions that shape it · other projects.