Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

cdno action

Manage a project’s next actions: add (optionally as a manifest note), promote a bullet to a note, complete, drop, and list.

cdno action [OPTIONS] <COMMAND>

Subcommands

SubcommandDescription
addAppend a next action to a project
startLog that work on an action is starting
promotePromote a plain bullet to a wikilinked manifest note
completeMark an action done by substring match
dropClose an action without recording it as done
listList a project’s open actions

Write subcommands honour --json ({path, message}, non-interactive); list emits its data under --json.


cdno action add

Append a next action to a project. --note also scaffolds a manifest note and wikilinks the bullet.

FlagDescription
--project <SLUG>Project slug.
--title <TITLE>Action title.
--energy <ENERGY>deep, medium, or light.
--noteAlso create a manifest note alongside the bullet and wikilink it.
--var <NAME=VALUE>Value for a custom action-note template’s prompted variable ([variables.prompt]). Repeatable. Only applies with --note (a plain bullet isn’t templated). See Prompted variables.
cdno action add --project surrogate-model --title "Profile the assembly step" --energy medium
cdno action add --project surrogate-model --title "Characterise sample efficiency" --energy deep --note

cdno action promote

Promote an existing plain bullet to a wikilinked manifest note. Substring-matches the bullet text; energy is inherited.

FlagDescription
--project <SLUG>Project slug.
--query <QUERY>Case-insensitive substring of the bullet text.
--var <NAME=VALUE>Value for a custom action-note template’s prompted variable ([variables.prompt]). Repeatable. Promotion scaffolds an action note, so it gathers the same prompts as add --note. See Prompted variables.
cdno action promote --project surrogate-model --query "profile the assembly"

cdno action start

Log that work on an action is starting: writes started [[slug]] — <bullet> to today’s daily note, which is what cdno now reads back.

The action must already be on the map. A start names a bullet, so that the later completion logs matching text and the focus clears — a start naming nothing could never be closed. What gets logged is the resolved bullet text, not your query, so --query "draft methods" logs Draft methods (deep).

cdno action promote is the one thing that breaks the pairing: it rewrites the bullet it matched, so promoting between a start and its close strands the focus for the rest of the day — cdno now keeps naming the old text and both complete and drop then match nothing. Close the action before promoting it, or re-run the start afterwards.

FlagDescription
--project <SLUG>Project slug.
--query <QUERY>Substring of an existing bullet. Conflicts with --unplanned.
--unplannedStart work that is on no map yet: adds the bullet, then starts it.
--title <TEXT>Title for the new bullet. Requires --unplanned.
--energy <LEVEL>deep, medium or light. Requires --unplanned.

An ambiguous --query is a question rather than a dead end: in a terminal you get a picker over the candidates, and non-interactively they are listed one per line. The same holds for complete, drop and promote, which resolve through the same matcher.

One case no picker can settle: two open bullets whose text differs only in case, or not at all. The domain’s whole-bullet tiebreak compares case-insensitively, so it sees two exact matches, declines, and picking either re-ambiguates. Edit one of the bullets to tell them apart.

# start something already planned
cdno action start --project surrogate-model --query "feature set B"

# start something that was never planned — adds the bullet and starts it
cdno action start --project surrogate-model --unplanned \
    --title "Fix the CI badge" --energy light

--unplanned is deliberately explicit rather than a fallback when --query matches nothing: a fallback would turn every typo into a new action, silently. --title and --energy require it, so passing them alone is a parse error naming --unplanned rather than a start on some other bullet.

cdno action complete

Mark a next action completed by case-insensitive substring match. A wikilinked bullet also archives its note to actions/_done/<year>/.

FlagDescription
--project <SLUG>Project slug.
--query <QUERY>Substring of the bullet text.
cdno action complete --project surrogate-model --query "feature set B"

cdno action drop

Close a next action without recording it as done — for work that was superseded, abandoned or reprioritised. Matches the bullet exactly as complete does; a wikilinked bullet also archives its note to actions/_done/<year>/, stamped status: dropped with no completion date.

FlagDescription
--project <SLUG>Project slug.
--query <QUERY>Substring of the bullet text.
--reason <TEXT>Optional: why it was dropped.
cdno action drop --project surrogate-model --query "demo proposal" \
    --reason "superseded by the demo-planning action"

Use this rather than complete whenever the work was not actually performed. complete writes action done on [[…]] into the daily log, which is the record the weekly review, the monthly scan and every later verdict read back from — so completing something that never happened leaves the vault asserting work nobody did, and the only repair is a correction line written by hand.

--reason is optional but worth giving: “superseded by X” and “no longer wanted” are different facts, and only one of them tells a later reader to go looking for the replacement. It is recorded on a continuation line under the log entry.

A dropped action does not appear in the completed-actions views that the weekly and monthly reviews build, because it carries no completion date.

cdno action list

List a project’s open action bullets, with attached-note status (active / blocked / completed / dropped) inline when present. Honours --json.

FlagDescription
--project <SLUG>Project slug.
cdno action list --project surrogate-model
cdno action list --project surrogate-model --json

add_action, promote_action, start_action, start_unplanned_action, complete_action, drop_action. (Open actions are also visible via get_project_context; what is currently started via current_focus.)

See also