Commands

Slash commands reference

Type these in Cursor chat. /tkmd-commit is the only command that commits.

Commands index

SlashPurpose
/tkmd-initInitialize a Taskmark board in the workspace
/tkmd-verifyMigrate an existing board: repair scaffold, delete leftover generated files, strip legacy item markdown
/tkmd-planFit the smallest useful hierarchy to existing board work from prose
/tkmd-saveAfter Cursor Plan mode, turn the plan into epic/story/task/bug items and carry plan visuals into those items
/tkmd-save-doSave like /tkmd-save, then implement the newly created items like /tkmd-do
/tkmd-plan-doPlan like /tkmd-plan, then implement the newly created items like /tkmd-do
/tkmd-doImplement work; never commits; executed leaves become done
/tkmd-shelfDiscard never-implemented work as shelved; never commits
/tkmd-changelogRebuild CHANGELOG Unreleased from recent done work; never commits
/tkmd-versionPromote Unreleased into a dated SemVer section and set that version on every linked product
/tkmd-reportmeReport my done work since the last report into gitignored .reports/
/tkmd-commitCommit dirty linked repos (the only commit command)

/tkmd-init

Bootstraps a board in the workspace. Single git project: files live at <project>/taskmark/. Multiple git projects: a sibling <common>-taskmark repo is the board root (flat — no nested taskmark/).

  • The board is never copied into every product repo
  • REPOS.md is generated locally and gitignored — it maps board and product roots on this machine and is not committed
  • A new board is markdown under epics/ only; there is no generated board index, sizing file, velocity file, or board README

/tkmd-verify

Migrates an existing board to the current Taskmark layout. /tkmd-init is first create or light repair; /tkmd-verify is for boards that still have leftover generated files or legacy item markdown. It never commits.

  • Locates the canonical board, then repairs UI stubs, gitignore (including REPOS.md and .reports/), @taskmark/ui, and the static project README using the same overwrite rules as init
  • Deletes leftover generated files at the board root (INDEX.md, SIZING.md, VELOCITY.md, shared ID counters) and a nested generated dashboard README after the static README is in the right place
  • Strips retired frontmatter and parent-only child lists / log sections, while leaving leaf Prompt & feedback, Commits, and Work log in place
  • Extra taskmark/ copies in product repos are reported, not deleted, unless they are clearly generated duplicates
  • Does not create INDEX.md, SIZING.md, VELOCITY.md, or CHANGELOG.md

/tkmd-plan

Searches open and done board work, then plans the smallest useful hierarchy from prose. New IDs are collision-resistant (type prefix E / S / T / B plus a unique token — not a global sequential counter). Existing sequential IDs on a board remain valid.

  • If exact or overlapping work exists, creates nothing and reports the match for execution or follow-up feedback
  • Fits tasks/bugs under an existing story or epic, stories under an existing epic, and creates a new epic only for a distinct initiative that fits nowhere
  • Writes only new item files (including any new parent files in the plan). It does not edit existing parent epic.md / story.md child lists or rollups
  • Splits broad work into cohesive stories and independently executable leaves with clear acceptance criteria
  • Leaf size and points come from the static table (XS=1 … XXL=21); strongly split XL and always refine XXL before execution
  • The UI discovers children and derives parent lists, status, and points at read time

/tkmd-save

After Cursor Plan mode, reads the approved plan and turns it into Taskmark epic, story, task, and bug files. It carries diagrams and other visuals from the plan onto the matching new items. It never commits and does not implement the work.

  • Locates the plan from an explicit path, the current Plan mode artifact, workspace .cursor/plans/, or ~/.cursor/plans/
  • Uses the same search, dedupe, hierarchy, and new-files-only rules as /tkmd-plan
  • Prefer this after Plan mode instead of retyping the plan as prose for /tkmd-plan
  • Then implement with /tkmd-do, or use /tkmd-save-do when you want save-from-plan and implementation in one step

