Features
Create features, write what "finished" means, and move them through their stages.
Create features, write what "finished" means, and move them through their stages. On your own computer, pmo help <command> prints the same text, for example pmo help feature list.
pmo feature list
The features an engagement declares.
pmo feature list --eng <slug> [--module <id>] [--stage <stage>] [--group <group>]Example
pmo feature list --eng accelerator --module retrieval-v1
pmo feature list --eng accelerator --group qa # everything in QA right now
pmo feature list --eng accelerator --stage 5 # everything still at Plan
`pmo help filters` prints these filters in full, and the bare-word search.pmo feature show
One feature in full, with its rollup.
pmo feature show <id> --eng <slug>Example
pmo feature show acc-feat-reranker-v2 --eng acceleratorpmo feature create
Create a feature on an engagement.
pmo feature create --eng <slug> --name "<name>" --summary "<one plain sentence>" --module <id> [--acceptance "<what a person could check>; <another>"] [--target <iso>] [--estimate <days>] [--remaining <days>]Example
pmo feature create --eng accelerator --name "Reranker v2" --module retrieval-v1 \
--summary "Search puts the most useful document first, so people stop scrolling for answers." \
--acceptance "The most useful document is at the top of the results; people find an answer without scrolling" \
--target 2026-10-01 --estimate 8 --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 feature set
Write a feature's summary, acceptance criteria, scope or notes, assign it or move it.
pmo feature set <id> [summary="<one plain sentence>"] [acceptance="<what a person could check>; <another>"] [why="<the problem, and why now>"] [included="<a thing it covers>; <another>"] [not_included="<a thing it does not>; <another>"] [depends_on="<an id or a document>; <another>"] [notes="<technical detail>"] [name="<name>"] [owner=<id>] [target=<iso>] [test_env=<where it is tested>] [module=<id>] [project=<id>] [--eng <slug>]Example
pmo feature set acc-feat-002 --eng accelerator \
acceptance="Claude Code and Codex both show the View tools on a new computer; each session tells View who it is" \
notes="tools/list shows mcp__view__* on a cold machine" --as agent:rag
pmo feature set acc-feat-002 --eng accelerator \
why="Sessions picking up this work guess at what is in and out, and a guess that builds too much costs more to undo than one that builds too little." \
included="A session can read why the work is being done; a session can read what the work leaves out" \
not_included="Tasks and modules gain none of these fields; nothing is counted or rolled up from them" \
depends_on="acc-145; ADR 0010" --as agent:rag
# why, included and not_included are held to the plain-English rule; depends_on is not,
# because it carries the ids and documents that rule refuses
pmo feature set acc-feat-002 estimate_days=8 remaining_days=5 --eng accelerator --as agent:rag
# working days, on their own line; when its tasks carry estimates, their sum is what counts
pmo feature set acc-feat-002 client_visible=false --eng accelerator --as agent:rag
# Internal only: the feature and its tasks leave the client's report and portal; =true shows them again
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 feature stage
Move a feature to one of its twenty-two stages, the sign-offs included.
pmo feature stage <id> <stage> [--reason "<what was wrong>"] [--note "<text>"] [--eng <slug>]Example
pmo feature stage acc-feat-002 code_review --eng accelerator --as agent:rag # or its number, 10
pmo feature stage acc-feat-002 qa_failed --reason "The totals on the two screens do not match" --as agent:rag
pmo feature stage acc-feat-002 ready_for_retest --as agent:rag # back to 14 · In QA
pmo feature stage acc-feat-002 qa_passed --as person:you # a sign-off
# stages: 1 intake · 2 brainstorm · 3 product_definition · 4 design · 5 architecture · 6 plan
# 7 decision_record · 8 interactive_decision
# 9 implementation · 10 code_review · 11 verify_and_test · 12 merged
# 13 ready_for_qa · 14 in_qa · 15 qa_passed
# 16 ready_for_customer_review · 17 in_customer_review · 18 customer_accepted
# 19 release_check · 20 released · 21 verified_in_production · 22 done
# a number is a position and moves when a stage is added; a script types the key
# returns: qa_failed (from QA, needs --reason) · ready_for_retest (from Build)
# changes_requested (from Customer, needs --reason)
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 feature plan
Say whether a feature was in the agreed plan or taken on later.
pmo feature plan <id> planned|later|unreviewed [--all-below] [--eng <slug>] [--note "<why>"]Example
pmo feature plan acc-feat-030 later --eng accelerator --as agent:rag
pmo feature plan acc-feat-002 planned --all-below --eng accelerator --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 feature remove
Take a feature off the record — only once no work or milestone names it.
pmo feature remove <id> --eng <slug>Example
pmo feature remove acc-feat-009 --eng accelerator --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.