Bob is working for a blockchain backed social media startup with 20 engineers. Bob goes to JIRA and looks for a cool ticket to work on. Bob finds a cool ticket to work on: "Add a surveillance backdoor to the core messaging system". Bob is excited. ## Typical workflow Bob goes to his terminal and opens a new **story**: ``` master ~/project> pmt story DEV-69473 "Add a surveillance backdoor to the core messaging system" Branch bob/DEV-69473 created! Checking in... bob/DEV-69473 ~/project> ``` Bob sips some boba and gets to work on implementing the feature. Bog is ready to commit his changes. ``` bob/DEV-69473 ~/project> pmt add -A bob/DEV-69473 ~/project> pmt task --commit "implement NSA backdoor" Created and committed to task 01 "implement NSA backdoor" ``` Bob writes tests for the code he writes, so Bob creates a task to write tests. ``` bob/DEV-69473 ~/project> pmt task "write tests for NSA backdoor" Created task 02 "write tests for NSA backdoor" ``` Bob writes some tests and is ready to commit his code. ``` bob/DEV-69473 ~/project> pmt commit -A 02 Committed changes to "write tests for NSA backdoor" ``` A test is failing so Bob goes back to writing his NSA backdoor. ``` bob/DEV-69473 ~/project> pmt add -A bob/DEV-69473 ~/project> pmt tasks 01 "implement NSA backdoor" 02 "write tests for NSA backdoor" bob/DEV-69473 ~/project> pmt commit 02 ``` ## Working on multiple Stories After a meeting, bob realizes he needs switch his focus to a more pressing feature. ``` bob/DEV-69473 ~/project> pmt stories * master * DEV-69473 "Add a surveillance backdoor to the core messaging system" * DEV-69459 "Document messaging schemas" * DEV-69451 "Add a GDPR popup to landing page" bob/DEV-69473 ~/project> pmt checkout /GPDR/ stashing staged changes... checkout out to DEV-69451 "Add GDPR popup to landing page" bob/DEV-69451 ~/project> pmt where DEV-69451 "Add GDPR popup to landing page" ``` ## Making a pull request Let's fast forward. Bob has finally finished implementing the GDPR landing page. He's ready to submit a pull request. ``` bob/DEV-69451 ~/project> pmt mpr ``` A pull request is created on Bob's hosting service (in this case Github). A coworker approves Bob's changes and Bob merges and squashes his changes to master. ``` bob/DEV-69451 ~/project> pmt update fetching latest changes to master... It looks like the current branch has been merged to master. Delete branch? [y/n] y checking out to master... master ~/project> ```