/tkmd-save-do

Saves like /tkmd-save, then implements the newly created items like /tkmd-do. It is not a replacement for save-only or do-later. It never commits.

  • If save creates nothing (exact or overlapping match), implementation is skipped and the match is reported
  • If a new epic or story was created, implements that highest new parent; otherwise implements each newly created leaf
  • Does not set in_progress; executed leaves become done
  • Use /tkmd-save when you want to review the board items before implementing

/tkmd-plan-do

Plans like /tkmd-plan, then implements the newly created items like /tkmd-do. It is not a replacement for plan-only or do-later. It never commits.

  • If planning creates nothing (exact or overlapping match), implementation is skipped and the match is reported
  • If a new epic or story was created, implements that highest new parent; otherwise implements each newly created leaf
  • Does not set in_progress; executed leaves become done
  • Use /tkmd-plan when you want to review the board items before implementing

/tkmd-do

Implements the requested work on the board. It never commits (no git commit, no multi-repo commit). It does not move items through in_progress. When the agent stops, leaves it executed are done.

  • Mutates only the target leaf markdown (status, acceptance criteria, Prompt & feedback, work log on that file)
  • Follow-up on a done task logs Prompt & feedback there; a new leaf is created only when nothing fits
  • Cancelled and shelved leaves are terminal and are not mandatory implementation scope
  • Does not write parent files or generated indexes
  • Use /tkmd-commit when you want git commits

/tkmd-shelf

Discards planned work that will never be implemented. It marks eligible task/bug leaves status: shelved and sets completed_at, while preserving unchecked acceptance criteria and keeping the outcome distinct from done.

  • A story or epic target shelves every open, non-cancelled, non-shelved descendant leaf
  • Never edits parent markdown; parent status is derived at read time
  • Never sets cancelled: true, commits, or pushes
  • Shelved work is terminal and is hidden by Hide completed

/tkmd-changelog

Rebuilds the Unreleased section of board-root CHANGELOG.md from recent done task and bug leaves. Notes are user-facing, past tense, and contain no work-item IDs. The file is created if missing. This is not a README changelog.

  • Cutoff is the newest ## x.y.z - YYYY-MM-DD heading; shelved and cancelled leaves are ignored
  • Headings follow Portuguese Keep a Changelog style (Não publicado, then dated version sections)
  • Never edits epic, story, or leaf markdown; never commits or pushes
  • Not run from /tkmd-do — maintainers run it when they want notes

/tkmd-version

Cuts a SemVer on the board. It infers major, minor, or patch from Unreleased work, or uses an explicit version. It promotes Unreleased into ## x.y.z - YYYY-MM-DD, clears Unreleased, and writes that version to the board package.json, every linked product-root package.json, and the Cursor plugin plugin.json.

  • If Unreleased is empty, it collects the same notes as /tkmd-changelog, or stops if nothing is new
  • Does not bump nested example or stub packages
  • Does not create git tags, GitHub Releases, npm publishes, commits, or pushes

/tkmd-reportme

Writes a personal report of work you finished since the previous report. The file is .reports/report-YYYYMMDD.md on the board, in the board writing language. It is gitignored — reports stay local and are never committed.

  • Includes only done task and bug leaves whose resolvers match the current git identity
  • Cutoff is the newest earlier report-YYYYMMDD.md; a first report covers everything so far
  • Bullets are user-facing and past tense, with no work-item IDs — the same Keep a Changelog style as /tkmd-changelog
  • Never edits epic, story, or leaf markdown; never writes CHANGELOG.md or the board README
  • Never commits or pushes; not run from /tkmd-do

/tkmd-commit

The only commit entrypoint. Commits every dirty linked git root with a simple one-line message. Does not push unless asked.

  • Does not replace /tkmd-do — implement first, commit when you choose
  • Commit SHAs belong on leaf Commits tables; parent commit views are aggregated in the UI