Concepts

Before we get started, it’d be helpful to understand the basic ideas of using ScrumMD.

Repository

A Repository is the folder containing all of the cards for a project. By default, ScrumMD expects that the repository is located in a folder called scrum - but this can be configured to be different.

Card

A Card is a file in markdown format. It is given an index (card number) of its filename unless otherwise overwritten by an index field.

It must contain at minimum a ‘Summary’ field. An example card might look like:

backlog/tool01.md

---
summary: Create entry point
status: Ready for development
---

# Description

Create an entry point for `tool` so it can be accessed by the command line.

# Dependencies

- [[tool02]]
- [[tool03]]

Field

A Field is any text in a markdown file that is in a property block (like summary in backlog/tool01.md above) or under a heading (like description and `dependencies in backlog/tool01.md above) can be treated as a field.

Collection

A Collection is a group of cards. Collections can be made in three ways:

  • A subfolder that a card is in is a Collection.

  • Any cards referred to in a Field become a collection.

  • A Field called tags or collections will add a card to the collections listed in it.

In backlog/tool01.md above, tool01 will be in the backlog collection (because of its file path) and it will define the tool01.dependencies collection that will include tool02 and tool03.

A folder inside a folder becomes a sub-collection - so, if you had a backlog folder and inside that, a epics folder, then any cards inside the epics folder would be in both the backlog and backlog.epics collections.

A card may be in multiple collections.

Collection sorting

sbl provides sort-by as an argument to allow you to sort cards, but - if you define a collection with the cards referenced in a card, they’ll maintain the same order.

Given Scrum treats the order of cards in the Backlog and Sprint as important, you might choose to have your cards in a stories or features folder, and then intentionally create a backlog - for instance:

backlog.md

---
Summary: Backlog
---

# Items

- [[card1]]
- [[card5]]
- [[card12]]
- [[card2]]