# A sprint book — the goal, the board, the burndown and the retro, one document a sprint

Recipe No. 34, Work and teams. From The know.sh Cookbook: https://know.sh/cookbook/sprint-tracking

At stand-up the whole team looks at one page: the sprint goal in a sentence, the board in three columns, and the burndown against the ideal line. Your assistant redraws the board and adds the day’s points; the retro’s calls go in a decisions register, so sprint 42 remembers what sprint 41 agreed.

- For: a team lead running two-week sprints
- You get: a document per sprint: goal, board, burndown, plan and retro calls
- Time: half an hour to plan, five minutes a day
- Made with: Shelf, Document, Elements, Your AI assistant, Revisions

## How it works

1. **Open the sprint at planning.** Give your assistant the committed stories and their points. Ask for a document with the goal in one sentence, a kanban element in three columns, and a Gantt of the two weeks.
2. **Update it before stand-up.** Each morning, paste the tracker’s board and ask your assistant to move the cards and add yesterday’s remaining points to the burndown chart. Check the total against the tracker.
3. **Note scope as it changes.** When a story joins mid-sprint, ask for an annotation on the burndown saying what came in and why, so the bump in the line explains itself.
4. **Keep the retro’s decisions.** At the retro, ask for a decisions element: each agreement, its reason, what else was proposed, and which earlier decision it replaces. Link it from the next sprint’s document.

## Try this prompt

Your assistant, connected to know.sh (Claude, ChatGPT or a local model):

> Using know.sh, start Sprint 42 on my Shiftwise sprints shelf. Overview: the goal in one sentence, then a kanban element with To do, In progress and Done, a card per story with its ticket, owner and points; and a line chart burndown with an Ideal series from 31 points to 0 over ten working days, and an empty Left series.

Your assistant, connected to know.sh (Claude, ChatGPT or a local model):

> Here is this morning’s board from our tracker. In Sprint 42, move the kanban cards to match, add today’s points left to the burndown’s Left series, and if a story joined, add an annotation on that day saying what and why.

## Elements in the specimens

Written as your assistant writes them through the know.sh MCP server. Each reads as plain words until you turn elements on (Account → Elements).

Kanban board, specimen 1:

```element kanban
{
  "caption": "The board, Thursday morning",
  "description": "To do: the swap audit log, 3 points. In progress: blocking swaps that break the 11-hour rest rule, 8 points, and the swap screens’ copy, 2 points. Done: swap request, one-tap approval, the approval alert, swap limits, the accessibility pass and the rota-week bug.",
  "columns": [
    {
      "label": "To do",
      "cards": [
        {
          "label": "Swap audit log · 3",
          "ticket": "SHF-216",
          "assigned": "Wen",
          "priority": "low"
        }
      ]
    },
    {
      "label": "In progress",
      "cards": [
        {
          "label": "Block swaps that break the 11-hour rest rule · 8",
          "ticket": "SHF-215",
          "assigned": "Priya",
          "priority": "very-high"
        },
        {
          "label": "Swap screens copy · 2",
          "ticket": "SHF-219",
          "assigned": "Marta"
        }
      ]
    },
    {
      "label": "Done",
      "cards": [
        {
          "label": "Swap request · 5",
          "ticket": "SHF-212",
          "assigned": "Tomás"
        },
        {
          "label": "One-tap approval · 5",
          "ticket": "SHF-213",
          "assigned": "Ade"
        },
        {
          "label": "Approval alert · 3",
          "ticket": "SHF-214",
          "assigned": "Tomás"
        },
        {
          "label": "Swap limits per month · 5",
          "ticket": "SHF-217",
          "assigned": "Ade"
        },
        {
          "label": "Accessibility pass · 3",
          "ticket": "SHF-218",
          "assigned": "Marta"
        },
        {
          "label": "Rota shows the wrong week · 3",
          "ticket": "SHF-221",
          "assigned": "Wen",
          "priority": "high"
        }
      ]
    }
  ]
}
```

Chart, specimen 1:

```element chart
{
  "type": "line",
  "caption": "Burndown: story points left at the end of each day",
  "dimension": "Day",
  "labels": [
    {
      "label": "Start"
    },
    {
      "label": "Mon 14"
    },
    {
      "label": "Tue 15"
    },
    {
      "label": "Wed 16"
    },
    {
      "label": "Thu 17"
    },
    {
      "label": "Fri 18"
    },
    {
      "label": "Mon 21"
    },
    {
      "label": "Tue 22"
    },
    {
      "label": "Wed 23"
    },
    {
      "label": "Thu 24"
    },
    {
      "label": "Fri 25"
    }
  ],
  "series": [
    {
      "name": "Ideal",
      "values": "34, 30.6, 27.2, 23.8, 20.4, 17, 13.6, 10.2, 6.8, 3.4, 0"
    },
    {
      "name": "Left",
      "values": "34, 34, 31, 31, 29, 26, 21, 18, 13, , "
    }
  ],
  "units": "points",
  "measure": "Points left",
  "axisTitles": true,
  "min": 0,
  "markers": true,
  "highlight": "Left",
  "annotations": [
    {
      "axis": "x",
      "at": "Thu 17",
      "label": "Bug added, 3 points"
    }
  ],
  "source": "Points from the team’s tracker at the close of each working day."
}
```

