Click-by-click guide to setting up the NbS Rural Scan — Delivery project board on GitHub. ~15 minutes end-to-end. Done once.
The GitHub Projects v2 UI shifts occasionally. If a label or menu position has moved, the underlying concept stays the same — search the page for the named element.
- Open the repo: https://github.com/CIAT/nbs_ruralscan
- Click the Projects tab in the repo's top nav (between Pull requests and Wiki).
- Click the green New project button (top right).
- Choose the Board template.
- Project name:
NbS Rural Scan — Delivery - Description:
Coordination board for the World Bank D591 NbS Rural Scan consultancy. Issues, PRs, and pilot tasks. - Click Create project.
You should now see an empty board with three default columns: Todo, In Progress, Done.
The Status field is what drives the columns. We want five values: Backlog · This week · In progress · Review · Done.
- In the new project, click the + Add column button to the right of Done.
- Type Review → press Enter.
- Click + Add column again, type This week → Enter.
- Click on the Todo column header → small dropdown → Edit → rename to Backlog.
- Now drag columns into the desired order (left-to-right): Backlog → This week → In Progress → Review → Done.
- Drag from the column header.
- Click the … (kebab) menu at the top right of the project → Settings.
- In the left sidebar, click Custom fields (or Fields).
- Click Status (the default single-select field).
- You see three options: Todo · In Progress · Done.
- Rename Todo → Backlog.
- Click + Add option → name it This week → save.
- Click + Add option → name it Review → save.
- Drag options into the order: Backlog → This week → In Progress → Review → Done.
- Click Save.
Either method gives you the right five-column board.
In Settings → Custom fields, click + New field:
- Owner — type: Single select. Options: Pete · Benson · Namita · Brayden · Sarah · Chris · Evert · Hannes · Ani · Lolita · Anastasia. (Why a custom field on top of GitHub's built-in assignee? Because Projects v2 doesn't visualise GitHub assignees in board column headers as cleanly. Optional — can skip if you prefer to use plain assignees.)
- Module — type: Single select. Options: M0 · M1 · M2 · M3 · M4 · M5 · M6 · cross-cutting.
- NbS — type: Single select. Options: agroforestry · water-harvesting · forest-restoration · riparian-buffer · other.
- Estimate (days) — type: Number. Optional, useful for sprint planning later.
Each new field auto-appears in the board view and can be added to any item.
A view is a saved arrangement (filter + grouping + columns). Multiple views read the same data — they're just different lenses.
In the project, look at the bottom of the page — there's a tab strip showing the current view (probably called Board). Click + New view next to it.
Add these views:
- Type: Board
- Group by: Module custom field
- Name:
By Module - Now each column is a module (M0–M6) so you can see how each module's work stands.
- Type: Board
- Group by: Owner custom field (or Assignees if you skipped Step 3)
- Name:
By Owner - Shows the workload per person at a glance.
- Type: Board
- Group by: NbS custom field
- Name:
By NbS - Tracks recipe progress per NbS.
- Type: Table
- Group by: Milestone
- Name:
By Phase - Tabular layout reads better for milestone tracking than a board.
- Type: Table or Board
- Filter:
is:open - Sort by: Updated (descending)
- Name:
Open - The default "what's everything not done" view.
You now have 5 views over the same set of items.
Workflows live at: Project Settings (gear icon top right of the project, or … menu → Settings) → Workflows (left sidebar).
You'll see ~6 built-in workflows, all initially disabled.
Enable these four:
- Click Auto-add to project.
- Toggle the workflow On (top-right switch).
- Set the filter:
repo:CIAT/nbs_ruralscan is:issue- This auto-adds new issues from the repo. Excludes PRs — we add those manually when they link to an issue, or via a separate filter if desired.
- Click Save.
Optional second auto-add for PRs: repeat with filter
repo:CIAT/nbs_ruralscan is:pr. Recommended — keeps PRs visible alongside the issues they close. Up to you.
- Click Item added to project.
- Toggle On.
- Set: When → Item is added · Set → Status = Backlog.
- Click Save.
Combined with Workflow A: every new issue lands in Backlog automatically.
- Click Item closed.
- Toggle On.
- Set: When → Item is closed · Set → Status = Done.
- Click Save.
- Click Pull request merged.
- Toggle On.
- Set: When → Pull request is merged · Set → Status = Done.
- Click Save.
This catches the case where a PR's closure of an issue (via Closes #42) should mark the project item as done.
If you want PRs to auto-move to Review when approved (rather than when opened):
- Click Code review approved.
- Toggle On.
- Set: When → Pull request review is approved · Set → Status = Review.
- Click Save.
A few transitions remain manual — that's by design. The team uses them:
| Transition | How |
|---|---|
| Backlog → This week | At Monday standup, drag the item into This week column |
| This week → In Progress | When you start work, drag to In Progress |
| In Progress → Review | Drag manually when you raise the PR (or set up Workflow E above to auto-do this on PR approval) |
| Done → archived | After a week or so, archive done items via … → Archive; or set up Auto-archive items workflow below |
- Click Auto-archive items.
- Toggle On.
- Set: filter →
is:closed updated:<@today-2w- GitHub's auto-archive filter uses issue/PR search syntax, not Project custom-field syntax — so
status:Donewill fail with "Unknown field name". Filter onis:closedinstead, which catches everything that lands in Done (issues close and PRs merge into Done via Workflows C and D).
- GitHub's auto-archive filter uses issue/PR search syntax, not Project custom-field syntax — so
- Save.
Keeps the board tidy without manual archiving.
Anyone landing on the repo home should know the board exists. Update the repo README.md to include a project link:
## Project board
Active work is tracked at the [Delivery board](https://github.com/orgs/CIAT/projects/<board-id>).(Get the board ID from the URL after creating it — it's an integer in the path.)
End-to-end smoke test:
- Open a new test issue via any template (e.g. "Test issue, please close").
- Check the project board → it should appear in the Backlog column automatically.
- Close the issue.
- Refresh → the item should move to Done.
- If that round-trip works, automation is correctly wired. Delete the test issue.
You now have:
- A 5-column Kanban board reflecting the team's workflow
- Three custom fields (Owner / Module / NbS) plus optional Estimate
- Five views (Board · By Module · By Owner · By NbS · By Phase · Open)
- Four-to-six automation workflows running the board state
Total setup time: ~15–20 minutes.
After this, open the seed issues from SEED_ISSUES.md and they'll populate the board automatically.