Tasks
Find, start, note, block and close tasks (PMO calls them activities).
Find, start, note, block and close tasks (PMO calls them activities). On your own computer, pmo help <command> prints the same text, for example pmo help next.
pmo next
Hand back the one activity to work on now.
pmo next [--eng <slug>] [--module <id>] [--track <t>] [--assignee <id>] [--status <s>] [--phase <p>] [--q <text>] [--mine] [--claim] [--take]Example
pmo next --module retrieval-v1 --claim --as agent:ragpmo list
List activities matching a query.
pmo list [<word>] [--eng <slug>] [--module <id>] [--track <t>] [--assignee <id>] [--status <s>] [--phase <p>] [--kind <kind>|none] [--stage <stage>] [--q <text>] [--limit <n>] [--all]Example
pmo list --client example --group-by module
`pmo help filters` prints these filters in full, and the bare-word search.pmo show
One activity in full, with its history.
pmo show <id> [--eng <slug>] [--history]Example
pmo show ret-t01 --historypmo asks
The activities waiting on a person's answer.
pmo asks [--mine | --to <person>] [--eng <slug>]Example
pmo asks --mine --as person:youpmo set
Write one field, or one of the atomic combinations.
pmo set <id> <field=value> [<field=value>…] [--if-match <digest>] [--note <text>]Example
pmo set ret-t01 status=in_progress --as agent:rag
pmo set ret-t01 estimate_days=3 remaining_days=1.5 --as agent:rag # working days; empty clears
pmo set ret-t01 estimate_low_h=160 estimate_mid_h=240 estimate_high_h=360 --as person:you # all three, or none
pmo set ret-t01 estimate_low_h= estimate_mid_h= estimate_high_h= --as person:you # clear the estimate
pmo set ret-t01 complexity=high --as person:you # low | medium | high
pmo set ret-t01 wait_low_d=5 wait_mid_d=10 wait_high_d=20 --as agent:rag # waiting on the client: calendar days, all three or none; never hours
pmo set ret-t01 estimate_low_h= estimate_mid_h= estimate_high_h= wait_low_d=3 wait_mid_d=5 wait_high_d=10 --as person:you # hours that were really a wait: one write, nothing converted
pmo set ret-t01 kind=code stage=implementation --as agent:rag # code | design | qa | customer | release | decision
pmo set ret-t01 stage=code_review --as agent:rag # a stage on its kind's road; closing a code task moves it to Merged
pmo set ret-t01 kind= stage= --as person:you # clear both
pmo set ret-t01 client_visible=false --as agent:rag # Internal only: never on the client's report
pmo set ret-t01 after=ret-t02,ret-t03+3d --as agent:rag # waits for ret-t02, and for ret-t03 then 3 calendar days
pmo set ret-t01 after= --as agent:rag # waits for nothing
A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.pmo start
Move an activity to in_progress.
pmo start <id> [--eng <slug>] [--take]pmo done
Close an activity, with the evidence that closes it.
pmo done <id> --evidence "<what proves it>" [--criteria-met]Example
pmo done ret-t01 --evidence "paired McNemar, p=0.011" --criteria-met --as agent:rag
pmo done example-077 --evidence "repo=https://dev.azure.com/example/lakehouse/_git/adb-advancedanalytics commit=<its recorded last commit>" --as agent:delivery
# an activity with a repository link closes on its recorded last commit
pmo done ret-t01 --evidence "https://github.com/<org>/<repo>/pull/<n> commit=<40 hex head> evidence=<64 hex>" --as agent:rag
# an agent's pull-request close: green checks on that head, the PR naming the activity id and
# targeting the intake profile's base_branch (dev when the profile names none);
# evidence=<64 hex> is checked for its shape only — nothing reads its value
A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.pmo block
Mark an activity blocked, with the reason, as one write.
pmo block <id> --reason "<why>"Example
pmo block ret-t01 --reason "waiting on the gold set" --as agent:rag
A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.pmo unblock
Clear a block and the reason, as one write.
pmo unblock <id> [--to open|in_progress]Example
pmo unblock ret-t01 --to in_progress --as agent:rag
A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.pmo hold
Put an activity on hold, with the reason, as one write.
pmo hold <id> --reason "<why>"Example
pmo hold ret-t01 --reason "parked until the Q4 budget lands" --as agent:rag
A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.pmo resume
Take an activity off hold and clear the reason, as one write.
pmo resume <id> [--to open|in_progress]Example
pmo resume ret-t01 --to in_progress --as agent:rag
A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.pmo ask
Ask a person a question on an activity, and pause it until they answer.
pmo ask <id> "<question>" --to <person>Example
pmo ask ret-t01 "Staging or prod for the dry run?" --to you --as agent:rag
A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.pmo answer
Answer the open ask on an activity and resume it.
pmo answer <id> "<answer>" --as person:<you>Example
pmo answer ret-t01 "Staging — prod after the readout" --as person:you
A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.pmo note
Append a line to an activity's notes.
pmo note <id> "<text>" [--replace]Example
pmo note ret-t01 "re-blessed at 0.757" --as agent:rag
A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.pmo create
Create an activity under a feature; PMO gives it the handle <client>-<project>-<module>-<n>.
pmo create --eng <slug> --feature <id> --text "<a plain-English title anyone can read>" [--module <id>] [--owner <id>] [--due <iso>] [--estimate <days>] [--remaining <days>]Example
pmo create --eng accelerator --feature acc-feat-002 --text "Check search answers are as good as last week" --estimate 2 --as agent:rag
# every new activity belongs to a feature — --feature is required, and the module is the feature's
# unless --module names it; list them with `pmo feature list --eng accelerator --module <id>`
# an activity's feature can be changed (`pmo set <id> feature=<id>`), never cleared
# PMO gives it the module's next handle, <client>-<project>-<module>-<n> (cross-vault-retrieval-7);
# there is no --id, and a number is never given twice
A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.pmo archive
Archive an activity — the reversible delete, and the only one.
pmo archive <id> [--eng <slug>]pmo unarchive
Bring an archived activity back exactly as it was.
pmo unarchive <id> [--eng <slug>]pmo plan
Say whether a task was in the agreed plan or taken on later.
pmo plan <id> planned|later|unreviewed [--eng <slug>] [--note "<why>"]Example
pmo plan acc-158 later --note "asked for in the review, not in the plan" --as agent:rag
A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.pmo after add
Add one activity this one waits on.
pmo after add <id> <waits-on-id>pmo after remove
Stop waiting on one activity.
pmo after remove <id> <waits-on-id>pmo adr add
Reference an ADR from an activity, a feature or a module.
pmo adr add <activity-id> <repo>:<NNNN> | pmo adr add --feature <id>|--module <id> <repo>:<NNNN> [--eng <slug>]Example
pmo adr add ret-l02 vault:0171 --as agent:rag
pmo adr add --feature acc-feat-reranker-v2 vault:0171 --eng accelerator --as agent:rag
pmo adr add --module retrieval-v1 pmo:0005 --as agent:rag
A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.pmo adr remove
Stop referencing an ADR from an activity, a feature or a module.
pmo adr remove <activity-id> <repo>:<NNNN> | pmo adr remove --feature <id>|--module <id> <repo>:<NNNN> [--eng <slug>]Example
pmo adr remove --module retrieval-v1 pmo:0005 --as agent:rag
A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.pmo evidence add
Attach what was actually done, with the hours if they were measured.
pmo evidence add <id> --session <sid> --summary "<what was done>" [--hours <n> --hours-basis vcu_tokens|vcu_engineering --hours-status verified|first_valuation] [--source view|session|person]Example
pmo evidence add ret-t01 --session s-2026-09-10 --summary "ran E2" --as agent:rag
A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.pmo evidence accept
Accept one piece of evidence — never a status change.
pmo evidence accept <id> <n> --as person:<id>Example
pmo evidence accept ret-t01 0 --as person:you
A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.pmo move
Move activities to another engagement — the id does not change.
pmo activity move <id|from..to> [<id>…] --eng <slug> --to <slug> --to-module <id> [--to-feature <id>] [--dry-run] --as person:<id>