✕Cross Docs

Features

Create features, write what "finished" means, and move them through their stages.

liveReferenceLast verified 21 Oct 2026
View as Markdown

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 accelerator

pmo 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.

On this page