-
Notifications
You must be signed in to change notification settings - Fork 0
Command memory
One surface over every durable-knowledge kind. All of it is embedded at index time and surfaces in semantic search. For concepts and workflow see Project Memory and Tracking Work: Epics, Stories & Tasks.
columbus memory <add|update|remove|list> <kind> [args] [flags]<kind> is one of:
| Kind | What it is |
|---|---|
epic |
Top-level body of work |
story |
A unit under an epic (--parent epic_NNN) |
task |
A unit under a story (--parent story_NNN) |
context |
Free-form memory: decision, pattern, failure, command, glossary (--type) |
tag |
Read-only view of the tags across all knowledge (list only) |
The work hierarchy is epic → story → task. Columbus stores and retrieves —
it never drives or gates transitions. status is a recorded field from a fixed
vocabulary: todo, in_progress, blocked, done, cancelled (any → any).
| Flag | Applies | Description |
|---|---|---|
--title |
all | Short title |
--body |
all | Description / body |
--parent |
story, task | Parent id (epic for a story, story for a task) |
--type |
context | Sub-kind: decision|pattern|failure|command|glossary
|
--tag |
all | Tag (repeatable) |
--ref |
context | Link file:<path> / symbol:<name> (repeatable) |
--evidence |
context | Evidence anchor path:start-end (repeatable) |
Partial update. Beyond --title/--body/--parent (re-parent), --tag via
--add-tag/--remove-tag:
| Flag | Applies | Description |
|---|---|---|
--status |
work | Record a status change (appends an event) |
--comment |
work | Append a note (with --status, annotates the change) |
--add-ref / --remove-ref
|
all | References (work) / links (context) |
--add-evidence / --remove-evidence
|
context | Evidence anchors |
--type |
context | Re-type a context entry |
Hard delete; the id is retired. --force is required (destructive). Removing an
epic cascades its stories and tasks; removing a story cascades its tasks.
Filters: --parent, --status, --tag, and --type (context). list tag
shows distinct tags with counts.
$ columbus memory add context --type decision \
--title "Default port is 8080" \
--body "parseConfig falls back to 8080 when PORT is unset" \
--evidence src/config.ts:4-6 --ref symbol:parseConfig --tag config
mem_001 [decision] Default port is 8080
$ columbus memory add epic --title "Ship search" --tag infra
$ columbus memory add story --parent epic_001 --title "Indexing"
$ columbus memory add task --parent story_001 --title "Index FTS"
$ columbus memory update task task_001 --status in_progress --comment "started"
$ columbus memory update epic epic_001 --add-ref file:internal/search/search.go
$ columbus memory list task --parent story_001
1 tasks
task_001 [in_progress] Index FTS (story_001)
$ columbus memory list tag
2 tags
config (1)
infra (1)
$ columbus memory remove epic epic_001 --force # cascades stories + tasksReferences are drift-checked against indexed file/dir/memory/symbol
targets; an unresolved ref surfaces as a warning on the item (never fatal).
Inspect any entity with show (show epic/show task), and move
whole projects with import & export.
0 success (incl. "usable with warnings") · 2 usage (e.g. remove without
--force, unknown kind/status) · 3 not initialized. See Exit Codes.
Project Memory · Tracking Work: Epics, Stories & Tasks · import & export
Columbus — the navigator your coding agent has been missing · local-only, deterministic code context · Repository · Issues · MIT License
Getting started
Concepts
Guides
- Using Columbus with Your Agent
- Searching Effectively
- Navigating Code
- Project Memory
- Tracking Work: Epics, Stories & Tasks
- Keeping the Index Fresh
Command reference
Reference
- Output Modes
- JSON Contract & Errors
- Exit Codes
- Configuration
- Supported Languages
- Color & Environment
Project