list_workflows
Discover the semantic workflows in a codebase by auto-clustering functions into 25 domains. Get per-workflow narrative impact, member count, risk metrics, and runtime hypotheses without relying on code structure.
Instructions
Auto-clusters the entire repository graph into 25 semantic workflow domains (Authentication, Authorization, Session, Payments, Billing, Checkout, Cart, Notifications, Webhooks, Realtime, Queue, Caching, Persistence, Sync, Search, Onboarding, Profile, Admin, Analytics, AI, Routing, Orchestration, Reporting, Configuration, Infrastructure) using a weighted vote across path tokens, import tokens, and symbol tokens. Returns per-workflow narrative impact, member count, max risk, average risk, and runtime risk hypotheses. This is the workflow-first view of the repository — the most important Veris tool for understanding what a codebase actually does rather than how it's structured.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- The WorkflowClassifier.report() method orchestrates classification by calling classify() then aggregate(), producing the final WorkflowReport (workflows, aggregates, unassigned nodes) consumed by handleListWorkflows().
public report( report: RepositoryIntelligenceReport, graph: BehavioralGraph, diff: DiffReport, risks: RiskReport[] ): WorkflowReport { const domains = this.classify(report, graph); const aggregates = this.aggregate(domains, diff, risks); const uncategorized = domains.find(d => d.kind === WorkflowKind.Uncategorized); const nodeById = new Map(graph.getNodes().map(n => [n.id, n])); const unassigned: GraphNode[] = uncategorized ? uncategorized.memberNodeIds.map(id => nodeById.get(id)).filter((n): n is GraphNode => !!n) : []; return { workflows: domains, aggregates, unassigned }; }