✕Cross Docs

Projects

Projects, their charters and the architecture of what they build.

liveReferenceLast verified 21 Oct 2026
View as Markdown

Projects, their charters and the architecture of what they build. On your own computer, pmo help <command> prints the same text, for example pmo help project create.

pmo project create

Create a project on an engagement, with its charter and the template's architecture.

pmo project create --eng <slug> --name "<name>" --what "<one sentence>" --purpose "<why it exists>" --goal "<goal>" --goal "<goal>" [--goal …, up to 5] --owner <person> [--ref <n>] [--code <code>] [--no-architecture] --as person:<id>

Example

pmo project create --eng accelerator --name "Factory parity" \
  --what "A place every record can be read." \
  --purpose "So nobody rebuilds the same answer twice." \
  --goal "One clear record." --goal "Answers in a day." --owner you --as person:you
# handle <client>-<project>: cross-factory; --code <code> picks the project part

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 project list

Every project, or one engagement's, with their modules counted.

pmo project list [<word>] [--eng <slug>] [--client <id>] [--health <h>] [--q <text>] [--json]

Example

pmo project list --client example

`pmo help filters` prints these filters in full, and the bare-word search.

pmo project show

One project's modules and their activities by track and status.

pmo project show <id> [--eng <slug>] [--json]

Example

pmo project show vault

pmo project remove

Take a project off an engagement — only once it holds no live module (--fold keeps its modules where they are).

pmo project remove <id> [--eng <slug>] [--fold] [--note "<why>"] --as person:<id>

Example

pmo project remove cross-platform --eng cross-platform --as person:you
# only once the record is closed with a superseded_by, or the project
# holds no live module — otherwise it is refused, naming the modules.

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 project set

Rename a project, number it, give it a code, file it under a group or phase, describe it, or write its charter.

pmo project set <id> name="<plain name>" | ref=<number> | code=<code> | use_case=… | group=<id> | phase=<id> | description=… | purpose=… | owner=<person> | sponsor=… | start_date=<YYYY-MM-DD> | target_date=<YYYY-MM-DD> [--eng <slug>]

Example

pmo project set cross-pmo --eng accelerator name="PMO" --as person:you
pmo project set vault --eng accelerator purpose="So retrieval answers come from one place." owner=you target_date=2026-12-31 --as person:you
pmo project set vault --eng accelerator client_visible=false --as agent:rag   # Internal only: the project and everything under it

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 project goal add

Add one of a project's two to five goals.

pmo project goal add <project> "<goal>" [--at <n>] --eng <slug>

Example

pmo project goal add vault "Answers in a day." --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 project goal set

Rewrite goal number <n> of a project.

pmo project goal set <project> <n> "<goal>" --eng <slug>

Example

pmo project goal set vault 2 "Answers within a day." --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 project goal remove

Take goal number <n> off a project, keeping at least two.

pmo project goal remove <project> <n> --eng <slug>

Example

pmo project goal remove vault 3 --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 project measure add

Add how a project's goals are known to be met.

pmo project measure add <project> "<measure>" [--at <n>] --eng <slug>

Example

pmo project measure add vault "A new question is answered the same day." --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 project measure set

Rewrite success measure number <n> of a project.

pmo project measure set <project> <n> "<measure>" --eng <slug>

Example

pmo project measure set vault 1 "Answered within a day." --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 project measure remove

Take success measure number <n> off a project.

pmo project measure remove <project> <n> --eng <slug>

Example

pmo project measure remove vault 1 --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 project scope add

Say what is in a project's scope, or out of it.

pmo project scope add <project> in|out "<item>" [--at <n>] --eng <slug>

Example

pmo project scope add vault in "The retrieval service" --eng accelerator --as person:you
pmo project scope add vault out "Billing" --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 project scope set

Rewrite item <n> in or out of a project's scope.

pmo project scope set <project> in|out <n> "<item>" --eng <slug>

Example

pmo project scope set vault out 1 "Invoicing" --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 project scope remove

Take item <n> off a project's scope list.

pmo project scope remove <project> in|out <n> --eng <slug>

Example

pmo project scope remove vault out 1 --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.

Record where a project's code or documentation lives.

pmo project link add <project> repository|docs <https-url> [label="…"] --eng <slug>

Example

pmo project link add vault repository https://github.com/example-org/vault label="The code" --eng accelerator --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.

Change link number <n> of a project.

pmo project link set <project> <n> kind=repository|docs | url=<https-url> | label="…" --eng <slug>

Example

pmo project link set vault 1 label="Vault code" --eng accelerator --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.

Take link number <n> off a project.

pmo project link remove <project> <n> --eng <slug>

Example

pmo project link remove vault 1 --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 project entity add

Add a level to the entity chain of the product a project builds.

pmo project entity add <project> id=<id> name="<Name>" [description="…"] [belongs_to=<level>] [how_many=one|many] [at=<n>] --eng <slug>

Example

pmo project entity add genesis id=workspace name="Workspace" \
  description="A team's space inside an organization." belongs_to=organization how_many=many \
  --eng accelerator --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 project entity set

Rename, describe, re-parent or move one level — its id never changes.

pmo project entity set <project> <level> name=… | description=… | belongs_to=… | how_many=one|many | at=<n> --eng <slug>

Example

