Skip to content

The delivery board

How work is tracked here, and why it is set up the way it is. This is the JIRA-shaped half of the playground: a board with real columns, real fields, and automation that keeps it honest.

Board: Advanced RAG — Delivery (Projects v2)

Columns and what each one means

flowchart LR
    B["📥 <b>Backlog</b><br/><i>an idea with a title</i>"] -->|"acceptance criteria written"| R
    R["✅ <b>Ready</b><br/><i>anyone could pick this up</i>"] -->|"assigned + branch exists"| P
    P["🔨 <b>In progress</b><br/><i>exactly one owner</i>"] -->|"PR opened"| V
    V["🔍 <b>In review</b><br/><i>eval gate + human</i>"] -->|"merged"| D
    D["🎉 <b>Done</b><br/><i>merged and measured</i>"]
    V -.->|"changes requested"| P
    P -.->|"blocked >3 days"| BL["⛔ <b>Blocked</b><br/><i>needs a name and a date</i>"]
    BL -.-> P
    R -.->|"superseded"| X["🗄 <b>Won't do</b><br/><i>with a reason</i>"]

    classDef todo fill:#F6F4EF,stroke:#C9C4B8,color:#3A414B
    classDef active fill:#FBF1E2,stroke:#E9A83C,color:#101318
    classDef done fill:#E9F3EE,stroke:#3F8F6E,color:#101318
    classDef bad fill:#FBECE8,stroke:#CF4F35,color:#101318
    class B,R todo
    class P,V active
    class D done
    class BL,X bad
Column Entry condition The rule people break
Backlog Anything. An idea with a title is enough.
Ready Acceptance criteria are written down. "Improve retrieval" is not acceptance criteria. "Full-chain recall on the comparison slice rises ≥5 points at unchanged k, and holds on the frozen slice" is.
In progress Assigned to exactly one person, branch exists. Two people, or nobody, on the same card. If it is genuinely shared, split it.
In review PR open, CI green, eval scorecard posted. Opening a PR without the measurement table. The template asks for it because a reviewer cannot supply it.
Blocked Names who unblocks it and by when. "Blocked" with no name is a card nobody will ever move.
Done Merged, and the delta recorded. Closing without recording whether the change actually moved the number.
Won't do A reason, in one sentence. Silently deleting cards, which destroys the record of what was considered.

Custom fields

Field Type Values Why it exists
Phase Single select P0 Harness · P1 Baseline · P2 Retrieval · P3 Context · P4 Evaluation · P5 Cost · P6 Agentic · P7 Hardening Maps every card to a delivery phase, so "what are we in the middle of" has an answer
Effort Single select S <1d · M 2–3d · L ~1w · XL cohort Estimated before work starts; compare against reality in retro
Cohort Single select C1 · C2 · faculty · open Separates student work from platform work on the same board
Risk Single select low · medium · high High-risk cards get a design review before they leave Ready
Needs eval Checkbox Set automatically for anything touching nanorag/; the eval gate will run
Metric moved Text e.g. full-chain +0.05 [+0.01,+0.09] Filled in when the card reaches Done. This is the field that makes the board worth keeping.

Views

View Filter Used for
Board all open The daily standup view
By phase grouped by Phase "Where are we in the delivery?"
Cohort Cohort = a free-text group label What each cohort or squad is working on
Needs review column = In review The reviewer's queue
Blocked column = Blocked Read this one first in a standup
Shipped with numbers column = Done, Metric moved not empty The retro view — and the one to screenshot for a CV
Good first issues label good first issue Where a new student starts

Automation

Three GitHub Actions keep the board honest so nobody has to remember to update it:

Trigger What happens Workflow
Issue or PR opened Added to the board, lands in Backlog; a comment explains the entry conditions project-automation.yml
PR opened touching nanorag/ needs: eval-numbers label applied; eval gate runs and posts a scorecard labeler.yml, eval-regression.yml
PR merged Card moves to Done built-in Projects workflow
No activity for 45 days Marked stale, then closed, so the board reflects reality stale.yml

Exercise issues are exempt from stale — a student who takes six weeks is still a student.

Labels

Labels are three orthogonal axes. A well-formed issue has one from each of the first two.

Axis Labels
Type type: bug · type: exercise · type: extension · type: reading · type: docs · type: chore · type: discussion-followup
Area area: retrieval · area: evaluation · area: agent · area: cost · area: notebooks · area: toolkit · area: docs · area: ci · area: bedrock
Status / meta status: triage · status: needs-review · status: blocked · status: stale · good first issue · help wanted · cohort · needs: eval-numbers · dependencies

The one habit worth stealing

Every card that reaches Done has its Metric moved field filled in — including the ones where the honest entry is inside the noise band.

A board that only records wins is a board that teaches people to only report wins. The retro view, filtered to Done, is a record of what was actually true, and after a couple of months it becomes the most useful artefact in the repository.