On this page
Diagrams
teamapi render <patterns> --scope <scope> renders the resolved org graph as Mermaid or DOT, where <scope> is topology, context-map, hierarchy (needs --team <id>), or org-hierarchy. Add --format dot for Graphviz, --out <file> to write to disk instead of stdout, or --with-agents to include declared agents in org-hierarchy. The diagrams below are ACME Org's.
Team-interaction organigram: --scope topology#
Who talks to whom, and how tightly.
flowchart LR enabling_devex["Enabling DevEx"] platform_payments["Platform Payments"] stream_checkout["Stream Checkout"] stream_onboarding["Stream Onboarding"] stream_checkout -->|"platform / x-as-a-service"| platform_payments stream_checkout -->|"collaboration / depends (Slowing)"| stream_onboarding stream_onboarding -.->|"facilitating"| enabling_devex stream_onboarding -.->|"depends (OK)"| platform_payments classDef default fill:#ede9fe,stroke:#7c3aed,stroke-width:1px,color:#1e1b4b;
DDD context map: --scope context-map#
This view maps the same relationships to DDD patterns, showing how the underlying software should fit together. A team's explicit contextMappingPattern takes precedence. When none is declared, TeamAPI infers one from the Team Topologies interaction mode (x-as-a-service → OpenHostService, collaboration → Partnership). facilitating remains unclassified because it describes coaching, not a runtime integration.
flowchart LR enabling_devex["Enabling DevEx"] platform_payments["Platform Payments"] stream_checkout["Stream Checkout"] stream_onboarding["Stream Onboarding"] stream_checkout -->|"CustomerSupplier"| platform_payments stream_checkout -->|"Partnership (inferred)"| stream_onboarding stream_onboarding -->|"unclassified"| enabling_devex classDef default fill:#ede9fe,stroke:#7c3aed,stroke-width:1px,color:#1e1b4b;
💼 Role hierarchy: --scope hierarchy --team stream-checkout#
Who reports to whom on one team, and who's actually sitting in each seat: roles[]/reportsTo annotated with the members[] filling them, laid out top-down like a conventional org chart.
flowchart TD backend_engineer["Checkout Backend Engineer (Engineer) — Yuki Tanaka"] frontend_engineer["Checkout Frontend Engineer (Engineer) — Fatima Al-Sayed"] tech_lead["Checkout Tech Lead (TechLead) — Diego Alves"] tech_lead --- backend_engineer tech_lead --- frontend_engineer classDef default fill:#ede9fe,stroke:#7c3aed,stroke-width:1px,color:#1e1b4b;
Org-wide role hierarchy: --scope org-hierarchy#
The same reporting lines, zoomed out to the whole company, one box per team. A solid arrow is formal reporting (reportsTo/reportsToRef, same-team or cross-team); a dashed one is alignsWith, for the ties the hierarchy doesn't draw.
Add --with-agents to draw each team's declared agents[] too, hanging off the human whose ownerId names them by a dotted "supervises" edge. Agents are drawn as participants but never as boxes in the chart — an agent placed in the hierarchy the way a person is would imply accountability sits with it, when it never does. An agent nobody owns gets no incoming edge and visibly floats, which is exactly what it is.
Each alignsWith[] entry takes an optional kind — aligns-with (the default), advises, learns-from, or community-of-practice — naming the informal network work actually travels along. Those relationships tend to exist for months before anyone draws a box for them, so teamapi gaps also reports how many cross-team role relationships the reporting lines explain, and how many they don't.
flowchart TD
subgraph enabling_devex["Enabling DevEx"]
enabling_devex__coach["DevEx Coach (DeliveryLead) — Marta Kowalski"]
end
subgraph platform_payments["Platform Payments"]
platform_payments__head_of_engineering["Head of Engineering (EngineeringManager) — vacant"]
platform_payments__ledger_engineer["Ledger Engineer (Engineer) — Lin Zhao"]
platform_payments__payments_engineer["Payments API Engineer (Engineer) — Sam Okafor"]
platform_payments__tech_lead["Payments Tech Lead (TechLead) — Priya Raman"]
end
subgraph stream_checkout["Stream Checkout"]
stream_checkout__backend_engineer["Checkout Backend Engineer (Engineer) — Yuki Tanaka"]
stream_checkout__frontend_engineer["Checkout Frontend Engineer (Engineer) — Fatima Al-Sayed"]
stream_checkout__tech_lead["Checkout Tech Lead (TechLead) — Diego Alves"]
end
subgraph stream_onboarding["Stream Onboarding"]
stream_onboarding__engineer["Onboarding Engineer (Engineer) — Aisha Bello"]
stream_onboarding__tech_lead["Onboarding Tech Lead (TechLead) — Noah Fischer"]
end
platform_payments__head_of_engineering --> platform_payments__tech_lead
platform_payments__tech_lead --> platform_payments__payments_engineer
platform_payments__tech_lead --> platform_payments__ledger_engineer
stream_checkout__tech_lead --> stream_checkout__backend_engineer
stream_checkout__tech_lead --> stream_checkout__frontend_engineer
stream_onboarding__tech_lead --> stream_onboarding__engineer
platform_payments__head_of_engineering --> stream_checkout__tech_lead
stream_checkout__tech_lead -.->|"learns from"| enabling_devex__coach
platform_payments__head_of_engineering --> stream_onboarding__tech_lead
stream_onboarding__tech_lead -.->|"aligns with"| enabling_devex__coach
classDef default fill:#ede9fe,stroke:#7c3aed,stroke-width:1px,color:#1e1b4b;