Docs

How rules work

Your rules are your team's mandate: a few files in .mandately/ in your repository that say who may decide what. Mandately reads them from your main branch, and every decision it records names the version it read.

The files

filewhat it decidespage
people.ymlwho is accountable, who else may say release, go and ship, and which accounts are agentsPeople
classes.ymlthe impact classes, and whose word starts work and merges its changes in eachImpact classes
sensitive.ymlthe paths that always need the owner's go, whatever the classThe owner's paths
lifecycle.ymlthe states work moves through, which board status means which, and how a fix is markedLifecycle
connections.ymlthe board and the repositories Mandately reads, with no credentialsConnections

Change a rule

Edit the file and open a pull request. The rules are among the owner's paths, so the change waits for the owner's go. Once it merges, the watch uses the new rules from its next pass.

If a file has a mistake, Mandately names the file and the key. Fix it by pull request, then run the command again.

What a rule decides

For each event, your rules give one of four verdicts:

verdictwhen
proceedthe rules let it happen without a person's word
askit needs a person's word: a release to start, or a go to merge
refusesomeone said a word they do not hold the right to say
recordthere is nothing to decide, so it is only recorded

In the watch week, Mandately records each verdict beside what your team did, and changes nothing.

The words people use

A person gives their word in a comment on the issue or the pull request. Mandately reads it from the first word.

wordwhat it doeswho may say it
releasestarts work that needs a person's releasethe owner, and anyone under roles.release
golets a held change mergethe owner, and anyone under roles.go
holdstops work until someone says the word againanyone your rules name
shipships to usersthe owner, and anyone under roles.ship

An approving review on a pull request counts as a go when the reviewer holds the right to say go.

Starting points

mand init starts your rules from the default pack, and you change it from there. To start from the rules Stackable runs by, use mand init --pack stackable.