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 stewardship

Manage stewardship dashboards: create (flat or expanded), list, show, and append a periodic commitment line. Filing a tracking entry is the separate cdno track verb.

cdno stewardship [OPTIONS] <COMMAND>

Subcommands

SubcommandDescription
createCreate a stewardship (flat, or expanded with --tracking)
listList stewardships with variant, tracking count, staleness
showShow a stewardship’s frontmatter + dashboard excerpt
add-periodicAppend a periodic commitment line
complete-periodicComplete one occurrence, rolling next: forward

create/add-periodic/complete-periodic honour --json ({path, message}); list/show emit their data under --json.


cdno stewardship create

Create a stewardship dashboard. --tracking makes it expanded (a stewardships/<slug>/ folder with room for tracking/ and routines/); without it, the dashboard is a single flat file.

FlagDescription
--name <NAME>Human-readable name (the slug derives from it).
--context <CONTEXT>Life domain (work, household, personal, …).
--trackingCreate the expanded variant with a tracking/ folder.
--var <NAME=VALUE>Value for a custom template’s prompted variable ([variables.prompt]). Repeatable. See Prompted variables.
cdno stewardship create --name "Finances" --context household           # flat
cdno stewardship create --name "Health" --context personal --tracking   # expanded

cdno stewardship list

List every stewardship with its variant, tracking count, and staleness badge. Honours --json.

In a terminal this then offers to open one of the stewardships it just listed, printing what cdno stewardship show would and asking again until you press Esc. Piped output, --no-interactive, and --json skip the prompt. See Colour and interactivity.

cdno stewardship list
cdno stewardship list --json | jq '.[] | {slug, variant}'

cdno stewardship show

Show a stewardship’s frontmatter and an excerpt of the dashboard body. Honours --json (a detail object including variant and body_markdown).

FlagDescription
--slug <SLUG>Stewardship slug.
cdno stewardship show --slug health

cdno stewardship add-periodic

Append a periodic commitment line to the dashboard’s ## Periodic Commitments section. The line becomes a row in the aggregated cdno commitments view.

FlagDescription
--stewardship <SLUG>Stewardship slug.
--title <TITLE>Commitment title (e.g. “Dental check-up”).
--every <RECURRENCE>Recurrence: daily, weekly, monthly, yearly, or every N months. See Recurrence syntax.
--next <YYYY-MM-DD>Next due date.
cdno stewardship add-periodic --stewardship health --title "Dental check-up" \
     --every "every 6 months" --next 2026-09-01

cdno stewardship complete-periodic

Complete one occurrence of a periodic commitment, rolling its next: date forward by that line’s own recurrence. Named to pair with add-periodic: it completes an occurrence, not the stewardship, which is perpetual and never completes.

FlagDescription
--stewardship <SLUG>Stewardship slug.
--title <SUBSTRING>Case-insensitive substring of the commitment’s title.
--at <YYYY-MM-DD>Date the work was actually done. Defaults to today.
cdno stewardship complete-periodic --stewardship health --title "dental"
cdno stewardship complete-periodic --stewardship health --title "dental" --at 2026-08-25

Before this verb there was no way to mark a periodic commitment done: it is a bullet, not a note, so cdno commit done has nothing to act on, and the reminder kept firing until the file was hand-edited — the one edit the vault asks you not to make.

The next date is computed from the due date, never from --at. A check-up every 6 months, done a week early each time, would creep a week earlier every cycle if the schedule followed the work. Anchored to the due date, a run of early completions leaves the schedule where it was. A late completion advances until next: is in the future, so one neglected commitment comes back on schedule rather than several reminders deep.

One case the calendar imposes: a monthly commitment on the 31st has no 31st to land on in February, so it clamps to the 28th and keeps the 28th thereafter — the bullet records the next date, not the day the schedule nominally wants.

The entry records the completion and where the schedule moved to:

- **09:30**: periodic done on [[health]] — Dental check-up
  was: 2026-09-01
  now: 2027-03-01

A line whose recurrence the parser cannot read is refused rather than guessed — see Recurrence syntax for the accepted forms. Such a line is otherwise unaffected: it still appears in cdno commitments and lint still accepts it.

create_stewardship, get_stewardship_tracking, add_periodic_commitment, complete_periodic.

See also