Projects
Projects, their charters and the architecture of what they build.
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 vaultpmo 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.pmo project link add
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.pmo project link set
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.pmo project link remove
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 --jsonpmo 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