pmo project entity set genesis organization name="Organization" description="A company or client using the platform." how_many=many --eng accelerator --as agent:rag
pmo project entity set genesis member belongs_to=organization --eng accelerator --as person:you   # re-parent it to an earlier level

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 project entity remove

Take a level off the chain, while no other belongs to it.

pmo project entity remove <project> <level> --eng <slug>

Example

pmo project entity remove genesis workspace --eng accelerator --as person:you
# refused while another level belongs to it, naming that level

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 project role add

Add a role — a column of the product's permission matrix.

pmo project role add <project> id=<id> name="<Name>" [summary="…"] [at=<n>] --eng <slug>

Example

pmo project role add genesis id=viewer name="Viewer" summary="Reads, and writes nothing at all." --eng accelerator --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 project role set

Rename, describe or move one role — its id never changes.

pmo project role set <project> <role> name=… | summary=… | at=<n> --eng <slug>

Example

pmo project role set genesis viewer name="Viewer" summary="Reads everything it is granted." --eng accelerator --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 project role remove

Take a role off, with its permissions.

pmo project role remove <project> <role> --eng <slug>

Example

pmo project role remove genesis viewer --eng accelerator --as person:you   # takes its permissions with it

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 project action add

Add an action — a row of the product's permission matrix, the "Can…" words.

pmo project action add <project> id=<id> name="<Can… words>" [at=<n>] --eng <slug>

Example

pmo project action add genesis id=read name="Read everything in a workspace they reach" --eng accelerator --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 project action set

Reword or move one action — its id never changes.

pmo project action set <project> <action> name=… | at=<n> --eng <slug>

Example

pmo project action set genesis read name="Read everything they reach" --eng accelerator --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 project action remove

Take an action off, with its permissions.

pmo project action remove <project> <action> --eng <slug>

Example

pmo project action remove genesis read --eng accelerator --as person:you   # takes its permissions with it

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 project permission set

Set one cell of the matrix: a role may do an action, on its own work only, or not at all.

pmo project permission set <project> <role> <action> allowed|own_only|not_allowed --eng <slug>

Example

pmo project permission set genesis viewer read allowed --eng accelerator --as agent:rag
pmo project permission set genesis member remove-work own_only --eng accelerator --as agent:rag
pmo project permission set genesis member remove-work not_allowed --eng accelerator --as agent:rag   # deletes the cell

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 project rule add

Add an access rule the matrix cannot say.

pmo project rule add <project> "<rule>" [--at <n>] --eng <slug>

Example

pmo project rule add genesis "An Owner reaches every workspace with no grant." --eng accelerator --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 project rule set

Rewrite access rule number <n>.

pmo project rule set <project> <n> "<rule>" --eng <slug>

Example

pmo project rule set genesis 2 "An Owner reaches every workspace, with no grant." --eng accelerator --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 project rule remove

Take access rule number <n> off.

pmo project rule remove <project> <n> --eng <slug>

Example

pmo project rule remove genesis 2 --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 project architecture copy

Copy the template's architecture, or another project's, over a project's — a Manager.

pmo project architecture copy <project> --eng <slug> [--from <eng>/<project>] [--replace] --as person:<id>

Example

pmo project architecture copy vault --eng accelerator --as person:you
pmo project architecture copy vault --eng accelerator --from accelerator/genesis --replace --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 project template show

The project whose architecture every new project copies, and what it holds.

pmo project template show [--json]

Example

pmo project template show
pmo project template show --json

pmo project template set

Point the template every new project copies — an Owner.

pmo project template set <eng>/<project>|none --as person:<id>

Example

pmo project template set accelerator/genesis --as person:you
pmo project template set none --as person:you   # new projects start with no architecture

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 project plan

Say whether a project was in the agreed plan or taken on later.

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

Example

pmo project plan example-lakehouse planned --all-below --eng example-client --note "in the signed statement of work" --as person:you
pmo project plan example-import later --eng example-client --as agent:rag   # it was never planned
# states: planned · later (it was never planned) · unreviewed (clears the mark)
# --all-below writes the same mark on every live module, feature and task under it

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 project restrict

Let only the Owners and a list of people see one project — you are put on the list.

pmo project restrict <id> --eng <slug> --as person:<id>

Example

pmo project restrict acquisition --eng cross-energy --as person:you
# only the Owners and the people on its list can see it now, and whoever
# restricts it is on the list. Everybody else is told nothing about it.

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 project unrestrict

Open a restricted project to everybody on its engagement again.

pmo project unrestrict <id> --eng <slug> --as person:<id>

Example

pmo project unrestrict acquisition --eng cross-energy --as person:you   # open to the engagement 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 project access add

Put a person or a group on a restricted project's list.

pmo project access add <person|group:id> <project> --eng <slug> --as person:<id>

Example

pmo project access add you acquisition --eng cross-energy --as person:you
pmo project access add group:leadership acquisition --eng cross-energy --as person:you
# the list only narrows: they see it only where they already reach the engagement

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 project access remove

Take a person or a group off a restricted project's list.

pmo project access remove <person|group:id> <project> --eng <slug> --as person:<id>

Example

pmo project access remove you acquisition --eng cross-energy --as person:you
# the last person on a restricted list cannot be taken off it — add somebody first

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 project access show

Whether a project is restricted, and who is on its list.

pmo project access show <project> --eng <slug> [--json]

Example

pmo project access show acquisition --eng cross-energy
pmo project access show acquisition --eng cross-energy --json

On this page