Gantt chart, specimen 2:

```element gantt
{
  "caption": "Sprint 41, Monday 14 to Friday 25 September",
  "description": "Two working weeks. Planning on Monday 14. Swap request, then one-tap approval and the approval alert, run through the first week and into the second. The rest-rule check runs the whole sprint and is critical. The rota-week bug joined on Thursday 17. Swap limits and the screen copy follow; the audit log is last. Review and retro on Friday 25.",
  "dateFormat": "YYYY-MM-DD",
  "sections": [
    {
      "id": "build",
      "label": "Build"
    },
    {
      "id": "finish",
      "label": "Finish"
    },
    {
      "id": "team",
      "label": "Team"
    }
  ],
  "tasks": [
    {
      "id": "plan",
      "label": "Planning",
      "section": "team",
      "shape": "milestone",
      "start": "2026-09-14",
      "duration": "0d"
    },
    {
      "id": "req",
      "label": "Swap request",
      "section": "build",
      "shape": "bar",
      "start": "2026-09-14",
      "duration": "4d",
      "status": "done"
    },
    {
      "id": "appr",
      "label": "One-tap approval",
      "section": "build",
      "shape": "bar",
      "start": "2026-09-15",
      "duration": "5d",
      "status": "done"
    },
    {
      "id": "alert",
      "label": "Approval alert",
      "section": "build",
      "shape": "bar",
      "start": "2026-09-17",
      "duration": "4d",
      "status": "done"
    },
    {
      "id": "rest",
      "label": "Rest-rule check",
      "section": "build",
      "shape": "bar",
      "start": "2026-09-16",
      "duration": "8d",
      "status": "active",
      "critical": true
    },
    {
      "id": "lim",
      "label": "Swap limits",
      "section": "build",
      "shape": "bar",
      "start": "2026-09-18",
      "duration": "4d",
      "status": "done"
    },
    {
      "id": "a11y",
      "label": "Accessibility pass",
      "section": "finish",
      "shape": "bar",
      "start": "2026-09-14",
      "duration": "2d",
      "status": "done"
    },
    {
      "id": "bug",
      "label": "Rota-week bug",
      "section": "finish",
      "shape": "bar",
      "start": "2026-09-17",
      "duration": "2d",
      "status": "done"
    },
    {
      "id": "copy",
      "label": "Screen copy",
      "section": "finish",
      "shape": "bar",
      "start": "2026-09-22",
      "duration": "3d",
      "status": "active"
    },
    {
      "id": "log",
      "label": "Audit log",
      "section": "finish",
      "shape": "bar",
      "start": "2026-09-24",
      "duration": "2d"
    },
    {
      "id": "retro",
      "label": "Review and retro",
      "section": "team",
      "shape": "milestone",
      "start": "2026-09-25",
      "duration": "0d"
    }
  ],
  "axisFormat": "%a %e",
  "tickInterval": "1day",
  "weekStart": "monday",
  "excludes": "weekends",
  "weekend": "saturday",
  "today": "hidden"
}
```

Decisions, specimen 3:

```element decisions
{
  "caption": "What sprint 41’s retro agreed",
  "decisions": [
    {
      "title": "The audit log",
      "status": "decided",
      "date": "2026-09-25",
      "choice": "Carry SHF-216 into sprint 42 at 3 points, first in the queue",
      "reason": "Managers asked for it at the review; it is small and nothing else waits on it."
    },
    {
      "title": "Work that joins mid-sprint",
      "status": "decided",
      "date": "2026-09-25",
      "choice": "Only bugs that block the sprint goal",
      "reason": "The rota-week bug earned its place: swaps were landing on the wrong day. Anything else waits for planning.",
      "alternatives": [
        {
          "option": "A fixed buffer of 5 points"
        }
      ]
    },
    {
      "title": "Estimating rules work",
      "status": "decided",
      "date": "2026-09-25",
      "choice": "Anything touching working-time rules starts at 8 points",
      "reason": "The rest-rule check ran the whole sprint; the 11-hour rule has more edge cases than it looks."
    },
    {
      "title": "Stand-up at 10.00",
      "status": "decided",
      "date": "2026-09-25",
      "choice": "Move stand-up to 10.00",
      "reason": "Ade and Marta take the care homes’ morning handover calls until 9.45."
    },
    {
      "title": "Stand-up at 9.30",
      "status": "superseded",
      "date": "2026-08-14",
      "choice": "Daily at 9.30, fifteen minutes",
      "supersededBy": "Stand-up at 10.00"
    },
    {
      "title": "Sprint length",
      "status": "open",
      "choice": "Stay at two weeks",
      "reason": "Revisit after sprint 43, once the Android release has settled.",
      "alternatives": [
        {
          "option": "One-week sprints"
        }
      ]
    }
  ]
}
```
