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
| file | what it decides | page |
|---|---|---|
people.yml | who is accountable, who else may say release, go and ship, and which accounts are agents | People |
classes.yml | the impact classes, and whose word starts work and merges its changes in each | Impact classes |
sensitive.yml | the paths that always need the owner's go, whatever the class | The owner's paths |
lifecycle.yml | the states work moves through, which board status means which, and how a fix is marked | Lifecycle |
connections.yml | the board and the repositories Mandately reads, with no credentials | Connections |
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:
| verdict | when |
|---|---|
| proceed | the rules let it happen without a person's word |
| ask | it needs a person's word: a release to start, or a go to merge |
| refuse | someone said a word they do not hold the right to say |
| record | there 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.
| word | what it does | who may say it |
|---|---|---|
release | starts work that needs a person's release | the owner, and anyone under roles.release |
go | lets a held change merge | the owner, and anyone under roles.go |
hold | stops work until someone says the word again | anyone your rules name |
ship | ships to users | the 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.