Practice
Reading the graph
What the console's graph draws. A node's colour, shape and size, the holder and age under its title, and the four strokes an edge can have.
The console at /app opens on a graph of the tasks you can reach. Each visual channel answers one question. Colour is readiness, shape is kind, size is priority, and an edge’s stroke is its kind. Learn those four and the picture reads itself.
Colour is readiness
A node’s hue is its readiness, which Flow computes from the edges and waits on every read. It is not the status somebody wrote. Nothing else in the graph carries a colour.
| Colour | Light · dark | Readiness | What it means |
|---|---|---|---|
| Green | ready | Nothing holds it. You can start it now | |
| Indigo | blocked:dependency | An open task blocks it. Finishing that task clears it | |
| Magenta | blocked:external | Someone or something outside the graph holds it. Chase them | |
| Dark grey | waiting:scheduled | A date holds it, and the date clears it. Grey because nobody has anything to do yet | |
| Pale grey | none | A closed task or a record (evidence). There is nothing to start |
A green milestone means everything that blocked it is done, so the milestone is reached and can be closed.
A status and a colour that disagree are drift. For example, a task still waiting that has turned green, or one active that is indigo. A review finds both.
Shape is kind, size is priority
A diamond is a project, a milestone. Other tasks block into it and it carries no work of its own, so it is the one node never to pick up. Every other kind is a circle.
Size is the priority somebody asserted. A task with no priority is drawn at the base size, the same as very_low, because nobody said it matters. very_high is the largest. The milestone above is indigo because five open tasks still block it.
The line under the title
The second line says who holds the task, then how fresh its evidence is: “ana · 5d”. The holder is the person or team the task is assigned to, and “you” when it is you. A task nobody holds shows the age alone, so it reads as free to take. The age is the oldest verification among the task’s references: “today”, or the days since, such as “5d”. “never” means at least one reference was never verified, or the task has no reference at all. Flow never checks a source itself, so this is how old the last look was. A long holder name is cut and the age never is. Hover a node for both in full. See references.
An edge’s stroke is its kind
Edges carry no colour. Weight says whether the edge gates readiness, and the dash says what kind of relation it is. Every link kind is drawn, with its arrow pointing from from to to.
| Stroke | Edge | In the picture |
|---|---|---|
| Heavy, solid | blocks, the one kind that holds work up |
Schema migration → Backfill |
| Heavy, dotted | A blocks chain through tasks the filter hides |
Backfill → Release |
| Hairline, long dashes | supersedes and retracts: the far end is no longer the live one |
New plan → Old plan |
| Hairline, short dashes | Every other kind: context, not work | New plan → Schema migration |
The dotted line stands in for steps you cannot see. Above, Backfill blocks a completed step, which blocks Release. The graph opens on commitments only (active, waiting, calendar and blocked; incubated ideas and reference material are one filter away), so the completed step is hidden and the chain is drawn dotted between the two ends left on screen. Release is green because a completed task holds nothing.
Nearness is derived
Tasks also drift towards each other with no line between them, when they cite the same page or sit in the same project. That pull is weaker than any edge and never drawn. A line is the one thing in the picture that says somebody asserted a relation, and two nodes that are merely close have asserted nothing.