Quick Start
A minimal tasks.yaml:
tasks:
- {id: design, title: Design, status: done}
- {id: build, title: Build, status: in_progress, depends_on: [design]}
- {id: ship, title: Ship, status: goal, depends_on: [build]}
Render it to a dependency-graph PNG from Python:
import scitex_cards as cards
tasks = cards.load_tasks("tasks.yaml")
mermaid_src = cards.build_mermaid(tasks)
engine = cards.render(mermaid_src, "tasks.png") # 'mmdc' or 'kroki'
…or from the shell:
# store: $SCITEX_CARDS_DB (PostgreSQL on 55432); unset raises
scitex-cards render-graph -o tasks.png
# inspect the generated mermaid without rendering
scitex-cards render-graph --print-mermaid
# list the resolved tasks (machine-readable with --json)
scitex-cards list-tasks --json
Task schema
Each task in the tasks: list:
Field |
Required |
Meaning |
|---|---|---|
|
yes |
unique id, referenced by |
|
yes |
short label |
|
yes |
|
|
no |
owning repo / area |
|
no |
ids this task depends on (arrow |
|
no |
ids this task inhibits ( |
|
no |
free-text annotation |
|
no |
integer rank (lower = higher); document order if absent |
|
no |
id of the task this nests under (drill-down view) |
Where your task data lives
scitex-cards ships only the mechanism — no task content. The store is
PostgreSQL on 55432, and there is ONE store identity:
an explicit
store/--storeargument (wins even if missing)$SCITEX_CARDS_DB— e.g.postgresql://scitex_cards@127.0.0.1:55432/scitex_cards
Nothing else. Unset raises. There is deliberately no second-engine tier, no project
scope (a per-repo store meant one agent saw a different board depending on which
directory it started in), and no bundled examples/tasks.yaml fallback. Two
backends would be two ways to be wrong about which board you are reading.