# Features

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

Source: https://docs.crossbot.io/pmo/cli/reference/features
Product: pmo · Kind: reference · Status: live · Last verified: 2026-10-21

{/* Generated by scripts/gen-pmo-cli-reference.mjs from `pmo help`. Do not edit by hand. */}
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.

```sh
pmo feature list --eng <slug> [--module <id>] [--stage <stage>] [--group <group>]
```

**Example**

```sh
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.

```sh
pmo feature show <id> --eng <slug>
```

**Example**

```sh
pmo feature show acc-feat-reranker-v2 --eng accelerator
```

## `pmo feature create`

Create a feature on an engagement.

```sh
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**

```sh
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.

```sh
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**

```sh
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.

```sh
pmo feature stage <id> <stage> [--reason "<what was wrong>"] [--note "<text>"] [--eng <slug>]
```

**Example**

```sh
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.

```sh
pmo feature plan <id> planned|later|unreviewed [--all-below] [--eng <slug>] [--note "<why>"]
```

**Example**

```sh
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.

```sh
pmo feature remove <id> --eng <slug>
```

**Example**

```sh
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.
```
