Frank — illustrated logo

Frank's Fed

Docs · About the GSD framework

About the GSD framework

GSD (“Get Shit Done”) is the planning + execution framework Frank’s Fed is built with. This page explains, in plain terms, what you’re looking at on the rest of this site — and where you can dig in if you want the depth.

If you want the source: github.com/gsd-build/get-shit-done

The one-line version

Every change to Frank’s Fed goes through the same four-step loop: discuss → plan → execute → verify. Each step produces a small, named markdown artefact. Those artefacts are what the Build Status page on this site is summarising. Nothing is in someone’s head; nothing is on a sticky note.

Why this exists

Solo-founder builds drift. Notes get scattered across Notion / Linear / Slack / DMs / scratch files. By the time something ships, nobody remembers exactly why a decision was made or what was tested. GSD imposes one rule: if it matters, it lives in .planning/ as a named markdown file. The framework gives you the file names, the headings, and a workflow for moving through them.

The cost is a few minutes per phase to write things down. The benefit is that this entire site — the live status, the metrics, the blockers — is generated from those files. No second copy. No drift.

The four-step loop

Each phase of the build (Phase 0 Foundation, Phase 1 Schema, Phase 2 Auth & Onboarding, …) goes through these four:

1. Discuss

What it is — a structured Q&A that surfaces unknowns, locks decisions, and produces a <phase>-CONTEXT.md file.

What it answers — Have we thought about this enough to plan it?

Slash command in Claude Code — /gsd-discuss-phase <N>

2. Plan

What it is — break the phase into individual plans (<phase>-NN-PLAN.md), each scoped to roughly one commit’s worth of work. Plans declare verification criteria up front.

What it answers — What’s the sequence of moves, and what’s “done” for each?

Slash command — /gsd-plan-phase <N>

3. Execute

What it is — work through each plan in order, committing as you go. Each plan ends with a <phase>-NN-SUMMARY.md that records what landed, what changed from the plan, and any deferred items.

What it answers — Did the work match the plan? What got deferred?

Slash command — /gsd-execute-phase <N>

4. Verify

What it is — a phase-level check (<phase>-VERIFICATION.md) that asserts every Success Criterion (SC) is met, with evidence. Verification is what closes a phase.

What it answers — Is the phase actually done? What still needs human eyes?

Slash command — /gsd-verify-phase <N>

If a phase has things that only a human can verify (e.g. “do two iPhones agree on widget state after 24 hours?”), they’re tagged human_needed and surface on this site as open UAT items. They don’t block the phase from being technically verified — they just stay open until a human signs them off.

The artefacts you’ll see referenced on this site

File What it is When it’s written
PROJECT.md The product brief — what Frank’s Fed is, who it’s for, what the constraints are Once at project start, edited on milestone changes
REQUIREMENTS.md Numbered list of every product requirement (HELP-01, NOTIF-04, WIDGET-04, etc.) Once at project start, extended per phase if scope expands
ROADMAP.md The phase plan — phase ordering, scope, dependencies, success criteria Once at project start, light-touch updates as reality diverges
STATE.md The live cursor — which phase is open, which plan is next, what’s blocking Updated continuously
<phase>-CONTEXT.md Locked decisions and gathered context for a phase Once per phase, before planning
<phase>-NN-PLAN.md One plan within a phase Per plan
<phase>-NN-SUMMARY.md What actually landed for that plan After execution
<phase>-VERIFICATION.md Phase-level verification with SC pass/fail and human_verification items Once per phase, on close
BACKLOG.md Open hard/soft gates that don’t fit a single phase Continuous
.planning/quick/<dated-slug>/ Smaller ad-hoc tasks (like setting up this site) — same shape, lighter ceremony Per quick task

The slash commands /gsd-discuss-phase, /gsd-plan-phase, etc. all live in github.com/gsd-build/get-shit-done as Claude Code skills.

What this site is showing you

Open the Build Status tab and you’re looking at the contents of STATE.md + ROADMAP.md + every phase’s summary, rendered for humans:

The publish skill (/franks-fed-status-publish) regenerates this page from those source files. Nothing is hand-typed into the live HTML. If a number on the page is wrong, the source file is wrong; fix that and re-publish.

Voice constraints (Bible §14)

The Frank’s Fed Product Bible bans certain words across the product and its planning artefacts: alert, warning, overdue, failed, missed, violation, restricted, error. The publish skill paraphrases anything stale that creeps in. So the report will say “outstanding” not “failed”, “open” not “blocked”, “not yet started” not “missed deadline”. This isn’t decoration — it’s part of the product’s voice and shows up in every UI string the team writes too.

Commit conventions

Every commit ties to a specific plan or quick task:

feat(<plan>): <short>          ← code change for plan
docs(<phase>): <short>         ← documentation under a phase
test(<plan>): <short>          ← tests for a specific plan
fix(<plan>): <short>           ← in-flight fix during execution
chore(<scope>): <short>        ← infra / tooling
docs(state): <short>           ← STATE.md or ROADMAP.md updates

If you’re reviewing a PR and a commit doesn’t fit any of these, ask — usually it means a plan got missed.

Where to dig in

If you want… Look at…
The product vision, voice, design principles Docs/FranksFed_Product_Bible_v8.md (the Bible, latest version)
What’s currently being worked on This site → Build Status tab
Why a particular technical decision was made <phase>/<phase>-CONTEXT.md for the phase that made it
How a feature was built <phase>/<phase>-NN-PLAN.md and the matching -SUMMARY.md
How a phase was verified <phase>/<phase>-VERIFICATION.md
The framework itself github.com/gsd-build/get-shit-done
The Anthropic Agent SDK / Claude Code that drives the loop docs.claude.com and Anthropic’s Agent SDK

TL;DR for the team

If you only remember one thing: STATE.md is the cursor, ROADMAP.md is the map, and every phase has a VERIFICATION.md that tells you what’s been signed off and what still needs human eyes. The Build Status page on this site is a live render of those three. Everything else is supporting evidence.

Source: .planning/published-docs/about-gsd/source.md ← Back to Docs