package main import ( "path/filepath" "strings" "time" ) // flowsCache mirrors issuesCache but for dev/flows/*.md. var flowsCache = &cardsCache{ttl: 30 * time.Second} // mapFlowStatusToColumn maps flow frontmatter status -> kanban column id. // Flows use a different vocabulary than issues. func mapFlowStatusToColumn(status string) string { switch strings.ToLower(strings.TrimSpace(status)) { case "pending", "": return "Pending" case "running": return "Running" case "done": return "Done" case "deferred": return "Deferred" default: return "Pending" } } func loadFlowCards(dir string) ([]IssueCard, error) { return loadCardsFromDir(dir, mapFlowStatusToColumn, "flow") } func flowsDir() string { return filepath.Join(registryRoot(), "dev", "flows") }